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调试器遇到断点后继续运行的主要内容,如果未能解决你的问题,请参考以下文章
stm32f4 dma + uart idle + double 调试小记