本发明涉及嵌入式硬件,尤其涉及一种嵌入式系统异常的恢复方法、装置、设备及存储介质。
背景技术:
1、通信领域中一般由多个单盘组成框架式设备,各个单盘都是一个独立的嵌入式系统,其中一般采用可编程逻辑器件(complex programmable logic device,cpld)来实现系统的复位时序、上电配置以及电平转换等逻辑控制功能;需求变更以及故障修复等原因存在升级cpld固件版本的可能,因此嵌入式系统必须具备在线升级cpld文件的能力,提高系统的可维护性。
2、cpld在线升级时环境电磁干扰、电源异常波动以及断电等因素可能会导致在线升级中断,cpld固件被破坏,系统重新启动时因cpld没有正常工作,会导致系统无法正常启动,cpld也无法进行远程升级修复,此时必须让技术人员现场维修甚至将单盘返厂维修处理,导致故障修复周期长,维护成本高。
3、现有技术一般是增加cpld的专用flash,实现双boot启动备份;或者增加底板管理控制器(baseboard management controller,bmc)来专门进行cpld的故障检测及修复,这两种方式无疑都会大量增加成本。
技术实现思路
1、本发明的主要目的在于提供一种嵌入式系统异常的恢复方法、装置、设备及存储介质,旨在解决现有技术中cpld异常时进行故障检测及修复的维修成本高,故障修复时间长的技术问题。
2、第一方面,本发明提供一种嵌入式系统异常的恢复方法,所述嵌入式系统异常的恢复方法包括以下步骤:
3、当主控制盘的cpld需要升级时,从主控制盘获取cpld固件,根据所述cpld固件对所述主控制盘进行升级;
4、在所述主控制盘升级失败,且备控制盘通过实时管理信息判定所述主控制盘升级失败后,向所述主控制盘发出下载信号和所述cpld固件,根据所述下载信号和所述cpld固件对所述主控制盘再次进行升级;
5、在所述备控制盘或其他单盘升级失败,且所述主控制盘通过所述实时管理信息判定所述备控制盘或所述其他单盘升级失败时,向所述备控制盘发出所述下载信号和所述cpld固件,根据所述下载信号和所述cpld固件对所述备控制盘或所述其他单盘再次进行升级。
6、可选地,所述当主控制盘的cpld需要升级时,从主控制盘获取cpld固件,根据所述cpld固件对所述主控制盘进行升级,包括:
7、当主控制盘的cpld需要升级时,通过gpio接口输出高电平,根据所述高电平将模拟开关进行信号切换,获得切换后的下载信号;
8、根据所述下载信号升级所述主控制盘的cpld。
9、可选地,所述在所述主控制盘升级失败,且备控制盘通过实时管理信息判定所述主控制盘升级失败后,向所述主控制盘发出下载信号和所述cpld固件,根据所述下载信号和所述cpld固件对所述主控制盘再次进行升级,包括:
10、在所述主控制盘升级失败时,重启所述主控制盘,获取通过背板与所述主控制盘连接的备控制盘监测所述主控制盘生成的实时管理信息;
11、通过gpio接口输出高电平,根据所述高电平将模拟开关进行信号切换,获得切换后的下载信号;
12、利用所述备控制盘通过实时管理信息判断所述主控制盘是否升级失败,在判定所述主控制盘升级失败时,向所述主控制盘发出下载信号和所述cpld固件,根据所述下载信号和所述cpld固件对所述主控制盘再次进行升级。
13、可选地,所述利用所述备控制盘通过实时管理信息判断所述主控制盘是否升级失败,在判定所述主控制盘升级失败时,向所述主控制盘发出下载信号和所述cpld固件,根据所述下载信号和所述cpld固件对所述主控制盘再次进行升级,包括:
14、根据所述备控制盘通过实时管理信息确定是否无正常脉冲,在无正常脉冲时,判定所述主控制盘升级失败;
15、在判定所述主控制盘升级失败时,由下拉电阻将模拟开关的使能管脚拉为低电平,向所述主控制盘发出下载信号和所述cpld固件;
16、根据所述下载信号通过所述备控制盘的cup将存储器中的cpld固件参数经过所述主控制盘的模拟开关下载到所述cpld固件;
17、根据所述cpld固件对所述主控制盘再次进行升级。
18、可选地,所述根据所述下载信号通过所述备控制盘的cup将存储器中的cpld固件参数经过所述主控制盘的模拟开关下载到所述cpld固件之后,所述嵌入式系统异常的恢复方法还包括:
19、在所述主控制盘的cpld下载完成下载数据时,再次监测所述主控制盘的cpu是否正常启动;
20、在所述主控制盘的cpld重复下载预设重复次数的下载数据,且所述主控制盘的cpu未启动时,通过所述备控制盘的cpu上报故障告警信息。
21、可选地,所述在所述备控制盘或其他单盘升级失败,且所述主控制盘通过所述实时管理信息判定所述备控制盘或所述其他单盘升级失败时,向所述备控制盘发出所述下载信号和所述cpld固件,根据所述下载信号和所述cpld固件对所述备控制盘或所述其他单盘再次进行升级,包括:
22、在所述备控制盘或其他单盘升级失败,且所述主控制盘通过所述实时管理信息确定无正常脉冲时,判定所述备控制盘或所述其他单盘升级失败;
23、在所述备控制盘或所述其他单盘升级失败时,由下拉电阻将所述备控制盘的模拟开关的使能管脚拉为低电平,向所述备控制盘发出所述下载信号和所述cpld固件;
24、根据所述下载信号通过所述主控制盘的存储器中存储的所述备控制盘的cpld固件参数经过所述备控制盘的模拟开关下载到所述备控制盘或所述其他单盘的cpld固件;
25、根据所述cpld固件对所述备控制盘或所述其他单盘再次进行升级。
26、可选地,所述当主控制盘的cpld需要升级时,从主控制盘获取cpld固件,根据所述cpld固件对所述主控制盘进行升级之前,所述嵌入式系统异常的恢复方法还包括:
27、对每块单盘设置两条cpld下载通道,一条cpld下载通道连接到主控制盘的cpu下载信号,另一条cpld下载通道通过背板连接来自所述备控制盘和所述其他单盘的下载信号;所述主控制盘的下载信号连接到所述主控制盘、所述备控制盘和所述其他单盘;所述备控制盘的下载信号连接到所述备控制盘和所述主控制盘;所述其他单盘的下载信号仅连接到所述其他单盘;所述主控制盘保存所述备控制盘和所述其他单盘的cpld,所述备控制盘保存所述主控制盘和所述备控制盘的cpld,所述其他单盘仅保存所述其他单盘的cpld。
28、第二方面,为实现上述目的,本发明还提出一种嵌入式系统异常的恢复装置,所述嵌入式系统异常的恢复装置包括:
29、主盘升级模块,用于当主控制盘的cpld需要升级时,从主控制盘获取cpld固件,根据所述cpld固件对所述主控制盘进行升级;
30、主盘再次升级模块,用于在所述主控制盘升级失败,且备控制盘通过实时管理信息判定所述主控制盘升级失败后,向所述主控制盘发出下载信号和所述cpld固件,根据所述下载信号和所述cpld固件对所述主控制盘再次进行升级;
31、次盘再次升级模块,用于在所述备控制盘或其他单盘升级失败,且所述主控制盘通过所述实时管理信息判定所述备控制盘或所述其他单盘升级失败时,向所述备控制盘发出所述下载信号和所述cpld固件,根据所述下载信号和所述cpld固件对所述备控制盘或所述其他单盘再次进行升级。
32、第三方面,为实现上述目的,本发明还提出一种嵌入式系统异常的恢复设备,所述嵌入式系统异常的恢复设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的嵌入式系统异常的恢复程序,所述嵌入式系统异常的恢复程序配置为实现如上文所述的嵌入式系统异常的恢复方法的步骤。
33、第四方面,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有嵌入式系统异常的恢复程序,所述嵌入式系统异常的恢复程序被处理器执行时实现如上文所述的嵌入式系统异常的恢复方法的步骤。
34、本发明提出的嵌入式系统异常的恢复方法,通过当主控制盘的cpld需要升级时,从主控制盘获取cpld固件,根据所述cpld固件对所述主控制盘进行升级;在所述主控制盘升级失败,且备控制盘通过实时管理信息判定所述主控制盘升级失败后,向所述主控制盘发出下载信号和所述cpld固件,根据所述下载信号和所述cpld固件对所述主控制盘再次进行升级;在所述备控制盘或其他单盘升级失败,且所述主控制盘通过所述实时管理信息判定所述备控制盘或所述其他单盘升级失败时,向所述备控制盘发出所述下载信号和所述cpld固件,根据所述下载信号和所述cpld固件对所述备控制盘或所述其他单盘再次进行升级,能够相互升级cpld固件,即使升级被打断,也只会导致被升级的单盘无法启动,不影响其他单盘对其继续在线升级,不需要额外增加硬件成本,可以实现cpld固件损坏后的自动修复,减小cpld固件损坏后对设备业务的影响,大大降低cpld固件损坏后单盘的返修维护成本,提高了嵌入式系统异常的恢复速度和效率。