地瓜patch 发表于 2025-10-22 22:36

使用调试器时应用程序运行非常缓慢

STM32CubeIDE使用STLink或JLinkEdu通过SWD调试STM32F407时,在调试器中运行应用程序的速度大约慢了16倍。

此外,当从STM32CubeIDE内部启动调试器时,主机电脑上甚至没有出现USB虚拟串行设备的识别。

我分别使用了STLink和JLinkEdu,但结果相同。

如果使用STM32CubeIDE调试配置中复制的命令行运行JLinkGDBServerCLI,并单独运行GDB(arm-none-eabi-gdb),应用程序会以全速运行,并且USB设备工作正常。

我看了STM32Cube中的调试配置设置,并试过更改各种选项(例如实时表达式),没有效果。

cr315 发表于 2025-10-23 16:33

STM32CubeIDE内置的调试插件可能强制使用低速通信参数。当通过命令行直接运行JLinkGDBServerCLI时,默认启用更高频率,而IDE可能限制为250kHz。

duo点 发表于 2025-10-23 17:34

IDE调试时可能启用硬件断点或观察点,占用SWD总线资源。

elephant00 发表于 2025-10-23 16:34

IDE调试时,GDB Server可能先于USB驱动初始化,导致枚举失败。命令行调试时,操作系统已完整加载驱动。

flycamelaaa 发表于 2025-10-23 18:35

IDE默认在下载后复位芯片,可能中断USB初始化流程。命令行调试时手动控制复位时序。

jcky001 发表于 2025-10-23 19:36

IDE调试可能未正确刷新Flash中的USB描述符表,导致主机无法识别设备。

onlycook 发表于 2025-10-23 20:36

强制使用全速SWD时钟

powerantone 发表于 2025-10-23 21:37

禁用IDE自动复位

probedog 发表于 2025-10-23 22:38

检查usbd_conf.h中的CDC描述符是否符合规范,强制重新枚举

solty 发表于 2025-10-23 18:18

降级IDE版本,某些STM32CubeIDE版本存在调试插件Bug,尝试回退到1.10.x或更早版本。

stormwind123 发表于 2025-10-23 19:29

建议减少软件断点使用,通过hbreak命令设置硬件断点以降低SWD负载。
页: [1]
查看完整版本: 使用调试器时应用程序运行非常缓慢