- 1
- 2
- 3
- 4
- 5
Bootloader升级要点与问题定位
资料介绍
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 |
最新上传
-
yahuang001 打赏3.00元 3天前
-
yahuang001 打赏1.00元 3天前
-
zhongshaoxiong 打赏3.00元 3天前
-
他山之石可攻玉 打赏60.00元 3天前
用户:烟雨
-
江岚 打赏210.00元 3天前
用户:潇潇江南
-
江岚 打赏100.00元 3天前
-
21ic下载 打赏310.00元 3天前
用户:gsy幸运
-
21ic下载 打赏310.00元 3天前
用户:zhengdai
-
21ic下载 打赏310.00元 3天前
用户:江岚
-
21ic下载 打赏210.00元 3天前
用户:潇潇江南
-
21ic下载 打赏60.00元 3天前
用户:他山之石可攻玉
-
21ic下载 打赏60.00元 3天前
用户:烟雨
-
21ic下载 打赏60.00元 3天前
用户:w178191520
-
21ic下载 打赏60.00元 3天前
用户:w993263495
-
21ic下载 打赏110.00元 3天前
用户:xzxbybd
-
21ic下载 打赏60.00元 3天前
用户:zq_1943
-
21ic下载 打赏20.00元 3天前
用户:kk1957135547
-
21ic下载 打赏20.00元 3天前
用户:sun2152
-
21ic下载 打赏20.00元 3天前
用户:铁蛋锅
-
21ic下载 打赏20.00元 3天前
用户:xuzhen1
-
21ic下载 打赏20.00元 3天前
用户:w1966891335
-
21ic下载 打赏35.00元 3天前
用户:有理想666
-
21ic下载 打赏15.00元 3天前
用户:nuaanuaa111
-
21ic下载 打赏20.00元 3天前
用户:liqiang9090
-
21ic下载 打赏15.00元 3天前
用户:ningmengge
-
21ic下载 打赏10.00元 3天前
用户:mulanhk
-
21ic下载 打赏5.00元 3天前
用户:asys
-
21ic下载 打赏10.00元 3天前
用户:舞蹈荀彧
-
21ic小能手 打赏5.00元 3天前
资料:磁编码器开源方案
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
江岚 打赏20.00元 3天前
-
江岚 打赏50.00元 3天前
-
江岚 打赏20.00元 3天前
-
江岚 打赏10.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏8.00元 3天前
-
21ic小能手 打赏8.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏3.00元 3天前




全部评论(0)