【发布时间】:2008-10-08 01:01:24
【问题描述】:
vxWorks 文档指出:
WDB 代理本身独立于目标操作系统:它 通过虚拟功能运行时附加到运行时操作系统服务 界面。 WDB 代理可以在 VxWorks 运行之前执行(如 将 BSP 移植到新电路板的早期阶段)。”
如何在 vxWorks 内核运行之前使用调试代理?
【问题讨论】:
标签: vxworks
vxWorks 文档指出:
WDB 代理本身独立于目标操作系统:它 通过虚拟功能运行时附加到运行时操作系统服务 界面。 WDB 代理可以在 VxWorks 运行之前执行(如 将 BSP 移植到新电路板的早期阶段)。”
如何在 vxWorks 内核运行之前使用调试代理?
【问题讨论】:
标签: vxworks
首先,为了能够使用代理执行内核前调试,您必须有一个可用于调试的串行端口。该串行端口必须被初始化并正常工作,因为它将是调试通道。
您可以多早开始调试是有限制的。基于 WDB 的调试将在第一个硬件初始化函数运行 (sysHwInit) 之后和内核初始化正确 (kernelInit) 之前开始。
根据使用的 vxWorks 版本,有不同的方法可以达到此效果。
基于工作台的 vxWorks 构建
在内核配置工具中,必须选择以下组件:
根据您选择组件的顺序,您可能会收到来自工作台的投诉,因为某些组件是互斥的(您不能拥有带有预内核调试的 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 时,它将执行硬件初始化的第一阶段然后挂起,等待主机上运行的调试代理连接到目标。
此时,您可以执行调试、单步等...
【讨论】: