著录项信息
专利名称 | 嵌入式系统的升级方法和装置 |
申请号 | CN201410384588.5 | 申请日期 | 2014-08-06 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2014-11-05 | 公开/公告号 | CN104133709A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F9/445 | IPC分类号 | G;0;6;F;9;/;4;4;5查看分类表>
|
申请人 | 曙光信息产业(北京)有限公司 | 申请人地址 | 北京市海淀区东北旺西路8号院36号楼
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 中科曙光国际信息产业有限公司 | 当前权利人 | 中科曙光国际信息产业有限公司 |
发明人 | 孙浩 |
代理机构 | 北京德恒律治知识产权代理有限公司 | 代理人 | 章社杲;孙征 |
摘要
本发明公开了一种嵌入式系统的升级方法和装置,该嵌入式系统的升级方法包括:读取存储设备中镜像的镜像头信息,根据读取的镜像头信息确定镜像的系统启动分区号;根据系统启动分区号确定待升级的分区;读取待升级的分区的分区信息,根据待升级的分区所对应的分区镜像的版本号与外设中预先存储的升级镜像的版本号,确定是否对存储设备中的分区镜像进行升级;在确定结果为是的情况下,将升级镜像同步到待升级的分区中的指定位置。本发明通过读取存储设备中镜像的镜像头信息来确定系统启动时所使用的分区以及升级需要的分区,升级过程不影响系统正常运行,升级过程无需用户手动参与,稳定性高,增强了用户体验。
1.一种嵌入式系统的升级方法,其特征在于,包括:
读取存储设备中镜像的镜像头信息,根据读取的所述镜像头信息确定所述镜像的系统启动分区号;
根据所述系统启动分区号确定待升级的分区;
读取所述待升级的分区的分区信息,根据所述待升级的分区所对应的分区镜像的版本号与外设中预先存储的升级镜像的版本号,确定是否对所述存储设备中的所述分区镜像进行升级;
在确定结果为是的情况下,将所述升级镜像同步到所述待升级的分区中的指定位置;
其中,在将所述升级镜像同步到所述待升级的分区中的指定位置后,根据同步后的镜像对升级后的分区所对应的分区信息进行更新;
将镜像头信息中的系统启动分区号更新为此次被升级的分区的分区号。
2.根据权利要求1所述的升级方法,其特征在于,在确定是否对所述存储设备中的所述分区镜像进行升级时,在外设中预先存储的所述升级镜像的版本号大于所述待升级的分区镜像所对应的镜像版本号的情况下,确定需要对所述存储设备中的所述分区镜像进行升级。
3.根据权利要求1所述的升级方法,其特征在于,需要更新的所述分区信息包括以下至少之一:
更新分区版本号、更新分区验证码、更新分区镜像的大小。
4.根据权利要求3所述的升级方法,其特征在于,在对分区信息进行更新后,重新启动所述存储设备,其中,重新启动的步骤包括:
读取升级完成后的镜像的镜像头信息,获取更新后的系统启动分区号,并读取所述系统启动分区号所对应分区的分区信息,根据该分区信息中的分区验证码对该分区的镜像进行校验;
当校验异常的情况下,重置本次升级完成后的所述镜像的镜像头信息,将系统启动分区号更新为原启动分区所对应的分区号,并通过原启动分区启动所述存储设备。
5.一种嵌入式系统的升级装置,其特征在于,包括:
读取模块,用于读取存储设备中镜像的镜像头信息,还用于读取待升级的分区的分区信息;
第一确定模块,用于根据读取的所述镜像头信息确定所述镜像的系统启动分区号,并根据所述系统启动分区号确定待升级的分区;
第二确定模块,用于根据所述待升级的分区所对应的分区镜像的版本号与外设中预先存储的升级镜像的版本号,确定是否对所述存储设备中的所述镜像进行升级;
升级模块,用于在确定结果为是的情况下,将所述升级镜像同步到所述待升级的分区中的指定位置;
更新模块,用于在将所述升级镜像同步到所述待升级的分区中的指定位置后,根据同步后的镜像对升级后的分区所对应的分区信息进行更新;
将镜像头信息中的系统启动分区号更新为此次被升级的分区的分区号。
6.根据权利要求5所述的升级装置,其特征在于,所述更新模块更新的信息,包括以下至少之一:
更新分区版本号、更新分区验证码、更新分区镜像的大小。
7.根据权利要求6所述的升级装置,其特征在于,进一步包括:
设备启动模块,用于在对分区信息进行更新后,重新启动所述存储设备,其中读取模块进一步用于在重新启动过程中,读取升级完成后的镜像的镜像头信息,获取更新后的系统启动分区号,并读取所述系统启动分区号所对应分区的分区信息;
验证模块,用于根据所述系统启动分区号所对应分区的分区验证码对该分区的镜像进行校验。
8.根据权利要求7所述的升级装置,其特征在于,包括:
重置模块,用于当校验异常的情况下,重置本次升级完成后的所述镜像的镜像头信息,将系统启动分区号更新为原启动分区所对应的分区号,并通过原启动分区启动所述存储设备。
嵌入式系统的升级方法和装置\n技术领域\n[0001] 本发明涉及嵌入式领域具体来说,涉及一种嵌入式系统的升级方法和装置。\n背景技术\n[0002] 随着IT技术的飞速发展,无论嵌入式系统的手持设备还是服务器等,用户对设备功能的需求不断增加,这就需要设备制造商不断对设备的系统进行升级与维护。\n[0003] 在现有技术的升级方法中,对于嵌入式系统的升级普遍需要通过RS232或者网络等其他的外设连接到设备的控制终端上,然后进入相应的升级界面,运行升级程序,整个过程几乎都需要用户手动参与,并且系统在升级的过程中,用户需要终止当前运行的程序,大大的影响了用户体验,而且升级人员需要具备一定的专业知识。\n[0004] 针对相关技术中嵌入式设备升级需要人工手动参与且升级人员需要具备一定专业知识,升级过程影响当前的操作的问题,目前尚未提出有效的解决方案。\n发明内容\n[0005] 针对相关技术中的问题,本发明提出一种嵌入式系统的升级方法,解决了现有技术中,升级过程需要人工手动参与且升级人员需要具备一定专业知识,升级过程影响当前操作的问题。\n[0006] 本发明的技术方案是这样实现的:\n[0007] 根据本发明的一个方面,提供了一种嵌入式系统的升级方法,该方法包括:\n[0008] 读取存储设备中镜像的镜像头信息,根据读取的镜像头信息确定镜像的系统启动分区号;\n[0009] 根据系统启动分区号确定待升级的分区;\n[0010] 读取待升级的分区的分区信息,根据待升级的分区所对应的分区镜像的版本号与外设中预先存储的升级镜像的版本号,确定是否对存储设备中的分区镜像进行升级;\n[0011] 在确定结果为是的情况下,将升级镜像同步到待升级的分区中的指定位置。\n[0012] 其中,在确定是否对存储设备中的分区镜像进行升级时,可以在外设中预先存储的升级镜像的版本号大于待升级的分区镜像所对应的镜像版本号的情况下,确定需要对存储设备中的分区镜像进行升级。\n[0013] 此外,在将升级镜像同步到待升级的分区中的指定位置后,还可以根据同步后的镜像对升级后的分区所对应的分区信息进行更新;\n[0014] 将镜像头信息中的系统启动分区号更新为此次被升级的分区的分区号。\n[0015] 其中,需要更新的分区信息包括以下至少之一:\n[0016] 更新分区版本号、更新分区验证码、更新分区镜像的大小。\n[0017] 此外,在对分区信息进行更新后,重新启动存储设备,其中,重新启动的步骤包括:\n[0018] 读取升级完成后的镜像的镜像头信息,获取更新后的系统启动分区号,并读取系统启动分区号所对应分区的分区信息,根据该分区信息中的分区验证码对该分区的镜像进行校验;\n[0019] 当校验异常的情况下,重置本次升级完成后的镜像的镜像头信息,将系统启动分区号更新为原启动分区所对应的分区号,并通过原启动分区启动存储设备。\n[0020] 根据本发明的另一方面,提供了一种嵌入式系统的升级装置,该装置包括:\n[0021] 读取模块,用于读取存储设备中镜像的镜像头信息,还用于读取待升级的分区的分区信息;\n[0022] 第一确定模块,用于根据读取的镜像头信息确定镜像的系统启动分区号,并根据系统启动分区号确定待升级的分区;\n[0023] 第二确定模块,用于根据待升级的分区所对应的分区镜像的版本号与外设中预先存储的升级镜像的版本号,确定是否对存储设备中的镜像进行升级;\n[0024] 升级模块,用于在确定结果为是的情况下,将升级镜像同步到待升级的分区中的指定位置。\n[0025] 其中,该装置进一步包括:\n[0026] 更新模块,用于在将升级镜像同步到待升级的分区中的指定位置后,根据同步后的镜像对升级后的分区所对应的分区信息进行更新;\n[0027] 将镜像头信息中的系统启动分区号更新为此次被升级的分区的分区号。\n[0028] 其中,更新模块更新的信息,包括以下至少之一:\n[0029] 更新分区版本号、更新分区验证码、更新分区镜像的大小。\n[0030] 其中,该装置进一步包括:\n[0031] 设备启动模块,用于在对分区信息进行更新后,重新启动存储设备,其中读取模块进一步用于在重新启动过程中,读取升级完成后的镜像的镜像头信息,获取更新后的系统启动分区号,并读取系统启动分区号所对应分区的分区信息;\n[0032] 验证模块,用于根据系统启动分区号所对应分区的分区验证码对该分区的镜像进行校验。\n[0033] 其中,该装置进一步包括:\n[0034] 重置模块,用于当校验异常的情况下,重置本次升级完成后的镜像的镜像头信息,将系统启动分区号更新为原启动分区所对应的分区号,并通过原启动分区启动存储设备。\n[0035] 本发明通过读取存储设备中镜像的镜像头信息来确定系统启动时所需要使用的分区以及需要升级的分区,分区之间互不影响,升级过程不影响系统正常运行情况,并且升级过程无需用户手动参与简单方便,增强了用户体验,提高了系统的稳定性及可靠性。\n附图说明\n[0036] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。\n[0037] 图1是本发明实施例中镜像头的信息结构示意图;\n[0038] 图2是本发明实施例中镜像头中分区的信息结构示意图;\n[0039] 图3是根据本发明实施例的通过可插拔外设对嵌入式系统进行升级的方法流程图;\n[0040] 图4是根据本发明实施例的系统启动阶段时嵌入式系统的升级方法的流程示意图;\n[0041] 图5是根据本发明实施例的系统运行阶段时嵌入式系统的升级方法的流程示意图;\n[0042] 图6是根据本发明实施例的系统升级后系统重启过程的流程示意图;\n[0043] 图7是根据本发明实施例的嵌入式系统的升级装置的框图。\n具体实施方式\n[0044] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。\n[0045] 首先需要说明的是,每种镜像都包含一个镜像头信息,图1示出了镜像头的信息结构,其包括:\n[0046] 系统启动分区号,用来标识系统启动阶段所使用的分区。比如,系统启动分区号为分区一,则系统启动时需要从分区一种读取镜像;分区二则为待升级的分区号。\n[0047] 分区的信息,用来标识该分区的基本信息。\n[0048] 如图2所示,分区的信息至少包括以下至少之一:\n[0049] 分区镜像的名称、分区版本号、分区校验码、分区镜像起始位置及分区镜像的大小。\n[0050] 根据本发明的实施例,提供了一种嵌入式系统的升级方法。\n[0051] 如图3所示,根据本发明实施例的嵌入式系统的升级方法包括:\n[0052] 步骤S301,读取存储设备中镜像的镜像头信息,根据读取的镜像头信息确定镜像的系统启动分区号;\n[0053] 步骤S303,根据系统启动分区号确定待升级的分区;\n[0054] 步骤S305,读取待升级的分区的分区信息,根据待升级的分区所对应的分区镜像的版本号与外设中预先存储的升级镜像的版本号,确定是否对存储设备中的分区镜像进行升级;\n[0055] 步骤S307,在确定结果为是的情况下,将升级镜像同步到待升级的分区中的指定位置。\n[0056] 其中,在确定是否对存储设备中的分区镜像进行升级时,可以在外设中预先存储的升级镜像的版本号大于待升级的分区镜像所对应的镜像版本号的情况下,确定需要对存储设备中的分区镜像进行升级。\n[0057] 此外,在将升级镜像同步到待升级的分区中的指定位置后,还可以根据同步后的镜像对升级后的分区所对应的分区信息进行更新;将镜像头信息中的系统启动分区号更新为此次被升级的分区的分区号。\n[0058] 这样,下次设备启动的时候将自动选择镜像为最新的版本进行启动。\n[0059] 其中,需要更新的分区信息包括以下至少之一:\n[0060] 更新分区版本号、更新分区验证码、更新分区镜像的大小。\n[0061] 另外,在对分区信息进行更新后,可以重新启动存储设备,其中,重新启动的步骤包括:\n[0062] 读取升级完成后的镜像的镜像头信息,获取更新后的系统启动分区号,并读取系统启动分区号所对应分区的分区信息,根据该分区信息中的分区验证码对该分区的镜像进行校验;\n[0063] 当校验异常的情况下,重置本次升级完成后的镜像的镜像头信息,将系统启动分区号更新为原启动分区所对应的分区号,并通过原启动分区启动存储设备。\n[0064] 这样,即使在升级过程中发生突发状况导致升级失败,在下次启动的时候也不会影响系统的正常运行,并且通过验证系统是否升级成功,在验证异常的情况下,系统采用原启动分区进行当前系统的启动,并可以继续对原需要升级的分区进行升级,并不会影响当前系统的运行状况,提高了系统的稳定性和可靠性。\n[0065] 另外,本发明所提供的嵌入式系统的升级方法既可以在系统启动阶段时进行又可以在系统运行阶段时进行,为了方便说明和理解,在下述实施例中,外设以SD卡为例进行说明,但需要说明的是,本发明中的外设不仅仅限于SD卡,还可以为其他外部存储器件。\n[0066] 图4示出了根据本发明实施例的系统启动阶段时嵌入式系统的升级方法的流程示意图,该系统升级过程如下:\n[0067] 1、检测SD卡是否插入,如果没有插入,进入正常启动流程;\n[0068] 2、如果SD卡插入,从SD卡中读取升级脚本,如果该文件不存在,则进入正常启动流程;\n[0069] 3、从升级脚本中获取镜像的版本号信息以及是否升级指令,通过升级指令可定制升级过程;\n[0070] 4、如果镜像的版本号小于设备内置镜像的版本号,则进入正常启动流程;\n[0071] 5、如果镜像的版本号大于设备内置镜像的版本号,则进入升级流程;\n[0072] 6、升级流程首先通过升级脚本中的升级指令将SD卡中的镜像读到内存中,再将内存中的镜像同步到设备内置的存储设备中,此过程通过指示灯的绿色闪烁标识;\n[0073] 7、升级成功,指示灯绿色常亮,系统自动重启,指示灯灭。\n[0074] 图5示出了根据本发明实施例的系统运行阶段时嵌入式系统的升级方法的流程示意图,该系统升级过程如下:\n[0075] 系统正常运行:\n[0076] 1、后台监听进程通过SD卡的在位信号引脚来检测SD卡是否插入,如果没有插入,则系统正常运行;\n[0077] 2、如果SD卡插入,从SD卡中读取升级脚本,如果该文件不存在,则进入正常启动流程;\n[0078] 3、从升级脚本中获取镜像的版本号信息以及升级指令,通过升级指令可定制升级过程;\n[0079] 4、如果镜像的版本号小于设备内置镜像的版本号,则退出升级流程,系统正常运行;\n[0080] 5、如果镜像的版本号大于设备内置镜像的版本号,则进入升级流程;\n[0081] 6、升级流程首先调整系统的运行等级,进入安全升级模式,然后通过升级脚本中的升级指令将SD卡中的镜像读到内存中,再将内存中的镜像同步到设备内置的存储设备中,此过程通过指示灯的绿色闪烁标识;\n[0082] 7、升级成功,指示灯绿色常亮,系统自动重启,指示灯灭。\n[0083] 下面详细介绍将SD卡中保存的升级镜像拷贝至待升级分区中的过程,其具体流程如下:\n[0084] 1、读取该镜像的镜像头信息,获取镜像头信息中的系统启动分区号,根据系统启动分区号即可得到待升级的分区号;\n[0085] 2、读取待升级的分区号所对应的分区信息,获取分区镜像的起始位置;\n[0086] 3、将镜像本身更新到指定的位置处;\n[0087] 4、更新待升级的分区号所对应的分区信息,刷新分区版本号、分区校验码、分区镜像的大小等信息;\n[0088] 5、将镜像头信息中的系统启动分区号更新为此次被升级的分区号。\n[0089] 系统升级后重启的过程如图6所示,其过程如下:\n[0090] 1、读取该镜像的镜像头信息,获取系统启动分区号;\n[0091] 2、读取系统启动分区号所对应的分区信息,获取分区镜像的起始位置以及分区镜像的大小等信息;\n[0092] 3、从指定位置处读取对应的镜像;\n[0093] 4、根据分区信息中的分区校验码对镜像进行校验;\n[0094] 5、如果校验正常,则使用最新镜像进行启动,升级过程结束;\n[0095] 6、如果校验异常,重置该镜像的镜像头信息,将系统启动分区号更新为原启动分区的分区号,并使用该分区的镜像进行启动;\n[0096] 此外,系统镜像升级后的重启流程也可以通过配置选择启动方式,默认配置是使用系统启动分区的镜像进行启动,也可以动态配置为使用任一分区进行启动。\n[0097] 根据本发明的实施例,还提供了一种嵌入式系统的升级装置。\n[0098] 如图7所示,根据本发明实施例的嵌入式系统的升级装置包括:\n[0099] 读取模块71,用于读取存储设备中镜像的镜像头信息,还用于读取待升级的分区的分区信息;\n[0100] 第一确定模块72,用于根据读取的镜像头信息确定镜像的系统启动分区号,并根据系统启动分区号确定待升级的分区;\n[0101] 第二确定模块73,用于根据待升级的分区所对应的分区镜像的版本号与外设中预先存储的升级镜像的版本号,确定是否对存储设备中的镜像进行升级;\n[0102] 升级模块74,用于在确定结果为是的情况下,将升级镜像同步到待升级的分区中的指定位置。\n[0103] 其中,该装置还包括:\n[0104] 更新模块(未示出),用于在将升级镜像同步到待升级的分区中的指定位置后,根据同步后的镜像对升级后的分区所对应的分区信息进行更新;\n[0105] 将镜像头信息中的系统启动分区号更新为此次被升级的分区的分区号。\n[0106] 其中,更新模块更新的信息,包括以下至少之一:\n[0107] 更新分区版本号、更新分区验证码、更新分区镜像的大小。\n[0108] 其中,该装置进一步包括:\n[0109] 设备启动模块(未示出),用于在对分区信息进行更新后,重新启动存储设备,其中读取模块71进一步用于在重新启动过程中,读取升级完成后的镜像的镜像头信息,获取更新后的系统启动分区号,并读取系统启动分区号所对应分区的分区信息;\n[0110] 验证模块(未示出),用于根据系统启动分区号所对应分区的分区验证码对该分区的镜像进行校验。\n[0111] 其中,该装置进一步包括:\n[0112] 重置模块(未示出),用于当校验异常的情况下,重置本次升级完成后的镜像的镜像头信息,将系统启动分区号更新为原启动分区所对应的分区号,并通过原启动分区启动存储设备。\n[0113] 综上所述,借助于本发明的上述技术方案,通过读取存储设备中镜像的镜像头信息来确定系统启动时所需要使用的分区以及升级需要的分区,分区之间互不影响,升级过程不影响系统正常运行情况,并且,当将版本最新的镜像同步到被升级的分区的位置后,对被升级的镜像进行更新,以保证下次自动重启的时候,系统将运行的是最新的镜像版本,并且在重启过程中,通过对新升级完成的镜像进行验证处理,当验证出现异常的情况下,系统将使用原先的分区镜像进行启动,从而使系统可以照常启动不会影响用户的使用,而且整个升级过程简单方便,升级过程无需用户手动参与,增强了用户体验,稳定性及可靠性大大提高。\n[0114] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
法律信息
- 2022-08-09
专利权的转移
登记生效日: 2022.07.27
专利权人由中科曙光国际信息产业有限公司变更为中科曙光国际信息产业有限公司
地址由100193 北京市海淀区东北旺西路8号院36号楼变更为266000 山东省青岛市崂山区松岭路169号软件园A区211房间
专利权人变更为曙光信息产业股份有限公司
- 2018-12-28
专利权的转移
登记生效日: 2018.12.07
专利权人由曙光信息产业(北京)有限公司变更为中科曙光国际信息产业有限公司
地址由100193 北京市海淀区东北旺西路8号院36号楼变更为100193 北京市海淀区东北旺西路8号院36号楼
- 2018-01-30
- 2014-12-10
实质审查的生效
IPC(主分类): G06F 9/445
专利申请号: 201410384588.5
申请日: 2014.08.06
- 2014-11-05
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2008-07-02
|
2006-12-28
| | |
2
| |
2013-05-08
|
2013-02-04
| | |
3
| |
2007-08-22
|
2007-04-06
| | |
4
| |
2006-08-30
|
2006-03-31
| | |
5
| |
2007-09-19
|
2007-03-16
| | |
6
| | 暂无 |
2008-09-26
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |