Я использую gdb (arm-none-eabi) с процессором Texas Instruments Hercules (Cortex-R4F). Я использую XDS-агент Texas Instruments в качестве удаленного сервера GDB.
После запуска
target remote ip:port
в GDB GDB соединится с сервером XDS GDB. Затем я могу распечатать регистры
info all-registers
Он показывает мне регистры ЦП, а также регистры f7 и fpa, что позволяет мне сделать вывод, что ЦП имеет сопроцессор с плавающей запятой (FPA). Однако это не так. Процессор vfpv3. Таким образом, GDB использует неправильные определения регистров, что приводит к проблемам.
Я попытался найти информацию в пакетах, отправленных сервером XDS GDB, установив
set debug remote 1
но не нашел никакой информации. Как GDB определяет используемые определения регистров?
Обновление: я нашел команду установки архитектуры:
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 — это armv7 с vfpv3. Как я могу установить это?
show arm fpu
? Если есть проблема с агентом XDS, как GDB может ее исправить? У вас нет gdbserver, так зачем этот тег? gdbsever и хост gdb должны совпадать, иначе обычно возникают проблемы, тем более что у ARM может быть несколько вариантов конфигурации. Ваш хост GDB может даже не понимать инструкции ARMv7. - person artless noise   schedule 13.04.2017