一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

固件升级失败的回滚方法、装置、设备及存储介质与流程

2022-05-26 23:28:28 来源:中国专利 TAG:


1.本发明属于固件升级技术领域,尤其涉及一种固件升失败的回滚方法、装置、设备及存储介质。


背景技术:

2.目前市场上支持升级的固件主要分如下两类:
3.第一种固件,支持升级,对外提供相关升级接口,需要外部通信控制器(communication control unit,ccu)按照其特定的升级步骤,对其进行升级。
4.第二种固件,有一定能力,可进行自升级,仅提供给其升级包即可,无需外部ccu进行其他控制。
5.因此,第一种固件、以及第二种固件均不支持回滚回退操作,使得升级固件存在失败的风险,而一旦升级失败,只能到指定的维修地点,通过专业人员进行修复,给使用者带来了极大的不便以及巨大的经济上的损失。


技术实现要素:

6.本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的一个目的在于提出一种固件升失败的回滚方法、装置、设备及存储介质。
7.为了解决上述技术问题,本发明的实施例提供如下技术方案:
8.一种固件升级失败的回滚方法,包括:
9.控制模块获取升级包;
10.所述控制模块基于所述升级包控制待升级固件进行升级,获取升级结果;
11.所述控制模块对所述升级结果进行校验;
12.若所述升级结果为失败,则所述控制模块获取历史升级包;
13.所述控制模块基于所述历史升级包控制所述待升级固件进行升级;
14.其中,所述待升级固件设有升级存储区以及功能存储区,所述升级存储区与所述功能存储区分别独立设置;所述升级存储区用于提供升级地址,所述功能存储区用于存储所述待升级固件的使用数据。
15.可选的,所述基于所述升级包对所述待升级固件进行升级,获取升级结果,包括:
16.对所述升级包进行解析处理,获取解析结果;所述解析结果包括所述升级包的版本号以及检验参数;
17.基于所述校验参数,对所述升级包进行校验;所述校验参数包括所述待升级固件的属性信息;
18.若所述升级包与所述待升级固匹配,则基于所述解析结果控制所述待升级固件进行升级,获取升级结果。
19.可选的,所述基于所述解析结果控制所述待升级固件进行升级,获取升级结果,包括:
20.所述控制模块向所述待升级固件发送确认升级信号;
21.所述待升级固件基于所述升级信号进行反馈,并将所述反馈信号发送至所述控制模块;
22.所述控制模块基于所述反馈信号以及所述解析结果控制所述待升级固件进行升级,获取升级结果。
23.可选的,所述控制模块基于所述反馈信号以及所述解析结果控制所述待升级固件进行升级,获取升级结果,包括:
24.若所述反馈信号为确认升级;
25.则所述控制模块向所述待升级固件发送获取升级地址以及升级方式的请求;
26.所述控制模块基于获取的所述升级地址以及升级方式控制所述待升级固件进行升级,获取升级结果。
27.可选的,所述控制模块对所述升级结果进行校验,包括:
28.所述控制模块获取完成升级固件的待校验版本号;
29.若所述待校验版本号与所述升级包的版本号一致,则升级成功;
30.若所述待校验版本号与所述升级包的版本号不一致,则升级失败。
31.可选的,所述若所述待校验版本号与所述升级包的版本号一致,则升级成功后,还包括:
32.删除所述历史升级包,并对所述升级包进行存储。
33.可选的,所述若所述待校验版本号与所述升级包的版本号不一致,则升级失败,还包括:
34.对所述升级包进行删除。
35.本发明的实施例还提供一种固件升级失败的回滚装置,包括:
36.第一获取单元,用于控制模块获取升级包;
37.第一升级单元,用于所述控制模块基于所述升级包控制待升级固件进行升级,获取升级结果;
38.校验单元,用于所述控制模块对所述升级结果进行校验;
39.第二获取单元,用于若所述升级结果为失败,则所述控制模块获取历史升级包;
40.第二升级单元,用于所述控制模块基于所述历史升级包控制所述待升级固件进行升级;其中,所述待升级固件设有升级存储区以及功能存储区,所述升级存储区与所述功能存储区分别独立设置;所述升级存储区用于提供升级地址,所述功能存储区用于存储所述待升级固件的使用数据。
41.本发明的实施例还提供一种电子设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的方法。
42.本发明的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上所述的方法。
43.本发明的实施例,具有如下技术效果:
44.本发明的上述技术方案,1)可以根据升级需要,随时从云端服务器下载需要的升
级包,方便且快速;且使用fa模块作为控制模块可以节省现有技术中的ccu的存储空间,降低了系统对ccu的存储要求,扩大了适用范围。
45.2)fa模块在获取了升级包以后,首先对升级包与待升级固件的匹配性进行了校验,用于保证后续升级过程的可靠性。
46.3)在升级成功以后,fa模块对升级包进行保留,对历史升级包进行了删除,实现了对历史升级包的更新,同时节省了fa模块的存储空间;在升级失败以后,fa模块对升级包进行及时删除,也节省了fa模块的存储空间。
47.4)fa模块保留了待升级固件上次升级成功所使用的升级包,防止出现下次使用最新的升级包对待升级固件升级失败以后,待升级固件无法使用的问题。
48.5)可以基于历史升级包对基于最新的升级包升级失败的待升级固件进行重新升级,大大减少了固件维修的费用,节省了系统的运行成本。
49.本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
50.图1是本发明实施例提供的固件升级失败的回滚方法的流程示意图;
51.图2是本发明实施例提供的固件升级失败的回滚方法的流程的一个示例;
52.图3是本发明实施例提供的固件升级失败的回滚装置的结构示意图。
具体实施方式
53.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
54.为了便于本领域的技术人员对实施例的理解,对部分用语进解释:
55.fa:flashing adapter,微控制器。
56.目前的一些固件升级方法,存在固件升级失败以后,固件无法使用需要进行维修,且维修费用又极其昂贵的问题。
57.为了解决上述技术问题,本发明的实施例提供一种固件升级失败的回滚系统,所述回滚系统包括:控制装置、待升级固件以及云端服务器;
58.具体的,控制装置基于网络与多个待升级固件进行通信连接,例如:控制装置可以与10(15、20、30等)个待升级固件通信连接;
59.控制装置基于网络与云端服务器通信连接;
60.当系统根据实际运行情况,需要对某个或者多个待升级固件进行升级;则系统获取每个待升级固件的相关信息,并基于每个待升级固件的相关信息通过网络从云端服务器下载对应的升级包;
61.控制装置设有存储器以及通信接口;其中,存储器存储有每个待升级固件的历史升级包,其中,历史升级包一般为每个待升级固件的上次升级成功所使用的升级包。
62.控制装置基于通信接口从云端服务器获取升级包,并将升级包存至存储模块;
63.控制装置设有处理器以及校验器,其中,处理器对升级包进行解压处理,获取升级
包的内部程序以及其它校验信息;
64.校验器基于校验信息对升级包进行校验,确认升级包是否与待升级固件匹配,若匹配,则控制模块基于通信接口向待升级固件确认是否可以进行升级,若待升级固件向控制模块反馈确认可以进行升级,则控制装置基于解压后的升级包控制待升级固件进行升级,获取升级结果;
65.基于校验器再次对升级结果进行校验,若升级成功,则控制装置将存储器中的历史升级包删除,并对升级包进行保留存储;
66.若升级失败,则控制装置将升级包从存储器中删除,然后控制装置调用存储器中的历史升级包控制待升级固件重新进行升级,保证待升级固件的正常使用。
67.如图1所示,本发明的实施例提供一种固件升级失败的回滚方法,应用于上述回滚系统,包括:
68.步骤s1:控制模块获取升级包;
69.具体的,控制模块可以为fa模块,其中fa模块与多个待升级固件通信连接,基于fa模块可以对某个待升级固件或者同时对多个待升级固进行升级操作。
70.在实际应用场景中,fa模块获取待升级固件的属性信息,其中,属性信息可以包括待升级固件的类型、版本等信息,然后fa模块将待升级固件的类型以及版本等属性信息发送至云端服务器,并从云端服务器下载升级包然后对升级包进行存储,以便于对升级包进行处理或者后续的调用。
71.本发明的实施例,可以根据升级需要,随时从云端服务器下载需要的升级包,方便且快速;且使用fa模块作为控制模块可以节省现有技术中的ccu的存储空间,降低了系统对ccu的存储要求,扩大了适用范围。
72.步骤s2:所述控制模块基于所述升级包控制待升级固件进行升级,获取升级结果;
73.具体的,所述基于所述升级包对所述固件进行升级,获取升级结果,包括:
74.对所述升级包进行解析处理,获取解析结果;所述解析结果包括所述升级包的版本号以及检验参数;基于所述校验参数,对所述升级包进行校验;所述校验参数包括所述待升级固件的属性信息;若所述升级包与所述待升级固匹配,则基于所述解析结果控制所述待升级固件进行升级,获取升级结果。
75.在实际应用场景中,控制装置对获取的升级包进行解压处理,获取升级包所包含的信息;
76.其中,解压后的升级包包括多个升级程序、升级包版本以及与升级包匹配的待升级固件的校验参数;
77.控制装置调用存储的待升级固件的属性信息,并将属性信息与校验参数继进行比对,也即类型与校验类型进行比对,版本号与校验版本号进行比对,只有当类型与校验类型一致,版本号与校验版本号一致,则控制装置确认所述升级包为有效升级包,只要类型与校验类型或版本号与校验版本号任何一个出现不一致的情况,则控制装置确定该升级包为无效升级包;
78.控制装置重复上述步骤,重新从云端服务器下载升级包,直到确认下载的升级包为有效升级包为止。
79.进一步地,所述基于所述解析结果控制所述待升级固件进行升级,获取升级结果,
包括:
80.所述控制模块向所述待升级固件发送确认升级信号;
81.所述待升级固件基于所述升级信号进行反馈,并将所述反馈信号发送至所述控制模块;
82.所述控制模块基于所述反馈信号以及所述解析结果控制所述待升级固件进行升级,获取升级结果。
83.在实际应用场景中,fa模块向待升级固件发送确认升级信号,其中,根据待升级固件的实际数量,fa模块向每个待升级固件发送确认升级信号;
84.待升级固件在接收到fa模块发送的确认升级信号后,对自身状态进行确认,若当前状态允许进行升级,则待升级固件将确认升级的反馈信号发送至fa模块,反之,若自身状态不允许进行升级,则待升级固件拒绝升级的反馈信号发送至fa模块。
85.其中,根据系统的实际运行情况,可以设置每个待升级固件的升级优先级,若待升级固件的数量大于1,则可以按照每个待升级固件的优先级按照顺序控制待升级固件进行升级。
86.进一步地,所述控制模块基于所述反馈信号以及所述解析结果控制所述待升级固件进行升级,获取升级结果,包括:
87.若所述反馈信号为确认升级;
88.则所述控制模块向所述待升级固件发送获取升级地址以及升级方式的请求;
89.所述控制模块基于获取的所述升级地址以及升级方式控制所述待升级固件进行升级,获取升级结果。
90.具体的,升级方式包括自动升级或者控制升级;
91.在实际应用场景中,在fa模块确定待升级固件可以进行升级,则fa模块需要待升级固件确认升级的具体地址以及升级的方式;
92.若fa模块确定待升级固件以自动升级的形式进行升级,则fa模块将解压后的升级包包括的程序以及版本号等信息一次性全部发送至待升级固件的升级地址,待升级固件在获取升级所用的程序以及版本号等信息以后,基于程序进行自动升级,并完成升级。
93.若fa模块确定待升级固件以控制升级的形式进行升级,则fa模块将解压后的升级包包括的程序以及版本号等信息逐步发送并刷写至待升级固件的升级地址,也即fa模块边发送,边控制程序对待升级固件进行升级,待升级固件在获取所有的升级所用的程序以及版本号等信息以后,完成升级。
94.本发明的实施例,fa模块在获取了升级包以后,首先对升级包与待升级固件的匹配性进行了校验,用于保证后续升级过程的可靠性。
95.步骤s3:所述控制模块对所述升级结果进行校验;
96.具体的,所述控制模块对所述升级结果进行校验,包括:
97.所述控制模块获取完成升级固件的待校验版本号;
98.若所述待校验版本号与所述升级包的版本号一致,则升级成功;
99.若所述待校验版本号与所述升级包的版本号不一致,则升级失败。
100.在实际应用场景中,完成升级的待升级固件将完成升级的反馈信号发送至fa模块,fa模块获取完成升级的待升级固件的校验版本号。
101.fa模块将获取的校验版本号与之前存储的升级包的版本号进行比对。
102.进一步地,所述若所述待校验版本号与所述升级包的版本号一致,则升级成功后,还包括:
103.删除所述历史升级包,并对所述升级包进行存储。
104.在实际应用场景中,fa模块在确认待升级固件升级成功以后,对存储的历史升级包进行及时删除,以节省fa模块的存储空间,同时,通过最新的升级包对存储的历史升级包进行更新,满足待更新固件的适配需求。
105.进一步地,所述若所述待校验版本号与所述升级包的版本号不一致,则升级失败,还包括:
106.对所述升级包进行删除。
107.在实际应用场景中,fa模块在确认待升级固件升级失败以后,对存储的最新的升级包及时删除,节省fa模块的存储空间。
108.本发明的实施例,在升级成功以后,fa模块对升级包进行保留,对历史升级包进行了删除,实现了对历史升级包的更新,同时节省了fa模块的存储空间;在升级失败以后,fa模块对升级包进行及时删除,也节省了fa模块的存储空间。
109.步骤s4:若所述升级结果为失败,则所述控制模块获取历史升级包;
110.本发明的实施例,fa模块保留了待升级固件上次升级成功所使用的升级包,防止下次使用最新的升级包对待升级固件升级失败以后,待升级固件无法使用的问题。
111.步骤s5:所述控制模块基于所述历史升级包控制所述待升级固件进行升级;其中,所述待升级固件设有升级存储区以及功能存储区,所述升级存储区与所述功能存储区分别独立设置;所述升级存储区用于提供升级地址,所述功能存储区用于存储所述待升级固件的使用数据。
112.具体的,基于历史升级包控制待升级固件进行升级后,重新执行步骤s1-s3,若再次升级失败,则重复执行步骤s4-s5,直到使用当前最新的升级包对待升级固件升级成功。
113.进一步地,功能存储区用于存储待升级固件在使用过程中,出现的需要存储的数据;由于功能存储区与升级存储区分别独立设置,因此,在待升级固件的使用过程中,不会发生数据的交互或者数据的干扰,历史升级包与待升级固件仍是适配的,也即,基于历史升级包对待升级固件进行重新升级,是会升级成功的。
114.本发明的实施例,可以基于历史升级包对基于最新的升级包升级失败的待升级固件进行重新升级,大大减少了固件维修的费用,节省了系统的运行成本。
115.本发明的实施例,可以基于如下实现方式实现:
116.(1)云端服务器基于fa模块的请求进行升级包制作,并获取升级包;
117.(2)fa模块对升级包进行下载并存储;
118.(3)fa模块对升级包进行解压,获取升级所使用的程序;
119.(4)fa模块基于获取的程序控制待升级固件执行升级流程;
120.(5)fa模块获取待升级固件反馈的升级结果;若升级结果为升级成功,则fa模块删除历史升级包,保留最新的升级包,待升级固件可以正常使用。
121.(6)若升级结果为升级失败,则fa模块通过历史升级包再次控制待升级固件进行升级,并重复执行步骤(5)或步骤(6),直到待升级固件基于最新的升级包升级成功。
122.本发明的实施例还提供一种固件升级失败的回滚装置300,包括:
123.第一获取单元301,用于控制模块获取升级包;
124.第一升级单元302,用于所述控制模块基于所述升级包控制待升级固件进行升级,获取升级结果;
125.校验单元303,用于所述控制模块对所述升级结果进行校验;
126.第二获取单元304,用于若所述升级结果为失败,则所述控制模块获取历史升级包;
127.第二升级单元305,用于所述控制模块基于所述历史升级包控制所述待升级固件进行升级;其中,所述待升级固件设有升级存储区以及功能存储区,所述升级存储区与所述功能存储区分别独立设置;所述升级存储区用于提供升级地址,所述功能存储区用于存储所述待升级固件的使用数据。
128.可选的,所述基于所述升级包对所述待升级固件进行升级,获取升级结果,包括:
129.对所述升级包进行解析处理,获取解析结果;所述解析结果包括所述升级包的版本号以及检验参数;
130.基于所述校验参数,对所述升级包进行校验;所述校验参数包括所述待升级固件的属性信息;
131.若所述升级包与所述待升级固匹配,则基于所述解析结果控制所述待升级固件进行升级,获取升级结果。
132.可选的,所述基于所述解析结果控制所述待升级固件进行升级,获取升级结果,包括:
133.所述控制模块向所述待升级固件发送确认升级信号;
134.所述待升级固件基于所述升级信号进行反馈,并将所述反馈信号发送至所述控制模块;
135.所述控制模块基于所述反馈信号以及所述解析结果控制所述待升级固件进行升级,获取升级结果。
136.可选的,所述控制模块基于所述反馈信号以及所述解析结果控制所述待升级固件进行升级,获取升级结果,包括:
137.若所述反馈信号为确认升级;
138.则所述控制模块向所述待升级固件发送获取升级地址以及升级方式的请求;
139.所述控制模块基于获取的所述升级地址以及升级方式控制所述待升级固件进行升级,获取升级结果。
140.可选的,所述控制模块对所述升级结果进行校验,包括:
141.所述控制模块获取完成升级固件的待校验版本号;
142.若所述待校验版本号与所述升级包的版本号一致,则升级成功;
143.若所述待校验版本号与所述升级包的版本号不一致,则升级失败。
144.可选的,所述若所述待校验版本号与所述升级包的版本号一致,则升级成功后,还包括:
145.删除所述历史升级包,并对所述升级包进行存储。
146.可选的,所述若所述待校验版本号与所述升级包的版本号不一致,则升级失败,还
包括:
147.对所述升级包进行删除。
148.本发明的实施例还提供一种电子设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的方法。
149.本发明的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上所述的方法。
150.另外,本发明实施例的装置的其他构成及作用对本领域的技术人员来说是已知的,为减少冗余,此处不做赘述。
151.需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
152.应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
153.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
154.在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
155.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
156.在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
157.在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
158.尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献