单步调试中断时禁用中断
以前用IAR开发。现在换用STM32CubeIDE。测试中如果一个中断计时器在后台运行,没找到合适的单步调试程序的方法。有没有像IAR“单步执行时禁用中断”这样的选项CubeIDE 里没有像 IAR 那样直接一键“单步时禁止中断”,挺麻烦的。 我一般用 Debug Configurations 里勾选 SWO 或者把中断优先级调高低,间接控制一下。 有时候直接在中断里加条件编译或者 Debug 标志,调试的时候跳过中断处理。 楼主可以看下 Debugger 的 Options,有个 Suspend策略,能不能部分满足? 有人是把定时器在调试时直接停止,用 __disable_irq() 或者 NVIC Mask 也行。 CubeIDE 其实底层是 Eclipse,很多功能要自己写 Script 或者插件才能实现 IAR 那种方便。 我调试实时性强的中断一般都用 Trace 或者 ITM 打点,单步确实不靠谱。 要不在 HAL_TIM_IRQHandler 里加断点,配合条件断点看看能不能稳住调试。 有些人干脆把 SysTick 也关掉,用纯外设跑,调试就不会乱跳中断了。 楼主要是找到比较优雅的 CubeIDE 配法记得分享下,大家都能少踩坑! CubeIDE还是需要进一步学习的
页:
[1]