專利名稱:一種嵌入式設備配置數據保護方法
技術領域:
本發(fā)明涉及一種數據保護方法,尤其涉及一種使用FLASH作為存儲器的嵌入 式設備的配置數據在異常掉電情況下的數據完好性保護方法。
背景技術:
目前,嵌入式設備通常使用FLASH作為配置數據存儲器,設備的配置和一些 重要數據都保存在FLASH內。設備在使用過程中,程序的運行和用戶操作將更新 或修改配置數據,這時需要在FLASH將新的數據替換舊數據,即刷新FLASH存儲 的數據。由于FLASH的刷新操作需要先清空存儲塊,然后再往該存儲塊內寫入數 據, 一旦在刷新操作過程中出現異常掉電情況,將導致配置數據被清空或是數 據不完整等嚴重后果,設備下次將無法加載配置數據正常啟動。
發(fā)明內容
為了解決現有FLASH刷新操作過程中異常掉電導致的配置數據清空、不完 整等技術問題,本發(fā)明提供一種嵌入式設備配置數據保護方法,該保護方法不 僅能有效保證配置數據保存的完整性,而且即便出現異常也能保證數據可恢復 性,極端情況下也能獲取設備默認配置保證設備能正常啟動。
本發(fā)明解決其技術問題所采用的技術方案是 一種嵌入式設備配置數據保 護方法,嵌入式設備使用FLASH作為配置數據存儲器,FLASH存儲器劃分成程序 區(qū),配置一和配置二;該方法包括讀配置操作過程和寫配置操作過程,其中, 所述讀配置操作過程包括以下步驟
(1) 設備啟動后,開始校驗配置一數據,校驗正常后校驗配置二數據,配 置二校驗正常后讀取配置一數據,讀取完成后讀配置操作完成;
(2) 當校驗配置一正確后校驗配置二錯誤的時候,先取出配置一的數據恢 復配置二的數據,正常恢復完成后,讀取配置一數據,讀取完成后讀配置操作 完成;(3) 當校驗配置一失敗時,校驗配置二數據,如果配置二數據正確,取出
配置二的數據恢復配置一的數據,正常恢復完成后,讀取配置一數據,讀取完
成后讀配置操作完成;
(4) 當校驗配置一失敗時,校驗配置二數據,如果配置二數據失敗,取出 程序區(qū)的默認配置讀取完成后讀配置操作完成;
所述寫配置操作過程具體為設備工作時寫配置數據,先刷新配置一數據, 等配置一數據操作完成后,刷新配置二數據,等配置二數據操作完成后,寫配 置操作結束。
本發(fā)明的有益效果是,本發(fā)明的方法保證嵌入式設備的FLASH存儲器內配 置數據完整,且出錯數據可恢復。本方法操作流程簡單,易于管理。
圖l是本發(fā)明的操作流程圖。
具體實施例方式
由于FLASH存儲器采用分塊操作方式,在操作其中 一個塊數據的時候不會影 響到其它塊數據的內容,且FLASH在讀數據的模式下不會對塊內數據產生影響, 在寫數據的模式下,即刷新數據操作的時候,會先清空塊內數據,再重寫數據。 因此將FLASH劃分為3個存儲區(qū)域程序區(qū)、配置一和配置二。程序區(qū)為只讀模 式,其中一部分保存了設備的默認配置,由于保證數據不被改寫,該默認配置 可以保證其完好性。配置一和配置二作為設備當前的配置數據保存和操作區(qū)域, 在操作過程中,同一時刻保證只有一個配置區(qū)被刷新。在設備啟動后讀取設備 配置,先校驗配置一和配置二的正確性,如果都正確,則從配置一獲取系統(tǒng)配 置后工作;如果其中某一個配置區(qū)校驗出錯,則先從正確的配置區(qū)獲取正確的 配置,將錯誤的配置區(qū)刷新,寫入正確的配置,然后從配置一獲取系統(tǒng)配置后 工作;如果兩個配置區(qū)都校驗出錯,則從程序區(qū)獲取默認配置,重新寫入配置 一和配置二,并使用默認配置工作。在設備運行過程中需要刷新配置區(qū)數據, 則需要先將配置一刷新,確認無誤后刷新配置二的數據,保證正確后,更新操 作才算完成。這樣即便在刷新操作過程中發(fā)生異常斷電,也可以保證配置一和 配置二中至少有一個配置數據是完整的,從而保證設備啟動時能獲得正確的配 置數據。即便出現極端情況,配置一和配置二數據都損壞,系統(tǒng)也能從程序區(qū)的默認配置中獲得默認配置數據,正常啟動。
FLASH存儲器采用分塊操作方式,在操作其中一個塊數據的時候不會影響到 其它塊數據的內容,且FLASH在讀數據的模式下不會對塊內數據產生影響,只有 在寫數據的模式下,即刷新數據操作的時候,會先清空塊內數據,再重寫數據。 因此寫模式過程中的異常斷電,將可能導致當前操作塊內數據因沒有寫完整造 成數據區(qū)的損壞。將FLASH存儲器劃分成程序區(qū),配置一和配置二,在程序內將 程序區(qū)置為只讀模式,配置一和配置二作為設備配置數據的保存位置,同一時 刻保證只有一個塊被刷新操作,從而保證整個FLASH存儲器內,至少有一份配置 區(qū)是完好的。即便是出現極端情況,配置一和配置二數據都被損壞,仍能夠獲 取程序區(qū)內預存的默認配置,保證系統(tǒng)正常啟動后重新創(chuàng)建配置區(qū)數據。
下面結合附圖和實施例進一步說明本發(fā)明,本發(fā)明的目的和效果將變得更 加明顯。
如圖1所示,嵌入式設備使用FLASH作為配置數據存儲器,將FLASH存儲器劃 分成程序區(qū),配置一和配置二,本發(fā)明的方法讀配置操作和寫配置操作,其中, 讀配置操作包括以下步驟-
1、 設備啟動后,開始校驗配置一數據,校驗正常后校驗配置二數據,配置二校 驗正常后讀取配置一數據,讀取完成后讀配置操作完成。
2、 當校驗配置一正確后校驗配置二錯誤的時候,先取出配置一的數據恢復配置 二的數據,正?;謴屯瓿珊?,讀取配置一數據,讀取完成后讀配置操作完成。
3、 當校驗配置一失敗時,校驗配置二數據,如果配置二數據正確,取出配置二 的數據恢復配置一的數據,正?;謴屯瓿珊?,讀取配置一數據,讀取完成后讀 配置操作完成。
4、 當校驗配置一失敗時,校驗配置二數據,如果配置二數據失敗,取出程序區(qū) 的默認配置讀取完成后讀配置操作完成。
寫配置操作具體為設備工作時寫配置數據,先刷新配置一數據,等配置 一數據操作完成后,刷新配置二數據,等配置二數據操作完成后,寫配置操作結束。
本發(fā)明采用FLASH分塊保存配置數據,使用雙配置區(qū)和默認配置區(qū)保存特 定配置數據,通過校驗配置數據正確性,使用正確的配置數據,并恢復錯誤配 置區(qū)的配置數據的讀數據過程,和使用刷新配置數據時雙配置區(qū)逐一刷新的寫 數據過程的方法,保證嵌入式設備配置數據的完整性和可恢復性。
權利要求
1、一種嵌入式設備配置數據保護方法,嵌入式設備使用FLASH作為配置數據存儲器,FLASH存儲器劃分成程序區(qū),配置一和配置二;其特征在于,該方法包括讀配置操作過程和寫配置操作過程。其中,所述讀配置操作過程包括以下步驟(1)設備啟動后,開始校驗配置一數據,校驗正常后校驗配置二數據,配置二校驗正常后讀取配置一數據,讀取完成后讀配置操作完成。(2)當校驗配置一正確后校驗配置二錯誤的時候,先取出配置一的數據恢復配置二的數據,正常恢復完成后,讀取配置一數據,讀取完成后讀配置操作完成。(3)當校驗配置一失敗時,校驗配置二數據,如果配置二數據正確,取出配置二的數據恢復配置一的數據,正?;謴屯瓿珊螅x取配置一數據,讀取完成后讀配置操作完成。(4)當校驗配置一失敗時,校驗配置二數據,如果配置二數據失敗,取出程序區(qū)的默認配置讀取完成后讀配置操作完成。所述寫配置操作過程具體為設備工作時寫配置數據,先刷新配置一數據,等配置一數據操作完成后,刷新配置二數據,等配置二數據操作完成后,寫配置操作結束。
全文摘要
本發(fā)明公開了一種嵌入式設備配置數據保護方法,采用FLASH分塊保存配置數據,使用雙配置區(qū)和默認配置區(qū)保存特定配置數據,通過校驗配置數據正確性,使用正確的配置數據,并恢復錯誤配置區(qū)的配置數據的讀數據過程,和使用刷新配置數據時雙配置區(qū)逐一刷新的寫數據過程的方法,保證嵌入式設備配置數據的完整性和可恢復性。
文檔編號G06F12/16GK101515259SQ200910096989
公開日2009年8月26日 申請日期2009年3月26日 優(yōu)先權日2009年3月26日
發(fā)明者傅利泉, 張興明, 俊 殷 申請人:浙江大華技術股份有限公司