[STM32F7] STM32F730 随机进入 HardFault 死机

[复制链接]
68|28
probedog 发表于 2026-7-21 20:49 | 显示全部楼层
在HardFault中保存完整栈数据,通过栈回溯可还原最后入栈的PC和LR,判断是哪条指令触发。
spicy 发表于 2026-7-21 20:50 | 显示全部楼层
禁用编译器链接时的函数重排,确保代码在Flash中连续存放。
solty 发表于 2026-7-21 21:20 | 显示全部楼层
QSPI Flash的驱动代码中,任何DMA或中断访问QSPI寄存器,都可能打断XIP取指流。
stormwind123 发表于 2026-7-21 21:21 | 显示全部楼层
测量QSPI Flash的读延时规格书,STM32F7的QSPI控制器支持零等待模式,实际需加额外延时。
七毛钱 发表于 2026-7-21 21:56 | 显示全部楼层
发生崩溃前日志中出现0xFFFFFFFx返回值,说明某个外设或DMA返回了错误状态,未被处理。
甜心puppy 发表于 2026-7-21 22:49 | 显示全部楼层
在HardFault_Handler中直接读取QSPI_FLASH_SR的BUSY位,若为1则基本锁定Flash忙导致取指失败。
jackcat 发表于 2026-8-2 20:06 | 显示全部楼层
避免使用未初始化的函数指针或调用不存在的函数。
nomomy 发表于 2026-8-3 20:11 | 显示全部楼层
如果软件排查无果,问题很可能出在电源、PCB 布局或芯片个体差异上。
wwppd 发表于 2026-8-4 11:10 | 显示全部楼层
检查电源去耦电容是否靠近 MCU 电源引脚,以及是否存在强电磁干扰源。
ccook11 发表于 2026-8-4 11:40 | 显示全部楼层
系统上电稳定后再初始化外设,避免上电瞬时扰动。
bestwell 发表于 2026-8-4 12:29 | 显示全部楼层
外设时钟未使能会引发哪些症状?              
jf101 发表于 2026-8-4 13:23 | 显示全部楼层
其实这些还是主要看中断的过程
hearstnorman323 发表于 2026-8-4 13:46 | 显示全部楼层
查看 SCB->HFSR 寄存器,确认 FORCED 位是否置位,这表示 HardFault 是由其他 Fault 升级而来的。
everyrobin 发表于 2026-8-4 14:04 | 显示全部楼层
F730主频高、外设多,若RTOS任务栈分配不足或局部大数组占用栈空间,极易在特定调用路径下溢出覆盖堆区,导致返回地址错误触发HardFault。
biechedan 发表于 2026-8-4 15:00 | 显示全部楼层
供电线材过长、电容不足,瞬时电流跌落触发内核异常
稳稳の幸福 发表于 2026-8-4 15:57 | 显示全部楼层
F730 属于 Cortex‑M7 内核、带 Cache/FPU/QSPI/DMA,随机死机和必现死机诱因差异很大,优先按「故障采集→软件高频诱因→F7 专属坑→硬件层→长效加固」顺序排查。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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