CN117742756A - 系统升级方法、装置、存储介质及电子设备 - Google Patents
系统升级方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN117742756A CN117742756A CN202410072657.2A CN202410072657A CN117742756A CN 117742756 A CN117742756 A CN 117742756A CN 202410072657 A CN202410072657 A CN 202410072657A CN 117742756 A CN117742756 A CN 117742756A
- Authority
- CN
- China
- Prior art keywords
- upgrade
- boot
- main chip
- kernel
- partition
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000005192 partition Methods 0.000 claims abstract description 99
- 238000004891 communication Methods 0.000 claims abstract description 39
- 230000002159 abnormal effect Effects 0.000 claims description 25
- 238000012795 verification Methods 0.000 claims description 25
- 238000012545 processing Methods 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 14
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 101100402853 Caenorhabditis elegans mtd-1 gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Abstract
本申请公开了一种系统升级方法、装置、存储介质及电子设备,涉及电子设备技术领域,该方法包括:响应于系统升级指令,通过第一主芯片下载系统升级包,并通过所述第一主芯片将所述系统升级包备份至第二主芯片;在引导分区中更新启动标志,并重启系统;在重启系统后,通过引导加载程序读取所述引导分区中的所述启动标志,并根据所述启动标志启动微内核,所述微内核为裁剪后得到的没有文件系统的内核部分;在所述微内核内,与所述第二主芯片建立通信连接,以及通过所述通信连接从所述第二主芯片下载备份的所述系统升级包进行系统升级。本申请可以有效提升系统升级可靠性,提升用户体验。
Description
技术领域
本申请涉及电子设备技术领域,具体涉及一种系统升级方法、装置、存储介质及电子设备。
背景技术
FOTA技术的广泛应用使得设备可以远程进行系统升级,来升级固件和软件,正是由于FOTA功能的复杂性和关键性,使得对于FOTA功能的稳定性和健壮性的要求日益增强。
设备系统升级往往存在一定的耗时,若在此期间设备发生异常断电,则会导致设备软件系统损坏,进而出现设备无法开机的严重故障问题,系统升级可靠性较差,这些问题会导致用户体验下降。
发明内容
本申请实施例提供一种方案,可以有效避免异常断电时系统升级失败导致的系统损坏以及设备无法开机等问题,有效提升系统升级可靠性,提升用户体验。
本申请实施例提供以下技术方案:
根据本申请的一个实施例,一种系统升级方法,其包括:响应于系统升级指令,通过第一主芯片下载系统升级包,并通过所述第一主芯片将所述系统升级包备份至第二主芯片;在引导分区中更新启动标志,并重启系统;在重启系统后,通过引导加载程序读取所述引导分区中的所述启动标志,并根据所述启动标志启动微内核,所述微内核为裁剪后得到的没有文件系统的内核部分;在所述微内核内,与所述第二主芯片建立通信连接,以及通过所述通信连接从所述第二主芯片下载备份的所述系统升级包进行系统升级。
在本申请的一些实施例中,所述通过引导加载程序读取所述引导分区中的所述启动标志,并根据所述启动标志启动微内核,包括:通过所述引导加载程序读取所述引导分区中的所述启动标志;根据所述启动标志确定是否启动升级;若是,则启动所述微内核。
在本申请的一些实施例中,在所述根据所述启动标志确定是否启动升级之后,所述方法还包括:若否,则读取内核中的内核数据,并检测所述内核数据是否正常;若不正常,则启动所述微内核。
在本申请的一些实施例中,所述通过所述通信连接从所述第二主芯片下载备份的所述系统升级包进行系统升级,包括:获取升级包校验信息;通过所述通信连接从所述第二主芯片下载备份的所述系统升级包;根据所述升级包校验信息对所述系统升级包进行校验,得到校验结果;若所述校验结果指示校验通过,则基于所述系统升级包进行系统升级。
在本申请的一些实施例中,所述基于所述系统升级包进行系统升级,包括:从所述系统升级包中获取内核和根文件系统的烧录起始地址和偏移信息;根据所述烧录起始地址和偏移信息,将所述系统升级包中内核和根文件系统写入指定分区。
在本申请的一些实施例中,所述将所述系统升级包中内核和根文件系统写入指定分区,包括:将所述系统升级包划分为多个升级块;将所述多个升级块依次通过边擦边写的方式写入指定分区,其中,每次擦写预定数目个升级块,所述预定数目小于预定阈值。
在本申请的一些实施例中,所述在引导分区中更新启动标志,包括以下方式中一种:按照预定更新策略信息,在所述引导分区中更新启动标志;获取设备异常断电数据,并根据所述设备异常断电数据在所述引导分区中更新启动标志。
根据本申请的一个实施例,一种系统升级装置,所述装置包括:升级包处理模块,用于响应于系统升级指令,通过第一主芯片下载系统升级包,并通过所述第一主芯片将所述系统升级包备份至第二主芯片;引导前置模块,用于在引导分区中更新启动标志,并重启系统;引导处理模块,用于在重启系统后,通过引导加载程序读取所述引导分区中的所述启动标志,并根据所述启动标志启动微内核,所述微内核为裁剪后得到的没有文件系统的内核部分;升级处理模块,用于在所述微内核内,与所述第二主芯片建立通信连接,以及通过所述通信连接从所述第二主芯片下载备份的所述系统升级包进行系统升级。
在本申请的一些实施例中,所述引导处理模块,用于:通过所述引导加载程序读取所述引导分区中的所述启动标志;根据所述启动标志确定是否启动升级;若是,则启动所述微内核。
在本申请的一些实施例中,在所述根据所述启动标志确定是否启动升级之后,所述引导处理模块,用于:若否,则读取内核中的内核数据,并检测所述内核数据是否正常;若不正常,则启动所述微内核。
在本申请的一些实施例中,所述升级处理模块,用于:获取升级包校验信息;通过所述通信连接从所述第二主芯片下载备份的所述系统升级包;根据所述升级包校验信息对所述系统升级包进行校验,得到校验结果;若所述校验结果指示校验通过,则基于所述系统升级包进行系统升级。
在本申请的一些实施例中,所述升级处理模块,用于:从所述系统升级包中获取内核和根文件系统的烧录起始地址和偏移信息;根据所述烧录起始地址和偏移信息,将所述系统升级包中内核和根文件系统写入指定分区。
在本申请的一些实施例中,所述升级处理模块,用于:将所述系统升级包划分为多个升级块;将所述多个升级块依次通过边擦边写的方式写入指定分区,其中,每次擦写预定数目个升级块,所述预定数目小于预定阈值。
在本申请的一些实施例中,所述引导前置模块,用于实现以下方式中一种:按照预定更新策略信息,在所述引导分区中更新启动标志;获取设备异常断电数据,并根据所述设备异常断电数据在所述引导分区中更新启动标志。
根据本申请的另一实施例,一种存储介质,其上存储有计算机程序,当所述计算机程序被计算机的处理器执行时,使计算机执行本申请实施例所述的方法。
根据本申请的另一实施例,一种电子设备可以包括:存储器,存储有计算机程序;处理器,读取存储器存储的计算机程序,以执行本申请实施例所述的方法。
根据本申请的另一实施例,一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例所述的各种可选实现方式中提供的方法。
本申请实施例中,响应于系统升级指令,通过第一主芯片下载系统升级包,并通过所述第一主芯片将所述系统升级包备份至第二主芯片;在引导分区中更新启动标志,并重启系统;在重启系统后,通过引导加载程序读取所述引导分区中的所述启动标志,并根据所述启动标志启动微内核,所述微内核为裁剪后得到的没有文件系统的内核部分;在所述微内核内,与所述第二主芯片建立通信连接,以及通过所述通信连接从所述第二主芯片下载备份的所述系统升级包进行系统升级。
以这种方式,在系统升级时,通过第一主芯片下载系统升级包并通过第一主芯片将系统升级包备份至第二主芯片,在引导分区中更新启动标志并重启系统,使得在重启系统后引导加载程序根据引导分区中的启动标志可以启动微内核;该微内核为裁剪后得到的没有文件系统的内核部分,可以极少占用ROM空间,在微内核内可以可靠地与第二主芯片建立通信连接以及通过通信连接从第二主芯片下载备份的系统升级包进行系统升级,在即使在设备异常断电后引导加载程序也会引导启动微内核重新进行系统升级,避免异常断电导致的系统异常问题,有效提升系统升级可靠性,提升用户体验。特别对于Flash空间极度有限的设备,无法采用双系统方案实现升级断电保护,基于本申请的实施例,可以有效提升系统升级可靠性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本申请的一个实施例的系统升级方法的流程图。
图2示出了根据本申请的一个实施例的微内核启动流程图。
图3示出了根据本申请的一个实施例的系统升级流程图。
图4示出了根据本申请的一个实施例的系统升级装置的框图。
图5示出了根据本申请的一个实施例的电子设备的框图。
具体实施方式
以下结合附图及实施例,对本公开进行进一步详细说明。应当理解,此处所提供的实施例仅仅用以解释本公开,并不用于限定本公开。另外,以下所提供的实施例是用于实施本公开的部分实施例,而非提供实施本公开的全部实施例,在不冲突的情况下,本公开实施例记载的技术方案可以任意组合的方式实施。
需要说明的是,在本公开实施例中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的方法或者装置不仅包括所明确记载的要素,而且还包括没有明确列出的其他要素,或者是还包括为实施方法或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的方法或者装置中还存在另外的相关要素(例如方法中的步骤或者装置中的单元,例如的单元可以是部分电路、部分处理器、部分程序或软件等等)。
例如,本公开实施例提供的系统升级方法包含了一系列的步骤,但是本公开实施例提供的系统升级方法不限于所记载的步骤,同样地,本公开实施例提供的系统升级装置包括了一系列单元,但是本公开实施例提供的装置不限于包括所明确记载的单元,还可以包括为获取相关信息、或基于信息进行处理时所需要设置的单元。
除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述具体的实施例的目的,不是旨在限制本公开。
图1示意性示出了根据本申请的一个实施例的系统升级方法的流程图。该系统升级方法的执行主体可以是任意具有处理能力的设备,例如电视、电脑、手机、智能手表以及家电设备等。
如图1所示,该系统升级方法可以包括步骤S110至步骤S140。
步骤S110,响应于系统升级指令,通过第一主芯片下载系统升级包,并通过所述第一主芯片将所述系统升级包备份至第二主芯片;步骤S120,在引导分区中更新启动标志,并重启系统;步骤S130,在重启系统后,通过引导加载程序读取所述引导分区中的所述启动标志,并根据所述启动标志启动微内核,所述微内核为裁剪后得到的没有文件系统的内核;步骤S140,在所述微内核内,与所述第二主芯片建立通信连接,以及通过所述通信连接从所述第二主芯片下载备份的所述系统升级包进行系统升级。
设备包含两个主芯片,通常第一主芯片(可称为本机)用于常规情况下进行系统升级,通过第一主芯片可以从云端下载系统升级包。本申请中,通过第一主芯片下载系统升级包后,并通过第一主芯片将系统升级包备份至第二主芯片(可称为下位机),第一主芯片和第二主芯片之间可以通过RNDIS通信将系统升级包备份至第二主芯片。将系统升级包备份至第二主芯片,一方面,可以用于通过微内核进行系统升级,另一方面,可以在系统的Flash空间较少时可以保证系统升级包可靠备份。一些方式中,通过第一主芯片从云端下载系统升级包失败、或通过第一主芯片将系统升级包备份至第二主芯片失败,则可以结束升级退出升级流程。
Flash空间可以划分为多个分区,多个分区例如md0、md1、md2、md3、md4共5个分区。多个分区中可以包括一个引导分区(例如md3),引导加载程序可以从该引导分区中读取数据,该引导分区中可以记录启动标志、升级包地址以及升级结果信息等数据。将系统升级包备份至第二主芯片后,在引导分区中可以更新启动标志,该启动标志用于告知是否启动升级。
在引导分区中可以更新了启动标志后,重启系统,进而,可以使得引导加载程序(Bootloader)读取引导分区中的启动标志以及其它数据(例如升级结果信息),引导加载程序(Bootloader)解析该启动标志以及其它数据判断启动正常系统还是微内核,且当正常系统无法启动时需引导微内核启动,引导加载程序(Bootloader)例如Uboot。一些方式中,在引导分区中更新启动标志失败,则可以结束升级退出升级流程。
微内核为裁剪后得到的没有文件系统的内核部分,微内核的裁剪适应Flash空间,例如,微内核的大小需裁剪到正常系统的1/2大小,且不能挂载文件系统。微内核的内核空间实现网络通信(例如TCP网络通信),实现微内核内可以从第二主芯片下载备份的系统升级包。微内核的内核空间实现MTD设备擦写,可以从系统升级包内获取烧录起始地址和偏移信息,并根据烧录起始地址和偏移信息将kernel(内核,该内核非微内核,而是系统中正常的内核)和rootfs(根文件系统)写入指定分区(例如mtd0和mtd1分区)。裁剪后的微内核分区(多个分区中一个,例如,md2)为只读分区,在设备整个生命周期内不会擦写,以确保Flash完整性。
引导加载程序(Bootloader)可以从微内核分区起始地址读入指定内存地址来加载微内核,从而启动微内核。启动微内核后,升级过程中由微内核执行升级任务来擦写指定分区(例如mtd0和mtd1分区)。具体地,在微内核内通过微内核中的升级驱动模块,可以与第二主芯片建立通信连接,以及通过通信连接从第二主芯片下载备份的系统升级包(例如TCP网络通信连接,本机与下位机之间可以通过RNDIS通信,本机采用TCP客户端从下位机TCP服务端获取备份的系统升级包),基于该系统升级包进行系统升级来擦写指定分区(例如mtd0和mtd1分区)。
任何步骤若发生异常断电,启动引导标志都不会被重置,在此期间若发生异常断电,设备上电后会进入Bootloader引导程序,Bootloader检测到指定分区中kernel或rootfs不完整、或启动标志指示启动升级、或升级结果为未完成升级等等,可以仍然重新引导从微内核启动系统,此时微内核会继续执行未完成的升级任务。
以这种方式,基于步骤S110至步骤S140,在系统升级时,通过第一主芯片下载系统升级包并通过第一主芯片将系统升级包备份至第二主芯片,在引导分区中更新启动标志并重启系统,使得在重启系统后引导加载程序根据引导分区中的启动标志可以启动微内核;该微内核为裁剪后得到的没有文件系统的内核,可以极少占用ROM空间,在微内核内可以可靠地与第二主芯片建立通信连接以及通过通信连接从第二主芯片下载备份的系统升级包进行系统升级,在即使在设备异常断电后引导加载程序也会引导启动微内核重新进行系统升级,避免异常断电导致的系统异常问题,有效提升系统升级可靠性,提升用户体验。特别对于Flash空间极度有限的设备,无法采用双系统方案实现升级断电保护,基于本申请的实施例,可以有效提升系统升级可靠性。
下面描述图1实施例下进行系统升级时,所进行的各步骤下进一步可选的具体实施例。
一种实施例中,所述在引导分区中更新启动标志,包括以下方式中一种:
第一种方式中,按照预定更新策略信息,在所述引导分区中更新启动标志;
第二种方式中,获取设备异常断电数据,并根据所述设备异常断电数据在所述引导分区中更新启动标志。
第一种方式中,预定更新策略信息为设备中预先设定的更新策略信息。其中,预定更新策略信息,例如,每次系统升级时在引导分区中更新用于指示是否“启动升级”的启动标志,或者,在某些场景下进行系统升级时在引导分区中更新用于指示是否“启动升级”的启动标志。按照预定更新策略信息,可以在引导分区中更新启动标志。
第二种方式中,获取设备异常断电数据,设备异常断电数据可以是预定时间段内异常断电的次数或频率等数据。并根据设备异常断电数据在引导分区中更新启动标志,例如,根据预定时间段内异常断电的次数是否高于预定值,在引导分区中更新用于指示是否“启动升级”的启动标志。
一种实施例中,参阅图2,所述通过引导加载程序读取所述引导分区中的所述启动标志,并根据所述启动标志启动微内核,可以包括:步骤S210,通过所述引导加载程序读取所述引导分区中的所述启动标志;步骤S220,根据所述启动标志确定是否启动升级;步骤S230,若是,则启动所述微内核。
通过引导加载程序可以读取所述引导分区中的所述启动标志;根据启动标志可以确定是否启动升级,若启动标志指示“启动升级”则确定是启动升级,具体是启动基于微内核进行系统升级的升级模式。
进而,若是,则启动微内核,进而,可以直接根据启动标志的指示启动微内核来进行系统升级,而不会启动常规方式的系统升级流程。
进一步的,一种实施例中,在所述根据所述启动标志确定是否启动升级之后,所述方法还可以包括:若否,则读取内核中的内核数据,并检测所述内核数据是否正常;若不正常,则启动所述微内核。
若启动标志指示不“启动升级”则确定否,此时,进一步读取内核(该内核非微内核,而是系统中正常的内核)中的内核数据,若检测到内核数据不正常,则即使启动标志指示不“启动升级”仍然启动基于微内核进行系统升级的升级模式,可以在内核中数据异常中重新基于微内核实现升级,进一步提升系统升级可靠性。
一种实施例中,所述通过所述通信连接从所述第二主芯片下载备份的所述系统升级包进行系统升级,可以包括:获取升级包校验信息;通过所述通信连接从所述第二主芯片下载备份的所述系统升级包;根据所述升级包校验信息对所述系统升级包进行校验,得到校验结果;若所述校验结果指示校验通过,则基于所述系统升级包进行系统升级。
微内核中可以从预定位置(如第一主芯片)中获取升级包校验信息,升级包校验信息可以包括升级包大小以及升级包的MD5信息,基于升级包大小以及升级包的MD5信息可以对从第二主芯片下载备份的系统升级包进行校验,得到校验结果。
若校验结果指示校验通过(即校验系统升级包合法),则可以微内核中可以基于下载的系统升级包安全地进行系统升级,进一步提升系统升级可靠性。
一些方式中,若所述校验结果指示校验不通过,则可以结束升级退出升级流程。
一种实施例中,参阅图3,所述基于所述系统升级包进行系统升级,具体可以包括:步骤S310,从所述系统升级包中获取内核和根文件系统的烧录起始地址和偏移信息;步骤S320,根据所述烧录起始地址和偏移信息,将所述系统升级包中内核和根文件系统写入指定分区。
从系统升级包中获取内核和根文件系统的烧录起始地址和偏移信息,根据该烧录起始地址和偏移信息,可以准确地将系统升级包中内核和根文件系统写入指定分区,从而基于微内核完成系统升级。
一种实施例中,所述将所述系统升级包中内核和根文件系统写入指定分区,可以包括:将所述系统升级包划分为多个升级块;将所述多个升级块依次通过边擦边写的方式写入指定分区,其中,每次擦写预定数目个升级块,所述预定数目小于预定阈值。
将所述系统升级包划分为多个升级块(bloc),将多个升级块依次通过边擦边写的方式写入指定分区,其中,每次擦写预定数目个升级块,预定数目小于预定阈值,可以有效避免一些方式中通过一次性擦除整个包大小的分区的方式导致的异常崩溃,进一步提升系统升级可靠性。其中,一些具体实施例中,预定数目为1。
进一步的,一些实时方式中,如果将所述多个升级块依次通过边擦边写的方式写入指定分区失败,则重置引导分区在其中记录升级失败结果信息,并退出升级流程;如果将所述多个升级块依次通过边擦边写的方式写入指定分区成功,则重置引导分区在其中记录升级成功结果信息,并退出升级流程。
为便于更好的实施本申请实施例提供的系统升级方法,本申请实施例还提供一种基于上述系统升级方法的系统升级装置。其中名词的含义与上述系统升级方法中相同,具体实现细节可以参考方法实施例中的说明。图4示出了根据本申请的一个实施例的系统升级装置的框图。
如图4所示,系统升级装置400中可以包括:升级包处理模块410可以用于响应于系统升级指令,通过第一主芯片下载系统升级包,并通过所述第一主芯片将所述系统升级包备份至第二主芯片;引导前置模块420可以用于在引导分区中更新启动标志,并重启系统;引导处理模块430可以用于在重启系统后,通过引导加载程序读取所述引导分区中的所述启动标志,并根据所述启动标志启动微内核,所述微内核为裁剪后得到的没有文件系统的内核部分;升级处理模块440可以用于在所述微内核内,与所述第二主芯片建立通信连接,以及通过所述通信连接从所述第二主芯片下载备份的所述系统升级包进行系统升级。
在本申请的一些实施例中,所述引导处理模块,用于:通过所述引导加载程序读取所述引导分区中的所述启动标志;根据所述启动标志确定是否启动升级;若是,则启动所述微内核。
在本申请的一些实施例中,在所述根据所述启动标志确定是否启动升级之后,所述引导处理模块,用于:若否,则读取内核中的内核数据,并检测所述内核数据是否正常;若不正常,则启动所述微内核。
在本申请的一些实施例中,所述升级处理模块,用于:获取升级包校验信息;通过所述通信连接从所述第二主芯片下载备份的所述系统升级包;根据所述升级包校验信息对所述系统升级包进行校验,得到校验结果;若所述校验结果指示校验通过,则基于所述系统升级包进行系统升级。
在本申请的一些实施例中,所述升级处理模块,用于:从所述系统升级包中获取内核和根文件系统的烧录起始地址和偏移信息;根据所述烧录起始地址和偏移信息,将所述系统升级包中内核和根文件系统写入指定分区。
在本申请的一些实施例中,所述升级处理模块,用于:将所述系统升级包划分为多个升级块;将所述多个升级块依次通过边擦边写的方式写入指定分区,其中,每次擦写预定数目个升级块,所述预定数目小于预定阈值。
在本申请的一些实施例中,所述引导前置模块,用于实现以下方式中一种:按照预定更新策略信息,在所述引导分区中更新启动标志;获取设备异常断电数据,并根据所述设备异常断电数据在所述引导分区中更新启动标志。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,本申请实施例还提供一种电子设备,如图5所示,图5示出了根据本申请的一个实施例的电子设备的框图,具体来讲:
该电子设备可以包括一个或者一个以上处理核心的处理器501、一个或一个以上计算机可读存储介质的存储器502、电源503和输入单元504等部件。本领域技术人员可以理解,图5中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中:
处理器501是该电子设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器502内的软件程序和/或模块,以及调用存储在存储器502内的数据,执行计算机设备的各种功能和处理数据,从而对电子设备进行整体监控。可选的,处理器501可包括一个或多个处理核心;优选的,处理器501可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户页面和应用程序等,调制解调处理器主要处理无线通讯。可以理解的是,上述调制解调处理器也可以不集成到处理器501中。
存储器502可用于存储软件程序以及模块,处理器501通过运行存储在存储器502的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器502可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器502还可以包括存储器控制器,以提供处理器501对存储器502的访问。
电子设备还包括给各个部件供电的电源503,优选的,电源503可以通过电源管理系统与处理器501逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源503还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该电子设备还可包括输入单元504,该输入单元504可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,电子设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,电子设备中的处理器501会按照如下的指令,将一个或一个以上的计算机程序的进程对应的可执行文件加载到存储器502中,并由处理器501来运行存储在存储器502中的计算机程序,从而实现本申请前述实施例中各种功能,如处理器501可以执行下述步骤:
响应于系统升级指令,通过第一主芯片下载系统升级包,并通过所述第一主芯片将所述系统升级包备份至第二主芯片;在引导分区中更新启动标志,并重启系统;在重启系统后,通过引导加载程序读取所述引导分区中的所述启动标志,并根据所述启动标志启动微内核,所述微内核为裁剪后得到的没有文件系统的内核部分;在所述微内核内,与所述第二主芯片建立通信连接,以及通过所述通信连接从所述第二主芯片下载备份的所述系统升级包进行系统升级。
在本申请的一些实施例中,所述通过引导加载程序读取所述引导分区中的所述启动标志,并根据所述启动标志启动微内核,包括:通过所述引导加载程序读取所述引导分区中的所述启动标志;根据所述启动标志确定是否启动升级;若是,则启动所述微内核。
在本申请的一些实施例中,在所述根据所述启动标志确定是否启动升级之后,所述方法还包括:若否,则读取内核中的内核数据,并检测所述内核数据是否正常;若不正常,则启动所述微内核。
在本申请的一些实施例中,所述通过所述通信连接从所述第二主芯片下载备份的所述系统升级包进行系统升级,包括:获取升级包校验信息;通过所述通信连接从所述第二主芯片下载备份的所述系统升级包;根据所述升级包校验信息对所述系统升级包进行校验,得到校验结果;若所述校验结果指示校验通过,则基于所述系统升级包进行系统升级。
在本申请的一些实施例中,所述基于所述系统升级包进行系统升级,包括:从所述系统升级包中获取内核和根文件系统的烧录起始地址和偏移信息;根据所述烧录起始地址和偏移信息,将所述系统升级包中内核和根文件系统写入指定分区。
在本申请的一些实施例中,所述将所述系统升级包中内核和根文件系统写入指定分区,包括:将所述系统升级包划分为多个升级块;将所述多个升级块依次通过边擦边写的方式写入指定分区,其中,每次擦写预定数目个升级块,所述预定数目小于预定阈值。
在本申请的一些实施例中,所述在引导分区中更新启动标志,包括以下方式中一种:按照预定更新策略信息,在所述引导分区中更新启动标志;获取设备异常断电数据,并根据所述设备异常断电数据在所述引导分区中更新启动标志。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过计算机程序来完成,或通过计算机程序控制相关的硬件来完成,该计算机程序可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例还提供一种存储介质,其中存储有计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种方法中的步骤。
其中,该存储介质可以是计算机可读存储介质,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种方法中的步骤,因此,可以实现本申请实施例所提供的方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的实施例,而可以在不脱离其范围的情况下进行各种修改和改变。
Claims (10)
1.一种系统升级方法,其特征在于,包括:
响应于系统升级指令,通过第一主芯片下载系统升级包,并通过所述第一主芯片将所述系统升级包备份至第二主芯片;
在引导分区中更新启动标志,并重启系统;
在重启系统后,通过引导加载程序读取所述引导分区中的所述启动标志,并根据所述启动标志启动微内核,所述微内核为裁剪后得到的没有文件系统的内核部分;
在所述微内核内,与所述第二主芯片建立通信连接,以及通过所述通信连接从所述第二主芯片下载备份的所述系统升级包进行系统升级。
2.根据权利要求1所述的方法,其特征在于,所述通过引导加载程序读取所述引导分区中的所述启动标志,并根据所述启动标志启动微内核,包括:
通过所述引导加载程序读取所述引导分区中的所述启动标志;
根据所述启动标志确定是否启动升级;
若是,则启动所述微内核。
3.根据权利要求2所述的方法,其特征在于,在所述根据所述启动标志确定是否启动升级之后,所述方法还包括:
若否,则读取内核中的内核数据,并检测所述内核数据是否正常;
若不正常,则启动所述微内核。
4.根据权利要求1所述的方法,其特征在于,所述通过所述通信连接从所述第二主芯片下载备份的所述系统升级包进行系统升级,包括:
获取升级包校验信息;
通过所述通信连接从所述第二主芯片下载备份的所述系统升级包;
根据所述升级包校验信息对所述系统升级包进行校验,得到校验结果;
若所述校验结果指示校验通过,则基于所述系统升级包进行系统升级。
5.根据权利要求4所述的方法,其特征在于,所述基于所述系统升级包进行系统升级,包括:
从所述系统升级包中获取内核和根文件系统的烧录起始地址和偏移信息;
根据所述烧录起始地址和偏移信息,将所述系统升级包中内核和根文件系统写入指定分区。
6.根据权利要求5所述的方法,其特征在于,所述将所述系统升级包中内核和根文件系统写入指定分区,包括:
将所述系统升级包划分为多个升级块;
将所述多个升级块依次通过边擦边写的方式写入指定分区,其中,每次擦写预定数目个升级块,所述预定数目小于预定阈值。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述在引导分区中更新启动标志,包括以下方式中一种:
按照预定更新策略信息,在所述引导分区中更新启动标志;
获取设备异常断电数据,并根据所述设备异常断电数据在所述引导分区中更新启动标志。
8.一种系统升级装置,其特征在于,包括:
升级包处理模块,用于响应于系统升级指令,通过第一主芯片下载系统升级包,并通过所述第一主芯片将所述系统升级包备份至第二主芯片;
引导前置模块,用于在引导分区中更新启动标志,并重启系统;
引导处理模块,用于在重启系统后,通过引导加载程序读取所述引导分区中的所述启动标志,并根据所述启动标志启动微内核,所述微内核为裁剪后得到的没有文件系统的内核部分;
升级处理模块,用于在所述微内核内,与所述第二主芯片建立通信连接,以及通过所述通信连接从所述第二主芯片下载备份的所述系统升级包进行系统升级。
9.一种存储介质,其特征在于,其上存储有计算机程序,当所述计算机程序被计算机的处理器执行时,使计算机执行权利要求1至7任一项所述的方法。
10.一种电子设备,其特征在于,包括:存储器,存储有计算机程序;处理器,读取存储器存储的计算机程序,以执行权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410072657.2A CN117742756A (zh) | 2024-01-17 | 2024-01-17 | 系统升级方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410072657.2A CN117742756A (zh) | 2024-01-17 | 2024-01-17 | 系统升级方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117742756A true CN117742756A (zh) | 2024-03-22 |
Family
ID=90252819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410072657.2A Pending CN117742756A (zh) | 2024-01-17 | 2024-01-17 | 系统升级方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117742756A (zh) |
-
2024
- 2024-01-17 CN CN202410072657.2A patent/CN117742756A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9274788B2 (en) | Information processing apparatus, method for controlling the same, and storage medium | |
CN104025047A (zh) | 信息处理装置、信息处理方法以及计算机程序 | |
CN110647333A (zh) | 固件升级方法及配置成对其中的固件进行升级的设备 | |
CN112612524A (zh) | Linux系统启动的方法、装置、设备及存储介质 | |
CN108345464A (zh) | 一种安卓系统的启动方法及安卓车机 | |
CN103605536A (zh) | 一种嵌入式操作系统的启动方法、装置及基板管理控制器 | |
CN112015447B (zh) | 电子设备的系统更新方法及装置、电子设备及存储介质 | |
CN109634781A (zh) | 一种基于嵌入式程序双区备份映像系统及启动方法 | |
CN115113905A (zh) | 固件升级方法和固件升级装置 | |
CN115658113A (zh) | 服务器自启动方法、装置、可读存储介质及电子设备 | |
CN110597532A (zh) | 一种数据采集模块及其固件升级方法和存储介质 | |
CN115237647A (zh) | 固件异常修复方法、装置、电子设备及计算机存储介质 | |
CN113190256B (zh) | 一种升级方法、装置及设备 | |
CN111090546A (zh) | 一种操作系统重启方法、装置、设备及可读存储介质 | |
CN109582332A (zh) | 互联网摄像机的系统升级方法及装置 | |
CN113867807A (zh) | 一种缩短服务器上电时间的方法、装置、设备和存储介质 | |
CN113138791A (zh) | 基于嵌入式系统的升级处理方法、装置及电子设备 | |
KR100832269B1 (ko) | 무선 통신 단말의 프로그램 갱신 방법 및 시스템 | |
CN117742756A (zh) | 系统升级方法、装置、存储介质及电子设备 | |
CN114741119A (zh) | 系统的启动方法、装置、计算机设备和存储介质 | |
JP6192089B2 (ja) | 情報処理装置、情報処理装置の制御方法及び制御プログラム | |
EP4086756A1 (en) | Method and apparatus for processing virtual machine component | |
CN114995852A (zh) | 一种设备升级方法、设备及计算机可读存储介质 | |
CN114115958A (zh) | 程序启动方法及终端设备 | |
CN113721959A (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 |