一种嵌入式系统升级方法、装置及终端设备与流程

文档序号:18463666发布日期:2019-08-17 02:15阅读:143来源:国知局
一种嵌入式系统升级方法、装置及终端设备与流程

本发明属于嵌入式系统处理技术领域,尤其涉及一种嵌入式系统升级方法、装置及终端设备。



背景技术:

嵌入式系统由硬件和软件两部分组成,软件部分主要包括引导程序bootloader、内核和文件系统,由引导程序bootloader引导启动操作系统,操作系统启动后挂载文件系统。

目前,嵌入式设备的文件系统都是将根文件系统和应用程序文件系统设置为同一个文件系统中,在系统升级过程中,增加了升级的数据量和升级时间;系统升级时间长,增加了系统在升级过程中异常断电的概率;在升级过程中系统异常断电会使升级失败,容易造成系统文件的损坏,导致系统无法启动。



技术实现要素:

有鉴于此,本发明实施例提供了一种嵌入式系统升级方法、装置及终端设备,以解决现有技术中系统升级时间长,以及系统升级失败导致系统无法启动的问题。

本发明实施例的第一方面提供了一种嵌入式系统升级方法,应用于嵌入式终端设备,所述嵌入式系统升级方法包括:

在接收到升级数据包和升级指令后,保持第一阶段引导载入程序分区的数据不变,根据升级数据包中的数据分区编号,将数据写入存储器中相应的分区;

重新启动系统,运行所述第一阶段引导载入程序分区的程序,并引导运行第二阶段引导载入程序分区的程序;

在所述第二阶段引导载入程序分区的数据启动后,读取升级数据存储分区的升级标志,并根据所述升级标志判断是否需要升级;

若需要升级,则读取所述升级数据存储分区的文件系统数据,将所述文件系统数据写入相应的文件系统分区。

在一个实施例中,在接收到升级数据包和升级指令后,保持第一阶段引导载入程序分区的程序不变,根据升级数据包中的数据分区编号,将数据写入存储器中相应的分区,包括:

对所述升级数据包进行解析和循环冗余校验,获取在所述升级数据包中应用软件升级对应的升级数据,所述升级数据包括初始化数据、内核镜像数据以及文件系统数据中的一种或多种;

将所第二阶段引导载入程序写入第二阶段引导载入程序备份分区,将所述内核镜像数据写入内核镜像分区,将所述文件系统数据重新打包写入升级数据存储分区并设置升级标志。

在一个实施例中,重新启动系统,运行所述第一阶段引导载入程序分区的程序,并引导运行第二阶段引导载入程序分区的程序,包括:

运行所述第一阶段引导载入程序分区的程序,校验所述第二阶段引导载入程序分区的数据与第二阶段引导载入程序备份分区的数据是否有效且一致;

若所述第二阶段引导载入程序分区的数据与所述第二阶段引导载入程序备份分区的数据均有效且不一致,或者所述第二阶段引导载入程序分区的数据无效且所述第二阶段引导载入程序备份分区的数据有效,则将所述第二阶段引导载入程序备份分区的数据复制到所述第二阶段引导载入程序分区;

若所述第二阶段引导载入程序分区的数据有效,所述第二阶段引导载入程序备份分区的数据无效,则将所述第二阶段引导载入程序分区的数据复制到所述第二阶段引导载入程序备份分区。

在一个实施例中,所述的嵌入式系统升级方法还包括:

在所述第二阶段引导载入程序分区的数据启动后,获取外部存储设备的数据,判断是否存在升级数据包;

若存在所述升级数据包,则读取所述升级数据包,并对所述升级数据包进行解析和校验;

校验通过后,将解析后的数据根据数据分区编号写入存储器中相应的分区。

在一个实施例中,若需要升级,则读取所述升级数据存储分区的文件系统数据,将所述文件系统数据写入对应的文件系统分区,包括:

将所述文件系统数据中的第一文件数据写入所述第一文件系统分区,将所述文件系统数据中的第二文件数据写入所述第二文件系统分区。

在一个实施例中,将所述文件系统数据中的第一文件数据写入所述第一文件系统分区,将所述文件系统数据中的第二文件数据写入所述第二文件系统分区之后,所述方法包括:

通过所述第二阶段引导载入程序分区的数据引导启动操作系统;

操作系统启动后,挂载所述第一文件系统分区的所述第一文件数据,由第一文件系统对所述第二文件系统分区的所述第二文件数据进行分区挂载;

挂载完成后,启动应用软件程序。

在一个实施例中,在启动应用软件程序后,包括:

接收用户远程或本地控制发送的升级指令以及数据包;

校验并解析所述数据包;

检验有效后,读取所述数据包中的单独模块数据,并将所述单独模块数据写入存储器中相应的分区,以完成所述应用软件程序的升级。

本发明实施例的第二方面提供了一种嵌入式系统升级装置,包括:

第一升级模块,用于在接收到升级数据包和升级指令后,保持第一阶段引导载入程序分区的数据不变,根据升级数据包中的数据分区编号,将数据写入存储器中相应的分区;

系统重启模块,用于重新启动系统,运行所述第一阶段引导载入程序分区的程序,并引导运行第二阶段引导载入程序分区的程序;

数据读取模块,用于在所述第二阶段引导载入程序分区的数据启动后,读取升级数据存储分区的升级标志,并根据所述升级标志判断是否需要升级;

第二升级模块,用于若需要升级,则读取所述升级数据存储分区的文件系统数据,将所述文件系统数据写入相应的文件系统分区。

本发明实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述所述方法的步骤。

本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述所述方法的步骤。

本发明实施例与现有技术相比存在的有益效果是:通过本发明实施例,在接收到升级数据包和升级指令后,保持第一阶段引导载入程序分区的数据不变,根据升级数据包中的数据分区编号,将数据写入存储器中相应的分区;保证第一阶段引导载入程序分区不升级,防止由于数据错误系统无法启动;根据数据分区编号,将数据写入存储器中相应的分区,可以根据需要选择是否升级,是否在对应分区写入升级数据,从而减小升级的数据量;重新启动系统,运行所述第一阶段引导载入程序分区的程序,并引导运行第二阶段引导载入程序分区的程序;在所述第二阶段引导载入程序分区的程序加载过程中,读取所述升级数据存储分区的升级标志,并根据所述升级标志判断是否需要升级;若需要升级,则读取所述升级数据存储分区的文件系统数据,将所述文件系统数据写入相应的文件系统分区,根据需要选择是否升级,对需要升级的部分将升级数据写入相应的分区,以减少升级数据量以及文件系统的备份所占用的存储空间,加快升级时间,以及保证系统可以正常启动,具有较强的易用性与实用性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的嵌入式系统设备的存储单元区域划分的示意图;

图2是本发明实施例提供的嵌入式系统升级方法的实现流程示意图;

图3是本发明实施例提供的系统重新启动过程的实现流程示意图;

图4是本发明实施例提供的应用软件程序升级实现流程的示例图;

图5是本发明实施例提供的嵌入式系统升级装置的示意图;

图6是本发明实施例提供的终端设备的示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。

参见图1,是本发明一个实施例提供的嵌入式系统设备的存储单元区域划分的示意图。如图所示,嵌入式系统设备的存储单元设置了不同的分区,分别包括两级引导程序分区:第一阶段引导载入程序分区、第二阶段引导载入程序分区;将文件系统分成两个分区:第一文件系统分区(几乎不需要升级、数据不变)、第二文件系统分区(经常会修改文件的存储区域);还包括第二阶段引导载入程序备份分区、系统内核镜像分区、升级数据存储分区以及用户私有数据分区;共设置了八个分区,不同的分区分别存储对应的数据。其中第一阶段引导载入程序分区用于对第二阶段引导载入程序分区的数据进行校验和加载;第一阶段引导载入程序分区的数据在系统升级过程中,不进行升级或修改,以保证在升级过程中数据发生错误时,系统可以正常启动。

第二阶段引导载入程序分区的数据与第二阶段引导载入程序备份分区的数据通常情况下相同,在应用软件需要升级时,只可以改写第二阶段引导载入程序备份分区的数据,以保证第二阶段引导载入程序分区的数据的有效性。第二阶段引导载入程序分区的数据用于引导启动操作系统;通过升级数据存储分区读取文件系统升级数据包,或从外部存储单元读取升级数据包,将升级数据包的数据写入存储器中相应的分区,对系统进行升级或恢复系统数据。

操作系统启动后,挂载第一文件系统分区存储的程序,由第一文件系统分区的程序与对应的第二文件系统分区的应用软件程序分模块挂载,再启动并执行对应的应用软件;在应用软件升级过程中,将文件系统分为两部分,第一文件系统部分不用升级或极少升级,对于其他模块根据需要选择是否升级,从而减少文件系统升级数据量,加快升级时间。

参见图2,是本发明一个实施例提供的嵌入式系统升级方法的实现流程示意图。该方法应用于嵌入式终端设备,所述方法包括:

步骤s201,在接收到升级数据包和升级指令后,保持第一阶段引导载入程序分区的数据不变,根据升级数据包中的数据分区编号,将数据写入存储器中相应的分区。

在本实施例中,嵌入式设备的存储器可以分为多个分区,分别存储不同的数据,例如可以包括第一阶段引导载入程序分区,可以存储中央处理器cpu级初始化的程序,以加载运行辅助初始化程序;存储器分区还可以包括第二阶段引导载入程序分区,可以根据用户定义功能添加相应的辅助初始化程序,并加载系统内核镜像的程序;存储器分区还可以包括第二阶段引导载入程序备份分区,在应用软件升级时,根据需要选择将对应的升级数据写入第二阶段引导载入程序备份分区,以使得在系统重启过程,对应用软件进行升级。数据分区编号与根据存储器中划分的各个分区模块相对应。

嵌入式终端设备可以通过网络接收到升级数据包,升级数据包可以由应用软件开发方提供,升级指令可以是接收用户通过远程或本地控制而输入的指令;升级数据包包括文件系统分区的数据和引导载入程序分区的数据;嵌入式设备以压缩包形式接收到升级数据包和升级指令后,对升级数据包进行解包,将解包后的数据,根据选择是否需要升级,分别写入对应的分区,将除文件系统数据之外的固件镜像文件烧写入存储器的第二阶段引导载入程序备份分区,将文件系统数据重新打包存储到升级数据存储分区,并设置升级标志位。

需要说明的是,在应用软件需要升级引导载入程序时,升级数据只需烧写至第二阶段引导载入程序备份分区,不可烧写至第二阶段引导载入程序分区,防止操作失败损坏第二阶段引导载入程序分区的数据;在烧写完成后对烧写的数据进行校验,防止数据出错,如果校验不通过则需要重新烧写,直到烧写成功。

在一个实施例中,在接收到升级数据包和升级指令后,保持第一阶段引导载入程序分区的程序不变,根据升级数据包中的数据分区编号,将数据写入存储器中相应的分区,包括:

对所述升级数据包进行解析和循环冗余校验,获取在所述升级数据包中应用软件升级对应的升级数据,所述升级数据包括初始化数据、内核镜像数据以及文件系统数据中的一种或多种;

将所第二阶段引导载入程序写入第二阶段引导载入程序备份分区,将所述内核镜像数据写入内核镜像分区,将所述文件系统数据重新打包写入升级数据存储分区并设置升级标志。

在本实施例中,对升级数据包进行数据校验和版本校验,确保数据的有效性以及版本的正确性,在校验通过后,对数据进行解析,选择需要升级的数据,并分类存储至存储器不同的分区;例如,若需对第二阶段引导载入程序分区的数据进行升级,则将升级数据包中的初始化数据写入第二阶段载入程序备份分区;对于文件系统的数据则重新打包写入升级数据存储分区并设置升级标志。

步骤s202,重新启动系统,运行所述第一阶段引导载入程序分区的程序,并引导运行第二阶段引导载入程序分区的程序。

在本实施例中,在将升级数据包根据升级需要写入对应的分区后,完成应用软件第一阶段的升级,需要对系统进行重新启动,开始运行第一阶段引导载入程序分区的程序,并引导运行第二阶段引导载入程序分区的程序。在引导运行第二阶段引导载入程序分区的程序之前,需要对第二阶段引导载入程序分区的数据和第二阶段引导载入程序备份分区的数据进行校验或更新替换,然后加载启动第二阶段引导载入程序分区的数据。第二阶段引导载入程序分区的数据用于引导启动操作系统,第二阶段引导载入程序分区的数据作为应用软件启动之前的基础架构,可以选择升级或不升级,为防止应用软件与应用环境不兼容或应用软件执行过程出错等情况,通常会选择升级引导载入程序,便于对应用软件升级数据的挂载。

另外,所接收的输入的信号可以是用户在启动系统过程中通过启动界面输入的指令信号。

如图3所示,是本发明一个实施例提供的系统重新启动过程的实现流程示意图,引导载入程序作为启动操作系统的前提,对系统硬件进行初始化处理,包括第一阶段引导载入程序的启动和第二阶段引导载入程序的启动,第一阶段引导载入程序分区的数据用于对第二阶段引导载入程序分区的数据的校验和加载,以启动并加载第二阶段引导载入程序。如图所示,系统重新启动过程的实现流程包括:

步骤s301,运行所述第一阶段引导载入程序分区的程序,校验所述第二阶段引导载入程序分区的数据与第二阶段引导载入程序备份分区的数据是否有效且一致。

在本实施例中,系统上电后,开始启动第一阶段引导载入程序分区的数据;第一阶段引导载入程序分区的程序运行后,会检查第二阶段引导载入程序分区的数据与第二阶段引导载入程序备份分区的数据的有效性和一致性;在系统正常启动过程中,第二阶段引导载入程序分区的数据与第二阶段引导载入程序备份分区的数据均是有效的,且两者数据一致。

步骤s302,若所述第二阶段引导载入程序分区的数据与所述第二阶段引导载入程序备份分区的数据均有效且不一致,或者所述第二阶段引导载入程序分区的数据无效且所述第二阶段引导载入程序备份分区的数据有效,则将所述第二阶段引导载入程序备份分区的数据复制到所述第二阶段引导载入程序分区。

在本实施例中,若第二阶段引导载入程序分区的数据与第二阶段引导载入程序备份分区的数据均有效且不一致,则确认第二阶段引导载入程序备份分区的数据是应用软件需要升级时写入的数据;在第二阶段引导载入程序分区的数据有效才能保证系统启动成功,若第二阶段引导载入程序分区的数据无效且第二阶段引导载入程序备份分区的数据有效,则说明第二阶段引导载入程序分区的数据有错或过期,则需要将第二阶段引导载入程序备份分区的有效数据拷贝至第二阶段引导载入程序分区,用于系统启动引导载入程序。

步骤s303,若所述第二阶段引导载入程序分区的数据有效,所述第二阶段引导载入程序备份分区的数据无效,则将所述第二阶段引导载入程序分区的数据复制到所述第二阶段引导载入程序备份分区。

在本实施例中,为保证第二阶段引导载入程序分区的数据和第二阶段引导载入程序备份分区的数据的一致性,在第二阶段引导载入程序备份分区的数据无效时,将第二阶段引导载入程序分区的数据拷贝至第二阶段引导载入程序备份分区,启动加载第二阶段引导载入程序分区的数据,并通过第二阶段引导载入程序分区的数据引导启动操作系统的操作。

步骤s203,在所述第二阶段引导载入程序分区的数据启动后,读取升级数据存储分区的升级标志,并根据所述升级标志判断是否需要升级。

在本实施例中,在第二阶段引导载入程序分区的数据启动后,读取升级数据包中的升级标志,并根据升级标志判断是否需要升级。在应用软件升级时,需要对文件系统分区的数据进行修改,系统正常运行时,需要调用文件系统分区的相应的数据库,因此在应用软件升级时,将文件系统分区的数据放入第二引导载入程序分区进行升级,避免系统运行和应用软件升级过程发生冲突。

在一个实施例中,嵌入式系统升级方法还包括:

a1、在所述第二阶段引导载入程序分区的数据启动后,获取外部存储设备的数据,判断是否存在升级数据包;

a2、若存在所述升级数据包,则读取所述升级数据包,并对所述升级数据包进行解析和校验;

a3、校验通过后,将解析后的数据根据数据分区编号写入存储器中相应的分区。

在本实施例中,第二阶段引导载入程序分区的数据启动后,如果之前根据升级数据包写入对应分区的数据发生错误,第二阶段引导载入程序会检测外部存储设备的数据,外部存储设备可以是usb或sd卡;检测外部存储设备中是否存在升级数据包;若存在升级数据包,则读取升级数据包,对升级数据包进行数据校验和版本校验;校验通过后,对升级数据包进行解包,将数据写入存储器中相应的分区,可以包括第二阶段引导载入程序分区、第一文件系统分区或第二文件系统分区。写入分区的数据可以完全覆盖之前写入的数据,写入数据后对数据进行校验,保证写入数据的有效性,防止在之前写入分区的数据发生错误时,防止系统无法正常启动情况的出现,保证升级过程中启动数据的恢复。

步骤s204,若需要升级,则读取所述升级数据存储分区的文件系统数据,将所述文件系统数据写入相应的文件系统分区。

在本实施例中,文件系统数据包中可以包括用于启动应用软件的框架程序,还可以包括应用软件本身功能改变或增加的程序,例如,更新应用软件提示窗口的程序或增加新功能的程序等。

在一个实施例中,若需要升级,则读取所述升级数据存储分区的文件系统数据,将所述文件系统数据写入对应的文件系统分区,包括:

将所述文件系统数据中的第一文件数据写入所述第一文件系统分区,将所述文件系统数据中的第二文件数据写入所述第二文件系统分区。

在应用软件升级时,将文件系统分区分为两个分区,一部分为不需要升级的第一文件系统分区,另一为需要改写或添加的第二文件系统分区;将文件系统数据分解为两部分,不需要升级的部分对应的第一文件数据,需要升级的部分对应的第二文件数据,将第一文件数据和第二文件数据分区域写入存储器对应的第一文件系统分区和第二文件系统分区,以完成应用软件在引导载入程序部分的升级。在完成升级后,进一步引导启动操作系统。

另外,在不需要升级引导载入程序部分时,由第一阶段引导载入程序分区的数据引导运行第二阶段引导载入程序分区的数据之后,直接由第二阶段引导载入程序分区的数据引导启动操作系统。

在一个实施例中,将所述文件系统数据中的第一文件数据写入所述第一文件系统分区,将所述文件系统数据中的第二文件数据写入所述第二文件系统分区之后,所述方法包括:

通过所述第二阶段引导载入程序分区的数据引导启动操作系统;

操作系统启动后,挂载所述第一文件系统分区的所述第一文件数据,由第一文件系统对所述第二文件系统分区的所述第二文件数据进行分区挂载;

挂载完成后,启动应用软件程序。

在本实施例中,系统内核由第二阶段引导载入程序引导启动操作系统,操作系统启动之后挂载第一文件系统的分区的数据,第一文件系统的分区的数据可以为根文件rootfs系统的数据,由根文件rootfs系统中程序对应用软件文件系统(即第二文件系统)分区挂载。

其中,根文件rootfs系统可以固定不变根文件rootfs,不需要升级;应用软件文件系统则为存储升级修改的文件分区,系统引导载入程序启动之后,由根文件rootfs系统挂载应用软件文件系统。

如图4所示,是本发明一个实施例提供的应用软件程序升级实现流程的示例图,针对应用软件本身升级的实现流程,如图所示,将所述文件系统数据中的第一文件数据写入所述第一文件系统分区,将所述文件系统数据中的第二文件数据写入所述第二文件系统分区之后,完成引导载入程序的升级后启动操作系统,还包括:

步骤s401,接收用户远程或本地控制发送的升级指令以及数据包。

步骤s402,校验并解析所述数据包。

步骤s403,检验有效后,读取所述数据包中的单独模块数据,并将所述单独模块数据写入存储器中相应的分区,以完成所述应用软件程序的升级。

在本实施例中,启动应用软件程序后,会提示是否需要升级的信息,根据接收到的升级指令,对启动的应用软件进行升级。

在本实施例中,若接收到升级指令,则通过网络获取应用软件的升级数据包,该升级数据包不同与之前引导载入程序升级时写入的升级数据,此处升级数据包针对应用软件本身运行时的程序的升级数据。若接收到不升级的指令,则通过直接以原始版本的应用软件正常启动运行。

在本实施例中,检验有效后,读取所述网络升级包中的单独模块数据,并将所述单独模块数据写入存储器中相应的分区。

在本实施例中,此处将单独模块数据写入存储器中相应的分区,分区可以只有第二文件系统分区,即应用软件文件系统分区;还可以同时包括第一文件系统分区(根文件rootfs系统)和第二文件系统分区(应用软件文件系统分区)。

另外,在应用软件升级过程中,可以通过网络远程监控升级进度以及应用软件运行情况。

在本实施例中,在对应用软件升级数据包进行校验和解析过程中,由于是分模块写入升级数据,一个单独模块数据可能只对应应用软件某一部分功能,在每次解析数据并写入数据后,判断应用软件是否完成升级,若升级完成,则重新启动系统,从运行第一阶段引导载入程序分区的数据开始,重新启动系统,由第一阶段引导载入程序分区的数据校验和加载第二阶段引导载入程序分区的数据,启动加载第二阶段引导载入程序分区的数据后,由第二阶段引导载入程序分区的数据继续引导启动操作系统。

若升级没有完成,则判断所述单独模块数据是否为所述第一文件系统分区或所述第二文件系统分区对应的数据。若所述单独模块数据是为所述第一文件系统分区或所述第二文件系统分区对应的数据,则将所述单独模块数据打包写入所述升级数据存储分区。对所述升级数据存储分区的数据继续解析,获取解析后的单独模块数据,并将单独模块数据写入存储器中相应的分区,以完成所述应用软件程序的升级。

需要说明的是,本发明实施例提供的系统升级方法适用于嵌入式系统的升级,例如linux操作系统,unix操作系统等;对于linux操作系统的多级引导载入程序bootloader,第一阶段引导载入程序bootloader可以是简单裸机程序,第二阶段引导载入程序可以是u-boot;对于文件系统,若使用flash作为主存储器,rootfs部分可使用虚拟内存盘ramdisk,应用软件分区文件系统可以选择无序区块镜像文件系统ubifs或jffs2文件系统;如果是emmc或ufs作为主存储器,则可任意组合。

通过本发明实施例,设置两级或多级引导载入程序启动,且第一阶段引导载入程序分区的数据不升级,以防止由于数据错误系统无法启动的问题出现;将文件系统分为两部分,根文件rootfs部分不用升级,其它模块根据需要选择写入对应分区的升级数据,减小文件系统升级数据分区的大小,减少升级数据量,加快升级时间;通过外部存储设备中获取升级数据文件,在数据损坏时进行恢复以及升级。

需要说明的是,本领域技术人员在本发明揭露的技术范围内,可容易想到的其他排序方案也应在本发明的保护范围之内,在此不一一赘述。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

参见图5,是本发明一个实施例提供的嵌入式系统升级装置的示意框图,为了便于说明,仅示出了与本发明实施例相关的部分。

所述嵌入式系统升级装置,包括:

第一升级模块51,用于在接收到升级数据包和升级指令后,保持第一阶段引导载入程序分区的数据不变,根据升级数据包中的数据分区编号,将数据写入存储器中相应的分区;

系统重启模块52,用于重新启动系统,运行所述第一阶段引导载入程序分区的程序,并引导运行第二阶段引导载入程序分区的程序;

数据读取模块53,用于在所述第二阶段引导载入程序分区的数据启动后,读取升级数据存储分区的升级标志,并根据所述升级标志判断是否需要升级;

第二升级模块54,用于若需要升级,则读取所述升级数据存储分区的文件系统数据,将所述文件系统数据写入相应的文件系统分区。

通过本发明实施例,设置两级或多级引导载入程序启动,且第一阶段引导载入程序分区的数据不升级,以防止由于数据错误系统无法启动的问题出现;将文件系统分为两部分,根文件rootfs部分不用升级,其它模块根据需要选择写入对应分区的升级数据,减小文件系统升级数据分区的大小,减少升级数据量,加快升级时间;通过外部存储设备中获取升级数据文件,在数据损坏时进行恢复以及升级。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述移动终端的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述移动终端中模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

图6是本发明一实施例提供的终端设备的示意图。如图6所示,该实施例的终端设备6包括:处理器60、存储器61以及存储在所述存储器61中并可在所述处理器60上运行的计算机程序62。所述存储器至少包括第一阶段引导载入程序分区、第二阶段引导载入程序分区、第二阶段引导载入程序备份分区、第一文件系统分区、第二文件系统分区以及升级数据存储分区。所述处理器60执行所述计算机程序62时实现上述各个嵌入式系统升级方法实施例中的步骤,例如图2所示的步骤201至204。或者,所述处理器60执行所述计算机程序62时实现上述各装置实施例中各模块/单元的功能,例如图5所示模块51至54的功能。

示例性的,所述计算机程序62可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器61中,并由所述处理器60执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序62在所述终端设备6中的执行过程。例如,所述计算机程序62可以被分割成引导启动模块、数据处理模块、数据读取模块、系统升级模块,各模块具体功能如下:

引导启动模块,用于在接收到升级数据包和升级指令后,保持所述第一阶段引导载入程序分区的数据不变,将所述升级数据包中的固件镜像文件数据写入所述第二阶段引导载入程序备份分区,将所述升级数据包中的文件系统数据写入所述升级数据存储分区并设置升级标志;

数据处理模块,用于在所述第二阶段引导载入程序分区的数据加载完成后,读取所述升级标志,并判断是否需要升级;

数据读取模块,用于若需要升级,则读取升级数据存储区的所述文件系统数据;

系统升级模块,用于将所述文件系统数据中的第一文件数据写入第一文件系统分区,将所述文件系统数据中的所述第二文件数据写入所述第二文件系统分区。

所述终端设备6可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图6仅仅是终端设备6的示例,并不构成对终端设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器60可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器61可以是所述终端设备6的内部存储单元,例如终端设备6的硬盘或内存。所述存储器61也可以是所述终端设备6的外部存储设备,例如所述终端设备6上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器61还可以既包括所述终端设备6的内部存储单元也包括外部存储设备。所述存储器61用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1