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

技术编号:11878394 阅读:89 留言:0更新日期:2015-08-13 04:35
本发明专利技术公开了一种基于嵌入式Linux设备双系统的启动方法,它包括以下步骤:读取第一操作系统和第二操作系统对应的CRC校验值、系统占用空间大小、默认启动标记和启动标志位;引导系统判断默认启动标记变量的值是否为第一操作系统和第二操作系统其中之一对应的值;引导系统对选取的操作系统进行CRC值校验;引导系统将操作系统对应的启动标志位设置为1,然后加载并启动操作系统;引导系统判断操作系统是否成功运行,若操作系统成功运行,则将该操作系统对应的启动标志位设置为0,完成嵌入式Linux设备的启动。本发明专利技术可实现双操作系统的启动并且可以通过装有操作系统文件的U盘进行恢复。

【技术实现步骤摘要】

本专利技术涉及。
技术介绍
Linux操作系统特别是其嵌入式系统由于其源代码的可开发性、成本低廉、系统稳定可靠以及可裁剪等特点如今成为主流的嵌入式操作系统之一已被广泛应用于工业制造、过程控制、通讯、仪器、仪表、汽车、船舶、航空、航天、军事装备、消费类产品等众多领域。目前通常的嵌入式Linux设备都为单系统运行,如果该Linux系统出现故障不能正常运行,用户不能自行解决问题,只有返厂处理。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供,可实现双操作系统的启动并且可以通过装有操作系统文件的U盘进行恢复。本专利技术的目的是通过以下技术方案来实现的:,它包括以下步骤: S1.引导系统读取引导系统参数分区中存储的操作系统属性值,所述的操作系统属性值包括第一操作系统和第二操作系统对应的CRC校验值、系统占用空间大小、默认启动标记和启动标志位。S2.引导系统判断默认启动标记变量的值是否为第一操作系统和第二操作系统其中之一对应的值; 若默认启动标记变量的值为第一操作系统和第二操作系统其中之一对应的值,选取对应的操作系统,并跳转步骤S3 ; 若默认启动标记变量的值不是第一操作系统和第二操作系统中任意一个对应的值,则执行USB系统恢复步骤。S3.引导系统对步骤S2选取的操作系统执行CRC值校验步骤; 若步骤S2选取的操作系统的CRC值校验成功,则跳转步骤S4 ; 若步骤S2选取的操作系统的CRC值校验失败,则将默认启动标记变量的值改为另一操作系统对应的值,并跳转步骤S2 ; 若第一操作系统和第二操作系统的CRC值校验均失败,则将默认启动标记变量的值改为除第一操作系统和第二操作系统对应的值以外的值,并跳转步骤S2。S4.引导系统判断步骤S3中CRC值校验成功的操作系统对应的启动标志位的初始值是否为0,若所述启动标志位的初始值为O ; 若该操作系统对应的启动标志位的初始值为0,则该操作系统能正常启动,将启动标志位设置为1,然后加载并启动该操作系统,并跳转步骤S5 ; 若该操作系统对应的启动标志位的初始值非0,则该操作系统不能正常启动,则将默认启动标记变量的值改为另一操作系统对应的值,并跳转步骤S2 ; 若第一操作系统和第二操作系统对应的启动标志位的初始值均非O,则将默认启动标记变量的值改为除第一操作系统和第二操作系统对应的值以外的值,并跳转步骤S2。S5.引导系统判断步骤S4中对应的启动标志位的初始值为O的操作系统是否成功运行; 若所述的操作系统成功运行,则将该操作系统对应的启动标志位设置为0,完成嵌入式Linux设备的操作系统的启动; 若所述的操作系统未能成功运行,则结束嵌入式Linux设备的操作系统的启动。步骤S2中所述的USB系统恢复步骤包括以下子步骤: S21.引导系统检测是否插入U盘; 若有U盘插入,则跳转步骤S22 ; 若无U盘插入,则继续检测是否插入U盘。S22.引导系统检测U盘中是否有操作系统文件; 若U盘中有操作系统文件,则跳转步骤S23 ; 若U盘中无操作系统文件,则跳转步骤S21。S23.引导系统对Linux设备的操作系统进行恢复; 若操作系统恢复成功,则跳转步骤S24 ; 若操作系统恢复失败,则跳转步骤S21。S24.引导系统将默认启动标记置为当前恢复的操作系统的标识,同时更新操作系统的CRC校验值、占用空间大小和启动标志位。步骤S3中所述的CRC值校验步骤包括以下子步骤: S31.引导系统通过步骤S2选取的操作系统对应的系统占用空间大小和该操作系统存储的起始地址实时校验计算得到该操作系统的CRC值。S32.引导系统将S31中得到的CRC值与步骤SI中读取的该操作系统对应的CRC校验值进行比对; 若校验计算得到该操作系统的CRC值与该操作系统对应的CRC校验值一样,则表示所述的操作系统的CRC值校验成功; 若校验计算得到该操作系统的CRC值与该操作系统对应的CRC校验值不一样,则表示所述的操作系统的CRC值校验失败。本专利技术的有益效果是:(I)保证双系统中一个操作系统故障后可从另一操作系统启动;(2)若两个操作系统都不能启动,可通过U盘恢复嵌入式Linux设备的双操作系统,使该嵌入式Linux设备再进入正常工作状态。【附图说明】图1为本专利技术基于嵌入式Linux设备双系统的启动方法的流程图; 图2为本专利技术中的USB系统恢复和USB系统更新的流程图。【具体实施方式】下面结合附图进一步详细描述本专利技术的技术方案,但本专利技术的保护范围不局限于以下所述。如图1所示,,它包括以下步骤: 51.引导系统读取引导系统参数分区中存储的操作系统属性值,所述的操作系统属性值包括第一操作系统和第二操作系统对应的CRC校验值、系统占用空间大小、默认启动标记和启动标志位; 52.引导系统判断默认启动标记变量的值是否为第一操作系统和第二操作系统其中之一对应的值; 若默认启动标记变量的值为第一操作系统和第二操作系统其中之一对应的值,选取对应的操作系统,并跳转步骤S3 ; 若默认启动标记变量的值不是第一操作系统和第二操作系统中任意一个对应的值,则执行USB系统恢复步骤; 53.引导系统对步骤S2选取的操作系统执行CRC值校验; 531.引导系统通过步骤S2选取的操作系统对应的系统占用空间大小和该操作系统存储的起始地址实时校验计算得到该操作系统的CRC值; 532.引导系统将S31中得到的CRC值与步骤SI中读取的该系统对应的CRC校验值进行比对; 若校验计算得到该操作系统的CRC值与该操作系统对应的CRC校验值一样,则表示所述的操作系统的CRC值校验成功; 若校验计算得到该操作系统的CRC值与该操作系统对应的CRC校验值不一样,则表示所述的操作系统的CRC值校验失败。若步骤S2选取的操作系统的CRC值校验成功,则跳转步骤S4 ; 若步骤S2选取的操作系统的CRC值校验失败,则将默认启动标记变量的值改为另一操作系统对应的值,并跳转步骤S2 ; 若第一操作系统和第二操作系统的CRC值校验均失败,则将默认启动标记变量的值改为除第一操作系统和第二操作系统对应的值以外的值,并跳转步骤S2 ; 54.引导系统判断步骤S3中CRC值校验成功的操作系统对应的启动标志位的初始值是否为O; 若该操作系统对应的启动标志位的初当前第1页1 2 本文档来自技高网...
一种基于嵌入式Linux设备双系统的启动方法

【技术保护点】
一种基于嵌入式Linux设备双系统的启动方法,其特征在于:它包括以下步骤:S1.引导系统读取引导系统参数分区中存储的操作系统属性值,所述的操作系统属性值包括第一操作系统和第二操作系统对应的CRC校验值、系统占用空间大小、默认启动标记和启动标志位;S2.引导系统判断默认启动标记变量的值是否为第一操作系统和第二操作系统其中之一对应的值;若默认启动标记变量的值为第一操作系统和第二操作系统其中之一对应的值,选取对应的操作系统,并跳转步骤S3;若默认启动标记变量的值不是第一操作系统和第二操作系统中任意一个对应的值,则执行USB系统恢复步骤;S3.引导系统对步骤S2选取的操作系统执行CRC值校验步骤;若步骤S2选取的操作系统的CRC值校验成功,则跳转步骤S4;若步骤S2选取的操作系统的CRC值校验失败,则将默认启动标记变量的值改为另一操作系统对应的值,并跳转步骤S2;若第一操作系统和第二操作系统的CRC值校验均失败,则将默认启动标记变量的值改为除第一操作系统和第二操作系统对应的值以外的值,并跳转步骤S2;S4.引导系统判断步骤S3中CRC值校验成功的操作系统对应的启动标志位的初始值是否为0,若所述启动标志位的初始值为0;若该操作系统对应的启动标志位的初始值为0,则该操作系统能正常启动,将启动标志位设置为1,然后加载并启动该操作系统,并跳转步骤S5;若该操作系统对应的启动标志位的初始值非0,则该操作系统不能正常启动,则将默认启动标记变量的值改为另一操作系统对应的值,并跳转步骤S2;若第一操作系统和第二操作系统对应的启动标志位的初始值均非0,则将默认启动标记变量的值改为除第一操作系统和第二操作系统对应的值以外的值,并跳转步骤S2;S5.引导系统判断步骤S4中对应的启动标志位的初始值为0的操作系统是否成功运行;若所述的操作系统成功运行,则将该操作系统对应的启动标志位设置为0,完成嵌入式Linux设备的操作系统的启动;若所述的操作系统未能成功运行,则结束嵌入式Linux设备的操作系统的启动。...

【技术特征摘要】

【专利技术属性】
技术研发人员:王春波皮如涛
申请(专利权)人:成都亿盟恒信科技有限公司
类型:发明
国别省市:四川;51

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

1