单片机固件自更新的一个方法!
内容提要
本文分析了汽车软件中的Boot程序用于刷新应用程序的五种自更新方式的优缺点,包括SB更新CB、RAM+Flash Reboot更新、RAM+RAM ReBoot更新、借助App程序Flash空间更新和借助额外Flash空间更新。工程师需要综合考虑软件架构、资源和成本来选择适合的自刷新方法。
延伸解读
Boot自刷新的适用场景
Boot自刷新主要出现在项目开发阶段,因为整车厂规范只针对量产车辆的应用程序升级,不涉及Boot升级,且售后不允许升级Boot。因此,供应商需要自行提出解决方案。对于已下线的控制器,只能通过CB刷新应用程序,若需CB自行刷新,则必须采用额外方式。
五种自刷新方式的本质分类
文章分析的五种方式可归为三类:依赖启动程序SB(方式一)、借助RAM(方式二、三)、借助Flash(方式四、五)。方式一适合Flash资源富余且需要两级Boot的项目;方式二、三适合单级Boot且能容忍刷坏后开盖维修的场景;方式四、五适合不允许开盖但可接受刷新步骤繁多的场景。
方式四的刷死风险与对策
方式四借助App程序Flash空间,虽宣称无刷死风险,但附录指出该结论有条件:若更新CB途中断电,且启动地址1的有效性标志已更新,程序会进入不完整的CB导致刷死。对策包括将Boot有效性标志与启动地址重合(最后写标志),或独立置尾并增加有效性检查逻辑,以降低风险。
选择自刷新方法的关键因素
工程师需综合考虑软件架构、CPU资源、时间人力物料等成本。例如,Flash资源富余且需两级Boot时,方式一最节省时间;单级Boot且可容忍开盖成本时,方式二、三较方便;不允许开盖但可接受较长刷新时间时,方式四、五最可靠。没有通用方案,需根据项目需求权衡。
Q&A
汽车软件中的Boot程序有什么作用?
Boot程序用于刷新应用程序,是客户项目中的需求部分。
有哪些Boot自更新方式?
有五种方式:SB更新CB、RAM+Flash Reboot更新、RAM+RAM ReBoot更新、借助App程序Flash空间更新和借助额外Flash空间更新。
SB更新CB的优缺点是什么?
优点是逻辑结构简单,缺点是需要较大Flash空间和结构复杂。
RAM+Flash Reboot更新的主要风险是什么?
主要风险是掉电后可能导致控制器瘫痪,无法正常启动。
选择Boot自更新方法时需要考虑哪些因素?
需要综合考虑软件架构、资源和成本等因素。
借助App程序Flash空间更新的缺点是什么?
缺点是步骤繁多,整体刷新时间较长。