我正在使用带有Texas Instruments Hercules(Cortex-R4F)处理器的gdb(arm-none-eabi)。我正在使用Texas Instrument的XDS代理作为远程GDB服务器
运行后
target remote ip:port
在GDB中,GDB将与XDS GDB服务器连接。然后我可以打印寄存器
info all-registers
它显示了CPU寄存器,还有f7和fpa寄存器,这些寄存器让我得出结论,CPU有一个浮点协处理器(FPA)。然而情况并非如此。处理器有vfpv3。所以GDB使用错误的寄存器定义会导致问题。
我试图通过设置
找到XDS GDB服务器发送的数据包中的信息set debug remote 1
但找不到任何信息。 GDB如何确定要使用的寄存器定义?
更新: 我找到了set architecture命令:
set architecture
>Requires an argument. Valid arguments are arm, armv2, armv2a, armv3, armv3m, armv4, armv4t, armv5, armv5t, armv5te, xscale, ep9312, iwmmxt, iwmmxt2, arm_any, auto.
Cortex-R4f是带有vfpv3的armv7。我该怎么设置它?
答案 0 :(得分:2)
TI的XDS代理充当GDBServer。
但是它没有响应qXfer这样的数据包:features:read ...来获取目标信息
最后我手动应用了:
set tdesc filename /gdb/binutils-gdb/gdb/features/arm/arm-with-vfpv3.xml
这为Corter-R4f设置了正确的功能,并允许我设置断点,调用函数等。
唉,我们现在正在寻找其他问题。看起来TI的XDS GDB服务器代理不是很稳定。