一种Boot软件自动升级控制方法和装置的制作方法

文档序号:6357909阅读:179来源:国知局
专利名称:一种Boot软件自动升级控制方法和装置的制作方法
技术领域
本发明涉及软件升级技术领域,特别是一种Boot软件自动升级控制方法和装置。
背景技术
大型嵌入式设备软件系统一般都由Boot软件和主机软件组成,Boot软件一般烧制在单板的Bootrom芯片里,主机软件放在单板的存储介质上,如flash或CF卡等,系统启动后,由Boot软件引导运行,初始化CPU、内存、串口、存储介质、文件系统等相关器件,然后加载引导主机软件,由主机软件运行完成设备的业务处理。Boot软件一般在设备出厂时烧制在单板Bootrom芯片中,跟随单板发货。由于业务扩展和修改缺陷的需要,Boot软件和主机软件都存在软件版本升级的需求。主机软件升级只需要将新的版本替换存储介质上原有版本,重新启动使用新版本即完成了升级。 Boot软件升级过程中需要将新版本Boot软件烧制到Bootrom芯片中,然后重新启动。烧制Bootom软件若出现断电等异常操作,会使升级失败设备返回原厂恢复。一方面Boot软件完成比较基本的功能,需求稳定,升级频率较主机软件低很多,另一方面也有需求实现、 缺陷修改、优化性能等需要升级Boot软件情况。在现有实现中,有通过单独升级Boot软件来解决上述问题的。当Boot软件存在升级需求时,厂商单独发布Boot软件包,通知用户下载该版本的Boot软件包,使用设备命令行或图形界面升级Boot软件,即将BOOT软件在线烧制到Bootrom芯片,然后重启设备即会使用新的Boot软件。但是由于很多用户不具备专业知识,一般都清楚使用的主机软件版本的升级,但不了解不关心Boot的升级通知和过程。而一些Boot的升级需要配套升级主机软件,需要花费较多时间解释说明。因此,随着大量用户使用,通知到用户升级新的Boot软件版本往往成为一个艰巨的任务,因此经常出现Boot软件缺陷问题能不改则不改,而实现Boot软件相关新需求也变成一个不可能的任务。针对上述单独升级Boot软件的缺陷,现有实现中,又提出一种跟随主机软件包升级Boot软件的方法。用户购买使用设备会关注主机软件升级通知,如网站通知或点到点通知,他们能够单独完成主机软件的升级,考虑将新发布Boot软件和主机软件一起打包,以主机软件版本号发布给用户。在系统重启Boot软件引导过程发现使用的Boot软件版本与主机软件包中的Boot版本号不同,则使用软件包Boot软件自动完成Boot软件的升级过程。但是,主机软件发布比较频繁,而Boot软件发布频率低,有些Boot软件的修改不一定要升级对应的Boot软件,如有些新增需求或优化导致的Boot软件新版本,原有的Boot 软件实际上可以继续使用,但主机软件打包时都选择最新发布的Boot软件配套打包,升级该版本主机软件时Boot软件也跟随自动升级,这样意味着大量使用中的设备会自动升级 Boot软件,升级Boot是烧制Bootrom芯片实现的,这种升级会引入不必要的风险。另一方面,嵌入式设备中的个别器件供应不上时,比如厂家停产,需要更换为其他厂商类似芯片,这些芯片的替换往往需要修改Boot软件中以识别、初始化新的芯片。用户原有的设备中插入使用新的芯片单板时,如分布式设备单板故障更换或扩容,新单板启动过程中自动比较运行的Boot软件版本与主机软件包中的Boot软件版本不同,出厂时烧制的新Boot版本被降级到原设备版本大包文件中老Boot版本,老的Boot版本不能初始化新单板上器件导致不能启动,此问题只能通过升级设备上主机软件解决。这种升级需要中断设备全部单板的业务,同时需要提前识别新的主机软件功能差异并对原有的业务配置进行更改,对于大型核心设备如高端路由器、核心路由器等,用户往往不能接受这种扩容或更换个别板卡引起软件升级导致业务中断和可能的升级风险。综上所述,现有实现中,还未能提出一种简便、灵活的Boot软件升级控制方法。

发明内容
有鉴于此,本发明主要目的是提供一种Boot软件自动升级控制方法,能够简便、 灵活地控制Boot软件升级。所述Boot软件携带于发布的主机软件包中,所述Boot软件包含Boot软件版本号,该方法包括所述Boot软件还包含Boot软件升级控制字段,所述升级控制字段根据该次Boot软件发布原因设置;板卡上Boot软件重启初始化阶段,获取所述升级控制字段,判断所述升级控制字段的内容,当所述升级控制字段的内容为Boot软件升级版本号时,获取板卡上Boot软件的版本号,确定所述板卡上Boot软件的版本号是否低于所述Boot软件升级版本号,如果是, 用所述主机软件包中的Boot软件升级,用升级后的Boot软件启动;否则,用板卡上的Boot 软件启动。其中,所述判断升级控制字段的内容,当所述升级控制字段的内容为比较升级指示时,该方法进一步包括获取板卡上Boot软件的版本号和主机软件包中Boot软件的版本号,确定所述主机软件包中Boot软件的版本号是否高于所述板卡上Boot软件的版本号;如果是,用所述主机软件包中的Boot软件升级后,用升级后的Boot软件启动;否则,用板卡上的Boot软件启动。所述判断升级控制字段的内容,当所述升级控制字段的内容为强制升级指示时, 进一步包括用所述主机软件包中的Boot软件升级,用升级后的Boot软件启动。所述Boot软件还包含升级启动控制字段,所述升级启动字段根据该次发布的 Boot软件在启动过程中需执行的操作设置;所述用升级后的Boot软件启动的方法进一步包括获取所述升级启动控制字段,根据获取的所述升级启动控制字段执行如下操作内存初始化指示对CPU内存全部初始化或局部初始化;内存自检指示不自检、五步法自检或九步法自检;芯片自检指示分别指示是否对各芯片进行自检。本发明的另一个主要目的是提供一种Boot软件自动升级控制装置,该装置包括 存储模块、获取模块、判断模块、确定模块、升级启动模块和启动模块;所述存储模块,用于存储携带Boot软件的主机软件包,所述Boot软件包含Boot 软件版本号和Boot软件升级控制字段,所述升级控制字段根据该次Boot软件发布原因设置;所述获取模块,与所述存储模块和所述判断模块相连,在板卡上Boot软件重启初始化时,用于从所述存储模块获取所述升级控制字段,并将该升级控制字段发送给所述判断模块;所述判断模块与所述确定模块相连,收到所述获取模块发来的升级控制字段,判断该升级控制字段的内容为Boot软件升级版本号,将该判断结果发送给所述确定模块;所述确定模块,与所述升级启动模块和所述启动模块相连,用于接收所述判断模块发来的判断结果,根据判断结果获取板卡上的Boot软件版本号,判断板卡上的Boot软件版本号是否低于所述Boot软件升级版本号,如果是,发送升级消息给所述升级启动模块, 否则,发送启动消息给所述启动模块;所述升级启动模块,收到所述判断模块发来的升级消息,用主机软件包中的Boot 软件升级,用升级后的Boot软件启动;所述启动模块,收到所述判断模块发来的启动消息,用板卡上的Boot软件启动。其中,该装置进一步包括比较模块;所述判断模块进一步用于判断该升级控制字段的内容为比较升级指示时,将该判断结果发送给所述比较模块;所述比较模块,与所述升级启动模块和所述启动模块相连,用于接收所述判断模块发来的判断结果,根据判断结果获取板卡上Boot软件的版本号和从所述存储模块获取 Boot软件的版本号,确定从所述存储模块获取Boot软件的版本号是否高于所述板卡上 Boot软件的版本号;如果是,发送升级消息给所述升级启动模块;否则,发送启动消息给所述启动模块;所述升级启动模块进一步用于收到所述比较模块发来的升级消息,用主机软件包中的Boot软件升级,用升级后的Boot软件启动;所述启动模块进一步用于收到所述比较模块发来的启动消息,用板卡上的Boot 软件启动。所述判断模块进一步用于判断该升级控制字段的内容为强制升级指示时,发送升级消息给所述升级启动模块;所述升级启动模块,进一步用于接收所述判断模块发来的升级消息,用主机软件包中的Boot软件升级,用升级后的Boot软件启动。该装置进一步包括启动控制模块;所述存储模块存储的主机软件包携带的Boot软件进一步包含升级启动控制字段,所述升级启动控制字段根据该次发布的Boot软件在启动过程中需执行的操作设置;所述启动控制模块,与所述升级启动模块相连,用于在所述升级启动模块用所述升级后的Boot软件启动时,从所述存储模块获取升级启动控制字段,并根据所述升级启动控制字段执行如下操作内存初始化指示对CPU内存全部初始化或局部初始化;内存自检指示不自检、五步法自检或九步法自检;芯片自检指示分别指示是否对各芯片进行自检。由上可见,本发明通过在Boot软件中增加一个版本升级控制字段,当该升级控制字段内容为Boot软件升级版本号时,表明该软件需要运行的最低版本号为Boot软件升级版本号,板卡上运行的Boot软件版本低于该Boot软件升级版本时,要用主机软件包中的 Boot软件升级,否则继续使用板卡上的Boot软件。能够简便、灵活地控制Boot软件是否升级。


图1为本发明Boot软件升级控制流程图;图2为本发明具体实施例中Boot软件是否升级流程示意图;图3为Boot软件自动升级控制装置结构图。
具体实施例方式为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。本发明的基本思想为板卡上Boot软件重启初始化阶段,获取升级控制字段,判断该升级控制字段的内容为Boot软件升级版本号时,获取板卡上Boot软件的版本号,确定所述板卡上Boot软件的版本号是否低于所述Boot软件升级版本号,如果是,用所述主机软件包中的Boot软件升级并启动,退出本流程;否则,用板卡上的Boot软件启动。Boot软件携带在主机软件包中,同主机软件包一起发布。在该Boot软件中除了包含该次Boot软件的版本号之外,还包含了升级控制字段。升级控制字段根据该次Boot软件的发布原因设置的,其中,发布原因为版本修改缺陷影响、优化功能和性能的影响。参见图1,图1为本发明Boot软件升级控制流程图。其具体步骤为步骤101,板卡上Boot软件重启初始化阶段,获取所述升级控制字段,判断所述升级控制字段的内容。步骤102,当所述升级控制字段的内容为Boot软件升级版本号时,获取板卡上 Boot软件的版本号。步骤103,确定所述板卡上Boot软件的版本号是否低于所述Boot软件升级版本号,如果是,执行步骤103,;否则执行步骤104。步骤104,用所述主机软件包中的Boot软件升级,用升级后的Boot软件启动,结束本流程。步骤105,用板卡上的Boot软件启动。下面结合具体实现流程来详细说明本发明提出的Boot软件自动升级控制方法。首先详细说明升级控制字段的设置。在本发明中,升级控制字段的内容具体为 Boot软件升级版本号、比较升级指示和强制升级指示。当本次发布的Boot软件版本和该次发布的主机软件版本不存在兼容性关系,此时要求Boot软件的版本越新越好,因此如果板卡上的软件版本较新时,使用板卡上的软件版本;否则使用主机软件包中的Boot软件升级。在这种情况下升级控制字段内容设置为比较升级指示。当本次发布的Boot软件需要与该次发布的主机软件版本配套使用时,将升级控制字段内容设置为强制升级指示。无论板卡上的Boot软件版本高低,都要升级或降级到软件包中Boot软件的版本,以和该次发布的主机软件配套。将升级控制字段设置为Boot软件升级版本号时,Boot软件升级版本号的具体内容填写详见如下所述。参见表1,表1为系列Boot软件版本发布情况。如表1中第2行所示,R3300为升级软件包主机软件版本号,Boot软件版本号为 101,该次Boot软件发布原因为首次发布,因此使用版本在101及以上版本的Boot软件不必升级,其它情况升级到101版本,因此此时增加的Boot软件升级版本号为101。如表1中第3行所示,R3303为升级软件包主机软件版本号,Boot软件版本号为 103,该次Boot软件发布原因为修改**缺陷,必须升级,因此使用版本在103及以上版本的 Boot软件不必升级,其它情况升级到103版本,因此此时增加的升级策略字段Boot软件升级版本号为103。
权利要求
1.一种Boot软件自动升级控制方法,所述Boot软件携带于发布的主机软件包中,所述 Boot软件包含Boot软件版本号,其特征在于,所述Boot软件还包含Boot软件升级控制字段,所述升级控制字段根据该次Boot软件发布原因设置;板卡上Boot软件重启初始化阶段,获取所述升级控制字段,判断所述升级控制字段的内容,当所述升级控制字段的内容为Boot软件升级版本号时,获取板卡上Boot软件的版本号,确定所述板卡上Boot软件的版本号是否低于所述Boot软件升级版本号,如果是,用所述主机软件包中的Boot软件升级,用升级后的Boot软件启动;否则,用板卡上的Boot软件启动。
2.如权利要求1所述的方法,其特征在于,所述判断升级控制字段的内容,当所述升级控制字段的内容为比较升级指示时,该方法进一步包括获取板卡上Boot软件的版本号和主机软件包中Boot软件的版本号,确定所述主机软件包中Boot软件的版本号是否高于所述板卡上Boot软件的版本号;如果是,用所述主机软件包中的Boot软件升级后,用升级后的Boot软件启动;否则,用板卡上的Boot软件启动。
3.如权利要求1所述的方法,其特征在于,所述判断升级控制字段的内容,当所述升级控制字段的内容为强制升级指示时,进一步包括用所述主机软件包中的Boot软件升级, 用升级后的Boot软件启动。
4.如权利要求1至3任意一项所述的方法,其特征在于,所述Boot软件还包含升级启动控制字段,所述升级启动字段根据该次发布的Boot软件在启动过程中需执行的操作设置;所述用升级后的Boot软件启动的方法进一步包括获取所述升级启动控制字段,根据获取的所述升级启动控制字段执行如下操作内存初始化指示对CPU内存全部初始化或局部初始化;内存自检指示不自检、五步法自检或九步法自检;芯片自检指示分别指示是否对各芯片进行自检。
5.一种Boot软件自动升级控制装置,其特征在于,该装置包括存储模块、获取模块、 判断模块、确定模块、升级启动模块和启动模块;所述存储模块,用于存储携带Boot软件的主机软件包,所述Boot软件包含Boot软件版本号和Boot软件升级控制字段,所述升级控制字段根据该次Boot软件发布原因设置;所述获取模块,与所述存储模块和所述判断模块相连,在板卡上Boot软件重启初始化时,用于从所述存储模块获取所述升级控制字段,并将该升级控制字段发送给所述判断模块;所述判断模块与所述确定模块相连,收到所述获取模块发来的升级控制字段,判断该升级控制字段的内容为Boot软件升级版本号,将该判断结果发送给所述确定模块;所述确定模块,与所述升级启动模块和所述启动模块相连,用于接收所述判断模块发来的判断结果,根据判断结果获取板卡上的Boot软件版本号,判断板卡上的Boot软件版本号是否低于所述Boot软件升级版本号,如果是,发送升级消息给所述升级启动模块,否则, 发送启动消息给所述启动模块;所述升级启动模块,收到所述确定模块发来的升级消息,用主机软件包中的Boot软件升级,用升级后的Boot软件启动;所述启动模块,收到所述确定模块发来的启动消息,用板卡上的Boot软件启动。
6.如权利要求5所述的装置,其特征在于,该装置进一步包括比较模块;所述判断模块进一步用于判断该升级控制字段的内容为比较升级指示时,将该判断结果发送给所述比较模块;所述比较模块,与所述升级启动模块和所述启动模块相连,用于接收所述判断模块发来的判断结果,根据判断结果获取板卡上Boot软件的版本号和从所述存储模块获取Boot 软件的版本号,确定从所述存储模块获取Boot软件的版本号是否高于所述板卡上Boot软件的版本号;如果是,发送升级消息给所述升级启动模块;否则,发送启动消息给所述启动模块;所述升级启动模块进一步用于收到所述比较模块发来的升级消息,用主机软件包中的 Boot软件升级,用升级后的Boot软件启动;所述启动模块进一步用于收到所述比较模块发来的启动消息,用板卡上的Boot软件启动。
7.如权利要求5所述的装置,其特征在于,所述判断模块进一步用于判断该升级控制字段的内容为强制升级指示时,发送升级消息给所述升级启动模块;所述升级启动模块,进一步用于接收所述判断模块发来的升级消息,用主机软件包中的Boot软件升级,用升级后的Boot软件启动。
8.如权利要求5至7任意一项所述的装置,其特征在于,该装置进一步包括启动控制模块;所述存储模块存储的主机软件包携带的Boot软件进一步包含升级启动控制字段,所述升级启动控制字段根据该次发布的Boot软件在启动过程中需执行的操作设置;所述启动控制模块,与所述升级启动模块相连,用于在所述升级启动模块用所述升级后的Boot软件启动时,从所述存储模块获取升级启动控制字段,并根据所述升级启动控制字段执行如下操作内存初始化指示对CPU内存全部初始化或局部初始化;内存自检指示不自检、五步法自检或九步法自检;芯片自检指示分别指示是否对各芯片进行自检。
全文摘要
本发明提供了一种Boot软件自动升级控制方法,该方法包括板卡上Boot软件重启初始化阶段,获取升级控制字段,当判断该升级控制字段的内容为Boot软件升级版本号时,获取板卡上Boot软件的版本号,确定所述板卡上Boot软件的版本号是否低于所述Boot软件升级版本号,如果是,用主机软件包中的Boot软件升级,用升级后的Boot软件启动;否则,用板卡上的Boot软件启动。本发明基于与方法同样的发明构思,还提出了一种Boot软件自动升级控制装置,能够简便、灵活地控制Boot软件升级。
文档编号G06F9/445GK102184109SQ20111009084
公开日2011年9月14日 申请日期2011年4月12日 优先权日2011年4月12日
发明者方海林 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1