3

vxWorks 文档指出:

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

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

4

1 回答 1

2

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

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

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

基于 Workbench 的 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 时,它将执行硬件初始化的第一阶段,然后挂起,等待主机上运行的调试代理连接到目标。

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

于 2008-10-08T01:18:17.077 回答