• 正文
  • 相关推荐
申请入驻 产业图谱

邪修如何升级 boot?

12/16 15:03
103
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

来源:公众号【鱼鹰谈单片机】,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 有风险,升级需谨慎!!

微信公众号「鱼鹰谈单片机」每周一更单片机知识

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录