打印
[MM32软件]

栈没溢出的情况下为啥还是会死机

[复制链接]
1020|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
SophiaOP|  楼主 | 2025-4-20 16:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
灵动MM32F系列频繁死机,断电重启才能恢复!调试发现堆栈溢出但实际用量未超,有没有人遇到过类似玄学问题?开发环境是KEIL5,已排除代码逻辑错误。

使用特权

评论回复
沙发
xuanhuanzi| | 2025-4-23 15:49 | 只看该作者
在程序分段做标记,记录死机出现的位置,想法锁定死机位置,看看是相同的位置还是随机位置。可以用printf打印位置标记

使用特权

评论回复
板凳
xuanhuanzi| | 2025-4-23 16:06 | 只看该作者
电源与复位电路问题
现象
断电重启才能恢复,可能与电源噪声或复位电路不稳定有关。

排查方法
电源监控:

用示波器观察MCU的VDD和VSS引脚在死机瞬间是否有电压跌落或毛刺。

检查复位引脚(NRST)是否因干扰触发意外复位。

看门狗配置:

确认是否启用独立看门狗(IWDG)但未及时喂狗。

检查窗口看门狗(WWDG)的窗口时间配置是否合理。

解决方案
在VDD附近增加10-100μF电解电容和0.1μF陶瓷电容。

在NRST引脚增加0.1μF电容到地,抑制干扰。

若使用看门狗,添加喂狗日志或调试断点确认喂狗逻辑。

使用特权

评论回复
地板
申小林一号| | 2025-4-24 18:36 | 只看该作者
学习一下

使用特权

评论回复
5
两只袜子| | 2025-4-28 12:09 | 只看该作者
若同时启用复杂外设,可能导致堆栈与全局变量、堆内存竞争。

使用特权

评论回复
6
jcky001| | 2025-4-28 12:10 | 只看该作者
临时禁用非关键外设,观察是否仍有死机现象。

使用特权

评论回复
7
cr315| | 2025-4-28 12:11 | 只看该作者
中断优先级配置不当?

使用特权

评论回复
8
elephant00| | 2025-4-28 12:11 | 只看该作者
检查中断优先级,避免高优先级中断长时间占用堆栈。

使用特权

评论回复
9
flycamelaaa| | 2025-4-28 12:13 | 只看该作者
试着降低优化级别。

使用特权

评论回复
10
duo点| | 2025-4-28 12:16 | 只看该作者
禁用所有外设,仅保留基本时钟和GPIO,观察是否仍有死机现象。

使用特权

评论回复
11
laocuo1142| | 2025-4-28 16:00 | 只看该作者
建议在链接脚本中为中断单独分配堆栈,避免与主堆栈竞争。

使用特权

评论回复
12
powerantone| | 2025-4-28 18:03 | 只看该作者
检查硬件复位源是否被误触发。

使用特权

评论回复
13
stormwind123| | 2025-4-28 20:00 | 只看该作者
看门狗复位。

使用特权

评论回复
14
classroom| | 2025-4-28 20:30 | 只看该作者
升级J-Link或ULINK的固件至最新版本。

使用特权

评论回复
15
probedog| | 2025-4-28 21:00 | 只看该作者
电源噪声、晶振不稳定或PCB走线阻抗过高,可能导致MCU运行异常,间接引发堆栈溢出。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

297

帖子

0

粉丝