vxWorks 文档指出:
WDB 代理本身独立于目标操作系统:它通过虚拟功能运行时接口附加到运行时操作系统服务。WDB 代理可以在 VxWorks 运行之前执行(如在将 BSP 移植到新板的早期阶段)。”
如何在 vxWorks 内核运行之前使用调试代理?
vxWorks 文档指出:
WDB 代理本身独立于目标操作系统:它通过虚拟功能运行时接口附加到运行时操作系统服务。WDB 代理可以在 VxWorks 运行之前执行(如在将 BSP 移植到新板的早期阶段)。”
如何在 vxWorks 内核运行之前使用调试代理?
首先,为了能够使用代理执行内核前调试,您必须有一个可用于调试的串行端口。该串行端口必须被初始化并正常工作,因为它将是调试通道。
您可以多早开始调试是有限制的。基于 WDB 的调试将在第一个硬件初始化函数运行 (sysHwInit) 之后和内核初始化正确之前 (kernelInit) 开始。
根据使用的 vxWorks 版本,有不同的方法可以达到此结果。
基于 Workbench 的 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 时,它将执行硬件初始化的第一阶段,然后挂起,等待主机上运行的调试代理连接到目标。
此时,您可以执行调试、单步等...