CN116719564A - 基于存储器分区的设备启动方法、装置及电子设备 - Google Patents

基于存储器分区的设备启动方法、装置及电子设备 Download PDF

Info

Publication number
CN116719564A
CN116719564A CN202310686677.4A CN202310686677A CN116719564A CN 116719564 A CN116719564 A CN 116719564A CN 202310686677 A CN202310686677 A CN 202310686677A CN 116719564 A CN116719564 A CN 116719564A
Authority
CN
China
Prior art keywords
starting
information
partition
electronic equipment
boot
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
CN202310686677.4A
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.)
Beijing Horizon Information Technology Co Ltd
Original Assignee
Beijing Horizon 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 Beijing Horizon Information Technology Co Ltd filed Critical Beijing Horizon Information Technology Co Ltd
Priority to CN202310686677.4A priority Critical patent/CN116719564A/zh
Publication of CN116719564A publication Critical patent/CN116719564A/zh
Pending legal-status Critical Current

Links

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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

本公开实施例公开了一种基于存储器分区的设备启动方法、装置、计算机可读存储介质及电子设备,其中,该方法包括:确定电子设备在预设时机通过第一启动模式的启动状态;基于启动状态,从目标存储器的第一分区读取第一启动信息;基于第一启动信息,在第二启动模式下启动电子设备,并从***更新服务端获取电子设备的***更新信息;基于***更新信息,更新目标存储器的第二分区中的第二启动信息;基于更新后的第二启动信息,通过第一启动模式启动电子设备。本公开实施例将第一启动信息和第二启动信息在存储器中隔离,对第一分区和第二分区的读写操作互不影响,电子设备正常启动使用的第二启动信息可以及时更新,大大提升了电子设备启动的成功率。

Description

基于存储器分区的设备启动方法、装置及电子设备
技术领域
本公开涉及计算机技术领域,尤其是一种基于存储器分区的设备启动方法、装置、计算机可读存储介质及电子设备。
背景技术
处理器在启动时,需要从外部存储器中加载启动代码。而启动之后,在操作***的使用过程中,需要不断地对外部存储器进行读写操作,如读取存储的日志文件等。若运行的应用程序存在故障,向存储启动代码的区域误写入了数据,或者,由于一些存储器的特征,即使向未存储启动代码的区域写入数据,也有可能造成启动代码的破坏,从而造成操作***无法启动。
例如,***备份(recovery)镜像文件和正常启动的镜像文件放在同一个物理分区,在***备份镜像文件不更新的情况下,由于EMMC(Embedded MultiMediaCard,嵌入式多媒体卡)存储器擦写均衡机制的作用,在更新该物理分区的其他区域时,仍然存在***备份镜像文件被修改的可能性,从而有可能造成无法启动。
因此,如何确保设备可以正常启动并运行操作***,是目前需要解决的问题。
发明内容
为了解决上述技术问题,本公开的实施例提供了一种基于存储器分区的设备启动方法、装置、计算机可读存储介质及电子设备,以实现将正常启动时使用的第一启动信息和备份的第二启动信息在物理存储空间上隔离,以确保电子设备可以在启动失败时,利用备份的第二启动信息启动。
本公开的实施例提供了一种基于存储器分区的设备启动方法,该方法包括:确定电子设备在预设时机通过第一启动模式的启动状态;基于启动状态,从目标存储器的第一分区读取第一启动信息;基于第一启动信息,在第二启动模式下启动电子设备,并从***更新服务端获取电子设备的***更新信息;基于***更新信息,更新目标存储器的第二分区中的第二启动信息;基于更新后的第二启动信息,通过第一启动模式启动电子设备。
根据本公开实施例的另一个方面,提供了一种基于存储器分区的设备启动装置,该装置包括:确定模块,用于确定电子设备在预设时机通过第一启动模式的启动状态;第一读取模块,用于基于启动状态,从目标存储器的第一分区读取第一启动信息;第一启动模块,用于基于第一启动信息,在第二启动模式下启动电子设备,并从***更新服务端获取电子设备的***更新信息;更新模块,用于基于***更新信息,更新目标存储器的第二分区中的第二启动信息;第二启动模块,用于基于更新后的第二启动信息,通过第一启动模式启动电子设备。
根据本公开实施例的另一个方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序用于被处理器执行以实现执行上述基于存储器分区的设备启动方法。
根据本公开实施例的另一个方面,提供了一种电子设备,电子设备包括:处理器;用于存储处理器可执行指令的存储器;处理器,用于从存储器中读取可执行指令,并执行指令以实现上述基于存储器分区的设备启动方法。
根据本公开实施例的另一个方面,提供了一种计算机程序产品,计算机程序产品包括计算机程序指令,当计算机程序指令由指令处理器执行时,执行本公开提出的基于存储器分区的设备启动方法。
基于本公开上述实施例提供的基于存储器分区的设备启动方法、装置、计算机可读存储介质及电子设备,将第一启动信息和第二启动信息分别存储在目标存储器的第一分区和第二分区,基于电子设备在第一启动模式下的启动状态,利用第一启动信息在第二启动模式下启动电子设备,并更新第二分区中的第二启动信息,再利用更新后的第二启动信息在第一启动模式下启动电子设备,从而实现了将第一启动信息和第二启动信息在存储器中隔离,处理器对第一分区和第二分区的读写操作互不影响,电子设备正常启动使用的第二启动信息可以及时更新,大大提升了电子设备启动的成功率。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤;
图1是本公开所适用的***图;
图2是本公开一示例性实施例提供的基于存储器分区的设备启动方法的流程示意图;
图3是本公开另一示例性实施例提供的基于存储器分区的设备启动方法的流程示意图;
图4是本公开另一示例性实施例提供的基于存储器分区的设备启动方法的流程示意图;
图5是本公开另一示例性实施例提供的基于存储器分区的设备启动方法的流程示意图;
图6是本公开一示例性实施例提供的基于存储器分区的设备启动装置的结构示意图;
图7是本公开另一示例性实施例提供的基于存储器分区的设备启动装置的结构示意图;
图8是本公开一示例性实施例提供的电子设备的结构图。
具体实施方式
为了解释本公开,下面将参考附图详细地描述本公开的示例实施例,显然,所描述的实施例仅是本公开的一部分实施例,而不是全部实施例,应理解,本公开不受示例性实施例的限制。
应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
申请概述
为了降低对启动信息的误操作的风险,目前采用的方法通常为将正常启动时使用的启动信息(例如bootloader)与启动后用户可以使用的信息隔离,为了使启动信息不被破坏,不再对存储启动信息的分区进行升级。例如,启动信息放在存储器的启动分区(例如EMMC的boot分区),其他内容,如***备份(recovery)镜像,***内核信息(kernel),各种应用程序数据放在用户数据(userdata)分区,***升级时,只升级用户数据分区中的内容。
该方法只能升级用户数据分区中的内容,启动分区中的内容无法升级,造成利用启动分区启动设备失败时,无法自动修复启动信息。
本公开实施例旨在解决该问题,提出了一种基于存储器分区的设备启动方法,该方法将第一启动信息和第二启动信息在存储器中隔离,设备正常启动时若发生启动失败的故障,可以利用第一启动信息对第二启动信息及时更新,利用更新后的第二启动信息启动设备,大大提升了电子设备启动的成功率。
示例性***
图1示出了可以应用本公开的实施例的基于存储器分区的设备启动方法或基于存储器分区的设备启动装置的示例性***架构100。
如图1所示,***架构100可以包括终端设备101,网络102和服务器103。网络102用于在终端设备101和服务器103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
终端设备101可以直接通过网络102与服务器103交互,以接收或发送消息等,或与具有远程通信功能的中继设备连接,通过该中继设备与服务器103交互。终端设备101可以是各种电子设备,包括但不限于诸如SOC(System On Chip,片上***)芯片、单片机、单板计算机等的专用设备,以及诸如移动电话、笔记本电脑、数字广播接收器、PAD(平板电脑)、车载终端等等的移动终端,以及诸如数字电视、台式计算机等等的固定终端。
服务器103可以是提供各种服务的服务器,例如对终端设备101上运行的操作***、应用程序提供支持的后台服务器。后台服务器可以向终端设备101发送***更新信息,使终端设备101基于***更新信息,更新第二启动信息。
需要说明的是,本公开的实施例所提供的基于存储器分区的设备启动方法通常由终端设备101执行,相应地,基于存储器分区的设备启动装置通常设置于终端设备101中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
示例性方法
图2是本公开一示例性实施例提供的基于存储器分区的设备启动方法的流程示意图。本实施例可应用在电子设备(如图1所示的终端设备101)上,如图2所示,该方法包括如下步骤:
步骤201,确定电子设备在预设时机通过第一启动模式的启动状态。
其中,电子设备可以是如图1所示的终端设备101,第一启动模式可以是电子设备在正常运行的情况下启动的模式。在第一启动模式下,电子设备使用目标存储器的第二分区中的第二启动信息进行启动。
上述预设时机可以是电子设备任意一次启动的过程。例如,预设时机可以是电子设备最近一次启动的过程。电子设备在第一启动模式下进行启动的过程中,可以检测启动状态,并生成表示启动状态的启动状态信息,根据启动状态信息,可以确定电子设备在第一启动模式下是否启动成功。
步骤202,基于启动状态,从目标存储器的第一分区读取第一启动信息。
其中,目标存储器可以是设置在电子设备内的存储器,也可以是与电子设备连接的其他设备中的存储器。目标存储器可以是各种类型的存储器,例如,可以是EMMC存储器,也可以是RAM(Random Access Memory,随机存储器)、ROM(Read-Only Memory,随机存储器)等其他类型的存储器。目标存储器包括多个分区,其中的第一分区中存储有第一启动信息,第二分区中存储有第二启动信息。由于EMMC存储器通常包括多个分区,例如通用分区(General Purpose Partition)、用户数据分区(User Data Area)等,且这些分区是物理隔离的,因此,当目标存储器是EMMC存储器时,可以预先从这些分区中选择两个分区作为第一分区和第二分区。
通常,第一分区作为启动备份分区,该分区中的第一启动信息即备份启动信息。例如,第一启动信息可以包括备份***镜像文件。当确定启动状态为在第一启动模式下启动失败时,电子设备可以从第一分区读取作为***备份的第一启动信息。
步骤203,基于第一启动信息,在第二启动模式下启动电子设备,并从***更新服务端获取电子设备的***更新信息。
其中,第二启动模式可以为在第一启动模式下启动失败时执行的启动模式。在第二启动模式下,电子设备可以读取第一启动信息并运行第一启动信息,使电子设备可以启动并运行应用程序,通常,第一启动信息的作用是作为第二启动信息的备份,因此,第一分区可以存储第一启动信息和用于获取更新信息的应用程序,电子设备基于第一启动信息启动后,可以从***更新服务端获取电子设备的***更新信息。上述***更新服务端可以是如图1所示的服务器101。通常,在电子设备在第二启动模式下启动后,可以向***更新服务端发送***更新请求,***更新服务端接收到***更新请求后,向电子设备发送***更新信息。
步骤204,基于***更新信息,更新目标存储器的第二分区中的第二启动信息。
其中,***更新信息可以是完整的第二启动信息,也可以是第二启动信息包括的部分信息,利用***更新信息,可以对第二分区中原始的第二启动信息进行更新,得到更新后的第二启动信息。
步骤205,基于更新后的第二启动信息,通过第一启动模式启动电子设备。
更新后的第二启动信息通常包括电子设备正常运行操作***所使用的镜像文件,通过第一启动模式启动电子设备后即正常运行电子设备,从而完成对启动故障的修复。
本公开的上述实施例提供的方法,通过将第一启动信息和第二启动信息分别存储在目标存储器的第一分区和第二分区,基于电子设备在第一启动模式下的启动状态,利用第一启动信息在第二启动模式下启动电子设备,并更新第二分区中的第二启动信息,再利用更新后的第二启动信息在第一启动模式下启动电子设备,从而实现了将第一启动信息和第二启动信息在存储器中隔离,处理器对第一分区和第二分区的读写操作互不影响,电子设备正常启动使用的第二启动信息可以及时更新,大大提升了电子设备启动的成功率。
在一些可选的实现方式中,如图3所示,步骤201包括:
步骤2011,获取预设的启动加载程序,并运行启动加载程序。
其中,启动加载程序是预先存储的一段程序代码,运行该段代码可以判断电子设备是否启动成功。例如,启动加载程序可以是SPL(Secondary Program Loader)程序。电子设备可以从用于存储启动加载程序的存储区获取启动加载程序,该存储区可以设置在上述目标存储器中,例如,可以在上述目标存储器中预先设置一个分区存储启动加载程序;或者,该存储区可以设置在专用于存储启动加载程序的存储器中,例如存储在用于启动电子设备的专用ROM中。
步骤2012,基于启动加载程序,获取表示电子设备是否启动成功的启动标识信息。
其中,启动标识信息可以通过各种方法得到。例如,通过设置专用的启动检测设备(例如可以是一个芯片),实时与电子设备进行通信,若该启动检测设备接收到电子设备启动成功后反馈的启动成功信号,则生成表示启动成功的启动标识信息;若无法接收到电子设备反馈的启动成功信号,则生成表示启动失败的启动标识信息。
步骤2013,基于启动标识信息,确定电子设备在预设时机通过第一启动模式的启动状态。
启动标识信息可以是数字、符号等各种类型的信息。例如,若启动标识信息为数字1,表示电子设备通过第一启动模式启动成功;若启动标识信息为数字0,表示电子设备通过第一启动模式启动失败。
本实施例通过设置启动加载程序,运行启动加载程序以判断电子设备在第一启动模式下的启动状态,可以实现在电子设备上电后即运行启动加载程序,从而有助于快速确定电子设备在预设时机通过第一启动模式的启动状态。
在一些可选的实现方式中,步骤2011中,可以按照如下两种方式中的任一种获取启动加载程序:
方式一,从启动存储器中读取启动加载程序。
方式二,从第一分区中读取启动加载程序。
在方式一中,启动存储器可以是专用于存储启动加载程序的存储器。例如,启动存储器可以是电子设备中用于启动电子设备的专用ROM。该ROM中的内容,可以预先存入其中,在电子设备之后的应用过程中,该ROM中的内容不可更改。作为示例,通常电子设备上电并开始启动后会首先运行BOOTROM代码,BOOTROM代码是固化在上述ROM中的一段代码,该段代码可以包括启动加载程序的代码,实现启动加载程序的功能。
方式一通过从启动存储器中读取启动加载程序,可以在启动存储器出厂前将启动加载程序固化在其中,电子设备可以直接从启动存储器中读取启动加载程序,电子设备运行的逻辑较简单,有助于提高电子设备的启动效率。
在方式二中,由于通常第二分区是电子设备正常启动时使用的分区,为了在第二分区中的第二启动信息出现故障导致启动失败时,电子设备能够正确读取到启动加载程序,因此,将启动加载程序设置在第一分区中。
作为示例,启动加载程序可以是SPL程序,SPL是电子设备启动过程中的第二阶段执行的代码,主要负责初始化设备,搬移启动过程中的代码到内存中。而电子设备启动过程中的第一阶段执行的代码,通常是BOOTROM代码,BOOTROM代码是固化在电子设备的ROM中的一段代码,通过运行该段代码,可以引导运行上述SPL。
可选的,在本实施例中,若采用SPL程序作为启动加载程序,则SPL程序可以只执行判断电子设备是否启动成功,以及通过第一启动信息启动或第二启动信息启动的功能。即SPL程序的代码量尽量少,且不与第二分区的第二启动信息一起更新,从而减少因SPL程序无法更新对启动过程的影响。
方式二通过从第一分区中读取启动加载程序,可以在第二分区中的第二启动信息出现故障时,运行第一分区中的启动加载程序,启动加载程序的运行不受第二分区的影响,从而准确地确定电子设备在第一启动模式下的启动状态。此外,将启动加载程序设置在第一分区中,而非设置在上述方式一的启动存储器中,可以实现无需对已固化进启动存储器中的程序进行修改,简化了启动存储器中的程序,降低配置启动存储器的难度,便于灵活调整启动加载程序,提高维护电子设备的便利性。
在一些可选的实现方式中,步骤2012可以包括:
基于启动加载程序,从预设的计数器获取启动计数值,并基于启动计数值生成启动标识信息。
其中,启动计数值在电子设备通过第一启动模式启动成功时为预设数值。
作为示例,电子设备上电后,开始基于第二分区的第二启动信息在第一启动模式下执行启动程序,同时上述计数器会自动计数(例如每次启动程序开始执行后自加1),启动成功后,将该计数器的启动计数值设置为预设数值(例如0),并生成表示启动成功的启动标识信息;若多次执行启动程序后,启动计数值达到预设阈值(例如3),则确定启动失败,生成表示启动失败的启动标识信息。
本实施例通过设置计数器,在第一启动模式下进行计数,可以根据启动计数值快速、准确地判断启动是否成功,从而有助于高效地对电子设备进行启动故障修复。
在一些可选的实现方式中,步骤2012包括:
基于启动加载程序,接收预设的外部监测设备发送的外部监测信息,并基于外部监测信息生成启动标识信息。
其中,外部监测设备用于实时监测电子设备在第一启动模式下的启动状态,并生成表示电子设备在第一启动模式下是否启动成功的外部监测信息。
其中,外部监测设备可以是专用的监测芯片,也可以是与电子设备连接的通用设备。作为示例,当外部监测设备是监测芯片时,该监测芯片可以对电子设备进行心跳监测,即每隔一段时间与电子设备进行一次通信,当超过预设的时间阈值未能与电子设备进行通信,则确定电子设备在第一启动模式下启动失败,此时生成表示启动失败的外部监测信息。外部监测信息可以通过该监测芯片的一个管脚输出并发送到电子设备,电子设备接收到外部监测信息,生成对应的启动标识信息。
本实施例通过设置外部监测设备,实时监测电子设备的启动状态,无需电子设备执行启动监测程序,从而进一步快速、准确地判断启动是否成功,进一步提高地对电子设备进行启动故障修复的效率。
在一些可选的实现方式中,步骤2013包括:
响应于符合以下至少一项条件,确定电子设备在预设时机通过第一启动模式的启动状态为启动成功:启动计数值达到预设数值,外部监测信息为预设信息。
作为示例,预设数值为0,预设信息为为低电平,当启动成功时,电子设备将启动计数值设置为0;当启动成功时,外部监测设备通过某个芯片管脚将低电平信号作为外部监测信息发送至电子设备。当电子设备确定启动计数值为0,和/或外部监测信息为低电平时,确定电子设备通过第一启动模式启动成功。
本实施例通过将启动计数值和外部监测设备相结合判断电子设备是否启动成功,可以引入更多的判断条件,从而有助于提高确定电子设备的启动状态的准确性。
在一些可选的实现方式中,如图4所示,步骤202包括:
步骤2021,通过运行启动加载程序,从目标存储器的第一分区确定第一启动信息的地址。
步骤2022,基于地址,从第一分区读取第一启动信息。
本实施例中,启动加载程序除了可以用于确定电子设备的启动状态,还可以用于从第一分区读取第一启动信息。读取第一启动时,可以首先确定第一启动信息的地址,该地址可以是预先向第一分区存储第一启动信息时确定的,电子设备可以获取到该地址。然后,电子设备基于该地址,可以从第一分区读取第一启动信息。
本实施例通过将启动加载程序设置为具有读取第一启动信息的功能,可以在第二分区中的第二启动信息出现故障时,运行第一分区中的启动加载程序,从而快速且准确地运行第一启动信息,进一步提高对电子设备的进行启动故障修复的效率。
在一些可选的实现方式中,如图5所示,在步骤201之后,该方法还包括:
步骤206,响应于确定电子设备在预设时机通过第一启动模式的启动状态为启动成功,从第二分区读取第二启动信息。
步骤207,基于第二启动信息,通过第一启动模式启动电子设备。
具体地,当确定上述预设时机(例如最近一次启动)下的启动状态为启动成功时,表示截止到预设时机,第二分区中的第二启动信息是无故障的,可以直接读取第二启动信息,按照第一启动模式启动电子设备。
在按照第一启动模式启动电子设备时,若再次确定当前的启动状态为启动失败,则可以继续执行上述步骤202-步骤205,从而保证电子设备可以启动。
本实施例通过确定电子设备在预设时机通过第一启动模式启动成功时,从第二分区读取第二启动信息并继续按照第一启动模式启动电子设备,从而确保电子设备在正常情况下基于第二启动信息启动,将第一分区中的第一启动信息作为备份启动信息,大大提升了电子设备启动的成功率。
示例性装置
图6是本公开一示例性实施例提供的基于存储器分区的设备启动装置的结构示意图。本实施例可应用在电子设备上,如图6所示,基于存储器分区的设备启动装置包括:确定模块601,用于确定电子设备在预设时机通过第一启动模式的启动状态;第一读取模块602,用于基于启动状态,从目标存储器的第一分区读取第一启动信息;第一启动模块603,用于基于第一启动信息,在第二启动模式下启动电子设备,并从***更新服务端获取电子设备的***更新信息;更新模块604,用于基于***更新信息,更新目标存储器的第二分区中的第二启动信息;第二启动模块605,用于基于更新后的第二启动信息,通过第一启动模式启动电子设备。
在本实施例中,确定模块601可以确定电子设备在预设时机通过第一启动模式的启动状态。
其中,电子设备可以是如图1所示的终端设备101,第一启动模式可以是电子设备在正常运行的情况下启动的模式。在第一启动模式下,电子设备使用目标存储器的第二分区中的第二启动信息进行启动。
上述预设时机可以是电子设备任意一次启动的过程。例如,预设时机可以是电子设备最近一次启动的过程。电子设备在第一启动模式下进行启动的过程中,可以检测启动状态,并生成表示启动状态的启动状态信息,根据启动状态信息,可以确定电子设备在第一启动模式下是否启动成功。
在本实施例中,第一读取模块602可以基于启动状态,从目标存储器的第一分区读取第一启动信息。
其中,目标存储器可以是设置在电子设备内的存储器,也可以是与电子设备连接的其他设备中的存储器。目标存储器可以是各种类型的存储器,例如,可以是EMMC存储器,也可以是RAM(Random Access Memory,随机存储器)、ROM(Read-Only Memory,随机存储器)等其他类型的存储器。目标存储器包括多个分区,其中的第一分区中存储有第一启动信息,第二分区中存储有第二启动信息。由于EMMC存储器通常包括多个分区,例如通用分区(General Purpose Partition)、用户数据分区(User Data Area)等,且这些分区是物理隔离的,因此,当目标存储器是EMMC存储器时,可以预先从这些分区中选择两个分区作为第一分区和第二分区。
通常,第一分区作为启动备份分区,该分区中的第一启动信息即备份启动信息。例如,第一启动信息可以包括备份***镜像文件。当确定启动状态为在第一启动模式下启动失败时,电子设备可以从第一分区读取作为***备份的第一启动信息。
在本实施例中,第一启动模块603可以基于第一启动信息,在第二启动模式下启动电子设备,并从***更新服务端获取电子设备的***更新信息。
其中,第二启动模式可以为在第一启动模式下启动失败时执行的启动模式。在第二启动模式下,电子设备可以读取第一启动信息并运行第一启动信息,使电子设备可以启动并运行各种应用程序,电子设备启动后,可以从***更新服务端获取电子设备的***更新信息。上述***更新服务端可以是如图1所示的服务器101。通常,在电子设备在第二启动模式下启动后,可以向***更新服务端发送***更新请求,***更新服务端接收到***更新请求后,向电子设备发送***更新信息。
在本实施例中,更新模块604可以基于***更新信息,更新目标存储器的第二分区中的第二启动信息。
其中,***更新信息可以是完整的第二启动信息,也可以是第二启动信息包括的部分信息,利用***更新信息,可以对第二分区中原始的第二启动信息进行更新,得到更新后的第二启动信息。
在本实施例中,第二启动模块605可以基于更新后的第二启动信息,通过第一启动模式启动电子设备。
更新后的第二启动信息通常包括电子设备正常运行操作***所使用的镜像文件,通过第一启动模式启动电子设备后即正常运行电子设备,从而完成对启动故障的修复。
参照图7,图7是本公开另一示例性实施例提供的基于存储器分区的设备启动装置的结构示意图。
在一些可选的实现方式中,确定模块601包括:第一读取单元6011,用于从第一分区读取预设的启动加载程序,并运行启动加载程序;获取单元6012,用于基于启动加载程序,获取表示电子设备是否启动成功的启动标识信息;第一确定单元6013,用于基于启动标识信息,确定电子设备在预设时机通过第一启动模式的启动状态。
在一些可选的实现方式中,第一读取单元6011进一步用于:从启动存储器中读取启动加载程序;或者,从第一分区中读取启动加载程序。
在一些可选的实现方式中,获取单元6012包括:第一生成子单元60121,用于基于启动加载程序,从预设的计数器获取启动计数值,并基于启动计数值生成启动标识信息,其中,启动计数值在电子设备通过第一启动模式启动成功时为预设数值。
在一些可选的实现方式中,获取单元6012包括:第二生成子单元60122,用于基于启动加载程序,接收预设的外部监测设备发送的外部监测信息,并基于外部监测信息生成启动标识信息,其中,外部监测设备用于实时监测电子设备在第一启动模式下的启动状态,并生成表示电子设备在第一启动模式下是否启动成功的外部监测信息。
在一些可选的实现方式中,第一确定单元6013进一步用于:响应于符合以下至少一项条件,确定电子设备在预设时机通过第一启动模式的启动状态为启动成功:启动计数值达到预设数值,外部监测信息为预设信息。
在一些可选的实现方式中,第一读取模块602包括:第二确定单元6021,用于通过运行启动加载程序,从目标存储器的第一分区确定第一启动信息的地址;第二读取单元6022,用于基于地址,从第一分区读取第一启动信息。
在一些可选的实现方式中,该装置还包括:第二读取模块606,用于响应于确定电子设备在预设时机通过第一启动模式的启动状态为启动成功,从第二分区读取第二启动信息;第三启动模块607,用于基于第二启动信息,通过第一启动模式启动电子设备。
本公开上述实施例提供的基于存储器分区的设备启动装置,通过将第一启动信息和第二启动信息分别存储在目标存储器的第一分区和第二分区,基于电子设备在第一启动模式下的启动状态,利用第一启动信息在第二启动模式下启动电子设备,并更新第二分区中的第二启动信息,再利用更新后的第二启动信息在第一启动模式下启动电子设备,从而实现了将第一启动信息和第二启动信息在存储器中隔离,处理器对第一分区和第二分区的读写操作互不影响,电子设备正常启动使用的第二启动信息可以及时更新,大大提升了电子设备启动的成功率。
示例性电子设备
下面,参考图8来描述根据本公开实施例的电子设备。该电子设备可以是如图1所示的终端设备101或与它们独立的单机设备,该单机设备可以与终端设备101和服务器103进行通信,以从它们接收信号。
图8示出了根据本公开实施例的电子设备的框图。
如图8所示,电子设备800包括一个或多个处理器801和存储器802。
处理器801可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备800中的其他组件以执行期望的功能。
存储器802可以包括一个或多个计算机程序产品,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器801可以运行程序指令,以实现上文的本公开的各个实施例的基于存储器分区的设备启动方法以及/或者其他期望的功能。在计算机可读存储介质中还可以存储诸如第一启动信息、第二启动信息等各种内容。
在一个示例中,电子设备800还可以包括:输入装置803和输出装置804,这些组件通过总线***和/或其他形式的连接机构(未示出)互连。
例如,该输入装置803可以是鼠标、键盘等设备,用于输入启动信息、各种命令等。在该电子设备是单机设备时,该输入装置803可以是通信网络连接器,用于从终端设备101和服务器103接收所输入的启动信息、各种命令等。
该输出装置804可以向外部输出各种信息,包括启动过程中的各种检测信息等。该输出装置804可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出装置等等。
当然,为了简化,图8中仅示出了该电子设备800中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备800还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本公开的实施例还可以提供一种计算机程序产品,包括计算机程序指令,计算机程序指令在被处理器运行时使得处理器执行上述“示例性方法”部分中描述的本公开各种实施例的基于存储器分区的设备启动方法中的步骤。
计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令在被处理器运行时使得处理器执行上述“示例性方法”部分中描述的本公开各种实施例的基于存储器分区的设备启动方法中的步骤。
计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如但不限于包括电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为其是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本领域的技术人员可以对本公开进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。

Claims (11)

1.一种基于存储器分区的设备启动方法,包括:
确定电子设备在预设时机通过第一启动模式的启动状态;
基于所述启动状态,从目标存储器的第一分区读取第一启动信息;
基于所述第一启动信息,在第二启动模式下启动所述电子设备,并从***更新服务端获取所述电子设备的***更新信息;
基于所述***更新信息,更新所述目标存储器的第二分区中的第二启动信息;
基于更新后的所述第二启动信息,通过所述第一启动模式启动所述电子设备。
2.根据权利要求1所述的方法,其中,所述确定电子设备在预设时机通过第一启动模式的启动状态,包括:
获取预设的启动加载程序,并运行所述启动加载程序;
基于所述启动加载程序,获取表示所述电子设备是否启动成功的启动标识信息;
基于所述启动标识信息,确定所述电子设备在所述预设时机通过第一启动模式的启动状态。
3.根据权利要求2所述的方法,其中,所述获取预设的启动加载程序,包括:
从启动存储器中读取所述启动加载程序;或者,
从所述第一分区中读取所述启动加载程序。
4.根据权利要求2所述的方法,其中,所述基于所述启动加载程序,获取表示所述电子设备是否启动成功的启动标识信息,包括:
基于所述启动加载程序,从预设的计数器获取启动计数值,并基于所述启动计数值生成所述启动标识信息,其中,所述启动计数值在所述电子设备通过所述第一启动模式启动成功时为预设数值。
5.根据权利要求2-4任一项所述的方法,其中,所述基于所述启动加载程序,获取表示所述电子设备是否启动成功的启动标识信息,包括:
基于所述启动加载程序,接收预设的外部监测设备发送的外部监测信息,并基于所述外部监测信息生成所述启动标识信息,其中,所述外部监测设备用于实时监测所述电子设备在所述第一启动模式下的启动状态,并生成表示所述电子设备在所述第一启动模式下是否启动成功的外部监测信息。
6.根据权利要求5所述的方法,其中,所述基于所述启动标识信息,确定所述电子设备在所述预设时机通过第一启动模式的启动状态,包括:
响应于符合以下至少一项条件,确定所述电子设备在所述预设时机通过所述第一启动模式的启动状态为启动成功:所述启动计数值达到预设数值,所述外部监测信息为预设信息。
7.根据权利要求2所述的方法,其中,所述从目标存储器的第一分区读取第一启动信息,包括:
通过运行所述启动加载程序,从所述目标存储器的第一分区确定所述第一启动信息的地址;
基于所述地址,从所述第一分区读取所述第一启动信息。
8.根据权利要求1所述的方法,其中,在所述确定电子设备在预设时机通过第一启动模式的启动状态之后,所述方法还包括:
响应于确定所述电子设备在所述预设时机通过所述第一启动模式的启动状态为启动成功,从所述第二分区读取所述第二启动信息;
基于所述第二启动信息,通过所述第一启动模式启动所述电子设备。
9.一种基于存储器分区的设备启动装置,包括:
确定模块,用于确定电子设备在预设时机通过第一启动模式的启动状态;
第一读取模块,用于基于所述启动状态,从目标存储器的第一分区读取第一启动信息;
第一启动模块,用于基于所述第一启动信息,在第二启动模式下启动所述电子设备,并从***更新服务端获取所述电子设备的***更新信息;
更新模块,用于基于所述***更新信息,更新所述目标存储器的第二分区中的第二启动信息;
第二启动模块,用于基于更新后的所述第二启动信息,通过所述第一启动模式启动所述电子设备。
10.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于被处理器执行以实现上述权利要求1-8任一所述的方法。
11.一种电子设备,所述电子设备包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-8任一所述的方法。
CN202310686677.4A 2023-06-09 2023-06-09 基于存储器分区的设备启动方法、装置及电子设备 Pending CN116719564A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310686677.4A CN116719564A (zh) 2023-06-09 2023-06-09 基于存储器分区的设备启动方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310686677.4A CN116719564A (zh) 2023-06-09 2023-06-09 基于存储器分区的设备启动方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN116719564A true CN116719564A (zh) 2023-09-08

Family

ID=87872883

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310686677.4A Pending CN116719564A (zh) 2023-06-09 2023-06-09 基于存储器分区的设备启动方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN116719564A (zh)

Similar Documents

Publication Publication Date Title
US8132055B2 (en) Operating system-firmware interface update recovery
US20170220355A1 (en) System for programmably configuring a motherboard
WO2016206514A1 (zh) 启动处理方法及装置
US11314665B2 (en) Information processing system, information processing device, BIOS updating method for information processing device, and BIOS updating program for information processing device
CN108509215B (zh) 一种***软件的更换方法、装置、终端设备及存储介质
US20210240491A1 (en) System and method for runtime synchronization and authentication of pre-boot device drivers for a rescue operating system
CN112433769A (zh) 一种bmc启动方法、装置、计算机设备及存储介质
CN115113905A (zh) 固件升级方法和固件升级装置
CN111026421A (zh) 一种升级装置
US20230087221A1 (en) Detection fields of view
CN117130672A (zh) 服务器启动流程控制方法、***、终端及存储介质
CN115437674B (zh) 一种固件升级方法、装置、介质及电子设备
CN114237722B (zh) 一种***的启动方法、装置、设备及工程车辆
US20240176887A1 (en) Method for Running Startup Program of Electronic Device, and Electronic Device
CN116719564A (zh) 基于存储器分区的设备启动方法、装置及电子设备
CN115658152A (zh) 固件升级方法、固件、电子设备和计算机可读存储介质
CN115168146A (zh) 一种异常检测方法和装置
CN114594995A (zh) 电子装置及其开机方法
CN109684134B (zh) 用于在多个设备间快速部署固件设定的方法及服务器
CN113377425A (zh) Bmc固件生成方法和装置、bmc启动方法和装置及存储介质
KR101420026B1 (ko) 부팅 프로세스 중에 파일들을 로딩하기 위한 방법, 장치 및 컴퓨터 판독가능 저장 매체
CN110908725A (zh) 应用程序启动方法、装置、电子设备及可读介质
CN111176735B (zh) 一种心电图机启动加速方法
US20220350611A1 (en) Embedded electronic device, boot method, and embedded electronic device readable recording medium with stored program
CN118349290A (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