掌桥专利:专业的专利平台
掌桥专利
首页

系统uboot损坏检测及恢复方法

文献发布时间:2023-06-19 09:47:53


系统uboot损坏检测及恢复方法

技术领域

本发明涉及于计算机控制系统领域,具体涉及一种系统uboot损坏检测及恢复方法。

背景技术

在嵌入式linux平台下,通常系统分为SPL(Second Program Loader通常为可选)、uboot、kernel、rootfs等部分,其中SPL和uboot都属于bootloader,系统启动通常将先加载和执行SPL和uboot然后由uboot加载kernel和rootfs。通常如果kernel或者rootfs部分出现损坏可以通过uboot执行恢复完成恢复系统正常的功能。但是如果uboot出现损坏,将没有办法恢复。这种情况下设备会“变砖”,只有重新烧写才可以恢复。

发明内容

本发明的目的在于针对上述技术问题提供一种系统uboot损坏检测及恢复方法。

本发明解决上述技术问题的技术方案如下:

系统uboot损坏检测及恢复方法,包括以下步骤:

步骤1、在系统中特定区域存储uboot分区备份文件;

步骤2、启动SPL,并检测uboot跳转后是否正确执行,检测uboot未能正确执行的连续次数是否大于预设次数,若是,则判定uboot损坏,跳转至步骤3,若否,则继续执行SPL;

步骤3、在SPL中使用uboot备份文件还原uboot。

进一步的,所述步骤2中,存储uboot未能正确执行的连续次数为N,若uboot成功启动,则令N=0。

进一步的,所述步骤2中,预设次数为5。

本发明的有益效果为:在设备运行过程中,当系统软件的uboot出现损坏之后,可以由SPL检测到损坏发生并恢复uboot,防止设备因为uboot的损坏而无法使用。

附图说明

图1为本发明的方法流程示意图;

图2为本发明的实施例流程示意图。

具体实施方式

以下对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

如图1所示,系统uboot损坏检测及恢复方法,包括以下步骤:

步骤1、在系统中特定区域存储uboot分区备份文件;

步骤2、启动SPL,并检测uboot跳转后是否正确执行,检测uboot未能正确执行的连续次数是否大于预设次数,若是,则判定uboot损坏,跳转至步骤3,若否,则继续执行SPL;

步骤3、在SPL中使用uboot备份文件还原uboot。

作为一种实施方式,所述步骤2中,存储uboot未能正确执行的连续次数为N,若uboot成功启动,则令N=0。

作为一种实施方式,所述步骤2中,预设次数为5。

如图2所示,实施例1为在imx6solo平台空调屏上实现了基于emmc存储的uboot恢复功能后的方法,包括以下步骤:

1、正常启动使用boot0分区里的uboot镜像执行。使用boot1分区保存uboot备份镜像。事先在emmc的boot1分区中存放一份备份的uboot镜像。

2、SPL里添加和上级MCU之间的心跳超时重启状态检测逻辑。SPL里添加跳转uboot次数计数保存在非易失存储区。当成功启动uboot后清除计数。

3、跳转uboot后如果出现未正常执行心跳超时重启,将会在SPL导致uboot跳转次数增加。当连续5次出现这种情况判断为uboot损坏。

4、使用boot1分区里的uboot镜像写入到正常启动使用的boot0分区,完成uboot恢复功能。下次启动将可以正常使用boot0分区里的uboot启动。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 系统uboot损坏检测及恢复方法
  • 基于VMware虚拟化文件系统损坏的数据恢复方法
技术分类

06120112306118