I am using gdb (arm-none-eabi) with a Texas Instruments Hercules (Cortex-R4F) processor. I'm using Texas Instrument's XDS agent as a remote GDB server
After running
target remote ip:port
in GDB, GDB will connect with the XDS GDBserver. I can then print the registers
info all-registers
It shows me the CPU registers, but also f7 and fpa registers which lead me to conclude that the CPU has an floating point coprocessor (FPA). This is however not the case. The processor has vfpv3. So GDB is using the wrong register definitions which leads to problems.
I tried to find the info in the packets sent by XDS GDB server by setting
set debug remote 1
but could not find any info. How does GDB determine the register definitions to use?
Update: I found the set architecture command:
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 is armv7 with vfpv3. How can I set it?