CN114647458A - 启动加载程序的更新方法、装置、车载控制终端及介质 - Google Patents
启动加载程序的更新方法、装置、车载控制终端及介质 Download PDFInfo
- Publication number
- CN114647458A CN114647458A CN202011508953.0A CN202011508953A CN114647458A CN 114647458 A CN114647458 A CN 114647458A CN 202011508953 A CN202011508953 A CN 202011508953A CN 114647458 A CN114647458 A CN 114647458A
- Authority
- CN
- China
- Prior art keywords
- program
- storage area
- updating
- starting
- self
- 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 67
- 238000013500 data storage Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 3
- 230000008859 change Effects 0.000 abstract description 9
- 230000006870 function Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 15
- 238000012795 verification Methods 0.000 description 11
- 238000011161 development Methods 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000007787 solid Substances 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
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例公开了一种启动加载程序的更新方法、装置、车载控制终端及介质。该更新方法包括:车载MCU启动后进入存储在应用存储区中的自更新启动程序中运行;将写入到预留应用存储区中的目标启动加载程序复制至启动程序存储区中,目标启动加载程序用于替换启动程序存储区中的初始启动加载程序;通过自更新启动程序确定启动程序存储区中的目标启动加载程序与预留应用存储区中的目标启动加载程序一致,则控制车载MCU进入目标启动加载程序中运行。本发明实施例的技术方案,以实现确保启动加载程序的可靠性,且减少启动加载程序的改动,同时避免车辆本身损坏,节约成本。
Description
技术领域
本发明实施例涉及车载应用控制技术领域,尤其涉及一种启动加载程序的更新方法、装置、车载控制终端及介质。
背景技术
随着汽车电子控制单元(简称ECU)应用开发的快速发展,其功能越来越强大,实现也越来越复杂。图1是本发明实施例提供的现有ECU应用存储区划分示意图,参见图1,在ECU出厂前,将ECU的应用存储区划分为三个区域,分别为:启动加载程序区(Bootloader)、应用程序区(App)和标志位数据区。其中,启动加载程序区和应用程序区位于ECU的应用存储区的Program Flash内,在ECU出厂前将启动加载程序区和应用程序区固化在Program Flash内,标志位数据区位于ECU的应用存储区的Data Flash内,用于存储有效性标志位、App地址长度、校验结果等信息。
如何提供一种启动加载程序的更新方法、装置、车载控制终端及介质,以实现确保启动加载程序的可靠性,且减少启动加载程序的改动,同时避免车辆本身损坏,节约成本,是一个技术问题。
发明内容
本发明实施例提供一种启动加载程序的更新方法、装置、车载控制终端及介质,以实现确保启动加载程序的可靠性,且减少启动加载程序的改动,同时避免车辆本身损坏,节约成本。
第一方面,本发明实施例提供了一种启动加载程序的更新方法,该更新方法包括:
车载MCU启动后进入存储在应用存储区中的自更新启动程序中运行;
将写入到预留应用存储区中的目标启动加载程序复制至启动程序存储区中,所述目标启动加载程序用于替换所述启动程序存储区中的初始启动加载程序;
通过所述自更新启动程序确定所述启动程序存储区中的目标启动加载程序与所述预留应用存储区中的目标启动加载程序一致,则控制所述车载MCU进入所述目标启动加载程序中运行。
本发明实施例的技术方案,通过车载MCU启动后进入存储在应用存储区中的自更新启动程序中运行;将写入到预留应用存储区中的目标启动加载程序复制至启动程序存储区中,所述目标启动加载程序用于替换所述启动程序存储区中的初始启动加载程序;通过所述自更新启动程序确定所述启动程序存储区中的目标启动加载程序与所述预留应用存储区中的目标启动加载程序一致,则控制所述车载MCU进入所述目标启动加载程序中运行,进而实现确保启动加载程序的可靠性,且减少启动加载程序的改动,同时避免车辆本身损坏,节约成本。
第二方面,本发明实施例还提供了一种启动加载程序的更新装置,该更新装置包括:
自更新启动程序中运行模块,用于车载MCU启动后进入存储在应用存储区中的自更新启动程序中运行;
目标启动加载程序写入模块,用于将写入到预留应用存储区中的目标启动加载程序复制至启动程序存储区中,所述目标启动加载程序用于替换所述启动程序存储区中的初始启动加载程序;
目标启动加载程序中运行模块,用于通过所述自更新启动程序确定所述启动程序存储区中的目标启动加载程序与所述预留应用存储区中的目标启动加载程序一致,则控制所述车载MCU进入所述目标启动加载程序中运行。
本发明实施例的技术方案,该更新装置包括:自更新启动程序中运行模块,用于车载MCU启动后进入存储在应用存储区中的自更新启动程序中运行;目标启动加载程序写入模块,用于将写入到预留应用存储区中的目标启动加载程序复制至启动程序存储区中,所述目标启动加载程序用于替换所述启动程序存储区中的初始启动加载程序;目标启动加载程序中运行模块,用于通过所述自更新启动程序确定所述启动程序存储区中的目标启动加载程序与所述预留应用存储区中的目标启动加载程序一致,则控制所述车载MCU进入所述目标启动加载程序中运行,进而实现确保启动加载程序的可靠性,且减少启动加载程序的改动,同时避免车辆本身损坏,节约成本。
第三方面,本发明实施例还提供了一种车载控制终端,该车载控制终端包括:
一个或多个处理器;
存储装置,用于存储多个程序,
当所述多个程序中的至少一个被所述一个或多个处理器执行时,使得所述一个或多个处理器实现本发明第一方面实施例所提供的一种启动加载程序的更新方法。
本发明实施例的技术方案,通过车载MCU启动后进入存储在应用存储区中的自更新启动程序中运行;将写入到预留应用存储区中的目标启动加载程序复制至启动程序存储区中,所述目标启动加载程序用于替换所述启动程序存储区中的初始启动加载程序;通过所述自更新启动程序确定所述启动程序存储区中的目标启动加载程序与所述预留应用存储区中的目标启动加载程序一致,则控制所述车载MCU进入所述目标启动加载程序中运行,进而实现确保启动加载程序的可靠性,且减少启动加载程序的改动,同时避免车辆本身损坏,节约成本。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明第一方面实施例所提供的一种启动加载程序的更新方法。
本发明实施例的技术方案,通过车载MCU启动后进入存储在应用存储区中的自更新启动程序中运行;将写入到预留应用存储区中的目标启动加载程序复制至启动程序存储区中,所述目标启动加载程序用于替换所述启动程序存储区中的初始启动加载程序;通过所述自更新启动程序确定所述启动程序存储区中的目标启动加载程序与所述预留应用存储区中的目标启动加载程序一致,则控制所述车载MCU进入所述目标启动加载程序中运行,进而实现确保启动加载程序的可靠性,且减少启动加载程序的改动,同时避免车辆本身损坏,节约成本。
附图说明
图1是本发明实施例提供的现有ECU应用存储区划分示意图;
图2是本发明实施例提供的使用启动加载程序在线更新应用程序的具体流程示意图;
图3是本发明实施例一提供的一种启动加载程序的更新方法的流程图;
图4A是本发明实施例二提供的一种启动加载程序的更新方法的流程图;
图4B是本发明实施例提供的自更新启动程序写入应用存储区后的存储区域划分示意图;
图4C是本发明实施例提供的目标启动加载程序写入预留应用存储区后的存储区域划分示意图;
图4D是本发明实施例提供的目标启动加载程序写入启动程序存储区后的存储区域划分示意图;
图4E是本发明实施例提供的初始应用程序重新写入应用存储区后的存储区域划分示意图;
图5A是本发明实施例三提供的一种启动加载程序的更新方法的流程图;
图5B是本发明实施例提供的自更新启动程序更新目标启动加载程序的流程示意图;
图6是本发明实施例四提供的一种启动加载程序的更新装置的结构图;
图7是本发明实施例五提供的一种车载控制终端的硬件结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。
另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
图2是本发明实施例提供的使用启动加载程序在线更新应用程序的具体流程示意图,参见图2,步骤1:ECU上电后将从位于首地址的启动加载程序中启动;步骤2:读取标志位数据中的更新应用程序请求标志,若有更新应用程序请求,则执行步骤6,若没有更新应用程序请求,则执行步骤3;步骤3:对应用程序中的内容进行有效性检查,即计算用程序中内容的校验和与标志位数据中存储的校验和进行比较;步骤4:若应用程序校验通过且有效,则执行步骤5,若否,则执行步骤6;步骤5:跳转到应用程序的首地址运行;步骤6:将启动加载程序相关参数初始化,做好在线更新准备;步骤7:根据协议流程擦除应用程序中的内容,更新应用程序,并将标志位数据区中的应用程序更新请求清除,同时,写入新应用程序的校验信息;步骤8:更新完成后应用程序复位,并回到步骤1重新从启动加载程序开始运行。
在设计启动加载程序时,应尽可能保证其功能完善且没有漏洞,但是不能完全消除漏洞存在和考虑不全的可能性,因此还需要考虑启动加载程序的自更新功能,以便能够在发现问题或者改善其相关功能后发布新的启动加载程序版本。目前,对于未带有自更新功能的启动加载程序,仍然需要将ECU从整车上拆卸下来,并且返厂后使用烧录工具重新烧录新版本启动加载程序。若直接使用启动加载程序对其自身进行更新,在运行至擦除启动加载程序步骤时,程序将突然中断,且ECU将无法正常工作,同样需要返厂使用烧录工具才能恢复ECU。综上所述,本发明实施例针对上述问题提供如下启动加载程序的更新方法、装置、车载控制终端及介质进行解决。
实施例一
图3为本发明实施例一提供的一种启动加载程序的更新方法的流程图,本实施例可适用于对启动加载程序进行在线更新的情况,该方法可以由启动加载程序的更新装置来执行,该装置可以通过软件和/或硬件的形式实现。具体包括如下步骤:
S110、车载MCU启动后进入存储在应用存储区中的自更新启动程序中运行。
其中,自更新启动程序(ReBoot)可以作为一段特殊的启动加载程序,自更新启动程序在本实施例中预先被更新到ECU中替换初始应用程序,由于自更新启动程序与启动加载程序具备同样的在线更新功能,因此,自更新启动程序是基于UDS协议用于烧录目标启动加载程序(即新版本的启动加载程序)、验证其有效性以及更新初始启动加载程序的临时启动加载程序代码。
可以理解的是,自更新启动程序在更新到ECU中替换初始应用程序后,初始应用程序即被擦除。
进一步的,车载MCU启动后进入存储在应用存储区中的自更新启动程序中运行,包括:车载MCU启动进入初始启动加载程序中运行后接收自更新启动程序,并将自更新启动程序写入到应用存储区中,自更新启动程序用于替换应用存储区中的初始应用程序;判断自更新启动程序是否有效,若是,则再次启动车载MCU后控制车载MCU从在初始启动加载程序中运行跳转为在自更新启动程序中运行;若否,则将自更新启动程序中的中断向量表内容复制至ECU的首地址存储区,首地址存储区用于存储各程序的首地址,以保证即使在断电后,ECU仍然可以通过首地址存储区中的中断向量表内容,实现正常跳转到自更新启动程序的功能。
具体的,判断自更新启动程序是否有效,包括:如果自更新启动程序的校验和与标志位数据存储区中存储的自更新启动程序的校验和一致,则确定自更新启动程序有效。
S120、将写入到预留应用存储区中的目标启动加载程序复制至启动程序存储区中,目标启动加载程序用于替换启动程序存储区中的初始启动加载程序。
其中,目标启动加载程序即为新版本的启动加载程序,为保证更新的可靠性,目标启动加载程序并非直接对初始启动加载程序进行更新,而是将目标启动加载程序内容烧录到自更新启动程序后的一段地址中暂时存放,即目标启动加载程序预先写入到预留应用存储区中。
可以理解的是,在目标启动加载程序校验通过后,再将目标启动加载程序内容复制到启动程序存储区中,以将待更新的初始启动加载程序代码替换。
具体的,将写入到预留应用存储区中的目标启动加载程序复制至启动程序存储区中,包括:上位机启动后导入目标启动加载程序,并将目标启动加载程序写入预留应用存储区中;判断目标启动加载程序是否有效,若是,则将目标启动加载程序复制至启动程序存储区中;若否,则车载MCU重新启动,在车载MCU重新启动后进入存储在应用存储区中的自更新启动程序中重新运行。
S130、通过自更新启动程序确定启动程序存储区中的目标启动加载程序与预留应用存储区中的目标启动加载程序一致,则控制车载MCU进入目标启动加载程序中运行。
可以理解的是,对复制前后的目标启动加载程序内容再做一次校验,以确保复制过程准确无误,至此,启动加载程序的更新过程已完成。最后,将被替换的初始应用程序重新更新,替换临时自更新启动程序代码,则ECU可继续正常运行。
在上述实施例的基础上,上位机启动后导入初始应用程序,并将初始应用程序重新写入应用存储区中;车载MCU再次启动后进入初始应用程序中运行。
进一步的,车载MCU再次启动后进入初始应用程序中运行,包括:判断初始应用程序是否有效,若是,则车载MCU再次启动后进入初始应用程序中运行;若否,则车载MCU再次启动,在车载MCU再次启动后进入存储在启动程序存储区中的目标启动加载程序中再次运行。
在上述实施例的基础上,通过自更新启动程序确定启动程序存储区中的目标启动加载程序与预留应用存储区中的目标启动加载程序不一致,则将自更新启动程序中的中断向量表复制到应用程序首地址存储区中;相应的,车载MCU启动后进入存储在应用存储区中的自更新启动程序中运行,包括:车载MCU启动后通过应用程序首地址存储区中的中断向量表进入自更新启动程序中运行。
需要说明的是,自更新启动程序、初始启动加载程序和初始应用程序作为三个不同功能的程序代码,各自负责不同的功能。自更新启动程序作为特殊的代码,自更新启动程序是一个特殊的初始应用程序,因为需要通过初始启动加载程序烧录到硬件中,同时自更新启动程序又具备和初始启动加载程序相关的功能,能够与上位机通讯将收到的代码烧录到硬件中。
本发明实施例的技术方案,通过车载MCU启动后进入存储在应用存储区中的自更新启动程序中运行;将写入到预留应用存储区中的目标启动加载程序复制至启动程序存储区中,目标启动加载程序用于替换启动程序存储区中的初始启动加载程序;通过自更新启动程序确定启动程序存储区中的目标启动加载程序与预留应用存储区中的目标启动加载程序一致,则控制车载MCU进入目标启动加载程序中运行。自更新启动程序以现有启动加载程序的更新流程与功能为基础,更改目标启动加载程序存储位置和跳转引导地址,并在烧录完成后增加代码复制的步骤,尽可能减少现有启动加载程序代码的改动,同时,在验证完目标启动加载程序的有效性后再对初始启动加载程序进行更新替换,确保目标启动加载程序更新的可靠性。
实施例二
图4A为本发明实施例二提供的一种启动加载程序的更新方法的流程图。本实施例以上述实施例为基础进行优化。
相应的,本实施例的方法具体包括:
S210、车载MCU启动进入初始启动加载程序中运行后接收自更新启动程序,并将自更新启动程序写入到应用存储区中,自更新启动程序用于替换应用存储区中的初始应用程序。
可以理解的是,在车载MCU启动前,导入自更新启动程序代码,并启动应用程序更新功能。
具体的,图4B是本发明实施例提供的自更新启动程序写入应用存储区后的存储区域划分示意图,参见图4B,自更新启动程序写入到应用存储区中,在车载MCU启动后,进入自更新启动程序中运行。
S220、判断自更新启动程序是否有效,若是,则再次启动车载MCU后控制车载MCU从在初始启动加载程序中运行跳转为在自更新启动程序中运行。
进一步的,判断自更新启动程序是否有效,包括:如果自更新启动程序的校验和与标志位数据存储区中存储的自更新启动程序的校验和一致,则确定自更新启动程序有效。
具体的,在初始启动加载程序下更新自更新启动程序将原来的初始应用程序代码替换。更新完成后,ECU自动复位并通过有效性校验,并跳转到自更新启动程序中运行。此过程与现有技术的启动加载程序在线更新过程相同,自更新启动程序可以视作一段特殊的应用程序被更新到ECU中。
需要说明的是,继续参见图4B,标志位数据区中的校验信息在上一步中同时被更新为自更新启动程序对应的信息,因此,在ECU复位后,自更新启动程序有效性及校验通过后,ECU将从初始启动加载程序代码跳转到自更新启动程序代码中运行。
S230、上位机启动后导入目标启动加载程序,并将目标启动加载程序写入预留应用存储区中。
图4C是本发明实施例提供的目标启动加载程序写入预留应用存储区后的存储区域划分示意图,参见图4B和图4C,将目标启动加载程序写入预留应用存储区中。在自更新启动程序下烧录目标启动加载程序代码。该烧录过程并非直接对初始启动加载程序进行更新,而是将内容烧录到自更新启动程序后的一段地址中暂时存放。
S240、判断目标启动加载程序是否有效,若是,则将目标启动加载程序复制至启动程序存储区中。
其中,目标启动加载程序用于替换启动程序存储区中的初始启动加载程序。
具体的,图4D是本发明实施例提供的目标启动加载程序写入启动程序存储区后的存储区域划分示意图,继续参见图4C和图4D,在目标启动加载程序校验通过后,ECU再将目标启动加载程序内容复制到启动程序存储区区域中替换初始启动加载程序。
S250、通过自更新启动程序确定启动程序存储区中的目标启动加载程序与预留应用存储区中的目标启动加载程序一致,则控制车载MCU进入目标启动加载程序中运行。
通过自更新启动程序确定启动程序存储区中的目标启动加载程序与预留应用存储区中的目标启动加载程序不一致,则将自更新启动程序中的中断向量表复制到应用程序首地址存储区中;
相应的,车载MCU启动后进入存储在应用存储区中的自更新启动程序中运行,包括:车载MCU启动后通过应用程序首地址存储区中的中断向量表进入自更新启动程序中运行。
具体的,在目标启动加载程序复制至启动程序存储区完成后,对复制前后的目标启动加载程序内容再做一次校验,确保复制过程准确无误;若校验通过,则将标志位数据区中的校验有效性标志位清零,复位后ECU将停留在复制后的目标启动加载程序中运行;若校验不通过,则将校验有效性标志位清零,通过应用程序首地址存储区中的中断向量表进入自更新启动程序中运行。
S260、上位机启动后导入初始应用程序,并将初始应用程序重新写入应用存储区中。
S270、车载MCU再次启动后进入初始应用程序中运行。
图4E是本发明实施例提供的初始应用程序重新写入应用存储区后的存储区域划分示意图,参见图4E,初始应用程序重新写入应用存储区中,ECU可继续正常运行。
具体的,车载MCU再次启动后进入初始应用程序中运行,包括:判断初始应用程序是否有效,若是,则车载MCU再次启动后进入初始应用程序中运行。
本发明实施例的技术方案,引入自更新启动程序这一概念作为临时代工具代码,在更新完成后可被初始应用程序重新替换,在更新过程中并非对启动程序存储区进行直接更新,而是将内容烧录到自更新启动程序后的一段地址中暂时存放,在烧录完成后先验证目标启动加载程序内容是否有效再复制更新到启动程序存储区中。在目标启动加载程序复制完成后,对复制前后内容计算校验和做比较,确保复制过程准确无误。若目标启动加载程序的有效性检查或校验和对比无法通过,则认为更新的目标启动加载程序无效,此时将自更新启动程序的中断向量表复制到ECU首地址中,确保即使掉电复位后,ECU仍可以通过自更新启动程序的中断向量表跳转到自更新启动程序代码中,继续尝试烧录目标启动加载程序。不仅操作简单,工作量少,同时,不会对车辆本身造成损坏,成本低,实用价值大,且确保在线更新的准确性和可靠性。
实施例三
图5A为本发明实施例三提供的一种启动加载程序的更新方法的示意图,本发明实施例的技术方案是在上述实施例的基础上进行进一步的优化,本实施例的方法具体包括:
S310、上位机启动,导入自更新启动程序代码,并启动应用程序更新。
S311、车载MCU启动进入初始启动加载程序中运行后接收自更新启动程序,并将自更新启动程序写入到应用存储区中。
自更新启动程序写入到应用存储区中后,初始应用程序被清除。
S312、判断自更新启动程序是否有效,若是,则执行步骤S313,若否,则执行步骤S311。
S313、车载MCU启动后进入存储在应用存储区中的自更新启动程序中运行。
S314、上位机启动后导入目标启动加载程序,并将目标启动加载程序写入预留应用存储区中。
上位机启动,导入目标启动加载程序代码,并启动应用程序更新,接收到目标启动加载程序代码,将目标启动加载程序代码写入到预留应用存储区中,初始应用程序被擦除。
S315、判断启动程序存储区中的目标启动加载程序与预留应用存储区中的目标启动加载程序是否一致,若是,则执行步骤S316,若否,则执行步骤S313。
S316、车载MCU复位,车载MCU进入目标启动加载程序中运行。
S317、上位机启动后导入初始应用程序,并将初始应用程序重新写入应用存储区中。
上位机启动,导入初始应用程序,并启动应用程序更新。
S318、判断初始应用程序是否有效,若是,则执行步骤S319,若否,则执行步骤S316。
S319、车载MCU再次启动后进入初始应用程序中运行。
需要说明的是,图5B是本发明实施例提供的自更新启动程序更新目标启动加载程序的流程示意图,自更新启动程序在具体更新目标启动加载程序时,具体的实现过程参见图5B所示的步骤如下:
S320、初始启动加载程序中运行后接收自更新启动程序,并将自更新启动程序写入到应用存储区中,自更新启动程序用于替换应用存储区中的初始应用程序。
S321、再次启动车载MCU后控制车载MCU从在初始启动加载程序中运行跳转为在自更新启动程序中运行。
S322、将写入到预留应用存储区中的目标启动加载程序复制至启动程序存储区中,目标启动加载程序用于替换启动程序存储区中的初始启动加载程序。
S323、判断目标启动加载程序是否有效,若是,则执行步骤S324,若否,则执行步骤S325。
S324、上位机启动后导入初始应用程序,并将初始应用程序重新写入应用存储区中,车载MCU再次启动后进入初始应用程序中运行。
S325、将自更新启动程序中的中断向量表复制到应用程序首地址存储区中,并返回执行步骤S321。
实施例四
图6为本发明实施例四提供的一种启动加载程序的更新装置的结构图,本实施例可适用于对启动加载程序进行在线更新的情况。
如图6所示,所述更新装置包括:自更新启动程序中运行模块410、目标启动加载程序写入模块420和目标启动加载程序中运行模块430,其中:
自更新启动程序中运行模块410,用于车载MCU启动后进入存储在应用存储区中的自更新启动程序中运行;
目标启动加载程序写入模块420,用于将写入到预留应用存储区中的目标启动加载程序复制至启动程序存储区中,所述目标启动加载程序用于替换所述启动程序存储区中的初始启动加载程序;
目标启动加载程序中运行模块430,用于通过所述自更新启动程序确定所述启动程序存储区中的目标启动加载程序与所述预留应用存储区中的目标启动加载程序一致,则控制所述车载MCU进入所述目标启动加载程序中运行。
本实施例的启动加载程序的更新装置,该更新装置包括:自更新启动程序中运行模块,用于车载MCU启动后进入存储在应用存储区中的自更新启动程序中运行;目标启动加载程序写入模块,用于将写入到预留应用存储区中的目标启动加载程序复制至启动程序存储区中,所述目标启动加载程序用于替换所述启动程序存储区中的初始启动加载程序;目标启动加载程序中运行模块,用于通过所述自更新启动程序确定所述启动程序存储区中的目标启动加载程序与所述预留应用存储区中的目标启动加载程序一致,则控制所述车载MCU进入所述目标启动加载程序中运行,进而实现确保启动加载程序的可靠性,且减少启动加载程序的改动,同时避免车辆本身损坏,节约成本。
在上述各实施例的基础上,所述车载MCU启动后进入存储在应用存储区中的自更新启动程序中运行,包括:
车载MCU启动进入初始启动加载程序中运行后接收所述自更新启动程序,并将所述自更新启动程序写入到所述应用存储区中,所述自更新启动程序用于替换所述应用存储区中的初始应用程序;
判断所述自更新启动程序是否有效,若是,则再次启动车载MCU后控制车载MCU从在所述初始启动加载程序中运行跳转为在所述自更新启动程序中运行。
在上述各实施例的基础上,所述判断所述自更新启动程序是否有效,包括:
如果所述自更新启动程序的校验和与标志位数据存储区中存储的所述自更新启动程序的校验和一致,则确定所述自更新启动程序有效。
在上述各实施例的基础上,将写入到所述预留应用存储区中的目标启动加载程序复制至启动程序存储区中,包括:
上位机启动后导入所述目标启动加载程序,并将所述目标启动加载程序写入所述预留应用存储区中;
判断所述目标启动加载程序是否有效,若是,则将所述目标启动加载程序复制至所述启动程序存储区中。
在上述各实施例的基础上,所述更新装置还包括:
上位机启动后导入所述初始应用程序,并将所述初始启动加载程序重新写入应用存储区中;
车载MCU再次启动后进入所述初始应用程序中运行。
在上述各实施例的基础上,所述车载MCU再次启动后进入所述初始应用程序中运行,包括:
判断所述初始应用程序是否有效,若是,则车载MCU再次启动后进入所述初始应用程序中运行。
在上述各实施例的基础上,所述更新装置还包括:
通过所述自更新启动程序确定所述启动程序存储区中的目标启动加载程序与所述预留应用存储区中的目标启动加载程序不一致,则将所述自更新启动程序中的中断向量表复制到应用程序首地址存储区中;
相应的,所述车载MCU启动后进入存储在应用存储区中的自更新启动程序中运行,包括
所述车载MCU启动后通过所述应用程序首地址存储区中的所述中断向量表进入所述自更新启动程序中运行。
上述各实施例所提供的启动加载程序的更新装置可执行本发明任意实施例所提供的启动加载程序的更新方法,具备执行启动加载程序的更新方法相应的功能模块和有益效果。
实施例五
图7为本发明实施例五提供的一种车载控制终端的结构示意图,如图7所示,该车载控制终端包括处理器510、存储器520、输入装置530和输出装置540;车载控制终端中处理器510的数量可以是一个或多个,图7中以一个处理器510为例;车载控制终端中的处理器510、存储器520、输入装置530和输出装置540可以通过总线或其他方式连接,图7中以通过总线连接为例。
存储器520作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的启动加载程序的更新方法对应的程序指令/模块(例如,启动加载程序的更新装置中的自更新启动程序中运行模块410、目标启动加载程序写入模块420和目标启动加载程序中运行模块430)。处理器510通过运行存储在存储器520中的软件程序、指令以及模块,从而执行车载控制终端的各种功能应用以及数据处理,即实现上述的启动加载程序的更新方法。
存储器520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器520可进一步包括相对于处理器510远程设置的存储器,这些远程存储器可以通过网络连接至车载控制终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置530可用于接收输入的数字或字符信息,以及产生与车载控制终端的用户设置以及功能控制有关的键信号输入。输出装置540可包括显示屏等显示设备。
实施例六
本发明实施例六还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种启动加载程序的更新方法,该更新方法包括:
车载MCU启动后进入存储在应用存储区中的自更新启动程序中运行;
将写入到预留应用存储区中的目标启动加载程序复制至启动程序存储区中,所述目标启动加载程序用于替换所述启动程序存储区中的初始启动加载程序;
通过所述自更新启动程序确定所述启动程序存储区中的目标启动加载程序与所述预留应用存储区中的目标启动加载程序一致,则控制所述车载MCU进入所述目标启动加载程序中运行。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的启动加载程序的更新方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述启动加载程序的更新装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种启动加载程序的更新方法,其特征在于,包括:
车载MCU启动后进入存储在应用存储区中的自更新启动程序中运行;
将写入到预留应用存储区中的目标启动加载程序复制至启动程序存储区中,所述目标启动加载程序用于替换所述启动程序存储区中的初始启动加载程序;
通过所述自更新启动程序确定所述启动程序存储区中的目标启动加载程序与所述预留应用存储区中的目标启动加载程序一致,则控制所述车载MCU进入所述目标启动加载程序中运行。
2.根据权利要求1所述的更新方法,其特征在于,所述车载MCU启动后进入存储在应用存储区中的自更新启动程序中运行,包括:
车载MCU启动进入初始启动加载程序中运行后接收所述自更新启动程序,并将所述自更新启动程序写入到所述应用存储区中,所述自更新启动程序用于替换所述应用存储区中的初始应用程序;
判断所述自更新启动程序是否有效,若是,则再次启动车载MCU后控制车载MCU从在所述初始启动加载程序中运行跳转为在所述自更新启动程序中运行。
3.根据权利要求2所述的更新方法,其特征在于,所述判断所述自更新启动程序是否有效,包括:
如果所述自更新启动程序的校验和与标志位数据存储区中存储的所述自更新启动程序的校验和一致,则确定所述自更新启动程序有效。
4.根据权利要求1所述的更新方法,其特征在于,将写入到所述预留应用存储区中的目标启动加载程序复制至启动程序存储区中,包括:
上位机启动后导入所述目标启动加载程序,并将所述目标启动加载程序写入所述预留应用存储区中;
判断所述目标启动加载程序是否有效,若是,则将所述目标启动加载程序复制至所述启动程序存储区中。
5.根据权利要求2所述的更新方法,其特征在于,还包括:
上位机启动后导入所述初始应用程序,并将所述初始应用程序重新写入应用存储区中;
车载MCU再次启动后进入所述初始应用程序中运行。
6.根据权利要求5所述的更新方法,其特征在于,所述车载MCU再次启动后进入所述初始应用程序中运行,包括:
判断所述初始应用程序是否有效,若是,则车载MCU再次启动后进入所述初始应用程序中运行。
7.根据权利要求1所述的更新方法,其特征在于,还包括:
通过所述自更新启动程序确定所述启动程序存储区中的目标启动加载程序与所述预留应用存储区中的目标启动加载程序不一致,则将所述自更新启动程序中的中断向量表复制到应用程序首地址存储区中;
相应的,所述车载MCU启动后进入存储在应用存储区中的自更新启动程序中运行,包括:
所述车载MCU启动后通过所述应用程序首地址存储区中的所述中断向量表进入所述自更新启动程序中运行。
8.一种启动加载程序的更新装置,其特征在于,包括:
自更新启动程序中运行模块,用于车载MCU启动后进入存储在应用存储区中的自更新启动程序中运行;
目标启动加载程序写入模块,用于将写入到预留应用存储区中的目标启动加载程序复制至启动程序存储区中,所述目标启动加载程序用于替换所述启动程序存储区中的初始启动加载程序;
目标启动加载程序中运行模块,用于通过所述自更新启动程序确定所述启动程序存储区中的目标启动加载程序与所述预留应用存储区中的目标启动加载程序一致,则控制所述车载MCU进入所述目标启动加载程序中运行。
9.一种车载控制终端,其特征在于,所述车载控制终端包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一项所述的启动加载程序的更新方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一项所述的启动加载程序的更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011508953.0A CN114647458A (zh) | 2020-12-18 | 2020-12-18 | 启动加载程序的更新方法、装置、车载控制终端及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011508953.0A CN114647458A (zh) | 2020-12-18 | 2020-12-18 | 启动加载程序的更新方法、装置、车载控制终端及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114647458A true CN114647458A (zh) | 2022-06-21 |
Family
ID=81990374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011508953.0A Pending CN114647458A (zh) | 2020-12-18 | 2020-12-18 | 启动加载程序的更新方法、装置、车载控制终端及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114647458A (zh) |
-
2020
- 2020-12-18 CN CN202011508953.0A patent/CN114647458A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110231952B (zh) | 一种ecu程序备份及循环升级控制方法及装置 | |
CN109933348B (zh) | 一种电子控制单元中Bootloader的更新方法和装置 | |
CN101344854B (zh) | 通过SD卡对嵌入式Linux设备进行升级的方法 | |
US20040225873A1 (en) | Method and system for recovering program code in a computer system | |
CN111796848A (zh) | Bootloader软件更新方法、装置、嵌入式控制器以及存储介质 | |
CN103019775A (zh) | 一种终端设备刷机的方法、装置和设备 | |
JPWO2013103023A1 (ja) | 情報処理装置、情報処理方法、およびコンピュータプログラム | |
CN110874237A (zh) | 软件升级方法、装置、终端以及可读存储介质 | |
WO2015154538A1 (zh) | 存储器的启动方法及装置 | |
CN112667265B (zh) | 一种引导程序更新方法及装置 | |
WO2022188690A1 (zh) | 升级电子设备的方法及装置 | |
CN116360831A (zh) | 一种应用程序升级方法、装置、电子设备及存储介质 | |
CN114064077A (zh) | 一种基于tc397微控制器地址映射的汽车ecu云端软件升级方法 | |
CN111221553A (zh) | 一种固件升级的方法及装置 | |
CN114020340A (zh) | 一种服务器系统及其数据处理方法 | |
CN113220319A (zh) | 一种数据更新方法、装置及车辆 | |
CN114647458A (zh) | 启动加载程序的更新方法、装置、车载控制终端及介质 | |
CN113835837B (zh) | 基于容器系统的恢复出厂设置方法、装置及电子设备 | |
CN115357355A (zh) | 一种软件跨系统迁移的方法、装置、设备及可读存储介质 | |
CN114996717A (zh) | 一种防止误擦除的升级程序设计方法 | |
JP5084853B2 (ja) | ファームウエア更新装置、通信装置、電子機器、ファームウエア更新システム、ファームウエア更新方法及びプログラム | |
CN109960522B (zh) | 一种软件升级方法及装置 | |
CN112905207A (zh) | Ecu数据刷写方法、ecu数据刷写装置、车载终端及介质 | |
CN113821234A (zh) | 操作系统升级方法、设备、存储介质及计算机程序产品 | |
CN112162772B (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 |