CN113138791A - 基于嵌入式系统的升级处理方法、装置及电子设备 - Google Patents
基于嵌入式系统的升级处理方法、装置及电子设备 Download PDFInfo
- Publication number
- CN113138791A CN113138791A CN202110541229.6A CN202110541229A CN113138791A CN 113138791 A CN113138791 A CN 113138791A CN 202110541229 A CN202110541229 A CN 202110541229A CN 113138791 A CN113138791 A CN 113138791A
- Authority
- CN
- China
- Prior art keywords
- target application
- upgraded
- embedded system
- configuration information
- information
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 18
- 238000000034 method Methods 0.000 claims abstract description 43
- 238000012360 testing method Methods 0.000 claims abstract description 25
- 238000012545 processing Methods 0.000 claims abstract description 12
- 238000004590 computer program Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 description 12
- 241000282472 Canis lupus familiaris Species 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 230000002159 abnormal effect Effects 0.000 description 5
- 230000005856 abnormality Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 235000012054 meals Nutrition 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种基于嵌入式系统的升级处理方法、装置及电子设备,涉及数据处理技术领域。其中方法包括:首先获取嵌入式系统中目标应用的待升级固件信息;再根据所述待升级固件信息,将所述目标应用的升级配置信息保存在第一区域;然后重启所述嵌入式系统,在BootLoader执行后,根据读取的所述目标应用的升级配置信息,将所述待升级固件信息覆盖所述目标应用的原有固件信息;生成BootLoader的升级配置信息并保存在第二区域,其中,所述第一区域与所述第二区域为不同的区域;在BootLoader中设置看门狗功能,运行所述目标应用进行测试。本申请在升级之后经过测试如果嵌入式系统运行异常可及时发现进行处理。
Description
技术领域
本申请涉及数据处理技术领域,尤其是涉及到一种基于嵌入式系统的升级处理方法、装置及电子设备。
背景技术
嵌入式设备主要由嵌入式处理器、相关支撑硬件和嵌入式软件系统组成,它是集软硬件于一体的可独立工作的"器件"。其中,嵌入式软件系统(简称嵌入式系统)有别于一般的计算机处理系统,它不具备像硬盘那样大容量的存储介质,而大多使用闪存(FlashMemory)作为存储介质。嵌入式软件包括与硬件相关的底层软件、操作系统、图形界面、通讯协议、数据库系统、标准化浏览器和应用软件等。
目前,嵌入式设备需要远程升级来解决BUG和适应变化的需求。然而,远程升级的过程中有可能因为操作人员失误下发错误的固件、传输错误、固件自身问题等因素,造成升级之后嵌入式系统运行异常。
发明内容
有鉴于此,本申请提供了一种基于嵌入式系统的升级处理方法、装置及电子设备,主要目的在于改善目前现有技术中无法及时监测升级之后嵌入式系统运行异常以便及时进行处理的技术问题。
依据本申请的一个方面,提供了一种基于嵌入式系统的升级处理方法,该方法包括:
获取嵌入式系统中目标应用的待升级固件信息;
根据所述待升级固件信息,将所述目标应用的升级配置信息保存在第一区域;
重启所述嵌入式系统,在BootLoader执行后,根据读取的所述目标应用的升级配置信息,将所述待升级固件信息覆盖所述目标应用的原有固件信息;
生成BootLoader的升级配置信息并保存在第二区域,其中,所述第一区域与所述第二区域为不同的区域;
在BootLoader中设置看门狗功能,运行所述目标应用进行测试。
依据本申请的另一方面,提供了一种基于嵌入式系统的升级处理装置,该装置包括:
获取模块,用于获取嵌入式系统中目标应用的待升级固件信息;
保存模块,用于根据所述待升级固件信息,将所述目标应用的升级配置信息保存在第一区域;
升级模块,用于重启所述嵌入式系统,在BootLoader执行后,根据读取的所述目标应用的升级配置信息,将所述待升级固件信息覆盖所述目标应用的原有固件信息;
所述保存模块,还用于生成BootLoader的升级配置信息并保存在第二区域,其中,所述第一区域与所述第二区域为不同的区域;
测试模块,用于在BootLoader中设置看门狗功能,运行所述目标应用进行测试。
依据本申请又一个方面,提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述基于嵌入式系统的升级处理方法。
依据本申请再一个方面,提供了一种电子设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于嵌入式系统的升级处理方法。
借由上述技术方案,本申请提供的一种基于嵌入式系统的升级处理方法、装置及电子设备,在获取得到嵌入式系统中目标应用的待升级固件信息之后,根据待升级固件信息,将目标应用的升级配置信息保存在第一区域;然后重启嵌入式系统,在BootLoader执行后,根据读取的目标应用的升级配置信息,将待升级固件信息覆盖目标应用的原有固件信息;在覆盖正确后生成BootLoader的升级配置信息并保存在第二区域,后续在BootLoader中设置看门狗功能,运行目标应用进行测试。与现有技术相比,本申请在升级之后经过测试如果嵌入式系统运行异常可及时发现进行处理。并且在升级处理过程中,使用两块不同的区域(地址)分别对目标应用的升级配置信息和BootLoader的升级配置信息进行存储,可以避免目标应用的升级配置信息被BootLoader更改,或者是BootLoader的升级配置信息被目标应用更改,进而防止交叉写操作造成数据丢失,从而可提高嵌入式系统中目标应用升级的准确性。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了本申请实施例提供的一种基于嵌入式系统的升级处理方法的流程示意图;
图2示出了本申请实施例提供的嵌入式系统启动的流程示意图;
图3示出了本申请实施例提供的另一种基于嵌入式系统的升级处理方法的流程示意图;
图4示出了本申请实施例提供的一种应用示例的流程示意图;
图5示出了本申请实施例提供的一种基于嵌入式系统的升级处理装置的结构示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
为了改善目前现有技术中无法及时监测升级之后嵌入式系统运行异常以便及时进行处理的技术问题。本实施例提供了一种基于嵌入式系统的升级处理方法,如图1所示,该方法包括:
步骤101、获取嵌入式系统中目标应用的待升级固件信息。
嵌入式系统可为嵌入式设备中的嵌入式软件系统,而嵌入式设备可为智能柜(如快递柜、取餐柜等)、出餐宝、电源控制板或其他智能设备中的嵌入式设备。目标应用(Application,APP)可为嵌入式软件,具体可包括:与硬件相关的底层软件、操作系统、图形界面、通讯协议、数据库系统、标准化浏览器和应用软件等。本实施例中以其中一个嵌入式软件(即目标应用,APP程序)的升级过程为例,说明具体的升级处理过程。
在本实施例中,目标应用(APP程序)在接收到升级指令之后,开始下载待升级的固件信息(APP),该固件信息可用于目标应用的升级。例如,可通过物联网(Internet ofThings,IOT)的技术手段下载得到目标应用的待升级固件信息,以便实现目标应用的空中下载技术(Over-the-Air Technology,OTA)升级。
步骤102、根据目标应用的待升级固件信息,将目标应用的升级配置信息保存在第一区域。
目标应用的升级配置信息可包括:固件的版本、固件大小、校验值、以及需要升级的标记等配置信息。第一区域可为闪存的内部或外部的一块区域,该区域用于存储目标应用的升级配置信息。
步骤103、重启嵌入式系统,在BootLoader执行后,根据读取的目标应用的升级配置信息,将待升级固件信息覆盖目标应用的原有固件信息。
Bootloader是嵌入式系统在加电后执行的第一段代码,是在操作系统内核运行之前运行的一段小程序,通过这段小程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。相应的,目标应用(APP程序)可认为是执行应用逻辑的代码。
例如,如图2所示,在嵌入式系统上电后,会先执行BootLoader程序,然后执行APP程序。
目标应用的原有固件信息为目标应用未升级前的原有固件信息。重启嵌入式系统进入Bootloader,BootLoader程序执行后,读取目标应用的升级配置信息;然后根据该升级配置信息,判断是否需要升级处理。在判定需要升级处理后,使用获取到的目标应用的待升级固件信息(新的固件)覆盖该目标应用的原有固件信息(旧的固件),以完成升级操作。
步骤104、生成BootLoader的升级配置信息并保存在第二区域。
其中,第一区域与第二区域为不同的区域,第二区域可为闪存的内部或外部的另一块区域。
在将目标应用新的固件正确的覆盖旧的固件之后,在BootLoader对应的第二区域写入已经升级的标记、升级时间等升级配置信息。
目前现有技术中,APP和BootLoader会共同操作同一个升级配置文件(即同一升级配置信息),这样会存在被异常改写的可能性,例如,在APP升级处理的过程中,APP的升级配置信息被BootLoader更改,或者是BootLoader的升级配置信息被APP更改。
与现有技术中相比,本实施例的升级处理方法,在升级处理过程中,使用两块不同的区域(地址)分别对目标应用的升级配置信息和BootLoader的升级配置信息进行存储,可以避免目标应用的升级配置信息被BootLoader更改,或者是BootLoader的升级配置信息被目标应用更改,进而防止交叉写操作造成数据丢失,从而可提高嵌入式系统中目标应用升级的准确性。
步骤105、在BootLoader中设置看门狗功能,运行目标应用进行测试。
其中,看门狗分为硬件看门狗和软件看门狗。硬件看门狗是利用一个定时器电路,其定时输出连接到电路的复位端,程序在一定时间范围内对定时器清零(俗称“喂狗”),因此程序正常工作时,定时器总不能溢出,也就不能产生复位信号。如果程序出现故障,不在定时周期内复位看门狗,就使得看门狗定时器溢出产生复位信号并重启系统。软件看门狗原理上一样,只是将硬件电路上的定时器用处理器的内部定时器代替,这样可以简化硬件电路设计。
例如,在BootLoader中使用看门狗功能,在BootLoader对应的地址(第二区域)写入已经升级的标记,升级时间等升级配置信息之后,设置PC指针跳转到目标应用(APP程序)对应的起始地址,在程序跳转到APP之后如果没有及时喂狗(如程序在一定时间范围内未对定时器清零),嵌入式系统将被重启。通过这种方式可有效测试升级的目标应用后续是否能够正确运行,如果没有及时喂狗则会被认为存在运行异常,对嵌入式系统进行重启,以便尝试调试升级后的目标应用;如果能够及时喂狗说明目标应用运行正常,后续可继续进行是否及时喂狗的监测。
本实施例提供的基于嵌入式系统的升级处理方法,与现有技术相比,本实施例在升级之后经过测试如果嵌入式系统运行异常可及时发现进行处理。并且在升级处理过程中,使用两块不同的区域(地址)分别对目标应用的升级配置信息和BootLoader的升级配置信息进行存储,可以避免目标应用的升级配置信息被BootLoader更改,或者是BootLoader的升级配置信息被目标应用更改,进而防止交叉写操作造成数据丢失,从而可提高嵌入式系统中目标应用升级的准确性,可有效提高OTA的成功率,并且在实际测试期间未发现有升级之后系统不能工作的情况。
进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例的实施方式,本实施例还提供了另一种基于嵌入式系统的升级处理方法,如图3所示,该方法包括:
步骤201、获取嵌入式系统中目标应用的待升级固件信息。
步骤202、对目标应用的待升级固件信息的完整性和合法性进行校验。
在本实施例中,APP程序在接收到升级指令之后,开始下载待升级的固件(APP);下载完成之后判断固件的完整性和合法性。例如,通过固件的哈希值等进行校验。
步骤203a、若待升级固件信息校验成功,则根据待升级固件信息,将目标应用的升级配置信息保存在第一区域。
可选的,根据待升级固件信息,将目标应用的升级配置信息保存在第一区域,具体包括:设置需要升级的标记;然后根据需要升级的标记和待升级固件信息,生成目标应用的升级配置信息并保存在第一区域。
例如,在固件的完整性和合法性校验正确之后,设置将需要升级的标记,固件的版本,大小,检验值等升级配置信息写入APP对应的地址(即第一区域)。
步骤204a、重启嵌入式系统,在BootLoader执行后,根据读取的目标应用的升级配置信息,将待升级固件信息覆盖目标应用的原有固件信息。
可选的,根据读取的目标应用的升级配置信息,将待升级固件信息覆盖目标应用的原有固件信息,具体可包括:根据需要升级的标记,将待升级固件信息覆盖目标应用的原有固件信息。
例如,BootLoader程序执行之后,读取(只读)APP的升级配置信息;根据第一区域(APP对应的地址)内是否记录有需要升级的标记,判断是否需要升级处理。如果第一区域内记录的是需要升级的标记(APP升级标志置位),说明需要对APP进行升级处理,将待升级固件信息覆盖目标应用的原有固件信息;而如果第一区域内没有记录有需要升级的标记(APP升级标志未置位),说明不需要对APP进行升级处理,无需进行固件覆盖操作。
步骤205a、生成BootLoader的升级配置信息并保存在第二区域。
可选的,步骤205a具体可包括:在待升级固件信息覆盖成功后,根据已经升级的标记生成BootLoader的升级配置信息并保存在第二区域。
例如,在正确的固件覆盖之后,在BootLoader对应的地址(第二区域)写入已经升级的标记、升级时间等升级配置信息;完成之后设置PC指针跳转到APP对应的起始地址。
步骤206a、在BootLoader中设置看门狗功能,运行目标应用进行测试。
可选的,运行目标应用进行测试,具体可包括:若目标应用正确运行,则将第一区域保存的需要升级的标记取消。例如,APP正确的运行之后,将APP对应地址(第一区域)的需要升级的标记取消,以便后续避免重复相同升级处理的操作。
为了说明具体的测试过程,可选的,步骤206a具体可包括:在运行目标应用之后,若未及时喂狗,则重启嵌入式系统,以再次运行目标应用;若及时喂狗,则确定目标应用正确运行。对于本实施例,在BootLoader中使用看门狗功能,当程序跳转到APP之后如果没有及时喂狗,则嵌入式系统将重启。通过这种方式可有效测试升级的目标应用后续是否能够正确运行。
目前现有技术中并没有对APP跳转成功之后系统在短时间内多次重启的异常进行识别。为了解决这一问题,可选的,步骤204a中在所述将所述待升级固件信息覆盖所述目标应用的原有固件信息之前,本实施例方法还可包括:备份目标应用的原有固件信息;相应的,在BootLoader中设置看门狗功能,运行目标应用进行测试,具体还可包括:记录嵌入式系统的重启次数和每次重启的时间;然后根据记录的重启次数和每次重启的时间,判断是否需要对嵌入式系统进行恢复处理;若判定需要对嵌入式系统进行恢复处理,则根据备份的目标应用的原有固件信息,对嵌入式系统进行恢复处理。
在本实施例中,目标应用的原有固件信息可在升级前进行预先备份。系统设计有实时时钟(Real-Time Clock,RTC)模块,可以明确两次系统重启之间的时间差,进而可用于记录嵌入式系统每次重启的时间。
本实施例方法在BootLoader中对重启次数以及短时间内多次重启进行统计,可以对异常的重启进行识别,在必要的时候对APP进行恢复处理,即恢复到未升级前的状态。具体可根据实际需求设置判定是否需要对嵌入式系统进行恢复处理的规则标准。
作为一种可选方式,根据嵌入式系统的重启次数和每次重启的时间,判断是否需要对嵌入式系统进行恢复处理,具体可包括:若目标应用正确运行,则根据每次重启的时间,判断包括最新一次重启在内的历史连续预设次数重启的总时间是否小于预设时长阈值;若该总时间小于预设时长阈值,则判定需要对嵌入式系统进行恢复处理,并对记录的嵌入式系统重启次数和每次重启的时间进行清零。
预设次数和预设时长阈值可根据实际需求进行预先设置。例如,APP虽然已正确运行,第一区域内已经没有需要升级的标记,但是升级后的APP,由于BootLoader中提前设置有看门狗的功能,在未及时喂狗的情况下,会进行重启,如果最近N次(预设次数)重启的总时间小于n分钟(预设时长阈值),说明升级后的APP在短时间内多次重启,出现异常,此时需要对APP进行恢复处理,利用该APP提前备份的原有固件(升级前的旧固件)进行恢复,以保证APP的正常使用。
作为另一种可选方式,根据嵌入式系统的重启次数和每次重启的时间,判断是否需要对嵌入式系统进行恢复处理,具体可包括:若目标应用未正确运行,则判断嵌入式系统的重启次数是否大于预置次数阈值;若重启次数大于预设次数阈值,则判定需要对嵌入式系统进行恢复处理,并对重启次数和每次重启的时间进行清零。
预置次数阈值可根据实际需求进行预先设置。例如,APP未正确运行,第一区域内有需要升级的标记,而BootLoader对应的第二区域内有已经升级的标记,说明固件已经覆盖完成,但是APP一直未正确运行,由于BootLoader中提前设置有看门狗的功能,在未及时喂狗的情况下,会进行重启,如果重启次数大于M次(预置次数阈值),APP仍然没有正确运行的情况下,说明出现异常,此时需要对APP进行恢复处理,利用该APP提前备份的原有固件(升级前的旧固件)进行恢复,以保证APP的正常使用。
与步骤203a并列的步骤203b、若待升级固件信息校验失败,则拒绝将目标应用进行升级。
对于本实施例,在确定APP的待升级固件信息未通过完整性和合法性校验后,可直接拒绝将该APP进行升级,以避免做无效的升级过程,可节省系统资源耗费。
为了说明上述各实施例的具体实施过程,给出如下应用示例,但不限于此:
在嵌入式系统中提前设置:(a)在BootLoader中使用看门狗功能,当程序跳转到APP之后没有及时喂狗的话,系统将重启;(b)系统设计有RTC模块,可以明确两次重启之间的时间差;(c)在闪存(内部或者外部)的两片区域分别存储APP和BootLoader的升级配置文件;
(1)APP程序在接收到升级指令之后,开始下载待升级的固件(APP)。
(2)下载完成之后判断固件的完整性和合法性;判断正确之后设置将需要升级的标记、固件的版本、固件大小、检验值等升级配置信息写入APP对应的地址,然后设置重启进入BootLoader。
(3)BootLoader程序执行之后,读取(只读)APP的升级配置信息;判断如果需要升级,则使用新的固件覆盖原有固件;正确的覆盖之后在BootLoader对应的地址写入已经升级的标记,升级时间等升级配置信息;完成之后设置PC指针跳转到APP对应的起始地址。
(4)APP正确的运行之后将APP对应地址的需要升级的标记取消。
基于上述配置,如图4所示,在BootLoader程序执行之后,判断APP对应地址记录的升级标记是否置位(即是否有需要升级的标记,如果APP升级标记置位则需要升级,如果APP升级标记未置位则不需要升级)。如果APP升级标记未置位,则可判断最近5次重启总时间是否小于2分钟,如果该总时间小于2分钟,说明升级后的APP在短时间内多次重启,出现异常,此时需要对APP进行恢复处理,恢复备份的固件,并且对记录的嵌入式系统重启次数和每次重启的时间进行清零,跳转运行未升级前的APP。如果该总时间不小于2分钟,则记录本次重启时的RTC时间,并跳转运行升级后的APP。
如果APP升级标记置位,判断BootLoader对应地址是否记录有已经升级的标记。如果没有记录有已经升级的标记,说明APP的新固件未覆盖旧固件(现有固件),此时首先备份现有固件,然后进行升级,将APP的新固件覆盖旧估计。设置并写入相应的记录,包括:将BootLoader对应地址记录的已经升级标记置位,BootLoader重启次数清零和重启时间记录清零(对应嵌入式系统的重启次数清零和重启时间记录清零)。然后记录本次重启时的RTC时间。跳转运行升级后的APP。如果BootLoader对应地址记录有已经升级的标记,判断BootLoader重启次数是否大于5次,如果BootLoader重启次数大于5次,说明出现异常,此时需要对APP进行恢复处理,恢复备份的固件,并且对记录的嵌入式系统重启次数和每次重启的时间进行清零,跳转运行未升级前的APP。如果BootLoader重启次数不大于5次,则记录本次重启时的RTC时间,并跳转运行升级后的APP。
本实施例方法使用两块不同的地址分别对APP的升级配置信息和BootLoader的升级配置信息进行存储,可以避免APP升级配置信息被BootLoader更改或者是BootLoader的升级配置信息被APP更改。防止交叉写操作造成数据丢失。在APP升级标志未置位的情况下,对每次重启的RTC时间进行记录,判断短时间内(根据需要设置)多次重则对系统进行恢复。在APP升级标志置位的情况下,对重启次数进行统计,大于固定次数(根据需要设置)则对系统进行恢复。通过这两种可选方式,在BootLoader中对重启次数以及短时间内多次重启进行统计,可以对异常的重启进行识别,在必要的时候对APP进行恢复。
进一步的,作为图1和图3所示方法的具体实现,本实施例提供了一种基于嵌入式系统的升级处理装置,如图5所示,该装置包括:获取模块31、保存模块32、升级模块33、测试模块34。
获取模块31,用于获取嵌入式系统中目标应用的待升级固件信息;
保存模块32,用于根据所述待升级固件信息,将所述目标应用的升级配置信息保存在第一区域;
升级模块33,用于重启所述嵌入式系统,在BootLoader执行后,根据读取的所述目标应用的升级配置信息,将所述待升级固件信息覆盖所述目标应用的原有固件信息;
所述保存模块32,还用于生成BootLoader的升级配置信息并保存在第二区域,其中,所述第一区域与所述第二区域为不同的区域;
测试模块34,用于在BootLoader中设置看门狗功能,运行所述目标应用进行测试。
在具体的应用场景中,保存模块32,具体用于设置需要升级的标记;根据所述需要升级的标记和所述待升级固件信息,生成所述目标应用的升级配置信息并保存在第一区域;
升级模块33,具体用于根据所述需要升级的标记,将所述待升级固件信息覆盖所述目标应用的原有固件信息;
测试模块34,具体用于若所述目标应用正确运行,则将所述第一区域保存的所述需要升级的标记取消。
在具体的应用场景中,保存模块32,具体还用于在所述待升级固件信息覆盖成功后,根据已经升级的标记生成BootLoader的升级配置信息并保存在第二区域。
在具体的应用场景中,测试模块34,具体还用于在运行所述目标应用之后,若未及时喂狗,则重启所述嵌入式系统,以再次运行所述目标应用;若及时喂狗,则确定所述目标应用正确运行。
在具体的应用场景中,本装置还包括:备份模块;
备份模块,用于备份所述目标应用的原有固件信息;
测试模块34,具体用于记录所述嵌入式系统的重启次数和每次重启的时间;根据所述重启次数和每次重启的时间,判断是否需要对所述嵌入式系统进行恢复处理;若判定需要对所述嵌入式系统进行恢复处理,则根据备份的所述目标应用的原有固件信息,对所述嵌入式系统进行恢复处理。
在具体的应用场景中,测试模块34,具体还用于若所述目标应用正确运行,则根据每次重启的时间,判断包括最新一次重启在内的历史连续预设次数重启的总时间是否小于预设时长阈值;若所述总时间小于所述预设时长阈值,则判定需要对所述嵌入式系统进行恢复处理,并对所述重启次数和每次重启的时间进行清零。
在具体的应用场景中,测试模块34,具体还用于若所述目标应用未正确运行,则判断所述嵌入式系统的重启次数是否大于预置次数阈值;若所述重启次数大于所述预置次数阈值,则判定需要对所述嵌入式系统进行恢复处理,并对所述重启次数和每次重启的时间进行清零。
在具体的应用场景中,本装置还包括:校验模块;
校验模块,用于对所述待升级固件信息的完整性和合法性进行校验;若所述待升级固件信息校验失败,则拒绝将所述目标应用进行升级;
保存模块32,具体还用于若所述待升级固件信息校验成功,则根据所述待升级固件信息,将所述目标应用的升级配置信息保存在第一区域。
需要说明的是,本实施例提供的一种基于嵌入式系统的升级处理装置所涉及各功能单元的其它相应描述,可以参考图1和图3中的对应描述,在此不再赘述。
基于上述如图1和图3所示方法,相应的,本实施例还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述如图1和图3所示的基于嵌入式系统的升级处理方法。
基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景的方法。
基于上述如图1和图3所示的方法,以及图5所示的虚拟装置实施例,为了实现上述目的,本申请实施例还提供了一种电子设备,具体可以为个人计算机、智能柜、出餐宝、电源控制板、或其他网络设备等,该设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1和图3所示的基于嵌入式系统的升级处理方法。
可选的,上述实体设备还可以包括用户接口、网络接口、摄像头、射频(RadioFrequency,RF)电路,传感器、音频电路、WI-FI模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard)等,可选用户接口还可以包括USB接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如WI-FI接口)等。
本领域技术人员可以理解,本实施例提供的上述实体设备结构并不构成对该实体设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。
存储介质中还可以包括操作系统、网络通信模块。操作系统是管理上述实体设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与信息处理实体设备中其它硬件和软件之间通信。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现。通过应用本实施例的技术方案,与现有技术相比,本实施例方案在升级之后经过测试如果嵌入式系统运行异常可及时发现进行处理,在出现升级异常时能够及时识别和恢复。并且在升级处理过程中,使用两块不同的区域(地址)分别对目标应用的升级配置信息和BootLoader的升级配置信息进行存储,可以避免目标应用的升级配置信息被BootLoader更改,或者是BootLoader的升级配置信息被目标应用更改,进而防止交叉写操作造成数据丢失,从而可提高嵌入式系统中目标应用升级的准确性。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
Claims (10)
1.一种基于嵌入式系统的升级处理方法,其特征在于,包括:
获取嵌入式系统中目标应用的待升级固件信息;
根据所述待升级固件信息,将所述目标应用的升级配置信息保存在第一区域;
重启所述嵌入式系统,在BootLoader执行后,根据读取的所述目标应用的升级配置信息,将所述待升级固件信息覆盖所述目标应用的原有固件信息;
生成BootLoader的升级配置信息并保存在第二区域,其中,所述第一区域与所述第二区域为不同的区域;
在BootLoader中设置看门狗功能,运行所述目标应用进行测试。
2.根据权利要求1所述的方法,其特征在于,所述根据所述待升级固件信息,将所述目标应用的升级配置信息保存在第一区域,具体包括:
设置需要升级的标记;
根据所述需要升级的标记和所述待升级固件信息,生成所述目标应用的升级配置信息并保存在第一区域;
所述根据读取的所述目标应用的升级配置信息,将所述待升级固件信息覆盖所述目标应用的原有固件信息,具体包括:
根据所述需要升级的标记,将所述待升级固件信息覆盖所述目标应用的原有固件信息;
所述运行所述目标应用进行测试,具体包括:
若所述目标应用正确运行,则将所述第一区域保存的所述需要升级的标记取消。
3.根据权利要求1所述的方法,其特征在于,所述生成BootLoader的升级配置信息并保存在第二区域,具体包括:
在所述待升级固件信息覆盖成功后,根据已经升级的标记生成BootLoader的升级配置信息并保存在第二区域。
4.根据权利要求1所述的方法,其特征在于,所述在BootLoader中设置看门狗功能,运行所述目标应用进行测试,具体包括:
在运行所述目标应用之后,若未及时喂狗,则重启所述嵌入式系统,以再次运行所述目标应用;
若及时喂狗,则确定所述目标应用正确运行。
5.根据权利要求4所述的方法,其特征在于,在所述将所述待升级固件信息覆盖所述目标应用的原有固件信息之前,所述方法还包括:
备份所述目标应用的原有固件信息;
所述在BootLoader中设置看门狗功能,运行所述目标应用进行测试,具体还包括:
记录所述嵌入式系统的重启次数和每次重启的时间;
根据所述重启次数和每次重启的时间,判断是否需要对所述嵌入式系统进行恢复处理;
若判定需要对所述嵌入式系统进行恢复处理,则根据备份的所述目标应用的原有固件信息,对所述嵌入式系统进行恢复处理。
6.根据权利要求5所述的方法,其特征在于,所述根据所述重启次数和每次重启的时间,判断是否需要对所述嵌入式系统进行恢复处理,具体包括:
若所述目标应用正确运行,则根据每次重启的时间,判断包括最新一次重启在内的历史连续预设次数重启的总时间是否小于预设时长阈值;
若所述总时间小于所述预设时长阈值,则判定需要对所述嵌入式系统进行恢复处理,并对所述重启次数和每次重启的时间进行清零。
7.根据权利要求5所述的方法,其特征在于,所述根据所述重启次数和每次重启的时间,判断是否需要对所述嵌入式系统进行恢复处理,具体包括:
若所述目标应用未正确运行,则判断所述嵌入式系统的重启次数是否大于预置次数阈值;
若所述重启次数大于所述预置次数阈值,则判定需要对所述嵌入式系统进行恢复处理,并对所述重启次数和每次重启的时间进行清零。
8.根据权利要求1所述的方法,其特征在于,在所述根据所述待升级固件信息,将所述目标应用的升级配置信息保存在第一区域之前,所述方法还包括:
对所述待升级固件信息的完整性和合法性进行校验;
若所述待升级固件信息校验失败,则拒绝将所述目标应用进行升级;
所述根据所述待升级固件信息,将所述目标应用的升级配置信息保存在第一区域,具体包括:
若所述待升级固件信息校验成功,则根据所述待升级固件信息,将所述目标应用的升级配置信息保存在第一区域。
9.一种基于嵌入式系统的升级处理装置,其特征在于,包括:
获取模块,用于获取嵌入式系统中目标应用的待升级固件信息;
保存模块,用于根据所述待升级固件信息,将所述目标应用的升级配置信息保存在第一区域;
升级模块,用于重启所述嵌入式系统,在BootLoader执行后,根据读取的所述目标应用的升级配置信息,将所述待升级固件信息覆盖所述目标应用的原有固件信息;
所述保存模块,还用于生成BootLoader的升级配置信息并保存在第二区域,其中,所述第一区域与所述第二区域为不同的区域;
测试模块,用于在BootLoader中设置看门狗功能,运行所述目标应用进行测试。
10.一种电子设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110541229.6A CN113138791A (zh) | 2021-05-18 | 2021-05-18 | 基于嵌入式系统的升级处理方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110541229.6A CN113138791A (zh) | 2021-05-18 | 2021-05-18 | 基于嵌入式系统的升级处理方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113138791A true CN113138791A (zh) | 2021-07-20 |
Family
ID=76817584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110541229.6A Pending CN113138791A (zh) | 2021-05-18 | 2021-05-18 | 基于嵌入式系统的升级处理方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113138791A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114567628A (zh) * | 2022-02-28 | 2022-05-31 | 中汽创智科技有限公司 | 一种ota升级方法和装置 |
CN114879991A (zh) * | 2022-04-25 | 2022-08-09 | 杭州振华仪表有限公司 | 一种软件升级方法、系统及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1581101A (zh) * | 2003-08-12 | 2005-02-16 | 联想(北京)有限公司 | 一种嵌入式系统升级的方法 |
CN101711026A (zh) * | 2009-12-11 | 2010-05-19 | 中兴通讯股份有限公司 | 一种移动终端间软件版本的升级方法及升级系统 |
CN101854623A (zh) * | 2010-06-11 | 2010-10-06 | 中兴通讯股份有限公司 | 一种m2m终端远程升级的系统和方法 |
CN104090796A (zh) * | 2014-07-08 | 2014-10-08 | 成都万维图新信息技术有限公司 | 一种嵌入式设备程序更新方法和系统 |
CN110333891A (zh) * | 2019-07-08 | 2019-10-15 | 四川爱联科技有限公司 | 基于物联网的增强型ota升级的方法 |
-
2021
- 2021-05-18 CN CN202110541229.6A patent/CN113138791A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1581101A (zh) * | 2003-08-12 | 2005-02-16 | 联想(北京)有限公司 | 一种嵌入式系统升级的方法 |
CN101711026A (zh) * | 2009-12-11 | 2010-05-19 | 中兴通讯股份有限公司 | 一种移动终端间软件版本的升级方法及升级系统 |
CN101854623A (zh) * | 2010-06-11 | 2010-10-06 | 中兴通讯股份有限公司 | 一种m2m终端远程升级的系统和方法 |
CN104090796A (zh) * | 2014-07-08 | 2014-10-08 | 成都万维图新信息技术有限公司 | 一种嵌入式设备程序更新方法和系统 |
CN110333891A (zh) * | 2019-07-08 | 2019-10-15 | 四川爱联科技有限公司 | 基于物联网的增强型ota升级的方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114567628A (zh) * | 2022-02-28 | 2022-05-31 | 中汽创智科技有限公司 | 一种ota升级方法和装置 |
CN114567628B (zh) * | 2022-02-28 | 2024-03-08 | 中汽创智科技有限公司 | 一种ota升级方法和装置 |
CN114879991A (zh) * | 2022-04-25 | 2022-08-09 | 杭州振华仪表有限公司 | 一种软件升级方法、系统及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8423991B2 (en) | Embedded network device and firmware upgrading method | |
CN110333891A (zh) | 基于物联网的增强型ota升级的方法 | |
US20140310698A1 (en) | Apparatus and method for upgrading firmware of mobile terminal | |
US20100180108A1 (en) | Electronic device and method for secure operating system update in embedded system | |
CN107678762B (zh) | 一种系统版本升级方法及装置 | |
CN101807152B (zh) | 自我验证选择只读存储器的基本输出入系统及其验证方法 | |
CN104123153A (zh) | 用于使用usb升级固件的装置与方法 | |
CN113138791A (zh) | 基于嵌入式系统的升级处理方法、装置及电子设备 | |
WO2016206514A1 (zh) | 启动处理方法及装置 | |
CN110647333A (zh) | 固件升级方法及配置成对其中的固件进行升级的设备 | |
CN109582332B (zh) | 互联网摄像机的系统升级方法及装置 | |
CN112667265B (zh) | 一种引导程序更新方法及装置 | |
CN116932010B (zh) | 系统固件升级方法、装置及服务器 | |
CN112214353A (zh) | 固件恢复方法、装置、计算机设备和存储介质 | |
CN117130672A (zh) | 服务器启动流程控制方法、系统、终端及存储介质 | |
CN111782236A (zh) | 系统软件升级方法、装置、存储介质及一体机设备 | |
CN113778485A (zh) | 电子芯片的系统运行方法、装置、电子芯片和存储介质 | |
CN114741119A (zh) | 系统的启动方法、装置、计算机设备和存储介质 | |
CN112527371B (zh) | 一种引导加载程序升级方法、装置、电子设备及存储介质 | |
CN114153503A (zh) | 一种bios控制方法、装置、介质 | |
CN112667444A (zh) | 一种系统升级方法、存储介质及终端设备 | |
CN115576587B (zh) | 一种存储装置的固件升级装置及其升级方法 | |
KR102142905B1 (ko) | 통신 단말기의 사용자 파일 시스템 자동 복구 방법 | |
KR20110002516A (ko) | 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프로그램 업그레이드 방법 및 시스템 | |
CN118113319A (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 |