如何使用vxWorks调试代理进行内核前调试?

发布于 2024-07-07 02:09:41 字数 200 浏览 9 评论 0原文

vxWorks 文档指出:

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

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

The vxWorks documentation states:

The WDB agent itself is independent of the target operating system: it
attaches to run-time OS services through a virtual-function run-time
interface. The WDB agent can execute before VxWorks is running (as in
the early stages of porting a BSP to a new board)."

How can I use the debug agent before the vxWorks kernel is running?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蓝戈者 2024-07-14 02:09:41

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

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

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

基于 Workbench 的 vxWorks 构建

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

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

根据您选择组件的顺序,您可能会收到来自 Workbench 的投诉因为某些组件是互斥的(您不能使用具有预内核调试功能的 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时,它将执行硬件初始化的第一阶段,然后挂起,等待调试代理在主机上运行以连接到目标。

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

First, in order to be able to use the agent to perform pre-kernel debugging, you must have a serial port available for debugging. This serial port has to be initialized and functional as it will be the debug channel.

There is a limitation on how early you can start debugging. WDB based debugging will start after the first hardware initialization function runs (sysHwInit) and before the kernel initialization proper (kernelInit).

Depending on the version of vxWorks being used, there are different ways to achieve this result.

Workbench-based vxWorks builds

In the kernel configuration tool, you must select the following components:

  • WDB serial connection
  • WDB system debugging
  • WDB pre kernel system initialization

Depending on the order you select components, you might get complaints from workbench because some components are mutually exclusive (you can't have WDB END driver with pre-kernel debugging). The order above should be ok.

Command-line builds

Edit the config.h file, and select the following options:

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

When vxWorks is compiled with those options, it will perform perform the first phase of hardware initialization and then suspend, waiting for the debug agent running on the host to connect to the target.

At that point, you can perform debugging, single step, etc...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文