Boot在线升级装置及方法

文档序号:9708095阅读:1435来源:国知局
Boot在线升级装置及方法
【技术领域】
[0001]本发明涉及数据通信领域,尤其涉及一种引导(BOOT)在线升级装置及方法。
【背景技术】
[0002]数据通信产品通常采用嵌入式系统(Embedded system)架构,在整个架构中,甚至某个架构中的一块单板上,往往涉及多个嵌入式芯片(CPU、MCU等)需要编程控制,以实现更为复杂和高效的产品功能。嵌入式系统的BOOT版本(通常存放于非易失性存储设备如NOR FLASH,NAND FLASH等器件中)负责完成系统硬件初始化及引导应用程序的功能,因此BOOT版本的稳定性和BOOT版本升级的可靠性至关重要。
[0003]通常BOOT版本升级可以采用烧录器升级或者在线升级,烧录器升级需要特定的硬件烧录设备和软件驱动程序,无论搭建环境或者烧录过程,都比较繁琐,仅限于实验室调试或者产线上第一次烧录BOOT版本到设备时使用;在线升级相对比较方便,只需要嵌入式系统实现BOOT在线升级程序和命令,在设备上输入在线升级命令就可以完成BOOT在线升级,这种方式已广泛应用于系统测试。
[0004]已有的相关技术采用如图1的系统实现BOOT在线升级,分别使用两片存储器件存放两个CPU系统的BOOT版本,并各自实现了本系统BOOT在线升级功能。但在维护过程中,常出现一些情况比如升级过程中断电、BOOT升级驱动程序发生错误、用户误操作将新单板升级了旧BOOT版本或者错误的BOOT版本、升级的BOOT版本本身存在问题等,会导致BOOT升级失败或者升级成功但不能正常启动。一旦遇到上述情况,BOOT不但无法完成硬件初始化以引导设备启动,甚至还无法启动或者继续在线升级操作,甚至需要将单板返厂烧录或者替换成备件,这样,必然增加了相关数据通信设备的维护成本,也严重降低了用户体验。因此,需要提出一种新的方案,以解决BOOT在线升级存在的上述问题,有效保证嵌入式系统BOOT版本在线升级成功。

【发明内容】

[0005]有鉴于此,本发明的主要目的在于提供一种BOOT在线升级装置及方法,解决BOOT在线升级失败或者升级成功但不能正常启动的问题。
[0006]为达到上述目的,本发明的技术方案是这样实现的:
[0007]一种引导BOOT在线升级装置,所述装置包括:逻辑选通单元;在所述逻辑选通单元上通过访问总线连接有至少两个嵌入式CPU和对应各个嵌入式CPU的BOOT存储器;每个嵌入式CPU包括对所有BOOT存储器的BOOT升级驱动模块,所述BOOT升级驱动模块用于执行BOOT存储器上的BOOT版本更新;所述逻辑选通单元,用于选通任意一个嵌入式CPU到任意一个BOOT存储器的访问通道。
[0008]优选地,所述装置包括:第一嵌入式CPU、对应第一嵌入式CPU的第一 BOOT存储器、第二嵌入式CPU和对应第二嵌入式CPU的第二 BOOT存储器,所述第一嵌入式CPU、第一BOOT存储器、第二嵌入式CPU和第二 BOOT存储器分别通过访问总线连接在所述逻辑选通单元上;
[0009]每个嵌入式CPU包括对所有BOOT存储器的BOOT升级驱动模块,所述BOOT升级驱动模块用于执行BOOT存储器上的BOOT版本更新;
[0010]所述逻辑选通单元,用于选通任意一个嵌入式CPU到任意一个BOOT存储器的访问通道;
[0011]第一嵌入式CPU包含第一选通模块,用于控制所述逻辑选通单元断开当前的访问通道,选通第一嵌入式CPU到第二 BOOT存储器的访问通道;
[0012]第二嵌入式CPU包含第二选通模块,用于控制所述逻辑选通单元断开当前的访问通道,选通第二嵌入式CPU到第一 BOOT存储器的访问通道。
[0013]优选地,所述对所有BOOT存储器的驱动模块包括:
[0014]第一 BOOT升级驱动模块,用于执行第一 BOOT存储器的BOOT版本更新;
[0015]第二 BOOT升级驱动模块,用于执行第二 BOOT存储器的BOOT版本更新。
[0016]优选地,所述第一嵌入式CPU还包括:第一复位模块,用于发送复位信号给第二嵌入式CPU ;
[0017]所述第二选通模块,还用于在第二嵌入式CPU接收所述第一复位模块发送的复位信号并重启之后,控制所述逻辑选通单元恢复第二嵌入式CPU到第二 BOOT存储器的访问通道,使得第二嵌入式CPU使用第二 BOOT存储器中更新后的BOOT版本正常启动;
[0018]所述第二嵌入式CPU还包括:第二复位模块,用于发送复位信号给第一嵌入式CPU ;
[0019]所述第一选通模块,还用于在第一嵌入式CPU接收所述第二复位模块发送的复位信号并重启之后,控制所述逻辑选通单元恢复第一嵌入式CPU到第一 BOOT存储器的访问通道,使得第一嵌入式CPU使用第一 BOOT存储器中更新后的BOOT版本正常启动。
[0020]优选地,所述第一嵌入式CPU的第一选通模块,还用于在所述第二 BOOT升级驱动模块执行BOOT版本更新后,控制所述逻辑选通单元断开当前的访问通道,选通第一嵌入式CPU到第一 BOOT存储器的访问通道;
[0021]所述第二嵌入式CPU的第二选通模块,还用于在所述第二 BOOT升级驱动模块执行BOOT版本更新后,控制所述逻辑选通单元断开当前的访问通道,选通第一嵌入式CPU到第一 BOOT存储器的访问通道。
[0022]优选地,所述逻辑选通单元,用于默认选通第一嵌入式CPU到第一 BOOT存储器的访问通道、以及第二嵌入式CPU到第二 BOOT存储器的访问通道。
[0023]一种引导BOOT在线升级方法,所述方法包括:
[0024]逻辑选通单元选通任意一个嵌入式CPU到任意一个BOOT存储器的访问通道;
[0025]通过意一个嵌入式CPU到任意一个BOOT存储器的访问通道,执行所述任意一个BOOT存储器上BOOT版本更新;
[0026]其中,在所述逻辑选通单元上通过访问总线连接有至少两个嵌入式CPU和对应各个嵌入式CPU的BOOT存储器,每个嵌入式CPU上都包括所有嵌入式CPU的驱动模块。
[0027]优选地,第一嵌入式CPU、对应第一嵌入式CPU的第一 BOOT存储器、第二嵌入式CPU和对应第二嵌入式CPU的第二 BOOT存储器分别通过访问总线连接在所述逻辑选通单元上;
[0028]所述方法包括:第一嵌入式CPU控制所述逻辑选通单元断开当前的访问通道,选通第一嵌入式CPU到第二 BOOT存储器的访问通道;第一嵌入式CPU访问第二 BOOT存储器,执行第二 BOOT存储器上的BOOT版本更新;
[0029]或者,所述方法包括:第二嵌入式CPU控制所述逻辑选通单元断开当前的访问通道,选通第二嵌入式CPU到第一 BOOT存储器的访问通道;第二嵌入式CPU访问第一 BOOT存储器,执行第一 BOOT存储器上的BOOT版本更新。
[0030]优选地,所述第一嵌入式CPU访问第二 BOOT存储器,执行第二 BOOT存储器上的BOOT版本更新,为:第一嵌入式CPU调用第二 BOOT升级驱动模块访问第二 BOOT存储器,将待升级的BOOT版本通过自身的在线升级接口写入第二 BOOT存储器;
[0031]通过所述第二嵌入式CPU到第一 BOOT存储器的访问通道,执行第一嵌入式CPU的BOOT在线升级,为:第二嵌入式CPU调用第一 BOOT升级驱动模块访问第一 BOOT存储器,将待升级的BOOT版本通过自身的在线升级接口写入第一 BOOT存储器。
[0032]优选地,所述方法还包括:
[0033]第一嵌入式CPU发送复位信号给第二嵌入式CPU ;
[0034]在第二嵌入式CPU接收所述复位信号并重启之后,控制所述逻辑选通单元恢复第二嵌入式CPU到第二 BOOT存储器的访问通道,并使用第二 BOOT存储器中更新后的BOOT版本正常启动;
[0035]或者,所述方法还包括:
[0036]第二嵌入式CPU发送复位信号给第一嵌入式CPU ;
[0037]在第一嵌入式CPU接收所述复位信号并重启之后,第一嵌入式CPU控制所述逻辑选通单元恢复第一嵌入式CPU到第一 BOOT存储器的访问通道,并使用第一 BOOT存储器中更新后的BOOT版本正常启动。
[0038]优选地,所述方法还包括:所述第一嵌入式CPU在所述第二 BOOT升级驱动模块执行BOOT版本更新后,控制所述逻辑选通单元断开当前的访问通道,选通第一嵌入式CPU到第一 BOOT存储器的访问通道;
[0039]或者,所述方法还包括:
[0040]所述第二嵌入式CPU在所述第二 BOOT升级驱动模块执行BOOT版本更新后,控制所述逻辑选通单元断开当前的访问通道,选通第一嵌入式CPU到第一 BOOT存储器的访问通道。
[0041]优选地,所述方法还包括:逻辑选通单元默认选通第一嵌入式CPU到第一 BOOT存储器的访问通道、以及第二嵌入式CPU到第二 BOOT存储器的访问通道。
[0042]本发明实施例中,增加了逻辑选通单元,可以选通任意一个嵌入式CPU到任意一个BOOT存储器的访问通道,并且在每个嵌入式CPU上包括对所有BOOT存储器的驱动模块,如此,在当前CPU的BOOT无法正常在线升级或者无法启动,选通另一个CPU到当前BOOT存储器的访问通道,由另一个CPU完成当前CPU的BOOT版本在线升级,解决了 BOOT在线升级失败或者升级成功但不能正常启动的问题,提高了 BOOT在线升级的可靠性,降低了 BOOT升级的风险和后期维护成本。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1