CN113064608A - 一种ota升级方法、装置、设备和介质 - Google Patents
一种ota升级方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN113064608A CN113064608A CN202010002626.1A CN202010002626A CN113064608A CN 113064608 A CN113064608 A CN 113064608A CN 202010002626 A CN202010002626 A CN 202010002626A CN 113064608 A CN113064608 A CN 113064608A
- Authority
- CN
- China
- Prior art keywords
- partition
- running
- target
- partitions
- upgrading
- 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
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
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)
- Stored Programmes (AREA)
Abstract
本发明实施例公开了一种OTA升级方法、装置、设备和介质。该方法包括:获取升级文件,从参数分区中确定至少两个运行分区的状态参数;根据所述至少两个运行分区的状态参数,确定用于进行升级的目标运行分区,其中,所述目标运行分区为无损运行分区;基于所述升级文件对所述目标运行分区进行升级,并基于所述目标运行分区的标准验证符对写入升级文件后的目标运行分区进行验证;当验证成功时,设置启动分区跳转升级后的目标运行分区,执行所述目标运行分区中的运行程序。解决了OTA升级过程中出现意外断电或者拔电池的情况,造成应用程序被擦除来不及更新或更新未完成,从而导致设备程序丢失而无法正常启动的问题,实现了设备安全升级的效果。
Description
技术领域
本发明实施例涉及程序更新技术,尤其涉及一种OTA升级方法、装置、设备和介质。
背景技术
近年来随着智能家居,物联网,车联网技术的蓬勃发展,OTA(Over the AirTechnology,空间下载技术)升级在这些领域开始有了广泛的应用。
行业里面常见的OTA升级流程都是两步走,固件拉取到本地以及新固件覆盖旧固件的过程;然而在很多低功耗设备里面常常会发生覆盖旧固件的过程意外断电或者拔电池的现象,造成应用程序被擦除来不及更新或更新未完成,从而导致设备程序丢失而无法正常启动。总的来说,覆盖旧固件的过程遭遇失败的现象时有发生,并且普遍存在于各行各业,对于电池供电的设备而言尤甚。
发明内容
本发明实施例提供一种OTA升级方法、装置、设备和介质,以实现设备从程序升级开始到升级完成重新启动的过程中掉电或拔电池都不会出现设备死机的现象,给程序升级提供可靠保障。
第一方面,本发明实施例提供了一种OTA升级方法,该方法包括:
获取升级文件,从参数分区中确定至少两个运行分区的状态参数;
根据所述至少两个运行分区的状态参数,确定用于进行升级的目标运行分区,其中,所述目标运行分区为无损运行分区;
基于所述升级文件对所述目标运行分区进行升级,设置启动分区跳转升级后的目标运行分区,执行所述目标运行分区中的运行程序。
第二方面,本发明实施例还提供了一种OTA升级装置,该装置包括:
状态参数确定模块,用于获取升级文件,从参数分区中确定至少两个运行分区的状态参数;
目标运行分区确定模块,用于根据所述至少两个运行分区的状态参数,确定用于进行升级的目标运行分区,其中,所述目标运行分区为无损运行分区;
运行程序执行模块,用于基于所述升级文件对所述目标运行分区进行升级,设置启动分区跳转升级后的目标运行分区,执行所述目标运行分区中的运行程序。
第三方面,本发明实施例还提供了一种设备,其中,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所提供的OTA升级方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如本发明任意实施例所提供的OTA升级方法。
本发明实施例通过获取升级文件,从参数分区中确定至少两个运行分区的状态参数;根据所述至少两个运行分区的状态参数,确定用于进行升级的目标运行分区,其中,所述目标运行分区为无损运行分区;基于所述升级文件对所述目标运行分区进行升级,并基于所述目标运行分区的标准验证符对写入升级文件后的目标运行分区进行验证;当验证成功时,设置启动分区跳转升级后的目标运行分区,执行所述目标运行分区中的运行程序。设置两个运行分区,可保证至少一个运行分区无损,解决了OTA升级过程中出现意外断电或者拔电池的情况,造成应用程序被擦除来不及更新或更新未完成,从而导致设备程序丢失而无法正常启动的问题,实现了设备安全升级的效果。
附图说明
图1是本发明实施例一中的一种OTA升级方法的流程图;
图2是本发明实施例二中的一种OTA升级方法的流程图;
图3是本发明实施例二提供的另一种OTA升级方法的流程图;
图4是本发明实施例三中的OTA升级装置的结构示意图;
图5是本发明实施例四中的一种设备的结构示意图;
图6是现有的OTA升级流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
一般而言,设备的启动流程为:设备上电之后,系统自动进入引导程序,然后再跳转到应用程序,这样应用程序就启动起来。而常见OTA流程,如图6所示,大致分为如下5个步骤:1、拉取升级文件到本地仓库;2、软件复位,设备进入引导程序;3、擦除应用程序;4、本地仓库文件分页写入应用程序段,直至写完所有本地仓库的内容;5、复位重启,新固件启动成功。
然而设备在运行的过程经常出现拔电池或意外断电的问题,特别强调的是在实际的工程经验中步骤3和4一般可能持续1-2分钟,如果此时正好断电,设备应用程序被破坏,直接导致设备无法启动,问题严重程度可想而知。有鉴于此,本发明实施例提供了一种可以防止OTA升级过程中因断电设备死机的方法。具体详见下述实施例:
实施例一
图1为本发明实施例一提供的一种OTA升级方法的流程图,本实施例可适用于设备OTA升级时的情况,该方法可以由OTA升级装置来执行,具体包括如下步骤:
S110、获取升级文件,从参数分区中确定至少两个运行分区的状态参数。
在本发明实施例中,升级文件指对设备中的固件进行升级的文件,固件为担任着一个系统最基础、最底层工作的软件。
将芯片内部的flash存储器的分区设计为启动分区、至少两个运行分区和参数分区。参数分区用于存储跳转运行分区的跳转地址与该运行分区的校验符。启动分区用于存储引导程序,引导设备启动。运行分区用于存储并运行使设备进行运转的程序。
至少两个运行分区的状态参数包括运行、未运行和损坏,状态参数用于表示各运行分区的运行状态,获取升级文件后,从参数分区中获取运行分区的状态参数,即根据存储于参数分区的跳转运行分区的跳转地址和该运行分区的校验符得到运行分区的状态参数。示例性的,参数分区中存储的程序代码forward_app_section用于确定跳转运行分区的跳转地址,程序代码this_app_md5用于确定跳转运行分区的校验符。通过程序代码forward_app_section和程序代码this_app_md5就可得知运行状态为正在运行程序的运行分区,其他运行分区为未运行或损坏的运行分区,若程序代码forward_app_section和this_app_md5损坏,不能确定跳转运行分区的跳转地址和跳转运行分区的校验符,则表明状态参数为损坏。
S120、根据所述至少两个运行分区的状态参数,确定用于进行升级的目标运行分区,其中,所述目标运行分区为无损运行分区。
本实施例中,设置至少两个运行分区,为固件升级提供多个可选分区,避免单一运行分区情况下,升级失败导致的设备无法启动的情况。可选的,根据所述至少两个运行分区的状态参数,确定用于进行升级的目标运行分区,包括:根据所述至少两个运行分区的状态参数,筛选状态参数为运行或未运行的运行分区作为目标运行分区;当所述状态参数为运行或未运行的运行分区为至少两个时,将状态参数为未运行的运行分区作为目标运行分区。
根据获取的各运行分区的状态参数,将无损分区作为候选的运行分区,表明即使在至少一个运行分区中包括损坏的运行分区时,只要有一个无损分区即可实现设备的正常运行和再次升级。当各运行分区的状态参数表明存在一个处于运行或者未运行的运行分区时,将该运行分区确定为目标运行分区,当存在两个或两个以上处于运行或者未运行的运行分区,将处于未运行状态的运行分区确定为用于进行升级的目标运行分区,使得在进行升级过程中,不对处于运行状态的运行分区产生影响,固件升级过程中应用程序的正常运行,实现升级前应用程序和升级后应用程序的无缝衔接,提高用户的体验。
示例性的,设置两个运行分区,分别为运行分区app1和运行分区app2,app1与app2都可以支持设备跳转运行。运行分区app1的校验符为md5.1,运行分区app2的校验符为md5.2。当参数分区中的状态参数forward_app_section等于1,且this_app_md5等于md5.1,说明运行分区app1正在运行,则将app2确定为用于进行升级的目标运行分区。当参数分区中的状态参数forward_app_section等于2,且this_app_md5等于md5.2,说明运行分区app2正在运行,则将app1确定为用于进行升级的目标运行分区。
确定的目标运行分区为无损分区,即在对设备进行OTA升级时,确定的目标运行分区中保存的程序文件是完好无损的,没有因设备突然掉电等突发情况造成程序文件的意外损坏。若确定的目标运行分区中的程序文件有损坏,则设备将无法运行,OTA升级失败。
S130、基于所述升级文件对所述目标运行分区进行升级,设置启动分区跳转升级后的目标运行分区,执行所述目标运行分区中的运行程序。
其中,对目标运行分区进行升级可以是,将目标运行分区中的原应用程序擦除,将升级文件中的应用程序写入目标运行分区中。
设置启动分区跳转升级后的目标运行分区,包括:根据所述目标运行分区设置所述启动分区的跳转地址,将所述跳转地址和所述目标运行分区的校验符存储至所述参数分区,以使所述启动分区根据所述跳转地址跳转升级后的目标运行分区。修改参数分区的参数,将跳转运行分区的跳转地址修改为升级后的目标运行分区的地址,将跳转运行分区的校验符修改为升级后的目标运行分区的标准校验符。
对设备重新上电启动,进入启动分区,运行引导程序读取参数分区参数,根据参数分区中跳转运行分区的跳转地址跳转升级后的目标运行分区,执行目标运行分区中的运行程序,此时升级完成。
本实施例的技术方案,通过获取升级文件,从参数分区中确定至少两个运行分区的状态参数;根据所述至少两个运行分区的状态参数,确定用于进行升级的目标运行分区,其中,所述目标运行分区为无损运行分区;基于所述升级文件对所述目标运行分区进行升级,设置启动分区跳转升级后的目标运行分区,执行所述目标运行分区中的运行程序。保证至少有一个分区能够正常运行,解决了OTA升级过程中出现意外断电或者拔电池的情况,造成应用程序被擦除来不及更新或更新未完成,从而导致设备程序丢失而无法正常启动的问题,实现了设备安全升级的效果。
实施例二
图2为本发明实施例二提供的一种OTA升级方法的流程图,本实施例以上述实施例为基础进行进一步优化,确定目标运行分区的标准校验符,将其写入预设位置,基于标准校验符对写入升级文件后的目标运行分区进行验证,调节各运行分区的状态参数,当参数分区损坏时,重新计算各运行分区的校验符,与各运行分区中设置的标准校验符进行比对,根据比对结果确定各运行分区的状态参数,确保其中一个运行分区是完好的。如图2所示,该方法具体包括:
S210、获取升级文件,从参数分区中确定至少两个运行分区的状态参数。
S220、确定所述目标运行分区的标准校验符,将所述标准校验符写入所述目标运行分区中的预设位置。
示例性的,当确定用于升级的目标运行分区后,将升级文件写入到该目标运行分区,写入完成后,根据写入的升级文件计算目标运行分区的标准校验符md5值,将该标准校验符md5值存储在升级文件的文件名的末尾。
S230、当所述参数分区损坏时,重新计算各运行分区的校验符,并将重新计算的校验符与所述各运行分区中设置的标准校验符进行比对,根据比对结果确定各运行分区的状态参数。
当参数分区损坏时,即启动分区的引导程序无法读取参数分区的参数,此时,需重新计算各分区的校验符。将重新计算的各分区校验符与各运行分区设置的标准校验符进行比对,各运行分区的标准校验符为当程序写入各运行分区时,根据写入的程序计算的校验符,保存在程序文件名的末尾。
参数分区损坏的原因可能是:在调节参数分区中各运行分区的状态参数时,设备突然掉电,使参数分区中各运行分区的状态参数未完全调节好,致使参数分区中存储的参数混乱,启动分区读取出错。
所述根据比对结果确定各运行分区的状态参数,包括:当所述重新计算的校验符与所述运行分区中设置的标准校验符相同时,确定所述运行分区的状态参数为未损坏;当所述重新计算的校验符与所述运行分区中设置的标准校验符不相同时,确定所述运行分区的状态参数为损坏。当确定所述运行分区的状态参数为未损坏时,证明该运行分区的程序文件完好,可以将该运行分区设置为跳转运行的运行分区。当确定的所述运行分区的状态参数为损坏时,证明该运行分区的程序文件损坏,不能跳转到该运行分区。
运行分区状态参数为损坏的原因可能是:在升级文件写入的过程中,设备突然掉电,导致升级文件写入目标运行分区终止,升级文件没有完全写入到目标运行分区中。
S240、根据所述至少两个运行分区的状态参数,确定用于进行升级的目标运行分区,其中,所述目标运行分区为无损运行分区。
S250、基于所述升级文件对所述目标运行分区进行升级。
S260、基于所述目标运行分区的标准验证符对写入升级文件后的目标运行分区进行验证,根据验证结果调节所述参数分区中各运行分区的状态参数。
升级文件写入目标运行分区后,将计算的标准校验符与升级文件自带的校验符进行比对,验证二者是否一致,当验证成功时,说明升级文件已经准确无误的写入到目标运行分区,即目标运行分区升级成功,此时将参数分区中所述目标运行分区的状态参数调节为运行,即将参数分区中跳转运行分区的跳转地址修改为升级后的目标运行分区的地址,将跳转运行分区的校验符修改为升级后计算的目标运行分区的标准校验符。当验证失败时,说明升级文件写入目标运行分区出错,写入到目标运行分区的文件与升级文件不相符,表明目标运行分区升级失败,此时将参数分区中所述目标运行分区的状态参数调节为损坏,参数分区中跳转运行分区的跳转地址和跳转运行分区的校验符保持不变。
S270、当目标运行分区升级成功时,设置启动分区跳转升级后的目标运行分区,执行所述目标运行分区中的运行程序。
本实施例的技术方案,通过基于所述目标运行分区的标准验证符对写入升级文件后的目标运行分区进行验证,根据验证结果调节所述参数分区中各运行分区的状态参数,先对写入升级文件后的目标分区进行验证,再调节参数分区中各运行分区的状态参数,可确保写入的升级文件是完整无损的,使设备可以顺利的跳转目标运行分区执行其中的运行程序。当所述参数分区损坏时,重新计算各运行分区的校验符,并将重新计算的校验符与所述各运行分区中设置的标准校验符进行比对,根据比对结果确定各运行分区的状态参数。无需应用备份文件恢复运行分区的文件,节省了设备的存储空间,提高了设备掉电之后恢复功能的效率。
参见图3,图3是本发明实施例二提供的另一种OTA升级方法的流程图。
该方法包括:
S310、获取升级文件,从参数分区中确定至少两个运行分区的状态参数,其中,运行分区状态参数为运行或未运行。
S320、将状态参数为未运行的运行分区确定为目标运行分区。
S330、基于所述升级文件对所述目标运行分区进行升级。
S340、基于所述目标运行分区的标准验证符对写入升级文件后的目标运行分区进行验证,根据验证结果调节所述参数分区中各运行分区的状态参数,其中,标准验证符为在基于所述升级文件对所述目标运行分区进行升级之前写入所述目标运行分区中的预设位置。当验证成功时,执行步骤S350,验证失败时,执行步骤S360。
S350、设置启动分区跳转升级后的目标运行分区,执行所述目标运行分区中的运行程序。
S360、重新上电,获取升级文件,从参数分区中确定至少两个运行分区的状态参数,其中,状态参数包括损坏、运行或未运行。
S370、根据至少两个运行分区的状态参数,将无损运行分区确定为目标运行分区,并执行步骤S330。
本实施例的技术方案,通过设置两个运行分区,使得在升级失败时,设备可正常启动且再次升级。
实施例三
图4为本发明实施例三提供的一种OTA升级装置的结构图,该装置包括:状态参数确定模块410、目标运行分区确定模块420和运行程序执行模块430。
其中,状态参数确定模块410,用于获取升级文件,从参数分区中确定至少两个运行分区的状态参数;目标运行分区确定模块420,用于根据所述至少两个运行分区的状态参数,确定用于进行升级的目标运行分区,其中,所述目标运行分区为无损运行分区;运行程序执行模块430,用于基于所述升级文件对所述目标运行分区进行升级,设置启动分区跳转升级后的目标运行分区,执行所述目标运行分区中的运行程序。
在上述实施例方案中,运行程序执行模块430包括:
跳转地址设置单元,用于根据所述目标运行分区设置所述启动分区的跳转地址,将所述跳转地址和所述目标运行分区的验证符存储至所述参数分区,以使所述启动分区根据所述跳转地址跳转升级后的目标运行分区。
在上述实施例方案中,目标运行分区确定模块420包括:
运行分区筛选单元,用于根据所述至少两个运行分区的状态参数,筛选状态参数为运行或未运行的运行分区作为目标运行分区;
目标运行分区确定单元,用于当所述状态参数为运行或未运行的运行分区为至少两个时,将状态参数为未运行的运行分区作为目标运行分区。
可选的,至少两个运行分区的状态参数包括运行、未运行和损坏。
在上述实施例方案中,OTA升级装置还包括:
标准校验符确定模块,用于确定所述目标运行分区的标准校验符,将所述标准校验符写入所述目标运行分区中的预设位置。
在上述实施例方案中,OTA升级装置还包括:
状态参数确定模块,用于当所述参数分区损坏时,重新计算各运行分区的校验符,并将重新计算的校验符与所述各运行分区中设置的标准校验符进行比对,根据比对结果确定各运行分区的状态参数。
在上述实施例方案中,状态参数确定模块包括:
未损坏状态确定单元,用于当所述重新计算的校验符与所述运行分区中设置的标准校验符相同时,确定所述运行分区的状态参数为未损坏;
损坏状态确定单元,用于当所述重新计算的校验符与所述运行分区中设置的标准校验符不相同时,确定所述运行分区的状态参数为损坏。
在上述实施例方案中,OTA升级装置还包括:
状态参数调节模块,用于基于所述目标运行分区的标准验证符对写入升级文件后的目标运行分区进行验证,根据验证结果调节所述参数分区中各运行分区的状态参数。
本实施例的技术方案,通过获取升级文件,从参数分区中确定至少两个运行分区的状态参数;根据所述至少两个运行分区的状态参数,确定用于进行升级的目标运行分区,其中,所述目标运行分区为无损运行分区;基于所述升级文件对所述目标运行分区进行升级,设置启动分区跳转升级后的目标运行分区,执行所述目标运行分区中的运行程序,解决了OTA升级过程中出现意外断电或者拔电池的情况,造成应用程序被擦除来不及更新或更新未完成,从而导致设备程序丢失而无法正常启动的问题,实现了设备安全升级的效果。
本发明实施例所提供的OTA升级装置可执行本发明任意实施例所提供的OTA升级方法,具备执行方法相应的功能模块和有益效果。
实施例四
图5为本发明实施例四提供的一种设备的结构示意图,如图5所示,该设备包括处理器510、存储器520、输入装置530和输出装置540;设备中处理器510的数量可以是一个或多个,图5中以一个处理器510为例;设备中的处理器510、存储器520、输入装置530和输出装置540可以通过总线或其他方式连接,图5中以通过总线连接为例。
存储器520作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的OTA升级方法对应的程序指令/模块(例如,状态参数确定模块410、目标运行分区确定模块420和运行程序执行模块430)。处理器510通过运行存储在存储器520中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的OTA升级方法。
存储器520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器520可进一步包括相对于处理器510远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置530可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置540可包括显示屏等显示设备。
实施例五
本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种OTA升级方法,该方法包括:
获取升级文件,从参数分区中确定至少两个运行分区的状态参数;
根据所述至少两个运行分区的状态参数,确定用于进行升级的目标运行分区,其中,所述目标运行分区为无损运行分区;
基于所述升级文件对所述目标运行分区进行升级,设置启动分区跳转升级后的目标运行分区,执行所述目标运行分区中的运行程序。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的OTA升级方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述OTA升级装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种OTA升级方法,其特征在于,包括:
获取升级文件,从参数分区中确定至少两个运行分区的状态参数;
根据所述至少两个运行分区的状态参数,确定用于进行升级的目标运行分区,其中,所述目标运行分区为无损运行分区;
基于所述升级文件对所述目标运行分区进行升级,设置启动分区跳转升级后的目标运行分区,执行所述目标运行分区中的运行程序。
2.根据权利要求1所述的方法,其特征在于,设置启动分区跳转升级后的目标运行分区,包括:
根据所述目标运行分区设置所述启动分区的跳转地址,将所述跳转地址和所述目标运行分区的验证符存储至所述参数分区,以使所述启动分区根据所述跳转地址跳转升级后的目标运行分区。
3.根据权利要求1所述的方法,其特征在于,至少两个运行分区的状态参数包括运行、未运行和损坏;其中,
根据所述至少两个运行分区的状态参数,确定用于进行升级的目标运行分区,包括:
根据所述至少两个运行分区的状态参数,筛选状态参数为运行或未运行的运行分区作为目标运行分区;
当所述状态参数为运行或未运行的运行分区为至少两个时,将状态参数为未运行的运行分区作为目标运行分区。
4.根据权利要求1所述的方法,其特征在于,在基于所述升级文件对所述目标运行分区进行升级之前,还包括:
确定所述目标运行分区的标准校验符,将所述标准校验符写入所述目标运行分区中的预设位置。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述参数分区损坏时,重新计算各运行分区的校验符,并将重新计算的校验符与所述各运行分区中设置的标准校验符进行比对,根据比对结果确定各运行分区的状态参数。
6.根据权利要求5所述的方法,其特征在于,所述根据比对结果确定各运行分区的状态参数,包括:
当所述重新计算的校验符与所述运行分区中设置的标准校验符相同时,确定所述运行分区的状态参数为未损坏;
当所述重新计算的校验符与所述运行分区中设置的标准校验符不相同时,确定所述运行分区的状态参数为损坏。
7.根据权利要求1所述的方法,其特征在于,所述基于所述升级文件对所述目标运行分区进行升级之后,还包括:
基于所述目标运行分区的标准验证符对写入升级文件后的目标运行分区进行验证,根据验证结果调节所述参数分区中各运行分区的状态参数。
8.一种OTA升级装置,其特征在于,包括:
状态参数确定模块,用于获取升级文件,从参数分区中确定至少两个运行分区的状态参数;
目标运行分区确定模块,用于根据所述至少两个运行分区的状态参数,确定用于进行升级的目标运行分区,其中,所述目标运行分区为无损运行分区;
运行程序执行模块,用于基于所述升级文件对所述目标运行分区进行升级,设置启动分区跳转升级后的目标运行分区,执行所述目标运行分区中的运行程序。
9.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一项所述的一种OTA升级方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一项所述的一种OTA升级方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010002626.1A CN113064608A (zh) | 2020-01-02 | 2020-01-02 | 一种ota升级方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010002626.1A CN113064608A (zh) | 2020-01-02 | 2020-01-02 | 一种ota升级方法、装置、设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113064608A true CN113064608A (zh) | 2021-07-02 |
Family
ID=76558281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010002626.1A Pending CN113064608A (zh) | 2020-01-02 | 2020-01-02 | 一种ota升级方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113064608A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1889042A (zh) * | 2006-07-17 | 2007-01-03 | 华为技术有限公司 | 一种终端升级方法及系统 |
CN105094927A (zh) * | 2015-08-28 | 2015-11-25 | 东方网力科技股份有限公司 | 一种设备固件升级方法和装置 |
CN105760200A (zh) * | 2016-02-26 | 2016-07-13 | 晨星半导体股份有限公司 | 终端设备及其系统升级方法 |
CN105912356A (zh) * | 2016-03-31 | 2016-08-31 | 武汉光迅科技股份有限公司 | 一种支持版本回退的光模块固件程序在线升级方法 |
WO2016155524A1 (zh) * | 2015-03-27 | 2016-10-06 | 阿里巴巴集团控股有限公司 | 一种系统安全升级的方法和装置 |
CN106020865A (zh) * | 2016-05-10 | 2016-10-12 | 百度在线网络技术(北京)有限公司 | 一种系统升级方法和装置 |
CN107273160A (zh) * | 2017-06-09 | 2017-10-20 | 青岛海信电器股份有限公司 | 一种版本升级的方法及装置 |
-
2020
- 2020-01-02 CN CN202010002626.1A patent/CN113064608A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1889042A (zh) * | 2006-07-17 | 2007-01-03 | 华为技术有限公司 | 一种终端升级方法及系统 |
WO2016155524A1 (zh) * | 2015-03-27 | 2016-10-06 | 阿里巴巴集团控股有限公司 | 一种系统安全升级的方法和装置 |
CN105094927A (zh) * | 2015-08-28 | 2015-11-25 | 东方网力科技股份有限公司 | 一种设备固件升级方法和装置 |
CN105760200A (zh) * | 2016-02-26 | 2016-07-13 | 晨星半导体股份有限公司 | 终端设备及其系统升级方法 |
CN105912356A (zh) * | 2016-03-31 | 2016-08-31 | 武汉光迅科技股份有限公司 | 一种支持版本回退的光模块固件程序在线升级方法 |
CN106020865A (zh) * | 2016-05-10 | 2016-10-12 | 百度在线网络技术(北京)有限公司 | 一种系统升级方法和装置 |
CN107273160A (zh) * | 2017-06-09 | 2017-10-20 | 青岛海信电器股份有限公司 | 一种版本升级的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102023908B (zh) | 一种引导程序备份方法及装置 | |
US20070055969A1 (en) | System and method for updating firmware | |
US20100169709A1 (en) | System Of Updating Firmware And Method Thereof, And Method Of Creating Firmware | |
CN106775610B (zh) | 一种电子设备启动方法及一种电子设备 | |
CN111796848A (zh) | Bootloader软件更新方法、装置、嵌入式控制器以及存储介质 | |
CN112015447B (zh) | 电子设备的系统更新方法及装置、电子设备及存储介质 | |
CN110597542A (zh) | 软件自动ota升级方法及装置、电子设备 | |
CN113110891B (zh) | 固态硬盘的固件加载方法、装置、计算机设备及存储介质 | |
CN115145650A (zh) | 信息处理装置、存储介质及信息处理方法 | |
CN113032183A (zh) | 系统管理方法、装置、计算机设备和存储介质 | |
CN115061713A (zh) | 升级电子设备的方法及装置 | |
CN111124760B (zh) | 一种基于uboot的嵌入式设备启动方法及装置 | |
CN113220319A (zh) | 一种数据更新方法、装置及车辆 | |
CN111552592A (zh) | 一种双备份启动方法及系统 | |
KR20180023575A (ko) | 펌웨어 자동 업데이트 방법 및 이의 방법을 기록한 컴퓨터 판독 가능한 기록 매체 | |
CN113094107B (zh) | 数据保护方法、装置、设备及计算机存储介质 | |
CN113064608A (zh) | 一种ota升级方法、装置、设备和介质 | |
JP2002175193A (ja) | プログラム書き換え装置及びプログラム書き換え方法 | |
CN112732301A (zh) | 一种车辆升级方法和装置 | |
CN112667444A (zh) | 一种系统升级方法、存储介质及终端设备 | |
CN111190627A (zh) | 系统升级方法及装置 | |
CN117270914B (zh) | 一种终端设备的系统升级方法、装置、设备和介质 | |
CN114265603A (zh) | 基于不对称分区的系统升级方法、装置和电子设备 | |
CN114840360A (zh) | 程序加载方法、装置、电子设备及存储介质 | |
CN117742756A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210702 |