单片机固件自更新的一个方法!
内容提要
汽车软件的Boot程序用于更新App程序。Boot自更新方式有五种:SB更新CB、RAM+Flash Reboot更新、RAM+RAM ReBoot更新、借助App程序Flash空间更新、借助额外Flash空间更新。每种方式都有优缺点,工程师需要根据软件架构、资源和成本等因素选择适合的方式。其中,借助Flash空间更新的方式四最稳定可靠。
延伸解读
Boot自更新的适用场景
Boot自更新仅存在于项目开发阶段,由供应商提供方案。量产车售后只允许升级App,不允许升级Boot,因为整车厂规范只针对App更新。因此,Boot自更新是开发阶段解决Boot自身升级需求的方法,需与软件开发计划配合。
五种方式的核心权衡
五种Boot自更新方式可归为三类:依赖SB、借助RAM、借助Flash。选择时需权衡Flash/RAM资源、掉电风险、刷新时间及成本。方式一需大Flash且结构复杂;方式二、三节省Flash但掉电易瘫痪;方式四、五更可靠但步骤多或需额外Flash。
方式四的刷死风险与对策
方式四虽稳定可靠,但若在擦除旧CB后、刷入新CB完成前掉电,且启动地址1已更新为有效,程序会进入不完整的CB导致刷死。对策一将启动地址1的有效性标志最后写入,确保掉电后仍从启动地址2运行Reboot继续刷新。对策二则独立设置Boot有效性标志并增加检查逻辑。
Q&A
汽车软件的Boot程序有什么作用?
汽车软件的Boot程序主要用于更新App程序。
Boot自更新的方式有哪些?
Boot自更新方式有五种:SB更新CB、RAM+Flash Reboot更新、RAM+RAM ReBoot更新、借助App程序Flash空间更新、借助额外Flash空间更新。
哪种Boot自更新方式最稳定可靠?
借助Flash空间更新的方式最稳定可靠。
SB更新CB的优缺点是什么?
优点是逻辑结构简单清晰,缺点是需要较大Flash空间,开发和维护成本高。
RAM+Flash Reboot更新的主要风险是什么?
主要风险是如果在更新过程中掉电,控制器可能会瘫痪,无法正常启动。
工程师在选择Boot自更新方式时需要考虑哪些因素?
工程师需考虑软件架构、资源、成本等因素选择合适的Boot自更新方式。