控制嵌入式系统软件升级的方法、存储介质和电子设备与流程

文档序号:30496247发布日期:2022-06-22 04:44阅读:86来源:国知局
控制嵌入式系统软件升级的方法、存储介质和电子设备与流程

1.本发明涉及软件技术领域,尤其是涉及一种控制嵌入式系统软件升级的方法、嵌入式存储介质和电子设备。


背景技术:

2.在相关技术中,在升级嵌入式系统软件过程中,当升级包中的启动装载固件异常时,如果升级了异常的启动装载分区,嵌入式设备将变砖,无法启动。我们在系统更新时,如果打包了异常的启动装载数据到升级包中,或者使用了包含未签名启动装载固件的升级包,那么在升级完成后,嵌入式设备将无法正常启动。


技术实现要素:

3.本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明的一个目的在于提出一种控制嵌入式系统软件升级的方法,能提前对启动装载和系统内核进行功能正常性校验,提高升级的安全性与可靠性。
4.本发明第二个目的在于提出一种嵌入式存储介质。
5.本发明第三个目的在于提出一种电子设备。
6.为了达到上述目的,本发明第一方面实施例的控制嵌入式系统软件升级的方法,其特征在于,所述嵌入式系统包括嵌入式存储介质,所述嵌入式存储介质至少设置有启动装载分区和缓存分区,所述方法包括:获取升级数据包,其中,所述升级数据至少包括启动装载数据和系统内核数据;将所述启动装载数据写入嵌入式存储介质的启动装载分区,以及,将所述系统内核数据缓存至所述嵌入式存储介质的缓存分区;控制嵌入式系统重启,运行所述启动装载分区中的启动装载数据和所述缓存分区的系统内核数据以进行启动校验;获取启动校验值;根据所述启动校验值确定所述启动装载数据和所述系统内核数据均校验成功,则根据所述升级数据包升级所述嵌入式存储介质中除了所述启动装载分区以外其它存储区域。
7.根据本发明实施例的控制嵌入式系统软件升级的方法,将启动装载数据写入嵌入式存储介质的启动装载分区,以及,将系统内核数据缓存至嵌入式存储介质的缓存分区,控制嵌入式系统重启,在嵌入式系统软件全面升级开始前,先对启动装载和系统内核进行模拟启动,并且确定启动装载数据以及系统内核数据均校验成功后,再根据升级数据包升级嵌入式存储介质中除了启动装载分区以外其它存储区域,即对系统进行完整升级,保证启动装载分区或系统内核的升级数据的正常,避免出现更新了异常的启动装载数据和系统内核数据而使得设备变砖,避免系统变砖而无法正常启动,提高了升级的安全性和可靠性。
8.在本发明的一些实施例中,获取启动校验值包括:获取运行所述启动装载分区中的启动装载数据后生成的启动装载索引值,以及,获取运行所述缓存分区的所述系统内核数据后生成的状态参数。
9.在本发明的一些实施例中,所述根据所述启动校验值确定所述启动装载数据和所
述系统内核数据均校验成功,包括:所述启动装载索引值为第一索引值,确定所述启动装载数据校验成功;根据所述状态参数确定在加载系统内核数据启动后启动到初始化进程,确定所述系统内核数据校验成功。
10.在本发明的一些实施例中,所述方法还包括:所述启动装载索引值为第二索引值,确定所述启动装载数据校验失败。
11.在本发明的一些实施例中,所述方法还包括:在确定所述启动装载数据校验成功后,进一步根据所述状态参数确定在加载系统内核数据启动后未启动到初始化进程,确定所述系统内核数据校验失败。
12.在本发明的一些实施例中,所述嵌入式存储介质还设置有启动备份分区,所述方法还包括:根据所述启动校验值确定所述启动装载数据和所述系统内核数据中任一项校验失败;获取所述启动备份区域存储的历史启动装载数据;根据所述历史启动装载数据恢复所述启动装载分区,并清除所述缓存分区的系统内核数据。
13.在本发明的一些实施例中,在根据所述启动校验值确定所述启动装载数据和所述系统内核数据中任一项校验失败之后,所述方法还包括:提示升级数据包异常,退出升级程序。
14.在本发明的一些实施例中,在获取升级数据包之前,所述方法还包括:获取启动模式;所述启动模式为升级模式,则加载升级程序,启动升级系统;所述启动模式为非升级模式,则加载系统内核数据,启动用户系统。
15.为了达到上述目的,本发明第二方面实施例的嵌入式存储介质,其特征在于,包括用户数据区域和启动备份区域,所述用户数据区域包括启动装载分区和缓存分区,其中,所述启动装载分区和所述启动备份区域均用于存储启动装载数据。
16.本发明实施例的嵌入式存储介质,其中缓存分区中存储有系统内核数据,用户数据区域和启动备份区域中均存储有启动装载数据。嵌入式存储介质还存储有主程序,主程序运行,能对嵌入式存储介质中的启动装载数据和系统内核数据进行校验,还能在校验成功后,对嵌入式存储介质中的其它存储区域进行升级,以实现上面任一项实施例的嵌入式系统软件升级的方法。
17.为了达到上述目的,本发明第三方面实施例的电子设备,其特征在于,包括:处理器和所述的嵌入式存储介质,所述处理器用于执行上面实施例的任一项所述的控制嵌入式系统软件升级的方法。
18.根据本发明实施例的电子设备,包括嵌入式存储介质,通过运行嵌入式存储介质中的主程序,可以将启动装载数据进行整合分析,并发出指令由处理器执行,在系统升级开始前,对启动装载数据和系统内核数据进行启动校验,并确定启动装载和系统内核均升级成功,再对系统进行完整升级,提高了升级的安全性和可靠性。
19.本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
20.本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
21.图1是本发明一个实施例的嵌入式存储介质存储分区的示意图;
22.图2是本发明一个实施例的用户数据区域存储分区的示意图;
23.图3是本发明一个实施例的控制嵌入式系统软件升级的方法的流程图;
24.图4是本发明一个实施例的检测嵌入式系统软件的启动模式的流程图;
25.图5是本发明一个实施例的电子设备的框图。
26.附图标记:
27.电子设备01;
28.嵌入式存储介质10、处理器20;
29.用户数据区域100、启动备份区域200、重放保护内存块分区300、通用分区400;
30.启动装载分区101、缓存分区102、内核分区103、恢复分区104、根文件系统分区105、数据分区106;
31.通用分区1、通用分区2、通用分区3、通用分区4。
具体实施方式
32.下面详细描述本发明的实施例,参考附图描述的实施例是示例性的,下面详细描述本发明的实施例。
33.为了解决在嵌入式系统软件升级时升级了异常的启动装载固件而导致嵌入式设备变砖无法启动的问题。本发明实施例提出了一种控制嵌入式系统软件升级的方法,该方法可以避免升级异常启动数据。
34.嵌入式系统包括嵌入式存储介质,图1是本发明一个实施例的嵌入式存储介质存储分区的示意图。
35.其中,以emmc(embedded multi media card,一种嵌入式存储介质)为例,emmc主要用在机顶盒、电视以及一些手机的方案中。采用emmc存储时,通常采用硬件配置为2g+16g、4g+64g和6g+128g的内存组合,其中16g、64g、128g为emmc内部的存储容量大小。嵌入式存储介质10包括用户数据区域100、启动备份区域200、重放保护内存块分区300、通用分区400等,其中通用分区400包括通用分区1、通用分区2、通用分区3和通用分区4,通用分区1-4主要用于存储系统或者用户数据。
36.启动备份区域200可以包括两个启动分区,例如第一启动分区201和第二启动分区202。启动备份区域200中存储的启动装载数据为备份数据,可以用于在启动装载分区101中存储的启动装载数据和缓存分区102中存储的系统内核数据校验成功后,再进行升级。也可以用于在启动装载数据和系统内核数据中任一项校验失败之后,根据启动备份区域200中存储的启动装载数据恢复启动装载分区101,避免系统无法正常启动。
37.如图2所示,为根据本发明一个实施例的用户数据区域存储分区的示意图。其中,用户数据区域100包括启动装载分区101、缓存分区102、内核分区103、恢复分区104、根文件系统分区105和数据分区106等。
38.启动装载分区101中的数据在操作系统内核运行之前运行。在嵌入式设备上电后,最先加载启动装载分区101中的数据并运行,可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。恢复分区104是一个能够完成系统升级更新的最小系统,能够独立运行,不依赖正常
的用户系统。恢复分区104还能从升级数据包中获取每个分区的镜像,然后把镜像数据写入到对应的分区中,以完成嵌入式系统的升级功能。
39.下面参考图3-图4描述根据本发明实施例的控制嵌入式系统软件升级的方法。
40.在本发明的实施例中,嵌入式系统包括嵌入式存储介质,嵌入式存储介质至少设置有启动装载分区和缓存分区。
41.具体而言,嵌入式存储介质中包括有用户数据区域,在用户数据区域中设置启动装载分区和缓存分区,用于存储启动装载数据和系统内核数据。在嵌入式设备上电后,先加载启动装载分区运行,然后再加载缓存分区中系统内核数据运行,以实现本发明实施例的嵌入式系统软件升级前的校验方法。
42.图3是本发明一个实施例的控制嵌入式系统软件升级的方法的流程图,如图3所示,本发明实施例的方法至少包括步骤s1-s6,具体如下。
43.s1,获取升级数据包,其中,升级数据包至少包括启动装载数据和系统内核数据。
44.在本发明的实施例找中,通过更新升级数据包中的数据从而实现升级嵌入式系统。其中,升级数据包中的数据存储至嵌入式存储介质中。例如,启动装载数据存储于启动装载分区,系统内核数据存储于缓存分区。
45.s2,将启动装载数据写入嵌入式存储介质的启动装载分区,以及,将系统内核数据缓存至嵌入式存储介质的缓存分区。
46.在本发明的实施例中,启动装载分区在嵌入式存储介质的缓存分区之前运行,先将启动装载数据存储至嵌入式存储介质的启动装载分区,可以初始化硬件设备和建立系统内存空间映射图,从而将嵌入式系统的软件和硬件环境调整到一个合适状态,以便为之后缓存系统内核数据以及校验启动装载数据和系统内核数据准备好正确的环境。
47.s3,控制嵌入式系统重启,运行启动装载分区中的启动装载数据和缓存分区的系统内核数据以进行启动校验。
48.在本发明的实施例中,控制嵌入式系统重启,在嵌入式系统软件全面升级开始前,先对启动装载和系统内核进行模拟启动,而暂不更新外其它存储分区,将系统内核数据临时存放在启动装载分区中的缓存分区中,可以在对启动装载数据校验过程中,还能对系统内核数据进行校验。
49.s4,获取启动校验值。
50.在本发明的实施例中,启动校验值包括启动装载索引值和状态参数,通过检测启动校验值可以判断启动装载数据和系统内核数据的校验结果。
51.s5,根据启动校验值确定启动装载数据和系统内核数据均校验成功。
52.在本发明的实施例中,先对启动装载数据进行校验,确定启动装载数据校验成功后,再对系统内核数据进行校验。例如,可以根据启动装载索引值确定启动装载数据校验成功,根据状态参数确定系统内额数据校验成功。
53.s6,根据升级数据包升级嵌入式存储介质中除了启动装载分区以外其它存储区域。
54.在实施例中,其它存储分区可以包括内核分区、数据恢复分区、根文件系统分区和数据分区等。在确定启动装载数据和系统内核数据均校验成功后,再对嵌入式存储介质中的其它存储分区进行升级,提高了升级的安全性,能防止由于启动装载数据或系统内核数
据错误,导致嵌入式系统升级后出现无法正常使用的现象。
55.根据本发明实施例的控制嵌入式系统软件升级的方法,将启动装载数据写入嵌入式存储介质的启动装载分区,以及,将系统内核数据缓存至嵌入式存储介质的缓存分区,控制嵌入式系统重启,在嵌入式系统软件全面升级开始前,先对启动装载和系统内核进行模拟启动,并且确定启动装载数据以及系统内核数据均校验成功后,再根据升级数据包升级嵌入式存储介质中除了启动装载分区以外其它存储区域,即对系统进行完整升级,保证启动装载分区或系统内核的升级数据的正常,避免出现更新了异常的启动装载数据和系统内核数据而使得设备变砖,避免系统变砖而无法正常启动,提高了升级的安全性和可靠性。
56.在本发明的实施例中,获取启动校验值,包括获取运行启动装载分区中的启动装载数据后生成的启动装载索引值,以及,获取运行缓存分区的系统内核数据后生成的状态参数。
57.在本发明的实施例中,启动校验值包括启动装载索引值和状态参数,通过检测启动校验值可以判断启动装载数据和系统内核数据的校验结果。其中,根据启动装载索引值判断对启动装载数据的校验结果,根据状态参数判断系统内核数据的校验结果。
58.举例而言,可以设置启动装载索引值包括第一索引值和第二索引值,当检测到启动装载索引值为第一索引值时,确定启动装载数据校验成功,当检测到启动装载索引值为第二索引值时,确定启动装载校验失败。还可以根据状态参数确定系统内核数据的启动进程,进而确定系统内核数据是否校验成功。
59.在本发明的实施例中,启动装载索引值为第一索引值,确定启动装载数据校验成功。根据状态参数确定在加载系统内核数据启动后启动到初始化进程,确定系统内核数据校验成功。
60.在本发明的实施例中,可以设置第一索引值为“0”,例如,当检测到启动装载索引值为“0”时,则确定启动装载校验成功,否则校验失败。再例如,可以设置状态参数为初始化状态参数和其它状态参数,初始化状态参数表示加载系统内核数据启动到初始化进程,从而确定系统内核数据校验成功,其它状态参数表示加载系统内核数据未启动到初始化进程,确定系统内核数据校验失败。其中其它状态参数可以包括升级状态、校验状态和更新状态等。
61.具体而言,检测到启动装载索引值为“0”时,则确定启动装载校验成功,将嵌入式系统状态设置为校验失败状态。再加载缓存区系统内核启动,检测到状态参数为初始化状态参数,则确定在加载系统内核数据启动后启动到初始化进程,进而确定系统内核数据校验成功,将嵌入式系统状态设置为校验成功状态。
62.在本发明的实施例中,启动装载索引值为第二索引值,确定启动装载数据校验失败。
63.在本发明的实施例中,可以设置第二索引值为为“1”或者“2”,也就是说,当检测到启动装载索引值为非“0”时,则确定启动装载校验失败,将嵌入式系统状态设置为校验失败状态,还可以发送数据异常的通知信息给恢复分区进行报错,且不再对系统内核数据进行校验。
64.在本发明的实施例中,在确定启动装载数据校验成功后,进一步根据状态参数确定在加载系统内核数据启动后未启动到初始化进程,确定系统内核数据校验失败。
65.在本发明的实施例中,检测到启动装载索引值为“0”时,确定启动装载校验成功之后,对系统内核数据进行校验。例如检测到状态参数为其它状态参数,则表示加载系统内核数据未启动到初始化进程,进而确定系统内核数据校验失败。
66.具体而言,检测到启动装载索引值为“0”时,则确定启动装载校验成功,将嵌入式系统状态设置为校验失败状态。再加载缓存区系统内核启动,检测到状态参数为其它状态参数,则确定在加载系统内核数据启动后未启动到初始化进程,进而确定系统内核数据校验失败,保持嵌入式系统状态为校验失败状态,还可以发送数据异常的通知信息给恢复分区进行报错。
67.在本发明的实施例中,嵌入式存储介质还设置有启动备份分区。启动备份分区中存储有历史启动装载数据,在对启动装载数据校验时,先对启动装载分区中存储的启动装载数据进行校验,而不校验启动备份分区中存储的启动装载数据,确定启动装载数据和系统内核数据均校验成功后,再升级启动备份分区。
68.在本发明的实施例中,根据启动校验值确定启动装载数据和系统内核数据中任一项校验失败,获取启动备份区域存储的历史启动装载数据,根据历史启动装载数据恢复启动装载分区,并清除缓存分区的系统内核数据。
69.当检测到启动装载索引值为非“0”时,确定启动装载校验失败,则启动装载分区中的启动装载数据错误。或者当检测到状态参数为其它状态参数,确定系统内核数据校验失败,则系统内核数据错误。为避免升级失败导致原系统嵌入式系统也无法使用,需要将嵌入式系统还原到校验之前的状态。具体地,将缓存分区中存储的的系统内核数据清除,并将启动装载分区中错误的启动装载数据或者经过校验的启动装载数据,恢复为历史启动装载数据,可以利用启动备份区域存储的历史启动装载数据对启动装载分区中的启动装载数据进行覆盖,以将嵌入式系统还原至校验之前的状态。
70.在本发明的实施例中,在根据启动校验值确定启动装载数据和系统内核数据中任一项校验失败之后,提示升级数据包异常,退出升级程序。
71.在本发明的实施例中,当检测到启动装载索引值为非“0”时,确定启动装载校验失败,则启动装载分区中的启动装载数据错误。或者当检测到状态参数为其它状态参数,确定系统内核数据校验失败,则系统内核数据错误。如果升级了异常启动装载数据或系统内核数据,会导致嵌入式设备将变砖,无法启动。所以确定启动装载数据和系统内核数据中任一项校验失败,均不能对嵌入式系统进行升级,并将嵌入式系统状态设置为校验失败状态,提示升级数据包异常,退出升级程序。例如,可以在确定启动装载数异常或者系统内核数据异常后,发送数据异常的通知信息给恢复分区进行报错,嵌入式系统退出升级程序。
72.在本发明的实施例中,在获取升级数据包之前,需检测嵌入式系统的启动模式,以确定嵌入式系统是否需要升级,如图4所示,为根据本发明一个实施例的检测嵌入式系统软件的启动模式的流程图,包括步骤2301-s204,具体入如下。
73.s201,获取启动模式。
74.在本发明的实施例中,在获取升级数据包之前,先获取嵌入式系统的启动模式,以确定嵌入式系统是否需要升级。
75.s202,确定启动模式为升级模式。
76.在本发明的实施例中,确定启动模式为升级模式,则表示需要对嵌入式系统进行
升级,需对应启动升级系统。
77.s203,加载升级程序,启动升级系统。
78.在本发明的实施例中,确定嵌入式系统需要升级后,启动升级系统,实现上面任一项实施例的控制嵌入式系统软件升级的方法。
79.s204,确定启动模式为非升级模式。
80.在本发明的实施例中,确定启动模式为非升级模式,则表示无需对嵌入式系统进行升级。
81.s205,加载系统内核数据,启动用户系统。
82.在本发明的实施例中,确定嵌入式系统不需要升级后,则在嵌入式系统启动后,加载系统内核数据,启动用户系统,以供用户使用。
83.在本发明在的实施例中,通过在获取升级数据包之前,检测嵌入式系统的启动模式,能确定嵌入式系统是否需要升级,并对应启动相应的系统,以完成启动升级系统或者启动用户系统。在确定嵌入式系统需要升级时,通过运行升级模式,以实现上面任一项实施例的控制嵌入式系统软件升级的方法。
84.在本发明的实施例中,如图1所示,嵌入式存储介质10至少包括用户数据区域100和启动备份区域200,用户数据区域100包括启动装载分区101和缓存分区102,其中,启动装载分区101和启动备份区域200均用于存储启动装载数据。
85.本发明实施例的嵌入式存储介质10,其中缓存分区102中存储有系统内核数据,用户数据区域100和启动备份区域200中均存储有启动装载数据。嵌入式存储介质10还存储有主程序,主程序运行,能对嵌入式存储介质10中的启动装载数据和系统内核数据进行校验,还能在校验成功后对嵌入式存储介质中的其它存储区域进行升级,以实现上面任一项实施例的嵌入式系统软件升级的方法。
86.图5是本发明一个实施例的电子设备的框图。
87.如图5所示,本发明的实施例的电子设备01,包括上面是实施例的嵌入式存储介质10和处理器20。其中,处理器20用于执行上面任一项实施例的控制嵌入式系统软件升级的方法。其中,电子设备01可以包括机顶盒、电视以及手机等。
88.根据本发明实施例的电子设备01,包括上面实施例的嵌入式存储介质10,通过运行嵌入式存储介质10中存储的主程序,可以将启动装载数据进行整合分析,并发出指令由处理器210执行,在系统升级开始前,对启动装载数据和系统内核数据进行启动校验,并确定启动装载和系统内核均升级成功,再对系统进行完整升级,提高了升级的安全性和可靠性。
89.根据本发明实施例的电子设备的其他构成以及操作对于本领域普通技术人员而言都是已知的,这里不再详细描述。
90.术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本技术的描述中,除非另有说明,“多个”的含义是两个或两个以上。
91.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结
构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。
92.尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1