CN103810004B - 嵌入式系统升级的方法、装置及设备 - Google Patents
嵌入式系统升级的方法、装置及设备 Download PDFInfo
- Publication number
- CN103810004B CN103810004B CN201310598439.4A CN201310598439A CN103810004B CN 103810004 B CN103810004 B CN 103810004B CN 201310598439 A CN201310598439 A CN 201310598439A CN 103810004 B CN103810004 B CN 103810004B
- Authority
- CN
- China
- Prior art keywords
- embedded system
- embedded
- upgrading
- startup
- storage media
- 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.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本公开是关于一种嵌入式系统升级的方法、装置及设备,属于计算机技术领域。方法包括:在已存在的至少两个嵌入式系统中确定当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统,并启动第一嵌入式系统;在第一嵌入式系统下获取系统升级包,将系统升级包写入第二嵌入式系统对应的存储媒质分区中,完成对第二嵌入式系统的升级。本发明在已存在的至少两个嵌入式系统中确定当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统,并启动第一嵌入式系统后,将在第一嵌入式系统下获取的系统升级包写入第二嵌入式系统对应的存储媒质分区中,完成对第二嵌入式系统的升级,扩展了嵌入式系统升级的方式。
Description
技术领域
本公开是关于计算机技术领域,尤其是一种嵌入式系统升级的方法、装置及设备。
背景技术
随着社会的不断进步,植入嵌入式系统的嵌入式设备凭借其具有的高可靠性及高寿命期限等特点,已广泛应用于交通、水利等领域。在计算机技术迅猛发展的当下,各领域对嵌入式设备的系统性能要求也在日益提高。因此,如何对嵌入式设备的嵌入式系统进行升级,以满足各领域对嵌入式设备日益提高的系统性能要求,成为了本领域技术人员较为关注的一个问题。
相关技术在对嵌入式系统进行升级之前,在嵌入式设备的存储媒质中植入单个嵌入式系统。在对嵌入式系统进行升级时,首先确定嵌入式设备是否已同远端的开发主机(host)建立网络连接;在确定嵌入式设备已同远端的开发主机建立网络连接后,通过串口或网口从开发主机上获取嵌入式系统的升级包;之后,将获取到的嵌入式系统的升级包写入到嵌入式设备的存储媒质中,并启动升级后的嵌入式系统。
在实现本发明的过程中,发明人发现相关技术至少存在以下问题:
相关技术提供的嵌入式系统升级方式中仅在嵌入式设备的存储媒质中植入单个嵌入式系统,因此要求在升级过程中不能存在异常情况,比如,在升级过程中嵌入式设备不能断电或升级包本身不能存在异常;若在升级过程中存在异常情况,则可能导致嵌入式系统升级失败,甚至导致整个嵌入式设备不可用,所以该种嵌入式系统的升级方式具有很强的局限性。
发明内容
为克服相关技术中存在的问题,本公开提供一种嵌入式系统升级的方法、装置及设备。
一方面,本公开提供了一种嵌入式系统升级的方法;所述方法包括:
在已存在的至少两个嵌入式系统中,确定当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统,并启动所述第一嵌入式系统;
在所述第一嵌入式系统下获取系统升级包,将所述系统升级包写入第二嵌入式系统对应的存储媒质分区中,完成对所述第二嵌入式系统的升级。
可选地,还包括:
为不同的嵌入式系统逻辑划分对应的存储媒质分区,并在对应的存储媒质分区中植入对应的嵌入式系统。
可选地,所述第一嵌入式系统包括内核映像文件及根文件系统映像文件,且所述第一嵌入式系统包括的内核映像文件及根文件系统映像文件存储在所述第一嵌入式系统对应的存储媒质分区中;
所述启动所述第一嵌入式系统,包括:
将所述第一嵌入式系统对应的存储媒质分区中存储的所述第一嵌入式系统的内核映像文件加载到内存中运行,并挂载所述第一嵌入式系统的根文件系统映像文件。
可选地,所述系统升级包包括升级后的内核映像文件及根文件系统映像文件;
所述将所述系统升级包写入第二嵌入式系统对应的存储媒质分区中,包括:将所述系统升级包包括的升级后的内核映像文件及根文件系统映像文件写入所述第二嵌入式系统对应的存储媒质分区中。
可选地,还包括:
对所述系统升级包进行校验;
校验成功后,将所述系统升级包写入第二嵌入式系统对应的存储媒质分区中。
可选地,所述在已存在的至少两个嵌入式系统中,确定当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统,包括:
根据第一启动标识确定在上一次启动的嵌入式系统下是否对其他未启动的嵌入式系统进行了升级;
如果在上一次启动的嵌入式系统下对其他未启动的嵌入式系统进行了升级,则根据第二启动标识确定上一次升级的嵌入式系统,并将上一次升级后的嵌入式系统确定为当前具有启动能力的系统版本号最高的嵌入式系统,并将当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统;
其中,所述第一启动标识用于标识在上一次启动的嵌入式系统下是否对其他未启动的嵌入式系统进行了升级;所述第二启动标识用于标识上一次启动的嵌入式系统。
可选地,还包括:
如果在上一次启动的嵌入式系统下未对其他未启动的嵌入式系统进行升级,则将上一次启动的嵌入式系统确定为当前具有启动能力的系统版本号最高的嵌入式系统,并将当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统。
可选地,所述在已存在的至少两个嵌入式系统中,确定当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统,包括:
如果具有所述已存在的至少两个嵌入式系统的嵌入式设备为初次启动,则根据第三启动标识的当前值确定当前待启动的第一嵌入式系统;
其中,所述第三启动标识用于标识当前启动的嵌入式系统。
另一方面,本公开提供了一种嵌入式系统升级的装置;所述装置包括:
确定模块,用于在已存在的至少两个嵌入式系统中确定当前具有启动能力的待启动的第一嵌入式系统;
启动模块,用于启动所述确定模块确定的第一嵌入式系统;
获取模块,用于在所述启动模块启动的第一嵌入式系统下获取系统升级包;
升级模块,用于将所述获取模块获取到的系统升级包写入第二嵌入式系统对应的存储媒质分区中,完成对所述第二嵌入式系统的升级。
可选地,所述装置还包括:
划分模块,用于为不同的嵌入式系统逻辑划分对应的存储媒质分区;
植入模块,用于在所述划分模块划分的对应的存储媒质分区中植入对应的嵌入式系统。
可选地,所述第一嵌入式系统包括内核映像文件及根文件系统映像文件,且所述第一嵌入式系统包括的内核映像文件及根文件系统映像文件存储在所述第一嵌入式系统对应的存储媒质分区中;
所述启动模块,包括:
加载单元,用于将所述第一嵌入式系统对应的存储媒质分区中存储的所述第一嵌入式系统的内核映像文件加载到内存中运行;
挂载单元,用于挂载所述第一嵌入式系统的根文件系统映像文件。
可选地,所述系统升级包包括升级后的内核映像文件及根文件系统映像文件;
所述升级模块,用于将所述系统升级包包括的升级后的内核映像文件及根文件系统映像文件写入所述第二嵌入式系统对应的存储媒质分区中。
可选地,所述装置还包括:
校验模块,用于对所述系统升级包进行校验;
所述升级模块,用于当所述校验模块校验成功后,将所述系统升级包写入第二嵌入式系统对应的存储媒质分区中。
可选地,所述确定模块包括:
第一确定单元,用于根据第一启动标识确定在上一次启动的嵌入式系统下是否对其他未启动的嵌入式系统进行了升级;
第二确定单元,用于当所述第一确定单元确定在上一次启动的嵌入式系统下对其他未启动的嵌入式系统进行了升级后,根据第二启动标识确定上一次升级的嵌入式系统,并将上一次升级后的嵌入式系统确定为当前具有启动能力的系统版本号最高的嵌入式系统,并将当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统;
其中,所述第一启动标识用于标识在上一次启动的嵌入式系统下是否对其他未启动的嵌入式系统进行了升级;所述第二启动标识用于标识上一次启动的嵌入式系统。
可选地,所述确定模块还包括:
第三确定单元,用于当所述第一确定单元确定在上一次启动的嵌入式系统下未对其他未启动的嵌入式系统进行升级后,将上一次启动的嵌入式系统确定为当前具有启动能力的系统版本号最高的嵌入式系统,并将当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统。
可选地,所述确定模块包括:
第四确定单元,用于当具有所述已存在的至少两个嵌入式系统的嵌入式设备为初次启动时,根据第三启动标识的当前值确定当前待启动的第一嵌入式系统;
其中,所述第三启动标识用于标识当前启动的嵌入式系统。
再一方面,本公开提供了一种嵌入式系统升级的设备;所述设备包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行,所述一个或者一个以上程序包含用于进行以下操作的指令:
在已存在的至少两个嵌入式系统中,确定当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统,并启动所述第一嵌入式系统;
在所述第一嵌入式系统下获取系统升级包,将所述系统升级包写入第二嵌入式系统对应的存储媒质分区中,完成对所述第二嵌入式系统的升级。
本公开的一些有益效果可以包括:
在已存在的至少两个嵌入式系统中确定当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统,并启动第一嵌入式系统后,在第一嵌入式系统下获取系统升级包,且将系统升级包写入第二嵌入式系统对应的存储媒质中,从而扩展了嵌入式系统升级的方式,达到了嵌入式系统升级的目的。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
此处所说明的附图用来提供对本公开的进一步理解,构成本申请的一部分,并不构成对本公开的限定。在附图中:
图1是本公开一个实施例提供的一种嵌入式系统升级的方法的示例性流程图;
图2是本公开另一个实施例提供的一种嵌入式系统升级的方法的示例性流程图;
图3是本公开另一个实施例提供的第一种嵌入式系统升级的装置的示例性结构示意图;
图4是本公开另一个实施例提供的第二种嵌入式系统升级的装置的示例性结构示意图;
图5是本公开另一个实施例提供的一种启动模块的示例性内部结构示意图;
图6是本公开另一个实施例提供的第三种嵌入式系统升级的装置的示例性结构示意图;
图7是本公开另一个实施例提供的第一种确定模块的示例性内部结构示意图;
图8是本公开另一个实施例提供的第二种确定模块的示例性内部结构示意图;
图9是本公开另一个实施例提供的第三种确定模块的示例性内部结构示意图;
图10是本公开另一个实施例提供的一种嵌入式系统升级的设备的示例性结构示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本公开做进一步详细说明。在此,本公开的示意性实施方式及其说明用于解释本公开,但并不作为对本公开的限定。
本公开实施例提供一种嵌入式系统升级的方法,应用于植入有嵌入式系统的嵌入式设备或终端。在嵌入式系统中,包含有BootLoader(系统启动加载器),其位于嵌入式设备或终端的闪存的起始处,主要用来启动系统。BootLoader在嵌入式系统的内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从而将嵌入式系统的软硬件环境带到一个合适的状态,以便为最终调用嵌入式系统的内核准备好正确的环境。以下结合附图及上述内容对本公开进行详细说明。
在一个实施例中,如图1所示,嵌入式系统升级的方法包括:
在步骤S101中,在已存在的至少两个嵌入式系统中,确定当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统,并启动第一嵌入式系统;
在另一个实施例中,还包括:
为不同的嵌入式系统逻辑划分对应的存储媒质分区,并在对应的存储媒质分区中植入对应的嵌入式系统。
在另一个实施例中,在已存在的至少两个嵌入式系统中,确定当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统,包括但不限于:
根据第一启动标识确定在上一次启动的嵌入式系统下是否对其他未启动的嵌入式系统进行了升级;
如果在上一次启动的嵌入式系统下对其他未启动的嵌入式系统进行了升级,则根据第二启动标识确定上一次升级的嵌入式系统,并将上一次升级后的嵌入式系统确定为当前具有启动能力的系统版本号最高的嵌入式系统,并将当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统;
其中,第一启动标识用于标识在上一次启动的嵌入式系统下是否对其他未启动的嵌入式系统进行了升级;第二启动标识用于标识上一次启动的嵌入式系统。
在另一个实施例中,还包括:
如果在上一次启动的嵌入式系统下未对其他未启动的嵌入式系统进行升级,则将上一次启动的嵌入式系统确定为当前具有启动能力的系统版本号最高的嵌入式系统,并将当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统。
在另一个实施例中,在已存在的至少两个嵌入式系统中,确定当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统,包括但不限于:
如果具有已存在的至少两个嵌入式系统的嵌入式设备为初次启动,则根据第三启动标识的当前值确定当前待启动的第一嵌入式系统;
其中,第三启动标识用于标识当前启动的嵌入式系统。
在另一个实施例中,第一嵌入式系统包括内核映像文件及根文件系统映像文件,且第一嵌入式系统包括的内核映像文件及根文件系统映像文件存储在第一嵌入式系统对应的存储媒质分区中;
启动第一嵌入式系统,包括但不限于:
将第一嵌入式系统对应的存储媒质分区中存储的第一嵌入式系统的内核映像文件加载到内存中运行,并挂载第一嵌入式系统的根文件系统映像文件;
在步骤S102中,在第一嵌入式系统下获取系统升级包,将系统升级包写入第二嵌入式系统对应的存储媒质分区中,完成对第二嵌入式系统的升级。
在另一个实施例中,系统升级包包括升级后的内核映像文件及根文件系统映像文件;
将系统升级包写入第二嵌入式系统对应的存储媒质分区中,包括:
将系统升级包包括的升级后的内核映像文件及根文件系统映像文件写入第二嵌入式系统对应的存储媒质分区中。
在另一个实施例中,还包括:
对系统升级包进行校验;
校验成功后,将系统升级包写入第二嵌入式系统对应的存储媒质分区中。
本实施例提供的方法,在已存在的至少两个嵌入式系统中确定当前具有启动能力的系统版本最高的嵌入式系统作为待启动的第一嵌入式系统,并启动第一嵌入式系统后,将在第一嵌入式系统下获取到的系统升级包写入第二嵌入式系统对应的存储媒质分区中,从而完成第二嵌入式系统的升级,达到嵌入式系统升级的目的。该种方法下,即便在第一嵌入式系统下未获取到系统升级包,也可继续运行第一嵌入式系统,所以即使第二嵌入式系统升级失败,也不会导致整个嵌入式设备不可用,因此,该种嵌入式系统的升级方式具有良好的扩展性。
在另一个实施例中,以嵌入式设备中存在两个嵌入式系统为例,对本公开提供的嵌入式系统升级的方法进行详细地解释说明。如图2所示,嵌入式系统升级的方法包括:
在步骤S201中,在已存在的两个嵌入式系统中确定当前具有启动能力的系 统版本号最高的嵌入式系统作为待启动的第一嵌入式系统,并启动第一嵌入式系统;
针对该步骤,在执行本步骤之前,预先对嵌入式设备的存储媒质进行逻辑分区,以得到待植入的两个嵌入式系统各自对应的存储媒质分区,从而在对应的存储媒质分区中分别植入对应的嵌入式系统。
其中,在对嵌入式设备的存储媒质进行逻辑分区时,得到的存储媒质分区的数量具体可为8个,当然,存储媒质的分区数量除数值8外,还可以为其他数值,例如,16或32等等,本实施例对存储媒质分区的数量不作具体限定,可视待植入的嵌入式系统的个数而定。此外,每个存储媒质分区的大小可以相同也可以不同。例如,可划分存储空间较小的存储媒质分区,用来存储一类启动标识;还可划分存储空间较大的存储媒质分区,用来存储两个嵌入式系统的相关文件。其中,存储空间较小的存储媒质分区的大小可为64千字节;存储空间较大的存储媒质分区的大小具体可为4千兆。当然,存储空间小的存储媒质分区及存储空间大的存储媒质分区的大小除上述数值外,还可以为其他数值,例如32千字节或2千兆,本实施例对每个存储媒质分区的大小同样不作具体限定。
在另一个实施例中,在嵌入式设备的不同存储媒质分区分别植入对应的嵌入式系统的实现方式,包括但不限于:将两个嵌入式系统的内核映像文件及根文件系统映像文件分别写入对应的存储媒质分区;并在其他存储媒质分区中写入两个嵌入式系统的BootLoader。
其中,嵌入式系统的内核在嵌入式设备中以文件的形式存在(保存成磁盘文件形式),即内核映像文件;根文件系统在嵌入式设备中同样以文件的形式存在(保存成磁盘文件形式),即根文件系统映像文件。此外,由于每个嵌入式系统的BootLoader的作用及程序代码均一致,因此,在写入两个嵌入式系统的内核映像文件及根文件系统映像文件时,仅需写入一个BootLoader,便可对写入的两个嵌入式系统的启动进行控制,从而达到节省存储空间的目的。
除上述在嵌入式设备的不同存储媒质分区写入对应的嵌入式系统的方式 外,还可以采取其他写入方式,本实施例对此不作具体限定。
在另一个实施例中,为了能够在已存在的两个嵌入式系统中确定当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统,本实施例提供的方法还包括设置第一启动标识、第二启动标识及第三启动标识,并将第一启动标识、第二启动标识及第三启动标识分别写入嵌入式设备的存储媒质分区中的步骤。
其中,第一启动标识,可以符号flag_where_reboot进行标识,针对当前次系统启动来说,用于表示在上一次启动的嵌入式系统中是否进行了系统升级;本实施例以flag_where_reboot=1表示“在上一次启动的嵌入式系统中进行了系统升级”;flag_where_reboot=0表示“在上一次启动的嵌入式系统中未进行系统升级”。
第二启动标识,可以符号flag_last_success进行标识,针对当前次系统启动来说,用于标识上一次成功启动的系统是两个嵌入式系统中的哪个系统;例如,如果以系统1和系统2分别标识写入的两个嵌入式系统,本实施例中可以flag_last_success=0标识上一次成功启动的系统是系统1;以flag_last_success=1标识上一次成功启动的系统是系统2。
第三启动标识,可以符号flag_last_boot_try进行标识,针对嵌入式系统初次启动来说,可以根据第三启动标识确定嵌入式系统初次启动时应该启动哪一个嵌入式系统。例如,如果以系统1和系统2分别标识写入的两个嵌入式系统,本实施例中可以flag_last_boot_try=0表示嵌入式系统初次启动时应启动系统1;以flag_last_boot_try=0表示嵌入式系统初次启动时应启动系统2。
需要说明的是,上述第三启动标识在嵌入式系统升级成功或嵌入式系统正常启动时,均不会起到作用。当嵌入式系统初次启动时或嵌入式系统启动故障时,才会起到作用。其是为了确定首次启动时应启动哪个系统,以及在确定该系统启动失败时来继续启动另一个系统,为防止反复启动故障嵌入式系统而设置的。其具体作用会在后续步骤中结合程序代码予以说明。
在另一个实施例中,在设置好上述三个启动标识后,分别为三个启动标识赋初值0。在向嵌入式设备的存储媒质分区写入上述三个启动标识时,为了防止在向存储媒质分区中写入启动标识过程中发生故障,从而导致成功写入的启动标识失效,所以将上述三个启动标识分别写在三个不同于存储两个嵌入式系统的文件的存储媒质分区中。
基于上述设置的三个启动标识,在已存在的两个嵌入式系统中确定当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统的实现方式,包括但不限于:
根据第一启动标识确定在上一次启动的嵌入式系统下是否对其他未启动的嵌入式系统进行了升级;
如果在上一次启动的嵌入式系统下对其他未启动的嵌入式系统进行了升级,则根据第二启动标识确定上一次升级的嵌入式系统,并将上一次升级后的嵌入式系统确定为当前具有启动能力的系统版本号最高的嵌入式系统,并将当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统。
如果在上一次启动的嵌入式系统下未对其他未启动的嵌入式系统进行升级,则将上一次启动的嵌入式系统确定为当前具有启动能力的系统版本号最高的嵌入式系统,并将当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统。
在另一实施例中,在已存在的至少两个嵌入式系统中,确定当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统,包括但不限于:
如果具有已存在的至少两个嵌入式系统的嵌入式设备为初次启动,则根据第三启动标识的当前值确定当前待启动的第一嵌入式系统。
现以系统1和系统2分别标识两个嵌入式系统,第一启动标识为flag_where_reboot,且flag_where_reboot的值为0或1,第二启动标识为flag_last_success,且flag_last_success的值为0或1,第三启动标识flag_last _boot_try,且flag_last_boot_try的值为0或1为例,对上述在已存在的两个嵌入式系统中确定当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统进行形象地解释说明。其中,各个启动标识的数值表示的具体含义已在本步骤的前面部分予以介绍,此处不再赘述。具体步骤如下:
第一步:确定第一启动标识flag_where_reboot的当前值;
第二步:如果flag_where_reboot的当前值为1,则将flag_where_reboot的当前值赋0,并继续确定第二启动标识flag_last_success的当前值;
第三步:在第二步中,如果flag_last_success的当前值为1,则确定当前待启动的第一嵌入式系统为系统1;如果flag_last_success的当前值为0,则确定当前待启动的第一嵌入式系统为系统2;
第四步:在第一步中,如果flag_where_reboot的当前值为0,则继续确定第二启动标识flag_last_success的当前值;
第五步:在第四步中,如果第二启动标识flag_last_success的当前值为1,则启动系统2;如果第二启动标识flag_last_success的当前值为0,则继续确定第三启动标识flag_last_boot_try的当前值;
第六步:在第五步中,如果第三启动标识flag_last_boot_try的当前值为0,则启动系统1,并将flag_last_boot_try赋1;如果第三启动标识flag_last_boot_try的当前值为1,则启动系统2。
上述第一步至第六步的实现方式,还可通过程序代码加以实现,程序代码具体如下:
在另一个实施例中,启动第一嵌入式系统的实现方式,包括但不限于:
将第一嵌入式系统对应的存储媒质中存储的第一嵌入式系统的内核映像文 件加载到内存中运行,并挂载第一嵌入式系统的根文件系统映像文件。
其中,挂载指代将一个设备(通常是存储设备,例如,存储媒质)挂接到一个已存在的目录上。要访问存储设备中的文件时,需将文件所在的分区挂载到一个已存在的目录上,然后通过访问这个目录来访问存储设备。
为了能够成功挂载第一嵌入式系统的根文件系统映像文件,在挂载第一嵌入式系统的根文件系统映像文件之前,还需为各个存储媒质分区分别设置地址,并建立存储媒质分区与地址的对应关系表。从而根据存储媒质分区地址查找该对应关系表便能找到第一嵌入式系统的根文件系统映像文件的所在存储媒质分区;进而成功挂载第一嵌入式系统的根文件系统映像文件。
在步骤S202中,在第一嵌入式系统下获取系统升级包,将系统升级包写入第二嵌入式系统对应的存储媒质分区中,完成对第二嵌入式系统的升级。
针对该步骤,当嵌入式设备同远端的开发主机建立起网络连接后,开发主机作为系统升级任务的发起者,在检测到存在新的系统升级包时,便主动向嵌入式设备发送系统升级命令,以指示嵌入式设备进行系统升级。而为了能够使嵌入式设备明确何时获取系统升级包,本实施例提供的方法还包括判断是否接收到系统升级指示的步骤。
关于判断是否接收到系统升级指示的实现方式,包括但不限于:
判断是否接收到开发主机发送的包含特定字符的系统升级命令;如果接收到包含特定字符的系统升级命令,则向开发主机发送确认进行系统升级的回复消息;如果未接收到包含特定字符的系统升级命令,则不执行系统升级操作。
其中,回复消息具体可为ACK(Acknowledgement,确认字符)消息,当然,回复消息除ACK消息外,还可以为其他类型的消息,本实施例对回复消息的类型不作具体限定。
在另一个实施例中,在第一嵌入式系统下获取系统升级包的实现方式,包括但不限于:
第一嵌入式系统接收远端开发主机发送的各个数据包,每接收到一个数据 包后,向远端的开发主机发送确认消息,同时接收远端的开发主机发送的校验数据包,若数据包校验无误,则判断成功获取该数据包,并向远端的开发主机返回校验结果及继续接收下一个数据包;如果数据包校验有误,则判断未获取到该数据包。
其中,各个数据包由远端的开发主机预先将最新版本的内核映像文件及根文件系统映像文件拆分为固定长度的多个数据单元,并以每个数据单元为核心组成数据包。其中,数据包包含数据包头标志、命令头、包序列、数据单元、CRC校验码、数据包尾标志及总包数等。
在获取到系统升级包后,为确认获取到的系统升级包的内容是否完整,以保证后续根据获取到的系统升级包对系统成功进行升级,本实施例提供的方法还包括对系统升级包进行校验的步骤。
其中,对系统升级包进行校验的实现方式,包括但不限于:
确认接收到的数据包的包数与各个数据包中包含的总包数是否一致;如果接收到的数据包的包数与各个数据包中包含的总包数一致,则对系统升级包校验成功,确定获取到的升级包的内容完整。
当然,除了上述对系统升级包进行校验的方式外,还可采取其他校验方式,本实施例对此不作具体限定。
可选地,在对系统升级包校验成功后,可将系统升级包写入到第二嵌入式系统对应的存储媒质分区中。其中,将系统升级包写入到第二嵌入式系统对应的存储媒质分区中的实现方式,包括但不限于:
将第二嵌入式系统对应的存储媒质分区中存储的原始包进行擦除,将获取的系统升级包写入到第二嵌入式系统对应的存储媒质分区中。由于系统升级包包括升级后的内核映像文件及根文件系统映像文件,则将系统升级包写入第二嵌入式系统对应的存储媒质分区中,包括:将系统升级包包括的升级后的内核映像文件及根文件系统映像文件写入第二嵌入式系统对应的存储媒质分区中。在将升级后的内核映像文件及根文件系统映像文件写入第二嵌入式系统对应的 存储媒质分区中后,由于在第一嵌入式系统中对第二嵌入式系统进行了升级,因此,需将第一启动标识的当前值进行更新,即由flag_where_reboot=0更新为flag_where_reboot=1。
可选地,由于系统升级包的版本要优于第一嵌入式系统的版本,为了保证嵌入式系统的系统工作性能,则需要进行嵌入式系统切换,即控制第一嵌入式系统停止运行,并启动升级后的第二嵌入式系统。即通过BootLoader控制第一嵌入式系统的内核映像文件停止运行。在控制第一嵌入式系统停止运行后,再启动第二嵌入式系统。
其中,启动升级后的第二嵌入式系统的实现方式,包括但不限于:
将第二嵌入式系统对应的存储媒质中存储的系统升级包包括的内核映像文件加载到内存中运行,并挂载系统升级包包括的根文件系统映像文件。
在另一个实施例中,在启动升级后的第二嵌入式系统时,本实施例提供的方法还包括判断是否成功启动升级后的第二嵌入式系统的步骤;如果成功启动升级后的第二嵌入式系统,则将第二启动标识的当前值及第三启动标识的当前值进行更新。
关于判断是否成功启动升级后的第二嵌入式系统的实现方式,包括但不限于:判断升级后的第二嵌入式系统的初始化程序是否启动;如果升级后的第二嵌入式系统的初始化程序成功运行,则判断成功启动升级后的第二嵌入式系统;如果升级后的第二嵌入式系统的初始化未成功启动,则判断未成功启动升级后的第二嵌入式系统。
此外,如果成功启动升级后的第二嵌入式系统,则将第二启动标识的当前值及第三启动标识的当前值进行更新。以升级后的第二嵌入式系统为系统1为例,则在成功启动系统1后,将第二启动标识flag_last_success的当前值赋值为0,第三启动标识flag_last_boot_try的当前值赋值为0。
此外,本实施例仅以嵌入式设备中存在两个嵌入式系统为例,对本公开提供的嵌入式系统升级的方法进行了解释说明。当嵌入式设备中存在两个以上的 嵌入式系统时,系统升级方式同存在两个嵌入式系统时的升级方式类似。以嵌入式设备中存在系统A、系统B及系统C三个嵌入式系统,本次启动的第一嵌入式系统为系统A为例,则在系统A下获取到系统升级包后,可将系统升级包分别写入到系统B对应的存储媒质分区中和系统C对应的存储媒质分区中,也即对系统B和系统C均升级;这样,在下一次启动系统时,可将升级后的系统B和升级后的系统C中的任一系统确定为具有启动能力的系统版本号最高的嵌入式系统,并将该具有启动能力的系统版本号最高的嵌入式系统作为本次待启动的第一嵌入式系统,并启动该第一嵌入式系统。在该第一嵌入式系统下获取系统升级包,将该系统升级包写入第二嵌入式系统对应的存储媒质分区中,完成对第二嵌入式系统的升级。其中,该第二嵌入式系统中包括两个嵌入式系统;如果将升级后的系统B确定为具有启动能力的系统版本号最高的嵌入式系统,则该第二嵌入式系统中包括系统A和系统C;如果将升级后的系统C确定为具有启动能力的系统版本号最高的嵌入式系统,则该第二嵌入式系统中包括系统A和系统B。
本实施例提供的方法,在已存在的至少两个嵌入式系统中确定当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统,并启动第一嵌入式系统后,将在第一嵌入式系统下获取到的系统升级包写入第二嵌入式系统对应的存储媒质分区中,从而完成第二嵌入式系统的升级,达到嵌入式系统升级的目的。该种方法下,即便在第一嵌入式系统下未获取到系统升级包,也可继续运行第一嵌入式系统,所以即使第二嵌入式系统升级失败,也不会导致整个嵌入式设备不可用,因此,该种嵌入式系统的升级方式具有良好的扩展性。
在另一个实施例中,如图3所示,嵌入式系统升级的装置包括:
确定模块31,用于在已存在的至少两个嵌入式系统中确定当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统;
启动模块32,用于启动确定模块31确定的第一嵌入式系统;
获取模块33,用于在启动模块32启动的第一嵌入式系统下获取系统升级包;
升级模块34,用于将获取模块33获取到的系统升级包写入第二嵌入式系统对应的存储媒质分区中,完成对第二嵌入式系统的升级。
在另一个实施例中,参见图4,该装置还包括:
划分模块35,用于为不同的嵌入式系统逻辑划分对应的存储媒质分区;
植入模块36,用于在划分模块35划分的对应的存储媒质分区中植入对应的嵌入式系统。
在另一个实施例中,第一嵌入式系统包括内核映像文件及根文件系统映像文件,且第一嵌入式系统包括的内核映像文件及根文件系统映像文件存储在第一嵌入式系统对应的存储媒质分区中;
参见图5,启动模块32,包括:
加载单元321,用于将第一嵌入式系统对应的存储媒质分区中存储的第一嵌入式系统的内核映像文件加载到内存中运行;
挂载单元322,用于挂载第一嵌入式系统的根文件系统映像文件。
在另一个实施例中,系统升级包包括升级后的内核映像文件及根文件系统映像文件;
升级模块34,用于将系统升级包包括的升级后的内核映像文件及根文件系统映像文件写入第二嵌入式系统对应的存储媒质分区中。
在另一个实施例中,参见图6,该装置还包括:
校验模块37,用于对系统升级包进行校验;
升级模块34,用于当校验模块37校验成功后,将系统升级包写入第二嵌入式系统对应的存储媒质分区中。
在另一个实施例中,参见图7,确定模块31包括:
第一确定单元311,用于根据第一启动标识确定在上一次启动的嵌入式系统下是否对其他未启动的嵌入式系统进行了升级;
第二确定单元312,用于当第一确定单元311确定在上一次启动的嵌入式系统下对其他未启动的嵌入式系统进行了升级后,根据第二启动标识确定上一次升级的嵌入式系统,并将上一次升级后的嵌入式系统确定为当前具有启动能力的系统版本号最高的嵌入式系统,并将当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统;
其中,第一启动标识用于标识在上一次启动的嵌入式系统下是否对其他未启动的嵌入式系统进行了升级;第二启动标识用于标识上一次启动的嵌入式系统。
在另一个实施例中,参见图8,确定模块31还包括:
第三确定单元313,用于当第一确定单元311确定在上一次启动的嵌入式系统下未对其他未启动的嵌入式系统进行升级后,将上一次启动的嵌入式系统确定为当前具有启动能力的系统版本号最高的嵌入式系统,并将当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统。
在另一个实施例中,参见图9,确定模块31包括,
第四确定单元314,用于当具有已存在的至少两个嵌入式系统的嵌入式设备为初次启动时,根据第三启动标识的当前值确定当前待启动的第一嵌入式系统;
其中,第三启动标识用于标识当前启动的嵌入式系统。
本实施例提供的装置,在已存在的至少两个嵌入式系统中确定当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统,并启动第一嵌入式系统后,将在第一嵌入式系统下获取到的系统升级包写入第二嵌入式系统对应的存储媒质分区中,从而完成第二嵌入式系统的升级,达到嵌入式系统升级的目的。即便在第一嵌入式系统下未获取到系统升级包,也可继续运行第一嵌入式系统,所以即使第二嵌入式系统升级失败,也不会导致整个嵌入式设备不可用,因此,该种嵌入式系统的升级方式具有良好的扩展性。
在另一实施例中,图10是本发明实施例中嵌入式系统升级的设备(可以是 请求方终端或者相关联终端)结构示意图。参见图10,该设备可以用于实施上述实施例中提供的方法。优选的:
设备1000可以包括通信单元110、包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、显示单元140、传感器150、音频电路160、WIFI(WirelessFidelity,无线保真)模块170、包括有一个或者一个以上处理核心的处理器180、以及电源190等部件。本领域技术人员可以理解,图中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
通信单元110可用于收发信息或通话过程中,信号的接收和发送,该通信单元110可以为RF(Radio Frequency,射频)电路、路由器、调制解调器、等网络通信设备。特别地,当通信单元110为RF电路时,将基站的下行信息接收后,交由一个或者一个以上处理器180处理;另外,将涉及上行的数据发送给基站。通常,作为通信单元的RF电路包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,通信单元110还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(GeneralPacket Radio Service,通用分组无线服务)、CDMA(Code Division Multiple Access,码分多址)、WCDMA(Wideband Code Division Multiple Access,宽带码分多址)、LTE(LongTerm Evolution,长期演进)、电子邮件、SMS(Short Messaging Service,短消息服务)等。存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据设备1000的使用所创建的数据(比如音频数据、电话本等)等。 此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器180和输入单元130对存储器120的访问。
输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。可选地,输入单元130可包括触敏表面131以及其他输入设备132。触敏表面131,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面131上或在触敏表面131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面131。除了触敏表面131,输入单元130还可以包括其他输入设备132。可选地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元140可用于显示由用户输入的信息或提供给用户的信息以及设备1000的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元140可包括显示面板141,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板141。进一步的,触敏表面131可覆盖显示面板141,当触敏表面131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图10中,触敏表面131与显示面 板141是作为两个独立的部件来实现输入和输出功能,但是在某些实施例中,可以将触敏表面131与显示面板141集成而实现输入和输出功能。
设备1000还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在设备1000移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于设备1000还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路160、扬声器161,传声器162可提供用户与设备1000之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一终端设备,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与设备1000的通信。
为了实现无线通信,该设备上可以配置有无线通信单元170,该无线通信单元170可以为WIFI模块。WIFI属于短距离无线传输技术,设备1000通过无线通信单元170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图中示出了无线通信单元170,但是可以理解的是,其并不属于设备1000的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器180是设备1000的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调 用存储在存储器120内的数据,执行设备1000的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理核心;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
设备1000还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源190还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,设备1000还可以包括摄像头、蓝牙模块等,在此不再赘述。在本实施例中,嵌入式系统升级的设备还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行本发明实施例提供的方法的指令。
尽管前面公开的内容示出了本公开的示例性实施例,但是应当注意,在不背离权利要求限定的本公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本公开的元素可以以个体形式描述或要求,但是也可以设想多个,除非明确限制为单数。
以上所述的具体实施方式,对本公开的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本公开的具体实施方式而已,并不用于限定本公开的保护范围,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (15)
1.一种嵌入式系统升级的方法,其特征在于,所述方法包括:
在已存在的至少两个嵌入式系统中,确定当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统,并启动所述第一嵌入式系统;
在所述第一嵌入式系统下获取系统升级包,将所述系统升级包写入第二嵌入式系统对应的存储媒质分区中,完成对所述第二嵌入式系统的升级;
其中,所述在已存在的至少两个嵌入式系统中,确定当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统,包括:
根据第一启动标识确定在上一次启动的嵌入式系统下是否对其他未启动的嵌入式系统进行了升级;
如果在上一次启动的嵌入式系统下对其他未启动的嵌入式系统进行了升级,则根据第二启动标识确定上一次升级的嵌入式系统,将上一次升级后的嵌入式系统确定为当前具有启动能力的系统版本号最高的嵌入式系统,并将当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统;
其中,所述第一启动标识用于标识在上一次启动的嵌入式系统下是否对其他未启动的嵌入式系统进行了升级;所述第二启动标识用于标识上一次启动的嵌入式系统。
2.根据权利要求1所述的方法,其特征在于,还包括:
为不同的嵌入式系统逻辑划分对应的存储媒质分区,并在对应的存储媒质分区中植入对应的嵌入式系统。
3.根据权利要求1所述的方法,其特征在于,所述第一嵌入式系统包括内核映像文件及根文件系统映像文件,且所述第一嵌入式系统包括的内核映像文件及根文件系统映像文件存储在所述第一嵌入式系统对应的存储媒质分区中;
所述启动所述第一嵌入式系统,包括:
将所述第一嵌入式系统对应的存储媒质分区中存储的所述第一嵌入式系统的内核映像文件加载到内存中运行,并挂载所述第一嵌入式系统的根文件系统映像文件。
4.根据权利要求1所述的方法,其特征在于,所述系统升级包包括升级后的内核映像文件及根文件系统映像文件;
所述将所述系统升级包写入第二嵌入式系统对应的存储媒质分区中,包括:
将所述系统升级包包括的升级后的内核映像文件及根文件系统映像文件写入所述第二嵌入式系统对应的存储媒质分区中。
5.根据权利要求1所述的方法,其特征在于,还包括:
对所述系统升级包进行校验;
校验成功后,将所述系统升级包写入第二嵌入式系统对应的存储媒质分区中。
6.根据权利要求1所述的方法,其特征在于,还包括:
如果在上一次启动的嵌入式系统下未对其他未启动的嵌入式系统进行升级,则将上一次启动的嵌入式系统确定为当前具有启动能力的系统版本号最高的嵌入式系统,并将当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统。
7.根据权利要求1所述的方法,其特征在于,所述在已存在的至少两个嵌入式系统中,确定当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统,包括:
如果具有所述已存在的至少两个嵌入式系统的嵌入式设备为初次启动,则根据第三启动标识的当前值确定当前待启动的第一嵌入式系统;
其中,所述第三启动标识用于标识当前启动的嵌入式系统。
8.一种嵌入式系统升级的装置,其特征在于,所述装置包括:
确定模块,用于在已存在的至少两个嵌入式系统中确定当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统;
启动模块,用于启动所述确定模块确定的第一嵌入式系统;
获取模块,用于在所述启动模块启动的第一嵌入式系统下获取系统升级包;
升级模块,用于将所述获取模块获取到的系统升级包写入第二嵌入式系统对应的存储媒质分区中,完成对所述第二嵌入式系统的升级;
其中,所述确定模块包括:
第一确定单元,用于根据第一启动标识确定在上一次启动的嵌入式系统下是否对其他未启动的嵌入式系统进行了升级;
第二确定单元,用于当所述第一确定单元确定在上一次启动的嵌入式系统下对其他未启动的嵌入式系统进行了升级后,根据第二启动标识确定上一次升级的嵌入式系统,并将上一次升级后的嵌入式系统确定为当前具有启动能力的系统版本号最高的嵌入式系统,并将当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统;
其中,所述第一启动标识用于标识在上一次启动的嵌入式系统下是否对其他未启动的嵌入式系统进行了升级;所述第二启动标识用于标识上一次启动的嵌入式系统。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
划分模块,用于为不同的嵌入式系统逻辑划分对应的存储媒质分区;
植入模块,用于在所述划分模块划分的对应的存储媒质分区中植入对应的嵌入式系统。
10.根据权利要求8所述的装置,其特征在于,所述第一嵌入式系统包括内核映像文件及根文件系统映像文件,且所述第一嵌入式系统包括的内核映像文件及根文件系统映像文件存储在所述第一嵌入式系统对应的存储媒质分区中;
所述启动模块,包括:
加载单元,用于将所述第一嵌入式系统对应的存储媒质分区中存储的所述第一嵌入式系统的内核映像文件加载到内存中运行;
挂载单元,用于挂载所述第一嵌入式系统的根文件系统映像文件。
11.根据权利要求8所述的装置,其特征在于,所述系统升级包包括升级后的内核映像文件及根文件系统映像文件;
所述升级模块,用于将所述系统升级包包括的升级后的内核映像文件及根文件系统映像文件写入所述第二嵌入式系统对应的存储媒质分区中。
12.根据权利要求8所述的装置,其特征在于,所述装置还包括:
校验模块,用于对所述系统升级包进行校验;
所述升级模块,用于当所述校验模块校验成功后,将所述系统升级包写入第二嵌入式系统对应的存储媒质分区中。
13.根据权利要求8所述的装置,其特征在于,所述确定模块还包括:
第三确定单元,用于当所述第一确定单元确定在上一次启动的嵌入式系统下未对其他未启动的嵌入式系统进行升级后,将上一次启动的嵌入式系统确定为当前具有启动能力的系统版本号最高的嵌入式系统,并将当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统。
14.根据权利要求8所述的装置,其特征在于,所述确定模块包括:
第四确定单元,用于当具有所述已存在的至少两个嵌入式系统的嵌入式设备为初次启动时,根据第三启动标识的当前值确定当前待启动的第一嵌入式系统;
其中,所述第三启动标识用于标识当前启动的嵌入式系统。
15.一种嵌入式系统升级的设备,其特征在于,所述设备包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行,所述一个或者一个以上程序包含用于进行以下操作的指令:
在已存在的至少两个嵌入式系统中,确定当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统,并启动所述第一嵌入式系统;
在所述第一嵌入式系统下获取系统升级包,将所述系统升级包写入第二嵌入式系统对应的存储媒质中,完成对所述第二嵌入式系统的升级;
其中,所述在已存在的至少两个嵌入式系统中,确定当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统,包括:
根据第一启动标识确定在上一次启动的嵌入式系统下是否对其他未启动的嵌入式系统进行了升级;
如果在上一次启动的嵌入式系统下对其他未启动的嵌入式系统进行了升级,则根据第二启动标识确定上一次升级的嵌入式系统,将上一次升级后的嵌入式系统确定为当前具有启动能力的系统版本号最高的嵌入式系统,并将当前具有启动能力的系统版本号最高的嵌入式系统作为待启动的第一嵌入式系统;
其中,所述第一启动标识用于标识在上一次启动的嵌入式系统下是否对其他未启动的嵌入式系统进行了升级;所述第二启动标识用于标识上一次启动的嵌入式系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310598439.4A CN103810004B (zh) | 2013-11-22 | 2013-11-22 | 嵌入式系统升级的方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310598439.4A CN103810004B (zh) | 2013-11-22 | 2013-11-22 | 嵌入式系统升级的方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103810004A CN103810004A (zh) | 2014-05-21 |
CN103810004B true CN103810004B (zh) | 2017-03-22 |
Family
ID=50706819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310598439.4A Active CN103810004B (zh) | 2013-11-22 | 2013-11-22 | 嵌入式系统升级的方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103810004B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10282194B2 (en) * | 2014-10-07 | 2019-05-07 | Ford Global Technologies, Llc | Methods and systems to update a vehicle computing system |
CN104484200B (zh) * | 2014-12-09 | 2018-05-25 | 小米科技有限责任公司 | 对固件进行升级的方法及装置 |
CN105722119B (zh) * | 2016-01-27 | 2019-09-06 | 努比亚技术有限公司 | 移动终端及其系统升级方法 |
CN107291490A (zh) * | 2017-05-03 | 2017-10-24 | 上海上讯信息技术股份有限公司 | 一种系统升级的方法及设备 |
CN107704756B (zh) * | 2017-09-26 | 2021-10-19 | 晶晨半导体(上海)股份有限公司 | 一种系统升级前的安全校验方法及系统 |
CN108121554A (zh) * | 2017-12-20 | 2018-06-05 | 浙江亿邦通信科技股份有限公司 | 一种户外嵌入式设备系统的升级方法及升级系统 |
CN109358871B (zh) * | 2018-09-18 | 2022-11-15 | 深圳Tcl数字技术有限公司 | 嵌入式系统设备的应用系统更换方法、装置及存储介质 |
CN110865837B (zh) * | 2019-11-14 | 2023-08-18 | 青岛海信移动通信技术有限公司 | 一种进行系统升级的方法和终端 |
CN110908687B (zh) * | 2019-11-22 | 2021-12-07 | 歌尔股份有限公司 | 耳机升级方法、耳机组件、升级装置和可读存储介质 |
CN114741119A (zh) * | 2022-03-22 | 2022-07-12 | 深圳数马电子技术有限公司 | 系统的启动方法、装置、计算机设备和存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622280A (zh) * | 2011-01-06 | 2012-08-01 | 苏州科达科技有限公司 | 一种基于双文件系统的软件版本升级的控制方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090138865A1 (en) * | 2004-12-10 | 2009-05-28 | Furbee Richard L | Performing an operating system upgrade without multiple system interruptions |
US8473692B2 (en) * | 2010-10-27 | 2013-06-25 | International Business Machines Corporation | Operating system image management |
-
2013
- 2013-11-22 CN CN201310598439.4A patent/CN103810004B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622280A (zh) * | 2011-01-06 | 2012-08-01 | 苏州科达科技有限公司 | 一种基于双文件系统的软件版本升级的控制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103810004A (zh) | 2014-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103810004B (zh) | 嵌入式系统升级的方法、装置及设备 | |
CN104915241B (zh) | 一种虚拟机迁移控制方法及装置 | |
CN103544033B (zh) | 应用程序回退方法、装置及相关设备 | |
CN107273160A (zh) | 一种版本升级的方法及装置 | |
CN103455348B (zh) | 分区调整方法、装置、终端、服务器及系统 | |
CN103279288B (zh) | 数据传输方法、装置和终端设备 | |
CN106502703B (zh) | 一种函数调用方法和装置 | |
CN106066686B (zh) | 一种信息处理方法及终端设备 | |
CN105278937A (zh) | 一种显示弹出框消息的方法及装置 | |
CN104780164A (zh) | 一种运行游戏客户端的方法和装置 | |
CN103942113A (zh) | 系统重启原因的检测方法、装置及终端设备 | |
CN104951212A (zh) | 一种移动终端的桌面数据处理方法、装置和系统 | |
CN106708734A (zh) | 软件异常检测方法及装置 | |
CN104636047A (zh) | 对列表中的对象进行操作的方法、装置及触屏终端 | |
CN104142868A (zh) | 建立连接的方法及装置 | |
CN104135728B (zh) | 网络连接方法及装置 | |
CN104717341A (zh) | 一种消息提示方法及终端 | |
CN108228230A (zh) | Ufs固件的升级方法、终端及计算机可读存储介质 | |
CN103631625A (zh) | 一种数据获取的方法、用户端、服务器及系统 | |
CN103713943A (zh) | 基于终端原生操作系统的应用功能实现方法和装置 | |
CN108090345A (zh) | linux系统外部命令执行方法及装置 | |
CN106528335A (zh) | 一种数据备份方法、装置和终端 | |
CN104699501A (zh) | 一种运行应用程序的方法及装置 | |
CN104243394A (zh) | 多媒体文件的播放方法及装置 | |
CN106445719A (zh) | 恢复模式Recovery指令读写方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221109 Address after: 430000 No. 006, floor 1, No. 66, Jiufeng 1st Road, Donghu New Technology Development Zone, Wuhan, Hubei Province (Wuhan area of free trade zone) Patentee after: Xiaomi Technology (Wuhan) Co.,Ltd. Patentee after: Xiaomi Technology Co.,Ltd. Address before: 100085 Beijing Haidian District Qinghe middle street 68 Huarun colorful shopping mall two phase 13 level. Patentee before: Xiaomi Technology Co.,Ltd. |
|
TR01 | Transfer of patent right |