CN116820841A - 终端设备的启动方法、装置、设备、介质及产品 - Google Patents

终端设备的启动方法、装置、设备、介质及产品 Download PDF

Info

Publication number
CN116820841A
CN116820841A CN202310805035.1A CN202310805035A CN116820841A CN 116820841 A CN116820841 A CN 116820841A CN 202310805035 A CN202310805035 A CN 202310805035A CN 116820841 A CN116820841 A CN 116820841A
Authority
CN
China
Prior art keywords
spl
target
sml
flag bit
starting
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
CN202310805035.1A
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.)
Spreadtrum Communications Shanghai Co Ltd
Original Assignee
Spreadtrum Communications Shanghai 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 Spreadtrum Communications Shanghai Co Ltd filed Critical Spreadtrum Communications Shanghai Co Ltd
Priority to CN202310805035.1A priority Critical patent/CN116820841A/zh
Publication of CN116820841A publication Critical patent/CN116820841A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本申请提供的一种终端设备的启动方法、装置、设备、介质及产品。该方法包括:通过获取备份区的第一SPL的头部信息,并根据该头部信息确定目标SPL,可以确定目标SPL与SML的当前版本是否匹配,目标SPL为第一SPL或者主分区的第二SPL,SML的当前版本为未升级成功的版本。若不匹配,则可以通过系统启动加载器对头部信息进行更新,以变更目标SPL,并基于变更后的目标SPL重启终端设备,若匹配,则可以基于目标SPL和SML的当前版本启动终端设备。本申请通过对加载的SPL进行回滚,可以在SML升级失败时,可以确保SPL的版本与其加载的SML的版本匹配,确保终端设备可以正常启动。

Description

终端设备的启动方法、装置、设备、介质及产品
技术领域
本申请涉及通信技术领域,尤其涉及一种终端设备的启动方法、装置、设备、介质及产品。
背景技术
终端设备上电启动时需要先从一段固化在硬件中的代码中的一段代码运行,例如Romcode,即固化在只读存储器(Read-Only Memory,ROM)的一段代码,这段代码由于是固化在硬件中,因此出厂后无法增删改。然后由Romcode加载二级程序加载器(SecondaryProgram Loader,SPL)进行初始化工作,接着SPL再加载安全监视器级别(Secure MonitorLevel,SML)和终端操作系统(Terminal Operation System,TOS)、以及系统启动加载器(bootloader),使得启动整个系统。
目前,终端设备出厂后通过空中下载技术(Over-the-Air Technology,OTA)对SPL等可升级的模块升级时,为了防止终端设备掉电,终端设备中存在一个备份分区,当Romcode启动SPL的时候会校验SPL,若正常,则从更新后的SPL启动,若被损坏,从备份分区启动。
但是,当SPL升级成功,Romcode校验SPL时SPL正常,则会从更新后的SPL启动SML,此时如果SML也进行了升级,但是升级失败,那么更新后的SPL与老版本的SML无法匹配,使得终端设备无法正常升级,无法正常开机。
发明内容
本申请提供一种终端设备的启动方法、装置、设备、介质及产品,用以解决相关技术中,SML升级失败导致更新后的SPL与老版的SML无法匹配导致无法正常开机的问题。
第一方面,本申请提供一种终端设备的启动方法,包括:
获取备份区的第一SPL的头部信息;
根据所述头部信息确定目标SPL,所述目标SPL为所述第一SPL或者主分区的第二SPL;
确定所述目标SPL与安全监视器级别SML的当前版本是否匹配,所述SML的当前版本为未升级成功的版本;
若不匹配,则通过系统启动加载器对所述头部信息进行更新,以变更所述目标SPL,并基于变更后的目标SPL重启所述终端设备;
若匹配,则基于所述目标SPL和所述SML的当前版本启动所述终端设备。
在一种可能的实现方式中,所述确定所述目标SPL与安全监视器级别SML的当前版本是否匹配,包括:
在第一分区中,获取所述目标SPL对应的第一标志位;
在第二分区中,获取多个第二标志位,所述第二标志位为所述终端设备中升级成功的功能代码对应的标志位;
根据所述第一标志位和所述第二标志位,确定所述目标SPL与所述SML的当前版本是否匹配。
在一种可能的实现方式中,所述根据所述第一标志位和所述第二标志位,确定所述目标SPL与所述SML的当前版本是否匹配,包括:
若所述多个第二标志位中包括所述第一标志位,则确定所述目标SPL与所述SML的当前版本不匹配;
若所述多个第二标志位中不包括所述第一标志位,则确定所述目标SPL与所述SML的当前版本匹配。
在一种可能的实现方式中,所述获取备份区的第一二级程序加载器SPL的头部信息,包括:
获取一次性可编程存储器的使能标志位,所述使能标志位用于指示是否读取所述头部信息;
若所述使能标志位指示读取所述头部信息,则从第一分区读取所述头部信息。
在一种可能的实现方式中,所述获取备份区的第一二级程序加载器SPL的头部信息之前,所述方法还包括:
对所述备份区的第一SPL进行升级;
若所述备份区的第一SPL升级成功,则在所述头部信息中记录所述第一SPL的标志位,所述第一SPL的标志位用于指示所述第一SPL为所述目标SPL;
若所述备份区的SPL升级失败,则在所述头部信息中记录所述第二SPL的标志位,所述第二SPL的标志位用于指示所述第二SPL为所述目标SPL;
若所述终端设备启动成功,则将所述备份区的升级后的SPL的数据写入所述主分区。
在一种可能的实现方式中,所述通过系统启动加载器对所述头部信息进行更新,包括:
若所述头部信息中包括所述第二SPL的标志位,则通过所述系统启动加载器将所述第二SPL的标志位更新所述第一SPL的标志位;
若所述头部信息中包括所述第一SPL的标志位,则通过所述系统启动加载器将所述第一SPL的标志位更新所述第二SPL的标志位。
在一种可能的实现方式中,所述方法还包括:
若所述目标SPL与所述SML的当前版本不匹配,在预设函数中设置第一参数;
若所述目标SPL与所述SML的当前版本匹配,则在所述预设函数中设置第二参数;
其中,所述第一参数和所述第二参数,用于所述系统启动加载器确定所述目标SPL与所述SML的当前版本是否匹配。
第二方面,本申请提供一种终端设备的启动装置,包括:
获取模块,用于获取备份区的第一SPL的头部信息;
第一确定模块,用于根据所述头部信息确定目标SPL,所述目标SPL为所述第一SPL或者主分区的第二SPL;
第二确定模块,用于确定所述目标SPL与安全监视器级别SML的当前版本是否匹配,所述SML的当前版本为未升级成功的版本;
处理模块,用于若不匹配,则通过系统启动加载器对所述头部信息进行更新,以变更所述目标SPL,并基于变更后的目标SPL重启所述终端设备;
启动模块,用于若匹配,则基于所述目标SPL和所述SML的当前版本启动所述终端设备。
在一种可能的实现方式中,所述第二确定模块具体用于:
在第一分区中,获取所述目标SPL对应的第一标志位;
在第二分区中,获取多个第二标志位,所述第二标志位为所述终端设备中升级成功的功能代码对应的标志位;
根据所述第一标志位和所述第二标志位,确定所述目标SPL与所述SML的当前版本是否匹配。
在一种可能的实现方式中,所述第二确定模块具体用于:
若所述多个第二标志位中包括所述第一标志位,则确定所述目标SPL与所述SML的当前版本不匹配;
若所述多个第二标志位中不包括所述第一标志位,则确定所述目标SPL与所述SML的当前版本匹配。
在一种可能的实现方式中,所述获取模块具体用于:
获取一次性可编程存储器的使能标志位,所述使能标志位用于指示是否读取所述头部信息;
若所述使能标志位指示读取所述头部信息,则从第一分区读取所述头部信息。
在一种可能的实现方式中,所述装置还包括升级模块;
所述获取备份区的第一二级程序加载器SPL的头部信息之前,所述升级模块具体用于:
对所述备份区的第一SPL进行升级;
若所述备份区的第一SPL升级成功,则在所述头部信息中记录所述第一SPL的标志位,所述第一SPL的标志位用于指示所述第一SPL为所述目标SPL;
若所述备份区的SPL升级失败,则在所述头部信息中记录所述第二SPL的标志位,所述第二SPL的标志位用于指示所述第二SPL为所述目标SPL;
若所述终端设备启动成功,则将所述备份区的升级后的SPL的数据写入所述主分区。
在一种可能的实现方式中,所述更新模块具体用于:
若所述头部信息中包括所述第二SPL的标志位,则通过所述系统启动加载器将所述第二SPL的标志位更新所述第一SPL的标志位;
若所述头部信息中包括所述第一SPL的标志位,则通过所述系统启动加载器将所述第一SPL的标志位更新所述第二SPL的标志位。
在一种可能的实现方式中,所述装置还包括参数设置模块;
所述参数设置模块具体用于:
若所述目标SPL与所述SML的当前版本不匹配,在预设函数中设置第一参数;
若所述目标SPL与所述SML的当前版本匹配,则在所述预设函数中设置第二参数;
其中,所述第一参数和所述第二参数,用于所述系统启动加载器确定所述目标SPL与所述SML的当前版本是否匹配。
第三方面,本申请提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如第一方面所述的终端设备的启动方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被计算机执行时用于实现如第一方面所述的终端设备的启动方法。
第五方面,本申请提供一种计算机程序产品,包括计算机程序,所述计算机程序被计算机执行时用于实现第一方面所述的终端设备的启动方法。
第六方面,本申请实施例提供一种芯片,所述芯片上存储有计算机程序,所述计算机程序被所述芯片执行时使得第一方面所述的终端设备的启动方法被执行。
在一种可能的实施方式中,所述芯片为芯片模组中的芯片。
第七方面,本申请实施例提供一种模组设备,所述模组设备包括电源模组、存储模组以及芯片模组;
其中,所述电源模组用于为所述模组设备提供电能;
所述存储模组用于存储数据和指令;
所述芯片模组用于执行第一方面所述的终端设备的启动方法。
本申请提供的一种终端设备的启动方法、装置、设备、介质及产品,通过获取备份区的第一SPL的头部信息,并根据该头部信息确定目标SPL,可以确定目标SPL与SML的当前版本是否匹配,其中,目标SPL为第一SPL或者主分区的第二SPL,SML的当前版本为未升级成功的版本。若不匹配,则可以通过系统启动加载器对头部信息进行更新,以变更目标SPL,并基于变更后的目标SPL重启终端设备,即通过变更后的目标SPL再次启动终端设备,若匹配,则可以基于目标SPL和SML的当前版本启动终端设备。本申请通过对加载的SPL进行回滚,可以在SML升级失败时,可以确保SPL的版本与其加载的SML的版本匹配,确保终端设备可以正常启动。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的一种终端设备的启动方法的流程示意图;
图2为本申请实施例提供的另一种终端设备的启动方法的流程示意图;
图3为本申请实施例示例的标志位更新的示意图;
图4为本申请实施例示例的系统启动加载器的控制流程的示意图;
图5为本申请实施例提供的一种终端设备的启动装置的结构示意图;
图6为本申请实施例提供的一种电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
为了更清楚的说明本申请,下面,首先对本申请实施例涉及的名词作相关介绍:
Romcode:终端设备上电后,最早执行的代码,该代码固化在ROM中。
SPL:可以用于检测终端设备硬件、寻找系统启动分区、启动操作系统、为系统的基本维护提供操作界面,可以通过数据线与操作终端(如PC)建立连接,并接受和执行相应命令。
SML:是一种针对RISC微处理器(Advanced RISC Machine,ARM)的底层的开源固件代码。
系统启动加载器(BootLoader):是在操作系统内核运行之前运行,可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境,整个系统的加载启动任务就完全由BootLoader来完成。
示例性的,系统启动加载器可以是小内核(Little kernel,LK)。
终端设备上电启动时需要先从Romcode运行,这段代码由于是固化在硬件中,因此出厂后无法增删改。然后由Romcode加载SPL进行初始化工作,接着SPL再加载SML和TOS、以及系统启动加载器,使得启动整个系统。
终端设备出厂后,可以通过OTA对终端设备中的代码模块进行升级,例如对SPL、LK等可升级的模块进行升级。在对SPL进行升级时,为了防止终端设备掉电,可以在终端设备中设置一个备份分区(以下简称备份区),当Romcode启动SPL视,会对主分区的SPL进行校验,以确定主分区的SPL是否正常,若主分区的SPL正常,则可以启动主分区中更新后的SPL,若主分区的SPL不正常,例如被损坏,则可以从备份区启动备份区的SPL,然后再将备份区的SPL的代码拷贝到主分区。
在上述启动方式中,当SPL通过OTA升级成功,那么,Romcode对SPL的校验结果为正常,Romcode可以启动升级成功后的SPL,此时如果SML也通过OTA升级,并且升级失败,那么基于上述启动方式,升级成功后的SPL应该与升级成功后的SML进行匹配,以实现启动,但是此时由于SML升级失败,导致无法启动。即升级成功后的SPL可以调用未升级成功的SML(即老版本的SML),但是升级成功后的SPL与老版本的SML无法匹配,导致无法启动。使得终端设备无法正常升级,无法正常开机。
对于终端设备开启失败的解决方案中,目前针对的是终端设备的用户数据分区(userdata),无法覆盖到SPL、SML、以及LK所在的分区(即boot分区)。
所以,本申请提供一种终端设备的启动方法,在SML升级失败的情况下,当通过SPL启动SML时,若SPL与SML不匹配,则可以对SPL进行回滚,即使得再次启动时加载的SPL为老版本的SPL,以匹配未升级成功的SML,以确定终端设备正常开启。
本申请实施例的应用场景可以是终端设备上电开机的场景,终端设备也可以称为用户设备(User Equipment,UE)、接入终端、远程终端、移动设备、用户终端等。
例如,终端设备可以是具有无线连接功能的手持式设备、车载设备等。目前,一些终端的举例可以为:手机(Mobile Phone)、平板电脑(Pad)、带无线收发功能的电脑(如笔记本电脑、掌上电脑等)、移动互联网设备(Mobile Internet Device,MID)、虚拟现实(Virtual Reality,VR)设备、增强现实(Augmented Reality,AR)设备、扩展现实(ExtendedReality,XR)设备、工业控制(industrial control)中的无线终端、无人驾驶(SelfDriving)中的无线终端、远程医疗(Remote Medical)中的无线终端、智能电网(SmartGrid)中的无线终端、运输安全(Transportation Safety)中的无线终端、智慧城市(SmartCity)中的无线终端、智慧家庭(Smart Home)中的无线终端、蜂窝电话、无绳电话、会话启动协议(Session Initiation Protocol,SIP)电话、无线本地环路(Wireless Local Loop,WLL)站、个人数字助理(Personal Digital Assistant,PDA)、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、可穿戴设备,5G网络中的终端设备或者未来演进的公用陆地移动通信网络(Public Land Mobile Network,PLMN)中的终端设备等。
此外,终端设备还可以是物联网(Internet of Things,IoT)系统中的终端设备。IoT是未来信息技术发展的重要组成部分,其主要技术特点是将物品通过通信技术与网络连接,从而实现人机互连,物物互连的智能化网络。IoT技术可以通过例如窄带(NarrowBand,NB)技术,做到海量连接,深度覆盖,省电。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以独立存在,也可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图1为本申请实施例提供的一种终端设备的启动方法的流程示意图,该方法可以由终端设备执行,也可以由设置在终端设备中的终端设备的启动装置执行,该装置可以是芯片、也可以是芯片模组、还可以是集成开发环境(integrated developmentenvironment,IDE)等,以下为终端设备为例进行说明,参考图1,该方法包括如下步骤:
S101、获取备份区的第一SPL的头部信息。
在终端设备中,对于SPL存在两个分区:主分区和备份区,这两个分区中分别存储有SPL的代码,使得终端设备上电后可以基于这两个分区进行启动。
终端设备可以通过Romcode获取备份区的第一SPL的头部信息(header),头部信息中可以包括用于指示当前需要启动的SPL的标志位,以实现通过头部信息来指示终端设备需要启动的SPL。
S102、根据头部信息确定目标SPL,目标SPL为第一SPL或者主分区的第二SPL。
终端设备获取到第一SPL的头部信息后,可以根据头部信息中的标志位确定目标SPL,目标SPL为第一SPL或者主分区的第二SPL。
可以理解,本次启动的目标SPL可以是最新的升级成功后的SPL,也可以是未经过最新升级的SPL。
示例性的,终端设备可以通过Romcode,根据头部信息确定目标SPL。
S103、确定目标SPL与SML的当前版本是否匹配,SML的当前版本为未升级成功的版本。
确定目标SPL后,终端设备可以通过目标SPL,将目标SPL与SML的当前版本进行匹配,以确定目标SPL与SML的当前版本是否匹配,其中,SML的当前版本为未升级成功的版本,也就是说,SML可以通过OTA进行升级,但是升级失败,在本次启动中,需要启动当前版本的SML。
若目标SPL与SML的当前版本不匹配,则执行S104,若目标SPL与SML的当前版本匹配,则执行S105。
在一种可能的实现方式中,终端设备可以将目标SPL的版本与SML的当前版本进行对比,以确定是否匹配,示例性的,终端设备可以确定目标SPL是否为升级成功的最新版本的SPL,若目标SPL为升级成功的SPL,则可以确定目标SPL的版本与SML的当前版本不匹配,若目标SPL不是升级成功的SPL,则说明目标SPL可以启动SML的当前版本,可以确定目标SPL的版本与SML的当前版本匹配。
S104、通过系统启动加载器对头部信息进行更新,以变更目标SPL,并基于变更后的目标SPL重启终端设备。
目标SPL可以启动SML,是根据相应的访问地址进行访问,当目标SPL与SML的当前版本不匹配,说明目标SPL的访问地址访问不到SML的当前版本。
终端设备可以通过系统启动加载器对头部信息进行更新,以变更目标SPL,并基于变更后的目标SPL重启终端设备,即实现将终端设备启动时,Romcode需要访问的目标SPL回滚到没有进行版本升级的SPL,也就是说,当终端设备再次启动时,可以基于没有进行版本升级的SPL进行启动。
示例性的,若目标SPL为备份区的第一SPL,则说明备份区的第一SPL是进行版本升级后的SPL,可以理解,此时主分区的第二SPL还是未进行版本升级的SPL,终端设备可以通过系统启动加载器将第一SPL的头部信息的标志位修改为主分区中未进行版本升级的第二SPL,以实现头部信息的更新。
S105、基于目标SPL和SML的当前版本启动终端设备。
若目标SPL与SML的当前版本匹配,终端设备可以基于目标SPL和SML的当前版本正常启动终端设备。
示例性的,当目标SPL与SML的当前版本匹配,说明目标SPL与SML的当前版本匹配,则目标SPL加载SML时,目标SPL可以通过相应的访问地址加载SML,以实现启动SML的当前版本。
在本实施例中,终端设备可以通过获取备份区的第一SPL的头部信息,并根据该头部信息确定目标SPL,可以确定目标SPL与SML的当前版本是否匹配,其中,目标SPL为第一SPL或者主分区的第二SPL,SML的当前版本为未升级成功的版本。若不匹配,则可以通过系统启动加载器对头部信息进行更新,以变更目标SPL,并基于变更后的目标SPL重启终端设备,即通过变更后的目标SPL再次启动终端设备,若匹配,则可以基于目标SPL和SML的当前版本启动终端设备。本申请通过对加载的SPL进行回滚,可以在SML升级失败时,可以确保SPL的版本与其加载的SML的版本匹配,确保终端设备可以正常启动。
下面,通过又一个实施例对本申请提供的另一种终端设备的启动方法进行说明。
图2为本申请实施例提供的另一种终端设备的启动方法的流程示意图,该方法可以由终端设备执行,也可以由设置在终端设备中的终端设备的启动装置执行,该装置可以是芯片、也可以是芯片模组、还可以是IDE等,以下为终端设备为例进行说明,参考图2,该方法包括如下步骤:
S201、获取备份区的第一SPL的头部信息。
在一种可能的实现方式中,终端设备在获取备份区的第一SPL的头部信息时可以获取一次性可编程存储器(Efuse)的使能标志位,该使能标志位指示是否读取头部信息,也就是说,使能标志位可以用于指示Romcode是否支持本申请的启动方法。若使能标志位指示读取头部信息,则终端设备可以从第一分区读取头部信息。通过在Efuse上设置相应的使能位,以灵活控制是否通过本申请的启动方法对终端设备进行启动。
示例性的,第一分区可以是boot分区。
可以理解,若使能标志位指示不能读取头部信息,则终端设备可以通过Romcode启动SPL时,对主分区的SPL进行校验,若正常则启动主分区的SPL,若主分区的SPL被损坏无法启动,则Romcode可以启动备份区的SPL。
在一种可能的实现方式中,终端设备在获取备份区的第一SPL的头部信息之前,当需要对SPL进行升级时,终端设备可以对备份区的第一SPL进行升级,若备份区的第一SPL升级成功,终端设备可以在第一SPL的头部信息中记录第一SPL的标志位。若备份区的第一SPL升级失败,则终端设备可以在第一SPL的头部信息中记录第二SPL的标志位。其中,第一SPL的标志位用于指示第一SPL为目标SPL,第二SPL的标志位用于指示第二SPL为目标SPL。
可以理解,终端设备对备份区的第一SPL升级成功后,此时终端设备不对主分区的第二SPL进行升级,若终端设备对基于升级成功后的第一SPL启动成功,说明第一SPL的最新版本正常,则终端设备可以将备份区的升级后的SPL的数据写入主分区,以实现对主分区的SPL进行升级,使得主分区和备份区的SPL的版本保持一致,即为最新版本。
S202、根据头部信息确定目标SPL,目标SPL为第一SPL或者主分区的第二SPL。
S203、在第一分区中,获取目标SPL对应的第一标志位。
终端设备可以通过目标SPL,在第一分区中获取目标SPL对应的第一标志位,以确定目标SPL与SML的当前版本是否匹配。
在一种可能的实现方式中,由于目标SPL与Romcode之间的独立性,目标SPL可以获取一次性可编程存储器的使能标志位,该使能标志位可以用于指示目标SPL是否支持本申请的启动方法。若目标SPL支持本申请的启动方法,则终端设备可以从第一分区读取头部信息。
示例性的,第一分区可以是boot分区,终端设备可以在boot分区中记录当前加载的目标SPL的标志位。
也就是说,由于Romcode无法读取第二分区,Romcode确定目标SPL后,可以在boot分区中记录目标SPL的标志位。第二分区中记录有端设备中升级成功的功能代码对应的标志位。使得终端设备可以根据第一分区和第二分区确定备份区的第一SPL是否升级成功、以及当前启动的第一SPL是否为升级成功的SPL。
S204、在第二分区中,获取多个第二标志位,第二标志位为终端设备中升级成功的功能代码对应的标志位。
终端设备在OTA升级过程中,可以记录每个分区的代码模块是否升级成功,终端设备也可以在第二分区中记录相应的标志位,以记录升级成功的代码模块的标志位,当备份区的第一SPL升级成功时,终端设备也可以在第二分区中记录第一SPL的标志位。
S205、根据第一标志位和第二标志位,确定目标SPL与SML的当前版本是否匹配。
若目标SPL与SML的当前版本不匹配,则执行S206,若目标SPL与SML的当前版本匹配,则执行S207。
终端设备可以根据第一标志位和第二标志位,确定目标SPL和SML的当前版本是否匹配。
在一种可能的实现方式中,若多个第二标志位中包括第一标志位,则说明目标SPL为最新升级的SPL,终端设备可以确定目标SPL与SML的当前版本不匹配。若多个第二标志位中不包括第一标志位,则说明目标SPL不是最新升级的SPL,可以确定目标SPL与SML的当前版本匹配。
S206、通过系统启动加载器对头部信息进行更新,以变更目标SPL,并基于变更后的目标SPL重启终端设备。
若目标SPL与SML的当前版本不匹配,终端设备可以对备份区的第一SPL的头部信息进行更新,示例性的,终端设备可以通过系统启动加载器对头部信息进行更新,以变更目标SPL,并基于变更后的目标SPL重启终端设备,使得终端设备再次启动时,可以启动变更后的目标SPL,以确保终端设备启动成功。
在一种可能的实现方式中,终端设备可以通过以下方式对头部信息进行更新:
若头部信息中包括第二SPL的标志位,则终端设备可以通过系统启动加载器将第二SPL的标志位更新第一SPL的标志位。
若头部信息中包括第一SPL的标志位,则终端设备可以通过系统启动加载器将第一SPL的标志位更新第二SPL的标志位。
通过对头部信息的标志位的更新,可以实现对SPL的回滚,以实现SPL与SML的匹配。
示例性的,图3为本申请实施例示例的标志位更新的示意图。
在一种可能的实现方式中,系统启动加载器可以根据预设函数确定目标SPL和SML的当前版本是否匹配,若确定不匹配,系统启动加载器可以对头部信息进行更新。
具体的,若目标SPL与SML的当前版本不匹配,则目标SPL可以在预设函数中设置第一参数,若目标SPL与SML的当前版本匹配,则目标SPL可以在预设函数中设置第二参数,使得系统启动加载器可以通过读取预设函数中的参数,以确定目标SPL与SML的当前版本是否匹配。
示例性的,系统启动加载器的控制流程可以参考图4。若系统启动加载器获取预设函数的参数为第一参数,则对头部信息进行更新,然后进行终端设备的重启,若预设函数的参数为第二参数,则可以启动终端设备的内核,以实现终端设备的正常启动。
S207、基于目标SPL和SML的当前版本启动终端设备。
若目标SPL与SML的当前版本匹配,可以通过目标SPL与SML的当前版本启动终端设备。
在本实施例中,终端设备可以通过获取备份区的第一SPL的头部信息,并根据该头部信息确定目标SPL,在第一分区中,获取目标SPL对应的第一标志位,然后在第二分区中,获取多个第二标志位,第二标志位为终端设备中升级成功的功能代码对应的标志位。根据第一标志位和第二标志位,确定目标SPL与SML的当前版本是否匹配,若不匹配,则可以通过系统启动加载器对头部信息进行更新,以变更目标SPL,并基于变更后的目标SPL重启终端设备,即通过变更后的目标SPL再次启动终端设备,若匹配,则可以基于目标SPL和SML的当前版本启动终端设备。本申请通过对加载的SPL进行回滚,可以在SML升级失败时,可以确保SPL的版本与其加载的SML的版本匹配,确保终端设备可以正常启动。
图5为本申请实施例提供的一种终端设备的启动装置的结构示意图。参考图5,该装置50包括:获取模块501、第一确定模块502、第二确定模块503、处理模块504、和启动模块505。
获取模块501,用于获取备份区的第一SPL的头部信息。
第一确定模块502,用于根据头部信息确定目标SPL,目标SPL为第一SPL或者主分区的第二SPL。
第二确定模块503,用于确定目标SPL与SML的当前版本是否匹配,SML的当前版本为未升级成功的版本。
处理模块504,用于若不匹配,则通过系统启动加载器对头部信息进行更新,以变更目标SPL,并基于变更后的目标SPL重启终端设备。
启动模块505,用于若匹配,则基于目标SPL和SML的当前版本启动终端设备。
在一种可能的实现方式中,第二确定模块503具体用于:
在第一分区中,获取目标SPL对应的第一标志位。
在第二分区中,获取多个第二标志位,第二标志位为终端设备中升级成功的功能代码对应的标志位。
根据第一标志位和第二标志位,确定目标SPL与SML的当前版本是否匹配。
在一种可能的实现方式中,第二确定模块502具体用于:
若多个第二标志位中包括第一标志位,则确定目标SPL与SML的当前版本不匹配。
若多个第二标志位中不包括第一标志位,则确定目标SPL与SML的当前版本匹配。
在一种可能的实现方式中,获取模块具体用于:
获取一次性可编程存储器的使能标志位,使能标志位用于指示是否读取头部信息。
若使能标志位指示读取头部信息,则从第一分区读取头部信息。
在一种可能的实现方式中,装置50还包括升级模块。
获取备份区的第一二级程序加载器SPL的头部信息之前,升级模块具体用于:
对备份区的第一SPL进行升级。
若备份区的第一SPL升级成功,则在头部信息中记录第一SPL的标志位,第一SPL的标志位用于指示第一SPL为目标SPL。
若备份区的SPL升级失败,则在头部信息中记录第二SPL的标志位,第二SPL的标志位用于指示第二SPL为目标SPL。
若终端设备启动成功,则将备份区的升级后的SPL的数据写入主分区。
在一种可能的实现方式中,更新模块具体用于:
若头部信息中包括第二SPL的标志位,则通过系统启动加载器将第二SPL的标志位更新第一SPL的标志位。
若头部信息中包括第一SPL的标志位,则通过系统启动加载器将第一SPL的标志位更新第二SPL的标志位。
在一种可能的实现方式中,装置50还包括参数设置模块。
参数设置模块具体用于:
若目标SPL与SML的当前版本不匹配,在预设函数中设置第一参数。
若目标SPL与SML的当前版本匹配,则在预设函数中设置第二参数。
其中,第一参数和第二参数,用于系统启动加载器确定目标SPL与SML的当前版本是否匹配。
本实施例的装置,可用于执行上述方法实施例的技术方案,具体实现方式和技术效果类似,这里不再赘述。
图6为本申请实施例提供的一种电子设备的结构示意图,如图6所示,电子设备60可以包括:至少一个处理器601和存储器602。
存储器602,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机执行指令。
存储器602可能包含随机存取存储器(Random Access Memory,RAM),也可能还包括非易失性存储器(Non-volatile Memory),例如至少一个磁盘存储器。
处理器601用于执行存储器602存储的计算机执行指令,以实现前述方法实施例所描述的方法。其中,处理器601可能是一个中央处理器(Central Processing Unit,CPU),或者是特定集成电路(Application Specific Integrated Circuit,ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路。
可选的,电子设备60还可以包括:通信接口603。在具体实现上,如果通信接口603、存储器602和处理器601独立实现,则通信接口603、存储器602和处理器601可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(Industry StandardArchitecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果通信接口603、存储器602和处理器601集成在一块芯片上实现,则通信接口603、存储器602和处理器601可以通过内部接口完成通信。
电子设备60可以为芯片、芯片模组、IDE、终端设备等。
本实施例的电子设备,可用于执行上述方法实施例的技术方案,具体实现方式和技术效果类似,这里不再赘述。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、RAM、磁盘或者光盘等各种可以存储计算机执行指令的介质,具体的,该计算机可读存储介质中存储有计算机执行指令,该计算机执行指令被计算机执行时使得上述方法实施例所示的技术方案被执行,具体实现方式和技术效果类似,这里不再赘述。
本申请实施例提供一种计算机程序产品,包括计算机程序,计算机程序被计算机执行时,使得上述方法实施例所示的技术方案被执行,具体实现方式和技术效果类似,这里不再赘述。
本申请实施例提供一种芯片,芯片上存储有计算机程序,计算机程序被芯片执行时,使得上述方法实施例所示的技术方案被执行。
在一种可能的实现方式中,芯片还可以为芯片模组。
本实施例的芯片可用于执行上述方法实施例所示的技术方案,具体实现方式和技术效果类似,这里不再赘述
本申请实施例提供一种模组设备,该模组设备包括电源模组、存储模组以及芯片模组。
其中,电源模组用于为模组设备提供电能。
存储模组用于存储数据和指令。
本实施例的芯片模组可用于执行上述方法实施例所示的技术方案,具体实现方式和技术效果类似,这里不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
本申请中“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,表示前后关联对象是一种“或”的关系。
“以下至少一(项)个”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a、b或c中的至少一项(个),可以表示:a,b,c,a和b,a和c,b和c,或a、b和c,其中a、b、c中的每一个本身可以是元素,也可以是包含一个或多个元素的集合。
本申请中“至少一个”是指一个或多个。“多个”是指两个或两个以上。本申请实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本申请实施例中对设备个数的特别限定,不能构成对本申请实施例的任何限制。例如,第一阈值和第二阈值,只是为了区分不同的阈值,而并不是表示这两个阈值的大小、优先级或者重要程度等的不同。
在本申请中,“示例的”“在一些实施例中”“在另一些实施例中”等用于表示作例子、例证或说明。本申请中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。
本申请中“的(of)”、“相应的(corresponding,relevant)”、“对应的(corresponding)”、“关联的”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。本申请实施例中通信、传输有时可以混用,应当指出的是,在不强调区别是,其所表达的含义是一致的。例如传输可以包括发送和/或接收,可以为名词,也可以是动词。

Claims (11)

1.一种终端设备的启动方法,其特征在于,包括:
获取备份区的第一二级程序加载器SPL的头部信息;
根据所述头部信息确定目标SPL,所述目标SPL为所述第一SPL或者主分区的第二SPL;
确定所述目标SPL与安全监视器级别SML的当前版本是否匹配,所述SML的当前版本为未升级成功的版本;
若不匹配,则通过系统启动加载器对所述头部信息进行更新,以变更所述目标SPL,并基于变更后的目标SPL重启所述终端设备;
若匹配,则基于所述目标SPL和所述SML的当前版本启动所述终端设备。
2.根据权利要求1所述的方法,其特征在于,所述确定所述目标SPL与安全监视器级别SML的当前版本是否匹配,包括:
在第一分区中,获取所述目标SPL对应的第一标志位;
在第二分区中,获取多个第二标志位,所述第二标志位为所述终端设备中升级成功的功能代码对应的标志位;
根据所述第一标志位和所述第二标志位,确定所述目标SPL与所述SML的当前版本是否匹配。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一标志位和所述第二标志位,确定所述目标SPL与所述SML的当前版本是否匹配,包括:
若所述多个第二标志位中包括所述第一标志位,则确定所述目标SPL与所述SML的当前版本不匹配;
若所述多个第二标志位中不包括所述第一标志位,则确定所述目标SPL与所述SML的当前版本匹配。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述获取备份区的第一二级程序加载器SPL的头部信息,包括:
获取一次性可编程存储器的使能标志位,所述使能标志位用于指示是否读取所述头部信息;
若所述使能标志位指示读取所述头部信息,则从第一分区读取所述头部信息。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述获取备份区的第一二级程序加载器SPL的头部信息之前,所述方法还包括:
对所述备份区的第一SPL进行升级;
若所述备份区的第一SPL升级成功,则在所述头部信息中记录所述第一SPL的标志位,所述第一SPL的标志位用于指示所述第一SPL为所述目标SPL;
若所述备份区的SPL升级失败,则在所述头部信息中记录所述第二SPL的标志位,所述第二SPL的标志位用于指示所述第二SPL为所述目标SPL;
若所述终端设备启动成功,则将所述备份区的升级后的SPL的数据写入所述主分区。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述通过系统启动加载器对所述头部信息进行更新,包括:
若所述头部信息中包括所述第二SPL的标志位,则通过所述系统启动加载器将所述第二SPL的标志位更新所述第一SPL的标志位;
若所述头部信息中包括所述第一SPL的标志位,则通过所述系统启动加载器将所述第一SPL的标志位更新所述第二SPL的标志位。
7.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
若所述目标SPL与所述SML的当前版本不匹配,在预设函数中设置第一参数;
若所述目标SPL与所述SML的当前版本匹配,则在所述预设函数中设置第二参数;
其中,所述第一参数和所述第二参数,用于所述系统启动加载器确定所述目标SPL与所述SML的当前版本是否匹配。
8.一种终端设备的启动装置,其特征在于,包括:
获取模块,用于获取备份区的第一SPL的头部信息;
第一确定模块,用于根据所述头部信息确定目标SPL,所述目标SPL为所述第一SPL或者主分区的第二SPL;
第二确定模块,用于确定所述目标SPL与安全监视器级别SML的当前版本是否匹配,所述SML的当前版本为未升级成功的版本;
处理模块,用于若不匹配,则通过系统启动加载器对所述头部信息进行更新,以变更所述目标SPL,并基于变更后的目标SPL重启所述终端设备;
启动模块,用于若匹配,则基于所述目标SPL和所述升级成功的SML启动所述终端设备。
9.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1-7中任一项所述的终端设备的启动方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-7任一项所述的终端设备的启动方法。
11.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述的终端设备的启动方法。
CN202310805035.1A 2023-06-30 2023-06-30 终端设备的启动方法、装置、设备、介质及产品 Pending CN116820841A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310805035.1A CN116820841A (zh) 2023-06-30 2023-06-30 终端设备的启动方法、装置、设备、介质及产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310805035.1A CN116820841A (zh) 2023-06-30 2023-06-30 终端设备的启动方法、装置、设备、介质及产品

Publications (1)

Publication Number Publication Date
CN116820841A true CN116820841A (zh) 2023-09-29

Family

ID=88118203

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310805035.1A Pending CN116820841A (zh) 2023-06-30 2023-06-30 终端设备的启动方法、装置、设备、介质及产品

Country Status (1)

Country Link
CN (1) CN116820841A (zh)

Similar Documents

Publication Publication Date Title
US9507604B2 (en) Boot method and boot system
EP2375323A1 (en) Firmware image update and management
CN110083374B (zh) 一种升级回滚方法、系统及终端设备
EP2096538A1 (en) Communication device and firmware update method thereof
CN106020875B (zh) 嵌入式终端的固件更新管理方法和装置
CN104317667A (zh) 一种dmi同步fru的方法
CN105637521B (zh) 一种数据处理方法及智能终端
CN109426527B (zh) 在uefi固件及作业系统间分享蓝牙数据的电脑系统及其方法
CN110119623A (zh) 一种利用tpcm实现固件主动度量的可信主板实现方法
CN112631625A (zh) 嵌入式设备的系统升级方法、装置及嵌入式设备
WO2020113478A1 (zh) 地址信息处理方法、装置、电子设备及存储介质
WO2018166322A1 (zh) 系统分区的修复方法及装置
CN108153548A (zh) 一种emmc固件升级方法和装置
CN114020211B (zh) 存储空间管理方法、装置、设备及存储介质
CN116820841A (zh) 终端设备的启动方法、装置、设备、介质及产品
CN115951920A (zh) 移动设备升级方法、装置、存储单元和移动设备
CN115658152A (zh) 固件升级方法、固件、电子设备和计算机可读存储介质
CN112860595B (zh) Pci设备或pcie设备、数据存取方法及相关组件
CN106611124B (zh) 计算机装置及其开机方法
CN108052337A (zh) 一种eMMC量产工具的固件升级方法及装置
CN112667444A (zh) 一种系统升级方法、存储介质及终端设备
CN113157301A (zh) 终端版本升级方法、系统、存储介质及终端
CN115437674B (zh) 一种固件升级方法、装置、介质及电子设备
CN110119624A (zh) 一种安全度量方法
CN113791810B (zh) 基于zynq平台的远程升级方法、装置及系统

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