邪修如何升级 boot?
2026/6/14 22:51:31 网站建设 项目流程

来源:公众号【鱼鹰谈单片机】

作者:鱼鹰Osprey

ID :emOsprey

大家好,我是鱼鹰。最近有学员问关于如何升级 boot 问题(注意是升级 boot,不是 App)。

APP 升级 boot 有几种解决方案:

1、boot 代码在 ram 中运行,然后直接更新 boot 自身,即自举,实现比较复杂。

2、app 代码运行后,更新 boot 所在 flash 空间,完成替换,实现比较简单。

第二种方案更新 boot 常规解法是通过接口更新 boot,比如 uart、USB、can,无论哪一种,都有定义更新协议,如 ymodem。在鱼鹰看来都比较复杂。

因为该道友只是为了更新 boot 来修复问题,所以鱼鹰提供了最简单的解决方案,直接在 app 代码里面嵌入 boot 代码来完成升级,这样一来,不需要写驱动、也不用实现传输协议,简单高效,不易出错,可以快速完成升级。

linux 环境下 bin 文件转头文件数组,windows 也有类似命令xxd -i xxx.bin > xxx.h

这个方案鱼鹰在项目中也实现过,不过不是给自身升级 boot,而是给外部设备升级 app,可以快速验证升级流程是否有问题。

不过由于是升级 boot,因此升级过程千万不要断电,否则一定变砖,如果你又开启了最高级别(一次性熔断,不可恢复)的读写保护功能,那么没有解救方法,因此慎用该保护方案。

另外一点,这个问题其实有一个根本性问题,就是 OTA 有概率变砖头(鱼鹰有遇到过),只有找到root case(根本原因),才能算彻底解决,否则不管怎么升级有 bug 的 boot 都是无效解。

切记,boot 有风险,升级需谨慎!!

推荐阅读:

嵌入式系统优先级详解

KEIL 调试经验总结

线程CPU使用率到底该如何计算?

许久以后,你会感谢自己写的异常处理代码

终极串口接收方式,极致效率

延时功能进化论(合集)

如何写一个健壮且高效的串口接收程序?

打了多年的单片机调试断点到底应该怎么设置? | 颠覆认知

-THE END-


如果对你有帮助,记得转发分享哦

微信公众号「鱼鹰谈单片机」

每周一更单片机知识

长按后前往图中包含的公众号关注

鱼鹰,一个被嵌入式耽误的畅销书作家

个人微信「EmbeddedOsprey」

长按后打开对方的名片关注

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询