当前位置: 首页 > 专利查询>同济大学专利>正文

基于Bootloader自更新的ECU固件更新方法技术

技术编号:11053545 阅读:241 留言:0更新日期:2015-02-18 17:42
本发明专利技术涉及一种基于Bootloader自更新的ECU固件更新方法,包括:步骤S1:划分ECU系统的存储空间;步骤S2:判断ECU系统接收到应用程序更新请求还是Bootloader更新请求,若为应用程序更新请求,执行步骤S3,若为Bootloader更新请求,执行步骤S4;步骤S3:采用增量更新方式更新应用程序代码区的代码,执行步骤S5;步骤S4:Bootloader程序进行整体式自更新Bootloader区的代码,执行步骤S5;步骤S5:重写版本信息区中的相应版本信息,ECU系统复位。与现有技术相比,本发明专利技术具有节约时间和成本,保证Bootloader的安全性,以及烧写过程更加高效可靠等优点。

【技术实现步骤摘要】

本专利技术涉及一种固件更新方法,尤其是涉及一种基于Bootloader自更新的E⑶固件更新方法。
技术介绍
在汽车电子控制单元(ECU)中,不需要加载操作系统内核,引导程序(Bootloader)是用来完成嵌入式系统启动和系统软件加载工作的程序,主要工作是用于应用程序代码的更新,即在线更新。 一般对ECU进行程序烧写,常采用整体更新的方式,先对整个存储空间进行擦除,然后将整个新的程序烧写至目标ECU中。但有的时候,前后ECU软件版本改动不大,若仍然采用整体更新的方式,则更新效率低,且更新时占用的内存消耗也大。 同时,在设计Bootloader时,应尽可能保证其功能完善且没有漏洞。但是不能完全消除漏洞存在和考虑不全的可能性。所以还需要考虑Bootloader的自更新功能,以便能够在发现问题或者改善其相关功能后,发布新的版本,通过远程更新的方式,对其进行重新烧写,进一步保证Bootloader的各项性能,从而保证E⑶固件远程更新的高效、安全和可靠的执行。
技术实现思路
本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种,应用程序的更新采用增量更新方法,只对新版本程序不同于旧版本程序的部分进行更新,节约时间和成本,而Bootloader自更新能保证Bootloader的安全性,使得程序烧写更加高效可靠。 本专利技术的目的可以通过以下技术方案来实现: —种基于Bootloader自更新的E⑶固件更新方法,包括以下步骤: 步骤S1:运行Bootloader程序,将E⑶系统的存储空间划分为用户数据存储区和程序存储区,所述用户数据存储区包括版本信息区和标记区,所述版本信息区包括Bootloader版本信息和应用程序版本信息,所述标记区包括更新请求标记、应用程序有效性标记和引导区交换标记,所述程序存储区包括应用程序更新区、Bootloader区和固定区域,所述应用程序更新区包括应用程序代码区和中断向量重映射表,所述固定区域包括复位向量重映射表和中断向量表; 步骤S2:读取更新请求标记,判断ECU系统接收到应用程序更新请求还是Bootloader更新请求,若为应用程序更新请求,执行步骤S3,若为Bootloader更新请求,执行步骤S4 ; 步骤S3:获取最新的应用程序版本信息,采用增量更新方式更新应用程序代码区的代码,执行步骤S5; 步骤S4:获取最新的Bootloader版本信息,Bootloader程序进行整体式自更新Bootloader区的代码,执行步骤S5 ; 步骤S5:更新版本信息区中的Bootloader版本信息或应用程序版本信息,E⑶系统复位。 所述用户数据存储区为EEPROM区域。 所述用户数据存储区为Flash区域,E⑶系统的存储空间还包括用户数据备份区,为用户数据存储区的信息备份。 所述应用程序代码区划分为若干个功能模块,每个功能模块存储不同功能的应用程宇代码,每个功能模块具有一个应用程序有效性标记与之对应。 所述应用程序有效性标记分为有效和无效,若功能模块对应的应用程序有效性标记为有效,则执行此功能模块的应用程序代码,反之不执行。 所述步骤S3具体为: 301:获取最新应用程序版本彳目息以及对应的最新应用程序代码; 302:由中断向量表跳转中断向量重映射表,执行相应中断处理程序,对比最新应用程序代码与现有应用程序代码,获得两者间有变动的功能模块,并使与之对应的应用程序有效性标记为无效; 303:擦除应用程序有效性标记为无效的功能模块中现有应用程序代码,烧写最新应用程序代码到擦除后的功能模块,并使与之对应的应用程序有效性标记为有效,完成增量更新。 所述Bootloader区划分为两块Bootloader分区域。 所述引导区交换标记分为无效和有效,无效表示不切换E⑶系统运行的Bootloader分区域,有效表示切换EQJ系统运行的Bootloader分区域。 所述步骤S4具体为: 401:获取最新Bootloader版本信息以及对应的最新Bootloader程序代码; 402:ECU系统复位,由中断向量表跳转到复位向量重映射表,读取引导区交换标记为无效,不切换E⑶运行的Bootloader分区域,则跳转到原Bootloader分区域,运行现有 Bootloader 程序; 403:擦除与当前Bootloader分区域对应的另一 Bootloader分区域,并烧写进最新Bootloader程序代码,引导区交换标记设为有效; 404:ECU系统再次复位,由中断向量表跳转到复位向量重映射表,读取引导区交换标记为有效,则跳转切换后的Bootloader分区域,运行最新Bootloader程序代码,引导区交换标记设为无效。 与现有技术相比,本专利技术具有以下优点: I)本专利技术方法能够通过Bootloader实现E⑶应用程序在线烧写,应用程序采用增量更新方法,只对新版本程序不同于旧版本程序的部分进行更新,节约时间和成本; 2)本专利技术同时实现了 Bootloader自我更新的功能,Bootloader自更新能保证Bootloader的安全性,使得程序烧写更加高效可靠。 3)本专利技术针对应用程序增量更新和Bootloader自更新对E⑶系统的存储空间进行了合理规划,包括:在用户数据存储区为Flash区域时,还分配了一个用户数据备份区;Bootloader分区域与复位中断向量做隔离,防止丢失复位向量,并利用复位向量重映射,完成两个Bootloader分区域之间的切换,以便在更新过程的任意时刻发生异常,都能保证其重映射到功能完备的Bootloader区中,避免整个系统进入“孤立”状态。 【附图说明】 图1为本专利技术方法流程图; 图2为本专利技术E⑶存储空间规划示意图; 图3为本专利技术ECU应用程序增量更新方法中存储空间布局示意图; 图4为本专利技术Bootloader自更新方法中存储空间布局示意图。 【具体实施方式】 下面结合附图和具体实施例对本专利技术进行详细说明。本实施例以本专利技术技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本专利技术的保护范围不限于下述的实施例。 如图1所示,一种基于Bootloader自更新的E⑶固件更新方法,包括以下步骤: 步骤S1:如图2所示,运行Bootloader程序,将E⑶系统的存储空间划分为用户数据存储区和程序存储区,用户数据存储区(Data Flash)包括版本信息区和标记区,版本信息区包括Bootloader版本信息和应用程序版本信息,标记区包括更新请求标记、应用程序有效性标记和引导区交换标记,程序存储区(Program Flash/Code Flash)包括应用程序更新区、Bootloader区和固定区域,应用程序更新区包括应用程序代码区和中断向量重映射表,固定区域包括复位向量重映射表和中断向量表。 在版本验证时,需要读取版本信息区的信息,同上位机发送过来的版本信息作比对,同时在更新完成后,需要重写版本信息。为了防止外部异常,该部分信息需要单独存储,一直保持有效性。 在该布局中应用程序更新区、Bootloader区以及固定区域位于程序/代码Flash中,该三块区域本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201410577297.html" title="基于Bootloader自更新的ECU固件更新方法原文来自X技术">基于Bootloader自更新的ECU固件更新方法</a>

【技术保护点】
一种基于Bootloader自更新的ECU固件更新方法,其特征在于,包括以下步骤:步骤S1:运行Bootloader程序,将ECU系统的存储空间划分为用户数据存储区和程序存储区,所述用户数据存储区包括版本信息区和标记区,所述版本信息区包括Bootloader版本信息和应用程序版本信息,所述标记区包括更新请求标记、应用程序有效性标记和引导区交换标记,所述程序存储区包括应用程序更新区、Bootloader区和固定区域,所述应用程序更新区包括应用程序代码区和中断向量重映射表,所述固定区域包括复位向量重映射表和中断向量表;步骤S2:读取更新请求标记,判断ECU系统接收到应用程序更新请求还是Bootloader更新请求,若为应用程序更新请求,执行步骤S3,若为Bootloader更新请求,执行步骤S4;步骤S3:获取最新的应用程序版本信息,采用增量更新方式更新应用程序代码区的代码,执行步骤S5;步骤S4:获取最新的Bootloader版本信息,Bootloader程序进行整体式自更新Bootloader区的代码,执行步骤S5;步骤S5:更新版本信息区中的Bootloader版本信息或应用程序版本信息,ECU系统复位。...

【技术特征摘要】
1.一种基于Bootloader自更新的E⑶固件更新方法,其特征在于,包括以下步骤: 步骤S1:运行Bootloader程序,将E⑶系统的存储空间划分为用户数据存储区和程序存储区,所述用户数据存储区包括版本信息区和标记区,所述版本信息区包括Bootloader版本信息和应用程序版本信息,所述标记区包括更新请求标记、应用程序有效性标记和引导区交换标记,所述程序存储区包括应用程序更新区、Bootloader区和固定区域,所述应用程序更新区包括应用程序代码区和中断向量重映射表,所述固定区域包括复位向量重映射表和中断向量表; 步骤S2:读取更新请求标记,判断ECU系统接收到应用程序更新请求还是Bootloader更新请求,若为应用程序更新请求,执行步骤S3,若为Bootloader更新请求,执行步骤S4 ; 步骤S3:获取最新的应用程序版本信息,采用增量更新方式更新应用程序代码区的代码,执行步骤S5; 步骤S4:获取最新的Bootloader版本信息,Bootloader程序进行整体式自更新Bootloader区的代码,执行步骤S5 ; 步骤S5:更新版本信息区中的Bootloader版本信息或应用程序版本信息,ECU系统复位。2.根据权利要求1所述的基于Bootloader自更新的ECU固件更新方法,其特征在于,所述用户数据存储区为EEPROM区域。3.根据权利要求1所述的基于Bootloader自更新的ECU固件更新方法,其特征在于,所述用户数据存储区为Flash区域,ECU系统的存储空间还包括用户数据备份区,为用户数据存储区的信息备份。4.根据权利要求1所述的基于Bootloader自更新的ECU固件更新方法,其特征在于,所述应用程序代码区划分为若干个功能模块,每个功能模块存储不同功能的应用程序代码,每个功能模块具有一个应用程序有效性标记与之对应。5.根据权利要求4所述的基于Bootloader自更新的ECU固件更新方法,其特征在于,所述应用程序有效性标记分为有效和无效,若功能模块对应的应用...

【专利技术属性】
技术研发人员:张戟廖治谢朋甫朱翔宇彭勇陈启鹏
申请(专利权)人:同济大学
类型:发明
国别省市:上海;31

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

1