一种嵌入式设备及其升级方法与流程

文档序号:16996993发布日期:2019-03-02 01:26阅读:318来源:国知局
一种嵌入式设备及其升级方法与流程

本发明涉及嵌入式技术领域,更具体地,涉及一种嵌入式设备及其升级方法。



背景技术:

嵌入式系统由系统的运行环境和产品的功能等特点决定了嵌入式系统的非开放式的运行模式,在这种情况中,对嵌入式系统进行升级能延长使用寿命,弥补产品的缺陷或增加新功能,因此,一种可靠的升级方法能以较低的成本提高产品的竞争力。现有嵌入式系统的升级方案通常使用直接擦写的方法,这种升级方式存在较高的危险性,在升级过程中如果出现异常掉电等情况,数据无法恢复,将导致设备无法正常运行,只能对设备全部再次进行刷新升级,这种方式不稳定安全性较低,出现异常掉电情况操作繁琐,升级耗费时间较多。



技术实现要素:

本发明为克服上述现有技术所述的至少一种缺陷,提供一种安全性较高,出现异常掉电情况数据不会丢失,且不需重新刷新升级的更为可靠的一种嵌入式设备及其升级方法。

为解决上述技术问题,本发明采用了如下技术方案:

一种嵌入式设备,包括硬件设备和软件系统,其中软件系统包括boot区、app区和store区;boot区存储start和upgrade两个运行程序,start进行运行标志的判断,upgrade进行升级文件的拷贝;app区存储设备的应用程序;store区存储设备的升级文件。

进一步地,store区包括filedata、fileinfo和flag,filedata存储升级文件的有效数据;fileinfo存储升级文件的信息,包括deviceid、filelen和filecrc,其中deviceid存储当前设备的id号,filelen存储filedata中的有效数据长度,filecrc存储filedata中有效数据的crc校验值;flag存储start中选择程序跳转的标志,包括upgradevalid、runvalid和filevalid,分别存储升级标志、运行标志和文件标志。

本发明还提供了一种基于本发明提出的嵌入式设备的升级方法,包括升级app应用程序和升级boot升级运行程序,其中升级app应用程序包括如下步骤:

s1-1:验证升级文件:将升级文件的id存储到deviceid中,对设备id号进行验证,验证成功后将id编译到升级文件中;

s1-2:在步骤s1-1完成后,保存升级文件:将升级文件有效数据传输到filedata中;

s1-3:在步骤s1-2完成后,校验升级程序:app应用程序对filedata中数据进行crc校验,然后将filevalid置为有效并将filedata中数据的有效数据长度和crc校验值分别保存在filelen和filecrc中;

s1-4:在步骤s1-3完成后,更新升级程序:start程序判断升级数据是否正确,若正确则将runvalid置为无效,upgrade程序将filedata中的数据写入app区,写入后校验写入数据的正确性,若校验通过则将start程序中的filevalid置为无效,runvalid置为有效,完成程序升级;

升级boot升级运行程序包括如下步骤:

s2-1:接收文件:app应用程序将升级文件有效数据传输到filedata中;

s2-2:在步骤s2-1完成后,更新升级程序:start程序判断升级数据是否正确,若正确则将filedata中的数据写入upgrade,写入后校验写入数据的正确性,若校验通过则将start程序中的upgradevalid置为有效,完成程序升级。

进一步地,步骤s1-1中,所述的升级文件结构为,deviceid、filelen、filecrc和filedata依次排列。

进一步地,步骤s1-3中,所述的数据filecrc、filelen和deviceid分别占4个字节的长度。

进一步地,步骤s1-4和步骤s2-2中,start程序判断升级数据是否正确的步骤如下:

s1-41/s2-21:判断文件标志filevalid是否有效,有效则进入步骤s1-42;

s1-42/s2-22:计算出对应升级文件有效数据的crc,并与存储于filecrc的crc进行crc校验。

作为一种优选方案,若在upgrade程序运行5s时间之内接收到升级指令,则将升级文件写入store区,之后重复步骤s1-4。

具体地,基于上述的app应用程序和boot升级运行程序的升级方法,boot升级运行程序的整体运行流程如下:

s0-1:检测升级标志upgradevalid,若升级标志为真,则进入步骤s0-2,若升级标志为假,则说明boot升级运行程序正在升级,进入步骤s0-4;

s0-2:进行app应用程序下载,判断文件标志filevalid,若文件标志为真,则进行步骤s0-3,若文件标志为假,则跳转至app应用程序;

s0-3:进行app应用程序升级,升级完成跳转并至app应用程序;

s0-4:进行运行标志runvalid判断,若运行标志runvalid为真,则跳转至app应用程序,若运行标志runvalid为假,则说明app应用程序正在升级,跳转回初始状态。

与现有技术相比,有益效果是:用户可以先下载升级文件,待设备可以重启的时候,再重启进行升级,可以节省升级时间;在app应用程序和boot升级运行程序升级过程中,若出现意外掉电、异常等情况均不会导致设备死机,重新启动即可再次进行升级。

附图说明

图1是本发明的嵌入式设备升级方法的整体流程;

图2是本发明的嵌入式设备的软件系统结构图;

图3是升级文件的结构图;

图4是升级文件的下载流程;

图5是app应用程序的更新流程;

图6是boot升级运行程序的更新流程。

具体实施方式

下面结合附图对本发明进行进一步说明。

本发明所公开的一种嵌入式设备包括硬件设备和软件系统,其中软件系统如图2所示,包括boot区、app区和store区;boot区存储start和upgrade两个运行程序,start进行运行标志的判断,upgrade进行升级文件的拷贝;app区存储设备的应用程序;store区存储设备的升级文件。

进一步地,store区包括filedata、fileinfo和flag,filedata存储升级文件的有效数据;fileinfo存储升级文件的信息,包括deviceid、filelen和filecrc,其中deviceid存储当前设备的id号,filelen存储filedata中的有效数据长度,filecrc存储filedata中有效数据的crc校验值;flag存储start中选择程序跳转的标志,包括upgradevalid、runvalid和filevalid,分别存储升级标志、运行标志和文件标志。

本发明还公开了一种基于本发明提出的嵌入式设备的升级方法,包括升级app应用程序和升级boot升级运行程序。

如图4、图5所示,升级app应用程序包括如下步骤:

s1-1:验证升级文件:将升级文件的id存储到deviceid中,对设备id号进行验证成功后将id编译到升级文件中;

s1-2:在步骤s1-1完成后,保存升级文件:将升级文件有效数据传输到filedata中;

s1-3:在步骤s1-2完成后,校验升级程序:app应用程序对filedata中数据进行crc校验,然后将filevalid置为有效并将filedata中数据的有效数据长度和crc校验值分别保存在filelen和filecrc中;

s1-4:在步骤s1-3完成后,更新升级程序:具体步骤如下:

s1-41:判断文件标志filevalid是否有效,有效则进入步骤s1-42;

s1-42:计算出对应升级文件有效数据的crc,并与存储于filecrc的crc进行crc校验;

s1-43:若校验正确则将runvalid置为无效,且upgrade程序则将filedata中的数据写入app区,写入后校验写入数据的正确性,若校验通过则将start程序中的filevalid置为无效,runvalid置为有效,完成程序升级;

进一步地,若在upgrade程序运行5s时间之内接收到升级指令,则将升级文件写入store区,之后重复步骤s1-4。

如图6所示,升级boot升级运行程序包括如下步骤:

s2-1:接收文件:app应用程序将升级文件有效数据传输到filedata中;

s2-2:在步骤s2-1完成后,更新升级程序:

s2-21:判断文件标志filevalid是否有效,有效则进入步骤s2-22;

s2-22:计算出对应升级文件有效数据的crc,并与存储于filecrc的crc进行crc校验;

s2-23:若校验正确则将upgradevalid置为无效,并将filedata中的数据写入upgrade,写入后校验写入数据的正确性,若校验通过则将start程序中的upgradevalid置为有效,完成程序升级;

如图3所示,步骤s1-1中所述的升级文件结构为,deviceid、filelen、filecrc和filedata依次排列,且数据filecrc、filelen和deviceid分别占4个字节的长度。

基于上述app应用程序和boot升级运行程序的升级方法,则boot升级运行程序升级的具体运行步骤如图1所示:

s0-1:检测升级标志upgradevalid,若升级标志为真,则进入步骤s0-2,若升级标志为假,则说明boot升级运行程序正在升级,进入步骤s0-4;

s0-2:进行app应用程序下载,判断文件标志filevalid,若文件标志为真,则进行步骤s0-3,若文件标志为假,则跳转至app应用程序;

s0-3:进行app应用程序升级,升级完成跳转并至app应用程序;

s0-4:进行运行标志runvalid判断,若运行标志runvalid为真,则跳转至app应用程序,若运行标志runvalid为假,则说明app应用程序正在升级,跳转回初始状态。

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1