CN114489713A - 域控制器的程序处理方法 - Google Patents
域控制器的程序处理方法 Download PDFInfo
- Publication number
- CN114489713A CN114489713A CN202111591348.9A CN202111591348A CN114489713A CN 114489713 A CN114489713 A CN 114489713A CN 202111591348 A CN202111591348 A CN 202111591348A CN 114489713 A CN114489713 A CN 114489713A
- Authority
- CN
- China
- Prior art keywords
- program
- core
- configuration file
- storage medium
- domain controller
- 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 claims abstract description 60
- 230000002159 abnormal effect Effects 0.000 claims description 56
- 238000005192 partition Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 12
- 238000012360 testing method Methods 0.000 claims description 12
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000005856 abnormality Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 239000000243 solution Substances 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 239000011557 critical solution Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000012827 research and development Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (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
本发明公开一种域控制器的程序处理方法,方法应用于域控制器,域控制器包括至少两个M核、至少一个A核、第一存储介质和第二存储介质,第一存储介质包括域控制器的引导程序,第二存储介质包括M核应用程序、域控制器的配置文件和A核相关程序,方法包括:A核检查第二存储介质中各程序是否能够读写;若第二存储介质中各程序均能够读写,则A核基于配置文件和下载的更新文件对第二存储介质中的待更新程序进行更新;若存在至少一个程序不能读写,则至少两个M核中第一M核执行域控制器的引导程序,通过域控制器的引导程序格式化被损坏的程序,并基于配置文件和下载的更新文件对待更新程序进行更新。
Description
技术领域
本发明涉及汽车技术领域,具体而言,涉及一种域控制器的程序处理方法。
背景技术
随着汽车用户对汽车功能要求的增加,传统分布式的汽车电子产品难以满足汽车用户对汽车需求变化快、高定制化的需要,也无法满足整车厂需要快速应对客户需求并限制研发成本的要求。域控制器在这种背景下,应运而生。首先,域控制器可以使用高性能多核的MCU(Microcontroller Unit,微控制单元)替代传统单核MCU,提升产品性能,提升用户的用车体验;其次,域控制器可同时集成多个高实时整车控制功能和多个非实时功能于一身,颠覆传统电子产品单一功能的设计,提高集成度,逆转整车ECU数量不断增加的趋势,有利于整车厂减少整车线束长度和整车重量,达到控制成本的目标;最后,域控制器支持OTA(Over-the-Air Technology,空中下载技术)更新和更多的定制化设计,有利于整车厂满足客户高定制化的需要,提高整车的市场竞争力。
如图1所示,在相关技术中,域控制器包括一个MCU,该MCU内部集成多个不同性质的核,其中包括至少一个运算能力较强且主要执行数据处理和运算的A核,以及至少一个执行实时控制功能的M核。M核的代码主要存储在MCU内部FALSH(闪存)中,FALSH包括域控制器的引导程序和M核应用程序;A核的代码主要存储在MCU外部的EMMC(Embedded Multi MediaCard Flash,嵌入式多媒体卡快闪)中,EMMC包括A核引导程序、A核系统程序、A核应用程序集合和域控制器的配置文件。在域控制器的程序更新过程中,A核负责管理更新过程。A核从诊断仪或者远端服务器下载更新文件,然后根据更新文件更新M核或者A核的程序。然而,A核是基于LINUX的操作系统运行的,其存在一定的软件漏洞,一方面,可能在系统运行一定时间后,系统异常,另一方面,可能被黑客攻击,使其不能工作,或窃取其信息。因此,如何提高域控制器的程序更新安全性,从而提高域控制器程序更新的可靠性是亟待解决的。
发明内容
本发明提供了一种域控制器的程序处理方法,能够安全更新域控制器的程序更新,从而提高域控制器的程序更新的可靠性。
具体的技术方案如下:
第一方面,本发明实施例提供了一种域控制器的程序处理方法,所述方法应用于域控制器,所述域控制器包括至少两个M核、至少一个A核、第一存储介质和第二存储介质,且所述M核和所述A核均具有所述第二存储介质的读写权限,所述M核具有所述第一存储介质的读写权限,所述第一存储介质包括所述域控制器的引导程序,所述第二存储介质包括M核应用程序、所述域控制器的配置文件和A核相关程序,所述方法包括:
所述A核检查所述第二存储介质中各程序是否能够读写;
若所述第二存储介质中各程序均能够读写,则所述A核基于所述配置文件和下载的更新文件对所述第二存储介质中的待更新程序进行更新;
若存在至少一个程序不能读写,则所述至少两个M核中第一M核执行所述域控制器的引导程序,通过所述域控制器的引导程序格式化被损坏的程序,并基于所述配置文件和下载的更新文件对所述待更新程序进行更新。
在一种实施方式中,当所述第二存储介质中的每种程序均包括相互备份的两份程序时,所述A核基于所述配置文件和下载的更新文件对所述第二存储介质中的待更新程序进行更新,包括:
所述A核获取目标配置文件中记录的有效程序的程序标识,并将与所述有效程序相互备份的另一份程序确定为待更新程序,其中,所述目标配置文件为内容正常的一份配置文件,所述有效程序包括所述第二存储介质中除了配置文件以外的程序中至少一项;
从预设更新设备上下载所述待更新程序对应的更新文件,在所述待更新程序存储位置处使用所述更新文件替换所述待更新程序。
在一种实施方式中,当两份配置文件中第一配置文件为主配置文件,第二配置文件为备份配置文件时,在所述A核获取目标配置文件中记录的有效程序的程序标识之前,所述方法还包括:
若所述第一配置文件不存在异常,则将所述第一配置文件作为目标配置文件;
若所述第一配置文件存在异常且所述第二配置文件不存在异常,则将所述第二配置文件的内容拷贝到所述第一配置文件内,将拷贝后的第一配置文件确定为所述目标配置文件;
若所述第一配置文件和所述第二配置文件均存在异常,则将所述第一配置文件和所述第二配置文件恢复默认值,将恢复默认值后的第一配置文件确定为所述目标配置文件。
在一种实施方式中,通过所述域控制器的引导程序格式化被损坏的程序,基于所述配置文件和下载的更新文件对所述待更新程序进行更新,包括:
所述域控制器的引导程序检查所述第二存储介质各分区的损坏情况,并将被损坏的分区内的程序确定为被损坏的程序,对所述被损坏的分区进行格式化;
若所述第二存储介质被全盘格式化,则所述域控制器的引导程序将所述第一配置文件和所述第二配置文件恢复默认值,并基于恢复默认值后的所述第一配置文件和下载的更新文件对所述待更新程序进行更新;
若所述第一配置文件被格式化且所述第二配置文件未被格式化,则所述域控制器的引导程序将所述第二配置文件中的内容拷贝到所述第一配置文件内,并基于拷贝后的所述第一配置文件和下载的更新文件对所述待更新程序进行更新;
若所述第一配置文件未被格式化,则所述域控制器的引导程序基于所述第一配置文件和下载的更新文件对所述待更新程序进行更新。
在一种实施方式中,在对所述待更新程序进行更新后,所述方法还包括:
当基于所述A核对所述第二存储介质进行更新时,所述A核通过运行代码更新程序检查所述更新文件的合法性,若所述更新文件合法,则所述A核通过运行代码更新程序将所述目标配置文件中记录的有效程序的程序标识更改为存储有所述更新文件对应程序的程序标识,若所述更新文件不合法,则所述A核通过运行代码更新程序在所述待更新程序存储位置处使用所述有效程序替换所述更新文件;
当基于所述第一M核对所述第二存储介质进行更新时,所述第一M核通过运行所述域控制器的引导程序检查所述更新文件的合法性,若所述更新文件合法,则所述第一M核通过运行所述域控制器的引导程序将所述目标配置文件中记录的有效程序的程序标识更改为存储有所述更新文件对应程序的程序标识,若所述更新文件不合法,则所述第一M核通过运行所述域控制器的引导程序在所述待更新程序存储位置处使用所述有效程序替换所述更新文件。
在一种实施方式中,在对所述待更新程序进行更新后,所述方法还包括:
向待反馈设备反馈更新结果,所述更新结果包括更新成功、更新文件异常或者待更新程序更新成功但被损坏的至少一个程序格式化后未进行更新。
在一种实施方式中,所述域控制器还包括只读存储区域,所述第一存储介质还包括备份的M核应用程序,所述A核相关程序包括A核应用程序集合、A核引导程序和A核系统程序,在所述A核检查所述第二存储介质中各程序是否能够读写之前,所述方法还包括:
在所述只读存储区域执行预设安全启动流程成功后,将所述域控制器的引导程序加载到所述第一M核,使得所述第一M核运行所述域控制器的引导程序;
所述域控制器的引导程序判断所述第二存储介质是否能够正常启动;
若所述第二存储介质不能正常启动,则所述域控制器的引导程序加载所述第一存储介质中备份的M核应用程序,并启动其他M核运行所述备份的M核应用程序,所述第一M核持续运行所述域控制器的引导程序,并进入等待更新状态,其中,所述其他M核包括所述至少两个M核中除了所述第一M核以外的M核;
若所述第二存储介质能够正常启动,则所述域控制器的引导程序根据所述配置文件加载所述第二存储介质中的M核应用程序、所述A核引导程序和所述A核系统程序,并启动所述其他M核运行所述第二存储介质中的M核应用程序,基于所述A核引导程序和所述A核系统程序启动所述A核,以便所述A核运行所述A核应用程序集合,所述A核启动成功后,所述第一M核停止运行所述域控制器的引导程序,并与所述其他M核并行运行所述第二存储介质中的M核应用程序。
在一种实施方式中,所述方法还包括:
所述域控制器的引导程序判断所述第二存储介质中的M核应用程序的版本是否比所述备份的M核应用程序高,以及判断所述第二存储介质中的M核应用程序是否能够正常启动;
若判断结果均为是,则所述域控制器的引导程序将所述第二存储介质中的M核应用程序拷贝到所述备份的M核应用程序所处的存储位置,以便替换所述备份的M核应用程序的原有内容;
若所述第二存储介质中的M核应用程序不能正常启动,则所述域控制器的引导程序所述备份的M核应用程序拷贝到所述第二存储介质中M核应用程序所处的存储位置,以便替换所述第二存储介质中M核应用程序的原有内容。
在一种实施方式中,当所述第二存储介质中的每种程序均包括相互备份的两份程序时,所述域控制器的引导程序根据所述配置文件加载所述第二存储介质中的M核应用程序、所述A核引导程序和所述A核系统程序,包括:
所述域控制器的引导程序获取目标配置文件中记录的目标程序中有效程序的程序标识,其中,所述目标配置文件为内容正常的一份配置文件,所述目标程序包括M核应用程序、所述A核引导程序或者所述A核系统程序;
所述域控制器的引导程序判断所述程序标识所对应的程序是否异常;
若所述程序标识所对应的程序正常,则加载所述目标程序;
若所述程序标识所对应的程序异常,则判断所述目标程序的另一份程序是否异常;
若所述目标程序的另一份程序正常,则加载所述目标程序的另一份程序;
若所述目标程序的另一份程序异常,则当所述目标程序为M核应用程序时,加载所述第一存储介质中备份的M核应用程序,当所述目标程序为A核引导程序或者A核系统程序时,停止加载所述目标程序。
在一种实施方式中,所述域控制器还包括高速网络链路加密器HSE,所述第一存储介质还包括所述域控制器的引导程序的备份、所述HSE的固件及所述固件的备份、所述域控制器的启动配置数据及所述启动配置数据的备份、所述域控制器的启动自检配置数据及所述启动自检配置数据的备份。
第二方面,本发明实施例提供了一种域控制器的程序处理装置,所述装置应用于域控制器,所述域控制器包括至少两个M核、至少一个A核、第一存储介质和第二存储介质,且所述M核和所述A核均具有所述第二存储介质的读写权限,所述M核具有所述第一存储介质的读写权限,所述第一存储介质包括所述域控制器的引导程序,所述第二存储介质包括M核应用程序、所述域控制器的配置文件和A核相关程序,所述装置包括:
存储介质检查单元,用于由所述A核检查所述第二存储介质中各程序是否能够读写;
第一更新单元,用于当所述第二存储介质中各程序均能够读写时,所述A核基于所述配置文件和下载的更新文件对所述第二存储介质中的待更新程序进行更新;
第二更新单元,用于当存在至少一个程序不能读写时,所述至少两个M核中第一M核执行所述域控制器的引导程序,通过所述域控制器的引导程序格式化被损坏的程序,并基于所述配置文件和下载的更新文件对所述待更新程序进行更新。
在一种实施方式中,所述第一更新单元,包括:
第一获取模块,用于当所述第二存储介质中的每种程序均包括相互备份的两份程序时,所述A核获取目标配置文件中记录的有效程序的程序标识,其中,所述目标配置文件为内容正常的一份配置文件,所述有效程序包括所述第二存储介质中除了配置文件以外的程序中至少一项;
第一确定模块,用于将与所述有效程序相互备份的另一份程序确定为待更新程序;
第一下载模块,从预设更新设备上下载所述待更新程序对应的更新文件;
第一更新模块,用于在所述待更新程序存储位置处使用所述更新文件替换所述待更新程序。
在一种实施方式中,所述第一更新单元,还包括:
第二确定模块,用于当两份配置文件中第一配置文件为主配置文件,第二配置文件为备份配置文件时,在所述A核获取目标配置文件中记录的有效程序的程序标识之前,若所述第一配置文件不存在异常,则将所述第一配置文件作为目标配置文件;
第一拷贝模块,用于当所述第一配置文件存在异常且所述第二配置文件不存在异常时,将所述第二配置文件的内容拷贝到所述第一配置文件内;
所述第二确定模块,还用于将拷贝后的第一配置文件确定为所述目标配置文件;
第一恢复模块,用于当所述第一配置文件和所述第二配置文件均存在异常时,将所述第一配置文件和所述第二配置文件恢复默认值;
第二确定模块,还用于将恢复默认值后的第一配置文件确定为所述目标配置文件。
在一种实施方式中,第二更新单元,包括:
检查模块,用于由所述域控制器的引导程序检查所述第二存储介质各分区的损坏情况;
格式化模块,用于将被损坏的分区内的程序确定为被损坏的程序,对所述被损坏的分区进行格式化;
第二恢复模块,用于档所述第二存储介质被全盘格式化时,所述域控制器的引导程序将所述第一配置文件和所述第二配置文件恢复默认值;
第二更新模块,用于基于恢复默认值后的所述第一配置文件和下载的更新文件对所述待更新程序进行更新;
第二拷贝模块,用于当所述第一配置文件被格式化且所述第二配置文件未被格式化时,所述域控制器的引导程序将所述第二配置文件中的内容拷贝到所述第一配置文件内;
第二更新模块,还用于基于拷贝后的所述第一配置文件和下载的更新文件对所述待更新程序进行更新;
第二更新模块,还用于当所述第一配置文件未被格式化时,所述域控制器的引导程序基于所述第一配置文件和下载的更新文件对所述待更新程序进行更新。
在一种实施方式中,所述装置还包括:
更新文件检查单元,用于在对所述待更新程序进行更新后,当基于所述A核对所述第二存储介质进行更新时,所述A核通过运行代码更新程序检查所述更新文件的合法性,当基于所述第一M核对所述第二存储介质进行更新时,所述第一M核通过运行所述域控制器的引导程序检查所述更新文件的合法性;
更改单元,用于当代码更新程序确定所述更新文件合法时,代码更新程序将所述目标配置文件中记录的有效程序的程序标识更改为存储有所述更新文件对应程序的程序标识,当所述域控制器的引导程序确定所述更新文件合法时,所述域控制器的引导程序将所述目标配置文件中记录的有效程序的程序标识更改为存储有所述更新文件对应程序的程序标识;
第一更新单元,还用于当代码更新程序确定所述更新文件不合法时,代码更新程序在所述待更新程序存储位置处使用所述更新文件替换所述待更新程序;
第二更新单元,还用于当所述域控制器的引导程序确定所述更新文件不合法时,所述域控制器的引导程序在所述待更新程序存储位置处使用所述更新文件替换所述待更新程序。
在一种实施方式中,所述装置还包括:
反馈单元,用于在对所述待更新程序进行更新后,向待反馈设备反馈更新结果,所述更新结果包括更新成功、更新文件异常或者待更新程序更新成功但被损坏的至少一个程序格式化后未进行更新。
在一种实施方式中,所述域控制器还包括只读存储区域,所述第一存储介质还包括备份的M核应用程序,所述A核相关程序包括A核应用程序集合、A核引导程序和A核系统程序,所述装置还包括:
第一加载单元,用于在所述A核检查所述第二存储介质中各程序是否能够读写之前,在所述只读存储区域执行预设安全启动流程成功后,将所述域控制器的引导程序加载到所述第一M核,使得所述第一M核运行所述域控制器的引导程序;
第一判断单元,用于通过所述域控制器的引导程序判断所述第二存储介质是否能够正常启动;
第二加载单元,用于当所述第二存储介质不能正常启动时,所述域控制器的引导程序加载所述第一存储介质中备份的M核应用程序;
第一启动单元,用于启动其他M核运行所述备份的M核应用程序;
运行单元,用于所述第一M核持续运行所述域控制器的引导程序,并进入等待更新状态,其中,所述其他M核包括所述至少两个M核中除了所述第一M核以外的M核;
第三加载单元,用于当所述第二存储介质能够正常启动时,所述域控制器的引导程序根据所述配置文件加载所述第二存储介质中的M核应用程序、所述A核引导程序和所述A核系统程序;
第二启动单元,用于启动所述其他M核运行所述第二存储介质中的M核应用程序,基于所述A核引导程序和所述A核系统程序启动所述A核,以便所述A核运行所述A核应用程序集合;
运行单元,还用于所述A核启动成功后,所述第一M核停止运行所述域控制器的引导程序,并与所述其他M核并行运行所述第二存储介质中的M核应用程序。
在一种实施方式中,所述装置还包括:
第二判断单元,用于所述域控制器的引导程序判断所述第二存储介质中的M核应用程序的版本是否比所述备份的M核应用程序高,以及判断所述第二存储介质中的M核应用程序是否能够正常启动;
拷贝单元,用于当判断结果均为是时,所述域控制器的引导程序将所述第二存储介质中的M核应用程序拷贝到所述备份的M核应用程序所处的存储位置,以便替换所述备份的M核应用程序的原有内容,若所述第二存储介质中的M核应用程序不能正常启动,则所述域控制器的引导程序所述备份的M核应用程序拷贝到所述第二存储介质中M核应用程序所处的存储位置,以便替换所述第二存储介质中M核应用程序的原有内容。
在一种实施方式中,第三加载单元,包括:
第二获取模块,用于当所述第二存储介质中的每种程序均包括相互备份的两份程序时,所述域控制器的引导程序获取目标配置文件中记录的目标程序中有效程序的程序标识,其中,所述目标配置文件为内容正常的一份配置文件,所述目标程序包括M核应用程序、所述A核引导程序或者所述A核系统程序;
判断模块,用于所述域控制器的引导程序判断所述程序标识所对应的程序是否异常;
加载模块,用于当所述程序标识所对应的程序正常时,加载所述目标程序;
判断模块,还用于当所述程序标识所对应的程序异常时,判断所述目标程序的另一份程序是否异常;
加载模块,还用于在所述目标程序的另一份程序正常的情况下,加载所述目标程序的另一份程序,在所述目标程序的另一份程序异常的情况下,当所述目标程序为M核应用程序时,加载所述第一存储介质中备份的M核应用程序,当所述目标程序为A核引导程序或者A核系统程序时,停止加载所述目标程序。
在一种实施方式中,所述域控制器还包括高速网络链路加密器HSE,所述第一存储介质还包括所述域控制器的引导程序的备份、所述HSE的固件及所述固件的备份、所述域控制器的启动配置数据及所述启动配置数据的备份、所述域控制器的启动自检配置数据及所述启动自检配置数据的备份。
第三方面,本发明实施例提供了一种存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现第一方面中任一实施方式所述的方法。
第四方面,本发明实施例提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现第一方面中任一项实施方式所述的方法。
由上述内容可知,本发明实施例提供的域控制器的程序处理方法,能够部署一种更安全的域控制器,即只有M核具有第一存储介质的读写权限,M核和A核均具有第二存储介质的读写权限,且第一存储介质包括域控制器的引导程序,第二存储介质包括M核应用程序、域控制器的配置文件和A核相关程序,由此可知,第二存储介质中存储着M核和A核所有涉及更新的程序,因此当需要对域控制器的程序进行更新时,只需对第二存储介质进行更新即可。具体的,A核检查第二存储介质中各程序是否能够读写,若第二存储介质中各程序均能够读写,则A核基于配置文件和下载的更新文件对第二存储介质中的待更新程序进行更新,若存在至少一个程序不能读写,则至少两个M核中第一M核执行域控制器的引导程序,通过域控制器的引导程序格式化被损坏的程序,并基于配置文件和下载的更新文件对待更新程序进行更新。由此可知,与相关技术中只能通过A核对相关程序进行更新相比,本发明实施例在第二存储介质存在异常时,可以基于第一M核执行域控制器的引导程序并对被损坏程序格式化的方式,来恢复程序更新流程,从而既可以防止在A核被攻击的情况下使用A核更新导致域控制器异常或信息泄露的风险,还可以提高第二存储介质中程序更新的可靠性。
本发明实施例还可以实现的技术效果包括:
1、本发明实施例还可以在域控制器中部署只读存储区域,第一存储介质中部署备份的M核应用程序,第二存储介质中部署A核应用程序集合、A核引导程序和A核系统程序,在启动域控制器时,只读存储区域可以执行预设安全启动流程,然后将域控制器的引导程序加载到第一M核使得第一M核运行该引导程序,域控制器的引导程序可以判断第二存储介质是否可以正常启动,若可以正常启动,则域控制器的引导程序加载第二存储介质中的程序让其他M核或者A核运行,若不能正常启动,则域控制器的引导程序可以加载第一存储介质中备份的M核应用程序供其他M核运行。由此可知,无论A核是否受到攻击使得第二存储介质发生异常,本发明实施例都可以执行M核应用程序,不会对M核应用程序的用户产生影响,并且当第二存储介质未发生异常时,还可以成功执行第二存储介质中的程序,从而提高了域控制器启动的安全性。
2、当第二存储介质中的每种程序均包括相互备份的两份程序时,本发明实施例可以先不更新配置文件记录的有效程序,而是更新与该有效程序相互备份的另一份程序,且该有效程序往往在启动后便会执行,因此更新未被运行的程序不会影响用户使用,进而达到了用户无感知的更新效果。并且在启动域控制器过程中,若一份程序存在异常,可以加载另一份程序,从而提高了域控制器启动的成功率。
3、当配置文件有两份时,可以设置其中一份配置文件为主配置文件,另一份配置文件为备用配置文件,从而域控制器在启动、运行或者更新过程中,都会先验证并加载主配置文件,只要主配置文件未异常就可以直接参考主配置文件,而无需关注备用配置文件,从而提高了配置文件的加载效率。
4、为了进一步提高更新安全性,本发明实施例还可以对更新文件进行合法性验证,只有当更新文件合法时,才会进行程序更新。
5、在更新结束后,通过向待反馈设备反馈更新结果,可以让待反馈设备的管理员及时且清楚地获知域控制器更新情况。
6、本发明实施例可以对两者的M核应用程序版本进行核对,从而使得第一存储介质和第二存储介质中存储的M核应用程序版本保持一致,进而使得最终加载的M核应用程序是最新且有效的程序。
7、通过在域控制器中部署HSE(SafeNet High Speed Encryption,高速网络链路加密器)可以进一步提高域控制器的安全性。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为相关技术中提供的一种域控制器的架构图;
图2为相关技术中提供的一种基于域控制器的车网络架构图;
图3为本发明实施例提供的一种域控制器的架构图;
图4为本发明实施例提供的一种域控制器的程序处理方法的流程示意图;
图5为本发明实施例提供的一种域控制器的程序更新方法的流程示意图;
图6为本发明实施例提供的另一种域控制器的程序处理方法的流程示意图;
图7为本发明实施例提供的一种域控制器的程序处理装置的组成框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明实施例及附图中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含的一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
图2为相关技术中提供的基于域控制器的整车网络架构图,以整车分为动力域控制器、车身域控制器、信息娱乐域控制器和辅助驾驶域控制器为例,域控制器之间通过带宽较高的总线(如以太网)形成环状网络,域控制器内部使用带宽较低的总线(如CAN(Controller Area Network,控制器局域网络)、LIN(Local Interconnect Network,局域互联网络)等)进行通信;域控制器即充当网关的角色,又是域内主要的计算和控制单元,通过域内总线获取传感器信息,发送控制指令到执行器。其中,动力域控制器控制的传感器包括传感器P1至传感器PN,执行器包括执行器P1至执行器PN,车身域控制器控制的传感器包括传感器B1至传感器BN,执行器包括执行器B1至执行器BN,信息娱乐域控制器控制的传感器包括传感器I1至传感器IN,执行器包括执行器I1至执行器IN,辅助驾驶域控制器控制的传感器包括传感器A1至传感器AN,执行器包括执行器A1至执行器AN。
图3为本发明实施例提供的一种域控制器的架构图,域控制器包括一个MCU11、第一存储介质12和第二存储介质13,第一存储介质12和第二存储介质13可以位于MCU11内,也可以位于MCU11外,所述MCU11包括至少两个M核111(图中仅示意性绘制了一个M核)、至少一个A核112,即本发明实施例中的M核和A核均为处理器,所述M核111和所述A核112均具有所述第二存储介质13的读写权限,所述M核111具有所述第一存储介质12的读写权限,所述第一存储介质12包括所述域控制器的引导程序121,所述第二存储介质13包括M核应用程序131a、所述域控制器的配置文件132a和A核相关程序。第一存储介质12可以为SPI-Flash(Serial Peripheral Interface Flash,串行接口快闪)存储器,第二存储介质13可以为EMMC-Flash存储器。引导程序是指引导操作系统的程序,域控制器的引导程序121即引导域控制器11的操作系统的程序,M核应用程序是由M核111运行的位于应用层的程序,域控制器的配置文件包括当前有效程序的程序标识等配置信息。A核相关程序是与A核112启动和运行相关的程序。
在一种实施方式中,如图3所示,所述MCU11还可以包括只读存储区域113,所述第一存储介质12还可以包括备份的M核应用程序122,所述A核相关程序包括A核应用程序集合133a、A核引导程序134a和A核系统程序135a。第二存储介质13中的每种程序均可以包括相互备份的两份程序,即第二存储介质13还包括M核应用程序131b、所述域控制器的配置文件132b、A核应用程序集合133b、A核引导程序134b和A核系统程序135b。只读存储区域113可以为Boot-ROM(无盘启动ROM),用于芯片厂商内置的启动代码,不可被更改。
在一种实施方式中,如图3所示,所述MCU11还包括HSE(即图中的HSE核)114,所述第一存储介质12还包括所述域控制器的引导程序的备份123、所述HSE的固件124及所述固件的备份125、所述域控制器的启动配置数据126及所述启动配置数据的备份127、所述域控制器的启动自检配置数据128及所述启动自检配置数据的备份129。
HSE114具有加密算法的加速器和安全启动管理功能,用于加解密运算和安全启动。域控制器的启动配置数据126可以为DCD(Device Configuration Data,设备配置数据),域控制器的启动自检配置数据127可以为ST-DCD(Self Test Device ConfigurationData,启动自检配置数据)。
图4为一种域控制器的程序处理方法的流程示意图,该方法主要应用于域控制器,该方法可以包括如下步骤:
S210:A核检查第二存储介质中各程序是否能够读写;若第二存储介质中各程序均能够读写,则执行步骤S220;若存在至少一个程序不能读写,则执行步骤S230。
第二存储介质中A核应用程序集合中包括代码更新应用程序,当启动域控制器时,会将该代码更新应用程序加载到内存(如SRAM(Static Random-Access Memory,静态随机存取存储器))中,当需要更新时,根据整车要求在更新前,检查程序更新必要的条件(比如电压在9V至16V范围内),如果更新条件具备,则A核运行该代码更新应用程序,检查第二存储介质中各程序是否能够读写。
S220:A核基于配置文件和下载的更新文件对第二存储介质中的待更新程序进行更新。
若所述第二存储介质中各程序均能够读写,则所述A核通过代码更新应用程序来实现对待更新程序的更新,即代码更新应用程序基于所述配置文件和下载的更新文件对所述第二存储介质中的待更新程序进行更新。
为了防止因第二存储介质被攻击而无法更新或者其中程序无法运行,可以采用备份的方式,使得所述第二存储介质中的每种程序均包括相互备份的两份程序,当其中一份程序发生异常时,可以使用另一份程序。
当所述第二存储介质中的每种程序均包括相互备份的两份程序时,所述A核获取目标配置文件中记录的有效程序的程序标识,并将与所述有效程序相互备份的另一份程序确定为待更新程序,其中,所述目标配置文件为内容正常的一份配置文件,所述有效程序包括所述第二存储介质中除了配置文件以外的程序中至少一项;从预设更新设备上下载所述待更新程序对应的更新文件,在所述待更新程序存储位置处使用所述更新文件替换所述待更新程序。由于有效程序一般在域控制器启动后便会运行,所以为了不影响用户使用车辆,可以先不对该有效程序更新,而只对相互备份的另一份程序进行更新。
由于域控制器的启动和更新往往都需要以配置文件为依据,所以当配置文件有两份时,为了提高加载效率,可以将其中一份配置文件作为主配置文件,另一份配置文件作为备用配置文件,域控制器每次加载配置文件时,只要主配置文件无异常,即可直接使用主配置文件。
在一种实施方式中,当两份配置文件中第一配置文件为主配置文件,第二配置文件为备份配置文件时,在所述A核获取目标配置文件中记录的有效程序的程序标识之前,若所述第一配置文件不存在异常,则将所述第一配置文件作为目标配置文件;若所述第一配置文件存在异常且所述第二配置文件不存在异常,则将所述第二配置文件的内容拷贝到所述第一配置文件内,将拷贝后的第一配置文件确定为所述目标配置文件;若所述第一配置文件和所述第二配置文件均存在异常,则将所述第一配置文件和所述第二配置文件恢复默认值,将恢复默认值后的第一配置文件确定为所述目标配置文件。
S230:至少两个M核中第一M核执行域控制器的引导程序,通过域控制器的引导程序格式化被损坏的程序,并基于配置文件和下载的更新文件对待更新程序进行更新。
若存在至少一个程序不能读写,则所述至少两个M核中第一M核执行所述域控制器的引导程序,所述域控制器的引导程序检查所述第二存储介质各分区的损坏情况,并将被损坏的分区内的程序确定为被损坏的程序,对所述被损坏的分区进行格式化;若所述第二存储介质被全盘格式化,则所述域控制器的引导程序将所述第一配置文件和所述第二配置文件恢复默认值,并基于恢复默认值后的所述第一配置文件和下载的更新文件对所述待更新程序进行更新;若所述第一配置文件被格式化且所述第二配置文件未被格式化,则所述域控制器的引导程序将所述第二配置文件中的内容拷贝到所述第一配置文件内,并基于拷贝后的所述第一配置文件和下载的更新文件对所述待更新程序进行更新;若所述第一配置文件未被格式化,则所述域控制器的引导程序基于所述第一配置文件和下载的更新文件对所述待更新程序进行更新。其中,第一M核可以为至少两个M核中任意一个M核,也可以为指定的M核。
本发明实施例提供的域控制器的程序处理方法,能够部署一种更安全的域控制器的程序处理系统,即只有M核具有第一存储介质的读写权限,M核和A核均具有第二存储介质的读写权限,且第一存储介质包括域控制器的引导程序,第二存储介质包括M核应用程序、域控制器的配置文件和A核相关程序,由此可知,第二存储介质中存储着M核和A核所有涉及更新的程序,因此当需要对域控制器的程序进行更新时,只需对第二存储介质进行更新即可。具体的,A核检查第二存储介质中各程序是否能够读写,若第二存储介质中各程序均能够读写,则A核基于配置文件和下载的更新文件对第二存储介质中的待更新程序进行更新,若存在至少一个程序不能读写,则至少两个M核中第一M核执行域控制器的引导程序,通过域控制器的引导程序格式化被损坏的程序,并基于配置文件和下载的更新文件对待更新程序进行更新。由此可知,与相关技术中只能通过A核对相关程序进行更新相比,本发明实施例在第二存储介质存在异常时,可以基于第一M核执行域控制器的引导程序并对被损坏程序格式化的方式,来恢复程序更新流程,从而既可以防止在A核被攻击的情况下使用A核更新导致域控制器异常或信息泄露的风险,还可以提高第二存储介质中程序更新的可靠性。
在一种实施方式中,为了提高更新安全性,在对所述待更新程序进行更新后,可以检查所述更新文件的合法性;若所述更新文件合法,则将所述目标配置文件中记录的有效程序的程序标识更改为存储有所述更新文件对应程序的程序标识;若所述更新文件不合法,则在所述待更新程序存储位置处使用所述有效程序替换所述更新文件。
当基于A核对第二存储介质进行更新时,可以A核通过运行代码更新应用程序来检查更新文件的合法性,若所述更新文件合法,则A核通过运行代码更新应用程序将所述目标配置文件中记录的有效程序的程序标识更改为存储有所述更新文件对应程序的程序标识;若所述更新文件不合法,则A核通过运行代码更新应用程序在所述待更新程序存储位置处使用所述有效程序替换所述更新文件。当基于第一M核对第二存储介质进行更新时,可以第一M核通过运行域控制器的引导程序来检查更新文件的合法性,若所述更新文件合法,则所述第一M核通过运行所述域控制器的引导程序将所述目标配置文件中记录的有效程序的程序标识更改为存储有所述更新文件对应程序的程序标识,若所述更新文件不合法,则所述第一M核通过运行所述域控制器的引导程序在所述待更新程序存储位置处使用所述有效程序替换所述更新文件。其中,检查更新文件的合法性包括:检查更新文件的完整性和数字签名,若更新文件完整且数据签名有效,则确定更新文件合法,否则确定更新文件不合法。
在一种实施方式中,在对所述待更新程序进行更新后,可以向待反馈设备反馈更新结果,所述更新结果包括更新成功、更新文件异常或者待更新程序更新成功但被损坏的至少一个程序格式化后未进行更新。待反馈设备包括诊断仪或者后台服务器。
在一种实施方式中,从程序更新准备到反馈更新结果的一种可实现过程如图5所示。
S310:A核先检查车辆是否做好程序更新准备,即是否满足更新必备条件,比如电压在9V至16V范围内,在做好程序更新准备后,执行后续步骤。
S320:A核检查第二存储介质中各程序是否均能够读写;若第二存储介质中各程序均能够读写,则执行步骤S331;若存在至少一个程序不能读写,则执行步骤S341。
S331:A核获取第一配置文件中记录的有效程序的程序标识,并将与所述有效程序相互备份的另一份程序确定为待更新程序。
本发明实施例以第一配置文件为主配置文件,第二配置文件为备用配置文件,当第一配置文件内容异常但第二配置文件内容正常时,也会将第二配置文件的内容拷贝到第一配置文件内。
S332:A核从预设更新设备上下载所述待更新程序对应的更新文件,在所述待更新程序存储位置处使用所述更新文件替换所述待更新程序。
S333:A核检查所述更新文件的合法性;若所述更新文件合法,则执行步骤S334;若所述更新文件不合法,则执行步骤S335。
S334:A核将所述配置文件中记录的有效程序的程序标识更改为存储有所述更新文件对应程序的程序标识。
S335:A核在所述待更新程序存储位置处使用所述有效程序替换所述更新文件,之后A核执行步骤S350。
S341:至少两个M核中第一M核执行域控制器的引导程序。
S342:第一M核通过域控制器的引导程序格式化被损坏的程序。
S343:若第二存储介质被全盘格式化,则第一M核通过域控制器的引导程序将第一配置文件和第二配置文件恢复默认值;若第一配置文件被格式化且第二配置文件未被格式化,则第一M核通过域控制器的引导程序将第二配置文件中的内容拷贝到第一配置文件内。
S344:第一M核获取第一配置文件中记录的有效程序的程序标识,并将与所述有效程序相互备份的另一份程序确定为待更新程序。
S345:第一M核从预设更新设备上下载所述待更新程序对应的更新文件,在所述待更新程序存储位置处使用所述更新文件替换所述待更新程序。
S346:第一M核检查所述更新文件的合法性;若所述更新文件合法,则执行步骤S347;若所述更新文件不合法,则执行步骤S348。
S347:第一M核将所述第一配置文件中记录的有效程序的程序标识更改为存储有所述更新文件对应程序的程序标识。
S348:第一M核在所述待更新程序存储位置处使用所述有效程序替换所述更新文件,之后第一M核执行步骤S350。
S350:向待反馈设备反馈更新结果。
为了进一步提高域控制器的启动安全性和启动成功率,本发明的另一个实施例还提供了一种域控制器的程序处理方法,该方法主要为域控制器的启动方法,如图6所示,该方法包括:
S410:在只读存储区域执行预设安全启动流程成功后,将域控制器的引导程序加载到第一M核,使得第一M核运行域控制器的引导程序。
只读存储区域执行预设安全启动流程包括根据域控制器的启动配置数据及域控制器的启动自检配置数据进行启动。
S420:域控制器的引导程序判断第二存储介质是否能够正常启动;若第二存储介质不能正常启动,则执行步骤S430;若第二存储介质能够正常启动,则执行步骤S440。
S430:域控制器的引导程序加载第一存储介质中备份的M核应用程序,并启动其他M核运行备份的M核应用程序,第一M核持续运行所述域控制器的引导程序,并进入等待更新状态。
其中,所述其他M核包括所述至少两个M核中除了所述第一M核以外的M核。
S440:域控制器的引导程序根据配置文件加载第二存储介质中的M核应用程序、A核引导程序和A核系统程序,并启动其他M核运行第二存储介质中的M核应用程序,基于A核引导程序和A核系统程序启动A核,以便A核运行A核应用程序集合,A核启动成功后,第一M核停止运行域控制器的引导程序,并与其他M核并行运行第二存储介质中的M核应用程序。
当所述第二存储介质中的每种程序均包括相互备份的两份程序时,所述域控制器的引导程序根据所述配置文件加载所述第二存储介质中的M核应用程序、所述A核引导程序和所述A核系统程序的具体实现方法包括:所述域控制器的引导程序获取目标配置文件中记录的目标程序中有效程序的程序标识,其中,所述目标配置文件为内容正常的一份配置文件,所述目标程序包括M核应用程序、所述A核引导程序或者所述A核系统程序;所述域控制器的引导程序判断所述程序标识所对应的程序是否异常;若所述程序标识所对应的程序正常,则加载所述目标程序;若所述程序标识所对应的程序异常,则判断所述目标程序的另一份程序是否异常;若所述目标程序的另一份程序正常,则加载所述目标程序的另一份程序;若所述目标程序的另一份程序异常,则当所述目标程序为M核应用程序时,加载所述第一存储介质中备份的M核应用程序,当所述目标程序为A核引导程序或者A核系统程序时,停止加载所述目标程序。
实时控制功能软件(即M核应用程序)三备份,避免实时控制功能因网络攻击而失效。M核应用程序,除了在第二存储介质中实现A、B备份存储之外,在第一存储介质中还有一个备份。在A核被攻击,导致第二存储介质异常时,本发明实施例也能保证M核正常运行实时功能,使车可以行使到维修点。
域控制器的引导程序判断所述程序标识所对应的程序是否异常包括:域控制器的引导程序检查所述程序标识所对应的程序的完整性和数字签名,若完整和数字签名有效,则确定程序标识所对应的程序正常,否则确定程序标识所对应的程序异常。
以加载M核应用程序为例,假设第一存储介质中的M核应用程序用“M核APP-Backup”表示,第二存储介质中的M核应用程序用“M核APP-A和M核APP-B”表示,那么若根据配置文件确定需要加载的是M核APP-A,但是检查M核APP-A时,发现其内容被破坏了(完整性被破坏,或者数字签名验证不通过),则检查M核APP-B内容,如果M核APP-B内容正常,则加载M核APP-B。若根据配置文件确定加载的是M核APP-B,但是检查M核APP-B时,发现其内容被破坏了,则检查M核APP-A,如果M核APP-A内容正常,则加载M核APP-A。如果M核APP-A和M核APP-B都异常,则加载M核APP-Backup。
在一种实施方式中,为了使得第一存储介质和第二存储介质中存储的M核应用程序版本保持一致,从而使得最终加载的M核应用程序是最新且有效的程序。所述域控制器的引导程序可以判断所述第二存储介质中的M核应用程序的版本是否比所述备份的M核应用程序高,以及判断所述第二存储介质中的M核应用程序是否能够正常启动;若判断结果均为是,则所述域控制器的引导程序将所述第二存储介质中的M核应用程序拷贝到所述备份的M核应用程序所处的存储位置,以便替换所述备份的M核应用程序的原有内容;若所述第二存储介质中的M核应用程序不能正常启动,则所述域控制器的引导程序所述备份的M核应用程序拷贝到所述第二存储介质中M核应用程序所处的存储位置,以便替换所述第二存储介质中M核应用程序的原有内容。
相应于上述方法实施例,本发明实施例提供了一种域控制器的程序处理装置,所述装置应用于域控制器,所述域控制器包括至少两个M核、至少一个A核、第一存储介质和第二存储介质,且所述M核和所述A核均具有所述第二存储介质的读写权限,所述M核具有所述第一存储介质的读写权限,所述第一存储介质包括所述域控制器的引导程序,所述第二存储介质包括M核应用程序、所述域控制器的配置文件和A核相关程序,如图7所示,所述装置包括:
存储介质检查单元51,用于由所述A核检查所述第二存储介质中各程序是否能够读写;
第一更新单元52,用于当所述第二存储介质中各程序均能够读写时,所述A核基于所述配置文件和下载的更新文件对所述第二存储介质中的待更新程序进行更新;
第二更新单元53,用于当存在至少一个程序不能读写时,所述至少两个M核中第一M核执行所述域控制器的引导程序,通过所述域控制器的引导程序格式化被损坏的程序,并基于所述配置文件和下载的更新文件对所述待更新程序进行更新。
在一种实施方式中,所述第一更新单元52,包括:
第一获取模块,用于当所述第二存储介质中的每种程序均包括相互备份的两份程序时,所述A核获取目标配置文件中记录的有效程序的程序标识,其中,所述目标配置文件为内容正常的一份配置文件,所述有效程序包括所述第二存储介质中除了配置文件以外的程序中至少一项;
第一确定模块,用于将与所述有效程序相互备份的另一份程序确定为待更新程序;
第一下载模块,从预设更新设备上下载所述待更新程序对应的更新文件;
第一更新模块,用于在所述待更新程序存储位置处使用所述更新文件替换所述待更新程序。
在一种实施方式中,所述第一更新单元52,还包括:
第二确定模块,用于当两份配置文件中第一配置文件为主配置文件,第二配置文件为备份配置文件时,在所述A核获取目标配置文件中记录的有效程序的程序标识之前,若所述第一配置文件不存在异常,则将所述第一配置文件作为目标配置文件;
第一拷贝模块,用于当所述第一配置文件存在异常且所述第二配置文件不存在异常时,将所述第二配置文件的内容拷贝到所述第一配置文件内;
所述第二确定模块,还用于将拷贝后的第一配置文件确定为所述目标配置文件;
第一恢复模块,用于当所述第一配置文件和所述第二配置文件均存在异常时,将所述第一配置文件和所述第二配置文件恢复默认值;
第二确定模块,还用于将恢复默认值后的第一配置文件确定为所述目标配置文件。
在一种实施方式中,第二更新单元53,包括:
检查模块,用于由所述域控制器的引导程序检查所述第二存储介质各分区的损坏情况;
格式化模块,用于将被损坏的分区内的程序确定为被损坏的程序,对所述被损坏的分区进行格式化;
第二恢复模块,用于档所述第二存储介质被全盘格式化时,所述域控制器的引导程序将所述第一配置文件和所述第二配置文件恢复默认值;
第二更新模块,用于基于恢复默认值后的所述第一配置文件和下载的更新文件对所述待更新程序进行更新;
第二拷贝模块,用于当所述第一配置文件被格式化且所述第二配置文件未被格式化时,所述域控制器的引导程序将所述第二配置文件中的内容拷贝到所述第一配置文件内;
第二更新模块,还用于基于拷贝后的所述第一配置文件和下载的更新文件对所述待更新程序进行更新;
第二更新模块,还用于当所述第一配置文件未被格式化时,所述域控制器的引导程序基于所述第一配置文件和下载的更新文件对所述待更新程序进行更新。
在一种实施方式中,所述装置还包括:
更新文件检查单元,用于在对所述待更新程序进行更新后,当基于所述A核对所述第二存储介质进行更新时,所述A核通过运行代码更新程序检查所述更新文件的合法性,当基于所述第一M核对所述第二存储介质进行更新时,所述第一M核通过运行所述域控制器的引导程序检查所述更新文件的合法性;
更改单元,用于当代码更新程序确定所述更新文件合法时,代码更新程序将所述目标配置文件中记录的有效程序的程序标识更改为存储有所述更新文件对应程序的程序标识,当所述域控制器的引导程序确定所述更新文件合法时,所述域控制器的引导程序将所述目标配置文件中记录的有效程序的程序标识更改为存储有所述更新文件对应程序的程序标识;
第一更新单元,还用于当代码更新程序确定所述更新文件不合法时,代码更新程序在所述待更新程序存储位置处使用所述更新文件替换所述待更新程序;
第二更新单元,还用于当所述域控制器的引导程序确定所述更新文件不合法时,所述域控制器的引导程序在所述待更新程序存储位置处使用所述更新文件替换所述待更新程序。
在一种实施方式中,所述装置还包括:
反馈单元,用于在对所述待更新程序进行更新后,向待反馈设备反馈更新结果,所述更新结果包括更新成功、更新文件异常或者待更新程序更新成功但被损坏的至少一个程序格式化后未进行更新。
在一种实施方式中,所述域控制器还包括只读存储区域,所述第一存储介质还包括备份的M核应用程序,所述A核相关程序包括A核应用程序集合、A核引导程序和A核系统程序,所述装置还包括:
第一加载单元,用于在所述A核检查所述第二存储介质中各程序是否能够读写之前,在所述只读存储区域执行预设安全启动流程成功后,将所述域控制器的引导程序加载到所述第一M核,使得所述第一M核运行所述域控制器的引导程序;
第一判断单元,用于通过所述域控制器的引导程序判断所述第二存储介质是否能够正常启动;
第二加载单元,用于当所述第二存储介质不能正常启动时,所述域控制器的引导程序加载所述第一存储介质中备份的M核应用程序;
第一启动单元,用于启动其他M核运行所述备份的M核应用程序;
运行单元,用于所述第一M核持续运行所述域控制器的引导程序,并进入等待更新状态,其中,所述其他M核包括所述至少两个M核中除了所述第一M核以外的M核;
第三加载单元,用于当所述第二存储介质能够正常启动时,所述域控制器的引导程序根据所述配置文件加载所述第二存储介质中的M核应用程序、所述A核引导程序和所述A核系统程序;
第二启动单元,用于启动所述其他M核运行所述第二存储介质中的M核应用程序,基于所述A核引导程序和所述A核系统程序启动所述A核,以便所述A核运行所述A核应用程序集合;
运行单元,还用于所述A核启动成功后,所述第一M核停止运行所述域控制器的引导程序,并与所述其他M核并行运行所述第二存储介质中的M核应用程序。
在一种实施方式中,所述装置还包括:
第二判断单元,用于所述域控制器的引导程序判断所述第二存储介质中的M核应用程序的版本是否比所述备份的M核应用程序高,以及判断所述第二存储介质中的M核应用程序是否能够正常启动;
拷贝单元,用于当判断结果均为是时,所述域控制器的引导程序将所述第二存储介质中的M核应用程序拷贝到所述备份的M核应用程序所处的存储位置,以便替换所述备份的M核应用程序的原有内容,若所述第二存储介质中的M核应用程序不能正常启动,则所述域控制器的引导程序所述备份的M核应用程序拷贝到所述第二存储介质中M核应用程序所处的存储位置,以便替换所述第二存储介质中M核应用程序的原有内容。
在一种实施方式中,第三加载单元,包括:
第二获取模块,用于当所述第二存储介质中的每种程序均包括相互备份的两份程序时,所述域控制器的引导程序获取目标配置文件中记录的目标程序中有效程序的程序标识,其中,所述目标配置文件为内容正常的一份配置文件,所述目标程序包括M核应用程序、所述A核引导程序或者所述A核系统程序;
判断模块,用于所述域控制器的引导程序判断所述程序标识所对应的程序是否异常;
加载模块,用于当所述程序标识所对应的程序正常时,加载所述目标程序;
判断模块,还用于当所述程序标识所对应的程序异常时,判断所述目标程序的另一份程序是否异常;
加载模块,还用于在所述目标程序的另一份程序正常的情况下,加载所述目标程序的另一份程序,在所述目标程序的另一份程序异常的情况下,当所述目标程序为M核应用程序时,加载所述第一存储介质中备份的M核应用程序,当所述目标程序为A核引导程序或者A核系统程序时,停止加载所述目标程序。
在一种实施方式中,所述域控制器还包括高速网络链路加密器HSE,所述第一存储介质还包括所述域控制器的引导程序的备份、所述HSE的固件及所述固件的备份、所述域控制器的启动配置数据及所述启动配置数据的备份、所述域控制器的启动自检配置数据及所述启动自检配置数据的备份。
基于上述方法实施例,本发明的另一实施例提供了一种存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现如上所述的方法。
基于上述方法实施例,本发明的另一实施例提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的方法。
上述系统、装置实施例与方法实施例相对应,与该方法实施例具有同样的技术效果,具体说明参见方法实施例。装置实施例是基于方法实施例得到的,具体的说明可以参见方法实施例部分,此处不再赘述。本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
Claims (10)
1.一种域控制器的程序处理方法,其特征在于,所述方法应用于域控制器,所述域控制器包括至少两个M核、至少一个A核、第一存储介质和第二存储介质,且所述M核和所述A核均具有所述第二存储介质的读写权限,所述M核具有所述第一存储介质的读写权限,所述第一存储介质包括所述域控制器的引导程序,所述第二存储介质包括M核应用程序、所述域控制器的配置文件和A核相关程序,所述方法包括:
所述A核检查所述第二存储介质中各程序是否能够读写;
若所述第二存储介质中各程序均能够读写,则所述A核基于所述配置文件和下载的更新文件对所述第二存储介质中的待更新程序进行更新;
若存在至少一个程序不能读写,则所述至少两个M核中第一M核执行所述域控制器的引导程序,通过所述域控制器的引导程序格式化被损坏的程序,并基于所述配置文件和下载的更新文件对所述待更新程序进行更新。
2.根据权利要求1所述的方法,其特征在于,当所述第二存储介质中的每种程序均包括相互备份的两份程序时,所述A核基于所述配置文件和下载的更新文件对所述第二存储介质中的待更新程序进行更新,包括:
所述A核获取目标配置文件中记录的有效程序的程序标识,并将与所述有效程序相互备份的另一份程序确定为待更新程序,其中,所述目标配置文件为内容正常的一份配置文件,所述有效程序包括所述第二存储介质中除了配置文件以外的程序中至少一项;
从预设更新设备上下载所述待更新程序对应的更新文件,在所述待更新程序存储位置处使用所述更新文件替换所述待更新程序。
3.根据权利要求2所述的方法,其特征在于,当两份配置文件中第一配置文件为主配置文件,第二配置文件为备份配置文件时,在所述A核获取目标配置文件中记录的有效程序的程序标识之前,所述方法还包括:
若所述第一配置文件不存在异常,则将所述第一配置文件作为目标配置文件;
若所述第一配置文件存在异常且所述第二配置文件不存在异常,则将所述第二配置文件的内容拷贝到所述第一配置文件内,将拷贝后的第一配置文件确定为所述目标配置文件;
若所述第一配置文件和所述第二配置文件均存在异常,则将所述第一配置文件和所述第二配置文件恢复默认值,将恢复默认值后的第一配置文件确定为所述目标配置文件。
4.根据权利要求3所述的方法,其特征在于,通过所述域控制器的引导程序格式化被损坏的程序,并基于所述配置文件和下载的更新文件对所述待更新程序进行更新,包括:
所述域控制器的引导程序检查所述第二存储介质各分区的损坏情况,并将被损坏的分区内的程序确定为被损坏的程序,对所述被损坏的分区进行格式化;
若所述第二存储介质被全盘格式化,则所述域控制器的引导程序将所述第一配置文件和所述第二配置文件恢复默认值,并基于恢复默认值后的所述第一配置文件和下载的更新文件对所述待更新程序进行更新;
若所述第一配置文件被格式化且所述第二配置文件未被格式化,则所述域控制器的引导程序将所述第二配置文件中的内容拷贝到所述第一配置文件内,并基于拷贝后的所述第一配置文件和下载的更新文件对所述待更新程序进行更新;
若所述第一配置文件未被格式化,则所述域控制器的引导程序基于所述第一配置文件和下载的更新文件对所述待更新程序进行更新。
5.根据权利要求2所述的方法,其特征在于,在对所述待更新程序进行更新后,所述方法还包括:
当基于所述A核对所述第二存储介质进行更新时,所述A核通过运行代码更新程序检查所述更新文件的合法性,若所述更新文件合法,则所述A核通过运行代码更新程序将所述目标配置文件中记录的有效程序的程序标识更改为存储有所述更新文件对应程序的程序标识,若所述更新文件不合法,则所述A核通过运行代码更新程序在所述待更新程序存储位置处使用所述有效程序替换所述更新文件;
当基于所述第一M核对所述第二存储介质进行更新时,所述第一M核通过运行所述域控制器的引导程序检查所述更新文件的合法性,若所述更新文件合法,则所述第一M核通过运行所述域控制器的引导程序将所述目标配置文件中记录的有效程序的程序标识更改为存储有所述更新文件对应程序的程序标识,若所述更新文件不合法,则所述第一M核通过运行所述域控制器的引导程序在所述待更新程序存储位置处使用所述有效程序替换所述更新文件。
6.根据权利要求1所述的方法,其特征在于,在对所述待更新程序进行更新后,所述方法还包括:
向待反馈设备反馈更新结果,所述更新结果包括更新成功、更新文件异常或者待更新程序更新成功但被损坏的至少一个程序格式化后未进行更新。
7.根据权利要求1所述的方法,其特征在于,所述域控制器还包括只读存储区域,所述第一存储介质还包括备份的M核应用程序,所述A核相关程序包括A核应用程序集合、A核引导程序和A核系统程序,在所述A核检查所述第二存储介质中各程序是否能够读写之前,所述方法还包括:
在所述只读存储区域执行预设安全启动流程成功后,将所述域控制器的引导程序加载到所述第一M核,使得所述第一M核运行所述域控制器的引导程序;
所述域控制器的引导程序判断所述第二存储介质是否能够正常启动;
若所述第二存储介质不能正常启动,则所述域控制器的引导程序加载所述第一存储介质中备份的M核应用程序,并启动其他M核运行所述备份的M核应用程序,所述第一M核持续运行所述域控制器的引导程序,并进入等待更新状态,其中,所述其他M核包括所述至少两个M核中除了所述第一M核以外的M核;
若所述第二存储介质能够正常启动,则所述域控制器的引导程序根据所述配置文件加载所述第二存储介质中的M核应用程序、所述A核引导程序和所述A核系统程序,并启动所述其他M核运行所述第二存储介质中的M核应用程序,基于所述A核引导程序和所述A核系统程序启动所述A核,以便所述A核运行所述A核应用程序集合,所述A核启动成功后,所述第一M核停止运行所述域控制器的引导程序,并与所述其他M核并行运行所述第二存储介质中的M核应用程序。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
所述域控制器的引导程序判断所述第二存储介质中的M核应用程序的版本是否比所述备份的M核应用程序高,以及判断所述第二存储介质中的M核应用程序是否能够正常启动;
若判断结果均为是,则所述域控制器的引导程序将所述第二存储介质中的M核应用程序拷贝到所述备份的M核应用程序所处的存储位置,以便替换所述备份的M核应用程序的原有内容;
若所述第二存储介质中的M核应用程序不能正常启动,则所述域控制器的引导程序所述备份的M核应用程序拷贝到所述第二存储介质中M核应用程序所处的存储位置,以便替换所述第二存储介质中M核应用程序的原有内容。
9.根据权利要求7所述的方法,其特征在于,当所述第二存储介质中的每种程序均包括相互备份的两份程序时,所述域控制器的引导程序根据所述配置文件加载所述第二存储介质中的M核应用程序、所述A核引导程序和所述A核系统程序,包括:
所述域控制器的引导程序获取目标配置文件中记录的目标程序中有效程序的程序标识,其中,所述目标配置文件为内容正常的一份配置文件,所述目标程序包括M核应用程序、所述A核引导程序或者所述A核系统程序;
所述域控制器的引导程序判断所述程序标识所对应的程序是否异常;
若所述程序标识所对应的程序正常,则加载所述目标程序;
若所述程序标识所对应的程序异常,则判断所述目标程序的另一份程序是否异常;
若所述目标程序的另一份程序正常,则加载所述目标程序的另一份程序;
若所述目标程序的另一份程序异常,则当所述目标程序为M核应用程序时,加载所述第一存储介质中备份的M核应用程序,当所述目标程序为A核引导程序或者A核系统程序时,停止加载所述目标程序。
10.根据权利要求1-9中任一项所述的方法,其特征在于,所述域控制器还包括高速网络链路加密器HSE,所述第一存储介质还包括所述域控制器的引导程序的备份、所述HSE的固件及所述固件的备份、所述域控制器的启动配置数据及所述启动配置数据的备份、所述域控制器的启动自检配置数据及所述启动自检配置数据的备份中至少一项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111591348.9A CN114489713A (zh) | 2021-12-23 | 2021-12-23 | 域控制器的程序处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111591348.9A CN114489713A (zh) | 2021-12-23 | 2021-12-23 | 域控制器的程序处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114489713A true CN114489713A (zh) | 2022-05-13 |
Family
ID=81493289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111591348.9A Pending CN114489713A (zh) | 2021-12-23 | 2021-12-23 | 域控制器的程序处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114489713A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117130825A (zh) * | 2023-01-30 | 2023-11-28 | 荣耀终端有限公司 | 防止电子设备异常运行的方法及电子设备 |
-
2021
- 2021-12-23 CN CN202111591348.9A patent/CN114489713A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117130825A (zh) * | 2023-01-30 | 2023-11-28 | 荣耀终端有限公司 | 防止电子设备异常运行的方法及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10701084B2 (en) | Reliable and secure firmware update with a dynamic validation for internet of things (IoT) devices | |
TWI839587B (zh) | 用於管理軟體更新之方法及裝置,以及非暫時性電腦可讀儲存媒體 | |
US20150149757A1 (en) | System and Method for Validating Components During a Booting Process | |
CN106775610B (zh) | 一种电子设备启动方法及一种电子设备 | |
CN111182033B (zh) | 一种交换机还原的方法和设备 | |
CN115859310B (zh) | 集成可信度量和业务安全的方法、装置及设备 | |
CN113254048A (zh) | 引导程序更新方法、装置、设备及计算机可读介质 | |
CN114489713A (zh) | 域控制器的程序处理方法 | |
WO2024056443A1 (de) | Verfahren zum überprüfen von daten in einer recheneinheit | |
CN116501573A (zh) | 固件检测方法、装置、电子设备、存储介质和程序产品 | |
US11500848B2 (en) | Method for determining the integrity of navigation data of a control unit of an automotive vehicle | |
CN113641556B (zh) | 用于保障汽车仪表稳定运行的系统、方法、装置、处理器及其计算机可读存储介质 | |
US11947690B2 (en) | Information processing device, information processing method, and computer program product | |
US20230177894A1 (en) | Information processing apparatus and information processing method | |
JP7524750B2 (ja) | 車両の制御装置、車両の制御方法及び制御プログラム | |
CN111079194A (zh) | 计算装置和用于该计算装置的运行方法 | |
US20240311247A1 (en) | Electronic control unit and storage medium storing software redundancy establishing program | |
WO2023042426A1 (ja) | 車載装置及びプログラム更新システム | |
CN115543488B (zh) | 一种多核SoC的固件启动方法及相关装置 | |
US20240211270A1 (en) | Method of reprogramming a boot area | |
JP2019068341A (ja) | 制御装置および制御方法 | |
US20230185564A1 (en) | Control device and management method | |
US20240036878A1 (en) | Method for booting an electronic control unit | |
CN117034296A (zh) | 一种系统启动方法、系统、设备及介质 | |
CN118689506A (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 |