[go: up one dir, main page]

CN119473432A - 系统启动方法、装置、计算机设备和存储介质 - Google Patents

系统启动方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN119473432A
CN119473432A CN202411580634.9A CN202411580634A CN119473432A CN 119473432 A CN119473432 A CN 119473432A CN 202411580634 A CN202411580634 A CN 202411580634A CN 119473432 A CN119473432 A CN 119473432A
Authority
CN
China
Prior art keywords
partition
stage
starting
current
target
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
Application number
CN202411580634.9A
Other languages
English (en)
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.)
Shanghai Silang Technology Co ltd
Original Assignee
Shanghai Silang 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 Shanghai Silang Technology Co ltd filed Critical Shanghai Silang Technology Co ltd
Priority to CN202411580634.9A priority Critical patent/CN119473432A/zh
Publication of CN119473432A publication Critical patent/CN119473432A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

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

Abstract

本申请涉及计算机技术领域,具体地,涉及一种系统启动方法、装置、计算机设备和存储介质。该系统启动方法应用于系统启动设备,系统启动设备至少包括多个系统分区,各系统分区中均配置有系统文件,该方法包括:在当前系统启动阶段确定上一系统启动阶段的状态标识;若状态标识为启动失败则根据特征标识确定上一系统启动阶段所调用的系统文件所在的失败系统分区;从各系统分区中选择当前系统启动阶段的目标系统分区;调用目标系统分区中的目标系统文件进行系统启动,并在系统成功后将当前系统启动阶段的状态标识更新更为启动成功,将当前系统启动阶段所使用的系统分区的特征标识更新为目标系统分区。提供了一种可靠性更高的系统启动方法。

Description

系统启动方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,具体地,涉及一种系统启动方法、装置、计算机设备和存储介质。
背景技术
电子设备开机后系统是由预先配置于设备中的系统文件进行启动,而系统在启动时容易出现如下几种情况:第一种情况,突然断电、存储芯片老化等造成文件系统损坏,导致系统无法正常启动;第二种情况,系统在升级过程中断电而导致系统软件代码不完整等导致系统无法正常启动;第三种情况,升级的系统软件代码本身有bug(漏洞),升级后导致系统无法启动。
因此,目前亟需一种可靠性更高的系统启动方法。
发明内容
本申请实施例中提供了一种系统启动方法、装置、计算机设备和存储介质。
本申请实施例的第一个方面,提供了一种系统启动方法,应用于系统启动设备,所述系统启动设备至少包括多个系统分区,各系统分区中均配置有系统文件,所述方法包括:
在当前系统启动阶段,确定上一系统启动阶段的状态标识;
若所述状态标识为启动失败,则根据特征标识确定所述上一系统启动阶段所调用的系统文件所在的失败系统分区;
从各所述系统分区中选择除所述失败系统分区之外的其他系统分区作为当前系统启动阶段的目标系统分区;
调用所述目标系统分区中的目标系统文件进行系统启动,并在系统成功后将当前系统启动阶段的状态标识更新更为启动成功,将当前系统启动阶段所使用的系统分区的特征标识更新为所述目标系统分区。
在本申请一个可选实施例中,所述当前系统启动阶段为BootROM阶段,则所述根据特征标识确定所述上一系统启动阶段所调用的系统文件所在的失败系统分区,包括:
对所述状态标识进行读操作,根据所述状态标识的值确定所述失败系统分区;
对应的,所述在系统成功后将当前系统启动阶段的状态标识更新更为启动成功,将当前系统启动阶段所使用的系统分区的特征标识更新为所述目标系统分区,包括:
对所述状态标识进行写操作,将所述BootROM阶段的所述状态标识更新为启动成功;
将所述BootROM阶段的所述特征标识更新为所述目标系统分区对应的第一分区值。
在本申请一个可选实施例中,上述系统启动方法还包括:
若BootROM阶段crc32校验镜像失败,则将所述BootROM阶段的所述特征标识更新除所述目标系统分区之外的其他系统分区。
在本申请一个可选实施例中,所述当前系统启动阶段为启动bl1阶段,则当前系统启动阶段所使用的系统分区的所述特征标识为非目标系统分区;所述方法还包括:
若系统启动失败,则调用硬件定时器触发处理器复位;其中,所述处理器复位调用所述非目标系统分区,并在系统再次启动成功后,将所述当前系统启动阶段所使用的系统分区的所述特征标识修改为所述目标系统分区。
在本申请一个可选实施例中,所述当前系统启动阶段为启动uboot阶段,则调用所述目标系统分区中的目标系统文件进行系统启动,包括:
调用所述目标系统分区中的kernel、dtb、ramdisk启动uboot,并跳转至linux地址。
在本申请一个可选实施例中,所述当前系统启动阶段为启动linux、ramdisk阶段,则所述将当前系统启动阶段的状态标识更新更为启动成功,将当前系统启动阶段所使用的系统分区的特征标识更新为所述目标系统分区,包括:
对特征标识进行读操作,根据所特征标识的值来确定所述状态标识的修正值。
在本申请一个可选实施例中,上述系统启动方法还包括:
若当前系统启动阶段的第一启动时长大于第一预设阈值,或当前时刻距离系统启动触发时刻之间的第二启动时长大于第二预设阈值,则触发硬件定时器对处理器进行复位操作。
本申请实施例的第二个方面,提供了一种系统启动装置,应用于系统启动设备,所述系统启动设备至少包括多个系统分区,各系统分区中均配置有系统文件,所述装置包括:
第一确定模块,用于在当前系统启动阶段,确定上一系统启动阶段的状态标识;
第二确定模块,用于若所述状态标识为启动失败,则根据特征标识确定所述上一系统启动阶段所调用的系统文件所在的失败系统分区;
选择模块,用于从各所述系统分区中选择除所述失败系统分区之外的其他系统分区作为当前系统启动阶段的目标系统分区;
启动模块,用于调用所述目标系统分区中的目标系统文件进行系统启动,并在系统成功后将当前系统启动阶段的状态标识更新更为启动成功,将当前系统启动阶段所使用的系统分区的特征标识更新为所述目标系统分区。
本申请实施例的第三个方面,提供了一种计算机设备,包括:包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如上任一项方法的步骤。
本申请实施例的第四个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,计算机程序被处理器执行时实现如上任一项的方法的步骤。
第一方面,本申请实施例提供的系统启动方法应用于系统启动设备,所述系统启动设备至少包括多个系统分区,各系统分区中均配置有系统文件。在当前系统启动阶段确定上一系统启动阶段的状态标识;若所述状态标识为启动失败,则根据特征标识确定所述上一系统启动阶段所调用的系统文件所在的失败系统分区;从各所述系统分区中选择除所述失败系统分区之外的其他系统分区作为当前系统启动阶段的目标系统分区;如此而来可以避开上一系统启动阶段使用的失败系统分区的系统文件,而重新选择除所述失败系统分区之外的其他系统分区作为当前系统启动阶段的目标系统分区作为当前系统启动的系统文件分区,从而保障当前系统启动阶段可以顺利启动,进而提供了一种可靠性更高的系统启动方法。
第二方面,本申请实施例提供的系统启动方法在调用所述目标系统分区中的目标系统文件进行系统启动成功后,将当前系统启动阶段的状态标识更新更为启动成功,将当前系统启动阶段所使用的系统分区的特征标识更新为所述目标系统分区,以便后续系统启动阶段可以延续调用该可用的目标系统分区,保证后续的系统启动阶段可以顺利启动,进而提供了一种可靠性更高的系统启动方法。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请一个实施例提供的系统启动方法的应用场景示意图;
图2为本申请一个实施例提供的系统启动方法的流程图;
图3为本申请一个实施例提供的系统启动方法在BootROM阶段的流程交互图;
图4为本申请一个实施例提供的系统启动方法在bl1阶段的流程交互图;
图5为本申请一个实施例提供的系统启动方法在uboot阶段的流程交互图;
图6为本申请一个实施例提供的系统启动方法在linux、ramdisk阶段的流程交互图;
图7为本申请一个实施例提供的系统启动方法系统启动设备超时流程交互图;
图8为本申请一个实施例提供的系统启动装置结构示意图;
图9为本申请一个实施例提供的计算机设备结构示意图。
具体实施方式
在实现本申请的过程中,发明人发现,目前亟需一种可靠性更高的系统启动方法。
针对上述问题,本申请实施例中提供了一种系统启动方法、装置、计算机设备和存储介质。
本申请实施例中的方案可以采用各种计算机语言实现,例如,面向对象的程序设计语言Java和直译式脚本语言JavaScript等。
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
以下对本申请实施例提供的系统启动方法的应用环境作简要说明:
请参见图1,本申请实施例提供的系统启动方法应用于系统启动设备,该系统启动设备包括:SOC ROM(System on a Chip read only memory,系统级芯片只读存储器)eMMC(Embedded Multi Media Card,一种非易失性存储器件)和DDR(Double Data RateSynchronous Dynamic Random Access Memory,双倍速率同步动态随机存储器),系统启动至少包括四个阶段:BootROM阶段、启动bl1阶段、启动uboot阶段、启动linux、ramdisk阶段,在各启动阶段对应需要调用对应的系统文件,当然,系统启动还可以包括其他启动阶段,在此不作赘述。如图1所示,BootROM系统启动所需的系统文件存储于SOC ROM区,运行于ROM;启动bl1阶段、启动uboot.bin阶段、启动linux、ramdisk阶段的系统文件存储于eMMC中,其中bl1阶段的系统文件加载运行于SRAM(Static Random-Access Memory,静态随机存取存储器),uboot.bin阶段、linux、ramdisk阶段的系统文件加载运行于DDR。
本申请实施例中的系统启动设备至少包括多个系统分区,为了更清楚的对本申请实施例提供的系统启动方法进行解释,以下实施例以两个系统分区为例,例如包括主分区(特征标识记为0)和备份分区(特征标识记为1)。其中,状态标识的SRAM地址例如可以为:0x20000004,特征标识的SRAM地址可以为0x20000008,状态标识用于表征各系统启动阶段的启动成功与否,包括更新成功(例如记为0)和更新失败(例如记为1)两种状态;特征标识用于表征系统分区,各分区内存储有系统文件,如上,以两个系统分区为例,主分区(特征标识记为0),备份分区(特征标识记为1),依次类推,用于各系统分区之间的区分。
在本申请实施例中,状态标识涉及到的启动阶段包括:bl1阶段、Linux阶段的写操作,BootROM阶段的读操作。特征标识涉及到的启动阶段包括:BootROM阶段的写操作,BootROM阶段、bl1、uboot阶段和Linux阶段的读操作。同时,当Bootrom阶段加载校验bl1失败,内部可直接切换另一个分区加载,无需依靠watchdog(看门狗定时器,是一种硬件定时器,用于监控系统的运行状态并在出现故障或死锁时采取措施以恢复正常操作;看门狗的主要功能是定期检查系统是否正常运行,并在系统出现问题时触发复位操作,防止系统崩溃或程序跑飞)和CPU(处理器复位。非Bootrom的其他阶段启动依靠watchdog和CPU复位来切换备份分区。特征标识、状态标识存储在SRAM中,软复位CPU后数据不会丢失,芯片掉电后数据会丢失,主备启动方法运用的是CPU的软复位。
以下对本申请实施例涉及到的英文术语以及计算机术语进行简要解释:
watchdog:watchdogtimer,看门狗定时器,是一种硬件定时器,用于监控系统的运行状态并在出现故障或死锁时采取措施以恢复正常操作;看门狗的主要功能是定期检查系统是否正常运行,并在系统出现问题时触发复位操作,防止系统崩溃或程序跑飞。
git:一个开源的分布式版本控制系统,可以有效、高效地处理从小型到大型项目的版本管理。
CPU:Central Processing Unit,中央处理器,是计算机内部的一个芯片,负责执行指令和控制计算机的操作。
BootROM:Boot Read-Only Memory,用于存放启动程序的只读存储器。
bl1:bootloader1,BL1是安全启动流程的一部分,bootrom启动后下一阶段需要运行的固件程序。
bl1.bin:未签名的bl1启动固件。
sign-bl1.bin:签名后的bl1启动固件。
uboot:Universal Boot Loader,通用引导加载程序,是一个裸机代码,用于执行启动内核。
uboot.bin:uboot的固件。
kernel:核心,通常指操作系统的核心部分。
dtb:DeviceTree Blob,是一种用来描述硬件设备的数据结构的二进制文件。
CMD:Command-Line Interface,命令行界面,它是一种命令行工具,可以让用户通过键入命令来与计算机进行交互。
crc32:32bit Cyclic Redundancy Check,32位循环冗余校验,是一种用于数据完整性检查的校验算法。
ramdisk:也称为虚拟内存盘或内存盘,是一种通过软件将一部分计算机内存(RAM)模拟为硬盘的技术。
linux:是一种免费使用和自由传播的类UNIX操作系统。
SOC:System on a Chip,系统级芯片,也称片上系统。
eMMC:Embedded Multi Media Card,是一种非易失性存储器件,设计用于嵌入式系统。
SRAM:Static Random-Access Memory,静态随机存取存储器。
DDR:Double Data Rate Synchronous Dynamic Random Access Memory,双倍速率同步动态随机存储器。
BootROM Code:芯片上集成的只读存储器(ROM)中的一段初始化代码,用于在系统上电后首先执行。
请参见图2和图3,以下实施例以上述系统启动设备为执行主体,将本申请实施例提供的方法应用于上述系统启动设备对系统进行启动为例进行具体说明。本申请实施例提供的系统启动方法包括如下步骤201-步骤204:
步骤201、在当前系统启动阶段,确定上一系统启动阶段的状态标识;
步骤202、若所述状态标识为启动失败,则根据特征标识确定所述上一系统启动阶段所调用的系统文件所在的失败系统分区;
步骤203、从各所述系统分区中选择除所述失败系统分区之外的其他系统分区作为当前系统启动阶段的目标系统分区;
步骤204、调用所述目标系统分区中的目标系统文件进行系统启动,并在系统成功后将当前系统启动阶段的状态标识更新更为启动成功,将当前系统启动阶段所使用的系统分区的特征标识更新为所述目标系统分区。
第一方面,本申请实施例提供的系统启动方法应用于系统启动设备,所述系统启动设备至少包括多个系统分区,各系统分区中均配置有系统文件。在当前系统启动阶段确定上一系统启动阶段的状态标识;若所述状态标识为启动失败,则根据特征标识确定所述上一系统启动阶段所调用的系统文件所在的失败系统分区;从各所述系统分区中选择除所述失败系统分区之外的其他系统分区作为当前系统启动阶段的目标系统分区;如此而来可以避开上一系统启动阶段使用的失败系统分区的系统文件,而重新选择除所述失败系统分区之外的其他系统分区作为当前系统启动阶段的目标系统分区作为当前系统启动的系统文件分区,从而保障当前系统启动阶段可以顺利启动,进而提供了一种可靠性更高的系统启动方法。
第二方面,本申请实施例提供的系统启动方法在调用所述目标系统分区中的目标系统文件进行系统启动成功后,将当前系统启动阶段的状态标识更新更为启动成功,将当前系统启动阶段所使用的系统分区的特征标识更新为所述目标系统分区,以便后续系统启动阶段可以延续调用该可用的目标系统分区,保证后续的系统启动阶段可以顺利启动,进而提供了一种可靠性更高的系统启动方法。
请参见图3,在本申请一个可选实施例中,所述当前系统启动阶段为BootROM阶段,则上述步骤202、所述根据特征标识确定所述上一系统启动阶段所调用的系统文件所在的失败系统分区,包括如下步骤:
对所述状态标识进行读操作,根据所述状态标识的值确定所述失败系统分区;
如图3为BootROM阶段的启动流程图,(主要功能包括初始化硬件、加载和启动操作系统或引导加载程序),在BootROM阶段保障了处理器在BootROM阶段启动失败导致无法加载运行下一个阶段的镜像,并为下个阶段提供特征标识,以指示下个系统启动阶段在系统分区选择哪个系统分区。
如图3所示,在BootROM阶段对状态标识进行读操作,依据状态标识的值来确定当前需要加载的分区标志,如主分区(0分区)。
对应的,上述步骤204、所述在系统成功后将当前系统启动阶段的状态标识更新更为启动成功,将当前系统启动阶段所使用的系统分区的特征标识更新为所述目标系统分区,包括如下步骤:
对所述状态标识进行写操作,将所述BootROM阶段的所述状态标识更新为启动成功;
将所述BootROM阶段的所述特征标识更新为所述目标系统分区对应的第一分区值。
如图3所示,在BootROM阶段对特征标识写操作,使用特征标识来记录当前加载的分区标志,如0分区(主分区)。
本申请实施例通过对所述状态标识进行读操作,根据所述状态标识的值确定所述失败系统分区,从而方便确定可以正常调用的目标系统分区,从而保障BootROM阶段的正常启动;同时,在系统更新成功后,对所述状态标识进行写操作,将所述BootROM阶段的所述状态标识更新为启动成功;将所述BootROM阶段的所述特征标识更新为所述目标系统分区对应的第一分区值,可以方便下一系统启动阶段可以根据该状态标识判断BootROM阶段的启动状态,根据状态标识判断BootROM阶段所使用目标系统分区,从而更为准确的确定下一系统启动阶段所使用的系统分区,进而保障整个系统可以顺利启动,可靠性更高。
请继续参见图3,在本申请一个可选实施例中,上述系统启动方法还包括:
若BootROM阶段crc32校验镜像失败,则将所述BootROM阶段的所述特征标识更新除所述目标系统分区之外的其他系统分区。
如图3所示,在BootROM阶段,若crc32校验镜像成功,则直接跳转至下一启动阶段,例如图3中的对bl1.bin进行验签以及跳转至bl1.bin阶段;若当crc32校验镜像失败,则使用特征标识来记录另一个分区标志,如1分区,并加载1分区(备份分区),以方便下一启动阶段避开当时所使用的系统分区,而选择其他系统分区进行启动。同时,还可以停在当前CMD(Command-Line Interface,命令行界面)等待运维人员进行介入处理。
请参见图4,在本申请一个可选实施例中,所述当前系统启动阶段为启动bl1阶段,则当前系统启动阶段所使用的系统分区的所述特征标识为非目标系统分区;所述方法还包括:
若系统启动失败,则调用硬件定时器触发处理器复位;
其中,所述处理器复位调用所述非目标系统分区,并在系统再次启动成功后,将所述当前系统启动阶段所使用的系统分区的所述特征标识修改为所述目标系统分区。
请参见图4,图4为启动bl1阶段的流程图,保障了处理器在bl1阶段启动失败导致无法加载运行下一阶段的问题,并修改状态标识,标志着启动过程中。如图4所示,在bl1阶段可以开启硬件定时器(例如watchdog),开启硬件定时器后,任何原因导致的启动失败都会造成硬件定时器超时而触发处理器复位,处理器复位后将从新的分区加载系统文件继续执行系统启动。此外,如图4所示,在bl1阶段对状态标识进行写操作时写入的是非当前分区(即为非目标系统分区),这是启动异常处理器复位后需要启动的其他分区号(非当前分区);比如目标系统分区特征标识是0分区(目标系统分区),那么写入特征标识为1分区(非目标系统分区),相反,当特征标识是1分区(目标系统分区),那么那么写入特征标识为0分区(非目标系统分区)。如果CPU启动0分区失败,失败后调用硬件定时器触发处理器复位,处理器复位后应当启动非目标系统分区;当整个系统启动完成后,状态标识会在最后一个阶段被修正,标志着当前分区的系统正常启动,系统复位后仍优先加载运行此分区(目标系统分区)。如图4所示,在bl1阶段对特征标识读操作,依据特征标识的值来确定当前需要加载的分区标志,如0分区(主分区)或1分区(备份分区)。
本申请实施例在系统启动失败的情况下,调用硬件定时器触发处理器复位,其中,所述处理器复位调用所述非目标系统分区,并在系统再次启动成功后,将所述当前系统启动阶段所使用的系统分区的所述特征标识修改为所述目标系统分区。
请参见图5,在本申请一个可选实施例中,所述当前系统启动阶段为启动uboot阶段,则调用所述目标系统分区中的目标系统文件进行系统启动,包括:
调用所述目标系统分区中的kernel、dtb、ramdisk启动uboot,并跳转至linux地址。
请参见图5,图5为uboot阶段的系统启动流程图,通过调用所述目标系统分区中的kernel(系统的核心部分)、dtb(DeviceTree Blob,是一种用来描述硬件设备的数据结构的二进制文件)、ramdisk(也称为虚拟内存盘或内存盘,是一种通过软件将一部分计算机内存(RAM)模拟为硬盘的技术)启动uboot(Universal Boot Loader,通用引导加载程序,是一个裸机代码,用于执行启动内核),并跳转至linux(是一种免费使用和自由传播的类UNIX操作系统)地址。
本申请实施例通过在uboot阶段通过状态标识确定上一启动阶段的启动状态,从而确定上一启动阶段所使用的系统分区是否可以状态使用,并根据上一启动阶段的特征标识来确定当前需要加载的分区标志,如0分区(主分区),从而保障当前的uboot阶段可以正常启动,进而保障整个系统的正常启动,进一步提高本申请实施例提供的系统启动方法的可靠性。
请参见图6为启动linux、ramdisk阶段的交互流程图,在本申请一个可选实施例中,所述当前系统启动阶段为启动linux、ramdisk阶段,则上述步骤204、所述将当前系统启动阶段的状态标识更新更为启动成功,将当前系统启动阶段所使用的系统分区的特征标识更新为所述目标系统分区,包括:
对特征标识进行读操作,根据所特征标识的值来确定所述状态标识的修正值。
在启动linux、ramdisk阶段可以关闭硬件定时器,从而避免触发处理器复位,以保障linux、ramdisk阶段的顺利启动。如图6所示,在系统正常启动结束时对状态标识写操作(修正bl1阶段对状态标识的写操作,标志着正常启动完成),写入的是当前启动分区(即目标系统分区),对应状态标识更新为启动正常或启动异常。若当前正常完成了的启动,说明当前分区系统文件(目标系统分区的系统文件)是正常的,当系统正常复位后仍优先加载运行此目标系统分区的系统文件。从而解决了处理器在系统阶段启动失败导致无法正常运行的问题,保障了linux、ramdisk阶段的正常启动。
请参见图7,图7为系统启动设备超时流程交互图,在本申请一个可选实施例中,上述系统启动方法还包括:
若当前系统启动阶段的第一启动时长大于第一预设阈值,或当前时刻距离系统启动触发时刻之间的第二启动时长大于第二预设阈值,则触发硬件定时器对处理器进行复位操作。
其中,该第二预设阈值可以为硬件定时器(例如watchdog)的触发时长,即当系统基于本申请实施例提供的系统启动方法进行启动的第二启动时长大于第二预设阈值时,例如整个系统启动阶段当镜像运行过程中CPU卡死、跑飞等问题即在系统启动失败的情况下触发硬件定时器对处理器进行复位,以解决处理器在系统启动失败后导致无法正常运行和访问的问题,对系统进行重启,进而保障系统启动的可靠性。
同时,对各个系统启动阶段,例如图7和上述实施例中的BootROM阶段、bl1阶段、uboot阶段和linux、ramdisk阶段进行启动时,也可以采用同样的方式,通过各启动阶段的第一启动时长与各第一预设阈值进行比对,以在系统启动失败的情况下触发硬件定时器对处理器进行复位,以解决处理器在系统启动失败后导致无法正常运行和访问的问题,对系统进行重启,进而保障系统启动的可靠性。
最后在系统正常启动后,关闭硬件定时器(例如watchdog),以防止该硬件定时器的自主触发,影响系统的正常运行。
上述系统启动设备用于对各系统启动阶段进行启动,在进行系统启动过程中各系统启动阶段的时钟频率不尽相同,该时钟频率主要通过压控振荡器输出频率控制电路来实现控制输出,该压控振荡器输出频率控制电路至少包括压控振荡器、处理器、锁相环电路,各系统启动阶段的时钟频率的控制过程至少包括:
所述处理器接收所述压控振荡器发出的特定波动频率信号,并记录所述特定波动频率信号的时钟数量;
所述处理器当所述特定波动频率信号和GPS接收器发出的秒脉冲在所述锁相环电路中相位锁定时,读取所述时钟数量;
所述处理器在所述时钟数量不满足预设值的情况下,基于所述时钟数量调节所述压控振荡器的控制电压以实现对于输出频率的控制,直到所述时钟数量满足所述预设值为止。
在本申请一个可选实施例中,所述处理器在所述时钟数量不满足预设值的情况下,基于所述时钟数量调节所述压控振荡器的控制电压以实现对于输出频率的控制,直到所述时钟数量满足所述预设值为止,包括:
当所述时钟数量大于所述预设值时,所述处理器动态控制所述压控振荡器的控制电压降低,直到所述时钟数量满足所述预设值为止;
当所述时钟数量小于所述预设值时,所述处理器动态控制所述压控振荡器的控制电压升高,直到所述时钟数量满足所述预设值为止。
在本申请一个可选实施例中,上述方法还包括:
若所述时钟数量满足所述预设值,所述处理器判定所述压控振荡器输出的特定波动频率与秒脉冲之间无相位偏差。
在本申请一个可选实施例中,所述处理器当所述特定波动频率信号和GPS接收器发出的秒脉冲在锁相环电路中相位锁定时,读取所述时钟数量,包括:
所述处理器通过所述锁相环电路中的鉴相器、环路滤波器、目标压控振荡器对所述特定波动频率信号和GPS接收器发出的秒脉冲进行相位锁定,并读取所述时钟数量,以锁定特定波动频率;
所述处理器读取所述时钟数量。
在本申请一个可选实施例中,所述压控振荡器输出频率控制电路还包括GPS接收器,所述方法还包括:
所述GPS接收器接收GPS信号,并基于板载接收器向所述处理器发送秒脉冲。
在本申请一个可选实施例中,所述压控振荡器输出频率控制电路还包括时钟缓冲器,所述方法还包括:
所述时钟缓冲器接收所述压控振荡器发送的特定波动频率信号,将所述特定波动频率信号复制为同频率同相位的多路时钟,并将所述多路时钟分别发送给所述处理器和所述锁相环电路。
在本申请一个可选实施例中,所述处理器包括计数偏差计算模块和输出频率调节模块,所述计数偏差计算模块用于检测时钟数量与所述预设值之间的偏差,所述输出频率调节模块用于在所述时钟数量不满足预设值的情况下,基于所述时钟数量调节所述压控振荡器的控制电压以实现对于输出频率的控制,直到所述时钟数量满足所述预设值为止。
应该理解的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
请参见图8,本申请一个实施例提供了一种系统启动装置800,应用于系统启动设备,所述系统启动设备至少包括多个系统分区,各系统分区中均配置有系统文件,所述装置800包括:
第一确定模块810,用于在当前系统启动阶段,确定上一系统启动阶段的状态标识;
第二确定模块820,用于若所述状态标识为启动失败,则根据特征标识确定所述上一系统启动阶段所调用的系统文件所在的失败系统分区;
选择模块830,用于从各所述系统分区中选择除所述失败系统分区之外的其他系统分区作为当前系统启动阶段的目标系统分区;
启动模块840,用于调用所述目标系统分区中的目标系统文件进行系统启动,并在系统成功后将当前系统启动阶段的状态标识更新更为启动成功,将当前系统启动阶段所使用的系统分区的特征标识更新为所述目标系统分区。
在本申请一个可选实施例中,所述当前系统启动阶段为BootROM阶段,该第二确定模块820具体用于,对所述状态标识进行读操作,根据所述状态标识的值确定所述失败系统分区;对应的,该启动模块840具体用于,对所述状态标识进行写操作,将所述BootROM阶段的所述状态标识更新为启动成功;将所述BootROM阶段的所述特征标识更新为所述目标系统分区对应的第一分区值。
在本申请一个可选实施例中,该选择模块830还用于,若BootROM阶段crc32校验镜像失败,则将所述BootROM阶段的所述特征标识更新除所述目标系统分区之外的其他系统分区。
在本申请一个可选实施例中,所述当前系统启动阶段为启动bl1阶段,则当前系统启动阶段所使用的系统分区的所述特征标识为非目标系统分区;该启动模块840还用于,若系统启动失败,则调用硬件定时器触发处理器复位;其中,所述处理器复位调用所述非目标系统分区,并在系统再次启动成功后,将所述当前系统启动阶段所使用的系统分区的所述特征标识修改为所述目标系统分区。
在本申请一个可选实施例中,所述当前系统启动阶段为启动uboot阶段,该启动模块840具体用于,调用所述目标系统分区中的kernel、dtb、ramdisk启动uboot,并跳转至linux地址。
在本申请一个可选实施例中,所述当前系统启动阶段为启动linux、ramdisk阶段,该启动模块840具体用于,对特征标识进行读操作,根据所特征标识的值来确定所述状态标识的修正值。
在本申请一个可选实施例中,该启动模块840还用于,若当前系统启动阶段的第一启动时长大于第一预设阈值,或当前时刻距离系统启动触发时刻之间的第二启动时长大于第二预设阈值,则触发硬件定时器对处理器进行复位操作。
关于上述系统启动装置800的具体限定可以参见上文中对于系统启动方法的限定,在此不再赘述。上述系统启动装置800中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备的内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现如上的一种系统启动方法。包括:包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如上系统启动方法中的任一步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时可以实现如上系统启动方法中的任一步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种系统启动方法,其特征在于,应用于系统启动设备,所述系统启动设备至少包括多个系统分区,各系统分区中均配置有系统文件,所述方法包括:
在当前系统启动阶段,确定上一系统启动阶段的状态标识;
若所述状态标识为启动失败,则根据特征标识确定所述上一系统启动阶段所调用的系统文件所在的失败系统分区;
从各所述系统分区中选择除所述失败系统分区之外的其他系统分区作为当前系统启动阶段的目标系统分区;
调用所述目标系统分区中的目标系统文件进行系统启动,并在系统成功后将当前系统启动阶段的状态标识更新更为启动成功,将当前系统启动阶段所使用的系统分区的特征标识更新为所述目标系统分区。
2.根据权利要求1所述的系统启动方法,其特征在于,所述当前系统启动阶段为BootROM阶段,则所述根据特征标识确定所述上一系统启动阶段所调用的系统文件所在的失败系统分区,包括:
对所述状态标识进行读操作,根据所述状态标识的值确定所述失败系统分区;
对应的,所述在系统成功后将当前系统启动阶段的状态标识更新更为启动成功,将当前系统启动阶段所使用的系统分区的特征标识更新为所述目标系统分区,包括:
对所述状态标识进行写操作,将所述BootROM阶段的所述状态标识更新为启动成功;
将所述BootROM阶段的所述特征标识更新为所述目标系统分区对应的第一分区值。
3.根据权利要求2所述的系统启动方法,其特征在于,所述方法还包括:
若BootROM阶段crc32校验镜像失败,则将所述BootROM阶段的所述特征标识更新除所述目标系统分区之外的其他系统分区。
4.根据权利要求1所述的系统启动方法,其特征在于,所述当前系统启动阶段为启动bl1阶段,则当前系统启动阶段所使用的系统分区的所述特征标识为非目标系统分区;所述方法还包括:
若系统启动失败,则调用硬件定时器触发处理器复位;其中,所述处理器复位调用所述非目标系统分区,并在系统再次启动成功后,将所述当前系统启动阶段所使用的系统分区的所述特征标识修改为所述目标系统分区。
5.根据权利要求1所述的系统启动方法,其特征在于,所述当前系统启动阶段为启动uboot阶段,则调用所述目标系统分区中的目标系统文件进行系统启动,包括:
调用所述目标系统分区中的kernel、dtb、ramdisk启动uboot,并跳转至linux地址。
6.根据权利要求1所述的系统启动方法,其特征在于,所述当前系统启动阶段为启动linux、ramdisk阶段,则所述将当前系统启动阶段的状态标识更新更为启动成功,将当前系统启动阶段所使用的系统分区的特征标识更新为所述目标系统分区,包括:
对特征标识进行读操作,根据所特征标识的值来确定所述状态标识的修正值。
7.根据权利要求1所述的系统启动方法,其特征在于,所述方法还包括:
若当前系统启动阶段的第一启动时长大于第一预设阈值,或当前时刻距离系统启动触发时刻之间的第二启动时长大于第二预设阈值,则触发硬件定时器对处理器进行复位操作。
8.一种系统启动装置,其特征在于,应用于系统启动设备,所述系统启动设备至少包括多个系统分区,各系统分区中均配置有系统文件,所述装置包括:
第一确定模块,用于在当前系统启动阶段,确定上一系统启动阶段的状态标识;
第二确定模块,用于若所述状态标识为启动失败,则根据特征标识确定所述上一系统启动阶段所调用的系统文件所在的失败系统分区;
选择模块,用于从各所述系统分区中选择除所述失败系统分区之外的其他系统分区作为当前系统启动阶段的目标系统分区;
启动模块,用于调用所述目标系统分区中的目标系统文件进行系统启动,并在系统成功后将当前系统启动阶段的状态标识更新更为启动成功,将当前系统启动阶段所使用的系统分区的特征标识更新为所述目标系统分区。
9.一种计算机设备,包括:包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN202411580634.9A 2024-11-06 2024-11-06 系统启动方法、装置、计算机设备和存储介质 Pending CN119473432A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202411580634.9A CN119473432A (zh) 2024-11-06 2024-11-06 系统启动方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202411580634.9A CN119473432A (zh) 2024-11-06 2024-11-06 系统启动方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN119473432A true CN119473432A (zh) 2025-02-18

Family

ID=94581054

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202411580634.9A Pending CN119473432A (zh) 2024-11-06 2024-11-06 系统启动方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN119473432A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN120179321A (zh) * 2025-05-21 2025-06-20 苏州元脑智能科技有限公司 固件加载方法、装置、电子设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN120179321A (zh) * 2025-05-21 2025-06-20 苏州元脑智能科技有限公司 固件加载方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US10303459B2 (en) Electronic system with update control mechanism and method of operation thereof
JP5575338B2 (ja) 情報処理装置、情報処理方法、およびコンピュータプログラム
TWI514408B (zh) 於裝置開機期間處置來自非揮發性記憶體之錯誤
US11314665B2 (en) Information processing system, information processing device, BIOS updating method for information processing device, and BIOS updating program for information processing device
JP2015008005A (ja) セキュア・リカバリ装置及び方法
US20150199190A1 (en) System and method for updating firmware
CN111240720A (zh) 引导程序升级方法、装置及存储介质
CN107102871A (zh) 嵌入式系统升级的方法和装置
CN115859310B (zh) 集成可信度量和业务安全的方法、装置及设备
CN108345464A (zh) 一种安卓系统的启动方法及安卓车机
CN117130672A (zh) 服务器启动流程控制方法、系统、终端及存储介质
US20130080751A1 (en) Method and device for updating bios program for computer system
CN119473432A (zh) 系统启动方法、装置、计算机设备和存储介质
CN101697132A (zh) 一种操作系统快速重启的方法、装置和网络设备
WO2015184732A1 (zh) 引导程序的存储方法、故障恢复方法及设备、计算机存储介质
CN111666094B (zh) 一种实时固件升级系统与方法
WO2016155524A1 (zh) 一种系统安全升级的方法和装置
JP2005284902A (ja) 端末装置、その制御方法及び制御プログラム、ホスト装置、その制御方法及び制御プログラム、遠隔更新システム、方法及びプログラム
CN111258617B (zh) 一种电子设备
CN120179321B (zh) 固件加载方法、装置、电子设备及存储介质
CN119376800B (zh) 一种多固件加载优化方法及相应的嵌入式系统
CN120723188B (zh) 一种调试信息的打印方法、电子设备
CN119002821B (zh) 一种数据存储方法、装置、设备及介质
CN111078307A (zh) 一种嵌入式设备的启动方法、装置、嵌入式设备及存储介质
CN119248571A (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
CB02 Change of applicant information

Country or region after: China

Address after: 200443 Shanghai City Jing'an District Kangning Road No. 288, Lane No. 2, Room 1010

Applicant after: Shanghai Silam Technology Co., Ltd.

Address before: 200443 Shanghai City Jing'an District Kangning Road No. 288, Lane No. 2, Room 1010

Applicant before: Shanghai Silang Technology Co.,Ltd.

Country or region before: China

CB02 Change of applicant information