CN115658183A - 用于控制mcu的方法及装置、电子设备、存储介质 - Google Patents
用于控制mcu的方法及装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN115658183A CN115658183A CN202211670470.XA CN202211670470A CN115658183A CN 115658183 A CN115658183 A CN 115658183A CN 202211670470 A CN202211670470 A CN 202211670470A CN 115658183 A CN115658183 A CN 115658183A
- Authority
- CN
- China
- Prior art keywords
- mcu
- preset
- kernel
- time
- controlling
- 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.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请涉及电子信息安全技术领域,公开一种用于控制MCU的方法,微控制器MCU包括多个内核。该方法包括:在接收到预设的上电指令的情况下,判断MCU是否为第一次启动,获得判断结果。在判断结果为MCU不是第一次启动的情况下,获取历史安全校验结果。在历史安全校验结果为校验通过的情况下,控制MCU中的各内核按照预设顺序进行多核分级启动。这样无需在启动时对所有待校验程序重新进行校验,降低了启动时间,而通过多核分级启动能够使得多个内核不会同时启动,降低了启动瞬时功耗。从而在减少启动时间、降低启动瞬时功耗的同时实现了MCU的安全启动。本申请还公开一种用于控制MCU的装置及电子设备、存储介质。
Description
技术领域
本申请涉及电子信息安全技术领域,例如涉及一种用于控制MCU的方法及装置、电子设备、存储介质。
背景技术
多核车载MCU上电或者唤醒后,内部处理器会执行一系列的引导启动程序和用户应用程序以完成正常启动,执行既定用户任务。一旦这些程序被非法篡改或攻击,会导致车载MCU的异常启动和工作,甚至会危害到车主的生命财产安全。而且在实际应用中,大多数原始设备制造商要求多核车载MCU启动后100ms内开始接收网络消息并对网络消息作出响应。由于多核车载MCU需要完成一系列复杂的初始化配置工作和对大量预加载程序的安全校验工作,导致安全启动的启动时间过长。
现有用于实现安全启动MCU的方法,例如:公开号为CN114764347A的中国专利文件公开了一种多核控制器的程序校验系统、校验方法及存储介质,包括可信单元、启动使能单元、校验核、以及多个启动核;所述启动核内设有第一引导程序模块和第一应用程序模块,所述第一应用程序模块包括第一应用校验程序和多个第一应用程序;所述校验核内设有第二引导程序模块和第二应用程序模块,所述第二应用程序模块包括校验单元和第二应用程序,所述校验单元用于对所述第一应用程序模块和所述第二应用程序进行校验;所述可信单元为具有一次性写入特性的存储单元,所述可信单元内存储所述第一引导程序模块和所述第二引导程序模块的基准值;所述启动使能单元的标志位由所述可信单元、所述第一引导程序模块、所述第二引导程序模块和所述校验单元进行赋值,且所述可信单元在控制器上电时能够对所述启动使能单元的标志位进行校验。
公开号为CN102043648A的中国专利文件公开了一种多核系统的启动方法,包括:对预先配置的启动指令进行校验;多个核心处理器根据校验后的启动指令同时启动。
在实现本公开实施例的过程中,发现相关技术中至少存在如下问题:
相关技术中在对多核MCU进行安全启动的情况下,通常是在启动时通过硬件电路完成所有程序的安全校验工作,在校验通过后同时启动所有内核。这样虽然能够减少安全启动时间,但由于同时启动所有内核会使得启动瞬时功耗明显增加,容易引起电源复位,从而造成启动失败。难以实现在减少启动时间的同时安全启动MCU。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
本公开实施例提供了一种用于控制MCU的方法及装置、电子设备、存储介质,以能够实现在减少启动时间的同时安全启动MCU。
在一些实施例中,用于控制MCU的方法,微控制器MCU包括多个内核,所述方法包括:在接收到预设的上电指令的情况下,判断所述MCU是否为第一次启动,获得判断结果;在所述判断结果为所述MCU不是第一次启动的情况下,获取历史安全校验结果;在所述历史安全校验结果为校验通过的情况下,控制所述MCU中的各所述内核按照预设顺序进行多核分级启动。
在一些实施例中,获取历史安全校验结果,包括:获取接收到所述上电指令的接收时间,从预设的数据库中查找出与所述接收时间最接近的第一校验时间所对应的第一备选安全校验结果。所述数据库中存储有第一校验时间与第一备选安全校验结果之间的对应关系。将所述第一备选安全校验结果确定为所述历史安全校验结果。
在一些实施例中,控制所述MCU中的各所述内核按照预设顺序进行多核分级启动,包括:按照所述预设顺序,依次对各所述内核执行第一预设操作;所述第一预设操作包括:控制所述内核的电源打开,并获取所述内核对应的第一等待时间;控制所述内核的工作频率每隔所述第一等待时间逐级增加,直到所述内核的工作频率达到所述内核的最高工作频率。
在一些实施例中,控制所述MCU中的各所述内核按照预设顺序进行多核分级启动,包括:按照所述预设顺序,依次对各所述内核执行第二预设操作;所述第二预设操作包括:控制所述内核的电源打开并等待预设时长。
在一些实施例中,所述MCU内设置有真随机数生成器;在监测到所述MCU上电的情况下,判断所述MCU是否为第一次启动,获得判断结果后,还包括:在所述判断结果为所述MCU是第一次启动的情况下,利用所述真随机数生成器生成随机密钥,并获取第一待校验程序。根据预设的安全算法利用所述随机密钥和所述第一待校验程序进行计算,获得消息认证码基准值。将所述随机密钥和所述消息认证码基准值存储到预设的存储器中。
在一些实施例中,在所述历史安全校验结果为校验通过的情况下,控制所述MCU中的各所述内核按照预设顺序进行多核分级启动后,还包括:在接收到预设的下电指令的情况下,对所述MCU进行下电安全校验,获得第二备选安全校验结果。将所述第二备选安全校验结果与对应的第二校验时间存储到预设的数据库中,所述第二校验时间为对所述MCU进行下电安全校验的时间。
在一些实施例中,在接收到预设的下电指令的情况下,对所述MCU进行下电安全校验,获得第二备选安全校验结果,包括:从预设的存储器中读取出随机密钥,并获取第二待校验程序;所述存储器中存储有随机密钥和消息认证码基准值。根据预设的安全算法利用所述随机密钥和所述第二待校验程序进行计算,获得消息认证码实际值。将所述消息认证码实际值与所述存储器中的消息认证码基准值进行对比,获得对比结果。在所述对比结果为所述存储器中存在与所述消息认证码实际值相同的消息认证码基准值的情况下,确定所述第二备选安全校验结果为校验通过;或,在所述对比结果为所述存储器中不存在与所述消息认证码实际值相同的消息认证码基准值的情况下,确定所述第二备选安全校验结果为校验失败。
在一些实施例中,所述用于控制MCU的装置,包括处理器和存储有程序指令的存储器,所述处理器被配置为在运行所述程序指令时,执行上述的用于控制MCU的方法。
在一些实施例中,所述电子设备包括:电子设备本体;上述的用于控制MCU的装置,被安装于所述电子设备本体。
在一些实施例中,所述存储介质存储有程序指令,所述程序指令在运行时,执行上述的用于控制MCU的方法。
本公开实施例提供的用于控制MCU的方法及装置、电子设备、存储介质,可以实现以下技术效果:通过在接收到预设的上电指令的情况下,判断MCU是否为第一次启动,获得判断结果。在判断结果为MCU不是第一次启动的情况下,获取历史安全校验结果。在历史安全校验结果为校验通过的情况下,控制MCU中的各内核按照预设顺序进行多核分级启动。这样,通过历史安全校验结果能够判断MCU是否为安全启动,无需在启动时对所有待校验程序重新进行校验,降低了启动时间。而通过多核分级启动能够使得多个内核不会同时启动,避免了由于多个内核同时启动导致的启动瞬时功耗增大引起电源复位。从而实现了在减少启动时间的同时安全启动MCU。
以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本申请。
附图说明
一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件示为类似的元件,附图不构成比例限制,并且其中:
图1是本公开实施例提供的第一个用于控制MCU的方法的示意图;
图2是本公开实施例提供的第二个用于控制MCU的方法的示意图;
图3是本公开实施例提供的第三个用于控制MCU的方法的示意图;
图4是本公开实施例提供的第四个用于控制MCU的方法的示意图;
图5是本公开实施例提供的一个MCU的结构示意图;
图6是本公开实施例提供的一个用于控制MCU的装置的结构示意图。
附图标记:
1:MCU;2:存储器;3:信息安全子系统;4:电源与时钟管理模块;5:内核;6:核间通信单元。
具体实施方式
为了能够更加详尽地了解本公开实施例的特点与技术内容,下面结合附图对本公开实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本公开实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或多个实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。
本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
除非另有说明,术语“多个”表示两个或两个以上。
本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,A/B表示:A或B。
术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,A和/或B,表示:A或B,或,A和B这三种关系。
术语“对应”可以指的是一种关联关系或绑定关系,A与B相对应指的是A与B之间是一种关联关系或绑定关系。
结合图1所示,本公开实施例提供一种用于控制MCU的方法,微控制器MCU包括多个内核,该方法包括:
步骤S101,电子设备在接收到预设的上电指令的情况下,判断MCU是否为第一次启动,获得判断结果。
步骤S102,电子设备在判断结果为MCU不是第一次启动的情况下,获取历史安全校验结果。
步骤S103,电子设备在历史安全校验结果为校验通过的情况下,控制MCU中的各内核按照预设顺序进行多核分级启动。
采用本公开实施例提供的用于控制MCU的方法,通过在接收到预设的上电指令的情况下,判断MCU是否为第一次启动,获得判断结果。在判断结果为MCU不是第一次启动的情况下,获取历史安全校验结果。在历史安全校验结果为校验通过的情况下,控制MCU中的各内核按照预设顺序进行多核分级启动。这样,通过历史安全校验结果能够判断MCU是否为安全启动,无需在启动时对所有待校验程序重新进行校验,降低了启动时间。而通过多核分级启动能够使得多个内核不会同时启动,避免了由于多个内核同时启动导致的启动瞬时功耗增大引起电源复位。从而实现了在减少启动时间的同时安全启动MCU。
在一些实施例中,MCU为多核车载MCU。
进一步的,电子设备获取历史安全校验结果,包括:电子设备获取接收到上电指令的接收时间。从预设的数据库中查找出与接收时间最接近的第一校验时间所对应的第一备选安全校验结果。数据库中存储有第一校验时间与第一备选安全校验结果之间的对应关系。将第一备选安全校验结果确定为历史安全校验结果。在一些实施例中,预设的数据库为MCU中的存储器。这样,通过将MCU在本次启动前时间最接近的一次历史安全校验结果进行判断,不需要对大量待校验程序的进行安全校验,能够显著减少MCU的安全启动时间。
结合图2所示,本公开实施例提供一种用于控制MCU的方法,微控制器MCU包括多个内核,该方法包括:
步骤S201,电子设备在接收到预设的上电指令的情况下,判断MCU是否为第一次启动,获得判断结果。
步骤S202,电子设备在判断结果为MCU不是第一次启动的情况下,获取接收到上电指令的接收时间。
步骤S203,电子设备从预设的数据库中查找出与接收时间最接近的第一校验时间所对应的第一备选安全校验结果。数据库中存储有第一校验时间与第一备选安全校验结果之间的对应关系。
步骤S204,电子设备将第一备选安全校验结果确定为历史安全校验结果。
步骤S205,电子设备在历史安全校验结果为校验通过的情况下,控制MCU中的各内核按照预设顺序进行多核分级启动。
采用本公开实施例提供的用于控制MCU的方法,通过历史安全校验结果能够判断MCU是否为安全启动,无需在启动时对所有待校验程序重新进行校验,降低了启动时间。而通过多核分级启动能够使得多个内核不会同时启动,避免了由于多个内核同时启动导致的启动瞬时功耗增大引起电源复位。从而实现了在减少启动时间的同时安全启动MCU。
进一步的,电子设备控制MCU中的各内核按照预设顺序进行多核分级启动,包括:电子设备按照预设顺序,依次对各内核执行第一预设操作。第一预设操作包括:控制内核的电源打开,并获取内核对应的第一等待时间;控制内核的工作频率每隔第一等待时间逐级增加,直到内核的工作频率达到内核的最高工作频率。这样,通过按照预设顺序在MCU中的每个内核达到其最高工作频率后再启动下一个,降低了启动瞬时功耗,能够避免由于MCU中每个内核功耗都较大时,同时启动多个内核造成的瞬时启动功耗增大引起的电源复位。从而降低MCU启动失败的概率,进而实现在减少启动时间的同时安全启动MCU。在一些实施例中,第一等待时间为100微秒。
进一步的,电子设备获取内核对应的第一等待时间,包括:电子设备从预设的数据库中匹配出与内核对应的第一等待时间。预设的数据库中存储有内核与第一等待时间之间的对应关系。
进一步的,电子设备控制内核的工作频率每隔第一等待时间逐级增加,直到内核的工作频率达到内核的最高工作频率,包括:电子设备控制内核的工作频率每隔第一等待时间增加预设数值,直到内核的工作频率达到内核的最高工作频率。
在一些实施例中,MCU中设置有3个内核。预设顺序为第一内核、第二内核和第三内核。电子设备在历史安全校验结果为校验通过的情况下,控制第一内核的电源打开,从预设的数据库中匹配出第一内核对应的第一等待时间。控制第一内核的工作频率每隔第一等待时间逐级增加,直到第一内核的工作频率达到第一内核的最高工作频率。在第一内核的工作频率达到第一内核的最高工作频率后,控制第二内核的电源打开,从预设的数据库中匹配出第二内核对应的第一等待时间。控制第二内核的工作频率每隔第一等待时间逐级增加,直到第二内核的工作频率达到第二内核的最高工作频率。在第二内核的工作频率达到第二内核的最高工作频率后,控制第三内核的电源打开,从预设的数据库中匹配出第三内核对应的第一等待时间。控制第三内核的工作频率每隔第一等待时间逐级增加,直到第三内核的工作频率达到第三内核的最高工作频率。直到所有内核均达到其最高工作频率后,确定MCU安全启动完成。
进一步的,电子设备控制MCU中的各内核按照预设顺序进行多核分级启动后,还包括:电子设备在各内核均达到其最高工作频率的情况下,确定MCU安全启动完成。
进一步的,电子设备控制MCU中的各内核按照预设顺序进行多核分级启动,包括:电子设备按照预设顺序,依次对各内核执行第二预设操作;第二预设操作包括:控制内核的电源打开并等待预设时长。这样,无需在内核达到其最高工作频率后再启动下一个内核就能够实现多核分级启动,有效缩短启动时间的同时降低了启动瞬时功耗,避免了同时启动多个内核造成的瞬时启动功耗增大引起的电源复位。实现了在减少启动时间的同时安全启动MCU。
进一步的,电子设备控制内核的电源打开并等待预设时长后,还包括:电子设备获取内核对应的第二等待时间;控制内核的工作频率每隔第二等待时间逐级增加,直到内核的工作频率达到内核的最高工作频率。在所有内核均达到其最高工作频率后,确定MCU安全启动完成。
进一步的,电子设备MCU内设置有真随机数生成器;在监测到MCU上电的情况下,判断MCU是否为第一次启动,获得判断结果后,还包括:电子设备在判断结果为MCU是第一次启动的情况下,利用真随机数生成器生成随机密钥,并获取第一待校验程序。根据预设的安全算法利用随机密钥和第一待校验程序进行计算,获得消息认证码基准值。将随机密钥和消息认证码基准值存储到预设的存储器中。这样,在MCU是第一次启动时,通过生成随机密钥和消息认证码基准值并进行存储,便于之后在启动MCU时进行安全校验。同时,通过真随机数生成器生成随机密钥,不需要MCU在出厂前进行密钥的外部植入,能够解决密钥易泄露,且植入流程繁杂的问题。能够降低安全风险。
在一些实施例中,预设的安全算法包括但不限于CMAC(Cipher-based MessageAuthentication Code,基于分组加密的消息认证码)算法、HMAC(Hash-based MessageAuthentication Code,基于散列算法的消息认证码)算法。
进一步的,电子设备获取第一待校验程序,包括:电子设备从预设的存储器中读取出起止地址;将起止地址内的代码程序确定为第一待校验程序。
可选地,电子设备将随机密钥和消息认证码基准值存储到预设的存储器中后,还包括:电子设备控制MCU中的各内核按照预设顺序进行多核分级启动;在接收到预设的下电指令的情况下,对MCU进行下电安全校验,获得第二备选安全校验结果;将第二备选安全校验结果与对应的第二校验时间存储到预设的数据库中,第二校验时间为对MCU进行下电安全校验的时间。这样,在MCU为第一次启动的情况下,直接控制MCU进行多核分级启动,并在下电时进行下电安全校验,便于下一次启动时直接利用上一次的安全校验结果进行判断。这样能够缩短MCU的启动时间。
结合图3所示,本公开实施例提供一种用于控制MCU的方法,微控制器MCU包括多个内核,该方法包括:
步骤S301,电子设备在接收到预设的上电指令的情况下,判断MCU是否为第一次启动,获得判断结果。在判断结果为MCU不是第一次启动的情况下,执行步骤S302;或,在判断结果为MCU是第一次启动的情况下,执行步骤S307。
步骤S302,电子设备获取历史安全校验结果。然后执行步骤S303。
步骤S303,电子设备在历史安全校验结果为校验通过的情况下,控制MCU中的各内核按照预设顺序进行多核分级启动。然后执行步骤S304。
步骤S304,电子设备在接收到预设的下电指令的情况下,对MCU进行下电安全校验,获得第二备选安全校验结果。然后执行步骤S305。
步骤S305,电子设备获取MCU进行下电安全校验的第二校验时间。然后执行步骤S306。
步骤S306,电子设备将第二备选安全校验结果和第二校验时间进行存储。然后结束。
步骤S307,电子设备利用真随机数生成器生成随机密钥,并获取第一待校验程序。
步骤S308,电子设备根据预设的安全算法利用随机密钥和第一待校验程序进行计算,获得消息认证码基准值。
步骤S309,电子设备将随机密钥和消息认证码基准值存储到预设的存储器中。
采用本公开实施例提供的用于控制MCU的方法,通过历史安全校验结果能够判断MCU是否为安全启动,无需在启动时对所有待校验程序重新进行校验,降低了启动时间。而通过多核分级启动能够使得多个内核不会同时启动,避免了由于多个内核同时启动导致的启动瞬时功耗增大引起电源复位。从而实现了在减少启动时间、降低启动瞬时功耗的同时安全启动MCU。
进一步的,电子设备在历史安全校验结果为校验通过的情况下,控制MCU中的各内核按照预设顺序进行多核分级启动后,还包括:电子设备在接收到预设的下电指令的情况下,对MCU进行下电安全校验,获得第二备选安全校验结果。将第二备选安全校验结果与对应的第二校验时间存储到预设的数据库中,第二校验时间为对MCU进行下电安全校验的时间。这样,通过在MCU下电时进行安全校验,并保存第二备选安全校验结果。便于在下一次启动MCU时直接根据存储的安全校验结果进行判断,无需在启动时进行安全校验,能够有效节省MCU的启动时间。
进一步的,电子设备将第二备选安全校验结果与对应的第二校验时间存储到预设的数据库中,包括:电子设备将第二备选安全校验结果作为第一备选安全校验结果,将第二备选安全校验结果对应的第二校验时间作为第一备选安全校验结果对应的第一校验时间,将第一备选安全校验结果和第一校验时间存储到预设的数据库中。
结合图4所示,本公开实施例提供一种用于控制MCU的方法,微控制器MCU包括多个内核,该方法包括:
步骤S401,电子设备在接收到预设的上电指令的情况下,判断MCU是否为第一次启动,获得判断结果。
步骤S402,电子设备在判断结果为MCU不是第一次启动的情况下,获取历史安全校验结果。
步骤S403,电子设备在历史安全校验结果为校验通过的情况下,控制MCU中的各内核按照预设顺序进行多核分级启动。
步骤S404,电子设备在接收到预设的下电指令的情况下,对MCU进行下电安全校验,获得第二备选安全校验结果。
步骤S405,电子设备将第二备选安全校验结果与对应的第二校验时间存储到预设的数据库中。第二校验时间为对MCU进行下电安全校验的时间。
采用本公开实施例提供的用于控制MCU的方法,通过历史安全校验结果能够判断MCU是否为安全启动,无需在启动时对所有待校验程序重新进行校验,降低了启动时间。而通过多核分级启动能够使得多个内核不会同时启动,避免了由于多个内核同时启动导致的启动瞬时功耗增大引起电源复位。从而实现了在减少启动时间、降低启动瞬时功耗的同时安全启动MCU。并且在MCU下电时进行下电安全校验,便于在下一次启动MCU时直接根据存储的安全校验结果进行判断,无需在启动时进行安全校验,能够有效节省MCU的启动时间。
进一步的,电子设备在接收到预设的下电指令的情况下,对MCU进行下电安全校验,获得第二备选安全校验结果,包括:电子设备从预设的存储器中读取出随机密钥,并获取第二待校验程序;存储器中存储有随机密钥和消息认证码基准值。根据预设的安全算法利用随机密钥和第二待校验程序进行计算,获得消息认证码实际值。将消息认证码实际值与存储器中的消息认证码基准值进行对比,获得对比结果。在对比结果为存储器中存在与消息认证码实际值相同的消息认证码基准值的情况下,确定第二备选安全校验结果为校验通过;或,在对比结果为存储器中不存在与消息认证码实际值相同的消息认证码基准值的情况下,确定第二备选安全校验结果为校验失败。这样,通过在MCU下电时进行下电安全校验,待下次MCU重新上电后,直接判断前一次MCU下电前的安全校验结果,从而避免本次启动过程中大量的数据运算,达到降低启动时间的目的。
进一步的,电子设备获取第二待校验程序,包括:电子设备从预设的存储器中读取出起止地址;将起止地址内的代码程序确定为第二待校验程序。
结合图5所示,图5是本公开实施例提供的一个MCU的结构示意图。其中,MCU1内设置有存储器2、信息安全子系统3、电源与时钟管理模块4、多个内核5和核间通信单元6。其中,信息安全子系统包括信息安全核心、硬件算法加速引擎和真随机数生成器。信息安全子系统用于实现“安全校验”和“多核分级启动”。在一些实施例中,信息安全子系统通过执行存储器中的安全启动代码实现“安全校验”和“多核分级启动”。存储器用于存储信息安全核心的安全启动代码、安全算法库、内核的引导启动程序和用户应用程序、待校验程序的消息认证码基准值、随机密钥、待校验程序的起止地址、历史安全校验结果和备选安全校验结果。在一些实施例中,消息认证码基准值为CMAC(Cipher Block Chaining-MessageAuthentication Code,基于分组加密的消息认证码)基准值。在一些实施例中,存储器为非易失存储器、一次性编程存储器、只读存储器或静态随机存取存储器。硬件算法加速引擎用于加速安全算法的计算。真随机数生成器用于在MCU第一次上电的情况下生成随机密钥。电源与时钟管理模块用于进行各内核的电源控制和时钟控制。信息安全子系统中的信息安全核心可直接对电源与时钟管理模块进行配置,实现各内核的上下电以及工作时钟切换。核间通信单元用于各内核之间进行信息交互,也用于信息安全核心与各内核的信息共享。
在一些实施例中,MCU为多核车载MCU。在电子设备接收到预设的上电指令的情况下,判断MCU是否为第一次启动。在MCU为第一次启动的情况下,通过信息安全核心控制真随机数生成器产生随机密钥。通过硬件算法加速引擎根据预设的安全算法利用随机密钥和第一待校验程序进行计算,获得消息认证码基准值。并将随机密钥和消息认证码基准值存储到存储器中。然后在接收到预设的下电指令的情况下,对MCU进行安全校验获得第二备选安全校验结果和第二校验时间,并将第二备选安全校验结果和第二校验时间保存到存储器中。
在一些实施例中,MCU为多核车载MCU。在电子设备接收到预设的上电指令的情况下,判断MCU是否为第一次启动。在MCU不是第一次启动的情况下,电子设备通过信息安全核心获取历史安全校验结果。在一些实施例中,历史安全校验结果为上一次下电时的安全校验结果。在历史安全校验结果为校验通过的情况下,通过电源与时钟管理模块控制MCU中的各内核按照预设顺序进行多核分级启动。直到所有内核都启动完成,确定本次安全启动完成。信息安全核心通过核间通信单元通知各处理器本次安全启动完成,各内核跳转到存储器的对应区域,执行相应的已通过安全校验的启动程序和应用程序。各内核在执行完成后,通过核间通信单元通知信息安全核心。信息安全核心收到此通知后,在接收到预设的下电指令的情况下,对第二待校验程序进行安全校验获得第二备选安全校验结果,并保存本次第二备选安全校验结果到存储器中。同理,以后在每一次MCU上电后,都通过判断前一次历史安全校验结果实现安全启动,在每一次MCU下电前,进行安全校验并保存安全校验结果,以备下一次设备上电时使用。在历史安全校验结果为校验失败的情况下,确定MCU安全启动失败,控制MCU进入睡眠状态或直接下电。
在一些实施例中,在控制MCU中的各内核按照预设顺序进行多核分级启动时,通过电源与时钟管理模块控制各内核的电源开关和工作频率。例如MCU中包括第一内核、第二内核和第三内核。信息安全核心首先控制第一内核的电源打开,然后控制第一内核的工作作频率每间隔一段时间逐级增加至最高工作频率。在第一内核的工作作频率增加至最高工作频率的情况下,确定第一内核正常启动。对于其他内核,采用同样的方法进行电源和工作时钟启动管理。等到所有内核都正常启动后,信息安全核心通过核间通信单元通知各内核。各内核在收到通知后,将同步执行后续已通过安全校验的引导启动程序和用户应用程序。
结合图6所示,本公开实施例提供一种用于控制MCU的装置600,该装置包括处理器(processor)604和存储器(memory)601。可选地,该装置还可以包括通信接口(Communication Interface)602和总线603。其中,处理器604、通信接口602、存储器601可以通过总线603完成相互间的通信。通信接口602可以用于信息传输。处理器604可以调用存储器601中的逻辑指令,以执行上述实施例的用于控制MCU的方法。
采用本公开实施例提供的用于控制MCU的装置,通过在接收到预设的上电指令的情况下,判断MCU是否为第一次启动,获得判断结果。在判断结果为MCU不是第一次启动的情况下,获取历史安全校验结果。在历史安全校验结果为校验通过的情况下,控制MCU中的各内核按照预设顺序进行多核分级启动。这样,通过历史安全校验结果能够判断MCU是否为安全启动,无需在启动时对所有待校验程序重新进行校验,降低了启动时间。而通过多核分级启动能够使得多个内核不会同时启动,避免了由于多个内核同时启动导致的启动瞬时功耗增大引起电源复位。从而实现了在减少启动时间的同时安全启动MCU。
此外,上述的存储器601中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器601作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令/模块。处理器604通过运行存储在存储器601中的程序指令/模块,从而执行功能应用以及数据处理,即实现上述实施例中用于控制MCU的方法。
存储器601可包括存储程序区和存储数据区,其中,存储程序区可存储操作至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器601可以包括高速随机存取存储器,还可以包括非易失性存储器。
本公开实施例提供了一种电子设备,包括:电子设备本体,以及上述的用于控制MCU的装置600,用于控制MCU的装置600被安装于所述电子设备本体。这里所表述的安装关系,并不仅限于在电子设备内部放置,还包括了与电子设备的其他元器件的安装连接,包括但不限于物理连接、电性连接或者信号传输连接等。本领域技术人员可以理解的是,用于控制MCU的装置可以适配于可行的电子设备本体,进而实现其他可行的实施例。
可选地,电子设备为MCU。
采用本公开实施例提供的电子设备,通过在接收到预设的上电指令的情况下,判断MCU是否为第一次启动,获得判断结果。在判断结果为MCU不是第一次启动的情况下,获取历史安全校验结果。在历史安全校验结果为校验通过的情况下,控制MCU中的各内核按照预设顺序进行多核分级启动。这样,通过历史安全校验结果能够判断MCU是否为安全启动,无需在启动时对所有待校验程序重新进行校验,降低了启动时间。而通过多核分级启动能够使得多个内核不会同时启动,避免了由于多个内核同时启动导致的启动瞬时功耗增大引起电源复位。从而实现了在减少启动时间的同时安全启动MCU。
本公开实施例提供了一种存储介质,存储有程序指令,程序指令在运行时,执行上述用于控制MCU的方法。
本公开实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述用于控制MCU的方法。
上述的计算机可读存储介质可以是暂态计算机可读存储介质,也可以是非暂态计算机可读存储介质。
本公开实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括一个或多个指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开实施例所述方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施例的部分和特征可以被包括在或替换其他实施例的部分和特征。而且,本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。
本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。所述技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。所述技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本文所披露的实施例中,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例。另外,在本公开实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
附图中的流程图和框图显示了根据本公开实施例的方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。在附图中的流程图和框图所对应的描述中,不同的方框所对应的操作或步骤也可以以不同于描述中所披露的顺序发生,有时不同的操作或步骤之间不存在特定的顺序。例如,两个连续的操作或步骤实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
Claims (10)
1.一种用于控制MCU的方法,其特征在于,微控制器MCU包括多个内核,所述方法包括:
在接收到预设的上电指令的情况下,判断所述MCU是否为第一次启动,获得判断结果;
在所述判断结果为所述MCU不是第一次启动的情况下,获取历史安全校验结果;
在所述历史安全校验结果为校验通过的情况下,控制所述MCU中的各所述内核按照预设顺序进行多核分级启动。
2.根据权利要求1所述的方法,其特征在于,获取历史安全校验结果,包括:
获取接收到所述上电指令的接收时间;
从预设的数据库中查找出与所述接收时间最接近的第一校验时间所对应的第一备选安全校验结果;所述数据库中存储有第一校验时间与第一备选安全校验结果之间的对应关系;
将所述第一备选安全校验结果确定为所述历史安全校验结果。
3.根据权利要求1所述的方法,其特征在于,控制所述MCU中的各所述内核按照预设顺序进行多核分级启动,包括:
按照所述预设顺序,依次对各所述内核执行第一预设操作;所述第一预设操作包括:控制所述内核的电源打开,并获取所述内核对应的第一等待时间;控制所述内核的工作频率每隔所述第一等待时间逐级增加,直到所述内核的工作频率达到所述内核的最高工作频率。
4.根据权利要求1所述的方法,其特征在于,控制所述MCU中的各所述内核按照预设顺序进行多核分级启动,包括:
按照所述预设顺序,依次对各所述内核执行第二预设操作;所述第二预设操作包括:控制所述内核的电源打开并等待预设时长。
5.根据权利要求1所述的方法,其特征在于,所述MCU内设置有真随机数生成器;在所述判断结果为所述MCU是第一次启动的情况下,利用所述真随机数生成器生成随机密钥,并获取第一待校验程序;
根据预设的安全算法利用所述随机密钥和所述第一待校验程序进行计算,获得消息认证码基准值;
将所述随机密钥和所述消息认证码基准值存储到预设的存储器中。
6.根据权利要求5所述的方法,其特征在于,在所述历史安全校验结果为校验通过的情况下,控制所述MCU中的各所述内核按照预设顺序进行多核分级启动后,还包括:
在接收到预设的下电指令的情况下,对所述MCU进行下电安全校验,获得第二备选安全校验结果;
将所述第二备选安全校验结果与对应的第二校验时间存储到预设的数据库中,所述第二校验时间为对所述MCU进行下电安全校验的时间。
7.根据权利要求6所述的方法,其特征在于,在接收到预设的下电指令的情况下,对所述MCU进行下电安全校验,获得第二备选安全校验结果,包括:
从预设的存储器中读取出随机密钥,并获取第二待校验程序;所述存储器中存储有随机密钥和消息认证码基准值;
根据预设的安全算法利用所述随机密钥和所述第二待校验程序进行计算,获得消息认证码实际值;
将所述消息认证码实际值与所述存储器中的消息认证码基准值进行对比,获得对比结果;
在所述对比结果为所述存储器中存在与所述消息认证码实际值相同的消息认证码基准值的情况下,确定所述第二备选安全校验结果为校验通过;或,
在所述对比结果为所述存储器中不存在与所述消息认证码实际值相同的消息认证码基准值的情况下,确定所述第二备选安全校验结果为校验失败。
8.一种用于控制MCU的装置,包括处理器和存储有程序指令的存储器,其特征在于,所述处理器被配置为在运行所述程序指令时,执行如权利要求1至7任一项所述的用于控制MCU的方法。
9.一种电子设备,其特征在于,包括:
电子设备本体;
如权利要求8所述的用于控制MCU的装置,被安装于所述电子设备本体。
10.一种存储介质,存储有程序指令,其特征在于,所述程序指令在运行时,执行如权利要求1至7任一项所述的用于控制MCU的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211670470.XA CN115658183B (zh) | 2022-12-26 | 2022-12-26 | 用于控制mcu的方法及装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211670470.XA CN115658183B (zh) | 2022-12-26 | 2022-12-26 | 用于控制mcu的方法及装置、电子设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115658183A true CN115658183A (zh) | 2023-01-31 |
CN115658183B CN115658183B (zh) | 2023-03-31 |
Family
ID=85023110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211670470.XA Active CN115658183B (zh) | 2022-12-26 | 2022-12-26 | 用于控制mcu的方法及装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115658183B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101944051A (zh) * | 2010-09-29 | 2011-01-12 | 山东大学 | 片上多备份的高可靠嵌入式系统固件及其工作方法 |
CN104750510A (zh) * | 2013-12-30 | 2015-07-01 | 深圳市中兴微电子技术有限公司 | 一种芯片启动方法及多核处理器芯片 |
CN110109737A (zh) * | 2019-03-18 | 2019-08-09 | 平安普惠企业管理有限公司 | 应用程序的启动方法、装置、计算机设备及存储介质 |
CN112069502A (zh) * | 2020-07-22 | 2020-12-11 | 延锋伟世通电子科技(上海)有限公司 | 一种用于车载mcu的安全启动方法及装置 |
CN112446033A (zh) * | 2020-12-11 | 2021-03-05 | 中国科学院信息工程研究所 | 软件可信启动方法、装置、电子设备和存储介质 |
WO2021254003A1 (zh) * | 2020-06-19 | 2021-12-23 | 北京集创北方科技股份有限公司 | 芯片启动控制方法、芯片、显示面板及电子设备 |
CN114721493A (zh) * | 2022-06-10 | 2022-07-08 | 深圳市航顺芯片技术研发有限公司 | 芯片启动方法、计算机设备及可读存储介质 |
CN114764347A (zh) * | 2022-04-14 | 2022-07-19 | 重庆长安汽车股份有限公司 | 一种多核控制器的程序校验系统、校验方法及存储介质 |
-
2022
- 2022-12-26 CN CN202211670470.XA patent/CN115658183B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101944051A (zh) * | 2010-09-29 | 2011-01-12 | 山东大学 | 片上多备份的高可靠嵌入式系统固件及其工作方法 |
CN104750510A (zh) * | 2013-12-30 | 2015-07-01 | 深圳市中兴微电子技术有限公司 | 一种芯片启动方法及多核处理器芯片 |
CN110109737A (zh) * | 2019-03-18 | 2019-08-09 | 平安普惠企业管理有限公司 | 应用程序的启动方法、装置、计算机设备及存储介质 |
WO2021254003A1 (zh) * | 2020-06-19 | 2021-12-23 | 北京集创北方科技股份有限公司 | 芯片启动控制方法、芯片、显示面板及电子设备 |
CN112069502A (zh) * | 2020-07-22 | 2020-12-11 | 延锋伟世通电子科技(上海)有限公司 | 一种用于车载mcu的安全启动方法及装置 |
CN112446033A (zh) * | 2020-12-11 | 2021-03-05 | 中国科学院信息工程研究所 | 软件可信启动方法、装置、电子设备和存储介质 |
CN114764347A (zh) * | 2022-04-14 | 2022-07-19 | 重庆长安汽车股份有限公司 | 一种多核控制器的程序校验系统、校验方法及存储介质 |
CN114721493A (zh) * | 2022-06-10 | 2022-07-08 | 深圳市航顺芯片技术研发有限公司 | 芯片启动方法、计算机设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115658183B (zh) | 2023-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3522059B1 (en) | Perform security action based on inventory comparison | |
US10489612B2 (en) | Memory controller to verify authenticity of data | |
EP0486304B1 (en) | Initialising computer systems | |
CN104011688A (zh) | 控制装置以及处理监控方法 | |
CN100504778C (zh) | 计算机开启系统和开启方法 | |
CN113064643B (zh) | 一种即时生效的修改bios设定值的方法、系统及介质 | |
CN102567135A (zh) | 刷新/恢复方法和一种电子设备 | |
CN108804952B (zh) | 一种服务器开机控制装置及控制方法 | |
CN111284450B (zh) | 用于增强车辆控制器的安全性的方法和设备 | |
CN108304140B (zh) | 闪存数据管理方法、装置及微控制器 | |
CN113608930A (zh) | 系统芯片和电子设备 | |
CN115658183B (zh) | 用于控制mcu的方法及装置、电子设备、存储介质 | |
CN111694787A (zh) | 一种芯片启动的方法、网络设备和机器可读存储介质 | |
CN114547618A (zh) | 基于Linux系统的安全启动方法、装置、电子设备及存储介质 | |
CN114756905B (zh) | 主板防伪及bios防护实现方法、装置和控制主板 | |
CN113626792B (zh) | PCIe Switch固件安全执行方法、装置、终端及存储介质 | |
CN106650455B (zh) | 一种系统安全启动方法及装置 | |
CN112307481B (zh) | 一种系统可信启动方法、电子设备及计算机可读存储介质 | |
CN104216797B (zh) | 嵌入式系统设定值设定系统、方法及电子装置 | |
CN111488250A (zh) | 高密度多节点服务器测试方法、系统、终端及存储介质 | |
CN111291363B (zh) | 通信模组运行处理方法、装置、通信模组及计算机可读介质 | |
CN116340957B (zh) | 程序启动方法、装置、服务器及非易失性存储介质 | |
CN117610089B (zh) | 多核异构芯片的加密方法、系统、设备和存储介质 | |
CN115795490B (zh) | 可信启动方法、装置、工控主机及可读存储介质 | |
CN110659079B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |