news 2026/8/10 21:29:06

邪修如何升级 boot?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
邪修如何升级 boot?

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

作者:鱼鹰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」

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/9 23:08:02

Flutter Dynamic Widget 终极指南:JSON驱动动态UI的完整解决方案

Flutter Dynamic Widget 终极指南:JSON驱动动态UI的完整解决方案 【免费下载链接】dynamic_widget A Backend-Driven UI toolkit, build your dynamic UI with json, and the json format is very similar with flutter widget code. 项目地址: https://gitcode.c…

作者头像 李华
网站建设 2026/8/10 18:33:07

技术面试终极指南:从算法学习到面试成功的完整路径

技术面试终极指南:从算法学习到面试成功的完整路径 【免费下载链接】tech-interview-handbook 这个项目是《技术面试手册》(Tech Interview Handbook),为忙碌的软件工程师提供经过策划的编程面试准备材料,包括算法问题…

作者头像 李华
网站建设 2026/8/10 20:53:21

高质量经营分析报告的编制逻辑与核心价值

微信公众号:木木自由,更多数据分析,经营分析、财务分析、商业分析、数据治理、数据要素、数据资产干货以及资料分享在企业管理的日常工作里,经营分析报告是反映企业运营状况的重要工具。一份好的经营分析报告,能为企业…

作者头像 李华
网站建设 2026/8/9 17:17:55

LobeChat开源社区活跃度分析及其生态优势

LobeChat开源社区活跃度分析及其生态优势 在大语言模型(LLM)席卷全球的今天,几乎每个开发者都曾面对这样一个困境:想用AI提升效率,却被商业平台的数据隐私、高昂成本和功能限制卡住脖子。你有没有试过,在企…

作者头像 李华