使用调试器时应用程序运行非常缓慢
STM32CubeIDE使用STLink或JLinkEdu通过SWD调试STM32F407时,在调试器中运行应用程序的速度大约慢了16倍。此外,当从STM32CubeIDE内部启动调试器时,主机电脑上甚至没有出现USB虚拟串行设备的识别。
我分别使用了STLink和JLinkEdu,但结果相同。
如果使用STM32CubeIDE调试配置中复制的命令行运行JLinkGDBServerCLI,并单独运行GDB(arm-none-eabi-gdb),应用程序会以全速运行,并且USB设备工作正常。
我看了STM32Cube中的调试配置设置,并试过更改各种选项(例如实时表达式),没有效果。
STM32CubeIDE内置的调试插件可能强制使用低速通信参数。当通过命令行直接运行JLinkGDBServerCLI时,默认启用更高频率,而IDE可能限制为250kHz。 IDE调试时可能启用硬件断点或观察点,占用SWD总线资源。 IDE调试时,GDB Server可能先于USB驱动初始化,导致枚举失败。命令行调试时,操作系统已完整加载驱动。 IDE默认在下载后复位芯片,可能中断USB初始化流程。命令行调试时手动控制复位时序。 IDE调试可能未正确刷新Flash中的USB描述符表,导致主机无法识别设备。 强制使用全速SWD时钟 禁用IDE自动复位 检查usbd_conf.h中的CDC描述符是否符合规范,强制重新枚举 降级IDE版本,某些STM32CubeIDE版本存在调试插件Bug,尝试回退到1.10.x或更早版本。 建议减少软件断点使用,通过hbreak命令设置硬件断点以降低SWD负载。
页:
[1]