CN114780114A - 固件升级方法、系统、车辆及存储介质 - Google Patents
固件升级方法、系统、车辆及存储介质 Download PDFInfo
- Publication number
- CN114780114A CN114780114A CN202210375949.4A CN202210375949A CN114780114A CN 114780114 A CN114780114 A CN 114780114A CN 202210375949 A CN202210375949 A CN 202210375949A CN 114780114 A CN114780114 A CN 114780114A
- Authority
- CN
- China
- Prior art keywords
- partition
- firmware
- partitions
- idle
- 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
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000005192 partition Methods 0.000 claims abstract description 353
- 230000001939 inductive effect Effects 0.000 claims abstract description 8
- 238000012544 monitoring process Methods 0.000 claims description 9
- 238000012795 verification Methods 0.000 claims description 4
- 101001006370 Actinobacillus suis Hemolysin Proteins 0.000 description 13
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction 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
- 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)
- Stored Programmes (AREA)
Abstract
本申请实施例提供一种固件升级方法、系统、车辆及存储介质,涉及汽车领域。通过响应固件升级请求,将电子控制单元配置为至少两个独立分区,将至少两个独立分区中的其中一个确定为运行分区,其他分区确定为空闲分区;从空闲分区中确定目标空闲分区;获取目标空闲分区对应的固件包;响应分区切换请求,对运行分区和目标空闲分区进行切换,以安装固件包,从而可以在不影响车辆使用的情况下,将待更新的固件更新至电子控制单元,实现固件无感升级,提升用户体验。
Description
技术领域
本申请实施例涉及汽车领域,特别地,涉及一种固件升级方法、系统、车辆及存储介质。
背景技术
伴随着车联网技术的兴起,固件空中升级(Over the Air,OTA)技术逐步在车辆上搭载,从而实现车辆新功能集成、现有功能升级、问题修复等功能。
采用传统的OTA方案对待升级模块进行升级时,待升级模块无法正常运作,使得车辆使用受限,影响车辆使用体验。此外,现有的其他无感OTA方案,需要硬件支持地址重映射功能,限制较多。
发明内容
本申请实施例提供一种固件升级方法、系统、车辆及存储介质,以改善上述问题。
第一方面,本申请实施例提供一种固件升级方法。该方法包括:响应固件升级请求,将电子控制单元配置为至少两个独立分区,将至少两个独立分区中的其中一个确定为运行分区,其他分区确定为空闲分区;从空闲分区中确定目标空闲分区;获取目标空闲分区对应的固件包;响应分区切换请求,对运行分区和目标空闲分区进行切换,以安装固件包。
第二方面,本申请实施例提供一种固件升级装置。该装置包括分区确定模块、目标空闲分区确定模块、固件包获取模块、分区切换模块。其中,分区确定模块用于响应固件升级请求,将电子控制单元配置为至少两个独立分区,将至少两个独立分区中的其中一个确定为运行分区,其他分区确定为空闲分区。目标空闲分区确定模块用于从空闲分区中确定目标空闲分区。固件包获取模块用于获取目标空闲分区对应的固件包。分区切换模块用于响应分区切换请求,对所述运行分区和所述目标空闲分区进行切换,以安装所述固件包。
第三方面,本申请实施例提供一种固件升级系统。该固件升级系统包括后台、OTA主控以及电子控制单元。后台用于发送固件升级请求和固件升级请求对应的固件包至OTA主控;在接收到OTA主控上报的车辆满足分区切换条件的监控结果时,发送分区切换请求至OTA主控。OTA主控用于响应固件升级请求,请求电子控制单元进入无感升级模式;在接收到电子控制单元反馈的运行分区和目标空闲分区时,将固件包发送至电子控制单元;在接收到电子控制单元反馈的目标空闲分区固件更新完成的固件更新结果时,监控车辆是否满足分区切换条件,并将车辆满足/不满足分区切换条件的监控结果发送至后台;响应分区切换请求,控制电子控制单元对运行分区和目标空闲分区进行切换。电子控制单元包括至少两个独立分区,至少两个独立分区中的其中一个为运行分区,其他分区为空闲分区,目标空闲分区根据空闲分区的应用场景从空闲分区中确定。电子控制单元用于根据固件包对目标空闲分区进行更新;在OTA主控的控制下对运行分区和目标空闲分区进行切换,以安装固件包。
第四方面,本申请实施例提供一种车辆。该车辆主要包括车身本体和上述固件升级系统。固件升级系统中的电子控制单元包括存储器、一个或多个处理器以及一个或多个应用程序。其中,一个或多个应用程序被存储在存储器中,并被配置为当被一个或多个处理器调用时执行本申请实施例提供的固件升级方法。
第五方面,本申请实施例提供一种计算机可读取存储介质。该计算机可读取存储介质中存储有程序代码,该程序代码被配置为当被处理器调用时执行本申请实施例提供的固件升级方法。
本申请实施例提供的固件升级方法、系统、车辆及存储介质,通过将电子控制单元的内存划分为至少两个独立分区,在运行分区运行的同时可以对除运行分区之外的其他分区的固件进行升级,而不会影响运行分区的正常运作,从而可以在不影响车辆使用的情况下,将待更新的固件更新至电子控制单元,实现固件无感升级,提升用户体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本申请一实施例提供的固件升级系统的结构框图;
图2是本申请一示例性实施例提供的固件升级系统运作时的时序流程图;
图3是本申请一示例性实施例提供的ECU分区的示意图;
图4是本申请一实施例提供的固件升级方法的流程示意图;
图5是本申请一示例性实施例提供的步骤S110的流程示意图;
图6是本申请另一实施例提供的固件升级方法的流程示意图;
图7是本申请一实施例提供的固件升级装置的结构框图;
图8是本申请一实施例提供的车辆的结构框图;
图9是本申请一实施例提供的计算机可读取存储介质的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
请参阅图1,图1是本申请一实施例提供的固件升级系统的结构框图。固件升级系统10包括电子控制单元11(Electronic Control Unit,ECU)、OTA主控12以及后台13。ECU11、OTA主控12、后台13均可以设置于车辆内部,三者相互之间可以进行数据交换。
ECU11中存储有多个固件包,这些固件包可以是后台13自带的,或者是根据用户需求下载的。依照Flash控制器分区,ECU11的内存可以被分为至少两个独立分区,每个独立分区完整且可以独立运行。该至少两个独立分区中,除了当前正在运行的运行分区之外,其他所有的分区皆为空闲分区(也可称为备份分区)。
在一些实施例中,ECU11包括两个独立分区,则两个独立分区中的其中一个为运行分区,另一个则为空闲分区(后续将提到的目标空闲分区)。
在另一些实施例中,ECU11包括至少三个独立分区,则至少三个独立分区中的其中一个为运行分区,除了运行分区之外的其他分区为空闲分区。也就是说,本实施例中的空闲分区有至少两个,此时可以根据每个空闲分区的应用场景,从至少两个空闲分区中确定目标空闲分区,以便后续ECU11可以对运行分区和目标空闲分区进行切换,以激活固件包,完成固件升级。
请参阅图2,图2是本申请一示例性实施例提供的固件升级系统运作时的时序流程图。即,图1所示的固件升级系统10的工作流程至少包括以下步骤S1~S12。
步骤S1,后台13发起固件升级请求,并将固件升级请求对应的固件包发送至OTA主控12。
步骤S2,OTA主控12响应固件升级请求,请求ECU11进入无感升级模式。
步骤S3,ECU11将运行分区和目标空闲分区反馈给OTA主控12。
步骤S4,OTA主控12在接收到ECU11反馈的运行分区和目标空闲分区时,将固件包发送至ECU11。
步骤S5,ECU11根据固件包对目标空闲分区进行更新,并在更新完成时将目标空闲分区的升级次数加1。
步骤S6,ECU11将目标空闲分区固件更新完成的固件更新结果发送至OTA主控12。
步骤S7,OTA主控12在接收到ECU11反馈的目标空闲分区固件更新完成的固件更新结果时,监控车辆是否满足分区切换条件。
其中,分区切换条件可以根据车辆的状态确定。例如,分区切换条件包括车辆处于静止状态时接收到用户同意分区切换的指令,或车辆挂入P挡(停车挡)时接收到用户同意分区切换的指令,该指令可以根据用户在车载主机的显示界面上执行的触控操作生成。例如,用户在车载主机的显示界面上按下同意分区切换的按键,则确认用户同意分区切换,并对应生成用户同意分区切换的指令。
在一些实施例中,OTA主控12可以实时或定时监控车辆是否满足分区切换条件,其中,定时的时间间隔可以根据实际需求进行设置,在此不作限制。
步骤S8,OTA主控12将车辆满足/不满足分区切换条件的监控结果发送至后台13。
步骤S9,后台13在接收到OTA主控12上报的车辆满足分区切换条件的监控结果时,发送分区切换请求至OTA主控12。
步骤S10,OTA主控12响应分区切换请求,控制ECU11对运行分区和目标空闲分区进行切换。
步骤S11,ECU11在OTA主控12的控制下对运行分区和目标空闲分区进行切换,以安装固件包。
步骤S12,OTA主控12将“分区切换成功,固件升级成功”的消息发送至后台13,以便后台13响应该消息,结束固件升级流程。
需要说明的是,以上步骤中未详细描述的部分请参阅后续的方法实施例中的方法步骤。
在本实施例提供的固件升级系统中,将ECU配置为至少两个独立分区,在运行分区正常运作的同时可以对其他空闲分区的固件进行更新,而不会影响运行分区的正常运作,从而可以在不影响车辆正常使用的情况下完成固件升级,实现固件无感升级,提升用户体验。在整个固件升级过程中,OTA任务在车辆使用过程中将固件包发送至ECU,缩短了执行OTA任务的时间。此外,在整个固件升级过程中,不论是后台自助发起固件升级请求,还是OTA主控通过监控车辆是否满足分区切换条件,并在车辆满足分区切换条件时,后台发起分区切换请求,都充分提升了车辆的自主性,使得车辆可以自动完成固件更新。
接下来将对本申请实施例提供的固件升级方法进行描述,首先需要说明的是,本申请实施例中所提到的每个独立分区都完整且可以独立运行,且每个独立分区均包括Count、Valid以及Active三个标记位。
其中,Count表征当前分区的被升级次数,可以用于指示ECU被升级的次数。通常Count最大的分区的次数为ECU的实际升级次数,也就是说,Count最大的分区为最新被升级的分区。
Valid为有效标记,表征当前分区是否包括已装载有效的固件包。当Valid的存储值为第一特定序列时表征当前分区包括已装载有效的固件包,否则表征当前分区未包括已装载有效的固件包。其中,第一特定序列可以根据实际需求设置,例如,第一特定序列可以是预设的特定字符串或字母,在此不作具体限定。
Active表征当前分区的固件包是否处于激活状态。当Active的存储值为第二特定序列时表征当前分区的固件包处于激活状态,否则表征当前分区的固件包处于未激活状态。其中,第二特定序列也可以根据实际需求设置,例如,第二特定序列可以是与第一特定序列不同的预设的特定字符串或字母,在此不作具体限定。
作为一种示例,请参阅图3,按照Flash控制器分区,ECU的内存可以被分为APPA和APPB两个分区。APPA分区和APPB分区分别完整且可以独立运行。APPA分区和APPB分区均包括三个标记位,分别是Count、Valid以及Active。
请参阅图4,图4是本申请一实施例提供的固件升级方法的流程示意图。该固件升级方法可以应用于上述固件升级系统10,具体地,可以应用于上述固件升级系统10中的ECU11。该固件升级方法可以包括以下步骤S110~S140。
步骤S110,响应固件升级请求,将ECU配置为至少两个独立分区,将至少两个独立分区中的其中一个确定为运行分区,其他分区确定为空闲分区。
其中,固件升级请求可以是特定的字符串、或字符、或其他能够表征可以开启固件升级流程的指示信息,在此不做具体限定。
在一些实施例中,固件升级请求可以由后台根据用户在车载主机的显示界面上执行的触控操作生成。例如,后台检测到用户在车载主机的显示界面上按下固件升级的按键时,后台可以生成固件升级请求,并通过OTA主控将该固件升级请求发送至ECU。
在另一些实施例中,固件升级请求可以由后台根据对ECU的固件状态进行检测得到的检测结果生成。例如,后台在自助检测到ECU的某个固件具有新的版本,或者ECU的某个固件的某个功能更新时,可以生成固件升级请求,并通过OTA主控将固件升级请求发送至ECU。
在一些实施例中,在车辆上电时,ECU响应固件升级请求,根据每个独立分区的Count、Valid、Active三个标记位从至少两个独立分区中确定运行分区。例如,ECU可以获取每个独立分区的Valid和Active的存储值,并将Valid的存储值为第一特定序列且Active的存储值为第二特定序列的分区确定为运行分区。特别地,若存在至少两个Valid的存储值为第一特定序列且Active的存储值为第二特定序列的分区,可以将Count数值大的分区确定为所述运行分区。
作为一种示例,请参阅图5,ECU具有APPA和APPB两个分区。在车辆上电后,ECU可以获取APPA分区和APPB分区的Valid和Active的存储值。ECU可以判断APPA分区的Valid的存储值是否为第一特定序列且Active的存储值是否为第二特定序列。
若APPA分区的Valid的存储值为第一特定序列且Active的存储值为第二特定序列,则继续判断APPB分区的Valid的存储值是否为第一特定序列且Active的存储值是否为第二特定序列。若APPB分区的Valid的存储值为第一特定序列且Active的存储值为第二特定序列,则将Count数值大的分区确定为运行分区,例如,若APPA分区的Count数值大于APPB分区的Count数值,则确定APPA分区为运行分区。若APPB分区的Valid的存储值不为第一特定序列和/或Active的存储值不为第二特定序列,则确定APPA分区为运行分区。
若APPA分区的Valid的存储值不为第一特定序列和/或Active的存储值不为第二特定序列,则继续判断APPB分区的Valid的存储值是否为第一特定序列且Active的存储值是否为第二特定序列。若APPB分区的Valid的存储值为第一特定序列且Active的存储值为第二特定序列,则确定APPB分区为运行分区。若APPB分区的Valid的存储值不为第一特定序列和/或Active的存储值不为第二特定序列,则停留在Boot分区内,此时ECU进入故障状态,ECU可以向用户发送用于提示ECU进入故障状态的提示信息。
需要说明的是,图5所示的流程图仅提供示例性说明,并不对本申请实施例提供的方案所保护的范围进行限制。实际应用中,每个独立分区的判断顺序并不固定而是可以灵活调整的,或者可以同时并行对所有独立分区进行判断。此外,图5所示的流程图虽然仅提供ECU包括两个独立分区的示例,但是本领域技术人员应当知道,ECU包括多个独立分区时确定运行分区与图5所示的流程大致相同,仅存在的不同之处在于判断分支的多少。
步骤S120,从空闲分区中确定目标空闲分区。
在一些实施例中,若ECU包括两个独立分区,则两个独立分区中的其中一个为运行分区,另一个为目标空闲分区。
在另一些实施例中,若ECU包括至少三个独立分区,则从空闲分区中确定目标空闲分区,可以根据每个空闲分区的应用场景从至少两个空闲分区中确定目标空闲分区。
具体地,根据每个空闲分区的应用场景,从至少两个空闲分区中确定目标空闲分区的实施方式可以如下:判断用户是否已订阅预设业务(例如,后续将提到的自动驾驶业务);若用户已订阅预设业务,则确定具备执行该预设业务的功能的空闲分区为目标空闲分区;若用户未订阅预设业务,则确定不具备执行该预设业务的功能的空闲分区为目标空闲分区。其中,预设业务可以是开发者根据业务实际开发情况预先设置于ECU中的,在此不作具体限制。
以ECU包括三个独立分区为例,ECU包括A、B两个空闲分区,预设业务为自动驾驶业务。其中,空闲分区A具备自动驾驶功能,空闲分区B不具备自动驾驶功能。若用户已订阅自动驾驶业务,则将空闲分区A确定为目标空闲分区;若用户未订阅自动驾驶业务,则将空闲分区B确定为目标空闲分区。
步骤S130,获取目标空闲分区对应的固件包。
其中,目标空闲分区对应的固件包也为固件升级请求对应的固件包,也就是说,该固件包是ECU通过OTA主控从后台处获取到的,同时在此说明,步骤S130和步骤S120的执行顺序并非固定而是可以调整的,或者ECU可以并行执行步骤S120和步骤S130,在此不作具体限定。
由于固件划分分区时,每个独立分区例如上述APPA分区和APPB分区各有独立的Flash控制器,对空闲分区(例如,APPA分区)执行例如,读、写、擦除这些操作不会影响运行分区(例如,APPB分区)的正常运行。因此,可以在不影响车辆的正常使用的情况下对目标空闲分区的固件进行更新,实现固件无感升级。
步骤S140,响应分区切换请求,对运行分区和目标空闲分区进行切换,以安装固件包。
其中,分区切换请求可以是特定的字符串、或字符、或其他能够表征用户同意分区切换的指示信息,在此不作具体限定。
在一些实施例中,分区切换请求由后台在接收到OTA主控上报的车辆满足分区切换条件的监控结果时发起,关于OTA主控监控车辆是否满足分区切换条件的具体描述请参阅步骤S7,在此不再赘述。
在另一些实施例中,分区切换请求由车载主机根据用户在车载主机的显示界面上执行的触控操作生成。例如,若车载主机检测到用户在车载主机的显示界面上按下同意切换分区的按键,则可以生成分区切换请求。
在一些实施例中,响应分区切换请求,ECU可以通过交换目标空闲分区和运行分区的激活状态来激活空闲分区,以安装固件包。例如,ECU可以将运行分区的激活状态更改为未激活状态,并将目标空闲分区的未激活状态更改为激活状态。具体地,ECU可以删除运行分区的Active的存储值,或将运行分区的Active的存储值更改为除第一特定序列之外的其他数值,并将目标空闲分区的Active的存储值设置为第二特定序列。
本申请实施例提供的固件升级方法,通过将ECU的内存划分为至少两个独立分区,在运行分区正常运作的同时可以对其他空闲分区的固件进行更新,而不会影响运行分区的正常运作,从而可以在不影响车辆正常使用的情况下完成固件升级,实现固件无感升级,提升用户体验。
请参阅图6,图6是本申请另一实施例提供的固件升级方法的流程示意图。该固件升级方法可以应用于上述固件升级系统10,具体地,可以应用于上述固件升级系统10中的ECU11。该固件升级方法可以包括以下步骤S210~S270。
步骤S210,响应固件升级请求,将电子控制单元配置为至少两个独立分区,将至少两个独立分区中的其中一个确定为运行分区,其他分区确定为空闲分区。
步骤S220,从空闲分区中确定目标空闲分区。
步骤S230,获取目标空闲分区对应的固件包。
步骤S210~S230的具体描述请参阅步骤S110~S130,在此不再赘述。
步骤S240,对固件包进行校验。
在一些实施例中,在获取到目标空闲分区对应的固件包后,ECU可以对固件包进行校验。若校验结果显示固件包完整有效,则执行步骤S250~S270;若校验结果显示固件包不是完整有效的,则继续获取目标空闲分区对应的固件包,即返回执行步骤S230。
步骤S250,将目标空闲分区的Valid的存储值设置为第一特定序列,将Active的存储值设置为除第二特定序列之外的其他数值或删除Active的存储值,以表征目标空闲分区包括完整有效的固件包且该固件包处于未激活状态,以便后续在切换分区时激活该固件包。
步骤S260,增加一次目标空闲分区的升级次数。
具体地,ECU在校验固件包完整有效之后,可以将目标空闲分区的Count的数值增加1。
步骤S270,响应分区切换请求,对运行分区和目标空闲分区进行切换,以安装固件包。
步骤S270的具体描述请参阅步骤S110,在此不再赘述。
本申请实施例提供的固件升级方法,通过将ECU的内存划分为至少两个独立分区,在运行分区正常运作的同时可以对其他空闲分区的固件进行更新,而不会影响运行分区的正常运作,从而可以在不影响车辆正常使用的情况下完成固件升级,实现固件无感升级,提升用户体验。
请参阅图7,图7是本申请一实施例提供的固件升级装置的结构框图。该固件升级装置300可以应用于上述固件升级系统10,具体地,可以应用于上述固件升级系统10中的ECU11。该固件升级装置300包括相互连接的分区确定模块310、目标空闲分区确定模块320、固件包获取模块330以及分区切换模块340。
分区确定模块310用于响应固件升级请求,将ECU配置为至少两个独立分区,将至少两个独立分区中的其中一个确定为运行分区,其他分区确定为空闲分区。目标空闲分区确定模块320用于从空闲分区中确定目标空闲分区。固件包获取模块330用于获取目标空闲分区对应的固件包。分区切换模块340用于响应分区切换请求,对运行分区和目标空闲分区进行切换,以安装固件包。
其中,每个独立分区包括Count、Valid以及Active三个标记位。Count表征当前分区的升级次数,升级次数高的分区的次数为ECU的升级次数。Valid表征当前分区是否包括已装载有效的固件包,当Valid的存储值为第一特定序列时表征当前分区包括已装载有效的固件包,否则表征当前分区未包括已装载有效的固件包。Active表征当前分区的固件包是否处于激活状态,当Active的存储值为第二特定序列时表征当前分区的固件包处于激活状态,否则表征当前分区的固件包处于未激活状态。
在一些实施例中,分区确定模块310包括分区确定子模块。分区确定子模块用于将Valid的存储值为第一特定序列且Active的存储值为第二特定序列的分区确定为运行分区。特别地,分区确定子模块还用于若存在至少两个Valid的存储值为第一特定序列且Active的存储值为第二特定序列的分区,将Count数值大的分区确定为运行分区。
在一些实施例中,固件升级装置300还包括固件包校验模块、第一标记位设置模块以及第二标记位设置模块。固件包校验模块用于对固件包进行校验。第一标记位设置模块用于若校验结果显示固件包完整有效,将目标空闲分区的Valid的存储值设置为第一特定序列,将Active的存储值设置为除第二特定序列之外的其他数值或删除Active的存储值。第二标记位设置模块用于增加一次目标空闲分区的升级次数。
在一些实施例中,分区切换模块340包括删除子模块和执行子模块。删除子模块用于删除运行分区的Active的存储值,或将运行分区的Active的存储值更改为除第一特定序列之外的其他数值。执行子模块用于将目标空闲分区的Active的存储值设置为第二特定序列。
在一些实施例中,目标空闲分区确定模块320包括目标空闲分区确定子模块。目标空闲分区确定子模块用于若ECU包括两个独立分区,则在确定运行分区之后,将两个独立分区中除运行分区之外的另一个分区确定为目标空闲分区。目标空闲分区确定子模块还用于若ECU包括至少三个独立分区,则根据空闲分区的应用场景,从至少两个空闲分区中确定目标空闲分区。
本领域技术人员可以清楚地了解到,本申请实施例提供的固件升级装置300可以实现本申请实施例提供的固件升级方法。上述装置和模块的具体工作过程,可以参阅本申请实施例中的固件升级方法对应的过程,在此不再赘述。
本申请提供的实施例中,所显示或讨论的模块相互之间的耦合、直接耦合或者通信连接,可以是通过一些接口、装置或模块的间接耦合或通信耦合,可以是电性、机械或其他形式,本申请实施例对此不作限制。
另外,在本申请实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件的功能模块的形式实现,本申请实施例对此不作限制。
请参阅图8,图8是本申请一实施例提供的车辆的结构框图。该车辆400包括车身本体410和固件升级系统420,其中,固件升级系统420与上述固件升级系统10相同。固件升级系统420包括ECU421,ECU421与上述ECU11相同。
ECU421包括存储器4211、一个或多个处理器4212以及一个或多个应用程序4213。其中,一个或多个应用程序被存储在存储器中,并被配置为当被一个或多个处理器调用时执行本申请实施例提供的固件升级方法。
处理器4212可以包括一个或多个处理核。处理器4212利用各种接口和线路连接整个ECU421内各个部分,用于运行或执行存储在存储器4211内的指令、程序、代码集或指令集,以及调用运行或执行存储在存储器4211内的数据,执行ECU421的各种功能和处理数据。可选地,处理器4212可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编辑逻辑阵列(ProgrammableLogic Array,PLA)中的至少一种硬件形式来实现。处理器4212可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成于处理器4212中,单独通过一块通信芯片进行实现。
存储器4211可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory,ROM)。存储器4211可以用于存储指令、程序、代码、代码集或指令集。存储器4211可以包括存储程序区和存储数据区。其中,存储程序区可以存储用于实现操作系统的指令、用于实现至少一个功能的指令、用于实现上述各个方法实施例的指令等。存储数据区可以存储ECU421在使用中所创建的数据等。
请参阅图9,图9是本申请一实施例提供的计算机可读取存储介质的结构框图。该计算机可读取存储介质500中存储有程序代码510,该程序代码510被配置为当被处理器调用时,使得处理器执行本申请实施例的上述固件升级方法。
计算机可读取存储介质500可以是诸如闪存、电可擦除可编辑只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、可擦除可编辑只读存储器(Erasable Programmable Read-Only Memory,EPROM)、硬盘或者ROM之类的电子存储器。可选地,计算机可读取存储介质500包括非易失性计算机可读介质(Non-TransitoryComputer-Readable Storage Medium,Non-TCRSM)。计算机可读取存储介质500具有执行上述方法中的任何方法步骤的程序代码510的存储空间。这些程序代码510可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码510可以以适当的形式进行压缩。
综上所述,本申请实施例提供的固件升级方法、系统、车辆及存储介质,通过将电子控制单元的内存划分为至少两个独立分区,在运行分区运行的同时可以对除运行分区之外的其他分区的固件进行升级,而不会影响运行分区的正常运作,从而可以在不影响车辆使用的情况下,将待更新的固件更新至电子控制单元,实现固件无感升级,提升用户体验。
最后应说明的是:以上实施例仅用于说明本申请的技术方案,而非对其限制。尽管参照前述实施例对本申请进行了详细的说明,本领域技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种固件升级方法,其特征在于,包括:
响应固件升级请求,将电子控制单元配置为至少两个独立分区,将所述至少两个独立分区中的其中一个确定为运行分区,其他分区确定为空闲分区;
从所述空闲分区中确定目标空闲分区;
获取所述目标空闲分区对应的固件包;
响应分区切换请求,对所述运行分区和所述目标空闲分区进行切换,以安装所述固件包。
2.根据权利要求1所述的方法,其特征在于,每个所述独立分区包括Count、Valid以及Active三个标记位,其中:
Count表征当前分区的升级次数,升级次数高的分区的次数为所述电子控制单元的升级次数;
Valid表征所述当前分区是否包括已装载有效的固件包,当Valid的存储值为第一特定序列时表征所述当前分区包括所述已装载有效的固件包,否则表征所述当前分区未包括所述已装载有效的固件包;
Active表征所述当前分区的固件包是否处于激活状态,当Active的存储值为第二特定序列时表征所述当前分区的固件包处于激活状态,否则表征所述当前分区的固件包处于未激活状态。
3.根据权利要求2所述的方法,其特征在于,所述将所述至少两个独立分区中的其中一个确定为运行分区,包括:
将Valid的存储值为所述第一特定序列且Active的存储值为所述第二特定序列的分区确定为所述运行分区。
4.根据权利要求3所述的方法,其特征在于,所述将所述至少两个独立分区中的其中一个确定为运行分区,还包括:
若存在至少两个Valid的存储值为所述第一特定序列且Active的存储值为所述第二特定序列的分区,将Count数值大的分区确定为所述运行分区。
5.根据权利要求2所述的方法,其特征在于,在获取所述目标空闲分区对应的固件包之后,所述方法还包括:
对所述固件包进行校验;
若校验结果显示所述固件包完整有效,将所述目标空闲分区的Valid的存储值设置为所述第一特定序列,将Active的存储值设置为除所述第二特定序列之外的其他数值或删除Active的存储值;
增加一次所述目标空闲分区的升级次数。
6.根据权利要求2所述的方法,其特征在于,所述对所述运行分区和所述目标空闲分区进行切换,包括:
删除所述运行分区的Active的存储值,或将所述运行分区的Active的存储值更改为除所述第一特定序列之外的其他数值;
将所述目标空闲分区的Active的存储值设置为所述第二特定序列。
7.根据权利要求1所述的方法,其特征在于,所述电子控制单元包括至少三个独立分区,所述从所述空闲分区中确定目标空闲分区,包括:
根据所述空闲分区的应用场景,从至少两个所述空闲分区中确定目标空闲分区。
8.一种固件升级系统,其特征在于,包括:
后台,用于发送固件升级请求和所述固件升级请求对应的固件包至固件空中升级主控;在接收到所述固件空中升级主控上报的车辆满足分区切换条件的监控结果时,发送分区切换请求至所述固件空中升级主控;
所述固件空中升级主控,用于响应所述固件升级请求,请求电子控制单元进入无感升级模式;在接收到所述电子控制单元反馈的运行分区和目标空闲分区时,将所述固件包发送至所述电子控制单元;在接收到所述电子控制单元反馈的目标空闲分区固件更新完成的固件更新结果时,监控所述车辆是否满足所述分区切换条件,并将所述车辆满足/不满足所述分区切换条件的监控结果发送至所述后台;响应所述分区切换请求,控制所述电子控制单元对所述运行分区和所述目标空闲分区进行切换;
所述电子控制单元,包括至少两个独立分区,所述至少两个独立分区中的其中一个为所述运行分区,其他分区为空闲分区,所述目标空闲分区根据所述空闲分区的应用场景从所述空闲分区中确定;所述电子控制单元用于根据所述固件包对所述目标空闲分区进行更新;在所述固件空中升级主控的控制下对所述运行分区和所述目标空闲分区进行切换,以安装所述固件包。
9.一种车辆,其特征在于,包括:
车身本体;
固件升级系统,所述固件升级系统包括电子控制单元,所述电子控制单元包括存储器、一个或多个处理器和一个或多个应用程序,其中,所述一个或多个应用程序存储在所述存储器中,并被配置为由所述一个或多个处理器调用时,使得所述一个或多个处理器执行如权利要求1~7任一项所述的固件升级方法。
10.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码被配置为由处理器调用时,使得所述处理器执行如权利要求1~7任一项所述的固件升级方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210375949.4A CN114780114A (zh) | 2022-04-11 | 2022-04-11 | 固件升级方法、系统、车辆及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210375949.4A CN114780114A (zh) | 2022-04-11 | 2022-04-11 | 固件升级方法、系统、车辆及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114780114A true CN114780114A (zh) | 2022-07-22 |
Family
ID=82429578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210375949.4A Pending CN114780114A (zh) | 2022-04-11 | 2022-04-11 | 固件升级方法、系统、车辆及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114780114A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116594660A (zh) * | 2023-05-25 | 2023-08-15 | 成都赛力斯科技有限公司 | 一种ecu无感升级刷写方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102830984A (zh) * | 2011-06-14 | 2012-12-19 | 联想(北京)有限公司 | 固件更新的方法、芯片以及通信终端 |
CN107908416A (zh) * | 2017-12-28 | 2018-04-13 | 惠州Tcl家电集团有限公司 | 单片机固件升级方法、装置及计算机可读存储介质 |
CN109189430A (zh) * | 2018-09-14 | 2019-01-11 | 郑州云海信息技术有限公司 | 一种电源固件升级方法、装置、设备及存储介质 |
US20200363855A1 (en) * | 2019-05-17 | 2020-11-19 | Trane International Inc. | Bas/hvac control device automatic failure recovery |
CN113905039A (zh) * | 2021-09-30 | 2022-01-07 | 苏州挚途科技有限公司 | 系统升级文件传输方法、装置及系统 |
CN114237722A (zh) * | 2021-11-19 | 2022-03-25 | 湖南三一智能控制设备有限公司 | 一种系统的启动方法、装置、设备及工程车辆 |
-
2022
- 2022-04-11 CN CN202210375949.4A patent/CN114780114A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102830984A (zh) * | 2011-06-14 | 2012-12-19 | 联想(北京)有限公司 | 固件更新的方法、芯片以及通信终端 |
CN107908416A (zh) * | 2017-12-28 | 2018-04-13 | 惠州Tcl家电集团有限公司 | 单片机固件升级方法、装置及计算机可读存储介质 |
CN109189430A (zh) * | 2018-09-14 | 2019-01-11 | 郑州云海信息技术有限公司 | 一种电源固件升级方法、装置、设备及存储介质 |
US20200363855A1 (en) * | 2019-05-17 | 2020-11-19 | Trane International Inc. | Bas/hvac control device automatic failure recovery |
CN113905039A (zh) * | 2021-09-30 | 2022-01-07 | 苏州挚途科技有限公司 | 系统升级文件传输方法、装置及系统 |
CN114237722A (zh) * | 2021-11-19 | 2022-03-25 | 湖南三一智能控制设备有限公司 | 一种系统的启动方法、装置、设备及工程车辆 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116594660A (zh) * | 2023-05-25 | 2023-08-15 | 成都赛力斯科技有限公司 | 一种ecu无感升级刷写方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109673009B (zh) | 一种vcu软件空中升级方法及装置 | |
CN111399884A (zh) | 一种车辆组件的升级方法、装置及电子设备 | |
CN110928567A (zh) | 车辆系统升级方法、终端设备及计算机可读存储介质 | |
US20230359454A1 (en) | Software update device, update control method, and non-transitory storage medium | |
CN108121560A (zh) | 差分包升级方法、装置、终端及计算机可读存储介质 | |
US20240069906A1 (en) | Server, software update system, distribution method, and non-transitory storage medium | |
CN114780114A (zh) | 固件升级方法、系统、车辆及存储介质 | |
CN115756561A (zh) | 软件升级方法、装置、计算机设备以及存储介质 | |
EP3620914A1 (en) | Apparatus for providing update of vehicle and computer-readable storage medium | |
CN111722857A (zh) | 软件开发工具包的更新方法、装置、电子设备及存储介质 | |
US20220391192A1 (en) | Ota master, center, system, method, non-transitory storage medium, and vehicle | |
CN110704076A (zh) | 数据处理方法和装置、车载控制器及计算机可读存储介质 | |
CN116431186A (zh) | 一种车载ecu的升级方法、装置及介质 | |
CN115357355A (zh) | 一种软件跨系统迁移的方法、装置、设备及可读存储介质 | |
CN114895947A (zh) | 车载控制器的软件升级方法、装置、设备和存储介质 | |
CN111610995B (zh) | 一种设备固件升级方法、装置、电子设备和存储介质 | |
CN113553079A (zh) | 一种物联设备的升级方法、装置、电子设备及存储介质 | |
CN113672258A (zh) | 车辆的系统升级方法、装置、计算机设备和存储介质 | |
CN112202969A (zh) | 一种蓝牙控制方法及装置 | |
CN116909609B (zh) | 车载智能设备的软件升级方法、装置及车载智能设备 | |
US20220334821A1 (en) | Ota master, update control method, non-transitory storage medium, and ota center | |
US20220391193A1 (en) | Ota master, system, method, non-transitory storage medium, and vehicle | |
KR20040110648A (ko) | 무선통신단말기의 소프트웨어 부분 업그레이드 방법 | |
US20220253234A1 (en) | Electronic control unit, method, and program | |
CN113778496A (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 |
Application publication date: 20220722 |
|
RJ01 | Rejection of invention patent application after publication |