[STM32F7] MCU运行一段时间后进入HardFault,怀疑是堆栈溢出

[复制链接]
130|11
Wordsworth 发表于 2025-11-3 07:17 | 显示全部楼层 |阅读模式
程序运行几分钟后突然HardFault,没有明显规律。看寄存器发现SP接近栈底。应该是递归或任务栈不够,但RTOS任务也没报错,想确认下最好的排查方法。
Clyde011 发表于 2025-11-3 07:21 | 显示全部楼层
这个问题真要慢慢查,挺隐蔽的。
公羊子丹 发表于 2025-11-3 07:21 | 显示全部楼层
这个问题真要慢慢查,挺隐蔽的。
周半梅 发表于 2025-11-3 07:23 | 显示全部楼层
你可以打开FreeRTOS的堆栈检测宏看看。
帛灿灿 发表于 2025-11-3 07:23 | 显示全部楼层
硬Fault一般可以看CFSR和BFAR。
童雨竹 发表于 2025-11-3 07:24 | 显示全部楼层
也可能是ISR嵌套太深导致栈爆。
万图 发表于 2025-11-3 07:25 | 显示全部楼层
我遇过因为printf导致栈乱的。
 楼主| Wordsworth 发表于 2025-11-3 07:26 | 显示全部楼层
用SWO输出函数调用深度挺好用的。
Bblythe 发表于 2025-11-3 07:28 | 显示全部楼层
可以先增大栈看看问题是否还在。
Pulitzer 发表于 2025-11-3 07:29 | 显示全部楼层
别忘了看malloc是否踩内存。
Uriah 发表于 2025-11-3 07:30 | 显示全部楼层
我建议加上断点捕获HardFaultHandler。
周半梅 发表于 2025-11-3 07:31 | 显示全部楼层
我习惯用watch window看SP变化。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

185

主题

6413

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部