一种基于bootloader的自更新与应用程序增量更新的系统设计方法技术方案

技术编号:26650366 阅读:29 留言:0更新日期:2020-12-09 00:44
本发明专利技术提供了一种ECU Bootloader系统的设计方法,包括步骤一准备更新的映像文件;步骤二:ECU上电,启动Bootloader;步骤三:Recovery组件识别上位机是否发送更新请求,否则执行步骤四,是则执行步骤五;步骤四:执行应用程序,Backdoor组件等待上位机更新请求;步骤五:Recovery组件从上位机接收Flash‑Kernel组件;步骤六:CPU移交控制权给Flash‑Kernel组件;步骤七:Flash‑Kernel组件从上位机接收更新的映像文件;步骤八:调用Flash擦写函数将映像文件写入Flash;步骤九:上位机提示完成在线升级。该系统应用于汽车电子电控领域,通过对ECU的自主分区与上位机的自主开发实现ECU Bootloader与应用程序的在线升级,本发明专利技术不需要硬件触发进入在线升级模式,也不受限于芯片生产厂商是否内置了Boot‑Rom,系统提高了整车厂的生产效率,大幅降低成本。

【技术实现步骤摘要】
一种基于bootloader的自更新与应用程序增量更新的系统设计方法
本专利技术属于汽车电子电控领域,尤其是涉及一种基于bootloader的自更新与应用程序增量更新的系统设计方法。
技术介绍
汽车ECU软件的升级发生在汽车研发、测试、生产和售后中,在这些阶段中,需要对ECU软件进行漏洞修复和算法的升级,而现有ECU软件升级方法存在以下一些缺陷:一、一般ECU固定在车身内,不易拔出,拔出过程中容易造成线束损坏ECU也通过机械外壳和螺丝钉密封起来,拆开外壳费时费力,频繁插拔调试插座容易损坏插座、调试器、下载器;二、对于量产车型,逐个拔出ECU、拆开外壳、重新组装,需要大量的人力物力,严重延误上市;三、为了实现ECU软件升级,需要在电路板上保留专用的接口(如JTAG接口、BDM接口),增加了ECU的成本、减少PCB的布线空间,专用调试器或者下载器也需要配备多个。对芯片中的程序进行在线升级,是指通过复用芯片的某些引脚完成程序的算法改进与bug修复。当ECU上电后首先执行Bootloader的第一条指令,在Boot阶段若没有来自用户的请本文档来自技高网...

【技术保护点】
1.一种基于bootloader的自更新与应用程序增量更新的系统设计方法,其特征在于:/n步骤一:使用编译器编译生成的映像文件后缀名为.hex的程序文件,该格式文件包含最终下载到芯片的所有内容,生成Hex文件时通过链接脚本文件实现Hex文件内容规则分布,并对Hex文件进行个性化处理;/n步骤二:对汽车ECU进行上电,启动加载Bootloader;/n步骤三:ECU上电后,首先执行Recovery组件等待50ms来识别上位机是否发送更新请求,如果接收到上位机更新的请求则执行步骤五,否则对应用程序的完整性进行检测,检测成功后则执行第四步;/n步骤四:ECU正常执行应用程序,Backdoor组件集成...

【技术特征摘要】
1.一种基于bootloader的自更新与应用程序增量更新的系统设计方法,其特征在于:
步骤一:使用编译器编译生成的映像文件后缀名为.hex的程序文件,该格式文件包含最终下载到芯片的所有内容,生成Hex文件时通过链接脚本文件实现Hex文件内容规则分布,并对Hex文件进行个性化处理;
步骤二:对汽车ECU进行上电,启动加载Bootloader;
步骤三:ECU上电后,首先执行Recovery组件等待50ms来识别上位机是否发送更新请求,如果接收到上位机更新的请求则执行步骤五,否则对应用程序的完整性进行检测,检测成功后则执行第四步;
步骤四:ECU正常执行应用程序,Backdoor组件集成在所述应用程序中,实时监听上位机更新请求;
步骤五:Recovery组件经自主设计的通信协议从上位机接Flash-Kernel组件,将Flash-Kernel组件置于RAM;
步骤六:CPU将控制权移交给Flash-Kernel组件,Flash-Kernel组件与上位机进行握手认证;
步骤七:Flash-Kernel组件经自主设计的通信协议从上位机接收更新的映像文件;
步骤八:调用Flash擦写函数将映像文件写入Flash中;
步骤九:写入成功后,上位机提示完成在线升级工作。


2.根据权利要求1所述的一种基于bootloader的自更新与应用程序增量更新的系统设计方法,其特征在于:所述步骤一生成的Hex文件分为三种:
第一种Hex文件为包含Backdoor组件的应用程序代码和数据;
第二种Hex文件为包含Recovery组件的Bootloader程序代码和数据;
第三种Hex文件为Flash-Kernel组件的代码和数据;
所述第一种Hex文件与第二种Hex文件决定本次更新时应用程序增量更新还是Bootloader自更新。


3.根据权利要求1所述的一种基于bootloader的自更新与应用程序增量更新的系统设计方法,其特征在于:所述步骤一对Hex文件进行规则排布为将程序代码分为多段,将开发好后基本保持不变的底层驱动划分在多个相邻的Flashsector,将经常需要更新功能的代码划分在剩下的Flashsector,实现Hex文件的增量包处理。


4.根据权利要求3所述的一种基于bootloader的自更新与应用程序增量更新的系统设计方法,其特征在于:对Hex文件进行增量更新包处理的具体过程为:
步骤一-一:打开新旧映像文件;
步骤一-二:依次查找新旧文件中的Sector;
步骤一-三:对比每一个Sector的内容,若内容相同则再新映像文件中删除该相同的Sector,不同则保留该Sector的内容;
步骤一-四:判断是否到达映...

【专利技术属性】
技术研发人员:董勇涛王旭朱仲文田涌君李丞黄登高周炼王维志刘志宏廖志轩
申请(专利权)人:中汽研扬州汽车工程研究院有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1