嵌入式linux仪器,一种基于嵌入式Linux设备双系统的启动方法
一種基于嵌入式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;
若該操作系統對應的啟動標志位的初
總結
以上是生活随笔為你收集整理的嵌入式linux仪器,一种基于嵌入式Linux设备双系统的启动方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux apache配置多线程,li
- 下一篇: linux蓝牙设备无法打开,linux