一种嵌入式系统双分区安全启动方法技术方案

技术编号:28672539 阅读:51 留言:0更新日期:2021-06-02 02:48
本发明专利技术涉及嵌入式工业设备技术领域,尤其是指一种嵌入式系统双分区安全启动方法,其包括以下步骤:步骤A,设备上电;步骤B,初始化CPU、内存以及串口;步骤C,开启计数模块;步骤D,重启次数加1;步骤E,通过计数模块判断重启次数是否小于预设阈值;若是,则读取第一系统分区,若否,则读取第二系统分区;步骤F,根据步骤E的读取,启动系统OS执行命令。本发明专利技术通过优化系统分区配置以及启动步骤的技术组合解决系统故障时无法恢复的问题,极大提高系统可靠性、稳定性;设备即使出现系统损坏也能恢复正常工作。

【技术实现步骤摘要】
一种嵌入式系统双分区安全启动方法
本专利技术涉及嵌入式工业设备
,尤其是指一种嵌入式系统双分区安全启动方法。
技术介绍
嵌入式设备在日常生产、生活中非常常见。例如路由器、手机、车载导航、工业电脑等。它们功能繁多,品类差异大。嵌入式设备的功能实现由硬件和软件共同组成。其中嵌入式系统软件一般由引导程序Bootloader+系统OS组成。Bootloader负责初始化硬件,传入启动参数,然后加载引导系统OS启动。常见的bootloader有Uboot,系统OS有Linux、iOS、Android等。一般嵌入式设备软件系统磁盘、Flash等存储介质分区如图2所示:磁盘开始的区域作为启动分区写入Bootloader程序。磁盘随后一部分作为系统分区使用,用来安装OS,最后留出一部分作为用户分区,可以存储用户运行数据。这种分区方式最大的弊端是当突然断电、电磁干扰、误操作等原因造成系统分区文件损坏后设备无法运行,即使下电重启也不能恢复正常。典型的嵌入式系统启动过程如图1所示:设备上电后,Bootloader会初始化CPU、内存、串口,然后检查装有系统OS的存储介质,常见是硬盘、Flash闪存等。如果上面装有合法的操作系统,Bootloader会把它读取到对应的内存地址,然后跳转过去开始执行OS内核。内核会首先初始化各种设备驱动,例如显示器、硬盘、鼠标键盘等设备驱动。之后初始化系统文件和网络。最后才开始运行和用户交互、执行具体功能的应用程序。对于家用设备来说,当设备运行不正常或者出现死机,可以由人为重启系统或恢复出厂设置让它正常工作。但对于应用在工业自动化、使用环境恶劣、无人值守等场景的设备来说,它们对于系统的稳定性、可靠性要求更高,如果出现故障,最好能自己恢复过来。但有些情况比如突然断电关机,可能导致关键程序、文件被破坏,甚至把系统关机重启也无法恢复。所以需要一种机制,在设备出现严重故障时,也能够让它自动恢复运行,提高稳定性,减少宕机时间。
技术实现思路
本专利技术针对现有技术的问题提供一种嵌入式系统双分区安全启动方法。为了解决上述技术问题,本专利技术采用如下技术方案:本专利技术提供的一种嵌入式系统双分区安全启动方法,包括以下步骤:步骤A,设备上电;步骤B,初始化CPU、内存以及串口;步骤C,开启计数模块;步骤D,重启次数加1;步骤E,通过计数模块判断重启次数是否小于预设阈值;若是,则读取第一系统分区,若否,则读取第二系统分区;步骤F,根据步骤E的读取,启动系统OS执行命令。其中,所述步骤B中内存为磁盘,该磁盘设置有Bootloader分区、参数分区、所述第一系统分区、所述第二系统分区以及用户分区。其中,所述步骤D中的重启次数加1时,存入参数分区进行保存。其中,所述步骤E中的预设阈值为3。其中,所述步骤F中启动系统OS执行命令包括以下步骤:步骤F1,各种初始化、执行应用程序;步骤F2,写启动成功标志;步骤F3,开启任务;步骤F4,第一系统分区启动或者第二系统分区启动、修复第一系统分区。本专利技术的有益效果:本专利技术通过优化系统分区配置以及启动步骤的技术组合解决系统故障时无法恢复的问题,极大提高系统可靠性、稳定性;本专利技术的精妙之处在于正常运行时Bootloader从第一系统分区读取操作系统启动;如果第一系统分区在运行时遭到破坏无法正常工作,那么会自动跳转从第二系统分区启动,这样设备即使出现系统损坏也能恢复正常工作。附图说明图1为现有技术中的典型的嵌入式系统启动过程的流程图。图2为现有技术中的磁盘分区示意图。图3为本专利技术的一种嵌入式系统双分区安全启动方法的流程图。图4为本专利技术的磁盘分区示意图。具体实施方式为了便于本领域技术人员的理解,下面结合实施例与附图对本专利技术作进一步的说明,实施方式提及的内容并非对本专利技术的限定。以下结合附图对本专利技术进行详细的描述。一种嵌入式系统双分区安全启动方法,包括以下步骤:步骤A,设备上电;步骤B,初始化CPU、内存以及串口;步骤C,开启计数模块;步骤D,重启次数加1;步骤E,通过计数模块判断重启次数是否小于预设阈值;若是,则读取第一系统分区,若否,则读取第二系统分区;步骤F,根据步骤E的读取,启动系统OS执行命令。其中,所述步骤B中内存为磁盘,该磁盘设置有Bootloader分区、参数分区、所述第一系统分区、所述第二系统分区以及用户分区。其中,所述步骤D中的重启次数加1时,存入参数分区进行保存。其中,所述步骤E中的预设阈值为3。其中,所述步骤F中启动系统OS执行命令包括以下步骤:步骤F1,各种初始化、执行应用程序;步骤F2,写启动成功标志;步骤F3,开启任务;步骤F4,第一系统分区启动或者第二系统分区启动、修复第一系统分区。本实施例中,首先和现有技术一样,设备上电,Bootloader进行必要的CPU、内存等核心硬件初始化。然后比原来的流程多出一步就是要开启看门狗(即计数模块,该计数模块内置于CPU中)。它能在系统出现异常时自动重启,然后Bootloader把位于参数分区里的重启次数读出来加1并写回参数分区,之后Bootloader判断重启次数是否大于3。本实施例把3次定为分区1无法启动的极限值;如果定为1次那有可能是停电等原因会造成误判。所以如果大于3说明系统已经连续三次没有启动成功,这个时候就去读取第二系统分区(备份分区),从备份分区启动;如果重启次数小于3,说明还没到达极限值,仍然继续尝试去读取第一系统分区。读取第一系统分区或第二系统分区后开始启动系统OS,和之前一样要作各种初始化,执行应用程序。之后相对于以前的流程,多出写启动成功、开启喂狗任务(清空计数模块)、修复第一系统分区三个步骤;写启动成功标志其实是把参数分区里的重启计数清零,这样当关机、意外掉电等情况再次上电后仍然会从第一系统分区启动。当第一系统分区真正受到破坏无法启动时,它没法进行喂狗任务(清空计数模块),所以会导致Bootloader阶段开启的看门狗(计数模块)超时重启;再次启动由于同样的原因仍然超时重启;连续这样重启三次后,重启计数将达到3,Bootloader会自动切换到读第二系统分区,从备份分区启动,这样系统就能恢复正常运行。清除重启次数后会开启喂狗任务,之后会判断写启动成功标志时缓存的重启计数,如果次数达到3,说明本次是从第二系统分区启动,此刻可以把第二系统分区拷贝到第一系统分区,开始进行修复第一系统分区的工作;这样损坏的第一系统分区就能自动恢复正常,下一次继续从第一系统分区启动,系统完好如初,通过优化系统分区配置以及启动步骤的技术组合解决系统故障时无法恢复的问题,极大提高系统可靠性、稳定性。以上所述,仅是本专利技术较佳实施例而已,并非对本专利技术作任何形式上的限制,虽然本专利技术以较佳本文档来自技高网
...

【技术保护点】
1.一种嵌入式系统双分区安全启动方法,其特征在于,包括以下步骤:/n步骤A,设备上电;/n步骤B,初始化CPU、内存以及串口;/n步骤C,开启计数模块;/n步骤D,重启次数加1;/n步骤E,通过计数模块判断重启次数是否小于预设阈值;若是,则读取第一系统分区,若否,则读取第二系统分区;/n步骤F,根据步骤E的读取,启动系统OS执行命令。/n

【技术特征摘要】
1.一种嵌入式系统双分区安全启动方法,其特征在于,包括以下步骤:
步骤A,设备上电;
步骤B,初始化CPU、内存以及串口;
步骤C,开启计数模块;
步骤D,重启次数加1;
步骤E,通过计数模块判断重启次数是否小于预设阈值;若是,则读取第一系统分区,若否,则读取第二系统分区;
步骤F,根据步骤E的读取,启动系统OS执行命令。


2.根据权利要求1所述的一种嵌入式系统双分区安全启动方法,其特征在于:所述步骤B中内存为磁盘,该磁盘设置有Bootloader分区、参数分区、所述第一系统分区、所述第二系统分区以及用户分区。

【专利技术属性】
技术研发人员:程国亮
申请(专利权)人:东莞市峰谷科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1