CN109491716B - 启动方法及装置、程序存储方法及装置 - Google Patents

启动方法及装置、程序存储方法及装置 Download PDF

Info

Publication number
CN109491716B
CN109491716B CN201811341020.XA CN201811341020A CN109491716B CN 109491716 B CN109491716 B CN 109491716B CN 201811341020 A CN201811341020 A CN 201811341020A CN 109491716 B CN109491716 B CN 109491716B
Authority
CN
China
Prior art keywords
code
system application
starting
digital fingerprint
application program
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.)
Active
Application number
CN201811341020.XA
Other languages
English (en)
Other versions
CN109491716A (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.)
Beijing Autoroad Tech Co ltd
Original Assignee
Beijing Autoroad Tech 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 Beijing Autoroad Tech Co ltd filed Critical Beijing Autoroad Tech Co ltd
Publication of CN109491716A publication Critical patent/CN109491716A/zh
Application granted granted Critical
Publication of CN109491716B publication Critical patent/CN109491716B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order

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

本申请提供了一种启动方法及装置、程序存储方法及装置、电子设备、计算机可读存储介质,在启动的过程中,对中级启动代码和系统应用程序进行数字指纹的验证,从而保证了中级启动代码或系统应用程序是可靠并且完整的,基于可靠、完整的中级启动代码和系统应用程序提高了系统启动的安全性和成功率。

Description

启动方法及装置、程序存储方法及装置
技术领域
本申请涉及计算机技术领域,尤其是涉及一种启动方法及装置、程序存储方法及装置。
背景技术
将双核处理器(CPU)和现场可编程门阵列(FPGA)集成在一起能够提高处理效率和集成性能,双核CPU中的每个CPU可以单独运行,FPGA需要由CPU初始化启动,启动后可与CPU独立运行或者协作运行。当前,一般将CPU和FPGA集成在一个芯片上,此集成芯片具有更好的灵活性和更高的效率。例如,zynq是一款集成了双CPU和FPGA的芯片。
上述集成芯片的启动过程一般是主CPU首先运行,然后引导从CPU和FPGA运行。上述启动过程中由于被加载的启动代码或系统应用程序没有校验和认证,因此存在加载的启动代码或系统应用程序不可靠或损坏的缺陷,将不可靠或被损坏的启动代码或系统应用程序烧写到芯片,会导致集成芯片不能被正常启动。
发明内容
有鉴于此,本申请的目的在于提供启动方法及装置、程序存储方法及装置,以提高集成了双核处理器和现场可编程门阵列的芯片或设备的启动的成功率和安全性。
第一方面,本申请实施例提供了一种启动方法,包括:
初级启动代码启动主CPU,加载中级启动代码,并控制所述中级启动代码开始执行;
所述中级启动代码获取并校验自身的数字指纹,并在所述中级启动代码的数字指纹通过校验的情况下,所述中级启动代码启动现场可编程门阵列、启动从CPU、加载系统应用程序、校验所述系统应用程序的数字指纹,并在所述系统应用程序的数字指纹通过校验的情况下,所述中级启动代码控制所述系统应用程序开始执行。
在一种可能的实施方式中,所述中级启动代码包括第一启动代码和第二启动代码;
所述方法还包括:
所述第一启动代码获取并校验自身的数字指纹,并在所述第一启动代码的数字指纹通过校验的情况下,所述第一启动代码初始化最小系统,并启动所述现场可编程门阵列;
所述第一启动代码加载所述第二启动代码,获取并校验所述第二启动代码的数字指纹;在所述第二启动代码的数字指纹通过校验的情况下,所述第一启动代码控制所述第二启动代码开始执行;
所述第二启动代码启动从CPU、加载所述系统应用程序、获取并校验所述系统应用程序的数字指纹,并在所述系统应用程序的数字指纹通过校验的情况下,所述第二启动代码控制所述系统应用程序开始执行。
在一种可能的实施方式中,所述系统应用程序为加密后的程序;
所述方法还包括:
所述第二启动代码解密所述系统应用程序,并控制解密后的系统应用程序开始执行。
在一种可能的实施方式中,所述第一启动代码、所述第二启动代码以及所述系统应用程序均为两份;
所述方法首先执行所述第一启动代码、所述第二启动代码以及所述系统应用程序中的一份,在所述第一启动代码、所述第二启动代码或所述系统应用程序出现异常时,执行另外的一份所述第一启动代码、所述第二启动代码或所述系统应用程序。
在一种可能的实施方式中,所述启动方法还包括:
在所有的所述第一启动代码不能通过校验的情况下,加载并运行备份的第一启动代码;
在所有的所述第二启动代码不能通过校验的情况下,加载并运行备份的第二启动代码;
在所有的所述系统应用程序不能通过校验的情况下,加载并运行备份的第二启动代码。
第二方面,本申请实施例提供了一种程序存储方法,包括:
对系统的软件进行编译,得到初级启动代码、中级启动代码以及系统应用程序;所述初级启动代码用于启动主CPU,加载中级启动代码,并控制所述中级启动代码开始执行;所述中级启动代码用于获取并校验自身的数字指纹,并在所述中级启动代码的数字指纹通过校验的情况下,启动现场可编程门阵列、启动从CPU、加载系统应用程序、校验所述系统应用程序的数字指纹,并在所述系统应用程序的数字指纹通过校验的情况下,控制所述系统应用程序开始执行;
确定所述中级启动代码的数字指纹以及所述系统应用程序的数字指纹;
将所述初级启动代码、中级启动代码、系统应用程序、所述中级启动代码的数字指纹以及所述系统应用程序的数字指纹存储到预定位置。
在一种可能的实施方式中,所述中级启动代码包括第一启动代码和第二启动代码;
确定所述中级启动代码的数字指纹,包括:
利用第一预定算法对所述第一启动代码进行计算,得到所述第一启动代码的数字指纹;
利用第二预定算法对所述第二启动代码进行计算,得到所述第二启动代码的数字指纹;
确定所述系统应用程序的数字指纹,包括:
利用第三预定算法对系统应用程序进行计算,得到所述系统应用程序的数字指纹;
其中,所述第一启动代码用于获取并校验自身的数字指纹,并在所述第一启动代码的数字指纹通过校验的情况下,初始化最小系统,并启动所述现场可编程门阵列;所述第一启动代码还用于加载所述第二启动代码,获取并校验所述第二启动代码的数字指纹;在所述第二启动代码的数字指纹通过校验的情况下,所述第一启动代码控制所述第二启动代码开始执行;所述第二启动代码启动从CPU、加载所述系统应用程序、获取并校验所述系统应用程序的数字指纹,并在所述系统应用程序的数字指纹通过校验的情况下,所述第二启动代码控制所述系统应用程序开始执行。
在一种可能的实施方式中,还包括:
对所述系统应用程序进行加密;
利用第三预定算法对加密后的系统应用程序进行计算,得到所述系统应用程序的数字指纹。
第三方面,本申请实施例提供了一种启动装置,包括:
第一启动加载模块,包括初级启动代码,所述初级启动代码用于启动主CPU,加载中级启动代码,并控制所述中级启动代码开始执行;
第二启动加载模块,包括中级启动代码,所述中级启动代码用于获取并校验自身的数字指纹,并在所述中级启动代码的数字指纹通过校验的情况下,所述中级启动代码启动现场可编程门阵列、启动从CPU、加载系统应用程序、校验所述系统应用程序的数字指纹,并在所述系统应用程序的数字指纹通过校验的情况下,所述中级启动代码控制所述系统应用程序开始执行。
第四方面,本申请实施例提供了一种程序存储装置,包括:
编译模块,用于对系统的软件进行编译,得到初级启动代码、中级启动代码以及系统应用程序;所述初级启动代码用于启动主CPU,加载中级启动代码,并控制所述中级启动代码开始执行;所述中级启动代码用于获取并校验自身的数字指纹,并在所述中级启动代码的数字指纹通过校验的情况下,启动现场可编程门阵列、启动从CPU、加载系统应用程序、校验所述系统应用程序的数字指纹,并在所述系统应用程序的数字指纹通过校验的情况下,控制所述系统应用程序开始执行;
加密模块,用于确定所述中级启动代码的数字指纹以及所述系统应用程序的数字指纹;
存储模块,用于将所述初级启动代码、中级启动代码、系统应用程序、所述中级启动代码的数字指纹以及所述系统应用程序的数字指纹存储到预定位置。
第五方面,本申请实施例提供了一种电子设备包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述的启动方法的步骤或如上述程序存储方法的步骤。
第六方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述启动方法的步骤或上述程序存储方法的步骤。
本申请实施例提供的启动方法及装置、程序存储方法及装置、电子设备、计算机可读存储介质,在启动的过程中,对中级启动代码和系统应用程序进行数字指纹的验证,从而保证了中级启动代码或系统应用程序是可靠并且完整的,基于可靠、完整的中级启动代码和系统应用程序提高了系统启动的安全性和成功率。
进一步地,通过对系统应用程序进行加密,有效防御了对系统核心功能的反编译,实现了对系统应用程序的有效保护,进一步提高了系统的安全性和可靠性。
进一步,本申请实施例中在所有的第一启动代码、所有的第二启动代码或所有的系统应用程序不能被正常执行时,能够利用备份的第一启动代码或备份的第二启动代码恢复系统镜像文件,而有效提高了系统的修复效率。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1A示出了本申请实施例所提供的启动方法的流程图;
图1B示出了本申请实施例所提供的启动方法中中级启动代码的工作流程图;
图2示出了本申请实施例所提供的另一种启动方法的流程图;
图3A示出了本申请实施例所提供的程序存储方法的流程图;
图3B示出了本申请实施例所提供的程序存储方法中计算数字指纹的流程图;
图4示出了本申请实施例所提供的启动装置的结构示意图;
图5示出了本申请实施例所提供的程序存储装置的结构示意图;
图6示出了本申请实施例所提供的一种电子设备的结构示意图;
图7示出了本申请实施例中的存储结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一
本实施例记载了一种启动方法,该方法可以应用于集成了双核处理器(CPU)和现场可编程门阵列(FPGA)的芯片或设备中,以实现上述芯片或设备的成功启动。具体地,如图1A所示,本实施例的启动方法包括如下步骤:
S110、初级启动代码启动主CPU,加载中级启动代码,并控制所述中级启动代码开始执行。
这里的初级启动代码(ROM code)固化在主CPU内部。
S120、所述中级启动代码获取并校验自身的数字指纹;并在所述中级启动代码的数字指纹通过校验的情况下,所述中级启动代码启动现场可编程门阵列、启动从CPU、加载系统应用程序、校验所述系统应用程序的数字指纹;并在所述系统应用程序的数字指纹通过校验的情况下,所述中级启动代码控制所述系统应用程序开始执行。
这里的中级启动代码存储在闪存中,初级启动代码将中级启动代码从闪存加载到片上存储器(OCM),所述中级启动代码还用于初始化最小系统所需的硬件,例如初始化主CPU、内存、闪存等。所述中级启动代码将现场可编程门阵列(FPGA)逻辑写入现场可编程门阵列内部存储器,并启动现场可编程门阵列。
这里的校验是校验所述中级启动代码的完整性和安全性。
这里的数字指纹具有如下特征:长度固定、只能基于原文,例如中级启动代码计算出对应的数字指纹,根据数据指纹返过来不能推算出原文。
进一步地,本实施例中,中级启动代码可以包括第一启动代码和第二启动代码,此时,如图1B所示,本实施的步骤120具体可以包括如下步骤:
S1201、所述第一启动代码获取并校验自身的数字指纹,并在所述第一启动代码的数字指纹通过校验的情况下,所述第一启动代码初始化最小系统,并启动所述现场可编程门阵列。
在执行此步骤之前,可以利用如下步骤生成第一启动代码的数字指纹:
利用第一预定算法对所述第一启动代码进行计算,得到所述第一启动代码的数字指纹。这里的第一预定算法可以但不限于是信息摘要算法(md5)、循环冗余校验算法(CRC)、安全哈希算法(sha)等。
S1202、所述第一启动代码加载所述第二启动代码,获取并校验所述第二启动代码的数字指纹;在所述第二启动代码的数字指纹通过校验的情况下,所述第一启动代码控制所述第二启动代码开始执行。
在执行此步骤之前,可以利用如下步骤生成第二启动代码的数字指纹:
利用第二预定算法对所述第二启动代码进行计算,得到所述第二启动代码的数字指纹。这里的第二预定算法可以但不限于是信息摘要算法、校验和算法、安全哈希算法等。
S1203、所述第二启动代码启动从CPU、加载所述系统应用程序、获取并校验所述系统应用程序的数字指纹,并在所述系统应用程序的数字指纹通过校验的情况下,所述第二启动代码控制所述系统应用程序开始执行。
在执行此步骤之前,可以利用如下步骤生成系统应用程序的数字指纹:
利用第三预定算法对系统应用程序进行计算,得到所述系统应用程序的数字指纹。这里的第三预定算法可以但不限于是信息摘要算法、校验和算法、安全哈希算法等。
上述第一预定算法、第二预定算法以及第三预定算法可以相同,也可以不同,根据实际的应用场景可以灵活设定。
进一步地,所述系统应用程序可以为加密后的程序。此时,第二启动代码在控制所述系统应用程序开始执行之前,需要预先解密所述系统应用程序。
另外,可以利用如下步骤生成系统应用程序的数字指纹:
对所述系统应用程序进行加密;利用第三预定算法对加密后的系统应用程序进行计算,得到所述系统应用程序的数字指纹。
上述,对系统应用程序进行加密可以利用高级加密标准(AES)算法进行加密,加密密钥经过混淆硬编码到第一启动代码中。
将系统应用程序的加密秘钥存储在第一启动代码中,而不是存储在第二启动代码中,第二启动代码只存储有系统应用程序的解密秘钥,从而保证了系统应用程序的安全性。
进一步地,本实施例中,所述第一启动代码、所述第二启动代码以及所述系统应用程序可以均为两份。本实施例的启动方法首先执行所述第一启动代码、所述第二启动代码以及所述系统应用程序中的一份,在所述第一启动代码、所述第二启动代码或所述系统应用程序出现异常时,执行另外的一份所述第一启动代码、所述第二启动代码或所述系统应用程序。
进一步地,为保证启动的正常进行,设备的系统中还存储有备份的第一启动代码和备份的第二启动代码。在所有的第一启动代码、所有的所述第二启动代码,或所有的所述系统应用程序不能通过校验的情况下,本实施例的启动方法还可以具体包括如下步骤:
S210、在所有的所述第一启动代码不能通过校验的情况下,加载并运行备份的第一启动代码。
S220、在所有的所述第二启动代码不能通过校验的情况下,加载并运行备份的第二启动代码。
S230、在所有的所述系统应用程序不能通过校验的情况下,加载并运行备份的第二启动代码。
上述,备份的第一启动代码和备份的第二启动代码生成后不可更改,存储在闪存上。本实施例中,上述初级启动代码、第一启动代码(SPL)、第二启动代码(TPL)以及系统应用程序是通过对系统的软件进行编译得到的系统镜像文件。第二启动代码还用于更新系统镜像文件。系统应用程序包括FPGA逻辑和系统程序两部分,是整个系统的核心,实现了系统控制和算法,还可以更新系统镜像文件。
实施例二
本实施例记载了一种启动方法,如图2所示,本实施例的启动方法包括:
步骤一、上电启动,执行初级启动代码,启动主CPU;
步骤二、加载第一启动代码SPL,对第一份第一启动代码SPL_0进行数字指纹校验,如果SPL_0可用,则进入SPL_0,即执行SPL_0。如果第一份第一启动代码SPL_0不可用,则对第二份第一启动代码SPL_1进行数字指纹校验,如果SPL_1可用,则进入SPL_1,即执行SPL_1;如果两份第一启动代码SPL均不可用,则进入备份的第一启动代码SPL,等待处理;
步骤三、执行SPL_0或SPL_1之后,加载第二启动代码TPL,并校验所述第二启动代码TPL的数字指纹;
步骤四、如果第一份第二启动代码TPL_0可用,则进入TPL_0,即执行TPL_0。如果第一份第二启动代码TPL_0不可用,则判断第二份第二启动代码TPL_1是否可用,如果TPL_1可用,则进入TPL_1,即执行TPL_1;如果两份第二启动代码TPL均不可用,则进入备份的第二启动代码TPL,等待处理;
步骤五、执行TPL_0或TPL_1之后,校验系统应用程序的数字指纹。如果第一份系统应用程序(即系统应用程序_0)可用,则进入系统应用程序_0,即执行系统应用程序_0。如果系统应用程序_0不可用,则判断第二份系统应用程序(即系统应用程序_1)是否可用,如果系统应用程序_1可用,则进入系统应用程序_1,即执行系统应用程序_1;如果两份系统应用程序均不可用,则进入备份的第二启动代码TPL,等待处理;
步骤六、系统应用程序_0或系统应用程序_1验证通过之后,解密并执行相应的系统应用程序。
实施例三
本实施例公开了一种程序存储方法,该方法可以应用于集成了双核处理器(CPU)和现场可编程门阵列(FPGA)的芯片或设备中,是上述芯片或设备对系统镜像文件进行处理和存储的方法。具体地,如图3A所示,本实施例的程序存储方法,包括如下步骤:
S310、对系统的软件进行编译,得到初级启动代码、中级启动代码以及系统应用程序;所述初级启动代码用于启动主CPU,加载中级启动代码,并控制所述中级启动代码开始执行;所述中级启动代码用于获取并校验自身的数字指纹,并在所述中级启动代码的数字指纹通过校验的情况下,启动现场可编程门阵列、启动从CPU、加载系统应用程序、校验所述系统应用程序的数字指纹,并在所述系统应用程序的数字指纹通过校验的情况下,控制所述系统应用程序开始执行。
S320、确定所述中级启动代码的数字指纹以及所述系统应用程序的数字指纹。
S330、将所述初级启动代码、中级启动代码、系统应用程序、所述中级启动代码的数字指纹以及所述系统应用程序的数字指纹存储到预定位置。
本实施例中,中级启动代码可以包括第一启动代码和第二启动代码。此时,如图3B所示,本实施例的步骤S320中还可以包括如下步骤:
S3201、利用第一预定算法对所述第一启动代码进行计算,得到所述第一启动代码的数字指纹。
S3202、利用第二预定算法对所述第二启动代码进行计算,得到所述第二启动代码的数字指纹。
S3203、利用第三预定算法对系统应用程序进行计算,得到所述系统应用程序的数字指纹。
本实施例中,所述第一启动代码用于获取并校验自身的数字指纹,并在所述第一启动代码的数字指纹通过校验的情况下,初始化最小系统,并启动所述现场可编程门阵列;所述第一启动代码还用于加载所述第二启动代码,获取并校验所述第二启动代码的数字指纹;在所述第二启动代码的数字指纹通过校验的情况下,所述第一启动代码控制所述第二启动代码开始执行;所述第二启动代码启动从CPU、加载所述系统应用程序、获取并校验所述系统应用程序的数字指纹,并在所述系统应用程序的数字指纹通过校验的情况下,所述第二启动代码控制所述系统应用程序开始执行。
本实施例中为提高启动的成功率,还存储两份所述第一启动代码、所述第二启动代码以及所述系统应用程序。在执行其中的一份所述第一启动代码、所述第二启动代码或所述系统应用程序出现异常时,执行另外的一份所述第一启动代码、所述第二启动代码或所述系统应用程序。
本实施例中,可以对所述系统应用程序进行加密,以提高系统应用程序的安全性。此时,在确定应用程序的数字指纹时,可以利用第三预定算法对加密后的系统应用程序进行计算,得到系统应用程序的数字指纹。在这种情况下,存储的是加密后的系统应用程序和加密后的系统应用程序的数字指纹。
上述初级启动代码、第一启动代码、第二启动代码和系统应用程序可以按照图7所示的顺序进行存储,当然根据需要也可以采取其他的方式。
以上实施例,将第一启动代码的数字指纹、第二启动代码的数字指纹、系统应用程序的数字指纹、两份SPL、两份TPL、系统应用程序、出厂后就不会修改的备份的SPL、出厂后就不会修改的备份的TPL烧写到闪存的预定义的地址,因此要求闪存大小足够存放全部文件。启动过程中会尽可能的尝试使用全部的系统镜像文件来保证系统能够正确运行。在所有会被修改的系统镜像文件都不能使用的情况下,还可以通过备份的SPL和TPL更新得到正确的系统镜像文件,极大地提高了系统启动的成功率,降低了调试、使用过程中对外部工具的依赖性。
基于相同的技术构思,本申请实施例还提供一种启动装置、程序存储装置、电子设备以及计算机存储介质等,具体可参见以下实施例。
实施例四
本实施例公开了一种启动装置,如图4所示,包括:
第一启动加载模块401,包括初级启动代码,所述初级启动代码用于启动主CPU,加载中级启动代码,并控制所述中级启动代码开始执行。
第二启动加载模块402,包括中级启动代码,所述中级启动代码用于获取并校验自身的数字指纹,并在所述中级启动代码的数字指纹通过校验的情况下,所述中级启动代码启动现场可编程门阵列、启动从CPU、加载系统应用程序、校验所述系统应用程序的数字指纹,并在所述系统应用程序的数字指纹通过校验的情况下,所述中级启动代码控制所述系统应用程序开始执行。
进一步地,所述中级启动代码包括第一启动代码和第二启动代码。所述第一启动代码获取并校验自身的数字指纹,并在所述第一启动代码的数字指纹通过校验的情况下,所述第一启动代码初始化最小系统,并启动所述现场可编程门阵列。
所述第一启动代码加载所述第二启动代码,获取并校验所述第二启动代码的数字指纹;在所述第二启动代码的数字指纹通过校验的情况下,所述第一启动代码控制所述第二启动代码开始执行;
所述第二启动代码启动从CPU、加载所述系统应用程序、获取并校验所述系统应用程序的数字指纹,并在所述系统应用程序的数字指纹通过校验的情况下,所述第二启动代码控制所述系统应用程序开始执行。
进一步地,所述系统应用程序为加密后的程序。此时,所述第二启动代码解密所述系统应用程序,并控制解密后的系统应用程序开始执行。
进一步地,所述第一启动代码、所述第二启动代码以及所述系统应用程序均为两份。所述第二启动加载模块402首先执行所述第一启动代码、所述第二启动代码以及所述系统应用程序中的一份,在所述第一启动代码、所述第二启动代码或所述系统应用程序出现异常时,执行另外的一份所述第一启动代码、所述第二启动代码或所述系统应用程序。
进一步地,第二启动加载模块402还用于:在所有的所述第一启动代码不能通过校验的情况下,加载并运行备份的第一启动代码;在所有的所述第二启动代码不能通过校验的情况下,加载并运行备份的第二启动代码;在所有的所述系统应用程序不能通过校验的情况下,加载并运行备份的第二启动代码。
实施例五
本实施例公开了一种程序存储装置,如图5所示,包括:
编译模块501,用于对系统的软件进行编译,得到初级启动代码、中级启动代码以及系统应用程序;所述初级启动代码用于启动主CPU,加载中级启动代码,并控制所述中级启动代码开始执行;所述中级启动代码用于获取并校验自身的数字指纹,并在所述中级启动代码的数字指纹通过校验的情况下,启动现场可编程门阵列、启动从CPU、加载系统应用程序、校验所述系统应用程序的数字指纹,并在所述系统应用程序的数字指纹通过校验的情况下,控制所述系统应用程序开始执行。
加密模块502,用于确定所述中级启动代码的数字指纹以及所述系统应用程序的数字指纹。
存储模块503,用于将所述初级启动代码、中级启动代码、系统应用程序、所述中级启动代码的数字指纹以及所述系统应用程序的数字指纹存储到预定位置。
进一步地,所述中级启动代码包括第一启动代码和第二启动代码。此时,所述加密模块502具体用于:利用第一预定算法对所述第一启动代码进行计算,得到所述第一启动代码的数字指纹;利用第二预定算法对所述第二启动代码进行计算,得到所述第二启动代码的数字指纹;利用第三预定算法对系统应用程序进行计算,得到所述系统应用程序的数字指纹。
上述,所述第一启动代码用于获取并校验自身的数字指纹,并在所述第一启动代码的数字指纹通过校验的情况下,初始化最小系统,并启动所述现场可编程门阵列;所述第一启动代码还用于加载所述第二启动代码,获取并校验所述第二启动代码的数字指纹;在所述第二启动代码的数字指纹通过校验的情况下,所述第一启动代码控制所述第二启动代码开始执行;所述第二启动代码启动从CPU、加载所述系统应用程序、获取并校验所述系统应用程序的数字指纹,并在所述系统应用程序的数字指纹通过校验的情况下,所述第二启动代码控制所述系统应用程序开始执行。
进一步地,所述加密模块502还用于:对所述系统应用程序进行加密,并利用第三预定算法对加密后的系统应用程序进行计算,得到所述系统应用程序的数字指纹。
实施例六
实施例公开了一种电子设备,如图6所示,包括:处理器601、存储器602和总线603,所述存储器602存储有所述处理器601可执行的机器可读指令,当电子设备运行时,所述处理器601与所述存储器602之间通过总线603通信,所述机器可读指令被所述处理器601执行时执行上述启动方法的步骤或上述程序存储方法的步骤。
实施例七
本实施例公开了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述启动方法的步骤或上述程序存储方法的步骤,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

Claims (8)

1.一种启动方法,其特征在于,包括:
初级启动代码启动主CPU,加载中级启动代码,并控制所述中级启动代码开始执行;
所述中级启动代码获取并校验自身的数字指纹,并在所述中级启动代码的数字指纹通过校验的情况下,所述中级启动代码启动现场可编程门阵列、启动从CPU、加载系统应用程序、校验所述系统应用程序的数字指纹,并在所述系统应用程序的数字指纹通过校验的情况下,所述中级启动代码控制所述系统应用程序开始执行;
所述中级启动代码包括第一启动代码和第二启动代码;所述方法还包括:
所述第一启动代码获取并校验自身的数字指纹,并在所述第一启动代码的数字指纹通过校验的情况下,所述第一启动代码初始化最小系统,并启动所述现场可编程门阵列;
所述第一启动代码加载所述第二启动代码,获取并校验所述第二启动代码的数字指纹;在所述第二启动代码的数字指纹通过校验的情况下,所述第一启动代码控制所述第二启动代码开始执行;
所述第二启动代码启动从CPU、加载所述系统应用程序、获取并校验所述系统应用程序的数字指纹,并在所述系统应用程序的数字指纹通过校验的情况下,所述第二启动代码控制所述系统应用程序开始执行。
2.根据权利要求1所述的方法,其特征在于,所述系统应用程序为加密后的程序;
所述方法还包括:
所述第二启动代码解密所述系统应用程序,并控制解密后的系统应用程序开始执行。
3.根据权利要求1所述的方法,其特征在于,所述第一启动代码、所述第二启动代码以及所述系统应用程序均为两份;
所述方法首先执行所述第一启动代码、所述第二启动代码以及所述系统应用程序中的一份,在所述第一启动代码、所述第二启动代码或所述系统应用程序出现异常时,执行另外的一份所述第一启动代码、所述第二启动代码或所述系统应用程序。
4.根据权利要求3所述的方法,其特征在于,还包括:
在所有的所述第一启动代码不能通过校验的情况下,加载并运行备份的第一启动代码;
在所有的所述第二启动代码不能通过校验的情况下,加载并运行备份的第二启动代码;
在所有的所述系统应用程序不能通过校验的情况下,加载并运行备份的第二启动代码。
5.一种程序存储方法,其特征在于,包括:
对系统的软件进行编译,得到初级启动代码、中级启动代码以及系统应用程序;所述初级启动代码用于启动主CPU,加载中级启动代码,并控制所述中级启动代码开始执行;所述中级启动代码用于获取并校验自身的数字指纹,并在所述中级启动代码的数字指纹通过校验的情况下,启动现场可编程门阵列、启动从CPU、加载系统应用程序、校验所述系统应用程序的数字指纹,并在所述系统应用程序的数字指纹通过校验的情况下,控制所述系统应用程序开始执行;
确定所述中级启动代码的数字指纹以及所述系统应用程序的数字指纹;
将所述初级启动代码、中级启动代码、系统应用程序、所述中级启动代码的数字指纹以及所述系统应用程序的数字指纹存储到预定位置;
所述中级启动代码包括第一启动代码和第二启动代码;
确定所述中级启动代码的数字指纹,包括:
利用第一预定算法对所述第一启动代码进行计算,得到所述第一启动代码的数字指纹;
利用第二预定算法对所述第二启动代码进行计算,得到所述第二启动代码的数字指纹;
确定所述系统应用程序的数字指纹,包括:
利用第三预定算法对系统应用程序进行计算,得到所述系统应用程序的数字指纹;
其中,所述第一启动代码用于获取并校验自身的数字指纹,并在所述第一启动代码的数字指纹通过校验的情况下,初始化最小系统,并启动所述现场可编程门阵列;所述第一启动代码还用于加载所述第二启动代码,获取并校验所述第二启动代码的数字指纹;在所述第二启动代码的数字指纹通过校验的情况下,所述第一启动代码控制所述第二启动代码开始执行;所述第二启动代码启动从CPU、加载所述系统应用程序、获取并校验所述系统应用程序的数字指纹,并在所述系统应用程序的数字指纹通过校验的情况下,所述第二启动代码控制所述系统应用程序开始执行。
6.根据权利要求5所述的方法,其特征在于,还包括:
对所述系统应用程序进行加密;
利用第三预定算法对加密后的系统应用程序进行计算,得到所述系统应用程序的数字指纹。
7.一种启动装置,其特征在于,包括:
第一启动加载模块,包括初级启动代码,所述初级启动代码用于启动主CPU,加载中级启动代码,并控制所述中级启动代码开始执行;
第二启动加载模块,包括中级启动代码,所述中级启动代码用于获取并校验自身的数字指纹,并在所述中级启动代码的数字指纹通过校验的情况下,所述中级启动代码启动现场可编程门阵列、启动从CPU、加载系统应用程序、校验所述系统应用程序的数字指纹,并在所述系统应用程序的数字指纹通过校验的情况下,所述中级启动代码控制所述系统应用程序开始执行;
所述中级启动代码包括第一启动代码和第二启动代码;所述第二启动加载模块具体用于:
所述第一启动代码获取并校验自身的数字指纹,并在所述第一启动代码的数字指纹通过校验的情况下,所述第一启动代码初始化最小系统,并启动所述现场可编程门阵列;
所述第一启动代码加载所述第二启动代码,获取并校验所述第二启动代码的数字指纹;在所述第二启动代码的数字指纹通过校验的情况下,所述第一启动代码控制所述第二启动代码开始执行;
所述第二启动代码启动从CPU、加载所述系统应用程序、获取并校验所述系统应用程序的数字指纹,并在所述系统应用程序的数字指纹通过校验的情况下,所述第二启动代码控制所述系统应用程序开始执行。
8.一种程序存储装置,其特征在于,包括:
编译模块,用于对系统的软件进行编译,得到初级启动代码、中级启动代码以及系统应用程序;所述初级启动代码用于启动主CPU,加载中级启动代码,并控制所述中级启动代码开始执行;所述中级启动代码用于获取并校验自身的数字指纹,并在所述中级启动代码的数字指纹通过校验的情况下,启动现场可编程门阵列、启动从CPU、加载系统应用程序、校验所述系统应用程序的数字指纹,并在所述系统应用程序的数字指纹通过校验的情况下,控制所述系统应用程序开始执行;
加密模块,用于确定所述中级启动代码的数字指纹以及所述系统应用程序的数字指纹;
存储模块,用于将所述初级启动代码、中级启动代码、系统应用程序、所述中级启动代码的数字指纹以及所述系统应用程序的数字指纹存储到预定位置;
所述中级启动代码包括第一启动代码和第二启动代码;所述加密模块具体用于:
利用第一预定算法对所述第一启动代码进行计算,得到所述第一启动代码的数字指纹;
利用第二预定算法对所述第二启动代码进行计算,得到所述第二启动代码的数字指纹;
利用第三预定算法对系统应用程序进行计算,得到所述系统应用程序的数字指纹;
其中,所述第一启动代码用于获取并校验自身的数字指纹,并在所述第一启动代码的数字指纹通过校验的情况下,初始化最小系统,并启动所述现场可编程门阵列;所述第一启动代码还用于加载所述第二启动代码,获取并校验所述第二启动代码的数字指纹;在所述第二启动代码的数字指纹通过校验的情况下,所述第一启动代码控制所述第二启动代码开始执行;所述第二启动代码启动从CPU、加载所述系统应用程序、获取并校验所述系统应用程序的数字指纹,并在所述系统应用程序的数字指纹通过校验的情况下,所述第二启动代码控制所述系统应用程序开始执行。
CN201811341020.XA 2018-10-19 2018-11-12 启动方法及装置、程序存储方法及装置 Active CN109491716B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811222516 2018-10-19
CN2018112225165 2018-10-19

Publications (2)

Publication Number Publication Date
CN109491716A CN109491716A (zh) 2019-03-19
CN109491716B true CN109491716B (zh) 2021-11-16

Family

ID=65695732

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811341020.XA Active CN109491716B (zh) 2018-10-19 2018-11-12 启动方法及装置、程序存储方法及装置

Country Status (1)

Country Link
CN (1) CN109491716B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113056726A (zh) * 2020-06-30 2021-06-29 深圳市大疆创新科技有限公司 用于相机的启动、激活的方法和相机、云台
CN112131537B (zh) * 2020-09-25 2023-10-20 北京计算机技术及应用研究所 一种对zynq芯片程序镜像文件的加解密的方法
CN113642006A (zh) * 2021-08-30 2021-11-12 南方电网数字电网研究院有限公司 双核继电保护系统安全启动方法

Citations (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1425963A (zh) * 2001-12-11 2003-06-25 深圳市中兴通讯股份有限公司上海第二研究所 嵌入式系统软件加载装置及方法
CN101136768A (zh) * 2006-09-01 2008-03-05 中兴通讯股份有限公司 通信设备的软件及硬件版本管理方法和系统
CN101609977A (zh) * 2008-06-19 2009-12-23 北京赤那思电气技术有限公司 电容器组保护与状态监测装置及其方法
CN101620885A (zh) * 2009-08-07 2010-01-06 福建星网锐捷网络有限公司 一种从flash上引导系统的操作方法及装置
CN101702085A (zh) * 2009-07-17 2010-05-05 深圳市华威世纪科技股份有限公司 一种远程监管安全可编程控制设备及其监控方法
CN101853171A (zh) * 2010-05-24 2010-10-06 福建星网锐捷网络有限公司 一种复杂可编程逻辑器件的在线升级方法及装置
CN101916216A (zh) * 2010-09-08 2010-12-15 神州数码网络(北京)有限公司 一种嵌入式操作系统中bootrom的自动修复装置和控制方法
CN102053849A (zh) * 2009-10-30 2011-05-11 杭州华三通信技术有限公司 分布式系统及其主系统和从系统以及代码加载方法
CN102073517A (zh) * 2009-11-23 2011-05-25 中兴通讯股份有限公司 一种嵌入式系统的升级、备份方法和装置
CN102520979A (zh) * 2011-11-22 2012-06-27 大唐移动通信设备有限公司 一种Boot程序的备份方法和设备
CN102662701A (zh) * 2012-03-28 2012-09-12 中兴通讯股份有限公司 Cpld在线升级方法、装置及业务单板
CN203206175U (zh) * 2012-12-21 2013-09-18 东南大学 一种基于双cpu结构的智能绕线式电机进相补偿控制器
CN103593622A (zh) * 2013-11-05 2014-02-19 浪潮集团有限公司 一种基于fpga的安全可信计算机的设计方法
CN103631674A (zh) * 2012-08-24 2014-03-12 京信通信系统(中国)有限公司 嵌入cpu的fpga及其启动方法
CN103927210A (zh) * 2014-04-22 2014-07-16 唐山轨道客车有限责任公司 基于cpld的fpga加载系统
CN104808572A (zh) * 2015-03-13 2015-07-29 沈阳中科博微自动化技术有限公司 基于功能安全的高完整性plc控制器
CN105447403A (zh) * 2015-11-05 2016-03-30 天津津航计算技术研究所 一种适用于嵌入式实时信息处理单元的加密方法
CN105938445A (zh) * 2015-07-31 2016-09-14 杭州迪普科技有限公司 数据备份方法以及装置
CN105959142A (zh) * 2016-05-03 2016-09-21 中国铁路总公司 高可靠性、高安全性智能以太网通信板
CN106775674A (zh) * 2016-11-29 2017-05-31 深圳市恒扬数据股份有限公司 一种基于通用引导加载程序的设备及其启动方法
CN107967193A (zh) * 2017-12-25 2018-04-27 北京四达时代软件技术股份有限公司 Boot启动方法和嵌入式设备
CN108229132A (zh) * 2017-12-27 2018-06-29 北京和利时系统工程有限公司 一种安全启动方法和装置、终端
CN108491735A (zh) * 2018-03-07 2018-09-04 京信通信系统(中国)有限公司 Nor Flash安全存储方法、装置和设备

Patent Citations (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1425963A (zh) * 2001-12-11 2003-06-25 深圳市中兴通讯股份有限公司上海第二研究所 嵌入式系统软件加载装置及方法
CN101136768A (zh) * 2006-09-01 2008-03-05 中兴通讯股份有限公司 通信设备的软件及硬件版本管理方法和系统
CN101609977A (zh) * 2008-06-19 2009-12-23 北京赤那思电气技术有限公司 电容器组保护与状态监测装置及其方法
CN101702085A (zh) * 2009-07-17 2010-05-05 深圳市华威世纪科技股份有限公司 一种远程监管安全可编程控制设备及其监控方法
CN101620885A (zh) * 2009-08-07 2010-01-06 福建星网锐捷网络有限公司 一种从flash上引导系统的操作方法及装置
CN102053849A (zh) * 2009-10-30 2011-05-11 杭州华三通信技术有限公司 分布式系统及其主系统和从系统以及代码加载方法
CN102073517A (zh) * 2009-11-23 2011-05-25 中兴通讯股份有限公司 一种嵌入式系统的升级、备份方法和装置
CN101853171A (zh) * 2010-05-24 2010-10-06 福建星网锐捷网络有限公司 一种复杂可编程逻辑器件的在线升级方法及装置
CN101916216A (zh) * 2010-09-08 2010-12-15 神州数码网络(北京)有限公司 一种嵌入式操作系统中bootrom的自动修复装置和控制方法
CN102520979A (zh) * 2011-11-22 2012-06-27 大唐移动通信设备有限公司 一种Boot程序的备份方法和设备
CN102662701A (zh) * 2012-03-28 2012-09-12 中兴通讯股份有限公司 Cpld在线升级方法、装置及业务单板
CN103631674A (zh) * 2012-08-24 2014-03-12 京信通信系统(中国)有限公司 嵌入cpu的fpga及其启动方法
CN203206175U (zh) * 2012-12-21 2013-09-18 东南大学 一种基于双cpu结构的智能绕线式电机进相补偿控制器
CN103593622A (zh) * 2013-11-05 2014-02-19 浪潮集团有限公司 一种基于fpga的安全可信计算机的设计方法
CN103927210A (zh) * 2014-04-22 2014-07-16 唐山轨道客车有限责任公司 基于cpld的fpga加载系统
CN104808572A (zh) * 2015-03-13 2015-07-29 沈阳中科博微自动化技术有限公司 基于功能安全的高完整性plc控制器
CN105938445A (zh) * 2015-07-31 2016-09-14 杭州迪普科技有限公司 数据备份方法以及装置
CN105447403A (zh) * 2015-11-05 2016-03-30 天津津航计算技术研究所 一种适用于嵌入式实时信息处理单元的加密方法
CN105959142A (zh) * 2016-05-03 2016-09-21 中国铁路总公司 高可靠性、高安全性智能以太网通信板
CN106775674A (zh) * 2016-11-29 2017-05-31 深圳市恒扬数据股份有限公司 一种基于通用引导加载程序的设备及其启动方法
CN107967193A (zh) * 2017-12-25 2018-04-27 北京四达时代软件技术股份有限公司 Boot启动方法和嵌入式设备
CN108229132A (zh) * 2017-12-27 2018-06-29 北京和利时系统工程有限公司 一种安全启动方法和装置、终端
CN108491735A (zh) * 2018-03-07 2018-09-04 京信通信系统(中国)有限公司 Nor Flash安全存储方法、装置和设备

Also Published As

Publication number Publication date
CN109491716A (zh) 2019-03-19

Similar Documents

Publication Publication Date Title
CN109491716B (zh) 启动方法及装置、程序存储方法及装置
CN104956374A (zh) 用于软件防回滚恢复的方法
US20160275019A1 (en) Method and apparatus for protecting dynamic libraries
US10346179B2 (en) Information processing apparatus, server apparatus, information processing system, control method, and computer program
KR101695639B1 (ko) 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템
CN105573780A (zh) 一种基于容器的移动终端操作系统升级方法和装置
CN110874467B (zh) 信息处理方法、装置、系统以及处理器、存储介质
US20160162686A1 (en) Method for verifying integrity of dynamic code using hash background of the invention
CN108154025A (zh) 嵌入式设备启动的方法、应用程序镜像处理的方法及装置
US10855451B1 (en) Removable circuit for unlocking self-encrypting data storage devices
US20210367781A1 (en) Method and system for accelerating verification procedure for image file
JP2021179982A (ja) シリコンデバイスファームウェア上のロールバック攻撃を防止するセキュリティシステム、および、方法
CN111095200A (zh) 嵌入式程序的安全升级方法、装置、设备及存储介质
CN113177201A (zh) 程序校验、签名方法及装置、soc芯片
CN114003915A (zh) 基于芯片的安全启动方法及装置
US20200233676A1 (en) Bios management device, bios management system, bios management method, and bios management program-stored recording medium
CN113553115A (zh) 一种基于异构多核芯片的启动方法以及存储介质
CN115080088A (zh) 基于ota技术的软件升级方法、系统及介质
CN112613011B (zh) U盘系统认证方法、装置、电子设备及存储介质
CN109753788B (zh) 内核运行时的完整性校验方法及计算机可读存储介质
CN113360914A (zh) 一种bios更新的方法、系统、设备及介质
WO2019057612A1 (en) DEPLOYMENT DISTRIBUTED FROM A SINGLE MICRO-SOFTWARE
KR20230082388A (ko) 차량 제어기의 부트로더 검증 장치 및 그 방법
CN111695164B (zh) 电子设备及其控制方法
US20230129942A1 (en) Method for locking a rewritable non-volatile memory and electronic device implementing said method

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
TR01 Transfer of patent right

Effective date of registration: 20220901

Address after: 1610, 16th floor, 101-2-16th floor, building 21, Rongda Road, Chaoyang District, Beijing 100012

Patentee after: Zhongguancun Technology Leasing Co.,Ltd.

Address before: 100192 201, block a, 25 Yongtai Middle Road, Haidian District, Beijing

Patentee before: BEIJING AUTOROAD TECH Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231110

Address after: 101-404, 4th Floor, Building 11, Courtyard 8, Liangshuihe Second Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing, 100176

Patentee after: BEIJING AUTOROAD TECH Co.,Ltd.

Address before: 1610, 16th floor, 101-2-16th floor, building 21, Rongda Road, Chaoyang District, Beijing 100012

Patentee before: Zhongguancun Technology Leasing Co.,Ltd.

TR01 Transfer of patent right