CN112965754B - 一种系统启动的方法及嵌入式设备 - Google Patents

一种系统启动的方法及嵌入式设备 Download PDF

Info

Publication number
CN112965754B
CN112965754B CN201911281661.5A CN201911281661A CN112965754B CN 112965754 B CN112965754 B CN 112965754B CN 201911281661 A CN201911281661 A CN 201911281661A CN 112965754 B CN112965754 B CN 112965754B
Authority
CN
China
Prior art keywords
initialization
memory
operating environment
parameter set
reserved memory
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
CN201911281661.5A
Other languages
English (en)
Other versions
CN112965754A (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.)
Hefei Jiefa Technology Co ltd
Original Assignee
Hefei Jiefa 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 Hefei Jiefa Technology Co ltd filed Critical Hefei Jiefa Technology Co ltd
Priority to CN201911281661.5A priority Critical patent/CN112965754B/zh
Publication of CN112965754A publication Critical patent/CN112965754A/zh
Application granted granted Critical
Publication of CN112965754B publication Critical patent/CN112965754B/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
    • G06F9/4406Loading of operating system
    • 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
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种系统启动的方法,其中该系统包括第一运行环境和第二运行环境,其中启动第一运行环境先于启动第二运行环境,方法包括:在第一运行环境中,对主存储器执行第一初始化操作,以实现系统启动中的启动第一运行环境,并将完成第一初始化操作得到的初始化参数集保存到预留存储器中;以及使用预留存储器中保存的初始化参数集,以实现主存储器在第二运行环境中的初始化,从而实现系统启动中的启动第二运行环境。本发明还提供了相应的嵌入式设备。本发明降低系统启动所需的时间,从而加快系统启动速度。

Description

一种系统启动的方法及嵌入式设备
技术领域
本发明的所公开实施例涉及嵌入式系统技术领域,且更具体而言,涉及一种系统启动的方法及嵌入式设备。
背景技术
嵌入式系统的启动一般经过Preloader、uboot、kernel等多个运行环境,其中,这些运行环境中均需要使用某些设备,例如,主存储器。在嵌入式系统中,主存储器中存储该系统中所有的镜像文件。例如,系统启动镜像文件存储于主存储器中。这样,启动该系统,则需要从主存储器中读取系统启动镜像文件,但是,先对主存储器进行初始化,随后,才能从主存储器中读取系统启动的相应镜像文件。
然而,主存储器的初始化操作存在一定耗时(大概是几十毫秒到几百毫秒之间),并且系统的启动过程中,多个运行环境中都需要初始化主存储器,从而增长系统启动的时间。
发明内容
根据本发明的实施例,提供一种系统启动的方法及嵌入式设备,以解决上述问题,降低系统启动的时间。
本发明解决上述技术问题所采用的一技术方案是提供了一种系统启动的方法,其中所述系统包括第一运行环境和第二运行环境,其中启动所述第一运行环境先于启动所述第二运行环境,所述方法包括:在所述第一运行环境中,对主存储器执行第一初始化操作,以实现系统启动中的启动所述第一运行环境,并将完成第一初始化操作得到的初始化参数集保存到预留存储器中;以及使用预留存储器中保存的初始化参数集,以实现所述主存储器在所述第二运行环境中的初始化,从而实现系统启动中的启动所述第二运行环境。
本发明解决上述技术问题所采用的另一技术方案是提供了一种嵌入式设备,包括处理器、主存储器和预留存储器,所述主存储器存储有指令,所述指令在执行时使得所述处理器通过所述预留存储器执行上述的系统启动的方法。
本发明解决上述技术问题所采用的又一技术方案是提供了一种一种计算机可读存储介质,其特征在于,存储有处理器可运行的指令,所述指令在执行时使得所述处理器通过预留存储器执行上述的系统启动的方法。
本发明的有益效果有:通过在第一运行环境中对主存储器执行第一初始化操作,将第一初始化操作完成后得到的初始化参数集保存到预留存储器中,进而在第二运行环境中直接使用预留存储器中保存的初始化参数集来实现主存储器在第二运行环境中的初始化,避免在第二运行环境中对主存储器再次执行第一初始化操作,实现了系统启动过程中的启动第一运行环境和第二运行环境,同时,减少系统启动过程中对主存储器执行第一初始化操作的次数,节省时间,降低系统启动所需的时间,从而加快系统启动速度。
附图说明
图1是根据本发明第一实施例的系统启动的方法的流程图。
图2是根据本发明第二实施例的系统启动的方法的流程图。
图3是根据本发明第三实施例的系统启动的方法的流程图。
图4是根据本发明第四实施例的系统启动的方法的流程图。
图5是根据本发明实施例的对主存储器执行第一初始化操作的流程图。
图6是根据本发明第五实施例的系统启动的方法的流程图。
图7是根据本发明第六实施例的系统启动的方法的流程图。
图8是本发明实施例的嵌入式设备的结构示意图。
具体实施方式
为使本领域的技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明的技术方案做进一步详细描述。
如图1所示,为根据本发明第一实施例的系统启动的方法的流程图。该方法可以用于嵌入式设备,例如,手机、平板、智能电视、车机等。该嵌入式设备包括第一存储器和第二存储器,其中第一存储器用作该嵌入式设备的主存储器,第二存储器用作嵌入式设备的预留存储器(reserved memory),可以称为运行内存。该嵌入式设备安装有系统。本领域技术人员可以了解的是,在该系统启动的过程中,在其Preloader、uboot、kernel等运行环境中均需要初始化主存储器,以分别实现启动相应的运行环境。其中,该系统包括第一运行环境和第二运行环境,启动第一运行环境先于启动第二运行环境。例如,第一运行环境为Preloader,第二运行环境为uboot或kernel。又例如,第一运行环境为uboot,第二运行环境为kernel。
下面以该系统启动过程中在第一运行环境和第二运行环境中需要初始化主存储器为例进行说明。该方法包括以下步骤:
步骤S11:在第一运行环境中,对主存储器执行第一初始化操作,以实现系统启动中的启动第一运行环境,并将完成第一初始化操作得到的初始化参数集保存到预留存储器中。
对主存储器执行第一初始化操作,是指嵌入式设备的主机向主存储器的控制器发送相关指令,以配置相关寄存器以得到初始化参数集,从而实现初始化主存储器。即初始化参数集用于初始化主存储器。需要注意的是,在对主存储器执行第一初始化操作时,需要先给主存储器上电,即给主存储器供电。
其中,主存储器可以包括eMMC(embeded MultiMedia Card)存储器,是一种闪存(Flash)。
步骤S12:使用预留存储器中保存的初始化参数集,以实现主存储器在第二运行环境中的初始化,从而实现系统启动中的启动第二运行环境。
在第二运行环境中,直接使用预留存储器中保存的初始化参数集来实现主存储器在第二运行环境中的初始化,从而实现启动第二运行环境。
需要注意的是,如上所述,在系统启动过程中,对主存储器执行初始化操作时,需要先给主存储器上电。在给主存储器上电后,还需要保持给主存储器供电,这样,主存储器保持处于传输(transfer)状态。
本实施例中,通过在第一运行环境中对主存储器执行第一初始化操作,将第一初始化操作完成后得到的初始化参数集保存到预留存储器中,进而在第二运行环境中直接使用预留存储器中保存的初始化参数集来实现主存储器在第二运行环境中的初始化,避免在第二运行环境中对主存储器再次执行第一初始化操作,实现了系统启动过程中的启动第一运行环境和第二运行环境,同时,减少系统启动过程中对主存储器执行第一初始化操作的次数,节省时间,降低系统启动所需的时间,从而加快系统启动速度。
在一些实施例中,将在第一运行环境中对主存储器执行第一初始化操作之后得到的初始化参数集保存到预留存储器时,为了保证数据的正确性,可以对该初始化参数集进行运算,以得到该初始化参数集的预设循环冗余校验(Cyclic Redundancy Check,CRC)值,并将该预设循环冗余校验值与该初始化参数集一起保存到预留存储器中。例如,在预留存储器中,该预设循环冗余校验值可以位于该初始化参数集之后。
如图2所示,为根据本发明第二实施例的系统启动的方法的流程图。该方法在上述实施例的基础上,步骤S12包括:
步骤S121:自预留存储器中获取初始化参数集。
预留存储器中保存的初始化参数集是在第一运行环境中对主存储器执行第一初始化操作而得到的。
步骤S122:对自预留存储器中获取的初始化参数集进行校验。
若自预留存储器中获取的初始化参数集通过校验,则执行步骤S123。
步骤S123:若自预留存储器中获取的初始化参数集通过校验,则执行主存储器在第二运行环境中的第二初始化操作或第三初始化操作。
其中,执行第一初始化操作、第二初始化操作和第三初始化操作所需的时间依次递减。执行第二初始化操作或第三初始化操作可以是执行第一初始化操作中的部分操作,或者跳过执行第一初始化操作中的部分操作。
本实施例中,通过自预留存储器中获取初始化参数集,并对初始化参数集进行校验,在初始化参数集通过校验时跳过主存储器在第二运行环境中的第一初始化操作,使得在第二运行环境中无需再对主存储器执行第一初始化操作,并且提高初始化参数集的正确性,从而使得主存储器在第二运行环境中直接运行。
若自预留存储器中获取的初始化参数集没有通过校验,表示嵌入式设备不能使用预留存储器保存的初始化参数集来实现主存储器在第二运行环境中的初始化。
此时,在一些实施例中,该方法还包括:在第二运行环境中,对主存储器执行第一初始化操作,以实现系统启动中的启动第二运行环境。
由于在第二运行环境中对主存储器再次执行第一初始化操作,则可以得到完成第一初始化操作后的初始化参数集。进一步地,该方法还包括:更新预留存储器。更新预留存储器,则预留存储器中保存的初始化参数集可用于系统启动中的后续运行环境中初始化主存储器。
具体地,在一些实施例中,更新预留存储器,则将在第二运行环境中对主存储器执行第一初始化操作得到的初始化参数集更新到预留存储器中。这样,在第二运行环境中对主存储器执行第一初始化操作得到的初始化参数集替换在第一运行环境中对主存储器执行第一初始化操作得到的初始化参数集,作为预留存储器中保存的初始化参数集。
同样地,为了保证数据的正确性,将在第二运行环境中对主存储器执行第一初始化操作得到的初始化参数集更新到预留存储器时,可以对该初始化参数集进行运算,以得到该初始化参数集的预设循环冗余校验值,并将该设循环冗余校验值与该初始化参数集一起保存到预留存储器中。例如,在预留存储器中,该预设循环冗余校验值可以位于该初始化参数集之后。
在一些实施例中,系统还包括第三运行环境,在系统启动过程中,在第三运行环境中也需要初始化主存储器,以实现启动第三运行环境。其中启动第三运行环境后于启动第二运行环境。例如,第一运行环境为Preloader,第二运行环境为uboot,第三运行环境为Kernel。
如图3所示,为根据本发明第三实施例的系统启动的方法的流程图。该方法在上述实施例的基础上,该方法进一步包括:
步骤S13:使用预留存储器中保存的初始化参数集,以实现主存储器在第三运行环境中的初始化,从而实现系统启动中的启动第三运行环境。
在第三运行环境中,直接使用预留存储器中保存的初始化参数集来实现主存储器在第三运行环境中的初始化,从而实现启动第三运行环境。
本实施例中,通过在第三运行环境中也直接使用预留存储器中保存的初始化参数集来实现主存储器在第三运行环境中的初始化,避免在第三运行环境中对主存储器再次执行第一初始化操作,实现了系统启动过程中的启动第一运行环境、第二运行环境和第三运行环境,同时,进一步减少系统启动过程中对主存储器执行第一初始化操作的次数,节省时间,进一步降低系统启动所需时间,从而加快系统启动速度。
如图4所示,为根据本发明第四实施例的系统启动的方法的流程图。该方法在上述实施例的基础上,步骤S13包括:
步骤S131:自预留存储器中获取初始化参数集。
预留存储器中保存的初始化参数集可以是系统启动的启动前面的运行环境中对主存储器执行初始化操作而得到的。例如,预留存储器中保存的初始化参数集是在第一运行环境中对主存储器执行第一初始化操作而得到的。又例如,预留存储器中保存的初始化参数集是执行主存储器在第二运行环境中的第二初始化操作或第三初始化操作而更新的。又例如,预留存储器中保存的初始化参数集是在第二运行环境中对主存储器执行第一初始化操作而更新的。
步骤S132:对自预留存储器中获取的初始化参数集进行校验。
若自预留存储器中获取的初始化参数集通过校验,则执行步骤S133。
步骤S133:若自预留存储器中获取的初始化参数集通过校验,则执行主存储器在第三运行环境中的第二初始化操作或第三初始化操作。
本实施例中,通过自预留存储器中获取初始化参数集,并对初始化参数集进行校验,在初始化参数集通过校验时跳过主存储器在第三运行环境中的第一初始化操作,使得在第三运行环境中无需再对主存储器执行第一初始化操作,并且提高初始化参数集的正确性,从而使得主存储器在第二运行环境中直接运行。
若自预留存储器中获取的初始化参数集没有通过校验,表示嵌入式设备不能使用预留设备中保存的初始化参数集来实现主存储器在第三运行环境中的初始化。
此时,在一些实施例中,该方法还包括:在第三运行环境中,对主存储器执行第一初始化操作,以实现系统启动中的启动第三运行环境。
由于在第三运行环境中对主存储器再次执行第一初始化操作,则可以得到完成第一初始化操作后的初始化参数集。进一步地,该方法还包括更新预留存储器。
具体地,在一些实施例中,更新预留存储器,则将在第三运行环境中对主存储器执行第一初始化操作得到的初始化参数集更新到预留存储器中。这样,在第三运行环境中对主存储器执行第一初始化操作得到的初始化参数集替换在第二运行环境中对主存储器执行第一初始化操作、第二初始化操作或第三初始化操作而得到或更新的初始化参数集,作为预留存储器中保存的初始化参数集。同样地,为了保证数据的正确性,将在第三运行环境中对主存储器执行第一初始化操作得到的初始化参数集更新到预留存储器时,可以计算得到该初始化参数集的预设循环冗余校验值,详见上述实施例的说明,为了简便,在此不再赘述。
在一些实施例中,对自预留存储器中获取的初始化参数集进行校验,首先,对自预留存储器中获取的初始化参数集进行运算,以得到循环冗余校验值;随后,将该循环冗余校验值与预设循环冗余校验值进行比较;随后,若循环冗余校验值与预设循环冗余校验值相等,则判定自预留存储器中获取的初始化参数集通过校验。其中,预设循环冗余校验值可以为该初始化参数集保存到预留存储器时根据该初始化参数集而计算的预设循环冗余校验值。
如上所述,对主存储器执行第一初始化操作,是指嵌入式设备的主机向主存储器的控制器发送相关指令,以配置相关寄存器以得到初始化参数集,从而实现初始化主存储器。主存储器可以包括eMMC存储器。下面以主存储器为eMMC存储器为例说明,说明对eMMC存储器执行初始化操作。需要说明的是,如上所述,对主存储器执行初始化操作时,需要先给主存储器上电(power up),在主存储器为eMMC存储器的示例中,上电包括设置电源电压为1.8v,以及设置工作时钟为400kHz。
如图5所示,为根据本发明实施例的执行第一初始化操作的流程图。执行第一初始化操作包括:
步骤S51:初始化eMMC存储器的低速模式;
具体地,在一些实施例中,步骤S51包括:
步骤S511:发送CMD0。
嵌入式设备的主机发送CMD0,以复位eMMC存储器;
步骤S512:发送CMD1。
嵌入式设备的主机发送CMD1,以设置eMMC存储器的工作电压寄存器(operationcondition register,OCR),并检测上电是否完成。
其中,工作电压寄存器的大小为32bit,用于存储嵌入式设备所支持的Vdd电压和数据寻址模式。
步骤S513:发送CMD2。
嵌入式设备的主机发送CMD2,以获取设备识别(device identification,CID)寄存器,并使eMMC存储器进入识别(ident)状态。
其中,CID寄存器的大小为128bit,用于记录eMMC存储器的厂家号、产品号、串号和生产日期。
步骤S514:发送CMD3。
嵌入式设备的主机发送CMD3,以设置相对设备地址(relative Device address,RCA)寄存器,以使该RCA寄存器进入stand-by状态。
其中,RCA寄存器的大小为16bit,用于存储主机分配的设备地址。
步骤S515:发送CMD9。
嵌入式设备的主机发送CMD9,以获取设备专用数据(Device-specific dataregister,CSD)寄存器。
其中,该CSD寄存器的大小为128bit,用于提供关于如何访问设备内容的信息。例如CSD寄存器定义数据格式、纠错类型、最大数据访问时间和数据传输速度。
步骤S516:发送CMD7。
嵌入式设备的主机发送CMD7,以选择eMMC存储器,以使eMMC存储器进入transfer状态。
步骤S517:发送CMD8。
嵌入式设备的主机发送CMD8,以获得EXT_CSD(Extended CSD)寄存器。
其中EXT_CSD寄存器的大小为512byte,用于定义设备属性和所选模式。
步骤S52:设置eMMC存储器的高速模式。
具体地,在一些实施例中,步骤S52包括:
步骤S521:发送CMD6。
嵌入式设备的主机发送CMD6,以设置数据速率为高速speed,并设置数据总线宽度。
步骤S522:发送CMD21。
嵌入式设备的主机发送CMD21,以调整时序。
执行第一初始化操作之后,嵌入式设备的主机可以发送CMD17、CMD18、CMD24、CMD25以访问(包括读写)eMMC存储器中的数据,从而获取系统启动中的不同运行环境的镜像文件,实现不同运行环境启动。
可以看出,对eMMC存储器执行第一初始化操作后得到的初始化参数集包括低速模式参数和高速模式参数,其中低速模式参数包括OCR的参数、CID寄存器的参数、CSD寄存器的参数、EXT_CSD寄存器的参数和RCA寄存器的参数。高速模式参数包括数据速率和数据总线宽度。另外,可以看出,对eMMC存储器执行第一初始化操作存在一定耗时,通过上述实施例的方法,在系统启动中,减少对eMMC存储器执行第一初始化操作的次数,进而节省了上述执行第一初始化操作所需的时间,降低系统启动所需时间,从而加快系统启动速度。
在一些实施例中,在系统启动中,在不同的运行环境中,上述执行第一初始化操作中的初始化eMMC存储器的低速模式相同,也就是说,在第一运行环境、第二运行环境和第三运行环境中,实现eMMC存储器的初始化所需的低速模式参数相同。然而,上述执行第一初始化操作的设置eMMC存储器的高速模式不同,也就是说,在第一运行环境、第二运行环境和第三运行环境中,实现eMMC存储器的初始化所需的高速模式参数不同。例如,在第一运行环境和第二运行环境中,设置的高速模式参数为DDR/50MHz,在第三运行环境中设置的高速模式参数为HS400/200MHz。
执行第一初始化操作、第二初始化操作和第三初始化操作所需的时间依次递减。
具体地,执行第二初始化操作包括跳过上述步骤S51并执行上述步骤52。执行第三初始化操作包括跳过上述步骤S51和跳过上述步骤S52。也就是说,执行第二初始化操作的过程中,仅设置eMMC存储器的高速模式。执行第三初始化操作,即不做任何处理。
如图6所示,为根据本发明第五实施例的系统启动的方法的流程图。该方法包括以下步骤:
步骤S61:在第一运行环境中,对eMMC存储器执行第一初始化操作,以实现系统启动中的启动第一运行环境,并将完成第一初始化操作得到的初始化参数集保存到预留存储器中。
步骤S62:使用预留存储器中保存的初始化参数集,以实现eMMC存储器在第二运行环境中的初始化,从而实现系统启动中的启动第二运行环境。
具体地,在一些实施例中,步骤S62包括:
步骤S621:自预留存储器中获取初始化参数集。
预留存储器中保存的初始化参数集可以是系统启动的启动前面的第一运行环境中对eMMC存储器执行第一初始化操作而得到的。
步骤S622:对自预留存储器中获取的初始化参数集进行校验。
若自预留存储器中获取的初始化参数集通过校验,则执行步骤S623。若自预留存储器中获取的初始化参数集没有通过校验,则表示嵌入式设备不能使用预留存储器保存的初始化参数集来实现eMMC存储器在第二运行环境中的初始化。
步骤S623:判断自预留存储器获取的初始化参数集中的高速模式参数是否满足启动第二运行环境的需求。
若初始化参数集中的高速模式参数满足启动第二运行环境的需求,则执行步骤S624,若初始化参数集中的高速模式参数不满足启动第二运行环境的需求,则执行步骤S625。
步骤S624:表示eMMC存储器在第二运行环境中的初始化已被完成,即执行eMMC存储器在第二运行环境中的第三初始化操作。由于执行第三初始化操作包括跳过初始化eMMC存储器的低速模式和跳过设置eMMC存储器的高速模式,则表示eMMC存储器在第二运行环境中已被初始化。
步骤S625:在第二运行环境中设置eMMC存储器的高速模式。此时,在第二运行环境中跳过初始化eMMC存储器的低速模式,也就是说,在第二运行环境中执行第二初始化操作。
步骤S626:更新预留存储器。
具体地,在一些实施例中,更新预留存储器,则将在第二运行环境中设置eMMC存储器的高速模式得到的高速模式参数更新到预留存储器中。这样,在第二运行环境中设置eMMC存储器的高速模式得到的高速模式参数替换在第一运行环境中对eMMC存储器执行初始化操作得到的高速模式参数,与在第一运行环境中对eMMC存储器执行初始化操作得到的低速模式参数一起作为预留存储器中保存的初始化参数集。
同样地,为了保证数据的正确性,将在第二运行环境中设置eMMC存储器的高速模式得到的高速模式参数更新到预留存储器时,可以对第二运行环境中设置的高速模式参数和第一运行环境中得到的低速模式参数进行运算,以得到第二运行环境中设置的高速模式参数和第一运行环境中得到的低速模式参数所形成的初始化参数集的预设循环冗余校验值,并将该设循环冗余校验值与该初始化参数集一起保存到预留存储器中。例如,在预留存储器中,该预设循环冗余校验值可以位于该初始化参数集之后。
本实施例中,通过在初始化参数集中的高速模式参数不满足启动第二运行环境的需求,才重新设置eMMC存储器的高速模式,节省了在第二运行环境中执行初始化操作中初始化低速模式所耗费的时间。并通过在初始化参数集中的高速模式参数满足启动第二运行环境的需求,不需要在第二运行环境中设置eMMC存储器的高速模式,直接实现了在第二运行环境中的初始化,也节省了设置高速模式所耗费的时间。
如图7所示,为根据本发明第六实施例的系统启动的方法的流程图。该方法包括以下步骤:
步骤S71:在第一运行环境中,对eMMC存储器执行第一初始化操作,以实现系统启动中的启动第一运行环境,并将完成第一初始化操作得到的初始化参数集保存到预留存储器中。
步骤S72:使用预留存储器中保存的初始化参数集,以实现eMMC存储器在第二运行环境中的初始化,从而实现系统启动中的启动第二运行环境。
具体地,在一些实施例中,步骤S72包括:
步骤S721:自预留存储器中获取初始化参数集。
预留存储器中保存的初始化参数集可以是系统启动的启动前面的第一运行环境中对eMMC存储器执行第一初始化操作而得到的。
步骤S722:对自预留存储器中获取的初始化参数集进行校验。
若自预留存储器中获取的初始化参数集通过校验,则执行步骤S723。若自预留存储器中获取的初始化参数集没有通过校验,则表示嵌入式设备不能使用预留存储器保存的初始化参数集来实现eMMC存储器在第二运行环境中的初始化。
步骤S723:判断自预留存储器获取的初始化参数集中的高速模式参数是否满足启动第二运行环境的需求。
若初始化参数集中的高速模式参数满足启动第二运行环境的需求,则执行步骤S724,若初始化参数集中的高速模式参数不满足启动第二运行环境的需求,则执行步骤S725。
步骤S724:表示eMMC存储器在第二运行环境中的初始化已被完成。即执行eMMC存储器在第二运行环境中的第三初始化操作。即。
步骤S725:在第二运行环境中设置eMMC存储器的高速模式。即在第二运行环境中执行第二初始化操作。
步骤S726:更新预留存储器。该步骤S726与上述实施例中的步骤S626相同,相关说明参见上述实施例。
步骤S73:使用预留存储器中保存的初始化参数集,以实现eMMC存储器在第三运行环境中的初始化,从而实现系统启动中的启动第三运行环境。
具体地,在一些实施例中,步骤S73包括:
步骤S731:自预留存储器中获取初始化参数集。
预留存储器中保存的初始化参数集是第二运行环境中设置eMMC存储器的高速模式得到的高速模式参数和第一运行环境中初始化eMMC存储器的低速模式得到的低速模式参数。
步骤S732:对自预留存储器中获取的初始化参数集进行校验。
若自预留存储器中获取的初始化参数集通过校验,则执行步骤S733。若自预留存储器中获取的初始化参数集没有通过校验,则表示嵌入式设备不能使用预留存储器保存的初始化参数集来实现eMMC存储器在第三运行环境中的初始化。
步骤S733:判断自预留存储器获取的初始化参数集中的高速模式参数是否满足启动第三运行环境的需求;
若初始化参数集中的高速模式参数满足启动第三运行环境的需求,则执行步骤S734,若初始化参数集中的高速模式参数不满足启动第三运行环境的需求,则执行步骤S735。
步骤S734:表示eMMC存储器在第三运行环境中的初始化已被完成。此时,在第三运行环境中跳过初始化eMMC存储器的低速模式,并跳过设置eMMC存储器的高速模式。也就是说,执行eMMC存储器在第三运行环境中的第三初始化操作。
步骤S735:在第三运行环境中设置eMMC存储器的高速模式。此时,在第三运行环境中跳过初始化eMMC存储器的低速模式,也就是说,在第三运行环境中执行第二初始化操作。
步骤S736:更新预留存储器。
具体地,在一些实施例中,更新预留存储器,则将在第三运行环境中设置eMMC存储器的高速模式得到的高速模式参数更新到预留存储器中。这样,在第三运行环境中设置eMMC存储器的高速模式得到的高速模式参数替换完成eMMC存储器在第二运行环境中的初始化操作得到的高速模式参数,与eMMC存储器在第二运行环境中的初始化操作得到的低速模式参数一起作为预留存储器中保存的初始化参数集。同样地,为了保证数据的正确性,将在第三运行环境中设置eMMC存储器的高速模式得到的高速模式参数更新到预留存储器时,可以计算得到第三运行环境中设置的高速模式参数和前面运行环境中得到的低速模式参数所形成的初始化参数集的预设循环冗余校验值,与上述实施例的说明类似,为了简便,在此不再赘述。
本实施例中,通过在初始化参数集中的高速模式参数不满足启动第二运行环境和第三运行环境的需求,才重新设置eMMC存储器的高速模式,节省了在第二运行环境和第三运行环境中执行初始化模式中初始化低速模式所耗费的时间。并且,通过在初始化参数集中的高速模式参数满足启动第二运行环境和第三运行环境的需求,不需要重新设置eMMC存储器的高速模式,直接实现了在第二运行环境和第三运行环境中的初始化操作,也节省了设置高速模式所耗费的时间。
如图8所示,是根据本发明实施例的嵌入式设备的结构示意图,该嵌入式设备800可以为手机、平板、智能电视、车机等。该嵌入式设备800包括第一存储器810a、第二存储器810b和处理器820。
其中,第一存储器810a用作该嵌入式设备的主存储器,第二存储器810b用作嵌入式设备的预留存储器,可以称为运行内存。
第一存储器810a存储有如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:操作指令,包括各种操作指令,用于实现各种操作;操作系统,包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
在一些实施例中,处理器820通过调用第一存储器810a存储的指令,可以通过第二存储器810b执行如下操作:
在第一运行环境中,对主存储器执行第一初始化操作,以实现系统启动中的启动第一运行环境,并将完成初始化操作得到的初始化参数集保存到预留存储器中;
使用预留存储器中保存的初始化参数集,以实现主存储器在第二运行环境中的初始化,从而实现系统启动中的启动第二运行环境。
对于根据本实施例的嵌入式设备中的各个组件的功能的具体描述,请参考上述系统启动的方法的相应实施例的相关描述。
上述本发明实施例揭示的方法可以应用于处理器820中,或者由处理器820实现。处理器820可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器820中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器820可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于第一存储器810a,处理器820读取第一存储器810a中的信息,结合其硬件完成上述方法的步骤。
所属领域的技术人员易知,可在保持本发明的教示内容的同时对装置及方法作出诸多修改及变动。因此,以上公开内容应被视为仅受随附权利要求书的范围的限制。

Claims (10)

1.一种系统启动的方法,其特征在于,所述系统包括第一运行环境和第二运行环境,其中启动所述第一运行环境先于启动所述第二运行环境,所述方法包括:
在所述第一运行环境中,对主存储器执行第一初始化操作,以实现系统启动中的启动所述第一运行环境,并将完成所述第一初始化操作得到的初始化参数集保存到预留存储器中;以及
使用所述预留存储器中保存的初始化参数集,以实现所述主存储器在所述第二运行环境中的初始化,从而实现系统启动中的启动所述第二运行环境。
2.如权利要求1中所述的方法,其特征在于,
所述使用所述预留存储器中保存的初始化参数集,以实现所述主存储器在所述第二运行环境中的初始化包括:
自所述预留存储器中获取初始化参数集;
对自所述预留存储器中获取的初始化参数集进行校验;
若自所述预留存储器中获取的初始化参数集通过校验,则执行所述主存储器在所述第二运行环境中的第二初始化操作或第三初始化操作,其中执行所述第一初始化操作、所述第二初始化操作和所述第三初始化操作所需的时间依次递减;
所述方法进一步包括:
若自所述预留存储器中获取的初始化参数集没有通过校验,则在所述第二运行环境中,对所述主存储器执行所述第一初始化操作,以实现系统启动中的启动所述第二运行环境。
3.如权利要求2中所述的方法,其特征在于,所述系统还包括第三运行环境,其中启动所述第三运行环境后于启动所述第二运行环境;
所述方法进一步包括:
使用所述预留存储器中保存的初始化参数集,以实现所述主存储器在所述第三运行环境中的初始化,从而实现系统启动中的启动所述第三运行环境。
4.如权利要求3中所述的方法,其特征在于,
所述使用所述预留存储器保存的初始化参数集,以实现所述主存储器在所述第三运行环境中的初始化包括:
自所述预留存储器中获取初始化参数集;
对自所述预留存储器中获取的初始化参数集进行校验;
若自所述预留存储器中获取的初始化参数集通过校验,则执行所述主存储器在所述第三运行环境中的所述第二初始化操作或第三初始化操作;
所述方法进一步包括:
若自所述预留存储器中获取的初始化参数集没有通过校验,则在所述第三运行环境中,对所述主存储器执行所述第一初始化操作,以实现系统启动中的启动所述第三运行环境。
5.如权利要求2-4中任一项所述的方法,其特征在于,对自所述预留存储器中获取的初始化参数集进行校验,包括:
对自所述预留存储器中获取的初始化参数集进行运算,以得到循环冗余校验码;
将所述循环冗余校验码与预设循环冗余校验码进行比较;
若所述循环冗余校验码与所述预设循环冗余校验码相等,则判定自所述预留存储器中获取的初始化参数集通过校验。
6.如权利要求3或4所述的方法,其特征在于,所述主存储器包括eMMC存储器;
对所述主存储器执行所述第一初始化操作包括初始化所述eMMC存储器的低速模式和设置所述eMMC存储器的高速模式,其中完成所述第一初始化操作得到的初始化参数集包括低速模式参数和高速模式参数;
执行所述第二初始化操作包括跳过初始化所述eMMC存储器的低速模式并设置所述eMMC存储器的高速模式;
执行所述第三初始化操作包括:跳过初始化所述eMMC存储器的低速模式和跳过设置所述eMMC存储器的高速模式。
7.如权利要求6中所述的方法,其特征在于,
所述使用所述预留存储器中保存的初始化参数集,以实现所述主存储器在所述第二运行环境中的初始化进一步包括:
在自所述预留存储器获取的初始化参数集通过校验时,判断自所述预留存储器获取的初始化参数集中的高速模式参数是否满足启动所述第二运行环境的需求;
若是,则执行所述eMMC存储器在所述第二运行环境中的所述第三初始化操作;
若否,则在所述第二运行环境中执行所述第二初始化操作,并更新所述预留存储器。
8.如权利要求6中所述的方法,其特征在于,
所述使用所述 预留存储器中保存的初始化参数集,以实现所述主存储器在所述第三运行环境中的初始化进一步包括:
在自所述预留存储器获取的初始化参数集通过校验时,判断自所述预留存储器获取的初始化参数集中的高速模式参数是否满足启动所述第三运行环境的需求;
若是,则执行所述eMMC存储器在所述第三运行环境中的所述第三初始化操作;
若否,则在所述第三运行环境中执行所述第二初始化操作。
9.一种嵌入式设备,包括处理器、主存储器和预留存储器,所述主存储器存储有指令,所述指令在执行时使得所述处理器通过所述预留存储器执行如权利要求1-8中任一项所述的系统启动的方法。
10.一种计算机可读存储介质,其特征在于,存储有处理器可运行的指令,所述指令在执行时使得所述处理器通过预留存储器执行如权利要求1至8任一项所述的系统启动的方法。
CN201911281661.5A 2019-12-13 2019-12-13 一种系统启动的方法及嵌入式设备 Active CN112965754B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911281661.5A CN112965754B (zh) 2019-12-13 2019-12-13 一种系统启动的方法及嵌入式设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911281661.5A CN112965754B (zh) 2019-12-13 2019-12-13 一种系统启动的方法及嵌入式设备

Publications (2)

Publication Number Publication Date
CN112965754A CN112965754A (zh) 2021-06-15
CN112965754B true CN112965754B (zh) 2023-04-18

Family

ID=76270979

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911281661.5A Active CN112965754B (zh) 2019-12-13 2019-12-13 一种系统启动的方法及嵌入式设备

Country Status (1)

Country Link
CN (1) CN112965754B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000058834A1 (en) * 1999-03-30 2000-10-05 Tivo, Inc. Software installation and recovery system
CN1545654A (zh) * 2001-08-22 2004-11-10 () 计算机快速启动方法
JP2010271986A (ja) * 2009-05-22 2010-12-02 Giga-Byte Technology Co Ltd オペレーションシステムのスタートアップ方法
CN102662711A (zh) * 2012-04-06 2012-09-12 中兴通讯股份有限公司 一种芯片快速初始化方法及装置
CN103701707A (zh) * 2013-12-03 2014-04-02 杭州华三通信技术有限公司 一种网络设备
CN109766133A (zh) * 2018-12-29 2019-05-17 合肥杰发科技有限公司 一种内置嵌入式单元的系统及其初始化方法
CN110007970A (zh) * 2019-03-04 2019-07-12 湖北三江航天万峰科技发展有限公司 一种COMe板的内核启动时长优化方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010047473A1 (en) * 2000-02-03 2001-11-29 Realtime Data, Llc Systems and methods for computer initialization
JP2008134736A (ja) * 2006-11-27 2008-06-12 Fujifilm Corp 電子機器

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000058834A1 (en) * 1999-03-30 2000-10-05 Tivo, Inc. Software installation and recovery system
US6490722B1 (en) * 1999-03-30 2002-12-03 Tivo Inc. Software installation and recovery system
CN1545654A (zh) * 2001-08-22 2004-11-10 () 计算机快速启动方法
JP2010271986A (ja) * 2009-05-22 2010-12-02 Giga-Byte Technology Co Ltd オペレーションシステムのスタートアップ方法
CN102662711A (zh) * 2012-04-06 2012-09-12 中兴通讯股份有限公司 一种芯片快速初始化方法及装置
CN103701707A (zh) * 2013-12-03 2014-04-02 杭州华三通信技术有限公司 一种网络设备
CN109766133A (zh) * 2018-12-29 2019-05-17 合肥杰发科技有限公司 一种内置嵌入式单元的系统及其初始化方法
CN110007970A (zh) * 2019-03-04 2019-07-12 湖北三江航天万峰科技发展有限公司 一种COMe板的内核启动时长优化方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《基于MPC860启动引导程序研究与设计》;周宇 等;《计算机测量与控制》;20070402;全文 *
S3C44B0X处理器应用工程中引导加载程序的原理与设计;陈真等;《现代电子技术》;20060315(第05期);全文 *

Also Published As

Publication number Publication date
CN112965754A (zh) 2021-06-15

Similar Documents

Publication Publication Date Title
CN109634883B (zh) 主从式系统、指令执行方法与数据存取方法
JP5292978B2 (ja) 制御装置、情報処理装置、及びメモリモジュール認識方法
CN109408122B (zh) 一种设备启动方法、电子设备和计算机存储介质
US20060047938A1 (en) Method and apparatus to initialize CPU
JP2006276967A (ja) 半導体装置
US20100064036A1 (en) Peripheral device operation method, peripheral device and host
CN111095411A (zh) 用于存储器系统的参数超驰机制
US20170269870A1 (en) Memory controller, nonvolatile storage device, nonvolatile storage system, and memory control method
US7607001B2 (en) Memory management method for simultaneously loading and executing program codes
CN110297726B (zh) 具有串行存在检测数据的计算机系统及内存模块控制方法
US9223697B2 (en) Computer reprogramming method, data storage medium and motor vehicle computer
US20100153622A1 (en) Data Access Controller and Data Accessing Method
CN112965754B (zh) 一种系统启动的方法及嵌入式设备
US20070283139A1 (en) Information processing apparatus and control method used thereby
US8275981B2 (en) Flash storage system and method for accessing a boot program
CN114816273B (zh) 针对Norflash的自适应最优配置的方法、装置及介质
CN116578327A (zh) 一种程序更新方法、装置及电子设备和存储介质
US8214714B2 (en) Nonvolatile storage device, controller of nonvolatile memory, and nonvolatile storage system
CN105204896A (zh) 一种数字存储示波器的BootLoader设计方法
CN113010236B (zh) 一种程序执行方法、装置、设备及存储介质
CN113867821A (zh) 一种指定网口的pxe引导配置方法、装置、设备及介质
CN110737480B (zh) 一种串口驱动程序复用方法和装置
EP3891594B1 (en) Memory control system with a sequence processing unit
US7610439B2 (en) Method and system for hardware implementation of resetting an external two-wired EEPROM
CN113254093A (zh) 自适应系统架构的gpu初始化方法、装置及计算机存储介质

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