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

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

Info

Publication number
CN104834542A
CN104834542A CN201510186648.7A CN201510186648A CN104834542A CN 104834542 A CN104834542 A CN 104834542A CN 201510186648 A CN201510186648 A CN 201510186648A CN 104834542 A CN104834542 A CN 104834542A
Authority
CN
China
Prior art keywords
operating system
value
crc
jump procedure
guidance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510186648.7A
Other languages
English (en)
Other versions
CN104834542B (zh
Inventor
王春波
皮如涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CHENGDU YIMENG HENGXIN TECHNOLOGY Co Ltd
Original Assignee
CHENGDU YIMENG HENGXIN TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CHENGDU YIMENG HENGXIN TECHNOLOGY Co Ltd filed Critical CHENGDU YIMENG HENGXIN TECHNOLOGY Co Ltd
Priority to CN201510186648.7A priority Critical patent/CN104834542B/zh
Publication of CN104834542A publication Critical patent/CN104834542A/zh
Application granted granted Critical
Publication of CN104834542B publication Critical patent/CN104834542B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Hardware Redundancy (AREA)
  • Stored Programmes (AREA)

Abstract

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

Description

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

Claims (3)

1.一种基于嵌入式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设备的操作系统的启动。
2.根据权利要求1所述的一种基于嵌入式Linux设备双系统的启动方法,其特征在于:步骤S2中所述的USB系统恢复步骤包括以下子步骤:
S21.引导系统检测是否插入U盘;
若有U盘插入,则跳转步骤S22;
若无U盘插入,则继续检测是否插入U盘;
S22.引导系统检测U盘中是否有操作系统文件;
若U盘中有操作系统文件,则跳转步骤S23;
若U盘中无操作系统文件,则跳转步骤S21;
S23.引导系统对Linux设备的操作系统进行恢复;
若操作系统恢复成功,则跳转步骤S24;
若操作系统恢复失败,则跳转步骤S21;
S24.引导系统将默认启动标记置为当前恢复的操作系统的标识,同时更新操作系统的CRC校验值、占用空间大小和启动标志位。
3.根据权利要求1所述的一种基于嵌入式Linux设备双系统的启动方法,其特征在于:步骤S3中所述的CRC值校验步骤包括以下子步骤:
S31.引导系统通过步骤S2选取的操作系统对应的系统占用空间大小和该操作系统存储的起始地址实时校验计算得到该操作系统的CRC值;
S32.引导系统将S31中得到的CRC值与步骤S1中读取的该操作系统对应的CRC校验值进行比对;
若校验计算得到该操作系统的CRC值与该操作系统对应的CRC校验值一样,则表示所述的操作系统的CRC值校验成功;
若校验计算得到该操作系统的CRC值与该操作系统对应的CRC校验值不一样,则表示所述的操作系统的CRC值校验失败。
CN201510186648.7A 2015-04-20 2015-04-20 一种基于嵌入式Linux设备双系统的启动方法 Active CN104834542B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510186648.7A CN104834542B (zh) 2015-04-20 2015-04-20 一种基于嵌入式Linux设备双系统的启动方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510186648.7A CN104834542B (zh) 2015-04-20 2015-04-20 一种基于嵌入式Linux设备双系统的启动方法

Publications (2)

Publication Number Publication Date
CN104834542A true CN104834542A (zh) 2015-08-12
CN104834542B CN104834542B (zh) 2017-12-22

Family

ID=53812451

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510186648.7A Active CN104834542B (zh) 2015-04-20 2015-04-20 一种基于嵌入式Linux设备双系统的启动方法

Country Status (1)

Country Link
CN (1) CN104834542B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105573787A (zh) * 2015-12-15 2016-05-11 上海博泰悦臻网络技术服务有限公司 基于车载T-Box实现软件升级的方法及装置
CN107368315A (zh) * 2017-07-20 2017-11-21 郑州云海信息技术有限公司 一种双硬盘双系统的启动方法及装置
CN108427611A (zh) * 2017-02-14 2018-08-21 北京国基科技股份有限公司 一种云终端系统双冗余智能启动方法及装置
CN111443951A (zh) * 2019-01-16 2020-07-24 大唐移动通信设备有限公司 一种系统启动方法和系统启动装置
CN111742297A (zh) * 2019-07-23 2020-10-02 深圳市大疆创新科技有限公司 固件启动方法、设备及计算机可读存储介质
CN113124934A (zh) * 2021-04-21 2021-07-16 山东领亿智能技术有限公司 一种基于双操作系统的输电线路综合在线监测装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090271780A1 (en) * 2008-04-24 2009-10-29 Moschip Semiconductor Technology Limited Automatic complete firmware upgrade
CN102289397A (zh) * 2011-09-13 2011-12-21 全星科技(珠海)有限公司 一种机顶盒的嵌入式系统自动恢复方法及装置
CN103577201A (zh) * 2012-07-20 2014-02-12 上海斐讯数据通信技术有限公司 嵌入式双系统的更新方法及系统
CN104166561A (zh) * 2014-07-25 2014-11-26 深圳市江波龙电子有限公司 电子设备系统启动方法和电子设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090271780A1 (en) * 2008-04-24 2009-10-29 Moschip Semiconductor Technology Limited Automatic complete firmware upgrade
CN102289397A (zh) * 2011-09-13 2011-12-21 全星科技(珠海)有限公司 一种机顶盒的嵌入式系统自动恢复方法及装置
CN103577201A (zh) * 2012-07-20 2014-02-12 上海斐讯数据通信技术有限公司 嵌入式双系统的更新方法及系统
CN104166561A (zh) * 2014-07-25 2014-11-26 深圳市江波龙电子有限公司 电子设备系统启动方法和电子设备

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105573787A (zh) * 2015-12-15 2016-05-11 上海博泰悦臻网络技术服务有限公司 基于车载T-Box实现软件升级的方法及装置
CN108427611A (zh) * 2017-02-14 2018-08-21 北京国基科技股份有限公司 一种云终端系统双冗余智能启动方法及装置
CN107368315A (zh) * 2017-07-20 2017-11-21 郑州云海信息技术有限公司 一种双硬盘双系统的启动方法及装置
CN111443951A (zh) * 2019-01-16 2020-07-24 大唐移动通信设备有限公司 一种系统启动方法和系统启动装置
CN111742297A (zh) * 2019-07-23 2020-10-02 深圳市大疆创新科技有限公司 固件启动方法、设备及计算机可读存储介质
CN113124934A (zh) * 2021-04-21 2021-07-16 山东领亿智能技术有限公司 一种基于双操作系统的输电线路综合在线监测装置

Also Published As

Publication number Publication date
CN104834542B (zh) 2017-12-22

Similar Documents

Publication Publication Date Title
CN104834542A (zh) 一种基于嵌入式Linux设备双系统的启动方法
CN110442473B (zh) 一种非易失性数据存储方法、装置、电子设备及介质
CN106897166B (zh) 一种移动终端及其修复方法
CN107315616B (zh) 一种固件的加载方法、装置及电子设备
EP2960777B1 (en) Data protection method, apparatus and device
CN104407888A (zh) 一种嵌入式设备启动方法及系统
EP3153968B1 (en) Multi-system terminal system updating method, updating device and terminal
CN102750191A (zh) 用于启动固态非易失性存储设备内的刷新操作的方法
CN101944051A (zh) 片上多备份的高可靠嵌入式系统固件及其工作方法
JP6139386B2 (ja) プログラマブルコントローラ
CN112154399B (zh) 摇杆校准方法、遥控终端及计算机可读存储介质
CN106775610A (zh) 一种电子设备启动方法及一种电子设备
JP2015022521A (ja) セキュアブート方法、組み込み機器、セキュアブート装置およびセキュアブートプログラム
CN102360316A (zh) 一次性可编程存储器中启动程序的运行方法及装置
US11467558B2 (en) Interruption recovery method for machine tool machining file and machine tool applying same
CN108089892B (zh) 一种系统安全启动的方法、装置、机顶盒及存储介质
CN110069360A (zh) 一种电机控制器数据的存储、读取方法及装置
CN108196975B (zh) 基于多校验和的数据验证方法、装置及存储介质
CN102520223B (zh) 用于电能表的软件抗干扰方法
CN111124760B (zh) 一种基于uboot的嵌入式设备启动方法及装置
CN103970616A (zh) 数据恢复系统及方法
US20120221334A1 (en) Security system and method
CN115858396B (zh) 用于芯片验证的方法及装置、电子设备、存储介质
KR20160124045A (ko) 스크롤 기반의 사용자 인증장치, 사용자 인증 방법, 및 사용자 인증 어플리케이션
KR101462408B1 (ko) 자동 계통 병입 장치 및 그 제어방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant