固件升级回滚方法、系统、电子设备及可读存储介质与流程
未命名
08-18
阅读:144
评论:0
1.本发明涉及固件升级技术领域,尤其涉及一种固件升级回滚方法、系统、电子设备及可读存储介质。
背景技术:
2.当前随着4g、5g移动网络在汽车领域的普及,车辆的t-box(telematics box,车联网系统)能够通过sim(subscriber identity module,用户身份识别模块)卡将整车链接到外部网络,实现对优化后系统或固件进行fota(firmware over-the-air,移动终端的空中下载软件升级)远程升级,其中,车辆中的vcp(vehicle computing platform,跨域控制器)作为整车的fota客户端,是一种集成了网关功能域、车身功能域、adas(advanced driving assistance system,高级驾驶辅助系统)功能域以及动力底盘功能域等的中央跨域控制器产品,其软件由a核软件基础包,a核软件变量包,r核软件包以及switch软件包总共4个固件组成,不仅固件之间相互依赖关联,甚至与部分子控制器can(fd)(controller area network with flexible data rate)ecu(electronic control unit,电子控制单元)的固件包之间也存在依赖关系,因此,vcp不仅负责自身的固件升级,还需要负责子控制器can(fd)ecu的固件升级。
3.目前,由于vcp基于客户平台化开发适配同平台燃油,混动以及纯电动等不同车型,且vcp a核固件包较大升级时间较长,如果在升级前,车辆蓄电池的soc(state of charge,电池剩余电量)过低,则在vcp进行固件升级或回滚后进一步拉低车辆蓄电池的soc,从而导致车辆无法启动。
技术实现要素:
4.为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
5.鉴于以上所述现有技术的缺点,本发明公开了一种固件升级回滚方法、系统、电子设备及可读存储介质,以防止vcp在进行固件回滚后无法启动车辆。
6.本发明提供了一种固件升级回滚方法,应用于车辆终端,所述车辆终端包括跨域控制器、所述跨域控制器的第一固件分区、所述跨域控制器的第二固件分区,所述第一固件分区和所述第二固件分区均存储有用于运行所述跨域控制器的当前版本固件,所述方法包括:若所述第一固件分区完成固件版本升级,则将所述跨域控制器的运行分区切换至所述第一固件分区,并生成第一切换结果,其中,所述运行分区用于运行所述跨域控制器;若所述第一切换结果包括所述跨域控制器无法通过所述第一固件分区运行,则将所述跨域控制器的运行分区切换至所述第二固件分区,并生成第二切换结果;若所述第二切换结果包括所述跨域控制器无法通过所述第二固件分区运行,则通过预设的回滚包策略对所述第一固件分区进行固件版本回滚,并在固件版本回滚完成后,将所述跨域控制器的运行分区切换
至所述第一固件分区,其中,所述回滚包策略包括获取固件回滚包、所述车辆终端的当前电池电量,若所述当前电池电量大于或等于预设的最低电量阈值,则通过安装所述固件回滚包进行固件版本回滚。
7.可选地,将所述跨域控制器的运行分区切换至所述第二固件分区,并生成第二切换结果,包括:若将所述跨域控制器的运行分区切换至所述第二固件分区,则通过所述第二固件分区启动所述跨域控制器,并生成当次启动结果;若所述当次启动结果包括当次启动成功,则将第二切换结果确定为所述跨域控制器的固件版本回滚完成;若所述当次启动结果包括当次启动失败,则统计所述当次启动结果包括当次启动失败的出现次数,得到第一统计次数;若所述第一统计次数小于预设的第一次数阈值,则再次将所述跨域控制器的运行分区切换至所述第二固件分区;若所述第一统计次数等于所述第一次数阈值,则将第二切换结果确定为所述跨域控制器无法通过所述第二固件分区运行。
8.可选地,通过预设的回滚包策略对所述第一固件分区进行固件版本回滚,包括:若通过预设的回滚包策略对所述第一固件分区进行固件版本回滚,则生成所述固件回滚包对应的第一安装结果;若所述第一安装结果包括回滚包安装成功,则确定所述跨域控制器的固件版本回滚完成;若所述第一安装结果包括回滚包安装失败,则统计所述第一安装结果包括回滚包安装失败的出现次数,得到第二统计次数;若所述第二统计次数小于预设的第二次数阈值,则再次通过所述回滚包策略对所述第一固件分区进行固件版本回滚;若所述第二统计次数等于所述第二次数阈值,则生成回滚失败信息。
9.可选地,通过以下方式确定所述第二次数阈值:获取所述回滚包策略对应的历史回滚数据,其中,所述历史回滚数据包括历史失败率、历史回滚时长、历史电量消耗量中的一种或多种;将所述历史回滚数据进行归一化,并根据归一化之后的历史回滚数据进行计算,得到第二次数阈值。
10.可选地,通过以下方式确定所述最低电量阈值:获取所述车辆终端的启动电量阈值、数据读写速率和回滚消耗功率,并获取所述固件回滚包的回滚包数据量;根据所述回滚包数据量和所述数据读写速率进行计算,得到回滚预测时间,并根据所述回滚预测时间和回滚消耗功率确定回滚所需电量;根据所述启动电量阈值和所述回滚所需电量确定最低电量阈值。
11.可选地,所述方法还包括以下至少一种:若所述第一固件分区的固件版本升级失败,则通过所述回滚包策略对所述第一固件分区进行固件版本回滚。
12.可选地,所述方法还包括:所述车辆终端还包括子控制器,所述子控制器与所述跨域控制器连接,并且,所述跨域控制器与服务器端连接;将所述第二固件分区确定为所述跨域控制器的运行分区;将所述跨域控制器和/或所述子控制器作为升级目标,通过所述跨域控制器从所述服务器端获取升级目标对应的固件升级包;若所述升级目标包括所述跨域控制器,则通过所述跨域控制器对应的固件升级包对所述第一固件分区进行固件版本升级;若所述升级目标包括所述子控制器,则通过所述子控制器对应的固件升级包对所述子控制器进行固件版本升级。
13.可选地,通过所述子控制器对应的固件升级包对所述子控制器进行固件版本升级之后,所述方法还包括:若接收到所述子控制器对应的固件回滚指令,则通过所述回滚包策略对所述子控制器进行固件版本回滚,并生成所述子控制器对应的第二安装结果;若所述
第二安装结果包括回滚包安装成功,则确定所述子控制器的固件版本回滚完成;若所述第二安装结果包括回滚包安装失败,则统计所述第二安装结果包括回滚包安装失败的出现次数,得到第三统计次数;若所述第三统计次数小于预设的第三次数阈值,则再次通过所述回滚包策略对所述子控制器进行固件版本回滚;若所述第三统计次数等于所述第三次数阈值,则生成回滚失败信息。
14.可选地,通过以下任一方法获取固件回滚包:通过所述跨域控制器从所述服务器端获取升级目标对应的固件升级包时,通过所述跨域控制器从所述服务器端获取固件回滚包;若所述第二切换结果包括所述跨域控制器无法通过所述第二固件分区运行,则获取所述车辆终端与所述服务器端之间的网络强度参数,并在网络强度参数大于预设的网络参数阈值时,通过所述跨域控制器从所述服务器端获取固件回滚包。
15.本发明提供了一种固件升级回滚系统,应用于车辆终端,所述车辆终端包括跨域控制器、所述跨域控制器的第一固件分区、所述跨域控制器的第二固件分区,所述第一固件分区和所述第二固件分区均存储有用于运行所述跨域控制器的当前版本固件,所述系统包括:第一切换模块,用于若所述第一固件分区完成固件版本升级,则将所述跨域控制器的运行分区切换至所述第一固件分区,并生成第一切换结果,其中,所述运行分区用于运行所述跨域控制器;第二切换模块,用于若所述第一切换结果包括所述跨域控制器无法通过所述第一固件分区运行,则将所述跨域控制器的运行分区切换至所述第二固件分区,并生成第二切换结果;回滚包执行模块,用于若所述第二切换结果包括所述跨域控制器无法通过所述第二固件分区运行,则通过预设的回滚包策略对所述第一固件分区进行固件版本回滚,并在固件版本回滚完成后,将所述跨域控制器的运行分区切换至所述第一固件分区,其中,所述回滚包策略包括获取固件回滚包、所述车辆终端的当前电池电量,若所述当前电池电量大于或等于预设的最低电量阈值,则通过安装所述固件回滚包进行固件版本回滚。
16.本发明提供了一种电子设备,包括:处理器及存储器;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行上述的方法。
17.本发明提供了一种计算机可读存储介质,其上存储有计算机程序:所述计算机程序被处理器执行时实现上述的方法。
18.本发明的有益效果:
19.通过在第一固件分区完成固件版本升级时,将跨域控制器的运行分区切换至第一固件分区,在跨域控制器无法通过第一固件分区运行时,将跨域控制器的运行分区切换至第二固件分区,在跨域控制器无法通过第二固件分区运行时,若当前电池电量大于或等于预设的最低电量阈值,则根据固件回滚包对第一固件分区进行固件版本回滚。这样,一方面,通过切换分区对固件版本进行回滚,相较于通过安装回滚包对固件版本进行回滚,减少了回滚时间,从而降低电量消耗,另一方面,在切换分区无法运行跨域控制器时,在车辆终端的当前电池电量满足最低电量阈值的情况下,再通过安装回滚包对固件版本进行回滚,从而避免因固件版本回滚导致车辆蓄电池的电量消耗过度,进而引发车辆无法启动的情况。
附图说明
20.图1是本发明实施例中一个用于实施固件升级回滚方法的车辆终端的结构示意图;
21.图2是本发明实施例中一个固件升级回滚方法的流程示意图;
22.图3是本发明实施例中另一个固件升级回滚方法的流程示意图;
23.图4是本发明实施例中一个固件升级回滚系统的结构示意图;
24.图5是本发明实施例中一个电子设备的示意图。
具体实施方式
25.以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的子样本可以相互组合。
26.需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
27.在下文描述中,探讨了大量细节,以提供对本发明实施例的更透彻的解释,然而,对本领域技术人员来说,可以在没有这些具体细节的情况下实施本发明的实施例是显而易见的,在其他实施例中,以方框图的形式而不是以细节的形式来示出公知的结构和设备,以避免使本发明的实施例难以理解。
28.本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
29.除非另有说明,术语“多个”表示两个或两个以上。
30.本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,a/b表示:a或b。
31.术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,a和/或b,表示:a或b,或,a和b这三种关系。
32.结合图1所示,本公开实施例提供了一种用于实施固件升级回滚方法的车辆终端,包括跨域控制器vcp 101、子控制器can(fd)ecu 102、跨域控制器的第一固件分区103、跨域控制器的第二固件分区104、t-box模块105;
33.跨域控制器101分别与子控制器102、第一固件分区103、第二固件分区104、t-box模块105连接,跨域控制器用于通过获取到的固件升级包对跨域控制器的第一固件分区、子控制器进行固件版本升级和固件版本回滚,并在第一固件分区完成固件版本升级之后,将跨域控制器的运行分区切换至第一固件分区;
34.第一固件分区103和第二固件分区104均存储有用于运行跨域控制器的当前版本固件,第二固件分区为跨域控制器的运行分区,其中,运行分区用于运行跨域控制器;
35.其中,第一固件分区103和第二固件分区104设置在跨域控制器101中;
36.t-box模块105连接有服务器端,t-box模块用于从服务器端获取固件升级包。
37.结合图2所示,本公开实施例提供了一种固件升级回滚方法,包括:
38.步骤s201,若第一固件分区完成固件版本升级,则将跨域控制器的运行分区切换至第一固件分区,并生成第一切换结果;
39.其中,运行分区用于运行跨域控制器;
40.其中,跨域控制器具有多个控制器固件,每个控制器固件均有两个固件分区;将各控制器固件对应的备份分区统一确定为第一固件分区,并将各控制器固件对应的运行分区统一确定为第二固件分区;
41.其中,对跨域控制器进行固件版本升级,包括,依次对各控制器固件的备份分区进行固件版本升级,并响应于任一控制器固件的固件版本升级完成,将该控制器固件的备份分区切换为运行分区;若任一控制器固件未能在固件版本升级后的分区成功运行,则停止对未进行固件版本升级的控制器固件进行继续升级,同时,将第一切换结果确定为跨域控制器无法通过第一固件分区运行,并跳转步骤s202;
42.步骤s202,若第一切换结果包括跨域控制器无法通过第一固件分区运行,则将跨域控制器的运行分区切换至第二固件分区,并生成第二切换结果;
43.步骤s203,若第二切换结果包括跨域控制器无法通过第二固件分区运行,则通过预设的回滚包策略对第一固件分区进行固件版本回滚,并在固件版本回滚完成后,将跨域控制器的运行分区切换至第一固件分区;
44.其中,回滚包策略包括获取固件回滚包、车辆终端的当前电池电量,若当前电池电量大于或等于预设的最低电量阈值,则通过安装固件回滚包进行固件版本回滚。
45.采用本公开实施例提供的固件升级回滚方法,通过在第一固件分区完成固件版本升级时,将跨域控制器的运行分区切换至第一固件分区,在跨域控制器无法通过第一固件分区运行时,将跨域控制器的运行分区切换至第二固件分区,在跨域控制器无法通过第二固件分区运行时,若当前电池电量大于或等于预设的最低电量阈值,则根据固件回滚包对第一固件分区进行固件版本回滚。这样,一方面,通过切换分区对固件版本进行回滚,相较于通过安装回滚包对固件版本进行回滚,减少了回滚时间,从而降低电量消耗,另一方面,在切换分区无法运行跨域控制器时,在车辆终端的当前电池电量满足最低电量阈值的情况下,再通过安装回滚包对固件版本进行回滚,从而避免因固件版本回滚导致车辆蓄电池的电量消耗过度,进而引发车辆无法启动的情况。
46.可选地,将跨域控制器的运行分区切换至第二固件分区,并生成第二切换结果,包括:若将跨域控制器的运行分区切换至第二固件分区,则通过第二固件分区启动跨域控制器,并生成当次启动结果;若当次启动结果包括当次启动成功,则将第二切换结果确定为跨域控制器的固件版本回滚完成;若当次启动结果包括当次启动失败,则统计当次启动结果包括当次启动失败的出现次数,得到第一统计次数;若第一统计次数小于预设的第一次数阈值,则再次将跨域控制器的运行分区切换至第二固件分区;若第一统计次数等于第一次数阈值,则将第二切换结果确定为跨域控制器无法通过第二固件分区运行。
47.在一些实施例中,若第一统计次数大于第一次数阈值,则将第二切换结果确定为跨域控制器无法通过第二固件分区运行。
48.在一些实施例中,第一次数阈值由用户设置,例如,第一次数阈值为2-10次中的任意次数。
49.在一些实施例中,将已完成固件版本升级的跨域控制器的运行分区切换至未升级的第二固件分区,并设置第一次数阈值为3次;如果在3次最大尝试次数内,跨域控制器能够通过第二固件分区运行,vcp回滚升级结束;若在3次最大尝试次数之后,跨域控制器无法通过第二固件分区运行,则通过安装回滚包的方式进行固件版本回滚。
50.可选地,通过预设的回滚包策略对第一固件分区进行固件版本回滚,包括:若通过预设的回滚包策略对第一固件分区进行固件版本回滚,则生成固件回滚包对应的第一安装结果;若第一安装结果包括回滚包安装成功,则确定跨域控制器的固件版本回滚完成;若第一安装结果包括回滚包安装失败,则统计第一安装结果包括回滚包安装失败的出现次数,得到第二统计次数;若第二统计次数小于预设的第二次数阈值,则再次通过回滚包策略对第一固件分区进行固件版本回滚;若第二统计次数等于第二次数阈值,则生成回滚失败信息。
51.在一些实施例中,若第二统计次数大于第二次数阈值,则生成回滚失败信息。
52.在一些实施例中,第二次数阈值可以由用户设置,例如,将第二次数阈值设置为3次;如果在3次最大尝试次数内,第一固件分区通过安装固件回滚包完成了固件版本回滚,则vcp回滚升级结束,若在3次最大尝试次数之外,第一固件分区无法通过安装固件回滚包进行固件版本回滚,则生成回滚失败信息,并向服务器端反馈回滚失败信息。
53.可选地,通过以下方式确定第二次数阈值:获取回滚包策略对应的历史回滚数据,其中,历史回滚数据包括历史失败率、历史回滚时长、历史电量消耗量中的一种或多种;将历史回滚数据进行归一化,并根据归一化之后的历史回滚数据进行计算,得到第二次数阈值。
54.在一些实施例中,将历史回滚数据进行归一化,使得归一化之后的历史回滚数据处于(0,1)区间,从而计算得到第二次数阈值。
55.可选地,通过以下公式计算第二次数阈值:
[0056][0057]
式中,n为第二次数阈值,mi为第i个历史回滚数据对应的归一化数据,m
imax
为第i个历史回滚数据对应的预设比较值,n为历史回滚数据的数量,为向下取整符号。
[0058]
可选地,通过以下方式确定最低电量阈值:获取车辆终端的启动电量阈值、数据读写速率和回滚消耗功率,并获取固件回滚包的回滚包数据量;根据回滚包数据量和数据读写速率进行计算,得到回滚预测时间,并根据回滚预测时间和回滚消耗功率确定回滚所需电量;根据启动电量阈值和回滚所需电量确定最低电量阈值。
[0059]
在一些实施例中,分别设置每个跨域控制器、子控制器对应的数据读写速率和回滚消耗功率,从而根据升级目标的不同,选择对应的数据读写速率和回滚消耗功率进行计算,得到升级目标对应的最低电量阈值。
[0060]
在一些实施例中,在每次安装回滚包之前,计算本次回滚安装所需的能耗,如果估算能耗加上系统重启一次的能耗之和大于当前蓄电池soc,则允许vcp对fota云端下载的回
滚包进行回滚安装,否则不允许进行回滚包安装并反馈蓄电池电量不足,回滚失败。
[0061]
在一些实施例中,通过以下公式确定最低电量阈值:
[0062][0063]
式中,q
min
为最低电量阈值,q
launch
为启动电量阈值,p为回滚消耗功率,b
pack
为回滚包数据量,v为数据读写速率。
[0064]
可选地,方法还包括以下至少一种:若第一固件分区的固件版本升级失败,则通过回滚包策略对第一固件分区进行固件版本回滚。
[0065]
可选地,方法还包括:车辆终端还包括子控制器,子控制器与跨域控制器连接,并且,跨域控制器与服务器端连接;将第二固件分区确定为跨域控制器的运行分区;将跨域控制器和/或子控制器作为升级目标,通过跨域控制器从服务器端获取升级目标对应的固件升级包;若升级目标包括跨域控制器,则通过跨域控制器对应的固件升级包对第一固件分区进行固件版本升级;若升级目标包括子控制器,则通过子控制器对应的固件升级包对子控制器进行固件版本升级。
[0066]
在一些实施例中,跨域控制器vcp与子控制器can(fd)ecu之间通过can总线连接。
[0067]
在一些实施例中,固件版本回滚有跨域控制器vcp回滚、子控制器can(fd)ecu回滚、跨域控制器vcp和子控制器can(fd)ecu共同回滚等三种回滚场景。
[0068]
可选地,通过子控制器对应的固件升级包对子控制器进行固件版本升级之后,方法还包括:若接收到子控制器对应的固件回滚指令,则通过回滚包策略对子控制器进行固件版本回滚,并生成子控制器对应的第二安装结果;若第二安装结果包括回滚包安装成功,则确定子控制器的固件版本回滚完成;若第二安装结果包括回滚包安装失败,则统计第二安装结果包括回滚包安装失败的出现次数,得到第三统计次数;若第三统计次数小于预设的第三次数阈值,则再次通过回滚包策略对子控制器进行固件版本回滚;若第三统计次数等于第三次数阈值,则生成回滚失败信息。
[0069]
在一些实施例中,第三次数阈值包括2-10次,例如,设置第三次数阈值为3次。
[0070]
在一些实施例中,若第三统计次数大于第三次数阈值,则生成回滚失败信息。
[0071]
可选地,通过以下任一方法获取固件回滚包:通过跨域控制器从服务器端获取升级目标对应的固件升级包时,通过跨域控制器从服务器端获取固件回滚包;若第二切换结果包括跨域控制器无法通过第二固件分区运行,则获取车辆终端与服务器端之间的网络强度参数,并在网络强度参数大于预设的网络参数阈值时,通过跨域控制器从服务器端获取固件回滚包。
[0072]
结合图3所示,本公开实施例提供了一种固件升级回滚方法,包括:
[0073]
步骤s301,接收升级目标的固件版本升级失败信息;
[0074]
其中,升级目标包括跨域控制器和/或子控制器;
[0075]
步骤s302,判断升级目标是否包括跨域控制器和/或子控制器,若升级目标包括跨域控制器,跳转步骤s303,若升级目标包括子控制器,跳转步骤s311;
[0076]
步骤s303,将跨域控制器的运行分区切换至第二固件分区;
[0077]
步骤s304,判断跨域控制器能否通过第二固件分区运行,若是,跳转步骤s314,若否,跳转步骤s305;
[0078]
步骤s305,判断跨域控制器无法通过第二固件分区运行的出现次数是否大于或等于第一次数阈值,若是,跳转步骤s306,若否,跳转步骤s303;
[0079]
步骤s306,获取固件回滚包、车辆终端的当前电池电量;
[0080]
步骤s307,判断当前电池电量是否大于或等于预设的最低电量阈值,若是,则跳转步骤s308,若否,跳转步骤s315;
[0081]
步骤s308,通过安装固件回滚包对第一固件分区进行固件版本回滚;
[0082]
步骤s309,判断固件回滚包是否安装成功,若是,跳转步骤s314,若否,跳转步骤s310;
[0083]
步骤s310,判断固件回滚包未安装成功的出现次数是否大于或等于第二次数阈值,若是,跳转步骤s315,若否,跳转步骤s308。
[0084]
步骤s311,通过安装固件回滚包对子控制器进行固件版本回滚;
[0085]
步骤s312,判断是否接收到子控制器对应的固件回滚指令,若是,跳转步骤s314,若否,跳转步骤s313;
[0086]
步骤s313,判断固件回滚包未安装成功的出现次数是否大于或等于第三次数阈值,若是,跳转步骤s315,若否,跳转步骤s311。
[0087]
步骤s314,若全部升级目标完成固件版本回滚,确定固件版本回滚成功。
[0088]
步骤s315,确定固件版本回滚失败。
[0089]
采用本公开实施例提供的固件升级回滚方法,通过在第一固件分区完成固件版本升级时,将跨域控制器的运行分区切换至第一固件分区,在跨域控制器无法通过第一固件分区运行时,将跨域控制器的运行分区切换至第二固件分区,在跨域控制器无法通过第二固件分区运行时,若当前电池电量大于或等于预设的最低电量阈值,则根据固件回滚包对第一固件分区进行固件版本回滚。这样,一方面,通过切换分区对固件版本进行回滚,相较于通过安装回滚包对固件版本进行回滚,减少了回滚时间,从而降低电量消耗,另一方面,在切换分区无法运行跨域控制器时,在车辆终端的当前电池电量满足最低电量阈值的情况下,再通过安装回滚包对固件版本进行回滚,从而避免因固件版本回滚导致车辆蓄电池的电量消耗过度,进而引发车辆无法启动的情况。
[0090]
结合图4所示,本公开实施例提供了一种固件升级回滚系统,应用于车辆终端,车辆终端包括跨域控制器、跨域控制器的第一固件分区、跨域控制器的第二固件分区,第一固件分区和第二固件分区均存储有用于运行跨域控制器的当前版本固件,系统包括第一切换模块401、第二切换模块402和回滚包执行模块403。第一切换模块401用于若第一固件分区完成固件版本升级,则将跨域控制器的运行分区切换至第一固件分区,并生成第一切换结果,其中,运行分区用于运行跨域控制器;第二切换模块402用于若第一切换结果包括跨域控制器无法通过第一固件分区运行,则将跨域控制器的运行分区切换至第二固件分区,并生成第二切换结果;回滚包执行模块403用于若第二切换结果包括跨域控制器无法通过第二固件分区运行,则通过预设的回滚包策略对第一固件分区进行固件版本回滚,并在固件版本回滚完成后,将跨域控制器的运行分区切换至第一固件分区,其中,回滚包策略包括获取固件回滚包、车辆终端的当前电池电量,若当前电池电量大于或等于预设的最低电量阈值,则通过安装固件回滚包进行固件版本回滚。
[0091]
采用本公开实施例提供的固件升级回滚系统,通过在第一固件分区完成固件版本
升级时,将跨域控制器的运行分区切换至第一固件分区,在跨域控制器无法通过第一固件分区运行时,将跨域控制器的运行分区切换至第二固件分区,在跨域控制器无法通过第二固件分区运行时,若当前电池电量大于或等于预设的最低电量阈值,则根据固件回滚包对第一固件分区进行固件版本回滚。这样,一方面,通过切换分区对固件版本进行回滚,相较于通过安装回滚包对固件版本进行回滚,减少了回滚时间,从而降低电量消耗,另一方面,在切换分区无法运行跨域控制器时,在车辆终端的当前电池电量满足最低电量阈值的情况下,再通过安装回滚包对固件版本进行回滚,从而避免因固件版本回滚导致车辆蓄电池的电量消耗过度,进而引发车辆无法启动的情况。
[0092]
图5示出了适于用来实现本技术实施例的电子设备的计算机系统的结构示意图。需要说明的是,图5示出的电子设备的计算机系统500仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
[0093]
如图5所示,计算机系统500包括中央处理单元(central processing unit,cpu)501,其可以根据存储在只读存储器(read-only memory,rom)502中的程序或者从储存部分508加载到随机访问存储器(random access memory,ram)503中的程序而执行各种适当的动作和处理,例如执行上述实施例中的方法。在ram 503中,还存储有系统操作所需的各种程序和数据。cpu 501、rom 502以及ram 503通过总线504彼此相连。输入/输出(input/output,i/o)接口505也连接至总线504。
[0094]
以下部件连接至i/o接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(cathode ray tube,crt)、液晶显示器(liquid crystal display,lcd)等以及扬声器等的输出部分507;包括硬盘等的储存部分508;以及包括诸如lan(local area network,局域网)卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至i/o接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入储存部分508。
[0095]
特别地,根据本技术的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本技术的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(cpu)501执行时,执行本技术的系统中限定的各种功能。
[0096]
需要说明的是,本技术实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(erasable programmable read only memory,eprom)、闪存、光纤、便携式紧凑磁盘只读存储器(compact disc read-only memory,cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用
多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
[0097]
本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本实施例中的任一项方法。
[0098]
本公开实施例中的计算机可读存储介质,本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0099]
本实施例公开的电子设备,包括处理器、存储器、收发器和通信接口,存储器和通信接口与处理器和收发器连接并完成相互间的通信,存储器用于存储计算机程序,通信接口用于进行通信,处理器和收发器用于运行计算机程序,使电子设备执行如上方法的各个步骤。
[0100]
在本实施例中,存储器可能包含随机存取存储器(random access memory,简称ram),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0101]
上述的处理器可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、图形处理器(graphics processing unit,简称gpu),网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0102]
以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选地,并且操作的顺序可以变化。一些实施例的部分和子样本可以被包括在或替换其他实施例的部分和子样本。而且,本技术中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和
“”
(the)旨在同样包括复数形式。类似地,如在本技术中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本技术中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的子样本、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它子样本、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个
…”
限定的要素,并不排除在包括要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。
[0103]
本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及
算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0104]
本文所披露的实施例中,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些子样本可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例。另外,在本公开实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0105]
附图中的流程图和框图显示了根据本公开实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。在附图中的流程图和框图所对应的描述中,不同的方框所对应的操作或步骤也可以以不同于描述中所披露的顺序发生,有时不同的操作或步骤之间不存在特定的顺序。例如,两个连续的操作或步骤实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
技术特征:
1.一种固件升级回滚方法,其特征在于,应用于车辆终端,所述车辆终端包括跨域控制器、所述跨域控制器的第一固件分区、所述跨域控制器的第二固件分区,所述第一固件分区和所述第二固件分区均存储有用于运行所述跨域控制器的当前版本固件,所述方法包括:若所述第一固件分区完成固件版本升级,则将所述跨域控制器的运行分区切换至所述第一固件分区,并生成第一切换结果,其中,所述运行分区用于运行所述跨域控制器;若所述第一切换结果包括所述跨域控制器无法通过所述第一固件分区运行,则将所述跨域控制器的运行分区切换至所述第二固件分区,并生成第二切换结果;若所述第二切换结果包括所述跨域控制器无法通过所述第二固件分区运行,则通过预设的回滚包策略对所述第一固件分区进行固件版本回滚,并在固件版本回滚完成后,将所述跨域控制器的运行分区切换至所述第一固件分区,其中,所述回滚包策略包括获取固件回滚包、所述车辆终端的当前电池电量,若所述当前电池电量大于或等于预设的最低电量阈值,则通过安装所述固件回滚包进行固件版本回滚。2.根据权利要求1所述的方法,其特征在于,将所述跨域控制器的运行分区切换至所述第二固件分区,并生成第二切换结果,包括:若将所述跨域控制器的运行分区切换至所述第二固件分区,则通过所述第二固件分区启动所述跨域控制器,并生成当次启动结果;若所述当次启动结果包括当次启动成功,则将第二切换结果确定为所述跨域控制器的固件版本回滚完成;若所述当次启动结果包括当次启动失败,则统计所述当次启动结果包括当次启动失败的出现次数,得到第一统计次数;若所述第一统计次数小于预设的第一次数阈值,则再次将所述跨域控制器的运行分区切换至所述第二固件分区;若所述第一统计次数等于所述第一次数阈值,则将第二切换结果确定为所述跨域控制器无法通过所述第二固件分区运行。3.根据权利要求1所述的方法,其特征在于,通过预设的回滚包策略对所述第一固件分区进行固件版本回滚,包括:若通过预设的回滚包策略对所述第一固件分区进行固件版本回滚,则生成所述固件回滚包对应的第一安装结果;若所述第一安装结果包括回滚包安装成功,则确定所述跨域控制器的固件版本回滚完成;若所述第一安装结果包括回滚包安装失败,则统计所述第一安装结果包括回滚包安装失败的出现次数,得到第二统计次数;若所述第二统计次数小于预设的第二次数阈值,则再次通过所述回滚包策略对所述第一固件分区进行固件版本回滚;若所述第二统计次数等于所述第二次数阈值,则生成回滚失败信息。4.根据权利要求3所述的方法,其特征在于,通过以下方式确定所述第二次数阈值:获取所述回滚包策略对应的历史回滚数据,其中,所述历史回滚数据包括历史失败率、历史回滚时长、历史电量消耗量中的一种或多种;将所述历史回滚数据进行归一化,并根据归一化之后的历史回滚数据进行计算,得到
第二次数阈值。5.根据权利要求4所述的方法,其特征在于,通过以下公式计算第二次数阈值:式中,n为第二次数阈值,m
i
为第i个历史回滚数据对应的归一化数据,为第i个历史回滚数据对应的预设比较值,n为历史回滚数据的数量,为向下取整符号。6.根据权利要求1所述的方法,其特征在于,通过以下方式确定所述最低电量阈值:获取所述车辆终端的启动电量阈值、数据读写速率和回滚消耗功率,并获取所述固件回滚包的回滚包数据量;根据所述回滚包数据量和所述数据读写速率进行计算,得到回滚预测时间,并根据所述回滚预测时间和回滚消耗功率确定回滚所需电量;根据所述启动电量阈值和所述回滚所需电量确定最低电量阈值。7.根据权利要求6所述的方法,其特征在于,通过以下公式确定最低电量阈值:式中,q
min
为最低电量阈值,q
launch
为启动电量阈值,p为回滚消耗功率,b
pack
为回滚包数据量,v为数据读写速率。8.根据权利要求1所述的方法,其特征在于,所述方法还包括以下至少一种:若所述第一固件分区的固件版本升级失败,则通过所述回滚包策略对所述第一固件分区进行固件版本回滚。9.根据权利要求1至8任一项所述的方法,其特征在于,所述方法还包括:所述车辆终端还包括子控制器,所述子控制器与所述跨域控制器连接,并且,所述跨域控制器与服务器端连接;将所述第二固件分区确定为所述跨域控制器的运行分区;将所述跨域控制器和/或所述子控制器作为升级目标,通过所述跨域控制器从所述服务器端获取升级目标对应的固件升级包;若所述升级目标包括所述跨域控制器,则通过所述跨域控制器对应的固件升级包对所述第一固件分区进行固件版本升级;若所述升级目标包括所述子控制器,则通过所述子控制器对应的固件升级包对所述子控制器进行固件版本升级。10.根据权利要求9所述的方法,其特征在于,通过所述子控制器对应的固件升级包对所述子控制器进行固件版本升级之后,所述方法还包括:若接收到所述子控制器对应的固件回滚指令,则通过所述回滚包策略对所述子控制器进行固件版本回滚,并生成所述子控制器对应的第二安装结果;若所述第二安装结果包括回滚包安装成功,则确定所述子控制器的固件版本回滚完成;若所述第二安装结果包括回滚包安装失败,则统计所述第二安装结果包括回滚包安装失败的出现次数,得到第三统计次数;
若所述第三统计次数小于预设的第三次数阈值,则再次通过所述回滚包策略对所述子控制器进行固件版本回滚;若所述第三统计次数等于所述第三次数阈值,则生成回滚失败信息。11.根据权利要求1至8任一项所述的方法,其特征在于,通过以下任一方法获取固件回滚包:通过所述跨域控制器从所述服务器端获取升级目标对应的固件升级包时,通过所述跨域控制器从所述服务器端获取固件回滚包;若所述第二切换结果包括所述跨域控制器无法通过所述第二固件分区运行,则获取所述车辆终端与所述服务器端之间的网络强度参数,并在网络强度参数大于预设的网络参数阈值时,通过所述跨域控制器从所述服务器端获取固件回滚包。12.一种固件升级回滚系统,其特征在于,应用于车辆终端,所述车辆终端包括跨域控制器、所述跨域控制器的第一固件分区、所述跨域控制器的第二固件分区,所述第一固件分区和所述第二固件分区均存储有用于运行所述跨域控制器的当前版本固件,所述系统包括:第一切换模块,用于若所述第一固件分区完成固件版本升级,则将所述跨域控制器的运行分区切换至所述第一固件分区,并生成第一切换结果,其中,所述运行分区用于运行所述跨域控制器;第二切换模块,用于若所述第一切换结果包括所述跨域控制器无法通过所述第一固件分区运行,则将所述跨域控制器的运行分区切换至所述第二固件分区,并生成第二切换结果;回滚包执行模块,用于若所述第二切换结果包括所述跨域控制器无法通过所述第二固件分区运行,则通过预设的回滚包策略对所述第一固件分区进行固件版本回滚,并在固件版本回滚完成后,将所述跨域控制器的运行分区切换至所述第一固件分区,其中,所述回滚包策略包括获取固件回滚包、所述车辆终端的当前电池电量,若所述当前电池电量大于或等于预设的最低电量阈值,则通过安装所述固件回滚包进行固件版本回滚。13.一种电子设备,其特征在于,包括:处理器及存储器;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行如权利要求1至10中任一项所述的方法。14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1至10中任一项所述的方法。
技术总结
本发明涉及固件升级技术领域,公开了一种固件升级回滚方法、系统、电子设备及可读存储介质,该方法通过在第一固件分区完成固件版本升级时,将跨域控制器的运行分区切换至第一固件分区,在跨域控制器无法通过第一固件分区运行时,将跨域控制器的运行分区切换至第二固件分区,在跨域控制器无法通过第二固件分区运行时,若当前电池电量大于或等于预设的最低电量阈值,则根据固件回滚包对第一固件分区进行固件版本回滚,通过切换分区对固件版本进行回滚,降低电量消耗,在车辆终端的当前电池电量满足最低电量阈值的情况下,再通过安装回滚包对固件版本进行回滚,从而避免因固件版本回滚导致车辆蓄电池的电量消耗过度,进而引发车辆无法启动的情况。无法启动的情况。无法启动的情况。
技术研发人员:周超 廖宏 马宏伟 魏辉 韩浦江
受保护的技术使用者:联合汽车电子有限公司
技术研发日:2023.05.09
技术公布日:2023/8/16
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
