STM32调试器遇到断点后继续运行

Posted

技术标签:

【中文标题】STM32调试器遇到断点后继续运行【英文标题】:STM32 debugger continues to run after hitting a breakpoint 【发布时间】:2017-10-11 13:04:03 【问题描述】:

我正在运行带有 Atollic Truestudio 7.0.1(基于 Eclipse)的 STM32L151 微控制器。使用 ST-Link/V2 调试器通过 GDB 连接到 MCU。

最近,我注意到调试器存在问题,尽管我没有更改项目配置中的任何内容。当执行在断点处暂停时,我可以检查变量,但目标显然仍在运行,即使 IDE 指示调试器处于“暂停”状态。这使得单步调试变得不可能,因为程序计数器只是跳转到当前的任何位置,而不是下一行代码。

看起来目标实际上可能在断点被命中几秒钟后重置。

关于什么可能导致此问题以及我如何解决此问题的任何想法?

【问题讨论】:

另外一次,您可能会在Electrical Engineering 上得到更全面的回复。但是,请务必阅读their on topic page 并验证您在此处发布的任何问题是否适合该站点。显然,您在一年多前收到了对您有用的回复。那太棒了。但是,还有许多其他可能的原因,您可能会遇到您所描述的情况。其中许多与硬件/测试设置相关。 【参考方案1】:

看起来目标实际上可能正在重置几秒钟 在命中断点之后。

那么它可能是核心停止时仍在运行的看门狗之一。每当内核被调试器停止时,您可以让它们停止

DBGMCU->APB1FZ |= DBGMCU_APB1_FZ_DBG_WWDG_STOP

DBGMCU->APB1FZ |= DBGMCU_APB1_FZ_DBG_IWDG_STOP

选择合适的。

【讨论】:

谢谢,这正是发生的事情,看门狗没有系统地关闭。你的建议解决了!

以上是关于STM32调试器遇到断点后继续运行的主要内容,如果未能解决你的问题,请参考以下文章

esp32能不能在arduino上断点调试

怎样找出产生stm32硬件错误的原因

stm32f4 dma + uart idle + double 调试小记

IAR EWARM7.2下,STLink V2调试stm32f103开发板,能下载程序,但是不能断点

STM32调试模式下程序正常跑,下载后再跑没反应,何解?

在keil uvision(RVMDK)下使用stlink断点调试教程