[其他ST产品] 采用 Bootloader 实现单片机软件复位的问题

[复制链接]
344|39
yeates333 发表于 2026-2-8 14:49 | 显示全部楼层
确认APP程序确实烧录到0x08100000
vivilyly 发表于 2026-2-8 18:32 | 显示全部楼层
开发阶段,始终使用 Hardware Reset 模式调试
tabmone 发表于 2026-2-8 19:20 | 显示全部楼层
单独烧录Bootloader到 0x08000000,确认其能正常运行。
单独烧录App到 0x08100000,通过调试器直接运行App,确认能进入 main()。
pl202 发表于 2026-2-9 16:03 | 显示全部楼层
复位后调试器仍访问Bootloader的向量表,而非APP的向量表
backlugin 发表于 2026-2-11 19:27 | 显示全部楼层
复位后向量表未指向App地址,或调试器未触发完整复位流程。
i1mcu 发表于 2026-2-12 16:15 | 显示全部楼层
Bootloader 添加 App 引导逻辑
flycamelaaa 发表于 2026-2-12 17:07 | 显示全部楼层
STM32默认从0x08000000加载中断向量表。若复位后未将向量表重定向到APP的起始地址(0x08010000),CPU会继续从Bootloader的向量表读取地址,导致跳转错误。
jcky001 发表于 2026-2-12 18:08 | 显示全部楼层
调试器在复位时可能未正确加载APP的符号表或内存映射,导致断点失效或地址解析错误。
onlycook 发表于 2026-2-12 22:08 | 显示全部楼层
通常由复位向量表未重定向或调试器配置不当导致。优先检查SCB->VTOR的设置和链接脚本的地址配置,其次优化调试器复位模式。
benjaminka 发表于 2026-2-13 13:21 | 显示全部楼层
修正Bootloader跳转代码
pentruman 发表于 2026-2-13 14:29 | 显示全部楼层
部分IDE的复位按钮可能直接重置MCU核心,但未触发完整的硬件复位流程。
wilhelmina2 发表于 2026-2-13 15:51 | 显示全部楼层
在 Keil 的调试配置中添加初始化脚本,复位后强制跳转到 App 地址
maudlu 发表于 2026-2-13 16:13 | 显示全部楼层
正常运行流程              
bartonalfred 发表于 2026-2-14 10:14 | 显示全部楼层
中断向量表未正确重定位              
averyleigh 发表于 2026-2-14 11:27 | 显示全部楼层
点击 IDE 中的“复位”按钮时,单片机硬件会执行真实的复位操作,PC 指针会被强制跳回到 0x08000000,并从 Bootloader 的复位向量开始执行。
bestwell 发表于 2026-2-15 13:42 | 显示全部楼层
建议优先使用调试器初始化脚本的方案,这是最稳定可靠的解决方法。
mnynt121 发表于 2026-2-15 15:02 | 显示全部楼层
复位发生后,程序运行在 Bootloader 区域,而调试器却拿着 APP 的地图去指路。调试器无法解析当前的指令,或者因为 Bootloader 中没有 APP 的调试信息,导致程序看起来“跑飞”了或停在错误的地址。
线稿xg 发表于 2026-2-26 22:39 | 显示全部楼层
调试器找不到APP程序的入口,可能需要检查程序链接脚本或查看启动代码。
Pretext 发表于 2026-2-25 14:32 | 显示全部楼层
调试器需要程序入口地址才能启动,得先找到或设置这个地址。
物联万物互联 发表于 2026-3-2 17:59 | 显示全部楼层
检查app源代码中定义的主函数位置,确认入口地址设置正确。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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