CN115061713A - 升级电子设备的方法及装置 - Google Patents
升级电子设备的方法及装置 Download PDFInfo
- Publication number
- CN115061713A CN115061713A CN202110251116.2A CN202110251116A CN115061713A CN 115061713 A CN115061713 A CN 115061713A CN 202110251116 A CN202110251116 A CN 202110251116A CN 115061713 A CN115061713 A CN 115061713A
- Authority
- CN
- China
- Prior art keywords
- partition
- loader
- program
- updating
- 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
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Abstract
本申请提供了一种升级电子设备的方法,可应于对电子控制单元ECU的升级,如对车辆的ECU的升级。该电子设备包括存储器,存储器包括第一分区和第二分区,第一分区存储有加载程序,加载程序具有升级模块,第二分区存储有应用程序,该方法包括:启动第一分区的加载程序,由加载程序的升级模块将加载程序复制到第二分区形成备份的加载程序;启动第二分区的备份的加载程序,由备份的加载程序的升级模块更新第一分区的加载程序;启动第一分区更新后的加载程序,由更新后的加载程序的升级模块更新第二分区的应用程序。本申请即可实现电子设备升级过程中减少存储器的资源消耗,又通过形成临时备份的加载程序提高了升级过程中的可靠性。
Description
技术领域
本发明涉及电子设备升级的技术领域,尤其涉及升级电子设备的方法及装置、计算设备和计算机可读存储介质。
背景技术
随着汽车行业的高速发展,尤其是智能网联汽车的快速发展,汽车电子产品在整车中的比重越来越大,相应的,车内电子控制单元(Electronic Control Unit,ECU)越来越多,功能越来越强大。而在ECU的开发及市场应用过程中,常常涉及到针对ECU的应用程序(App)的升级,从而不断修复应用程序中的缺陷或者增加新的功能。
ECU应用程序的升级过程,涉及到应用程序的传输、存储和生效过程,而ECU的存储资源往往比较少,因此,如何能在ECU升级过程中降低对ECU存储资源的消耗,是本发明所要解决的技术问题。
发明内容
鉴于现有技术的以上问题,本申请提供一种升级电子设备的方法及装置、计算设备和计算机可读存储介质,可以实现电子设备升级过程中即提高了升级过程的可靠性,有减少了对存储资源的消耗。
为达到上述目的,本申请第一方面提供了一种升级电子设备的方法,该电子设备包括存储器,所述存储器包括第一分区和第二分区,所述第一分区存储有加载程序,所述加载程序具有升级模块,所述第二分区存储有应用程序,该方法包括:
启动所述第一分区的加载程序,由所述加载程序的升级模块将所述加载程序复制到所述第二分区形成备份的加载程序;
启动所述第二分区的备份的加载程序,由所述备份的加载程序的升级模块更新所述第一分区的加载程序;
启动所述第一分区更新后的加载程序,由所述更新后的加载程序的升级模块更新所述第二分区的应用程序。
其中,上述电子设备的存储器可为Flash存储器或EEPROM等,存储加载程序(Loader)和应用程序(App)的存储器的第一分区和第二分区也可称为Loader分区、App分区。该方法采用了一个Loader分区和一个App分区,相对于现有技术来说不存在冗余的分区,因此减少了对存储资源的消耗。并且,Loader分区在进行自更新的时候,由于设置了备份Loader的步骤,实现了升级过程中的Loader分区的临时双备份,防止升级时异常导致Loader或App损坏无法继续升级或恢复的问题,提高了升级过程中的可靠性。
作为第一方面的一种可能的实现方式,所述更新所述第一分区的加载程序包括将更新用的加载程序文件刷写入所述第一分区;和/或
所述更新所述第二分区的应用程序包括将更新用的应用程序文件刷写入所述第二分区。。
由上为更新的一种实现方式,即通过将相应文件直接刷写到分区的方式。
作为第一方面的一种可能的实现方式,所述更新用的加载程序文件或应用程序文件由下述之一设备提供:
可与所述电子设备通信连接的软件升级服务器、可与所述电子设备接口连接的外部存储装置、或可与所述电子设备通信连接的用户终端。
由上,升级过程中获取相应升级文件的方式可以根据场景灵活选择,该场景可以为:电子设备是否能直接接入互联网、是否能连接USB存储介质等外部存储介质、是否能通过近距离通讯连接用户终端等。根据不同的场景灵活选择获取升级文件的方式。
作为第一方面的一种可能的实现方式,所述存储器还包括第三分区,存储有引导程序;
所述启动所述第一分区的加载程序、启动所述第二分区的备份的加载程序、或启动所述第一分区更新后的加载程序,是通过启动或重启所述电子设备后由所述引导程序引导的方式实现。
其中,存储引导程序(Boot)的存储器的第三分区也可称为Boot分区,可以在升级中各个步骤执行完毕后设置相应分区的启动标志位,当重启后由Boot根据启动标志位引导运行相应分区的启动。
作为第一方面的一种可能的实现方式,当下述之一的步骤中出现运行异常的步骤时,重新运行该步骤:
启动所述第一分区的加载程序,由所述加载程序的升级模块将所述加载程序复制到所述第二分区形成备份的加载程序的步骤;
启动所述第二分区的备份的加载程序,由所述备份的加载程序的升级模块更新所述第一分区的加载程序的步骤;
启动所述第一分区更新后的加载程序,由所述更新后的加载程序的升级模块更新所述第二分区的应用程序的步骤。
由上,通过重新运行出现异常的步骤,可以解决该步骤的异常问题,而无需返回升级过程中的第一步骤,从而无需重复正常的步骤,避免了步骤的冗余,恢复升级的速度更快。
作为第一方面的一种可能的实现方式,所述电子设备为电子控制单元。
由上,本申请可应用于电子控制单元,进而可进一步应用于装配该电子控制单元的设备,这些设备如车辆、车载盒(T-Box)、机顶盒、网络设备(如路由器、无线接入点等)、嵌入式设备,或其他消费终端类电子产品等。
本申请第二方面提供了一种升级电子设备的装置,该电子设备包括存储器,所述存储器包括第一分区和第二分区,所述第一分区存储有加载程序,所述加载程序具有升级模块,所述第二分区存储有应用程序;该装置包括:
第一复制模块,用于启动所述第一分区的加载程序,由所述加载程序的升级模块将所述加载程序复制到所述第二分区形成备份的加载程序;
第一更新模块,用于启动所述第二分区的备份的加载程序,由所述备份的加载程序的升级模块更新所述第一分区的加载程序;
第二更新模块,用于启动所述第一分区更新后的加载程序,由所述更新后的加载程序的升级模块更新所述第二分区的应用程序。
作为第二方面的一种可能的实现方式,所述第一更新模块的所述更新所述第一分区的加载程序包括将更新用的加载程序文件刷写入所述第一分区;和/或
所述第二更新模块的所述更新所述第二分区的应用程序包括将更新用的应用程序文件刷写入所述第二分区。
作为第二方面的一种可能的实现方式,所述更新用的加载程序文件或应用程序文件由下述之一设备提供:
可与所述电子设备通信连接的软件升级服务器、可与所述电子设备接口连接的外部存储装置、或可与所述电子设备通信连接的用户终端。
作为第二方面的一种可能的实现方式,还包括引导模块,所述启动所述第一分区的加载程序、启动所述第二分区的备份的加载程序、或启动所述第一分区更新后的加载程序,是通过启动或重启所述电子设备后由所述引导模块引导的方式实现。
作为第二方面的一种可能的实现方式,当各个所述模块之一出现运行异常时,重新运行该模块。
作为第二方面的一种可能的实现方式,所述电子设备为电子控制单元。
本申请第三方面提供了一种计算设备,包括:
通信接口;
至少一个处理器,其与所述通信接口连接;以及
至少一个存储器,其与所述处理器连接并存储有程序指令,所述程序指令当被所述至少一个处理器执行时使得所述至少一个处理器执行上述第一方面任一所述的方法。
本申请第四方面提供了一种计算机可读存储介质,其上存储有程序指令,所述程序指令当被计算机执行时使得所述计算机执行上述第一方面任一所述的方法。
综上所述,本申请技术方案在升级电子设备时,采用了单一的Loader分区和App分区,降低冗余度,不存在功能冗余,降低了对存储资源的消耗,且通过构建临时的双Loader,提高了升级过程中的可靠性,满足了电子设备对升级的要求,例如该要求为:支持App和Loader的更新;降低升级异常导致ECU软件损坏,即要求可靠性;节省存储空间。尤其适用于的场景包括:Flash存储资源比较紧张,分区划分需要减少冗余的情况;或RAM资源比较紧张,Loader程序不能存放在内存的情况;或需要考虑升级异常,不能因为异常导致App损坏无法恢复的情况。
本发明的这些和其它方面在以下(多个)实施例的描述中会更加简明易懂。
附图说明
以下参照附图来进一步说明本发明的各个特征和各个特征之间的联系。附图均为示例性的,一些特征并不以实际比例示出,并且一些附图中可能省略了本申请所涉及领域的惯常的且对于本申请非必要的特征,或是额外示出了对于本申请非必要的特征,附图所示的各个特征的组合并不用以限制本申请。另外,在本说明书全文中,相同的附图标记所指代的内容也是相同的。具体的附图说明如下:
图1A为现有技术一的基于单Boot分区和单App分区的ECU升级示意图;
图1B为现有技术二的基于双App分区的ECU升级示意图;
图1C为现有技术三的基于双Loader分区的ECU升级示意图;
图2为本申请提供的升级电子设备的方法的一实施例的示意图;
图3A为本申请提供的升级电子设备的方法的一具体实施方式中的Flash的分区示意图;
图3B为本申请提供的升级电子设备的方法的一具体实施方式的流程图;
图3C为图3B示出的第一具体实施方式中各分区升级的示意图;
图4为本申请提供的升级电子设备的装置一实施例的示意图;
图5为本申请计算设备的示意图。
具体实施方式
说明书和权利要求书中的词语“第一、第二、第三等”或模块A、模块B、模块C等类似用语,仅用于区别类似的对象,不代表针对对象的特定排序,可以理解地,在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
在以下的描述中,所涉及的表示步骤的标号,如S110、S120……等,并不表示一定会按此步骤执行,在允许的情况下可以互换前后步骤的顺序,或同时执行。
说明书和权利要求书中使用的术语“包括”不应解释为限制于其后列出的内容;它不排除其它的元件或步骤。因此,其应当诠释为指定所提到的所述特征、整体、步骤或部件的存在,但并不排除存在或添加一个或更多其它特征、整体、步骤或部件及其组群。因此,表述“包括装置A和B的设备”不应局限为仅由部件A和B组成的设备。
本说明书中提到的“一个实施例”或“实施例”意味着与该实施例结合描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在本说明书各处出现的用语“在一个实施例中”或“在实施例中”并不一定都指同一实施例,但可以指同一实施例。此外,在一个或多个实施例中,能够以任何适当的方式组合各特定特征、结构或特性,如从本公开对本领域的普通技术人员显而易见的那样。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。如有不一致,以本说明书中所说明的含义或者根据本说明书中记载的内容得出的含义为准。另外,本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。为了准确地对本申请中的技术内容进行叙述,以及为了准确地理解本发明,在对具体实施方式进行说明之前先对本说明书中所使用的术语给出如下的解释说明或定义:
1)电子控制单元(Electronic Control Unit,ECU):由微处理器(MCU)、存储有应用程序的Flash存储器、用于程序运行的RAM、输入/输出接口(I/O)等集成电路组成。应用车辆中时,又称行车电脑或车载电脑。
2)ECU数据刷写:又称为ECU数据灌装,用于实现ECU的Flash存储器内的应用程序的更新。
3)Flash存储器:又称为闪存,或快闪存储器,全称是Flash EEPROM(ElectricallyErasable Programmable read only memory,EEPROM),即带电可擦可编程只读存储器,是一种非易失性存储器。后文将Flash存储器简称为Flash。
4)Loader分区与Loader程序:存储Loader程序的分区称为Loader分区。Loader程序为加载程序,或称作Bootloader程序,其支持加载和更新功能,所述更新功能由Loader程序内的升级模块实现。在ECU上电启动过程中通过该Loader程序控制跳转到App应用程序的正常启动,或控制运行Boot区里的程序,如执行对ECU的Flash的数据刷写操作。后文将Loader程序简称为Loader。
5)App分区与App程序:存储App程序的分区称为App分区。App为应用程序,即实现了ECU的功能的程序。后文将App应用程序简称为App。
6)Boot分区与Boot程序:存储Boot程序的分区称为Boot分区。Boot程序是引导程序,用于引导启动App分区还是Loader分区。
7)RAM:随机存储器(Random-Access Memory),属于易失性存储器,ECU重启后RAM中的原数据将消失。
下面先对现有的方法进行介绍,然后再对本申请的技术方案进行详细介绍。
现有技术一:如图1A示出了传统的升级方案,该方案中,ECU的Flash中只设置有一个Boot分区(引导程序分区)和一个App分区,为了能够更新App分区,需要在升级时临时加载Loader到ECU的RAM中,并在加载完之后,由Loader对App分区进行刷写更新。
现有技术一存在着以下的缺陷:
1)App升级过程中,当App分区被刷写擦除过程中,出现升级异常时,如数据传输错误、断电等场景,此时新的App尚未刷写成功,导致ECU的Flash中只有Boot区的程序可以运行,这种情况将直接导致ECU升级失败,无法正常执行应用功能。由于App分区的App被擦除损坏,且ECU重启后RAM中的Loader将消失,将导致ECU无法继续启动,只能返厂维修;
2)ECU的RAM资源有限,导致了对Loader大小有限制,如果Loader比较大,会导致无法加载到RAM中。由于限制了Loader本身代码量的大小,进而对于由于Loader功能的完善、改进导致的代码量的增加都有限制性。
现有技术二:如图1B示出了针对现有技术一的一种改进的升级方案,为双App分区升级方案。该方案中,ECU的Flash包含一个Boot分区和两个App分区(如图1B示出的App0和App1分区),两个App分区互为备份,且均有升级更新的功能,在App分区更新时,可以使用其中的一个App分区的程序升级另外一个App分区,其典型过程如下:
首先需要通过一启动标志位标识当前激活的App分区,如果启动标志位对应App0,则App0分区为激活的分区,当前启动运行App0分区;
当App0分区处于运行状态下,执行App分区更新时,由App0下载升级软件,并刷写更新到App1分区,然后修改启动标志对应为App1,以在重启后启动运行App1分区,由App1再对App0分区进行刷写更新。如果App1分区更新失败,则继续维持启动标志对应为App0,并可回退App1的更新,或重新对App1分区进行刷写更新。
由于现有技术二采用App0分区和App1分区互为备份,存在着较大冗余,因此导致Flash存储利用率偏低,尤其对于存储空间较小的车载ECU,在集成日益复杂的功能需求时Flash存储空间尤为紧张的情况下,这种方式加剧了空间紧张、甚至导致空间不足的情况。
现有技术三:如图1C示出了针对现有技术一的另一种改进的升级方案,为双loader方案:该方案中,ECU的Flash分区包括一Boot分区、双Loader分区(如图1C示出的Loader0和Loader1分区)和一App分区。当进行App分区刷写更新时,由Loader0或Loader1对App分区进行刷写更新。并且,还可以由Loader0与Loader1互相更新,该互相更新类似上述现有技术二中的双App分区的互相更新,不再赘述。
由于现有技术三采用了Loader0和Loader1分区,该两分区互为备份,存在冗余,故,同样存在现有技术二所述的缺陷。
基于上述现有技术所存在的技术问题,本申请提供了一种升级电子设备的方法,本申请将电子设备的存储器(如Flash)内设置一Boot分区、一Loader分区、一App分区,通过将Loader临时搬移到App分区后,去刷写更新Loader分区,实现对Loader的更新,并通过更新后的Loader对App分区进行刷写更新,实现Loader分区与App分区的更新。由于Loader搬移到App分区之后,刷写更新Loader分区之前,临时存在双Loader的备份状态,能够解决现有技术一提到的升级过程中出现的掉电、断线、文件错误等导致刷写后ECU异常无法继续的问题,并且,相对现有技术二和三,App分区和Loader分区为单分区,不存在冗余,能够节省存储资源。
本申请ECU的升级场景,可应用于车辆ECU,车载盒(T-Box)、机顶盒ECU、网络设备(如路由器、无线接入点等)ECU、嵌入式设备的ECU,或其他消费终端类电子产品的ECU。同样适用于通用的ECU/MCU等硬件资源(Flash和RAM)少的前提下需要保证升级的可靠性的场景。
【升级电子设备的方法的第一实施例】
下面参照图2示出的流程图,对本申请升级电子设备的方法第一实施例进行介绍。其中,该第一实施例中,电子设备包括一存储器,例如可为Flash存储器或EEPROM等,该存储器包括第一分区和第二分区,所述第一分区存储有加载程序(Loader),所述加载程序(Loader)具有升级模块,所述第二分区存储有应用程序(App),在一些实施例中,所述存储器还包括第三分区,存储引导程序(Boot)。其中,根据存储的内容的不同,第一、二、三分区在后文也称为Loader分区、App分区和Boot分区。
其中,在第一实施例中,所述电子设备为电子控制单元ECU。当对该电子设备进行升级时,如图2所示,该升级电子设备的方法包括下述步骤:
S210:启动所述第一分区的加载程序,通过第一分区的加载程序的升级模块,将所述加载程序复制到第二分区形成备份的加载程序;
在一些实施例中,当电子设备开机或重启后,可通过所述引导程序(即Boot程序)引导的方式进入本步骤。其中,可以在电子设备启动时,按下特定的按键或按键组合,进入Boot引导过程,并在进入Boot引导过程时,引导运行第一分区的Loader。
S220:启动所述第二分区的备份的加载程序,由所述备份的加载程序的升级模块更新所述第一分区的加载程序;
其中,可以采用将更新用的加载程序文件刷写入第一分区的方式来实现第一分区的加载程序的更新。
在一些实施例中,当执行完步骤S210后,可使电子设备重启,并在重启后通过所述引导程序引导的方式进入本步骤,例如执行完步骤S210后,可设置启动标志位对应第二分区,当重启后由Boot根据启动标志位引导运行第二分区的备份的Loader。
S230:启动所述第一分区更新后的加载程序,由所述更新后的加载程序的升级模块更新所述第二分区的应用程序(即App程序)。
其中,可以采用将更新用的应用程序文件刷写入第二分区的方式来实现第二分区的应用程序的更新。
在一些实施例中,当执行完步骤S220后,可使电子设备重启,并在重启后通过所述引导程序引导的方式进入本步骤,例如执行完步骤S220后,可设置启动标志位对应第一分区,当重启后由Boot根据启动标志位引导运行第一分区的更新后的Loader。
由上可以看出,该方法采用了一个Loader分区和一个App分区,相对于现有技术来说不存在冗余的分区,因此减少了对存储资源的消耗。并且,通过上述步骤S210和S220进行Loader分区更新的时候,由于通过步骤S210设置了备份Loader的步骤,实现了升级过程中的Loader分区的临时双备份,防止升级时异常导致Loader或App损坏无法继续升级或恢复的问题,提高了升级过程中的可靠性。
当本步骤执行完毕后,此时电子设备已经完成了应用程序的更新和加载程序的更新。当再次重新启动电子设备后,通过引导程序引导运行第二分区中的更新后的应用程序,完成电子设备的启动,例如执行完步骤S230后,可设置启动标志位对应第二分区,当重启后由Boot根据启动标志位引导运行第二分区的更新后的App。
在本实施例中,当上述各个步骤中出现运行异常的步骤时,重新运行出现异常的步骤,以解决异常问题。在其他一些实施例中,无论在哪一步骤出现异常,也可以都返回步骤S210。而本实施例仅需重新运行出现异常的步骤,因此,无需返回第一步骤,从而无需重复正常的步骤,避免了步骤的冗余,因而恢复升级过程速度更快。
在一些实施例中,上述更新用的加载程序文件或应用程序文件由下述之一方式提供:
由与电子设备可通过通信网络连接的软件升级服务器提供,该软件升级服务器通常布设在网络侧,电子设备通过无线通信网络,如通过无线接入点接入互联网,或通过5G或4G网络接入互联网后,连接到网络侧的软件升级服务器,获取相应更新用文件;
或者,由与所述电子设备接口连接的外部存储装置提供,例如USB存储介质,可预先将相应的更新用文件下载并存储到该外部存储装置中,插入电子设备对应接口以提供给电子设备;
或者,由与电子设备通信连接的用户终端,例如可通过无线、如WIFI或蓝牙,或通过数据线连接的用户手机、PAD等,该用户终端可与软件升级服务器通信连接,从软件升级服务器获取相应的更新用文件,并提供给电子设备。
在一些实施例中,对Loader分区的Loader或App分区的App的更新的过程可以采用文件增量更新的方式进行。
【升级电子设备的方法的第一具体实施方式】
下面,已本申请应用于ECU的具体实施方式为例进行说明,该升级具体是升级该ECU的Flash。该实施例中,如图3A所示分配ECU的Flash至少包括如下分区:
Boot分区,其中具有引导程序,将引导程序简称为Boot,引导程序可以根据一定的条件,如某标志位,或App启动是否正常等,判断启动App还是启动Loader分区的升级程序。为了保证ECU可靠性,该引导程序需可尽量简单稳定,Boot分区通常不需更新。
Loader分区,其中部署软件升级程序,将软件升级程序简称为Loader,可支持Flash中各分区数据的下载和刷新。
App分区,其中具有应用程序App。
其他(Other)分区,可包括存储参数的分区等,为确保ECU更新前后这些参数的完整性,这些分区在ECU更新过程中不需更新。
下面,基于上述Flash的分区,参见图3B示出的本申请提供的升级ECU的方法的一具体实施方式的流程图,图3C示出的该具体实施方式中各分区升级的示意图,对该具体实施方式进行说明,该具体实施方式中,以更新Loader分区和App分区为例进行说明,包括以下步骤:
S310:当通过Boot引导启动Loader分区的Loader后,通过Loader中的升级模块将Loader分区数据复制到App分区中,形成备份Loader。此时App分区存储的App将无法正常使用。
此时如果出现通信中断或者断电异常,下次Boot启动后,重新启动Loader分区的Loader,继续或重新执行本步骤。
为了描述方面,本实施例中将Loader分区中的Loader称为Loader0,将在App分区中的备份Loader称为Loader1。
S320:启动App分区中的Loader1。其中,可以通过ECU重启后,通过Boot引导实现Loader1的启动,例如切换前设置Loader的启动标志位为当前未运行的Loader,这样在Boot重启后,会启动另一Loader。
S330:通过Loader1中的升级模块从软件升级服务器下载新版本的Loader文件包,并将新版本Loader文件包刷写到Loader分区。若刷写过程出现异常,下次Boot启动后,重新启动当前的Loader1,并继续或重新执行本步骤。
S340:刷写Loader分区后,启动Loader分区里的Loader0,此时的Loader0已经被更新。启动Loader0的方式可参照步骤S320里的描述,不再赘述。
S350:使用Loader0中的升级模块刷写更新App分区,包括从软件升级服务器下载App文件包,并据此刷写App分区。若刷写过程出现异常,下次Boot启动后,重新启动当前的Loader0,并继续或重新执行本步骤。
当对App分区刷写结束后,则升级结束,此时Loader分区与App分区都被更新,并当ECU重启后,则通过Boot引导App分区的App的正常启动。
另外需要说明的是,如果是仅针对App分区更新,则可以仅涉及上述步骤S350,不再赘述。另外需要说明的是,上述是以App分区为例进行说明,不难理解,如果存在其他分区,且在不影响该分区数据的情况下,上述S310中的Loader分区数据也可以复制到其他分区实现上述双Loader的过程。
其中,上述是以升级过程中从软件升级服务器下载所需Loader文件包和App文件包。在一些实施例中,也可以从通过接口连接的外设,如通过USB接口连接的存储有上述文件包的外部存储器中获取相应文件包。在另外一些实施例中,也可以从无线连接的终端,如通过蓝牙、WIFI等近距离连接的手机或PAD中获取相应的文件包。并且,当所述更新采用增量更新的方式时,这里所述的文件包可以仅涉及需要更新的增量部分。
【本申请升级电子设备的装置的实施例】
如图4所示,本申请还提供了相应的一种升级电子设备的装置的实施例,关于该装置的有益效果或解决的技术问题,可以参见与各装置分别对应的方法中的描述,或者参见发明内容中的描述,此处不再一一赘述。
在该升级电子设备的装置的实施例中,该电子设备包括存储器,所述存储器包括第一分区和第二分区,所述第一分区存储有加载程序,所述加载程序具有升级模块,所述第二分区存储有应用程序;该装置包括:
第一复制模块410,用于启动所述第一分区的加载程序,由所述加载程序的升级模块将所述加载程序复制到所述第二分区形成备份的加载程序;
第一更新模块420,用于启动所述第二分区的备份的加载程序,由所述备份的加载程序的升级模块更新所述第一分区的加载程序;
第二更新模块430,用于启动所述第一分区更新后的加载程序,由所述更新后的加载程序的升级模块更新所述第二分区的应用程序。
在一些实施例中,所述第一更新模块420的所述更新第一分区的加载程序包括将更新用的加载程序文件刷写入第一分区;所述第二更新模块430的所述更新第二分区的应用程序包括将更新用的应用程序文件刷写入第二分区。
在一些实施例中,所述更新用的加载程序文件或应用程序文件由下述之一设备提供:软件升级服务器、与所述电子设备接口连接的外部存储装置、或与电子设备通信连接的用户终端。
在一些实施例中,还包括一引导模块440,所述启动所述第一分区的加载程序、启动所述第二分区的备份的加载程序、或启动所述第一分区更新后的加载程序,是通过启动或重启电子设备后由所述引导模块引导的方式实现。
在一些实施例中,当各个模块出现运行异常时,重新运行该模块。
在一些实施例中,所述电子设备为电子控制单元。
【本申请计算设备的实施例】
图5是本申请实施例提供的一种计算设备900的结构性示意性图。该计算设备900包括:处理器910、存储器920、通信接口930。
应理解,图5中所示的计算设备900中的通信接口930可以用于与其他设备之间进行通信。
其中,该处理器910可以与存储器920连接。该存储器920可以用于存储该程序代码和数据。因此,该存储器920可以是处理器910内部的存储单元,也可以是与处理器910独立的外部存储单元,还可以是包括处理器910内部的存储单元和与处理器910独立的外部存储单元的部件。
可选的,计算设备900还可以包括总线。其中,存储器920、通信接口930可以通过总线与处理器910连接。总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。
应理解,在本申请实施例中,该处理器910可以采用中央处理单元(centralprocessing unit,CPU)。该处理器还可以是其它通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(Application specific integrated circuit,ASIC)、现成可编程门矩阵(field programmable gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器910采用一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
该存储器920可以包括只读存储器和随机存取存储器,并向处理器910提供指令和数据。处理器910的一部分还可以包括非易失性随机存取存储器。例如,处理器910还可以存储设备类型的信息。
在计算设备900运行时,所述处理器910执行所述存储器920中的计算机执行指令执行上述方法的操作步骤。
应理解,根据本申请实施例的计算设备900可以对应于执行根据本申请各实施例的方法中的相应主体,并且计算设备900中的各个模块的上述和其它操作和/或功能分别为了实现本实施例各方法的相应流程,为了简洁,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行一种多样化问题生成方法,该方法包括上述各个实施例所描述的方案中的至少之一。
本申请实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括、但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本申请的较佳实施例及所运用的技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明的构思的情况下,还可以包括更多其他等效实施例,均属于本发明的保护范畴。
Claims (14)
1.一种升级电子设备的方法,其特征在于,该电子设备包括存储器,所述存储器包括第一分区和第二分区,所述第一分区存储有加载程序,所述加载程序具有升级模块,所述第二分区存储有应用程序,该方法包括:
启动所述第一分区的加载程序,由所述加载程序的升级模块将所述加载程序复制到所述第二分区形成备份的加载程序;
启动所述第二分区的备份的加载程序,由所述备份的加载程序的升级模块更新所述第一分区的加载程序;
启动所述第一分区更新后的加载程序,由所述更新后的加载程序的升级模块更新所述第二分区的应用程序。
2.根据权利要求1所述的方法,其特征在于:
所述更新所述第一分区的加载程序包括将更新用的加载程序文件刷写入所述第一分区;和/或
所述更新所述第二分区的应用程序包括将更新用的应用程序文件刷写入所述第二分区。
3.根据权利要求2所述的方法,其特征在于,
所述更新用的加载程序文件或应用程序文件由下述之一设备提供:
可与所述电子设备通信连接的软件升级服务器、可与所述电子设备接口连接的外部存储装置、或可与所述电子设备通信连接的用户终端。
4.根据权利要求1所述的方法,其特征在于,所述存储器还包括第三分区,存储有引导程序;
所述启动所述第一分区的加载程序、启动所述第二分区的备份的加载程序、或启动所述第一分区更新后的加载程序,是通过启动或重启所述电子设备后由所述引导程序引导的方式实现。
5.根据权利要求1所述的方法,其特征在于,当下述之一的步骤中出现运行异常的步骤时,重新运行该步骤:
启动所述第一分区的加载程序,由所述加载程序的升级模块将所述加载程序复制到所述第二分区形成备份的加载程序的步骤;
启动所述第二分区的备份的加载程序,由所述备份的加载程序的升级模块更新所述第一分区的加载程序的步骤;
启动所述第一分区更新后的加载程序,由所述更新后的加载程序的升级模块更新所述第二分区的应用程序的步骤。
6.根据权利要求1所述的方法,其特征在于,所述电子设备为电子控制单元。
7.一种升级电子设备的装置,其特征在于,该电子设备包括存储器,所述存储器包括第一分区和第二分区,所述第一分区存储有加载程序,所述加载程序具有升级模块,所述第二分区存储有应用程序;该装置包括:
第一复制模块,用于启动所述第一分区的加载程序,由所述加载程序的升级模块将所述加载程序复制到所述第二分区形成备份的加载程序;
第一更新模块,用于启动所述第二分区的备份的加载程序,由所述备份的加载程序的升级模块更新所述第一分区的加载程序;
第二更新模块,用于启动所述第一分区更新后的加载程序,由所述更新后的加载程序的升级模块更新所述第二分区的应用程序。
8.根据权利要求7所述的装置,其特征在于:
所述第一更新模块的所述更新所述第一分区的加载程序包括将更新用的加载程序文件刷写入所述第一分区;和/或
所述第二更新模块的所述更新所述第二分区的应用程序包括将更新用的应用程序文件刷写入所述第二分区。
9.根据权利要求8所述的装置,其特征在于,
所述更新用的加载程序文件或应用程序文件由下述之一设备提供:
可与所述电子设备通信连接的软件升级服务器、可与所述电子设备接口连接的外部存储装置、或可与所述电子设备通信连接的用户终端。
10.根据权利要求7所述的装置,其特征在于,还包括引导模块,所述启动所述第一分区的加载程序、启动所述第二分区的备份的加载程序、或启动所述第一分区更新后的加载程序,是通过启动或重启所述电子设备后由所述引导模块引导的方式实现。
11.根据权利要求7所述的装置,其特征在于,
当各个所述模块之一出现运行异常时,重新运行该模块。
12.根据权利要求7所述的装置,其特征在于,所述电子设备为电子控制单元。
13.一种计算设备,其特征在于,包括:
通信接口;
至少一个处理器,其与所述通信接口连接;以及
至少一个存储器,其与所述处理器连接并存储有程序指令,所述程序指令当被所述至少一个处理器执行时使得所述至少一个处理器执行权利要求1-6任一所述的方法。
14.一种计算机可读存储介质,其上存储有程序指令,其特征在于,所述程序指令当被计算机执行时使得所述计算机执行权利要求1-6任一所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110251116.2A CN115061713A (zh) | 2021-03-08 | 2021-03-08 | 升级电子设备的方法及装置 |
PCT/CN2022/079081 WO2022188690A1 (zh) | 2021-03-08 | 2022-03-03 | 升级电子设备的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110251116.2A CN115061713A (zh) | 2021-03-08 | 2021-03-08 | 升级电子设备的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115061713A true CN115061713A (zh) | 2022-09-16 |
Family
ID=83197413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110251116.2A Pending CN115061713A (zh) | 2021-03-08 | 2021-03-08 | 升级电子设备的方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115061713A (zh) |
WO (1) | WO2022188690A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117270914A (zh) * | 2023-11-17 | 2023-12-22 | 西安第六镜网络科技有限公司 | 一种终端设备的系统升级方法、装置、设备和介质 |
WO2024087234A1 (zh) * | 2022-10-29 | 2024-05-02 | 华为技术有限公司 | 更新软件的方法、装置和智能设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140060912A (ko) * | 2012-11-13 | 2014-05-21 | 한국전자통신연구원 | 부트로더를 업데이트하는 방법 및 장치 |
CN106250196A (zh) * | 2016-08-12 | 2016-12-21 | 上海金脉电子科技有限公司 | 通过can通讯更新车载启动加载程序的方法 |
CN111338661A (zh) * | 2018-12-03 | 2020-06-26 | 厦门雅迅网络股份有限公司 | 应用程序反向升级boot的方法及存储介质 |
CN109857426A (zh) * | 2018-12-27 | 2019-06-07 | 百度在线网络技术(北京)有限公司 | Bootloader程序更新方法、装置、电子设备及存储介质 |
CN110209420A (zh) * | 2019-08-01 | 2019-09-06 | 潍柴动力股份有限公司 | 一种更新引导加载程序的方法及装置 |
CN112181452A (zh) * | 2020-09-08 | 2021-01-05 | 安徽鸿创新能源动力有限公司 | 一种电动汽车电机控制器软件更新方法 |
-
2021
- 2021-03-08 CN CN202110251116.2A patent/CN115061713A/zh active Pending
-
2022
- 2022-03-03 WO PCT/CN2022/079081 patent/WO2022188690A1/zh active Application Filing
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024087234A1 (zh) * | 2022-10-29 | 2024-05-02 | 华为技术有限公司 | 更新软件的方法、装置和智能设备 |
CN117270914A (zh) * | 2023-11-17 | 2023-12-22 | 西安第六镜网络科技有限公司 | 一种终端设备的系统升级方法、装置、设备和介质 |
CN117270914B (zh) * | 2023-11-17 | 2024-04-16 | 西安第六镜网络科技有限公司 | 一种终端设备的系统升级方法、装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2022188690A1 (zh) | 2022-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109933348B (zh) | 一种电子控制单元中Bootloader的更新方法和装置 | |
CN107402847B (zh) | 一种整车控制器软件的远程升级方法及系统 | |
US8166285B2 (en) | Method and system for booting and automatically updating software, and recovering from update error, and computer readable recording medium storing method | |
CN102270144B (zh) | 嵌入式网络设备及其更新固件的方法 | |
US20070074201A1 (en) | Method and system for updating software and computer readable recording medium storing the method | |
US20110283274A1 (en) | Firmware image update and management | |
US20140310698A1 (en) | Apparatus and method for upgrading firmware of mobile terminal | |
CN105930236A (zh) | 一种基于BMS Bootloader升级的应用程序版本回退方法 | |
WO2022188690A1 (zh) | 升级电子设备的方法及装置 | |
CN110874237A (zh) | 软件升级方法、装置、终端以及可读存储介质 | |
CN112631625B (zh) | 嵌入式设备的系统升级方法、装置及嵌入式设备 | |
CN113254048B (zh) | 引导程序更新方法、装置、设备及计算机可读介质 | |
CN111417926A (zh) | 无人飞行器及其固件升级方法 | |
CN108897576A (zh) | 一种基于arm芯片的快速启动boot的方法 | |
CN214376406U (zh) | 集成电路、车载控制器以及车辆 | |
CN113032183A (zh) | 系统管理方法、装置、计算机设备和存储介质 | |
CN116880877A (zh) | 虚拟机增强工具升级方法、装置、计算机设备和存储介质 | |
CN111913753A (zh) | 一种windows系统云迁移中启动方式的变更方法及系统 | |
CN116795408A (zh) | Ecu的软件升级方法、系统及车辆 | |
CN111338661A (zh) | 应用程序反向升级boot的方法及存储介质 | |
CN114546455A (zh) | 一种双分区的mcu软件升级方法及装置 | |
CN115033261A (zh) | 一种程序更新方法、装置、设备及存储介质 | |
CN113703801A (zh) | 一种车载终端固件升级方法及电子装置 | |
US9081727B2 (en) | Method, apparatus and computer program for loading files during a boot-up process | |
CN113553085B (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 |