[其他ST产品] Bootloader 跳转应用触发 HardFault 问题

[复制链接]
1553|26
万图 发表于 2026-7-2 10:25 | 显示全部楼层
想问下你有没有开启MPU?部分芯片开了内存保护后,没解除保护直接跳转,访问应用区Flash直接报硬件故障。
Wordsworth 发表于 2026-7-2 10:26 | 显示全部楼层
向量表偏移寄存器VTOR忘了配置,加上SCB->VTOR = ApplicationAddress; 这行代码,很多人漏掉这一步,跳转必崩。
Bblythe 发表于 2026-7-2 10:27 | 显示全部楼层
调侃一句,Bootloader跳转代码顺序不能乱,先改栈、再配VTOR,最后调用函数,顺序颠倒哪怕只差一行都会直接进HardFault。
Pulitzer 发表于 2026-7-2 10:28 | 显示全部楼层
给你个简易排查办法,先不加载SD卡固件,直接用调试器把完整应用烧到0x0800F000,纯跳转测试区分烧录还是跳转逻辑问题。
Uriah 发表于 2026-7-2 10:29 | 显示全部楼层
检查HEX解析烧录逻辑,擦除页面是否覆盖应用全部区域,若存在未擦除旧数据,中断向量错乱,跳转瞬间就触发异常。
Clyde011 发表于 2026-7-2 10:29 | 显示全部楼层
如果你工程用了FreeRTOS,跳转前要彻底关闭任务调度、清除所有定时器,操作系统残留栈上下文会破坏应用初始化。
班杰明 发表于 2026-7-2 10:51 | 显示全部楼层
检查下FLASH_ErasePage和FLASH_PageWrite函数,确认是否正确实现了写保护逻辑,有时候保护位没清除也可能导致HardFault。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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