首页车问答问答详情

什么是OTA?

2025-06-10 10:04 发布

汽车软件的BOOT程序是汽车电子系统启动过程中的关键组成部分,位于系统最底层。

它的主要功能包括加载并初始化硬件设备、运行时环境以及操作系统映像,确保车辆电子控制单元正常运行。在具体客户项目中,Boot也是客户需求的一部分。Boot自刷新仅存在于项目开发阶段,由供应商自行提供方案。

本文分析了五种Boot自更新方式的优缺点。

方式一,SB更新CB:Boot架构为两级(SB+CB)。SB负责检查CPU最小系统,独立于客户需求,由供应商自行维护。SB里增加刷新逻辑可以更新CB。优点包括逻辑结构简单、软件分工明确、操作简易;缺点是需要较大的Flash空间存放刷新逻辑,开发和维护成本较高,对于不需要SB的控制器是一种负担。

方式二,RAM+FlashReboot更新:不存在SB情况下,程序启动顺序是CB->App。需要刷新Boot时,首先把Reboot程序下载到RAM里,然后在RAM环境下运行ReBoot,下载新的CB。优点包括不需要额外的Flash空间,RAM擦写速度快;缺点是CB更新过程中万一CPU掉电,RAM内容全部消失,程序不能正常启动。

方式三,RAM+RAMReBoot更新:将ReBoot+NewCB一起下载到RAM里,然后运行ReBoot,擦除CBFlash区域,将RAM中NewCB复制到CBFlash区域。优点是少了一步刷新,耗时更短;缺点是需要更大的RAM空间,且存在掉电风险。

方式四,借助App程序Flash空间刷新:运行CB,擦除App,下载ReBoot到App区域,然后运行ReBoot,更新CB,最后运行新CB,刷回App。优点是不需要额外的Flash和RAM资源,开发快速,稳定可靠;缺点是步骤繁多,刷新时间较长。

方式五,借助额外Flash空间:刷新分三步,需要一块和CB一样大小的额外Flash空间。优点是不需要破坏App程序;缺点是需要额外的Flash空间,且必须是独立的Block。

综上,工程师需要根据整体软件架构、CPU资源、时间人力物料等成本因素综合考虑一种适合自己产品及项目的Boot自刷新方法。

方式四的Boot刷新策略中,当且仅当启动地址1有效时,程序启动后自动进入Boot。当且仅当启动地址2有效时,程序启动后自动进入App。如图2-a,运行Reboot更新CB途中断电。重新上电后,由于启动地址1的内容是在刷新开始就被更新了是有效的,程序会进入CB运行,但是CB不完整,必然运行出错,程序不会跳入ReBoot里,从而不能再刷新。

对策一,Boot有效性标志与启动地址重合:考虑最普遍情况,CPU只能整块的擦出,可以最少4字节单位写,没有顺序限制,现在CB只用了一个Block。调整刷新顺序:擦出成功后,先刷新橙色区域,最后一步刷新启动地址1有效性标志。这样,即使在更新橙色区域过程中掉电。重新上电后,程序依然从启动地址2开始运行,即重新运行Reboot继续等待刷新CB指令。

对策二,Boot有效性标志独立置尾,增加Boot有效性检查逻辑:把Boot分成2个段,Sec1里仅存放少量的启动自检查逻辑,当它检测到置于Sec2末尾的CB_ValidFlg无效时,即认为Boot是不完整的,则程序控制跳转到启动地址2继续运行ReBoot,重新刷新Boot。当Sec1的逻辑检测到CB_ValidFlg有效时,即认为Boot刷新完成,则程序控制跳转入Sec2里,接下来就可以刷入新的App了。

RAM

综上,Boot自刷新方式需要综合考虑多种因素,以确保汽车电子系统的可靠性和稳定性。

精彩栏目

限时优惠

查看更多