CN109408079A - 一种嵌入式设备及其升级方法 - Google Patents
一种嵌入式设备及其升级方法 Download PDFInfo
- Publication number
- CN109408079A CN109408079A CN201710883994.XA CN201710883994A CN109408079A CN 109408079 A CN109408079 A CN 109408079A CN 201710883994 A CN201710883994 A CN 201710883994A CN 109408079 A CN109408079 A CN 109408079A
- Authority
- CN
- China
- Prior art keywords
- upgrading
- upgrade
- file
- mark
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及嵌入式技术领域,更具体地,涉及一种嵌入式设备及其升级方法。嵌入式设备的软件系统分割为boot区、app区和store区,分别存储升级运行程序、设备的应用程序和设备的升级文件。在app应用程序更新过程中,先进行文件ID匹配,匹配正确后再进行文件下载,下载之后用户可在方便的时候再进行重启升级;boot升级运行程序更新过程为先下载更新文件,在校验文件数据正确后即可进行重启升级。通过使用上述方法,下载文件和升级不需一次性完成,节省了升级时间;且设置了UpgradeValid、RunValid和FileValid若干标志位,分别存储升级标志、运行标志和文件标志,在升级过程中若出现异常掉电等情况,也不会导致设备数据丢失,增加了升级的安全性。
Description
技术领域
本发明涉及嵌入式技术领域,更具体地,涉及一种嵌入式设备及其升级方法。
背景技术
嵌入式系统由系统的运行环境和产品的功能等特点决定了嵌入式系统的非开放式的运行模式,在这种情况中,对嵌入式系统进行升级能延长使用寿命,弥补产品的缺陷或增加新功能,因此,一种可靠的升级方法能以较低的成本提高产品的竞争力。现有嵌入式系统的升级方案通常使用直接擦写的方法,这种升级方式存在较高的危险性,在升级过程中如果出现异常掉电等情况,数据无法恢复,将导致设备无法正常运行,只能对设备全部再次进行刷新升级,这种方式不稳定安全性较低,出现异常掉电情况操作繁琐,升级耗费时间较多。
发明内容
本发明为克服上述现有技术所述的至少一种缺陷,提供一种安全性较高,出现异常掉电情况数据不会丢失,且不需重新刷新升级的更为可靠的一种嵌入式设备及其升级方法。
为解决上述技术问题,本发明采用了如下技术方案:
一种嵌入式设备,包括硬件设备和软件系统,其中软件系统包括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应用程序正在升级,跳转回初始状态。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (8)
1.一种嵌入式设备,包括硬件设备和软件系统,其特征在于:所述软件系统包括boot区、app区和store区;所述boot区存储Start和Upgrade两个升级运行程序,Start进行运行标志的判断,Upgrade进行升级文件的拷贝;所述app区存储设备的应用程序;所述store区存储设备的升级文件。
2.根据权利要求1所述的一种嵌入式设备,其特征在于:所述store区包括FileData、FileInfo和Flag,FileData存储升级文件的有效数据; FileInfo存储升级文件的信息,包括DeviceID、FileLEN和FileCRC,其中DeviceID存储当前设备的ID号,FileLEN存储FileData中的有效数据长度,FileCRC存储FileData中有效数据的CRC校验值;Flag存储Start中选择程序跳转的标志,包括UpgradeValid、RunValid和FileValid,分别存储升级标志、运行标志和文件标志。
3.一种基于权利要求1所述的一种嵌入式设备的升级方法,其特征在于:包括升级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置为有效,完成程序升级。
4.根据权利要求3所述的一种嵌入式设备的升级方法,其特征在于:所述的步骤S1-1中,所述的升级文件结构为,DeviceID、FileLEN、FileCRC和FileData依次排列。
5.根据权利要求4所述的一种嵌入式设备的升级方法,其特征在于:所述的步骤S1-3中,所述的数据FileCRC、FileLEN和DeviceID分别占4个字节的长度。
6.根据权利要求3所述的一种嵌入式设备的升级方法,其特征在于:所述的步骤S1-4和步骤S2-2中,Start程序判断升级数据是否正确的步骤如下:
S1-41/ S2-21:判断文件标志FileValid是否有效,有效则进入步骤S1-42;
S1-42/ S2-22:计算出对应升级文件有效数据的CRC,并与存储于FileCRC的CRC进行CRC校验。
7.根据权利要求3所述的一种嵌入式设备的升级方法,其特征在于:若在Upgrade程序运行5s时间之内接收到升级指令,则将升级文件写入store区,之后重复步骤S1-4。
8.根据权利要求3所述的一种嵌入式设备的升级方法,其特征在于: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应用程序正在升级,跳转回初始状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710883994.XA CN109408079B (zh) | 2017-09-26 | 2017-09-26 | 一种嵌入式设备及其升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710883994.XA CN109408079B (zh) | 2017-09-26 | 2017-09-26 | 一种嵌入式设备及其升级方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109408079A true CN109408079A (zh) | 2019-03-01 |
CN109408079B CN109408079B (zh) | 2020-04-14 |
Family
ID=65463368
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710883994.XA Active CN109408079B (zh) | 2017-09-26 | 2017-09-26 | 一种嵌入式设备及其升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109408079B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110618825A (zh) * | 2019-08-02 | 2019-12-27 | 惠州市德赛西威汽车电子股份有限公司 | 一种车机Boot Loader的自更新方法 |
CN111309350A (zh) * | 2019-12-31 | 2020-06-19 | 浙江零跑科技有限公司 | 一种更新bootload的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070061562A1 (en) * | 2003-02-10 | 2007-03-15 | Zimmer Vincent J | Method and apparatus for providing seamless file system encryption from a pre-boot environment into a firmware interface aware operating system |
US8869138B2 (en) * | 2011-11-11 | 2014-10-21 | Wyse Technology L.L.C. | Robust firmware update with recovery logic |
CN105893090A (zh) * | 2016-03-31 | 2016-08-24 | 武汉光迅科技股份有限公司 | 一种嵌入式系统bootrom和应用程序升级方法 |
CN106873943A (zh) * | 2017-01-12 | 2017-06-20 | 深圳市优必选科技有限公司 | 嵌入式系统的固件升级方法 |
-
2017
- 2017-09-26 CN CN201710883994.XA patent/CN109408079B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070061562A1 (en) * | 2003-02-10 | 2007-03-15 | Zimmer Vincent J | Method and apparatus for providing seamless file system encryption from a pre-boot environment into a firmware interface aware operating system |
US8869138B2 (en) * | 2011-11-11 | 2014-10-21 | Wyse Technology L.L.C. | Robust firmware update with recovery logic |
CN105893090A (zh) * | 2016-03-31 | 2016-08-24 | 武汉光迅科技股份有限公司 | 一种嵌入式系统bootrom和应用程序升级方法 |
CN106873943A (zh) * | 2017-01-12 | 2017-06-20 | 深圳市优必选科技有限公司 | 嵌入式系统的固件升级方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110618825A (zh) * | 2019-08-02 | 2019-12-27 | 惠州市德赛西威汽车电子股份有限公司 | 一种车机Boot Loader的自更新方法 |
CN110618825B (zh) * | 2019-08-02 | 2023-06-13 | 惠州市德赛西威汽车电子股份有限公司 | 一种车机Boot Loader的自更新方法 |
CN111309350A (zh) * | 2019-12-31 | 2020-06-19 | 浙江零跑科技有限公司 | 一种更新bootload的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109408079B (zh) | 2020-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106569847B (zh) | 一种用于车载系统基于移动网络实现iap远程升级的方法 | |
CN102662701B (zh) | Cpld在线升级方法、装置及业务单板 | |
CN103412561B (zh) | 一种汽车控制器的刷新方法 | |
CN111343064A (zh) | 汽车控制系统软件升级系统及方法 | |
EP3147782A1 (en) | Method and device for upgrading software | |
CN110333891A (zh) | 基于物联网的增强型ota升级的方法 | |
CN103761112A (zh) | 一种车载多媒体装置及其控制方法 | |
CN106612192A (zh) | 设备的升级方法、装置和系统 | |
CN107783776B (zh) | 固件升级包的处理方法及装置、电子设备 | |
CN109062598A (zh) | 一种安全的ota升级方法及系统 | |
EP2498439B1 (en) | Protection method and system under abnormal conditions in upgrade gigabit passive optical network terminal | |
CN101695162A (zh) | 一种移动终端空中固件升级方法及装置 | |
JP2014130585A (ja) | ファームウェアアップグレードエラー検出および自動ロールバック | |
CN106502747A (zh) | 一种应用升级的方法及移动终端 | |
CN107402776A (zh) | 一种基于蓝牙4的手机无线升级stm32单片机控制器固件方法 | |
CN108108193A (zh) | 一种安全易用的固件升级方法及系统 | |
CN111813428A (zh) | 终端固件的升级方法、装置、电子设备及存储介质 | |
CN109358887A (zh) | 一种单片机程序的在线升级方法、装置及系统 | |
CN106406955A (zh) | RSU设备bootloader程序升级的方法、装置 | |
CN109408079A (zh) | 一种嵌入式设备及其升级方法 | |
CN105468420B (zh) | 操作系统升级方法和装置 | |
CN110119348A (zh) | 一种软件升级测试的方法及终端 | |
CN117369844A (zh) | Ota升级方法、装置、设备以及存储介质 | |
CN107122668A (zh) | 固件加密方法 | |
CN116360827A (zh) | 充电桩的应用软件升级方法及装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |