一种嵌入式程序在线更新方法技术

技术编号:27316827 阅读:20 留言:0更新日期:2021-02-10 09:50
本发明专利技术公开了一种嵌入式程序在线更新系统,其包括FLASH程序存储区和RAM运行程序区,FLASH程序存储区分为A区和B区两个区域,其中一个区域作为引导程序区域,另一个区域作为改写程序区域,引导程序区域负责将程序BOOT到RAM运行程序区中运行,在RAM运行程序区中运行的程序将更新的代码写入改写程序区域。本发明专利技术采用FLASH分区存储和引导的程序加载方式,即使更新过程被打断,也能保护程序不被破坏,下一次启动时程序仍然能够执行在线更新操作,全面提升了设备的安全性和可靠性。面提升了设备的安全性和可靠性。面提升了设备的安全性和可靠性。

【技术实现步骤摘要】
一种嵌入式程序在线更新方法


[0001]本专利技术属于嵌入式计算机
,涉及一种安全可靠的嵌入式程序在线更新方法。

技术介绍

[0002]嵌入式设备软件在线更新,需要通过外部接口接收新版本的程序,然后将新版本的程序写入FLASH,替换旧版本的程序。传统方法如图1所示,FLASH中存储的程序被引导到RAM,RAM加载完成后执行程序的代码段。程序收到在线更新请求时,会改写FLASH中存储的程序。首先将FLASH存储区中的旧程序擦除,然后将新版本的程序写入原先的存储区。改写FLASH的过程耗时较长,一旦出现设备断电或者FLASH改写失败的情况,旧版本程序被擦除的同时,新版本的程序也未能完全写入FLASH。这样一来,造成了下一次设备启动时,新版本不完整的程序被加载到RAM。不仅不能实现程序的应用功能,而且在线更新的功能也无法使用,只能通过被迫拆卸设备外壳的手段,手动连接编程器更新程序,造成时间上的损失以及操作繁琐的问题。

技术实现思路

[0003](一)专利技术目的
[0004]针对嵌入式程序在线更新的需求,设计一种安全可靠的嵌入式程序在线更新方法。
[0005](二)技术方案
[0006]为了解决上述技术问题,本专利技术提供一种安全可靠的嵌入式程序在线更新方法,嵌入式程序在线更新方法,更新过程为:对FLASH程序存储区进行A、B分区,实现FLASH中引导程序区域与改写程序区域的分离,引导程序区域负责将程序BOOT到RAM运行程序区中运行,在RAM运行程序区中运行的程序将更新的代码写入改写程序区域;在线更新成功后,通过交换引导程序区域基地址与改写程序区域基地址,实现FLASH中引导程序区域与改写程序区域的交换。
[0007]优选地,将FLASH存储程序A区作为引导程序区,FLASH存储程序B区作为改写程序区,默认引导地址为A区基地址,默认改写地址为B区基地址;程序更新的步骤为:
[0008]步骤一引导
[0009]设备启动后,在A区中存储的旧程序版本被系统的引导程序加载到RAM运行程序区;加载完成后,旧程序在RAM运行程序区中运行,执行应用功能并等待外部的在线更新命令;
[0010]步骤二改写
[0011]在RAM运行程序区中运行的旧程序收到在线更新命令后,接收外部传输的新程序版本;接收完成后,对FLASH存储程序B区进行擦除操作;擦除完成后,将新程序写入FLASH存储程序B区;
[0012]步骤三切换
[0013]将B区的基地址设置为引导地址,A区的基地址设置为改写地址;设备下一次启动时,重复执行步骤一、二、三。
[0014](三)有益效果
[0015]上述技术方案所提供的安全可靠的嵌入式程序在线更新方法,采用FLASH分区存储和引导的程序加载方式,即使更新过程被打断,也能保护程序不被破坏,下一次启动时程序仍然能够执行在线更新操作,全面提升了设备的安全性和可靠性。
附图说明
[0016]图1是传统程序在线更新方式框图。
[0017]图2是存储A区程序更新存储B区程序的框图。
[0018]图3是存储B区程序更新存储A区程序的框图。
具体实施方式
[0019]为使本专利技术的目的、内容、和优点更加清楚,下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述。
[0020]考虑到连接编程器更新程序需要事先拆卸产品外壳,操作不便且效率低下,嵌入式程序的更新方式一般为在线更新。在嵌入式程序在线更新的过程中,一旦断电或设备出现异常,FLASH中的程序会被破坏,影响程序自身功能的实现,而且下一次启动时程序便不能再次执行在线更新操作。本方法采用FLASH分区存储和引导的程序加载方式,即使更新过程被打断,也能保护程序不被破坏,下一次启动时程序仍然能够执行在线更新操作,全面提升了设备的安全性和可靠性。
[0021]参照图2和图3所示,首先,本专利技术提供一种嵌入式程序在线更新系统,包括FLASH程序存储区和RAM运行程序区,FLASH程序存储区分为A区和B区两个区域,其中一个区域作为引导程序区域,另一个区域作为改写程序区域,引导程序区域负责将程序BOOT到RAM运行程序区中运行,在RAM运行程序区中运行的程序将更新的代码写入改写程序区域。
[0022]其中,A区作为引导程序区域,B区作为改写程序区域时,引导地址为A区基地址,改写地址为B区基地址;程序在线更新成功后,交换引导程序区域基地址与改写程序区域基地址,实现FLASH中引导程序区域与改写程序区域的交换。
[0023]B区作为引导程序区域,A区作为改写程序区域时,引导地址为B区基地址,改写地址为A区基地址;程序在线更新成功后,交换引导程序区域基地址与改写程序区域基地址,实现FLASH中引导程序区域与改写程序区域的交换。
[0024]本专利技术通过对FLASH程序存储区进行A/B分区,实现FLASH中引导程序区域与改写程序区域的分离。引导程序区域负责将程序BOOT到RAM中运行,在RAM中运行的程序会将更新的代码写入改写程序区域。在更新过程中,断电或FLASH异常仅会影响改写程序区域。设备下一次启动后,引导程序仍然可以被加载到RAM中正常执行应用功能或者更新功能。在线更新成功后,通过交换引导程序区域基地址与改写程序区域基地址,实现FLASH中引导程序区域与改写程序区域的交换。设备下一次启动时,会默认加载新版本的程序,从而完成嵌入式软件的版本升级。
[0025]在嵌入式设备中,FLASH是程序存储的载体,RAM的是程序运行的载体。如图2所示,将FLASH存储程序A区作为引导程序区,FLASH存储程序B区作为改写程序区。默认引导地址为A区基地址,默认改写地址为B区基地址。
[0026]具体实施步骤如下:
[0027]步骤一引导
[0028]设备启动后,在A区中存储的旧程序1.0版本会被系统的引导程序加载到RAM。加载完成后,旧程序在RAM中运行,执行应用功能并等待外部的在线更新命令。
[0029]步骤二改写
[0030]在RAM中运行的旧程序收到在线更新命令后,接收外部传输的新程序2.0版本。接收完成后,对FLASH存储程序B区进行擦除操作。擦除完成后,将新程序写入FLASH存储程序B区。在写入的过程中,一旦出现设备断电或者新程序写入FLASH失败。在设备下一次启动时,重复执行步骤一,旧程序会被加载,可以重新进行在线更新。
[0031]步骤三切换
[0032]如果在步骤二中新程序成功被写入了FLASH存储程序B区,则将B区的基地址设置为引导地址,A区的基地址设置为改写地址。如图3所示,设备下一次启动时,会重复执行步骤一、二、三。区别在于,由于A/B区引导地址与改写地址的切换,在线更新后存储在B区的2.0版本程序会被加载到RAM中运行,下一次的更新会擦除A区并将更新版本的3.0版本程序写入A区。
[0033]循环交替更新A/B区,保证了旧版本的程序在更新的过程中不被破坏,避免本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种嵌入式程序在线更新系统,其特征在于,包括FLASH程序存储区和RAM运行程序区,FLASH程序存储区分为A区和B区两个区域,其中一个区域作为引导程序区域,另一个区域作为改写程序区域,引导程序区域负责将程序BOOT到RAM运行程序区中运行,在RAM运行程序区中运行的程序将更新的代码写入改写程序区域。2.如权利要求1所述的嵌入式程序在线更新系统,其特征在于,所述A区作为引导程序区域,B区作为改写程序区域时,引导地址为A区基地址,改写地址为B区基地址;程序在线更新成功后,交换引导程序区域基地址与改写程序区域基地址,实现FLASH中引导程序区域与改写程序区域的交换。3.如权利要求1所述的嵌入式程序在线更新系统,其特征在于,所述B区作为引导程序区域,A区作为改写程序区域时,引导地址为B区基地址,改写地址为A区基地址;程序在线更新成功后,交换引导程序区域基地址与改写程序区域基地址,实现FLASH中引导程序区域与改写程序区域的交换。4.一种嵌入式程序在线更新方法,其特征在于,更新过程为:对FLASH程序存储区进行A、B分区,实现FLASH中引导程序区域与改写程序区域的分离,引导程序区域负责将程序BOOT到RAM运行程序区中运行,在RAM运行程序区中运行的程序将更新的代码写入改写程序区域;在线更新成功后,通过交换引导程序区域基地址与改写程序区域基地址,实现FLASH中引导程序区域与改写程序区域的交换。5.如权利要求4所述的嵌入式程序在线更新方法,其特征在于,将FLASH存储程序A区作为引导程序区,FLASH存储程序B区作为改写程序区,默认引导地址为A区基地址,默认改写地址为B区基地址;程序更新的步骤为:步骤一 引导设备启动后,在A区中存储的旧程序版本被系统的引导程序加载到RAM运行程序区;加载完成后,旧程序在RAM运行程序区中运行,执行应用功能并等待外部的在线更新命令;步骤二 改写在RAM运行程序区中运行的旧程序收到在线更新命令后,接收外部传输的新程序版本;接收完成后,对FLASH存储程序B区进行...

【专利技术属性】
技术研发人员:孙磊王进军朵慧智
申请(专利权)人:天津津航计算技术研究所
类型:发明
国别省市:

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

1