大家好,
我有一个
STM32F7508-Discovery 板(STM32F750N8H6 MCU),上面有一个自定义 UI 应用程序,在中断模式下使用 LTDC 和 DMA2D,并不断用红色/蓝色填充整个显示屏。Stm32CubeF7 v1.16.0 用作 SDK。
使用此应用程序,我有以下行为:
- 使用 IAR 工具链,未观察到任何问题,应用程序运行顺畅,性能良好
- 使用 GCC 工具链 (Stm32CubeIde 1.40.0),应用程序在执行期间在随机点冻结
最糟糕的是,这不是应用程序冻结,而是 MCU 冻结,因为:
- 调试器失去连接,在冻结期间尝试停止 CPU 不起作用,在没有系统重置的情况下附加调试器也不起作用
- SystickHandler 不再执行,这意味着 IRQ 停止触发
- RTOS空闲任务不再进入
- WDT 是唯一可以重启 MCU 的东西,在 WDT 禁用的情况下,除了按下 RST 按钮外没有其他解决方案
- WDT 复位后,我看到所有的 CPU 寄存器都被复位,这是不正常的,没有提供调试目的
由于调试器在冻结期间停止,因此我无法调试,因此我怀疑硬件级别存在问题(AHB 总线死锁、
电源问题)。
有人在这个 MCU 上遇到过类似的死机吗?
我怎样才能得到一些痕迹来帮助我进行调查(ETM 痕迹、SystemView 痕迹)?