用于保護測控裝置的嵌入式Linux系統啟動方法
【專利摘要】本發(fā)明公開了一種用于保護測控裝置的嵌入式Linux系統啟動方法,包括Uboot啟動、Linux內核啟動和文件系統啟動;該啟動方法應用于中低壓保護測控裝置,使用了多種存儲介質啟動,并能自動調用次優(yōu)先級的啟動存儲介質重新加載該階段啟動程序,即使在出現啟動異常的情況下,如啟動文件丟失、損壞,存儲介質損壞等,能夠確保測控裝置系統的正常啟動和運行。
【專利說明】用于保護測控裝置的嵌入式Linux系統啟動方法
【技術領域】
[0001]本發(fā)明涉及用于保護測控裝置的嵌入式Linux系統啟動方法。
【背景技術】
[0002]隨著嵌入式系統的廣泛普及,尤其是在一些工業(yè)控制和電力電網行業(yè)中的應用,對嵌入式系統的穩(wěn)定性提出了很高的要求,尤其是系統的啟動階段。一般嵌入式設備的系統都是存儲在Flash中的,由于Flash易產生壞塊而導致設備啟動時系統加載異常,正是基于這種背景下,提出了一種應用于電力系統保護測控領域的嵌入式Linux系統啟動方法。
【發(fā)明內容】
[0003]本發(fā)明要解決的技術問題在于針對現有技術中的缺陷,提供一種種用于保護測控裝置的嵌入式Linux系統啟動方法。
[0004]本發(fā)明解決其技術問題所采用的技術方案是:一種用于保護測控裝置的嵌入式Linux系統啟動方法,包括以下步驟:
1)測控裝置CPU的初始bootloader程序從flash存儲介質固定區(qū)域檢索并讀取啟動標記列表的Uboot程序啟動標記項,如果檢索到的標記正確則從默認啟動級別的存儲介質啟動,如果檢索到的標記錯誤則選擇次優(yōu)先級的存儲介質啟動;
2)Uboot程序初始化啟動標志,接著從flash存儲介質固定區(qū)域檢索并讀取啟動標記列表的Linux內核啟動標記項,如果檢索到的標記正確則從默認啟動級別的存儲介質啟動,如果檢索到的標記錯誤則選擇次優(yōu)先級的存儲介質啟動,Uboot程序從所選擇的存儲介質加載Linux內核并啟動,Linux內核設置Uboot程序的啟動標志為正常,且復位Linux內核的啟動標志為初始狀態(tài);
3)Linux內核啟動后從flash啟動存儲介質固定區(qū)域檢索并讀取啟動標記列表的文件系統啟動標記項,如果檢索到的文件系統啟動標記正確則從默認啟動級別的存儲介質掛載該存儲介質的文件系統,如果檢索到的文件系統啟動標記錯誤則選擇次優(yōu)先級的存儲介質掛載該存儲介質的文件系統,直到文件系統分區(qū)被Linux內核成功掛載,成功掛載后設置Linux內核的啟動標志為正常,啟動完成。
[0005]按上述方案,該嵌入式Linux系統啟動方法的flash存儲介質支持Nand flash、Spi flash 和 Nor flash。
[0006]按上述方案,所述flash存儲的啟動標記列表用于標示著三個啟動階段從不同存儲介質成功啟動標記,系統按照存儲介質對應的優(yōu)先級順序啟動,分別由上一啟動階段程序讀取和下一啟動階段程序置位,而由本階段啟動程序復位,當某一啟動階段出錯,則系統通過外置看門狗復位系統上電重啟,選擇次優(yōu)先級的啟動存儲介質重新加載該階段啟動程序。
[0007]按上述方案,步驟I)中在初始bootloader程序啟動時先用ECC算法校驗該flash存儲介質固定區(qū)域,校驗成功后在所有的存儲介質同步拷貝啟動標記列表。[0008]本發(fā)明產生的有益效果是:該啟動方法應用于中低壓保護測控裝置,使用了多種存儲介質啟動,并能自動調用次優(yōu)先級的啟動存儲介質重新加載該階段啟動程序,即使在出現啟動異常的情況下,如啟動文件丟失、損壞,存儲介質損壞等,能夠確保測控裝置系統的正常啟動和運行。
【專利附圖】
【附圖說明】
[0009]圖1為本發(fā)明測控裝置嵌入式系統結構示意圖;
圖2為Uboot、內核及文件系統在各存儲介質上的啟動優(yōu)先級示意圖。
【具體實施方式】
[0010]為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0011]參見圖1-圖2,測控裝置嵌入式系統啟動需要依次經過3個階段分別為=Uboot啟動、內核啟動和文件系統啟動,啟動的任何階段出現問題都不能完成后續(xù)啟動;
本發(fā)明提供一種用于保護測控裝置的嵌入式Linux系統啟動方法,包括以下步驟:
1)測控裝置CPU的初始bootloader程序從Nandflash固定區(qū)域檢索并讀取啟動標記列表的Uboot程序啟動標記項,如果檢索到的標記正確則從默認啟動級別的存儲介質啟動,如果檢索到的標記錯誤則選擇次優(yōu)先級的存儲介質啟動;
2)Uboot程序初始化啟動標志,接著從Nandflash固定區(qū)域檢索并讀取啟動標記列表的Linux內核啟動標記項,如果檢索到的標記正確則從默認啟動級別的存儲介質啟動,如果檢索到的標記錯誤則選擇次優(yōu)先級的存儲介質啟動,Uboot程序從所選擇的存儲介質加載Linux內核并啟動,Linux內核設置Uboot程序的啟動標志為正常,且復位Linux內核的啟動標志為初始狀態(tài);
3)Linux內核啟動后從Nand flash固定區(qū)域檢索并讀取啟動標記列表的文件系統啟動標記項,如果檢索到的文件系統啟動標記正確則從默認啟動級別的存儲介質掛載該存儲介質的文件系統,如果檢索到的文件系統啟動標記錯誤則選擇次優(yōu)先級的存儲介質掛載該存儲介質的文件系統,直到文件系統分區(qū)被Linux內核成功掛載,成功掛載后設置Linux內核的啟動標志為正常,啟動完成。
[0012]嵌入式Linux系統啟動方法的flash存儲介質支持Nand flash、Spi flash和Norflash。
[0013]進一步的,CPU的初始bootloader程序從Nand flash固定區(qū)域檢索啟動標記列表的uboot啟動標記項,標記正確則從默認啟動級別的存儲介質啟動,標記錯誤則選擇次優(yōu)先級的存儲介質啟動;flash存儲的啟動標記列表用于標示著三個啟動階段從不同存儲介質成功啟動標記,系統按照存儲介質對應的優(yōu)先級順序啟動,分別由上一啟動階段程序讀取和下一啟動階段程序置位,而由本階段啟動程序復位,當某一啟動階段出錯,則系統通過外置看門狗復位系統上電重啟,選擇次優(yōu)先級的啟動存儲介質重新加載該階段啟動程序;如Uboot程序從nand flash啟動出錯,則啟動標記列表的Uboot程序的nand_flag標志復位為初始狀態(tài)且未被Linux內核設置為正常啟動狀態(tài),Linux系統通過外置看門狗復位系統上電重啟,bootloader程序讀到Uboot程序啟動標志為非正常,選擇次優(yōu)先級的norflash方式加載uboot。
[0014]為了防止存放啟動標記列表的flash區(qū)出現壞塊,在步驟I)中初始bootloader程序啟動時先用ECC算法校驗該flash存儲介質固定區(qū)域,并且在不同的存儲介質同步多分拷貝。
[0015]bootloader程序的說明:bootloader程序是裝置系統CPU啟動后最先開始執(zhí)行的程序,負責初始化工作和加載Uboot程序。
[0016]Uboot程序的說明:Uboot是一個帶交互式功能的程序,負責外圍硬件的初始化,加載Linux內核和文件系統到存儲介質,引導Linux內核啟動。
[0017]應當理解的是,對本領域普通技術人員來說,可以根據上述說明加以改進或變換,而所有這些改進和變換都應屬于本發(fā)明所附權利要求的保護范圍。以上內容是結合具體的實施方式對本發(fā)明所做的進一步詳細說明,不能認定本發(fā)明的具體實施只局限于這些說明。對于本發(fā)明所屬的【技術領域】的普通技術人員來說,在不脫離本發(fā)明構思的前提下,還可以做出若干簡單推演或替換,都應當視為屬于本發(fā)明的保護范圍。
【權利要求】
1.用于保護測控裝置的嵌入式Linux系統啟動方法,其特征在于:其包括以下步驟: 步驟I )、測控裝置CPU的初始bootloader程序從flash存儲介質固定區(qū)域檢索并讀取啟動標記列表的Uboot程序啟動標記項,如果檢索到的標記正確則從默認啟動級別的存儲介質啟動,如果檢索到的標記錯誤則選擇次優(yōu)先級的存儲介質啟動; 步驟2 )、Uboot程序初始化啟動標志,接著從flash存儲介質固定區(qū)域檢索并讀取啟動標記列表的Linux內核啟動標記項,如果檢索到的標記正確則從默認啟動級別的存儲介質啟動,如果檢索到的標記錯誤則選擇次優(yōu)先級的存儲介質啟動,Uboot程序從所選擇的存儲介質加載Linux內核并啟動,Linux內核設置Uboot程序的啟動標志為正常,且復位Linux內核的啟動標志為初始狀態(tài); 步驟3)、Linux內核啟動后從flash啟動存儲介質固定區(qū)域檢索并讀取啟動標記列表的文件系統啟動標記項,如果檢索到的文件系統啟動標記正確則從默認啟動級別的存儲介質掛載該存儲介質的文件系統,如果檢索到的文件系統啟動標記錯誤則選擇次優(yōu)先級的存儲介質掛載該存儲介質的文件系統,直到文件系統分區(qū)被Linux內核成功掛載,成功掛載后設置Linux內核的啟動標志為正常,啟動完成。
2.根據權利要求1所述的用于保護測控裝置的嵌入式Linux系統啟動方法,其特征在于:該嵌入式Linux系統啟動方法的flash存儲介質支持Nand flash、Spi flash和Norflash。
3.根據權利要求1所述的用于保護測控裝置的嵌入式Linux系統啟動方法,其特征在于:基于flash存儲的啟動標記列表用于標示著三個啟動階段從不同存儲介質成功啟動標記,系統按照存儲介質對應的優(yōu)先級順序啟動,分別由上一啟動階段程序讀取和下一啟動階段程序置位,而由本階段啟動程序復位,當某一啟動階段出錯,則系統通過外置看門狗復位系統上電重啟,選擇次優(yōu)先級的啟動存儲介質重新加載該階段啟動程序。 如Uboot程序從nand flash啟動出錯,則啟動標記列表的Uboot程序的nand_flag標志復位為初始狀態(tài)且未被Linux內核設置為正常啟動狀態(tài),Linux系統通過外置看門狗復位系統上電重啟,bootloader程序讀到Uboot程序啟動標志為非正常,選擇次優(yōu)先級的norflash方式加載uboot。
4.根據權利要求1所述的用于保護測控裝置的嵌入式系統啟動方法,其特征在于:在初始bootloader程序啟動時先用ECC算法校驗該flash存儲介質固定區(qū)域,校驗成功后在所有的存儲介質同步拷貝啟動標記列表。
【文檔編號】G06F9/445GK103761124SQ201410004153
【公開日】2014年4月30日 申請日期:2014年1月6日 優(yōu)先權日:2014年1月6日
【發(fā)明者】盧偉, 劉長虎, 朱寶, 崔新友, 章文學, 易佳, 黃 俊 申請人:武漢烽火富華電氣有限責任公司