首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从STM32CubeIDE启动QEMU模拟器的问题

从STM32CubeIDE启动QEMU模拟器的问题
EN

Stack Overflow用户
提问于 2020-09-15 10:20:04
回答 1查看 670关注 0票数 2

我正在试用STM32CubeIDE,并且一直在尝试将其与GDB QEMU调试插件配合使用,该插件是Eclipse CDT包的一部分。我已经能够为我的STM32F4-Discovery板创建项目和调试配置,并且调试器部分启动,但是,就在模拟器启动时,它创建的GUI窗口突然崩溃,我得到了这个错误:

代码语言:javascript
运行
复制
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工具链不匹配造成的。然而,我不确定如何解决这个问题。

我有什么办法可以解决这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-16 06: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会警告进程已经冻结。

代码语言:javascript
运行
复制
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文件,并注释掉以下行:

代码语言:javascript
运行
复制
  /* FPU settings ------------------------------------------------------------*/
  #if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
    SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2));  /* set CP10 and CP11 Full Access */
  #endif

在那之后,我清理了项目,重新构建了它,并重新启动了调试器。然后它就能正常工作了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63894136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档