推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

Bootloader升级要点与问题定位

更新时间:2026-10-20 08:21:45 大小:40K 上传用户:江岚查看TA发布的资源 标签:BootloaderFlash分区升级问题定位外设状态复位向量表 下载积分:2分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

Bootloader升级配置要点与问题定位 一份写给调试现场看的升级检查清单 第1章 检查前准备 问:升级这块到底要先搞清什么,才不至于一上来就懵? 答:我建议你先把Flash分区图在心里画清楚。Bootloader区放引导代码,APP区放业务程序,再单独留一小块参数区存升级标志、版本号和当前激活分区。这三块界线划死了,后面所有排查才有坐标。很多跳转失败、跑飞的问题,根子都出在分区地址没对齐。 问:准备工作里最容易忽略的是什么? 答:是外设现场清理。Bootloader里可能开过定时器、DMA、串口甚至改了时钟,这些状态如果不复位就交给APP,APP起来直接继承一堆脏配置。所以检查前先确认:跳转前有没有把用过的外设关掉、时钟是否恢复默认、全局中断有没有屏蔽。这三样做不到,跳到APP必出幺蛾子。 问:需要提前准备哪些工具? 答:仿真器、串口转USB的调试线、能读Flash内容的下载工具,再加一份能查向量表地址的map文件。我排查升级问题时,map文件是最先翻的东西——向量表在哪、APP起始地址是多少,一看便知。现场没有它,等于闭着眼找针。 第2章 设计阶段检查项 问:设计Bootloader时,中断向量表这事要怎么处理? 答:这是最容易翻车的一处,我给你讲透。Cortex-M上电后硬件从0地址取向量表,APP不在0地址,所以它的向量表也不在默认位置。跳转前必须把SCB->VTOR指到APP起始地址,否则中断发生时CPU还去0地址取向量,取到的是Bootloader的,栈早搬走了,当场HardFault。顺带一提,APP工程里也得显式设向量表偏移,两头都要对。 问:跳转的顺序有没有讲究? 答:有,而且很死。正确顺序是先关全局中断,再改VTOR,再设主栈指针MSP为APP向量表第一项(栈顶),最后跳转。关中断放最前面,就是为了防止跳转过程中被中断打断。

部分文件列表

文件名 大小
Bootloader升级要点与问题定位.docx 40K

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载