I have:
- 带有 eCos 操作系统的专有原型 ARM 板(基于 Cortex-M3)
- 该板具有已编程的 RedBoot 引导加载程序
- 串行线 (RS-232)
- 适用于 ARM 的 GDB 调试器 (arm-eabi-gdb)
- 主机操作系统是 Windows/Cygwin 和/或 Linux(实际上,并不重要)
Problem:GDB 调试器无法通过串行线连接到目标。
我想要的是:是嗅探GDB远程协议的数据包,以了解目标上的GDB存根是否存活并正在运行。
Details:RedBoot 可以选择将目标的控制权传递给内置的 GDB 存根。我知道 RedBoot 处于活动状态,我可以连接到它并通过串行线路向它发送命令。RedBoot 手册 http://ecos.sourceware.org/docs-latest/redboot/redboot-commands-and-examples.html说可以通过输入 $ 或 + 符号(实际上是 GDB 远程协议数据包的前缀)来切换到 GDB 存根。当我发送这些符号时,它似乎适用于终端死机。但我不确定 RedBoot 是否是使用 GDB 存根支持编译的(不要问我为什么:-))。
然后,当我尝试使用 GDB 调试器连接到开发板时,我得到以下图片(在 Windows 上):
(gdb) target remote COM3
Remote debugging using COM3
Ignoring packet error, continuing...
Ignoring packet error, continuing...
Ignoring packet error, continuing...
Ignoring packet error, continuing...
端口正确,波特率也正确。实际上,如果我尝试对另一个未连接任何东西的串行端口执行相同的操作,我会得到相同的输出。
我想知道的是GDB存根是否发回任何东西?
直觉上我认为可能
set verbose on
会有所帮助,但 GDB 手册说它的效果非常有限,我的情况超出了它的范围。
也许可以使用启用调试日志记录的宏来编译 GDB 调试器?
我想知道的是GDB存根是否发回任何东西?
执行此操作(之前target remote
):
(gdb) set debug remote 1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)