CN116700061A - 一种基于安全启动技术的快速启动方法 - Google Patents

一种基于安全启动技术的快速启动方法 Download PDF

Info

Publication number
CN116700061A
CN116700061A CN202310388578.8A CN202310388578A CN116700061A CN 116700061 A CN116700061 A CN 116700061A CN 202310388578 A CN202310388578 A CN 202310388578A CN 116700061 A CN116700061 A CN 116700061A
Authority
CN
China
Prior art keywords
boot2
quick start
starting
executing
quick
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
Application number
CN202310388578.8A
Other languages
English (en)
Other versions
CN116700061B (zh
Inventor
徐智
熊平海
赵焕宇
宋糠
宋雪冬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Weichen Information Technology Co ltd
Original Assignee
Guangdong Weichen Information Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangdong Weichen Information Technology Co ltd filed Critical Guangdong Weichen Information Technology Co ltd
Priority to CN202310388578.8A priority Critical patent/CN116700061B/zh
Priority claimed from CN202310388578.8A external-priority patent/CN116700061B/zh
Publication of CN116700061A publication Critical patent/CN116700061A/zh
Application granted granted Critical
Publication of CN116700061B publication Critical patent/CN116700061B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0423Input/output
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24215Scada supervisory control and data acquisition

Abstract

本发明涉及汽车系统技术领域,涉及一种基于安全启动技术的快速启动方法,包括:A、MCU上电复位,运行BOOT1;B、BOOT1读取快速启动标志位;如果需要执行快速启动,则执行步骤C;反之,则执行步骤D;C、BOOT1只需要校验用户固件;如果校验通过,则运行用户固件,安全启动成功;反之,则执行步骤F;D、BOOT1校验BOOT2;如果校验通过,则执行步骤E;如果不通过,则执行步骤F;E、运行BOOT2,等待非安全启动的功能运行完成;完成后,BOOT2校验用户固件;如果校验通过,安全启动成功;如果不通过,则执行步骤F;F、安全启动失败,进行异常处理。本发明能较佳的实现快速启动。

Description

一种基于安全启动技术的快速启动方法
技术领域
本发明涉及汽车系统技术领域,具体地说,涉及一种基于安全启动技术的快速启动方法。
背景技术
汽车微控制器负责控制汽车内所有的电子系统,包括多媒体、音响、导航、悬挂等所有承载着汽车系统中的各种运算与控制功能,并且可以平衡各个电子系统的工作,因此MCU的安全至关重要,而与此同时在保证安全的前提下不影响用户的使用体验增加MCU的运行效率缩短开机时间,需要在安全和效率之间寻找的一个有效的平衡。
一般,快速安全启动需要运行环境的支持:硬件层面,其运行在MCU;软件层面,其运行在二级BOOT。对于二级BOOT的快速安全启动,介绍如下:
对于集成BootLoader功能的MCU,BootLoader用以引导程序的启动。引导功能主要包括:是否需要跳转固件、需要跳转到哪个固件以及跳转到被选中的固件。
一般的BootLoader方案,其MCU包含两个固件区域,一是BootLoader区,二是用户固件区(以下简称APP区)。基于安全考虑,需要为BootLoader引入安全启动功能。
安全启动用于保证APP区的安全性。加入安全启动功能的BootLoader方案其执行流程为:MCU上电复位后运行BootLoader,然后BootLoader校验APP,如果校验通过,则允许BootLoader跳转至APP,安全启动成功;反之,安全启动失败。
BootLoader一般会被固化在硬件上导致其重新刷写不易,并且BootLoader功能过多也会导致其故障率提高。基于以上两点考虑,BootLoader一般不会被设计的过于复杂,用以减少故障率,从而尽量避免重新刷写BootLoader。
为了在增强BootLoader功能性的同时又不提高其故障率,可以选择采用二级BOOT的方案。二级BOOT的方案分为三个固件区域:一级BOOT区(简称BOOT1)、二级BOOT区(简称BOOT2)、用户固件区。将这些区域设置为如下:
BOOT1:设置为只读属性,用于防止恶意刷写,保证其安全性;并且其足够简单,只具备较为基础的功能,可大大减少其出现故障的概率。
BOOT2:可读可写,可承载更多的功能;如果其出现故障,可以在不借助外力的条件下被BOOT1重新刷写。
用户固件区:用户自定义功能。
带安全启动的二级BOOT方案其大致的执行流程为:MCU上电复位后运行BOOT1,BOOT1校验BOOT2的固件,如果校验无误则运行BOOT2,BOOT2先运行一些非安全启动功能后再校验用户固件,如果其校验无误则运行用户固件,安全启动完成。
二级BOOT的方案需前后运行两个BOOT固件,固件数量的增多会延缓整个系统的安全启动,因此需要一个快速安全启动二级BOOT的方法用以加快整个系统的启动速度。
发明内容
本发明的内容是提供一种基于安全启动技术的快速启动方法,其能够快速安全启动二级BOOT。
根据本发明的一种基于安全启动技术的快速启动方法,其包括以下步骤:
步骤A、MCU上电复位,运行BOOT1,执行步骤B;
步骤B、BOOT1读取快速启动标志位;如果需要执行快速启动,则执行步骤C;如果不需要执行快速启动,则执行步骤D;
步骤C、BOOT1只需要校验用户固件;如果校验通过,则运行用户固件,安全启动成功,快速启动完成;反之,则执行步骤F;
步骤D、BOOT1校验BOOT2;如果校验通过,则执行步骤E;如果不通过,则执行步骤F;
步骤E、运行BOOT2,等待非安全启动的功能运行完成;完成后,BOOT2校验用户固件;如果校验通过,安全启动成功,运行用户固件,非快速启动完成;如果不通过,则执行步骤F;
步骤F、安全启动失败,进行异常处理。
作为优选,当BOOT2只需执行校验用户固件和跳转到用户固件的功能时,MCU下次上电复位将被允许跳过BOOT2的执行,由BOOT1代替BOOT2执行上述的两个功能,即执行快速启动。
作为优选,由用户固件决策是否需要跳过BOOT2的执行并存储更新快速启动标志位。
作为优选,快速启动标志位要求存储在非易失性储存介质中,特性为数据掉电作为优选,由BOOT1读取快速启动标志位,并根据快速启动标志位决定是否执行快速启动;如果是MCU首次上电则默认不执行快速启动。
本发明涉及到的快速启动主要节省的时间在于跳过BOOT2的校验,而主要影响系统启动速度的因素就剩下:BOOT1校验用户固件。不校验BOOT2,系统就能节省大量的启动时间以达到快速启动的目的。
附图说明
图1为实施例中一种基于安全启动技术的快速启动方法的流程图;
图2为实施例中快速启动标志位的更新和使用的示意图。
具体实施方式
为进一步了解本发明的内容,结合附图和实施例对本发明作详细描述。应当理解的是,实施例仅仅是对本发明进行解释而并非限定。
实施例
如图1所示,本实施例提供了一种基于安全启动技术的快速启动方法,其包括以下步骤:
步骤A、MCU上电复位,运行BOOT1,执行步骤B;
步骤B、BOOT1读取快速启动标志位;如果需要执行快速启动,则执行步骤C;如果不需要执行快速启动,则执行步骤D;
步骤C、BOOT1只需要校验用户固件;如果校验通过,则运行用户固件,安全启动成功,快速启动完成;反之,则执行步骤F;
步骤D、BOOT1校验BOOT2;如果校验通过,则执行步骤E;如果不通过,则执行步骤F;
步骤E、运行BOOT2,等待非安全启动的功能运行完成;完成后,BOOT2校验用户固件;如果校验通过,安全启动成功,运行用户固件,非快速启动完成;如果不通过,则执行步骤F;
步骤F、安全启动失败,进行异常处理。
步骤B中,BOOT1会读取快速启动标志位,下面将会说明快速启动标志位的决策依据、决策、存储(更新)和使用:
1)快速启动标志位的决策依据
在上述的二级BOOT方案中,当BOOT2只需执行校验用户固件和跳转到用户固件的功能时,MCU下次上电复位将被允许跳过BOOT2的执行,可以由BOOT1代替BOOT2执行上述的两个功能,即执行快速启动。
2)快速启动标志位的决策和存储(更新)
由用户固件决策是否需要跳过BOOT2的执行并存储(更新)快速启动标志位。快速启动标志位要求存储在非易失性储存介质中,特性为数据掉电不失。
3)快速启动标志位的使用
由BOOT1读取快速启动标志位,并根据快速启动标志位决定是否执行快速启动。如果是MCU首次上电则默认不执行快速启动。
图2为快速启动标志位的更新和使用的示意图,图中,第N次和第N+1次运行表示第多少次上电复位(N>=2)。第N次运行时,由用户固件决策并更新快速启动标志位。第N+1次运行时,由BOOT1读取快速启动标志位,然后根据快速启动标志位决定是否执行快速启动。
本实施例涉及到的快速启动方法运行在搭载二级BOOT的MCU环境中。
二级BOOT的快速安全启动:在保证安全的情况下,系统能跳过BOOT2的运行,直接运行用户固件,加快启动速度。
在非快速启动二级BOOT的方案中,主要影响系统启动速度的因素有:
BOOT1校验BOOT2、BOOT2校验用户固件和BOOT2占用时间较多的非安全启动功能。上述的主要影响因素均会占用不小系统启动时间,校验用户固件是安全启动的根基,无法被省略;而BOOT2并不是在所有时间都要执行非安全启动功能。所以,当BOOT2只需执行校验用户固件和跳转到用户固件功能时,考虑使用BOOT1校验用户固件,并直接跳过BOOT2的运行。而系统既然跳过了BOOT2的运行,那么在本次运行中则不需要校验BOOT2。
本发明涉及到的快速启动主要节省的时间在于跳过BOOT2的校验,而主要影响系统启动速度的因素就剩下:BOOT1校验用户固件。一般情况下,系统校验BOOT2和用户固件的时间相当,在不考虑BOOT2非安全启动功能的情况下,不校验BOOT2,系统能够节省近一半的启动时间以达到快速启动的目的。
以上示意性的对本发明及其实施方式进行了描述,该描述没有限制性,附图中所示的也只是本发明的实施方式之一,实际的结构并不局限于此。所以,如果本领域的普通技术人员受其启示,在不脱离本发明创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本发明的保护范围。

Claims (5)

1.一种基于安全启动技术的快速启动方法,其特征在于:包括以下步骤:
步骤A、MCU上电复位,运行BOOT1,执行步骤B;
步骤B、BOOT1读取快速启动标志位;如果需要执行快速启动,则执行步骤C;如果不需要执行快速启动,则执行步骤D;
步骤C、BOOT1只需要校验用户固件;如果校验通过,则运行用户固件,安全启动成功,快速启动完成;反之,则执行步骤F;
步骤D、BOOT1校验BOOT2;如果校验通过,则执行步骤E;如果不通过,则执行步骤F;
步骤E、运行BOOT2,等待非安全启动的功能运行完成;完成后,BOOT2校验用户固件;如果校验通过,安全启动成功,运行用户固件,非快速启动完成;如果不通过,则执行步骤F;
步骤F、安全启动失败,进行异常处理。
2.根据权利要求1所述的一种基于安全启动技术的快速启动方法,其特征在于:当BOOT2只需执行校验用户固件和跳转到用户固件的功能时,MCU下次上电复位将被允许跳过BOOT2的执行,由BOOT1代替BOOT2执行上述的两个功能,即执行快速启动。
3.根据权利要求2所述的一种基于安全启动技术的快速启动方法,其特征在于:由用户固件决策是否需要跳过BOOT2的执行并存储更新快速启动标志位。
4.根据权利要求3所述的一种基于安全启动技术的快速启动方法,其特征在于:快速启动标志位要求存储在非易失性储存介质中,特性为数据掉电不失。
5.根据权利要求4所述的一种基于安全启动技术的快速启动方法,其特征在于:由BOOT1读取快速启动标志位,并根据快速启动标志位决定是否执行快速启动;如果是MCU首次上电则默认不执行快速启动。
CN202310388578.8A 2023-04-12 一种基于安全启动技术的快速启动方法 Active CN116700061B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310388578.8A CN116700061B (zh) 2023-04-12 一种基于安全启动技术的快速启动方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310388578.8A CN116700061B (zh) 2023-04-12 一种基于安全启动技术的快速启动方法

Publications (2)

Publication Number Publication Date
CN116700061A true CN116700061A (zh) 2023-09-05
CN116700061B CN116700061B (zh) 2024-05-03

Family

ID=

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070168702A1 (en) * 2005-11-15 2007-07-19 Dickenson Marc A Method, system and computer program product for recovery of formatting in repair of bad sectors in flash memory
KR20080050216A (ko) * 2006-12-01 2008-06-05 한국전자통신연구원 Tpm을 이용한 모바일 플랫폼의 보안 부팅 장치 및 방법
CN102902530A (zh) * 2012-09-07 2013-01-30 四川长虹电器股份有限公司 一种基于linux嵌入式操作系统的程序校验装置
CN104007996A (zh) * 2014-06-16 2014-08-27 南京融教科技有限公司 一种分布式控制系统的可靠固件升级实现方法
CN106325903A (zh) * 2015-06-25 2017-01-11 中兴通讯股份有限公司 启动处理方法及装置
CN106776122A (zh) * 2016-11-23 2017-05-31 武汉光迅科技股份有限公司 一种基于Flash启动过程中主备保护的方法
CN110032403A (zh) * 2018-01-11 2019-07-19 旺宏电子股份有限公司 存储器装置与电子装置的启动程序加载方法
CN111316235A (zh) * 2019-03-29 2020-06-19 深圳市大疆创新科技有限公司 启动系统的方法、电子设备、机器可读存储介质
CN111857785A (zh) * 2019-04-29 2020-10-30 深圳市优必选科技有限公司 一种mcu的启动方法、装置及终端设备
CN113741944A (zh) * 2021-08-16 2021-12-03 南京苏美达智能技术有限公司 一种具备升级功能的机器程序系统及升级方法与应用
CN114860292A (zh) * 2022-04-25 2022-08-05 潍柴动力股份有限公司 终端设备固件升级控制方法、装置、计算机设备及介质
CN115080091A (zh) * 2022-07-27 2022-09-20 成都国恒空间技术工程股份有限公司 一种卫星通信设备在线升级mcu固件的方法及系统
CN115562737A (zh) * 2022-10-20 2023-01-03 科大讯飞股份有限公司 电子控制单元的控制方法、装置及域控制器的控制方法

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070168702A1 (en) * 2005-11-15 2007-07-19 Dickenson Marc A Method, system and computer program product for recovery of formatting in repair of bad sectors in flash memory
KR20080050216A (ko) * 2006-12-01 2008-06-05 한국전자통신연구원 Tpm을 이용한 모바일 플랫폼의 보안 부팅 장치 및 방법
CN102902530A (zh) * 2012-09-07 2013-01-30 四川长虹电器股份有限公司 一种基于linux嵌入式操作系统的程序校验装置
CN104007996A (zh) * 2014-06-16 2014-08-27 南京融教科技有限公司 一种分布式控制系统的可靠固件升级实现方法
CN106325903A (zh) * 2015-06-25 2017-01-11 中兴通讯股份有限公司 启动处理方法及装置
CN106776122A (zh) * 2016-11-23 2017-05-31 武汉光迅科技股份有限公司 一种基于Flash启动过程中主备保护的方法
CN110032403A (zh) * 2018-01-11 2019-07-19 旺宏电子股份有限公司 存储器装置与电子装置的启动程序加载方法
CN111316235A (zh) * 2019-03-29 2020-06-19 深圳市大疆创新科技有限公司 启动系统的方法、电子设备、机器可读存储介质
CN111857785A (zh) * 2019-04-29 2020-10-30 深圳市优必选科技有限公司 一种mcu的启动方法、装置及终端设备
CN113741944A (zh) * 2021-08-16 2021-12-03 南京苏美达智能技术有限公司 一种具备升级功能的机器程序系统及升级方法与应用
CN114860292A (zh) * 2022-04-25 2022-08-05 潍柴动力股份有限公司 终端设备固件升级控制方法、装置、计算机设备及介质
CN115080091A (zh) * 2022-07-27 2022-09-20 成都国恒空间技术工程股份有限公司 一种卫星通信设备在线升级mcu固件的方法及系统
CN115562737A (zh) * 2022-10-20 2023-01-03 科大讯飞股份有限公司 电子控制单元的控制方法、装置及域控制器的控制方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
佘磊;赵曦滨;陈渝;施鹤远;韦康;: "轨道交通实时以太网交换机启动性能的分析与优化", 计算机科学, no. 2, 15 November 2017 (2017-11-15) *
王凯;王友顺;古大新;: "基于Linux系统的管道瓦斯综合参数测定仪启动时间优化", 煤矿安全, no. 09, 10 September 2010 (2010-09-10) *
王殿升, 康金翠: "关于双系统共存的研究", 河北体育学院学报, no. 03, 30 September 2004 (2004-09-30) *

Similar Documents

Publication Publication Date Title
KR101375992B1 (ko) 불휘발성 메모리로부터의 디바이스 부트업 동안 에러들의 핸들링
KR100987628B1 (ko) 엠비디드 컨트롤러의 펌웨어 갱신방법 및 갱신용 펌웨어저장매체
CN109358887B (zh) 一种单片机程序的在线升级方法、装置及系统
WO2022007656A1 (zh) Bootloader软件更新方法、装置、嵌入式控制器以及存储介质
US7533290B2 (en) Microcode updating error handling apparatus and method thereof
CN110096300B (zh) 一种fpga程序文件备份管理系统、运行方法及升级方法
CN111857776B (zh) Dsp板卡类的应用程序的在线升级方法
CN102023908A (zh) 一种引导程序备份方法及装置
CN113064604B (zh) 一种固件升级方法和装置
US20110265072A1 (en) Dynamic Installation of Files for Running Programs
CN103577201A (zh) 嵌入式双系统的更新方法及系统
US20060206674A1 (en) Optical disc drive and program code updating method thereof
CN116700061B (zh) 一种基于安全启动技术的快速启动方法
CN105335244B (zh) 用于应用程序恢复的方法
CN111124760B (zh) 一种基于uboot的嵌入式设备启动方法及装置
CN116700061A (zh) 一种基于安全启动技术的快速启动方法
CN102226888A (zh) 框架加载方法及设备
JP2000242484A (ja) 制御プログラムの変更方法
US20050144611A1 (en) Method for determining program code
KR20180023575A (ko) 펌웨어 자동 업데이트 방법 및 이의 방법을 기록한 컴퓨터 판독 가능한 기록 매체
CN103136234A (zh) 处理数据的方法和装置
CN108121562B (zh) 固件版本切换方法、电子设备和bios芯片
US7490232B2 (en) Disk device using disk to rewrite firmware and firmware determination method
KR100714863B1 (ko) 하드디스크 드라이브의 번-인 테스트 과정을 제어할 수있는 방법, 기록매체 및 하드디스크 드라이브
US9773562B2 (en) Storage apparatus, flash memory control apparatus, and program

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