我正在试用STM32CubeIDE,并且一直在尝试将其与GDB QEMU调试插件配合使用,该插件是Eclipse CDT包的一部分。我已经能够为我的STM32F4-Discovery板创建项目和调试配置,并且调试器部分启动,但是,就在模拟器启动时,它创建的GUI窗口突然崩溃,我得到了这个错误:
Error in final launch sequence
Failed to execute MI command:
-target-select remote localhost:1234
Error message from debugger back end:
Truncated register 18 in remote 'g' packet
Failed to execute MI command:
-target-select remote localhost:1234
Error message from debugger back end:
Truncated register 18 in remote 'g' packet
Truncated register 18 in remote 'g' packet
我想这是由于我安装的CDT插件和我安装的Ubuntu20.04附带的GCC工具链不匹配造成的。然而,我不确定如何解决这个问题。
我有什么办法可以解决这个问题吗?
发布于 2020-09-15 22:31:08
因此,看起来有几个因素导致了这种方法不起作用。首先,我在GUI调试器终止后立即收到的错误消息是由于arm-none eabi-gdb包的错误安装造成的。为了解决这个问题,我从ARM站点下载了软件包,并按照详细的here说明进行了操作。在再次安装arm-none eabi- GDB包之后,我进入项目调试配置设置,导航到此窗口中的"debugger“选项卡,然后将GDB可执行文件路径从集成开发环境为我设置的变量更改为实际的GDB可执行文件路径(在本例中为/usr/bin/arm-none-eabi-gdb
)。
在此之后,调试器将不再立即终止,但在它启动后不久,我仍然在console中收到一些错误(见下文)。此外,调试器GUI不会产生有意义的输出,Ubuntu会警告进程已经冻结。
NVIC: Bad read offset 0xd88
qemu-system-gnuarmeclipse: Attempt to set CP10/11 in SCB->CPACR, but FP is not supported yet.
为了解决这个问题,我在IDE的项目资源管理器面板中右键单击该项目,然后转到C/C++ build部分,然后转到该部分下的Settings部分,最后转到此菜单的"Tool settings“部分。在"MCU设置“下,有两个用于”浮点单元“和”浮点ABI“的选项,我将其分别更改为”无“和”软件实现“。保存这些配置更改后,我转到项目的src/目录下的system_stm32f4xx.c文件,并注释掉以下行:
/* FPU settings ------------------------------------------------------------*/
#if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */
#endif
在那之后,我清理了项目,重新构建了它,并重新启动了调试器。然后它就能正常工作了。
https://stackoverflow.com/questions/63894136
复制相似问题