单片机固件自更新的方法

💡 原文中文,约4100字,阅读约需10分钟。
📝

内容提要

本文分析了五种引导程序自动更新方式的优缺点,包括SB更新CB、RAM+Flash Reboot更新、RAM+RAM ReBoot更新、借助App程序Flash空间更新和借助额外Flash空间更新。工程师需要综合考虑整体软件架构和成本因素选择适合自己产品的Boot自刷新方法。

🔎

延伸解读

引导程序自动更新的适用场景

文章指出,引导程序自动更新仅存在于项目开发阶段,由供应商提供解决方案。量产车辆的规范通常只针对应用程序刷新,不涉及引导程序升级。因此,工程师在开发阶段需自行选择更新方式,并注意在SOP后禁止相关刷新逻辑,以避免资源浪费或安全风险。

五种更新方式的核心权衡

五种方式可归纳为依赖SB、借助RAM和借助Flash三类。方式一占用Flash大且结构复杂;方式二、三节省Flash但掉电易导致控制器瘫痪;方式四、五稳定可靠但步骤多或需额外Flash。选择时需权衡软件架构、CPU资源、成本及是否允许开盖维修等因素。

方式四的掉电风险与对策

附录分析指出,方式四在更新CB途中断电可能导致刷死,因为启动地址1的有效标志已更新但CB不完整。对策一调整刷新顺序,先擦除后最后写有效性标志;对策二增加Boot有效性检查逻辑,将启动自检与主功能分段。这些方法可降低风险,但需注意量产时关闭调试跳转逻辑。

❓

Q&A

单片机固件自更新的主要方法有哪些?

主要有五种方法:SB更新CB、RAM+Flash Reboot更新、RAM+RAM ReBoot更新、借助App程序Flash空间更新和借助额外Flash空间更新。

SB更新CB的优缺点是什么?

优点是逻辑结构简单,操作易于理解;缺点是占用较大Flash空间,开发维护成本高。

RAM+Flash Reboot更新的风险是什么?

在更新过程中如果CPU掉电,可能导致CB损坏,控制器无法正常启动。

借助App程序Flash空间更新的优缺点是什么?

优点是稳定可靠,不需要额外资源;缺点是步骤繁多,整体刷新时间较长。

选择固件自更新方法时需要考虑哪些因素?

需要考虑整体软件架构、CPU资源、成本等因素。

借助额外Flash空间更新的优缺点是什么?

优点是不破坏App程序,省去更新时间;缺点是需要额外的Flash空间。

🏷️

标签

➡️

继续阅读