一種嵌入式設備以及一種軟件升級方法
【技術領域】
[0001]本發明涉及嵌入式開發領域,特別是涉及一種嵌入式設備以及一種軟件升級方法。
【背景技術】
[0002]在嵌入式設備中,系統軟件一般都存放在可擦寫中存儲中,在可用性要求不高的設備中,系統軟件一般只有一份,在出現人為誤操作、存儲設備損壞等情況時,一般都無法恢復。在可用性要求較高的設備中,比如電信設備,通常系統軟件都有兩份,并且會為備份,但是系統的升級策略,相對比較簡單和直接,無法適應系統碰到的所有情況,且不能對軟件的升級過程進行較好的控制。
【發明內容】
[0003]鑒于以上所述現有技術的缺點,本發明的目的在于提供一種嵌入式設備以及一種軟件升級方法,用于解決現有技術中升級過程簡單,缺乏狀態控制,且無法根據用戶的多種升級需求對軟件升級進行較好的控制的問題。
[0004]為實現上述目的及其他相關目的,本發明提供一種嵌入式設備,包括:狀態機,用以根據檢測的激活分區的軟件版本獲得的激活分區版本標識符以及根據檢測的非激活分區的軟件版本獲得的非激活分區版本標識符,確定其所處的狀態;網管模塊,用以根據檢測的所述狀態機的狀態或接收的外部控制命令,執行所述激活分區或所述非激活分區的軟件的版本更新或回退操作。
[0005]可選的,所述激活分區版本標識符為O時,標識所述激活分區的所述軟件版本為正常版本,所述激活分區版本標示符為I時,標識所述激活分區的所述軟件版本為新版本;當所述非激活分區版本標識符為O時,標識所述非激活分區的所述軟件版本為正常版本,當所述非激活分區版本標識符為I時,標識所述非激活分區的所述軟件版本為新版本,當所述非激活分區版本標識符為-1時,標識所述非激活分區的所述非激活分區不具有相關軟件。
[0006]可選的,所述狀態機至少包括以下狀態中的一種或多種:1)當所述激活分區版本標識符為O且所述非激活分區版本標識符為O時,所述狀態機處于正常狀態;2)當所述激活分區版本標識符為0,且所述非激活分區版本標識符為I時,所述狀態機處于需復位狀態;3)當所述激活分區版本標識符為I,且所述非激活分區版本標識符為O時,所述狀態機處于需同步狀態;4)當所述激活分區版本標識符為1,且所述非激活分區版本標識符為I時,所述狀態機處于待提交狀態;5)當所述激活分區版本標識符為0,且所述非激活分區版本標識符為-1時,或當所述激活分區版本標識符為1,且所述非激活分區版本標識符為-1時,所述狀態機處于異常狀態。
[0007]可選的,所述網管模塊當檢測到所述狀態機處于所述異常狀態時,令所述非激活分區根據所述激活分區中的所述軟件執行更新操作。
[0008]可選的,當所述狀態機處于所述正常狀態時,接收到外部升級指令時,令所述非激活分區根據預設通道獲取更新的軟件,以令所述狀態機處于所述需復位狀態;所述網管模塊當檢測到所述狀態機處于所述需復位狀態時,重啟所述嵌入式設備,令所述激活分區根據所述非激活分區的軟件執行更新操作,以令所述狀態機處于所述需同步狀態;所述網管模塊當檢測到所述狀態機處于所述需同步狀態時,令所述非激活分區根據所述激活分區的軟件執行更新操作,以令所述狀態機處于所述待提交狀態,且當檢測到所述激活分區中的軟件運行異常時,令所述激活分區根據所述非激活分區的軟件執行回退操作,且令所述狀態機處于需復位狀態;所述網管模塊當檢測到所述狀態機處于所述待提交狀態時,確認所述激活分區以及所述非激活分區的軟件升級完成,并令所述激活分區版本標識符為O且所述非激活分區版本標識符為0,所述狀態機處于正常狀態。
[0009]為實現上述目的及其他相關目的,本發明還提供一種軟件升級方法,應用于一嵌入式設備中,包括以下步驟:根據檢測的激活分區的軟件版本獲得的激活分區版本標識符以及根據檢測的非激活分區的軟件版本獲得的非激活分區版本標識符,確定一狀態機所處的狀態;根據檢測的所述狀態機的狀態或接收的外部控制命令,執行所述激活分區或所述非激活分區的軟件的版本更新或回退操作。
[0010]可選的,所述激活分區版本標識符為O時,標識所述激活分區的所述軟件版本為正常版本,所述激活分區版本標示符為I時,標識所述激活分區的所述軟件版本為新版本;當所述非激活分區版本標識符為O時,標識所述非激活分區的所述軟件版本為正常版本,當所述非激活分區版本標識符為I時,標識所述非激活分區的所述軟件版本為新版本,當所述非激活分區版本標識符為-1時,標識所述非激活分區的所述非激活分區不具有相關軟件。
[0011]可選的,所述狀態機至少包括以下狀態中的一種或多種:1)當所述激活分區版本標識符為O且所述非激活分區版本標識符為O時,所述狀態機處于正常狀態;2)當所述激活分區版本標識符為0,且所述非激活分區版本標識符為I時,所述狀態機處于需復位狀態;3)當所述激活分區版本標識符為I,且所述非激活分區版本標識符為O時,所述狀態機處于需同步狀態;4)當所述激活分區版本標識符為1,且所述非激活分區版本標識符為I時,所述狀態機處于待提交狀態;5)當所述激活分區版本標識符為0,且所述非激活分區版本標識符為-1時,或當所述激活分區版本標識符為1,且所述非激活分區版本標識符為-1時,所述狀態機處于異常狀態。
[0012]可選的,當檢測到所述狀態機處于所述異常狀態時,令所述非激活分區根據所述激活分區中的所述軟件執行更新操作。
[0013]可選的,當所述狀態機處于所述正常狀態時,接收到外部升級指令時,令所述非激活分區根據預設通道獲取更新的軟件,以令所述狀態機處于所述需復位狀態;所述網管模塊當檢測到所述狀態機處于所述需復位狀態時,重啟所述嵌入式設備,令所述激活分區根據所述非激活分區的軟件執行更新操作,以令所述狀態機處于所述需同步狀態;所述網管模塊當檢測到所述狀態機處于所述需同步狀態時,令所述非激活分區根據所述激活分區的軟件執行更新操作,以令所述狀態機處于所述待提交狀態,且當檢測到所述激活分區中的軟件運行異常時,令所述激活分區根據所述非激活分區的軟件執行回退操作,且令所述狀態機處于需復位狀態;所述網管模塊當檢測到所述狀態機處于所述待提交狀態時,確認所述激活分區以及所述非激活分區的軟件升級完成,并令所述激活分區版本標識符為O且所述非激活分區版本標識符為O,所述狀態機處于正常狀態。
[0014]如上所述,本發明的一種嵌入式設備以及一種軟件升級方法,根據檢測的激活分區的軟件版本獲得的激活分區版本標識符以及根據檢測的非激活分區的軟件版本獲得的非激活分區版本標識符,確定一狀態機所處的狀態;根據檢測的所述狀態機的狀態或接收的外部控制命令,執行所述激活分區或所述非激活分區的軟件的版本更新或回退操作。本發明可控制升級過程中各種狀態,使其從不可控變為可控。使升級過程變的更靈活,可以在各種需要的狀態中自由切換。且使升級過程更可靠,可以使系統從各種錯誤或不穩定狀態切換到穩定的可控的狀態。
【附圖說明】
[0015]圖1顯示為本發明的一種嵌入式設備在一具體實施例中的模塊示意圖。
[0016]圖2顯示為現有技術中嵌入式設備的兩份系統軟件存放于同一存儲設備中的示意圖。
[0017]圖3顯示為現有技術中嵌入式設備的兩份系統軟件存放于不同的存儲設備中的示意圖。