一种含固定刷写区且可回滚的双备份方法技术

技术编号:30157353 阅读:27 留言:0更新日期:2021-09-25 15:09
一种包含固定刷写区且可回滚的软件备份方法,包括(1)更新软件数据时,先对下载区A/B的运行标志位进行判断,并将软件数据更新至对应的下载区内;(2)根据当前的程序运行区标志位以及两个下载区A/B的软件状态进行校验,并根据校验后的结果,刷新程序切换标志位,结合程序切换标志位和程序运行区标志位的判断,选择对应的下载区软件进行解压并传输至运行区;(3)对程序切换标志位以及程序运行区标志位进行刷新;(4)在收到外部命令使程序切换标志位置位后,校验下载区A/B的软件状态,对当前运行区运行的软件数据进行切换,实现软件回滚。本方法可以避免出现同时升级失败的情况,减少备份操作,减小分区占用空间,提高软件刷写效率。提高软件刷写效率。提高软件刷写效率。

【技术实现步骤摘要】
一种含固定刷写区且可回滚的双备份方法


[0001]本专利技术涉及软件控制
,具体涉及软件升级备份与回滚技术。

技术介绍

[0002]当前,嵌入式设备的功能越来越丰富,其软件所占用的空间也越来越多,升级时间也越来越长。同时,在升级时因突发情况或者升级软件问题会导致设备重启甚至死机,从而影响设备的使用。
[0003]专利文献CN110399152A提出了一种双备份升级方法,该方法将设备分为两个运行区,每进行一次升级时会对非当前运行区进行升级,并且在升级完成后对当前运行区的软件进行一次校验;若升级成功,则将升级后的非运行区转化为运行区在该分区运行软件,而原运行区则转为非运行区;若因某些原因导致升级失败,则保持原运行区并在该运行区运行软件,原非运行区继续作为非运行区。
[0004]以上方法存在几个问题点,第一,方法中将设备分为两个运行区,每个运行区都包含完整的软件,在软件功能增加,软件大小越来越大时,运行区空间会很紧张;第二,方法中只能在软件升级时进行运行区软件的变更,不支持软件回滚;第三,方法中若连续两次因升级软件原因导致分区死机后,会直接导致设备正常无法使用,需要借助其他工具来对设备的两个分区进行恢复。

技术实现思路

[0005]本专利技术针对解决
技术介绍
的问题缺点,提供一种含固定刷写区且可回滚的双备份方法,避免出现同时升级失败的情况,减少备份操作,减小分区占用空间、提高软件刷写效率。
[0006]本专利技术的技术方案如下:
[0007]一种含固定刷写区且可回滚的双备份方法,所述方法运行需要将控制器中的程序存储区域固定划分为一个软件运行区与两个软件下载区A/B,其中软件运行区仅用于运行升级后的软件,软件下载区A/B仅用于接收并储存升级的软件,所述方法包括如下步骤:
[0008]1、更新软件数据时,先对下载区A/B的运行标志位进行判断,并将软件数据更新至对应的下载区内;
[0009]2、软件数据更新完成后,根据当前的程序运行区标志位以及两个下载区A/B的软件状态进行校验,并根据校验后的结果,刷新程序切换标志位,然后结合程序切换标志位和程序运行区标志位的判断,选择对应的下载区软件进行解压并传输至运行区,在运行区对软件更新。
[0010]3、在运行区软件更新完毕后,对程序切换标志位以及程序运行区标志位进行刷新;
[0011]4、在收到外部命令使程序切换标志位置位后,校验下载区A/B的软件状态,并结合程序运行区标志位状态,对当前运行区运行的软件数据进行切换,实现软件回滚。
[0012]本方法中,升级软件需要以压缩包的的形式存在,在升级进入下载区A/B后需要经过解压并且校验成功后才能将数据传输至运行区运行,这样可以减小升级包所占的空间大小,以此节约两个下载区的空间以扩大运行区空间,同时进一步加快软件的升级速度;解压时的校验也可以进一步提升软件升级的成功率。
[0013]本方法中,下载区A/B可以分别储存两版不同的软件(新版和旧版),根据运行区的需求(或外部命令)来切换运行区的软件版本,以实现软件回滚功能。
[0014]本专利技术的优点如下:
[0015]1、本专利技术中,升级优先在非当前使用分区进行升级,即出现升级失败后,依旧会在该失败分区继续升级,不会出现两个分区同时升级失败的情况。比如当前判断使用的A分区的软件,后续升级会一直在B分区进行,直到B分区升级成功并且将使用软件切换至B分区。
[0016]2、本专利技术中,直接在刷写时就会对分区进行判断,不会对原软件所在的分区进行刷写覆盖,即在保持原软件存在的状态下,减少备份操作,提高软件刷写效率。
[0017]3、本专利技术中,是采用双分区轮流工作,两个下载区轮流切换工作而不是一直在分区A或者分区B工作,避免某一分区持续工作,造成故障发生。
[0018]4、本专利技术可以通过一定的命令直接切换其他分区的软件(前提是该分区软件符合要求),实现软件回滚功能。
[0019]5、本专利技术的升级软件包处于压缩状态,可以减小分区占用空间,同时提高升级效率。
附图说明
[0020]图1:是程序刷写示意图;
[0021]图2:判断运行区参考流程图;
[0022]图3:切换程序判断及操作参考流程图。
具体实施方式
[0023]以下结合附图和实施例进一步说明本专利技术的技术方案。
[0024]参见图1、图2和图3,本专利技术提出的包含固定刷写区且可回滚的软件备份方法,其运行需要将控制器中的程序存储区域固定划分为一个软件运行区与两个软件下载区A/B,其中软件运行区仅用于运行升级后的软件,软件下载区A/B仅用于接收并储存升级的软件,方法包括如下步骤:
[0025](1)更新软件数据时,先对下载区A/B的运行标志位进行判断,并将软件数据更新至对应的下载区内;
[0026](2)软件数据更新完成后,根据当前的程序运行区标志位以及两个下载区A/B的软件状态进行校验,并根据校验后的结果,刷新程序切换标志位,然后结合程序切换标志位和程序运行区标志位的判断,选择对应的下载区软件进行解压并传输至运行区;
[0027](3)在运行区软件更新完毕后,对程序切换标志位以及程序运行区标志位进行刷新;
[0028](4)在收到外部命令使程序切换标志位置位后,校验下载区A/B的软件状态,并结合程序运行区标志位状态,对当前运行区运行的软件数据进行切换,实现软件回滚。
[0029]具体地,所述步骤(1)中,每次进行FBL下载/软件升级时,即步骤(1)的更新软件数据时,控制器判断当前使用的下载区即对下载区A/B的运行标志位进行判断(比如判断当前使用的软件为下载区A中的软件),然后将新版程序下载至非当前下载区,即若判断此时使用的软件是下载区A中的软件,则非当前下载区所指的是下载区B,则将新软件下载(或叫更新、刷写)至下载区B,所下载的程序段均保存在程序下载区。
[0030]具体地,在步骤(2)软件数据更新完成后即程序下载成功后,需要对下载的文件进行有效性检查即对软件状态进行校验,并将下载区的程序有效标志位置位,程序切换标志位会根据下载区程序的有效性判断是否进行置位,在程序切换标志位置位后,会再次判断程序运行区标志位以及下载区程序有效性,根据最后程序运行区标志位的值将对应下载区的升级数据解压并传输给运行区。
[0031]具体地,在步骤(4)进行程序切换时,需要先对运行区判断标志(RunningArea_Flag)进行判断,确认需要使用的运行区,之后检查运行区应用程序是否有效,检查为有效则在延时后跳转至程序运行区运行程序。即,本专利技术可以直接通过外部指令进行软件切换(回滚),而不仅在软件更新失败时进行回滚,不需要进行软件刷写/下载这一步,当然前提是下载区A/B均有软件存在且能够通过校验。
[0032]具体地,所述步骤(4)中,当因为软件不规范、刷写时断电,导致下载区A/B的程序均不无法通过其有效性检测,此时进行程序切换,会有否定回复并且拒绝程序切换,并本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种含固定刷写区且可回滚的双备份方法,其特征在于,所述方法运行需要将控制器中的程序存储区域固定划分为一个软件运行区与两个软件下载区A/B,其中软件运行区仅用于运行升级后的软件,软件下载区A/B仅用于接收并储存升级的软件,所述方法包括如下步骤:(1)更新软件数据时,先对下载区A/B的运行标志位进行判断,并将软件数据更新至对应的下载区内;(2)软件数据更新完成后,根据当前的程序运行区标志位以及两个下载区A/B的软件状态进行校验,并根据校验后的结果,刷新程序切换标志位,然后结合程序切换标志位和程序运行区标志位的判断,选择对应的下载区软件进行解压并传输至运行区;(3)在运行区软件更新完毕后,对程序切换标志位以及程序运行区标志位进行刷新;(4)在收到外部命令使程序切换标志位置位后,校验下载区A/B的软件状态,并结合程序运行区标志位状态,对当前运行区运行的软件数据进行切换,实现软件回滚。2.根据权利要求1所述的含固定刷写区且可回滚的双备份方法,其特征在于,所述升级软件以压缩包的的形式存在,在升级进入下载区A/B后经过解压并且校验成功后才将数据传输至运行区运行。3.根据权利要求1所述的含固定刷写区且可回滚的双备份方法,其特征在于,所述下载区A/B分别储存新旧两版不同的软件,根据运行区的需求或外部命令来切换运行区的软件版本,以实现软件回滚功能。4.根据权利要求1所述的含固定刷写区且可回滚的双备份方法,其特征在于,所述步骤(1)...

【专利技术属性】
技术研发人员:黎雨桐司彦涛袁厚万宋雪聂要辉张学勇
申请(专利权)人:重庆长安汽车股份有限公司
类型:发明
国别省市:

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

1