一種嵌入式系統升級備份方法與流程
2023-10-07 02:59:14 1

本發明涉及通信設備技術領域,尤其涉及一種嵌入式系統升級備份方法。
背景技術:
嵌入式設備,主要由嵌入式處理器、相關支撐硬體和嵌入式軟體系統組成,它是集軟硬體於一體的可獨立工作的設備,其中嵌入式系統具有便利靈活、性能價格比高、嵌入性強等特點,可以嵌入到現有任何信息家電和工業控制系統中,因而被廣泛使用,其中嵌入式系統在使用處於系統穩定以及功能升級往往涉及到系統文件的升級;現有的嵌入式設備的系統在升級過程中,會把升級的系統文件直接覆蓋原來舊的系統文件,但是這種升級方式存在以下問題,如升級過程中突然斷電或版本有誤,就會造成整個系統文件無法正常運行,因此提高嵌入式設備在系統文件升級中存在的不穩定性,以及對升級的系統文件的有效性提供及時的驗證是當下亟需解決的問題。
技術實現要素:
針對現有技術中嵌入式設備在升級系統文件的過程中存在的上述問題,現提供一種旨在實現提高嵌入式設備在升級系統文件時的穩定性,以及對升級的系統文件的有效實行進行驗證的嵌入式系統升級備份方法。
具體技術方案如下:
一種嵌入式系統升級備份方法,適用於linux系統,其中,提供兩個系統啟動分區,兩個所述系統啟動分區分別保存有系統文件;
提供一分區信息表,用以分別保存每個所述系統文件對應的所述系統啟動分區的存儲路徑,以及用於表示所述系統文件是否經過升級的版本升級標誌;
具體包括以下步驟:
步驟s1、加載所述分區信息表;
步驟s2、於所述分區信息表中判斷所述系統文件中是否存在對應的所述版本升級標誌;
並將包含所述版本升級標誌的所述系統文件所在的所述系統啟動分區定義為備份啟動分區,以及將不包含所述版本升級標誌的所述系統文件所在的所述系統啟動分區定義為運行啟動分區;
步驟s3、根據所述版本升級標誌進入所述備份啟動分區,並形成一系統測試標記;
步驟s4、根據所述系統測試標記於所述備份啟動分區中加載所述系統文件,並驗證當前加載的所述系統文件是否有效;
步驟s5、若驗證有效,將所述系統測試標記設置為正常啟動狀態,並於設備重啟之後,從所述備份啟動分區加載所述系統文件,並在下次所述設備重啟時返回所述步驟s1;
步驟s6、若驗證無效,將所述系統測試標記設置為正常啟動狀態,以及清除所述版本升級標誌,並於所述設備重啟之後,從所述運行啟動分區加載所述系統文件,並在下次所述設備重啟時返回所述步驟s1。
優選的,所述系統文件包括linux系統的內核文件以及基於所述內核文件的文件系統。
優選的,所述分區信息表還包括,所述系統文件的升級啟動次數,在所述步驟s4之前還包括對所述系統文件的所述升級啟動次數的驗證;
具體包括以下步驟:
步驟a、判斷所述分區信息表中包含所述升級標誌的所述系統文件對應的所述升級啟動次數是否超過一預設值;
步驟b、若超過所述預設值,清除所述分區信息表中的所述系統文件對應的所述升級標誌,以及所述升級啟動次數,並保存所述分區信息表後,並在下次所述設備重啟時返回所述步驟s1;
步驟c、若未超過,則執行步驟s4。
優選的,所述步驟b中,所述linux系統默認從所述運行啟動分區啟動以引導啟動所述系統文件。
優選的,在所述步驟s4中,提供一檢測程序,用以檢測加載的所述系統文件運行是否出現異常;
如是,引導所述設備重新啟動;
如否,執行步驟s5。
優選的,提供一啟動引導程序,用以設備進入對應的所述系統啟動分區中運行所述系統文件。
優選的,所述設備提供一內存模塊,所述內存模塊用以將獲取的升級文件寫入所述兩個系統啟動分區中的任何一個所述系統文件中;
所述升級文件包括校驗信息碼,所述校驗信息碼用以驗證所述升級文件的完整性。
上述技術方案具有如下優點或有益效果:提供兩個啟動分區,通過實時判斷升級標誌從而確定備份啟動分區和運行啟動分區,其中備份分區保存有升級的系統文件,進一步的對備份分區中的系統文件的有效性提供驗證保證升級的系統文件的有效性,克服了現有技術中升級系統文件穩定性低,以及缺少對升級的系統文件有效性的驗證的問題。
附圖說明
參考所附附圖,以更加充分的描述本發明的實施例。然而,所附附圖僅用於說明和闡述,並不構成對本發明範圍的限制。
圖1為本發明一種嵌入式系統升級備份方法實施例的流程圖;
圖2為本發明一種嵌入式系統升級備份方法實施例中,關於驗證所述升級啟動次數的流程圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動的前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
需要說明的是,在不衝突的情況下,本發明中的實施例及實施例中的特徵可以相互組合。
下面結合附圖和具體實施例對本發明作進一步說明,但不作為本發明的限定。
本發明的技術方案中包括一種。一種嵌入式系統升級備份方法。
一種嵌入式系統升級備份方法的實施例,適用於linux系統,其特徵在於,提供兩個系統啟動分區,兩個系統啟動分區分別保存有系統文件;
提供一分區信息表,用以分別保存每個系統文件對應的系統啟動分區的存儲路徑,以及用於表示系統文件是否經過升級的版本升級標誌;
如圖1所示,具體包括以下步驟:
步驟s1、加載分區信息表;
步驟s2、於分區信息表中判斷系統文件中是否存在對應的版本升級標誌,並將包含版本升級標誌的系統文件所在的系統啟動分區定義為備份啟動分區,以及將不包含版本升級標誌的系統文件所在的系統啟動分區定義為運行啟動分區;
步驟s3、根據版本升級標誌進入備份啟動分區,並形成一系統測試標記;
步驟s4、根據系統測試標記於備份啟動分區中加載系統文件,並驗證當前加載的系統文件是否有效;
步驟s5、若驗證有效,將系統測試標記設置為正常啟動狀態,並於設備重啟之後,從備份啟動分區加載系統文件,並在下次linux系統重啟時返回步驟s1;
步驟s6、若驗證無效,將系統測試標記設置為正常啟動狀態,以及清除版本升級標誌,並設備之後,從運行啟動分區加載系統文件,並在下次優選的重啟時返回步驟s1。
上述技術方案中,在設備的flash存儲器中設置兩個啟動分區,兩個啟動分區中均設置有系統文件,在升級系統文件時,於當前處於非運行狀態的啟動區中下載升級的系統文件;
其中分區信息表記可錄有每個分區中的啟動分區的地址信息,以及版本升級標誌等;
當設備於下載升級的系統文件後,需要驗證升級的系統文件是否有效,設備於啟動之後加載分區信息表,判斷分區信息表中是否存在版本升級標誌,如存在,當判斷存在版本升級標誌時,將包含版本升級標誌的啟動分區定義為備份啟動分區,將另一啟動分區定義為運行啟動分區;
設備根據版本升級標誌於備份啟動分區啟動並形成一系統測試標記,根據系統測試標記於備份啟動分區中加載升級的系統文件,並對加載的系統文件進行驗證判斷是否有效,若驗證有效,將系統測試標記設置為正常啟動狀態,並於設備重啟之後,從備份啟動分區加載系統文件;若驗證無效,將系統測試標記設置為正常啟動狀態,以及清除版本升級標誌,並於設備重啟之後,從運行啟動分區加載系統文件。
需要說明的是,上述的備份啟動分區和運行分區不是確定的,其之間是可以互相轉換的,如當備份啟動分區中升級的系統文件有效,則設備重新啟動後將從備份啟動分區中加載系統文件。
其中分區信息表的數據結構結構如下:
在一種較優的實施方式中,系統文件包括linux的內核文件以及基於內核文件的文件系統。
上述技術方案中,在形成系統文件時,將內核文件以及基於內核文件的文件系統合成生成系統文件並添加文件頭信息,具體文件頭文件格式如下:
其頭文件可包括,用來指示內核文件和文件系統的版本生成的時間,長度,和校驗和等等;
當系統文件的內核kernel啟動,通過解析bootargs的mtdparts,動態創建mtd,並根據bootargs的root指定參數來mount根目錄,從而啟動linux的用戶層運行環境。
在一種較優的實施方式中,分區信息表還包括,系統文件的升級啟動次數,在步驟s4之前還包括對系統文件的升級啟動次數的驗證;
如圖2所示,具體包括以下步驟:
步驟a、判斷分區信息表中包含升級標誌的系統文件對應的升級啟動次數是否超過一預設值;
步驟b、若超過預設值,清除分區信息表中的系統文件對應的升級標誌,以及升級啟動次數,並保存分區信息表後,並在下次設備重啟時返回步驟s1;
步驟d、若未超過,則執行步驟s4。
上述技術方案中,升級啟動的預設值為16次,系統文件每升級每啟動一次累計記錄一次啟動次數,若升級啟動的達到16次以上,則表示此時的系統文件升級失敗,無法完成升級系統文件的加載,此時可通過設備重新啟動於系統啟動分區中重新引導系統文件啟動。
在一種較優的實施方式中,步驟b中,linux系統默認從運行啟動分區啟動以引導啟動系統文件。
在一種較優的實施方式中,在步驟s4中,提供一檢測程序,用以檢測加載的系統文件運行是否出現異常;
如是,引導設備重新啟動;
如否,執行步驟s5。
上述技術方案中,檢測程序為看門狗程序。
在一種較優的實施方式中,提供一啟動引導程序,用以引導linux系統進入對應的系統啟動分區中運行系統文件。
在本實施例中引導啟動程序為uboot啟動程序。
在一種較優的實施方式中,設備提供一內存模塊,內存模塊用以將獲取的升級文件寫入兩個啟動分區中的任何一個以形成系統文件。
升級文件包括校驗信息碼,校驗信息碼用以驗證升級文件的完整性。
以上所述僅為本發明較佳的實施例,並非因此限制本發明的實施方式及保護範圍,對於本領域技術人員而言,應當能夠意識到凡運用本發明說明書及圖示內容所作出的等同替換和顯而易見的變化所得到的方案,均應當包含在本發明的保護範圍內。