一种车载电控单元控制程序备份升级方法技术

技术编号:22185684 阅读:41 留言:0更新日期:2019-09-25 03:30
本发明专利技术涉及软件管理领域,具体涉及一种车载电控单元控制程序备份升级方法。本发明专利技术提供的车载电控单元控制程序备份升级方法,在程序生成的过程中,在不同位置生成两个完全相同的程序,并将其合成在同一执行文件中,这样保证在车载电控单元中同时有两套完全相同的可执行程序,在进行程序更新升级时,备份程序的存在可以让控制器无顾忌的进行更新,即使更新失败,也会有备份程序保证车载控制器的正常运行。

A Backup and Upgrade Method for Vehicle Electronic Control Unit Control Program

【技术实现步骤摘要】
一种车载电控单元控制程序备份升级方法
本专利技术涉及软件管理领域,具体涉及一种车载电控单元控制程序备份升级方法。
技术介绍
随着汽车技术的发展,人们对整车安全性和舒适性的要求越来越高,车载电控单元(ElectronicControlUnit,简称ECU)的功能逐步增强,数量也越来越多,这就造成汽车控制中,对车控软件的依赖越来越高;另外,在售后维修保养时,外部诊断设备也经常需要与车载控制模块建立通讯链接,以了解汽车控制状况,这就对车控软件运行的稳定性提出了更高的要求。车控软件通常需要定期更新以优化性能或者解决问题。现有技术中,软件的更新大多需要车主把汽车开到维修点,由维修点专业人员进行操作,且软件更新过程不能出现中断或者操作错误,否则车载控制器就会无法正常工作,因此目前软件的更新即依赖于专业人员操作,也依赖稳定的更新操作环境,车控软件必不可少的更新成立一种高危操作。
技术实现思路
本专利技术的专利技术目的在于:提供一种能够避免执行软件升级中遇到错误而使汽车无法行驶的方法,为了实现上述目的为了实现上述目的,本专利技术采用的技术方案为:一种车载电控单元控制程序备份升级方法,在程序生成时,程序链接的步骤中,使用2个不同的link脚本文件,将程序代码同时链接在两个完全不同的地址区。优选的,所述2个不同的link脚本中,对程序代码的两个存放区域通过固定偏移地址的方式实现。进一步的,将存放在两个完全不同地址区的程序代码合并在一个执行文件中,并将其植入ECU运行。即,本法专利技术提供的方法并不需要维护两个版本的程序,只需要在程序生成时产生两份完全相同的代码即可。进一步的,在对车载电控单元进行程序更新时,采用如下步骤:软件启动步骤:ECU上电后,启动代码区上电,进行代码完整性和兼容性自检,如发现代码不完整或不兼容,则程序停留在启动代码区;否则,进入客户指定功能区,对应用代码区进行代码完整性和兼容性自检,如发现应用代码区不正常时,跳转到备份应用代码区,进入备份应用代码区主函数;否则,进入应用代码区主函数;软件更新步骤:判断程序是否运行在备份应用代码区,如是,对应用代码区程序进行更新;否则,对应用代码区或备份应用代码区进行更新。进一步的,程序运行在应用代码区时,如对应用代码区进行更新,则需将程序转入备份应用代码区运行。进一步的,应用代码区程序可以正常运行时,才可以执行备份应用代码区的程序更新操作。进一步的,备份应用代码区程序可以正常运行时,才可以执行应用代码区的程序更新操作。综上所述,由于采用了上述技术方案,本专利技术的有益效果是:本专利技术提供的车载电控单元控制程序备份升级方法,在程序生成的过程中,在不同位置生成两个完全相同的程序,并将其合成在同一执行文件中,这样保证在车载电控单元中同时有两套完全相同的可执行程序,在进行程序更新升级时,备份程序的存在可以让控制器无顾忌的进行更新,即使更新失败,也会有备份程序保证车载控制器的正常运行。附图说明图1是本专利技术实施中两个相同程序代码分布示例图。图2是本专利技术实施例中对控制程序更新流程图。具体实施方式下面结合附图,对本专利技术作详细的说明。为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。如图1、图2所示,本实施例提供一种车载电控单元控制程序备份升级方法,众所周知的,任何嵌入式程序的生成过程都包括编译、链接、执行文件生成这几个步骤,同样的,本专利技术提供的ECU控制程序也不例外,不同的是,本实施例中,在程序链接步骤中,使用2个不同的link脚本文件,将程序链接在两个完全不同的地址区,优选的,所述2个不同的link脚本中,对程序代码的两个存放区域通过固定偏移地址的方式实现。进一步的,在程序执行文件生成步骤中,将存放在两个完全不同地址区的程序代码合并在一个执行文件中,并将其植入ECU,代码通过CAN通讯方式下载到ECU中,具体的代码分布可参考图1描述般分布在ECU的Flash中,执行两个程序中的任意一个均可保证ECU的正常运行。同时,两个程序中的任意一个出现问题,都可自动切换至另外一个程序,从而保证ECU继续正常运行。即,本法专利技术提供的方法并不需要维护两个版本的程序,只需要在程序生成时产生两份完全相同的代码即可。而在需要对ECU进行程序更新升级时,采用如下步骤:软件启动步骤:ECU上电后,启动代码区(Startup-blockArea)上电,进行代码完整性和兼容性自检,代码完整性自检是指检查代码是否被部分擦除或改写,代码兼容性自检是指是否被更新为其他不兼容代码,如发现代码不完整或不兼容,则程序停留在Startup-blockArea。如未发现代码不完整或不兼容,则进入客户指定功能区(customer-blockArea),对应用代码区(ApplicationArea)进行代码完整性和兼容性自检,如发现应用代码区不正常时,跳转到备份应用代码区(BackupApplicationArea),进入备份应用代码区主函数,即,此时ECU是由备份程序控制运行。如应用代码区(ApplicationArea)代码正常,则进入应用代码区主函数,即,此时ECU是由主程序控制运行。在软件更新和/或升级时,采用如下步骤:判断程序是否运行在备份应用代码区,如是,则对应用代码区程序进行更新;否则,选择对应用代码区或备份应用代码区进行更新。应注意的是,程序运行在应用代码区时,如对应用代码区进行更新,则需将程序转入备份应用代码区运行。另外,更新应用代码区或者备份应用代码区时保证需有另一区域程序可完整运行,即应用代码区程序可以正常运行时,才可以执行备份应用代码区的程序更新操作。同样的,备份应用代码区程序可以正常运行时,才可以执行应用代码区的程序更新操作,否则不能进行正常更新升级。以上所述仅为本专利技术的较佳实施例而已,并不用以限制本专利技术,凡在本专利技术的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本专利技术的保护范围之内。本文档来自技高网...

【技术保护点】
1.一种车载电控单元控制程序备份升级方法,其特征在于,在程序生成时,程序链接的步骤中,使用2个不同的link脚本文件,将程序代码同时链接在两个完全不同的地址区。

【技术特征摘要】
1.一种车载电控单元控制程序备份升级方法,其特征在于,在程序生成时,程序链接的步骤中,使用2个不同的link脚本文件,将程序代码同时链接在两个完全不同的地址区。2.如权利要求1所述的方法,其特征在于,所述2个不同的link脚本中,对程序代码的两个存放区域通过固定偏移地址的方式实现。3.如权利要求1所述的方法,其特征在于,将存放在两个完全不同地址区的程序代码合并在一个执行文件中。4.如权利要求3所述的方法,其特征在于,在对车载电控单元进行程序更新时,采用如下步骤:软件启动步骤:启动代码区上电,进行代码完整性和兼容性自检,如发现代码不完整或不兼容,则程序停留在启动代码区;否则,进入客户指定功能区,对应...

【专利技术属性】
技术研发人员:孙政臣张兴春
申请(专利权)人:四川宜途汽车电子科技有限公司
类型:发明
国别省市:四川,51

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

1