一种基于嵌入式Linux设备双系统的启动方法

文档序号:8512473阅读:1260来源:国知局
一种基于嵌入式Linux设备双系统的启动方法
【技术领域】
[0001]本发明涉及一种基于嵌入式Linux设备双系统的启动方法。
【背景技术】
[0002]Linux操作系统特别是其嵌入式系统由于其源代码的可开发性、成本低廉、系统稳定可靠以及可裁剪等特点如今成为主流的嵌入式操作系统之一已被广泛应用于工业制造、过程控制、通讯、仪器、仪表、汽车、船舶、航空、航天、军事装备、消费类产品等众多领域。目前通常的嵌入式Linux设备都为单系统运行,如果该Linux系统出现故障不能正常运行,用户不能自行解决问题,只有返厂处理。

【发明内容】

[0003]本发明的目的在于克服现有技术的不足,提供一种基于嵌入式Linux设备双系统的启动方法,可实现双操作系统的启动并且可以通过装有操作系统文件的U盘进行恢复。
[0004]本发明的目的是通过以下技术方案来实现的:一种基于嵌入式Linux设备双系统的启动方法,它包括以下步骤:
S1.引导系统读取引导系统参数分区中存储的操作系统属性值,所述的操作系统属性值包括第一操作系统和第二操作系统对应的CRC校验值、系统占用空间大小、默认启动标记和启动标志位。
[0005]S2.引导系统判断默认启动标记变量的值是否为第一操作系统和第二操作系统其中之一对应的值;
若默认启动标记变量的值为第一操作系统和第二操作系统其中之一对应的值,选取对应的操作系统,并跳转步骤S3 ;
若默认启动标记变量的值不是第一操作系统和第二操作系统中任意一个对应的值,则执行USB系统恢复步骤。
[0006]S3.引导系统对步骤S2选取的操作系统执行CRC值校验步骤;
若步骤S2选取的操作系统的CRC值校验成功,则跳转步骤S4 ;
若步骤S2选取的操作系统的CRC值校验失败,则将默认启动标记变量的值改为另一操作系统对应的值,并跳转步骤S2 ;
若第一操作系统和第二操作系统的CRC值校验均失败,则将默认启动标记变量的值改为除第一操作系统和第二操作系统对应的值以外的值,并跳转步骤S2。
[0007]S4.引导系统判断步骤S3中CRC值校验成功的操作系统对应的启动标志位的初始值是否为0,若所述启动标志位的初始值为O ;
若该操作系统对应的启动标志位的初始值为0,则该操作系统能正常启动,将启动标志位设置为1,然后加载并启动该操作系统,并跳转步骤S5 ;
若该操作系统对应的启动标志位的初始值非0,则该操作系统不能正常启动,则将默认启动标记变量的值改为另一操作系统对应的值,并跳转步骤S2 ; 若第一操作系统和第二操作系统对应的启动标志位的初始值均非O,则将默认启动标记变量的值改为除第一操作系统和第二操作系统对应的值以外的值,并跳转步骤S2。
[0008]S5.引导系统判断步骤S4中对应的启动标志位的初始值为O的操作系统是否成功运行;
若所述的操作系统成功运行,则将该操作系统对应的启动标志位设置为0,完成嵌入式Linux设备的操作系统的启动;
若所述的操作系统未能成功运行,则结束嵌入式Linux设备的操作系统的启动。
[0009]步骤S2中所述的USB系统恢复步骤包括以下子步骤:
S21.引导系统检测是否插入U盘;
若有U盘插入,则跳转步骤S22 ;
若无U盘插入,则继续检测是否插入U盘。
[0010]S22.引导系统检测U盘中是否有操作系统文件;
若U盘中有操作系统文件,则跳转步骤S23 ;
若U盘中无操作系统文件,则跳转步骤S21。
[0011]S23.引导系统对Linux设备的操作系统进行恢复;
若操作系统恢复成功,则跳转步骤S24 ;
若操作系统恢复失败,则跳转步骤S21。
[0012]S24.引导系统将默认启动标记置为当前恢复的操作系统的标识,同时更新操作系统的CRC校验值、占用空间大小和启动标志位。
[0013]步骤S3中所述的CRC值校验步骤包括以下子步骤:
S31.引导系统通过步骤S2选取的操作系统对应的系统占用空间大小和该操作系统存储的起始地址实时校验计算得到该操作系统的CRC值。
[0014]S32.引导系统将S31中得到的CRC值与步骤SI中读取的该操作系统对应的CRC校验值进行比对;
若校验计算得到该操作系统的CRC值与该操作系统对应的CRC校验值一样,则表示所述的操作系统的CRC值校验成功;
若校验计算得到该操作系统的CRC值与该操作系统对应的CRC校验值不一样,则表示所述的操作系统的CRC值校验失败。
[0015]本发明的有益效果是:(I)保证双系统中一个操作系统故障后可从另一操作系统启动;(2)若两个操作系统都不能启动,可通过U盘恢复嵌入式Linux设备的双操作系统,使该嵌入式Linux设备再进入正常工作状态。
【附图说明】
[0016]图1为本发明基于嵌入式Linux设备双系统的启动方法的流程图;
图2为本发明中的USB系统恢复和USB系统更新的流程图。
【具体实施方式】
[0017]下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。
[0018]如图1所示,一种基于嵌入式Linux设备双系统的启动方法,它包括以下步骤:
51.引导系统读取引导系统参数分区中存储的操作系统属性值,所述的操作系统属性值包括第一操作系统和第二操作系统对应的CRC校验值、系统占用空间大小、默认启动标记和启动标志位;
52.引导系统判断默认启动标记变量的值是否为第一操作系统和第二操作系统其中之一对应的值;
若默认启动标记变量的值为第一操作系统和第二操作系统其中之一对应的值,选取对应的操作系统,并跳转步骤S3 ;
若默认启动标记变量的值不是第一操作系统和第二操作系统中任意一个对应的值,则执行USB系统恢复步骤;
53.引导系统对步骤S2选取的操作系统执行CRC值校验;
531.引导系统通过步骤S2选取的操作系统对应的系统占用空间大小和该操作系统存储的起始地址实时校验计算得到该操作系统的CRC值;
532.引导系统将S31中得到的CRC值与步骤SI中读取的该系统对应的CRC校验值进行比对;
若校验计算得到该操作系统的CRC值与该操作系统对应的CRC校验值一样,则表示所述的操作系统的CRC值校验成功;
若校验计算得到该操作系统的CRC值与该操作系统对应的CRC校验值不一样,则表示所述的操作系统的CRC值校验失败。
[0019]若步骤S2选取的操作系统的CRC值校验成功,则跳转步骤S4 ;
若步骤S2选取的操作系统的CRC值校验失败,则将默认启动标记变量的值改为另一操作系统对应的值,并跳转步骤S2 ;
若第一操作系统和第二操作系统的CRC值校验均失败,则将默认启动标记变量的值改为除第一操作系统和第二操作系统对应的值以外的值,并跳转步骤S2 ;
54.引导系统判断步骤S3中CRC值校验成功的操作系统对应的启动标志位的初始值是否为O;
若该操作系统对应的启动标志位的初
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1