单片机固件自更新的方法
内容提要
本文分析了五种引导程序自动更新方式的优缺点,包括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空间。