【问题标题】:How do I use the vxWorks debug agent to perform pre-kernel debugging?如何使用 vxWorks 调试代理执行内核前调试?
【发布时间】:2008-10-08 01:01:24
【问题描述】:

vxWorks 文档指出:

WDB 代理本身独立于目标操作系统:它 通过虚拟功能运行时附加到运行时操作系统服务 界面。 WDB 代理可以在 VxWorks 运行之前执行(如 将 BSP 移植到新电路板的早期阶段)。”

如何在 vxWorks 内核运行之前使用调试代理?

【问题讨论】:

    标签: vxworks


    【解决方案1】:

    首先,为了能够使用代理执行内核前调试,您必须有一个可用于调试的串行端口。该串行端口必须被初始化并正常工作,因为它将是调试通道。

    您可以多早开始调试是有限制的。基于 WDB 的调试将在第一个硬件初始化函数运行 (sysHwInit) 之后和内核初始化正确 (kernelInit) 之前开始。

    根据使用的 vxWorks 版本,有不同的方法可以达到此效果。

    基于工作台的 vxWorks 构建

    在内核配置工具中,必须选择以下组件:

    • WDB 串行连接
    • WDB系统调试
    • WDB 内核前系统初始化

    根据您选择组件的顺序,您可能会收到来自工作台的投诉,因为某些组件是互斥的(您不能拥有带有预内核调试的 WDB END 驱动程序)。上面的顺序应该没问题。

    命令行构建

    编辑 config.h 文件,并选择以下选项:

    #define WDB_INIT WDB_PRE_KERNEL_INIT #define WDB_COMM_TYPE WDB_COMM_SERIAL #define WDB_MODE WDB_MODE_SYSTEM

    当使用这些选项编译 vxWorks 时,它将执行硬件初始化的第一阶段然后挂起,等待主机上运行的调试代理连接到目标。

    此时,您可以执行调试、单步等...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-23
      • 1970-01-01
      • 2011-11-23
      • 2014-08-09
      • 2011-05-01
      • 2011-10-12
      • 2021-08-25
      相关资源
      最近更新 更多