多路系统的交替升级方法与流程

文档序号:17396847发布日期:2019-04-13 00:53阅读:171来源:国知局
多路系统的交替升级方法与流程

本申请涉及计算机系统技术领域,特别是涉及多路系统的交替升级方法。



背景技术:

随着电子、通信以及计算机技术的迅猛发展,嵌入式设备已经广泛应用于各领域。各行业对嵌入式设备的系统功能、性能以及规模的要求都在日益提高,因此对于嵌入式设备的系统升级也越发频繁。

目前的嵌入式终端产品升级方案普遍是:产品出厂时预先植入主程序p1和升级程序p2。程序p1用于实现基本功能,程序p2用于对系统进行升级维护。

当程序p2存在技术缺陷无法正常升级时,就需要人为手动升级。人为手动升级涉及到拆卸硬件、飞线引出升级接口等等,耗时耗力。



技术实现要素:

基于此,有必要针对现有终端产品预先植入的升级程序无法升级时,人为手动升级耗时耗力的问题,提供一种多路系统的交替升级方法。

一种多路系统的交替升级方法,包括:

通过当前运行的第一系统获取升级包,解析所述升级包的包头字段的数据信息,并依据所述数据信息判断是否需要对第二系统进行升级;

若判断所述第二系统需要升级,则将所述第二系统内的原始预置升级程序替换为所述升级包内的第一预置升级程序,并判断所述第二系统是否升级成功;

若所述第二系统升级成功,则将当前运行的所述第一系统切换为所述第二系统;

通过当前运行的所述第二系统内的所述第一预置升级程序完成对所述第一系统的升级。

在其中一个实施例中,所述若所述第二系统升级成功,则将当前运行的所述第一系统切换为所述第二系统的步骤之前,所述方法还包括:若所述第二系统升级未成功,则返回所述若判断所述第二系统需要升级,将所述第二系统内的原始预置升级程序替换为所述升级包内的第一预置升级程序,并判断所述第二系统是否升级成功的步骤。

在其中一个实施例中,所述若判断所述第二系统需要升级,则将所述第二系统内的原始预置升级程序替换为所述升级包内的第一预置升级程序,并判断所述第二系统是否升级成功的步骤之前,所述方法还包括:

若判断所述第二系统不需要升级,则将当前运行的所述第一系统切换为所述第二系统,并通过当前运行的所述第二系统内的所述原始预置升级程序完成对所述第一系统的升级。

在其中一个实施例中,所述通过当前运行的所述第二系统内的所述第一预置升级程序以完成对所述第一系统的升级的步骤包括:

通过当前运行的所述第二系统内的所述第一预置升级程序对所述第一系统进行升级,并判断所述第一系统是否升级成功;

若所述第一系统升级成功,则所述第一系统的升级结束。

在其中一个实施例中,所述若所述第一系统升级成功,则所述第一系统的升级结束的步骤之前,所述方法还包括:

若所述第一系统升级未成功,则将当前运行的所述第二系统切换为第三系统;

通过当前运行的所述第三系统对所述第一系统进行系统还原,并判断所述第一系统是否还原成功;

若所述第一系统还原成功,则返回所述若所述第二系统升级成功,则将当前运行的所述第一系统切换为所述第二系统的步骤。

在其中一个实施例中,所述若所述第一系统还原成功,则返回所述若所述第二系统升级成功,则将当前运行的所述第一系统切换为所述第二系统的步骤之前,所述方法还包括:

若所述第一系统还原未成功,则返回所述通过当前运行的所述第三系统对所述第一系统进行系统还原,并判断所述第一系统是否还原成功的步骤。

在其中一个实施例中,所述通过当前运行的所述第二系统内的所述第一预置升级程序完成对所述第一系统的升级的步骤之后,所述方法还包括:

将当前运行的所述第二系统切换为所述第一系统;

通过当前运行的所述第一系统对第三系统的备份升级,并判断所述第三系统是否升级成功;

若所述第三系统升级成功,则结束对所述第三系统的升级。

在其中一个实施例中,所述若所述第三系统升级成功,则结束对所述第三系统的升级的步骤之前,所述方法还包括:

若所述第三系统的升级未成功,则返回所述通过当前运行的所述第一系统对第三系统的备份升级,并判断所述第三系统是否升级成功的步骤。

在其中一个实施例中,所述通过当前运行的第一系统获取升级包,解析所述升级包的包头字段的数据信息,并依据所述数据信息判断是否需要对第二系统进行升级的步骤包括:

通过当前运行的第一系统获取升级包,并依据预设校验值对所述升级包进行校验;

当所述升级包校验成功后,则解析所述升级包的包头字段的数据信息,并依据所述数据信息判断是否需要对第二系统进行升级。

在其中一个实施例中,所述若判断所述第二系统需要升级,则将所述第二系统内的原始预置升级程序替换为所述升级包内的第一预置升级程序,并判断所述第二系统是否升级成功的步骤包括:

若判断所述第二系统需要升级,则解析所述升级包内的预置升级程序信息,得到所述第一预置升级程序;

将所述第二系统内的原始预置升级程序替换为所述第一预置升级程序,并判断所述第二系统是否升级成功。

与现有技术相比,上述多路系统的交替升级方法,包括:首先,通过当前运行的第一系统获取升级包,解析所述升级包的包头字段的数据信息。并依据所述数据信息判断是否需要对第二系统进行升级。其次,若判断所述第二系统需要升级,则将所述第二系统内的原始预置升级程序替换为所述升级包内的第一预置升级程序,并判断所述第二系统是否升级成功。若所述第二系统升级成功,则将当前运行的所述第一系统切换为所述第二系统。最后,通过当前运行的所述第二系统内的所述第一预置升级程序完成对所述第一系统的升级。

本申请在终端产品的原始预置升级程序存在缺陷时,先通过所述第一系统对所述第二系统内的始预置升级程序进行更新替换。然后在将当前运行的所述第一系统切换为所述第二系统,从而通过所述第二系统内更新替换后的升级程序对所述第一系统进行升级。不仅省时省力,还大大增加了可靠性。

附图说明

图1为本申请一实施例提供的多路系统的交替升级方法的流程示意图;

图2为本申请一实施例提供的多路系统的交替升级方法的流程图。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似改进,因此本申请不受下面公开的具体实施的限制。

需要说明的是,当元件被称为“固定于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。

请参见图1,本申请一实施例提供一种多路系统的交替升级方法,包括:

s102:通过当前运行的第一系统获取升级包,解析所述升级包的包头字段的数据信息,并依据所述数据信息判断是否需要对第二系统进行升级。

在一个实施例中,所述第一系统为各种应用程序提供运行环境,即所述第一系统为主系统。可以理解,所述第一系统的应用场景不限,只要保证所述第一系统能够正常运行即可。在一个实施例中,所述第一系统可应用于终端。所述终端可为手机、平板电脑等等。在一个实施例中,所述第一系统也可应用于服务器。所述第一系统具体应用场景,可根据实际需求进行选择。

在一个实施例中,所述第二系统可为升级系统,用于对所述第一系统进行升级。在一个实施例中,若所述第二系统内预存储程序没有缺陷,也没有被损坏,则通过所述第二系统内预存储程序得出的数据信息应与所述升级包的包头字段的数据信息一致。即此时不需要对所述第二系统进行升级。在一个实施例中,若所述第二系统内预存储程序有缺陷或者被损坏,则通过所述第二系统内预存储程序得出的数据信息应不与所述升级包的包头字段的数据信息一致。即此时需要对所述第二系统进行升级。

s104:若判断所述第二系统需要升级,则将所述第二系统内的原始预置升级程序替换为所述升级包内的第一预置升级程序,并判断所述第二系统是否升级成功。

在一个实施例中,所述第一系统对所述第二系统的升级过程中,若出现异常断电,则下一次上电会继续对所述第二系统进行升级,直到所述第二系统升级成功后,才会进行步骤s106。在一个实施例中,由于所述第一系统对所述第二系统的升级过程中,是将所述第二系统内的原始预置升级程序替换为所述升级包内的第一预置升级程序。即采取替换可执行程序的方式对所述第二系统进行升级,所以并不会导致所述第二系统升级过程中因掉电而出现异常。

s106:若所述第二系统升级成功,则将当前运行的所述第一系统切换为所述第二系统。

可以理解,将当前运行的所述第一系统切换为所述第二系统的切换方式不限,只要保证能够将所述第一系统切换为所述第二系统即可。在一个实施例中,可通过重启的方式将所述第一系统切换为所述第二系统。在一个实施例中,也可通过其他传统方式将所述第一系统切换为所述第二系统。将当前运行的所述第一系统切换为所述第二系统的具体切换方式,可通过实际需求进行选择。

s108:通过当前运行的所述第二系统内的所述第一预置升级程序完成对所述第一系统的升级。

在一个实施例中,通过所述第二系统内的所述第一预置升级程序对所述第一系统进行升级时,会先写升级失败的标志位至所述第一系统。若所述第二系统对所述第一系统进行升级的过程中,出现异常断电,则下次上电就需要先对所述第一系统进行还原,还原成功之后返回步骤s102。在一个实施例中,对所述第一系统进行还原的方式,可采用传统的还原方式进行,比如通过备份系统对所述第一系统进行还原等。在一个实施例中,直到所述第一系统升级成功后,将升级失败的标志位修改为升级成功标志位,才算升级结束。

本实施例中,在产品的原始预置升级程序存在缺陷时,先通过所述第一系统对所述第二系统内的始预置升级程序进行更新替换。然后在将当前运行的所述第一系统切换为所述第二系统,从而通过所述第二系统内更新替换后的升级程序对所述第一系统进行升级。不仅省时省力,还大大增加了可靠性。

请参见图2,在一个实施例中,所述若所述第二系统升级成功,则将当前运行的所述第一系统切换为所述第二系统的步骤之前,所述方法还包括:若所述第二系统升级未成功,则返回所述若判断所述第二系统需要升级。将所述第二系统内的原始预置升级程序替换为所述升级包内的第一预置升级程序,并判断所述第二系统是否升级成功的步骤。

在一个实施例中,若所述第二系统升级未成功,则返回步骤s104。直到所述第二系统升级成功,才会进行若所述第二系统升级成功,则将当前运行的所述第一系统切换为所述第二系统的步骤(即步骤s106)。

在一个实施例中,所述若判断所述第二系统需要升级,则将所述第二系统内的原始预置升级程序替换为所述升级包内的第一预置升级程序,并判断所述第二系统是否升级成功的步骤之前,所述方法还包括:若判断所述第二系统不需要升级,则将当前运行的所述第一系统切换为所述第二系统,并通过当前运行的所述第二系统内的所述原始预置升级程序完成对所述第一系统的升级。

在一个实施例中,将当前运行的所述第一系统切换为所述第二系统的具体方式,可采取上述实施例所述的方式,这里就不重复描述。

在一个实施例中,通过所述第二系统内的所述原始预置升级程序对所述第一系统进行升级时,会先写升级失败的标志位至所述第一系统。若所述第二系统对所述第一系统进行升级的过程中,出现异常断电,则下次上电就需要先对所述第一系统进行还原,还原成功之后返回步骤s102。在一个实施例中,对所述第一系统进行还原的方式,可采用传统的还原方式进行,比如通过备份系统对所述第一系统进行还原等。在一个实施例中,直到所述第一系统升级成功后,将升级失败的标志位修改为升级成功标志位,才算升级结束。

在一个实施例中,所述通过当前运行的所述第二系统内的所述第一预置升级程序以完成对所述第一系统的升级的步骤包括:通过当前运行的所述第二系统内的所述第一预置升级程序对所述第一系统进行升级,并判断所述第一系统是否升级成功。若所述第一系统升级成功,则所述第一系统的升级结束。

在一个实施例中,通过前运行的所述第二系统内的所述第一预置升级程序对所述第一系统进行升级时,若在升级的过程中,没有出现异常掉电,则判断所述第一系统升级成功。若在升级的过程中,出现异常掉电,则判断所述第一系统升级未成功,在下次上电时,重新对所述第一系统进行升级,直到所述第一系统升级成功为止。

在一个实施例中,所述若所述第一系统升级成功,则所述第一系统的升级结束的步骤之前,所述方法还包括:若所述第一系统升级未成功,则将当前运行的所述第二系统切换为第三系统。通过当前运行的所述第三系统对所述第一系统进行系统还原,并判断所述第一系统是否还原成功。若所述第一系统还原成功,则返回所述若所述第二系统升级成功,则将当前运行的所述第一系统切换为所述第二系统的步骤。

可以理解,将当前运行的所述第二系统切换为所述第三系统的方式不限,只要保证将所述第二系统切换为所述第三系统即可。在一个实施例中,可通过重启的方式将所述第二系统切换为所述第三系统。在一个实施例中,也可通过其他传统方式将所述第二系统切换为所述第三系统。将当前运行的所述第二系统切换为所述第三系统的具体切换方式,可通过实际需求进行选择。

在一个实施例中,当所述第三系统对所述第一系统进行还原时,若在还原的过程中,没有出现异常掉电,则判断所述第一系统还原成功。若在还原的过程中,出现异常掉电,则判断所述第一系统还原未成功,在下次上电时重新对所述第一系统进行还原,直到所述第一系统还原成功为止。

在一个实施例中,所述若所述第一系统还原成功,则返回所述若所述第二系统升级成功,则将当前运行的所述第一系统切换为所述第二系统的步骤之前,所述方法还包括:若所述第一系统还原未成功,则返回所述通过当前运行的所述第三系统对所述第一系统进行系统还原,并判断所述第一系统是否还原成功的步骤。在一个实施例中,若所述第一系统还原未成功,则重新通过所述第三系统对所述第一系统进行系统还原,直到所述第一系统被还原为止。

在一个实施例中,所述通过当前运行的所述第二系统内的所述第一预置升级程序完成对所述第一系统的升级的步骤之后,所述方法还包括:将当前运行的所述第二系统切换为所述第一系统。通过当前运行的所述第一系统对第三系统的备份升级,并判断所述第三系统是否升级成功。若所述第三系统升级成功,则结束对所述第三系统的升级。

在一个实施例中,通过所述第一系统对第三系统的进行备份升级时,若在备份升级的过程中,没有出现异常掉电的情况,则判断所述第三系统升级成功。若在备份升级的过程中,出现异常掉电的情况,则判断所述第三系统升级未成功。当所述第三系统升级未成功,在下次上电时,则重新对所述第三系统进行升级,直到所述第三系统升级成功为止。

在一个实施例中,所述若所述第三系统升级成功,则结束对所述第三系统的升级的步骤之前,所述方法还包括:若所述第三系统的升级未成功,则返回所述通过当前运行的所述第一系统对第三系统的备份升级,并判断所述第三系统是否升级成功的步骤。在一个实施例中,若所述第三系统备份升级未成功,则重新通过所述第一系统对所述第三系统进行系统备份,直到所述第三系统备份升级成功为止。

在一个实施例中,所述通过当前运行的第一系统获取升级包,解析所述升级包的包头字段的数据信息,并依据所述数据信息判断是否需要对第二系统进行升级的步骤包括:通过当前运行的第一系统获取升级包,并依据预设校验值对所述升级包进行校验。当所述升级包校验成功后,则解析所述升级包的包头字段的数据信息,并依据所述数据信息判断是否需要对第二系统进行升级。

在一个实施例中,所述预设校验值是指通过传统算法将升级包进行数据计算得出的。在一个实施例中,通过将所述第一系统获取的所述升级包进行数据计算,得到的校验值与所述预设校验值相同,则判断所述升级包成功通过校验。若得到的校验值与所述预设校验值不相同,判断所述升级包未成功通过校验,则通过所述第一系统重新获取升级包,直到所述升级包成功通过校验为止。

在一个实施例中,所述若判断所述第二系统需要升级,则将所述第二系统内的原始预置升级程序替换为所述升级包内的第一预置升级程序,并判断所述第二系统是否升级成功的步骤包括:若判断所述第二系统需要升级,则解析所述升级包内的预置升级程序信息,得到所述第一预置升级程序。将所述第二系统内的原始预置升级程序替换为所述第一预置升级程序,并判断所述第二系统是否升级成功。

在一个实施例中,由于是将所述第二系统内的原始预置升级程序替换为所述升级包内的第一预置升级程序。即采取替换可执行程序的方式对所述第二系统进行升级,所以并不会导致所述第二系统升级过程中因掉电而出现异常。

综上所述,本申请在产品的原始预置升级程序存在缺陷时,先通过所述第一系统对所述第二系统内的始预置升级程序进行更新替换。然后在将当前运行的所述第一系统切换为所述第二系统,从而通过所述第二系统内更新替换后的升级程序对所述第一系统进行升级。不仅省时省力,还大大增加了可靠性。当产品在升级过程中异常掉电导致所述第一系统被擦除而无法正常启动时,可以通过所述第三系统对所述第一系统进行还原,以及通过所述第二系统对所述第一系统进行续升。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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