一種嵌入式設(shè)備數(shù)據(jù)讀寫方法及裝置的制造方法
【專利摘要】本發(fā)明公開了一種嵌入式設(shè)備的數(shù)據(jù)寫入方法及裝置,包括:計(jì)算目標(biāo)數(shù)據(jù)的第一校驗(yàn)值;將目標(biāo)數(shù)據(jù)和第一校驗(yàn)值寫入主存儲空間;從主存儲空間讀取目標(biāo)數(shù)據(jù),計(jì)算讀取的目標(biāo)數(shù)據(jù)的第二校驗(yàn)值,并在第一校驗(yàn)值、保存在主存儲空間內(nèi)的第一校驗(yàn)值與第二校驗(yàn)值相同時,將目標(biāo)數(shù)據(jù)和第一校驗(yàn)值寫入備份存儲空間;從備份存儲空間讀取與目標(biāo)數(shù)據(jù)相對應(yīng)的備份數(shù)據(jù),計(jì)算備份數(shù)據(jù)的第三校驗(yàn)值;若第一校驗(yàn)值、保存在備份存儲空間內(nèi)的第一校驗(yàn)值與第三校驗(yàn)值相同,則目標(biāo)數(shù)據(jù)寫入成功??梢?,利用這種寫入數(shù)據(jù)的方法,即使嵌入式設(shè)備在不穩(wěn)定的電源環(huán)境中進(jìn)行數(shù)據(jù)的寫入,也能保證數(shù)據(jù)的正確性;本發(fā)明還公開了一種嵌入式設(shè)備的數(shù)據(jù)讀取方法及裝置。
【專利說明】
一種嵌入式設(shè)備數(shù)據(jù)讀寫方法及裝置
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及嵌入式系統(tǒng)技術(shù)領(lǐng)域,更具體地說,涉及一種嵌入式設(shè)備數(shù)據(jù)讀寫方法及裝置。
【背景技術(shù)】
[0002]隨著智能化系統(tǒng)的深入發(fā)展,越來越多的工業(yè)和民用裝置開始采用計(jì)算機(jī)系統(tǒng)作為設(shè)備的中央控制系統(tǒng)。在大部分的超低功耗、低成本、小型化的設(shè)備上,通常采用嵌入式計(jì)算機(jī)系統(tǒng)來運(yùn)行設(shè)備的控制程序,網(wǎng)絡(luò)通訊和數(shù)據(jù)存儲。在這些設(shè)備上,通常采用電池作為能源供應(yīng),這不是一個穩(wěn)定的供電裝置,即使使用固定電源,根據(jù)人們傳統(tǒng)的使用習(xí)慣,也不會像普通的計(jì)算機(jī)系統(tǒng)一樣在斷電之前提供一定的關(guān)機(jī)時間來保存數(shù)據(jù)。如果設(shè)備在存儲數(shù)據(jù)的過程中發(fā)生突然的斷電事件,就有很大的可能導(dǎo)致數(shù)據(jù)的損毀。如果這些數(shù)據(jù)關(guān)系到設(shè)備工作的關(guān)鍵信息,就有可能導(dǎo)致設(shè)備無法工作,出現(xiàn)故障。
[0003]在傳統(tǒng)的計(jì)算機(jī)系統(tǒng)中,通常采用以下的技術(shù)來保護(hù)設(shè)備運(yùn)行的核心數(shù)據(jù):使用硬件的電池管理系統(tǒng),檢測電池電量,在電池電量低至與定義的閾值時,保存數(shù)據(jù)并且關(guān)閉系統(tǒng);通過文件系統(tǒng)保存數(shù)據(jù),而文件系統(tǒng)提供了一些容錯和備份機(jī)制;核心部分?jǐn)?shù)據(jù),如B1S數(shù)據(jù),通常不需要改變,所以維持這些數(shù)據(jù)的耗電量非常低,可以使用獨(dú)立的可充電電池供電長達(dá)數(shù)年,在斷電時持續(xù)保護(hù)數(shù)據(jù),在使用外接電源供電時,對該電池充電;在斷電前,通知用戶采用固定的步驟:例如優(yōu)盤在從PC上彈出之前,需要在PC系統(tǒng)上完成固定的彈出步驟,否則數(shù)據(jù)可能損壞。
[0004]但是在嵌入式設(shè)備上,以上的方法并不能解決問題。原因是,嵌入式設(shè)備沒有統(tǒng)一的用戶界面與使用者交互,完成完整的關(guān)機(jī)流程。低成本嵌入式設(shè)備的硬件比較簡單,可用的存儲器比較簡單,大部分無法實(shí)現(xiàn)完整的、符合標(biāo)準(zhǔn)的安全文件系統(tǒng),而是對Flash物理設(shè)備進(jìn)行直接的讀寫;也沒有完整的電源管理和后備電源硬件。
[0005]因此,如何保證嵌入式設(shè)備在不可靠的電源環(huán)境下,安全可靠的讀寫數(shù)據(jù)是本領(lǐng)域技術(shù)人員需要解決的問題。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的在于提供一種嵌入式設(shè)備數(shù)據(jù)讀寫方法及裝置,以實(shí)現(xiàn)嵌入式設(shè)備在不可靠的電源環(huán)境下,安全可靠的讀寫數(shù)據(jù)。
[0007]為實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例提供了如下技術(shù)方案:
[0008]—種嵌入式設(shè)備的數(shù)據(jù)寫入方法,包括:
[0009]計(jì)算目標(biāo)數(shù)據(jù)的第一校驗(yàn)值;
[0010]將所述目標(biāo)數(shù)據(jù)和所述第一校驗(yàn)值寫入主存儲空間;
[0011 ]從所述主存儲空間讀取與所述目標(biāo)數(shù)據(jù)對應(yīng)的數(shù)據(jù),計(jì)算讀取的數(shù)據(jù)的第二校驗(yàn)值;
[0012]判斷所述第一校驗(yàn)值、保存在所述主存儲空間內(nèi)的第一校驗(yàn)值與所述第二校驗(yàn)值是否相同;若是,則將所述目標(biāo)數(shù)據(jù)和所述第一校驗(yàn)值寫入備份存儲空間;
[0013]從所述備份存儲空間讀取與所述目標(biāo)數(shù)據(jù)相對應(yīng)的備份數(shù)據(jù),計(jì)算所述備份數(shù)據(jù)的第三校驗(yàn)值;
[0014]判斷所述第一校驗(yàn)值、保存在所述備份存儲空間內(nèi)的第一校驗(yàn)值與所述第三校驗(yàn)值是否相同;若是,則所述目標(biāo)數(shù)據(jù)寫入成功。
[0015]一種嵌入式設(shè)備的數(shù)據(jù)寫入裝置,包括:
[0016]第一計(jì)算模塊,用于計(jì)算目標(biāo)數(shù)據(jù)的第一校驗(yàn)值;
[0017]第一寫入模塊,用于將所述目標(biāo)數(shù)據(jù)和所述第一校驗(yàn)值寫入主存儲空間;
[0018]第一讀取模塊,用于從所述主存儲空間讀取與所述目標(biāo)數(shù)據(jù)對應(yīng)的數(shù)據(jù);
[0019]第二計(jì)算模塊,用于計(jì)算讀取的數(shù)據(jù)的第二校驗(yàn)值;
[0020]第一判斷模塊,用于判斷所述第一校驗(yàn)值、保存在所述主存儲空間內(nèi)的第一校驗(yàn)值與所述第二校驗(yàn)值是否相同;若是,則觸發(fā)第二寫入模塊;
[0021 ]所述第二寫入模塊,用于將所述目標(biāo)數(shù)據(jù)和所述第一校驗(yàn)值寫入備份存儲空間;
[0022]第二讀取模塊,用于從所述備份存儲空間讀取與所述目標(biāo)數(shù)據(jù)相對應(yīng)的備份數(shù)據(jù);
[0023]第三計(jì)算模塊,用于計(jì)算所述備份數(shù)據(jù)的第三校驗(yàn)值;
[0024]第二判斷模塊,用于判斷所述第一校驗(yàn)值、保存在所述備份存儲空間內(nèi)的第一校驗(yàn)值與所述第三校驗(yàn)值是否相同;若是,則所述目標(biāo)數(shù)據(jù)寫入成功。
[0025]—種嵌入式設(shè)備的數(shù)據(jù)讀取方法,包括:
[0026]從主存儲空間讀取目標(biāo)數(shù)據(jù)和第四校驗(yàn)值;
[0027]計(jì)算所述目標(biāo)數(shù)據(jù)的第五校驗(yàn)值;
[0028]判斷所述第四校驗(yàn)值與所述第五校驗(yàn)值是否相同;若是,則從備份存儲空間讀取與所述目標(biāo)數(shù)據(jù)相對應(yīng)的備份數(shù)據(jù)和第六校驗(yàn)值;
[0029]計(jì)算所述備份數(shù)據(jù)的第七校驗(yàn)值;
[0030]判斷所述第六校驗(yàn)值與所述第七校驗(yàn)值是否相同;若是,則所述目標(biāo)數(shù)據(jù)讀取成功。
[0031]其中,若所述第四校驗(yàn)值與所述第五校驗(yàn)值不相同,所述第六校驗(yàn)值與所述第七校驗(yàn)值相同,則將所述備份數(shù)據(jù)和所述第六校驗(yàn)值寫入所述主存儲空間;
[0032]從所述主存儲空間讀取備份數(shù)據(jù),并計(jì)算讀取的備份數(shù)據(jù)的第八校驗(yàn)值;
[0033]判斷所述第六校驗(yàn)值與所述第八校驗(yàn)值是否相同;若是,則所述目標(biāo)數(shù)據(jù)讀取成功。
[0034]其中,若所述第四校驗(yàn)值與所述第五校驗(yàn)值相同,所述第六校驗(yàn)值與所述第七校驗(yàn)值不相同,則將所述目標(biāo)數(shù)據(jù)和所述第四校驗(yàn)值寫入所述備份存儲空間;
[0035]從所述備份存儲空間讀取目標(biāo)數(shù)據(jù),并計(jì)算讀取的目標(biāo)數(shù)據(jù)的第九校驗(yàn)值;
[0036]判斷所述第四校驗(yàn)值與所述第九校驗(yàn)值是否相同;若是,則所述目標(biāo)數(shù)據(jù)讀取成功。
[0037]其中,若所述第四校驗(yàn)值與所述第五校驗(yàn)值不相同,所述第六校驗(yàn)值與所述第七校驗(yàn)值不相同,則從出廠默認(rèn)數(shù)據(jù)存儲空間讀取與所述目標(biāo)數(shù)據(jù)相對應(yīng)的默認(rèn)數(shù)據(jù),并計(jì)算所述默認(rèn)數(shù)據(jù)的第一默認(rèn)數(shù)據(jù)校驗(yàn)值;
[0038]將所述默認(rèn)數(shù)據(jù)和所述第一默認(rèn)數(shù)據(jù)校驗(yàn)值寫入主存儲空間;
[0039]從所述主存儲空間讀取默認(rèn)數(shù)據(jù),計(jì)算讀取的默認(rèn)數(shù)據(jù)的第二默認(rèn)數(shù)據(jù)校驗(yàn)值;
[0040]判斷所述第一默認(rèn)數(shù)據(jù)校驗(yàn)值與所述第二默認(rèn)數(shù)據(jù)校驗(yàn)值是否相同;若是,則將所述默認(rèn)數(shù)據(jù)和所述第一默認(rèn)數(shù)據(jù)校驗(yàn)值寫入備份存儲空間;
[0041]從所述備份存儲空間讀取與所述默認(rèn)數(shù)據(jù)相對應(yīng)的備份默認(rèn)數(shù)據(jù),計(jì)算所述備份默認(rèn)數(shù)據(jù)的第三默認(rèn)數(shù)據(jù)校驗(yàn)值;
[0042]判斷所述第一默認(rèn)數(shù)據(jù)校驗(yàn)值與所述第三默認(rèn)數(shù)據(jù)校驗(yàn)值是否相同;若是,則所述目標(biāo)數(shù)據(jù)讀取成功。
[0043]—種嵌入式設(shè)備的數(shù)據(jù)讀取裝置,包括:
[0044]第三讀取模塊,用于從主存儲空間讀取目標(biāo)數(shù)據(jù)和第四校驗(yàn)值;
[0045]第四計(jì)算模塊,用于計(jì)算所述目標(biāo)數(shù)據(jù)的第五校驗(yàn)值;
[0046]第三判斷模塊,用于判斷所述第四校驗(yàn)值與所述第五校驗(yàn)值是否相同;若是,則觸發(fā)第四讀取模塊;
[0047]所述第四讀取模塊,用于從備份存儲空間讀取與所述目標(biāo)數(shù)據(jù)相對應(yīng)的備份數(shù)據(jù)和第六校驗(yàn)值;
[0048]第五計(jì)算模塊,用于計(jì)算所述備份數(shù)據(jù)的第七校驗(yàn)值;
[0049]第四判斷模塊,用于判斷所述第六校驗(yàn)值與所述第七校驗(yàn)值是否相同;若是,則所述目標(biāo)數(shù)據(jù)讀取成功。
[0050]其中,若所述第三判斷模塊判定所述第四校驗(yàn)值與所述第五校驗(yàn)值不相同,所述第四判斷模塊判定所述第六校驗(yàn)值與所述第七校驗(yàn)值相同,則觸發(fā)第一校正模塊;
[0051 ]所述第一校正模塊包括:
[0052]第一寫入單元,用于將所述備份數(shù)據(jù)和所述第六校驗(yàn)值寫入所述主存儲空間;
[0053]第一讀取單元,用于從所述主存儲空間讀取備份數(shù)據(jù);
[0054]第一計(jì)算單元,用于計(jì)算讀取的備份數(shù)據(jù)的第八校驗(yàn)值;
[0055]第一判斷單元,用于判斷所述第六校驗(yàn)值與所述第八校驗(yàn)值是否相同;若是,則所述目標(biāo)數(shù)據(jù)讀取成功。
[0056]其中,若所述第三判斷模塊判定所述第四校驗(yàn)值與所述第五校驗(yàn)值相同,所述第四判斷模塊判定所述第六校驗(yàn)值與所述第七校驗(yàn)值不相同,則觸發(fā)第二校正模塊;
[0057]所述第二校正模塊包括:
[0058]第二寫入單元,用于將所述目標(biāo)數(shù)據(jù)和所述第四校驗(yàn)值寫入所述備份存儲空間;
[0059]第二讀取單元,用于從所述備份存儲空間讀取目標(biāo)數(shù)據(jù);
[0060]第二計(jì)算單元,用于計(jì)算讀取的目標(biāo)數(shù)據(jù)的第九校驗(yàn)值;
[0061]第二判斷單元,用于判斷所述第四校驗(yàn)值與所述第九校驗(yàn)值是否相同;若是,則所述目標(biāo)數(shù)據(jù)讀取成功。
[0062]其中,若所述第三判斷模塊判定所述第四校驗(yàn)值與所述第五校驗(yàn)值不相同,所述第四判斷模塊判定所述第六校驗(yàn)值與所述第七校驗(yàn)值不相同,則觸發(fā)第三校正模塊;
[0063]所述第三校正模塊包括:
[0064]第三讀取單元,用于從出廠默認(rèn)數(shù)據(jù)存儲空間讀取與所述目標(biāo)數(shù)據(jù)相對應(yīng)的默認(rèn)數(shù)據(jù);
[0065]第三計(jì)算單元,用于計(jì)算所述默認(rèn)數(shù)據(jù)的第一默認(rèn)數(shù)據(jù)校驗(yàn)值;
[0066]第三寫入單元,用于將所述默認(rèn)數(shù)據(jù)和所述第一默認(rèn)數(shù)據(jù)校驗(yàn)值寫入主存儲空間;
[0067 ]第四讀取單元,用于從所述主存儲空間讀取默認(rèn)數(shù)據(jù);
[0068]第四計(jì)算單元,用于計(jì)算讀取的默認(rèn)數(shù)據(jù)的第二默認(rèn)數(shù)據(jù)校驗(yàn)值;
[0069]第三判斷單元,用于判斷所述第一默認(rèn)數(shù)據(jù)校驗(yàn)值與所述第二默認(rèn)數(shù)據(jù)校驗(yàn)值是否相同;若是,則觸發(fā)第四寫入單元;
[0070]所述第四寫入單元,用于將所述默認(rèn)數(shù)據(jù)和所述第一默認(rèn)數(shù)據(jù)校驗(yàn)值寫入備份存儲空間;
[0071 ]第五讀取單元,用于從所述備份存儲空間讀取與所述默認(rèn)數(shù)據(jù)相對應(yīng)的備份默認(rèn)數(shù)據(jù);
[0072]第五計(jì)算單元,用于計(jì)算所述備份默認(rèn)數(shù)據(jù)的第三默認(rèn)數(shù)據(jù)校驗(yàn)值;
[0073]第四判斷單元,用于判斷所述第一默認(rèn)數(shù)據(jù)校驗(yàn)值與所述第三默認(rèn)數(shù)據(jù)校驗(yàn)值是否相同;若是,則所述目標(biāo)數(shù)據(jù)讀取成功。
[0074]通過以上方案可知,本發(fā)明實(shí)施例提供的一種嵌入式設(shè)備數(shù)據(jù)讀寫方法及裝置,在寫入數(shù)據(jù)時包括:首先將數(shù)據(jù)寫入主存儲空間,再將校驗(yàn)結(jié)果寫入主存儲空間;再從主存儲空間中讀取數(shù)據(jù),計(jì)算校驗(yàn)值,然后與原始的校驗(yàn)數(shù)據(jù)和保存在主存儲空間的校驗(yàn)數(shù)據(jù)進(jìn)行比對,確保無誤后,在對備份存儲空間執(zhí)行同樣的操作。當(dāng)要從存儲空間讀取數(shù)據(jù)時,首先讀取主存儲空間的數(shù)據(jù)和校驗(yàn)數(shù)據(jù),根據(jù)數(shù)據(jù)計(jì)算校驗(yàn)結(jié)果,并與從主存儲空間中的數(shù)據(jù)進(jìn)行比對,將比對結(jié)果保存下來;然后按照同樣的方法,讀取備份存儲空間中的數(shù)據(jù),如果兩個結(jié)果都是正確的,則完成了設(shè)備數(shù)據(jù)的讀取。
[0075]可見,本實(shí)施例中的數(shù)據(jù)分別存儲在主存儲空間、備份存儲空間和出廠默認(rèn)數(shù)據(jù)存儲空間之內(nèi),由于在對Flash的寫入數(shù)據(jù)之前首先要對所在的扇區(qū)進(jìn)行擦除操作,F(xiàn)lash設(shè)備僅能執(zhí)行對扇區(qū)的整塊的擦除,因此在本實(shí)施例中上述三個存儲空間存放在不同的Flash扇區(qū)中,使得對一個空間的擦除操作不會影響到其他的數(shù)據(jù)空間;并且任何一個存儲空間所使用的Flash扇區(qū)中不包任何存儲數(shù)據(jù)無關(guān)的內(nèi)容,防止對數(shù)據(jù)的擦除操作影響到其他無關(guān)的數(shù)據(jù);并且,本方案無需大量的嵌入式軟硬件資源即可實(shí)現(xiàn)功能,最大限度地將數(shù)據(jù)的錯誤限制在一個存儲空間中,并且可以使用另一個存儲空間中的數(shù)據(jù)恢復(fù)。即使全部出錯,也能用出廠默認(rèn)數(shù)據(jù)來恢復(fù),防止出現(xiàn)無法預(yù)期的數(shù)據(jù),從而導(dǎo)致設(shè)備運(yùn)行異常。保證了嵌入式設(shè)備的數(shù)據(jù)的可靠性,從而保證嵌入式設(shè)備的數(shù)據(jù)在不穩(wěn)定的電源環(huán)境下不會損毀從而導(dǎo)致設(shè)備損壞。
【附圖說明】
[0076]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0077]圖1為本發(fā)明實(shí)施例公開的一種嵌入式設(shè)備的數(shù)據(jù)寫入方法流程示意圖;
[0078]圖2為本發(fā)明實(shí)施例公開的一種嵌入式設(shè)備的數(shù)據(jù)寫入裝置結(jié)構(gòu)示意圖;
[0079]圖3為本發(fā)明實(shí)施例公開的一種嵌入式設(shè)備的數(shù)據(jù)讀取方法流程示意圖;
[0080]圖4為本發(fā)明實(shí)施例公開的一種嵌入式設(shè)備的數(shù)據(jù)讀取裝置結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0081]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0082]本發(fā)明實(shí)施例公開了一種嵌入式設(shè)備數(shù)據(jù)讀寫方法及裝置,以實(shí)現(xiàn)嵌入式設(shè)備在不可靠的電源環(huán)境下,安全可靠的讀寫數(shù)據(jù)。
[0083]參見圖1,本發(fā)明實(shí)施例提供的一種嵌入式設(shè)備的數(shù)據(jù)寫入方法,包括:
[0084]SlOl、計(jì)算目標(biāo)數(shù)據(jù)的第一校驗(yàn)值;
[0085]具體的,在本實(shí)施例中,對待寫入的目標(biāo)數(shù)據(jù)增加校驗(yàn)機(jī)制,校驗(yàn)算法可以使用通用的數(shù)據(jù)完整性算法。如:CRC—8,CRC — 16,CRC—32,MD5,SHA等,在此并不做限定。
[0086]S102、將所述目標(biāo)數(shù)據(jù)和所述第一校驗(yàn)值寫入主存儲空間;
[0087]具體的,由于校驗(yàn)結(jié)果和原始數(shù)據(jù)有極強(qiáng)的相關(guān)性,單獨(dú)保存是沒有意義的,因此將計(jì)算出的校驗(yàn)結(jié)果和原始數(shù)據(jù)一起存放在同一個存儲空間中,即將第一校驗(yàn)值和目標(biāo)數(shù)據(jù)一同寫入主存儲空間。
[0088]S103、從所述主存儲空間讀取與所述目標(biāo)數(shù)據(jù)對應(yīng)的數(shù)據(jù),計(jì)算讀取的數(shù)據(jù)的第二校驗(yàn)值;
[0089]S104、判斷所述第一校驗(yàn)值、保存在所述主存儲空間內(nèi)的第一校驗(yàn)值與所述第二校驗(yàn)值是否相同;若是,則將所述目標(biāo)數(shù)據(jù)和所述第一校驗(yàn)值寫入備份存儲空間;
[0090]可以理解的是,由于不確定是否正確的將目標(biāo)數(shù)據(jù)寫入主存儲空間,因此需要從主存儲空間中重新讀取剛剛寫入的目標(biāo)數(shù)據(jù),并計(jì)算讀取的目標(biāo)數(shù)據(jù)的新的校驗(yàn)結(jié)果,即第二校驗(yàn)值,并通過與原始的校驗(yàn)數(shù)據(jù)即第一校驗(yàn)值和保存在主存儲空間的第一校驗(yàn)值進(jìn)行比對,確保無誤后,再執(zhí)行后續(xù)操作。若第一校驗(yàn)值、保存在主存儲空間內(nèi)的第一校驗(yàn)值與第二校驗(yàn)值不相同,則繼續(xù)執(zhí)行S102,即重新寫入數(shù)據(jù),直至第一校驗(yàn)值、保存在主存儲空間內(nèi)的第一校驗(yàn)值與第二校驗(yàn)值相同為止。
[0091]S105、從所述備份存儲空間讀取與所述目標(biāo)數(shù)據(jù)相對應(yīng)的備份數(shù)據(jù),計(jì)算所述備份數(shù)據(jù)的第三校驗(yàn)值;
[0092]S106、判斷所述第一校驗(yàn)值、保存在所述備份存儲空間內(nèi)的第一校驗(yàn)值與所述第三校驗(yàn)值是否相同;若是,則所述目標(biāo)數(shù)據(jù)寫入成功。
[0093]需要說明的是,為了保證數(shù)據(jù)的安全性,需要將目標(biāo)數(shù)據(jù)和第一校驗(yàn)值存儲在備份存儲空間中。同樣為了確保保存在備份存儲空間中的數(shù)據(jù)的正確定,需要重新讀取寫入備份存儲空間中的目標(biāo)數(shù)據(jù),即備份數(shù)據(jù),并計(jì)算讀取的備份數(shù)據(jù)的第三校驗(yàn)值,并通過與原始的校驗(yàn)數(shù)據(jù)即第一校驗(yàn)值和保存在備份存儲空間的第一校驗(yàn)值進(jìn)行比對,確保無誤后,目標(biāo)數(shù)據(jù)才算寫入成功。若第一校驗(yàn)值、保存在備份存儲空間內(nèi)的第一校驗(yàn)值與第三校驗(yàn)值不相同,則繼續(xù)重新將所述目標(biāo)數(shù)據(jù)和所述第一校驗(yàn)值寫入備份存儲空間,并繼續(xù)執(zhí)行后續(xù)步驟。可見,利用這種寫入數(shù)據(jù)的方法,即使嵌入式設(shè)備在不穩(wěn)定的電源環(huán)境中進(jìn)行數(shù)據(jù)的寫入,也能保證數(shù)據(jù)的正確性。
[0094]下面對本發(fā)明實(shí)施例提供的數(shù)據(jù)寫入裝置進(jìn)行介紹,下文描述的數(shù)據(jù)寫入裝置與上文描述的數(shù)據(jù)寫入方法可以相互參照。
[0095]參見圖2,本發(fā)明實(shí)施例提供的一種嵌入式設(shè)備的數(shù)據(jù)寫入裝置,包括:
[0096]第一計(jì)算模塊101,用于計(jì)算目標(biāo)數(shù)據(jù)的第一校驗(yàn)值;
[0097]第一寫入模塊102,用于將所述目標(biāo)數(shù)據(jù)和所述第一校驗(yàn)值寫入主存儲空間;
[0098]第一讀取模塊103,用于從所述主存儲空間讀取與所述目標(biāo)數(shù)據(jù)對應(yīng)的數(shù)據(jù);
[0099]第二計(jì)算模塊104,用于計(jì)算讀取的數(shù)據(jù)的第二校驗(yàn)值;
[0100]第一判斷模塊105,用于判斷所述第一校驗(yàn)值、保存在所述主存儲空間內(nèi)的第一校驗(yàn)值與所述第二校驗(yàn)值是否相同;若是,則觸發(fā)第二寫入模塊106;
[0101 ]所述第二寫入模塊106,用于將所述目標(biāo)數(shù)據(jù)和所述第一校驗(yàn)值寫入備份存儲空間;
[0102]第二讀取模塊107,用于從所述備份存儲空間讀取與所述目標(biāo)數(shù)據(jù)相對應(yīng)的備份數(shù)據(jù);
[0103]第三計(jì)算模塊108,用于計(jì)算所述備份數(shù)據(jù)的第三校驗(yàn)值;
[0104]第二判斷模塊109,用于判斷所述第一校驗(yàn)值、保存在所述備份存儲空間內(nèi)的第一校驗(yàn)值與所述第三校驗(yàn)值是否相同;若是,則所述目標(biāo)數(shù)據(jù)寫入成功。
[0105]參見圖3,本發(fā)明實(shí)施例提供的一種嵌入式設(shè)備的數(shù)據(jù)讀取方法,包括:
[0106]S201、從主存儲空間讀取目標(biāo)數(shù)據(jù)和第四校驗(yàn)值;
[0107]S202、計(jì)算所述目標(biāo)數(shù)據(jù)的第五校驗(yàn)值;
[0108]S203、判斷所述第四校驗(yàn)值與所述第五校驗(yàn)值是否相同;若是,則從備份存儲空間讀取與所述目標(biāo)數(shù)據(jù)相對應(yīng)的備份數(shù)據(jù)和第六校驗(yàn)值;
[0109]S204、計(jì)算所述備份數(shù)據(jù)的第七校驗(yàn)值;
[0110]S205、判斷所述第六校驗(yàn)值與所述第七校驗(yàn)值是否相同;若是,則所述目標(biāo)數(shù)據(jù)讀取成功。
[0111]具體的,在本實(shí)施例中在對數(shù)據(jù)進(jìn)行讀取時,首先從主存儲空間讀取目標(biāo)數(shù)據(jù)和第四校驗(yàn)值,計(jì)算讀取的目標(biāo)數(shù)據(jù)的第五校驗(yàn)值,并且只有第四校驗(yàn)值和第五校驗(yàn)值相同,才說明讀取的目標(biāo)數(shù)據(jù)是正確的。再按照同樣的方法,讀取備份存儲空間中存儲的與目標(biāo)數(shù)據(jù)相對應(yīng)的備份數(shù)據(jù)。如果兩個比較結(jié)果都是正確的,則完成了設(shè)備數(shù)據(jù)的讀取,并從內(nèi)存中釋放一個存儲空間的讀取結(jié)果??梢姡眠@種讀取數(shù)據(jù)的方法,即使嵌入式設(shè)備在不穩(wěn)定的電源環(huán)境中進(jìn)行數(shù)據(jù)的讀取,也能保證讀取數(shù)據(jù)的正確性。
[0112]相應(yīng)的,若從主存儲空間讀取的數(shù)據(jù)是錯誤的,從備份存儲空間讀取的數(shù)據(jù)是正確的,即所述第四校驗(yàn)值與所述第五校驗(yàn)值不相同,所述第六校驗(yàn)值與所述第七校驗(yàn)值相同,則對主存儲空間存儲的數(shù)據(jù)進(jìn)行校正,具體包括:
[0113]S211、將所述備份數(shù)據(jù)和所述第六校驗(yàn)值寫入所述主存儲空間;
[0114]S212、從所述主存儲空間讀取備份數(shù)據(jù),并計(jì)算讀取的備份數(shù)據(jù)的第八校驗(yàn)值;
[0115]S213、判斷所述第六校驗(yàn)值與所述第八校驗(yàn)值是否相同;若是,則所述目標(biāo)數(shù)據(jù)讀取成功。
[0116]相應(yīng)的,若從主存儲空間讀取的數(shù)據(jù)是正確的,從備份存儲空間讀取的數(shù)據(jù)是錯誤的,即所述第四校驗(yàn)值與所述第五校驗(yàn)值相同,所述第六校驗(yàn)值與所述第七校驗(yàn)值不相同,則對備份存儲空間存儲的數(shù)據(jù)進(jìn)行校正,具體包括:
[0117]S221、將所述目標(biāo)數(shù)據(jù)和所述第四校驗(yàn)值寫入所述備份存儲空間;
[0118]S222、從所述備份存儲空間讀取目標(biāo)數(shù)據(jù),并計(jì)算讀取的目標(biāo)數(shù)據(jù)的第九校驗(yàn)值;
[0119]S223、判斷所述第四校驗(yàn)值與所述第九校驗(yàn)值是否相同;若是,則所述目標(biāo)數(shù)據(jù)讀取成功。
[0120]相應(yīng)的,若從主存儲空間和備份存儲空間讀取的數(shù)據(jù)都是錯誤的,即所述第四校驗(yàn)值與所述第五校驗(yàn)值不相同,所述第六校驗(yàn)值與所述第七校驗(yàn)值不相同,則根據(jù)默認(rèn)數(shù)據(jù)對主存儲空間和備份存儲空間存儲的數(shù)據(jù)進(jìn)行校正,具體包括:
[0121]S231、從出廠默認(rèn)數(shù)據(jù)存儲空間讀取與所述目標(biāo)數(shù)據(jù)相對應(yīng)的默認(rèn)數(shù)據(jù),并計(jì)算所述默認(rèn)數(shù)據(jù)的第一默認(rèn)數(shù)據(jù)校驗(yàn)值;
[0122]S232、將所述默認(rèn)數(shù)據(jù)和所述第一默認(rèn)數(shù)據(jù)校驗(yàn)值寫入主存儲空間;
[0123]S233、從所述主存儲空間讀取默認(rèn)數(shù)據(jù),計(jì)算讀取的默認(rèn)數(shù)據(jù)的第二默認(rèn)數(shù)據(jù)校驗(yàn)值;
[0124]S234、判斷所述第一默認(rèn)數(shù)據(jù)校驗(yàn)值與所述第二默認(rèn)數(shù)據(jù)校驗(yàn)值是否相同;若是,則將所述默認(rèn)數(shù)據(jù)和所述第一默認(rèn)數(shù)據(jù)校驗(yàn)值寫入備份存儲空間;
[0125]S235、從所述備份存儲空間讀取與所述默認(rèn)數(shù)據(jù)相對應(yīng)的備份默認(rèn)數(shù)據(jù),計(jì)算所述備份默認(rèn)數(shù)據(jù)的第三默認(rèn)數(shù)據(jù)校驗(yàn)值;
[0126]S236、判斷所述第一默認(rèn)數(shù)據(jù)校驗(yàn)值與所述第三默認(rèn)數(shù)據(jù)校驗(yàn)值是否相同;若是,則所述目標(biāo)數(shù)據(jù)讀取成功。
[0127]可見,本方案能最大限度地將數(shù)據(jù)的錯誤限制在一個存儲空間中,并且當(dāng)其中一個存儲空間的數(shù)據(jù)錯誤時,可以通過另一個存儲空間中的數(shù)據(jù)進(jìn)行恢復(fù)。及時兩個存儲空間的數(shù)據(jù)都出錯,也能用出廠默認(rèn)數(shù)據(jù)來恢復(fù),防止出現(xiàn)無法預(yù)期的數(shù)據(jù),從而導(dǎo)致設(shè)備運(yùn)行異常,保證了嵌入式設(shè)備的數(shù)據(jù)的可靠性。
[0128]下面對本發(fā)明實(shí)施例提供的數(shù)據(jù)讀取裝置進(jìn)行介紹,下文描述的數(shù)據(jù)讀取裝置與上文描述的數(shù)據(jù)讀取方法可以相互參照。
[0129]參見圖4,本發(fā)明實(shí)施例提供的一種嵌入式設(shè)備的數(shù)據(jù)讀取裝置,包括:
[0130]第三讀取模塊201,用于從主存儲空間讀取目標(biāo)數(shù)據(jù)和第四校驗(yàn)值;
[0131]第四計(jì)算模塊202,用于計(jì)算所述目標(biāo)數(shù)據(jù)的第五校驗(yàn)值;
[0132]第三判斷模塊203,用于判斷所述第四校驗(yàn)值與所述第五校驗(yàn)值是否相同;若是,則觸發(fā)第四讀取模塊;
[0133]所述第四讀取模塊204,用于從備份存儲空間讀取與所述目標(biāo)數(shù)據(jù)相對應(yīng)的備份數(shù)據(jù)和第六校驗(yàn)值;
[0134]第五計(jì)算模塊205,用于計(jì)算所述備份數(shù)據(jù)的第七校驗(yàn)值;
[0135]第四判斷模塊206,用于判斷所述第六校驗(yàn)值與所述第七校驗(yàn)值是否相同;若是,則所述目標(biāo)數(shù)據(jù)讀取成功。
[0136]基于上述實(shí)施例,若所述第三判斷模塊判定所述第四校驗(yàn)值與所述第五校驗(yàn)值不相同,所述第四判斷模塊判定所述第六校驗(yàn)值與所述第七校驗(yàn)值相同,則觸發(fā)第一校正模塊;
[0137]所述第一校正模塊包括:
[0138]第一寫入單元,用于將所述備份數(shù)據(jù)和所述第六校驗(yàn)值寫入所述主存儲空間;
[0139]第一讀取單元,用于從所述主存儲空間讀取備份數(shù)據(jù);
[0140]第一計(jì)算單元,用于計(jì)算讀取的備份數(shù)據(jù)的第八校驗(yàn)值;
[0141]第一判斷單元,用于判斷所述第六校驗(yàn)值與所述第八校驗(yàn)值是否相同;若是,則所述目標(biāo)數(shù)據(jù)讀取成功。
[0142]基于上述實(shí)施例,若所述第三判斷模塊判定所述第四校驗(yàn)值與所述第五校驗(yàn)值相同,所述第四判斷模塊判定所述第六校驗(yàn)值與所述第七校驗(yàn)值不相同,則觸發(fā)第二校正模塊;
[0143]所述第二校正模塊包括:
[0144]第二寫入單元,用于將所述目標(biāo)數(shù)據(jù)和所述第四校驗(yàn)值寫入所述備份存儲空間;
[0145]第二讀取單元,用于從所述備份存儲空間讀取目標(biāo)數(shù)據(jù);
[0146]第二計(jì)算單元,用于計(jì)算讀取的目標(biāo)數(shù)據(jù)的第九校驗(yàn)值;
[0147]第二判斷單元,用于判斷所述第四校驗(yàn)值與所述第九校驗(yàn)值是否相同;若是,則所述目標(biāo)數(shù)據(jù)讀取成功。
[0148]基于上述實(shí)施例,若所述第三判斷模塊判定所述第四校驗(yàn)值與所述第五校驗(yàn)值不相同,所述第四判斷模塊判定所述第六校驗(yàn)值與所述第七校驗(yàn)值不相同,則觸發(fā)第三校正模塊;
[0149]所述第三校正模塊包括:
[0150]第三讀取單元,用于從出廠默認(rèn)數(shù)據(jù)存儲空間讀取與所述目標(biāo)數(shù)據(jù)相對應(yīng)的默認(rèn)數(shù)據(jù);
[0151]第三計(jì)算單元,用于計(jì)算所述默認(rèn)數(shù)據(jù)的第一默認(rèn)數(shù)據(jù)校驗(yàn)值;
[0152]第三寫入單元,用于將所述默認(rèn)數(shù)據(jù)和所述第一默認(rèn)數(shù)據(jù)校驗(yàn)值寫入主存儲空間;
[0153]第四讀取單元,用于從所述主存儲空間讀取默認(rèn)數(shù)據(jù);
[0154]第四計(jì)算單元,用于計(jì)算讀取的默認(rèn)數(shù)據(jù)的第二默認(rèn)數(shù)據(jù)校驗(yàn)值;
[0155]第三判斷單元,用于判斷所述第一默認(rèn)數(shù)據(jù)校驗(yàn)值與所述第二默認(rèn)數(shù)據(jù)校驗(yàn)值是否相同;若是,則觸發(fā)第四寫入單元;
[0156]所述第四寫入單元,用于將所述默認(rèn)數(shù)據(jù)和所述第一默認(rèn)數(shù)據(jù)校驗(yàn)值寫入備份存儲空間;
[0157]第五讀取單元,用于從所述備份存儲空間讀取與所述默認(rèn)數(shù)據(jù)相對應(yīng)的備份默認(rèn)數(shù)據(jù);
[0158]第五計(jì)算單元,用于計(jì)算所述備份默認(rèn)數(shù)據(jù)的第三默認(rèn)數(shù)據(jù)校驗(yàn)值;
[0159]第四判斷單元,用于判斷所述第一默認(rèn)數(shù)據(jù)校驗(yàn)值與所述第三默認(rèn)數(shù)據(jù)校驗(yàn)值是否相同;若是,則所述目標(biāo)數(shù)據(jù)讀取成功。
[0160]本發(fā)明實(shí)施例提供的一種嵌入式設(shè)備數(shù)據(jù)讀寫方法及裝置,在寫入數(shù)據(jù)時包括:首先將數(shù)據(jù)寫入主存儲空間,再將校驗(yàn)結(jié)果寫入主存儲空間;再從主存儲空間中讀取數(shù)據(jù),計(jì)算校驗(yàn)值,然后與原始的校驗(yàn)數(shù)據(jù)和保存在主存儲空間的校驗(yàn)數(shù)據(jù)進(jìn)行比對,確保無誤后,在對備份存儲空間執(zhí)行同樣的操作。當(dāng)要從存儲空間讀取數(shù)據(jù)時,首先讀取主存儲空間的數(shù)據(jù)和校驗(yàn)數(shù)據(jù),根據(jù)數(shù)據(jù)計(jì)算校驗(yàn)結(jié)果,并與從主存儲空間中的數(shù)據(jù)進(jìn)行比對,將比對結(jié)果保存下來;然后按照同樣的方法,讀取備份存儲空間中的數(shù)據(jù),如果兩個結(jié)果都是正確的,則完成了設(shè)備數(shù)據(jù)的讀取。
[0161]可見,本實(shí)施例中的數(shù)據(jù)分別存儲在主存儲空間、備份存儲空間和出廠默認(rèn)數(shù)據(jù)存儲空間之內(nèi),由于在對Flash的寫入數(shù)據(jù)之前首先要對所在的扇區(qū)進(jìn)行擦除操作,F(xiàn)lash設(shè)備僅能執(zhí)行對扇區(qū)的整塊的擦除,因此在本實(shí)施例中上述三個存儲空間存放在不同的Flash扇區(qū)中,使得對一個空間的擦除操作不會影響到其他的數(shù)據(jù)空間;并且任何一個存儲空間所使用的Flash扇區(qū)中不包任何存儲數(shù)據(jù)無關(guān)的內(nèi)容,防止對數(shù)據(jù)的擦除操作影響到其他無關(guān)的數(shù)據(jù);并且,本方案無需大量的嵌入式軟硬件資源即可實(shí)現(xiàn)功能,最大限度地將數(shù)據(jù)的錯誤限制在一個存儲空間中,并且可以使用另一個存儲空間中的數(shù)據(jù)恢復(fù)。即使全部出錯,也能用出廠默認(rèn)數(shù)據(jù)來恢復(fù),防止出現(xiàn)無法預(yù)期的數(shù)據(jù),從而導(dǎo)致設(shè)備運(yùn)行異常。保證了嵌入式設(shè)備的數(shù)據(jù)的可靠性,從而保證嵌入式設(shè)備的數(shù)據(jù)在不穩(wěn)定的電源環(huán)境下不會損毀從而導(dǎo)致設(shè)備損壞。
[0162]并且,在實(shí)際應(yīng)用中,在MXCHIP的無線模塊EMW316X上通過上述方案來實(shí)現(xiàn)設(shè)備核心數(shù)據(jù)的存儲。在模塊內(nèi)部運(yùn)行一個對數(shù)據(jù)持續(xù)的寫入和讀取的操作,并將模塊放置于程序控制的會隨機(jī)斷電的環(huán)境下持續(xù)運(yùn)行。連續(xù)運(yùn)行I周沒有出現(xiàn)設(shè)備數(shù)據(jù)損壞的情況,而沒有使用該技術(shù)方案的設(shè)備在運(yùn)行2小時以內(nèi),相繼出現(xiàn)設(shè)備數(shù)據(jù)損壞的情況。
[0163]本說明書中各個實(shí)施例采用遞進(jìn)的方式描述,每個實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個實(shí)施例之間相同相似部分互相參見即可。
[0164]對所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實(shí)施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。
【主權(quán)項(xiàng)】
1.一種嵌入式設(shè)備的數(shù)據(jù)寫入方法,其特征在于,包括: 計(jì)算目標(biāo)數(shù)據(jù)的第一校驗(yàn)值; 將所述目標(biāo)數(shù)據(jù)和所述第一校驗(yàn)值寫入主存儲空間; 從所述主存儲空間讀取與所述目標(biāo)數(shù)據(jù)對應(yīng)的數(shù)據(jù),計(jì)算讀取的數(shù)據(jù)的第二校驗(yàn)值;判斷所述第一校驗(yàn)值、保存在所述主存儲空間內(nèi)的第一校驗(yàn)值與所述第二校驗(yàn)值是否相同;若是,則將所述目標(biāo)數(shù)據(jù)和所述第一校驗(yàn)值寫入備份存儲空間; 從所述備份存儲空間讀取與所述目標(biāo)數(shù)據(jù)相對應(yīng)的備份數(shù)據(jù),計(jì)算所述備份數(shù)據(jù)的第三校驗(yàn)值; 判斷所述第一校驗(yàn)值、保存在所述備份存儲空間內(nèi)的第一校驗(yàn)值與所述第三校驗(yàn)值是否相同;若是,則所述目標(biāo)數(shù)據(jù)寫入成功。2.一種嵌入式設(shè)備的數(shù)據(jù)寫入裝置,其特征在于,包括: 第一計(jì)算模塊,用于計(jì)算目標(biāo)數(shù)據(jù)的第一校驗(yàn)值; 第一寫入模塊,用于將所述目標(biāo)數(shù)據(jù)和所述第一校驗(yàn)值寫入主存儲空間; 第一讀取模塊,用于從所述主存儲空間讀取與所述目標(biāo)數(shù)據(jù)對應(yīng)的數(shù)據(jù); 第二計(jì)算模塊,用于計(jì)算讀取的數(shù)據(jù)的第二校驗(yàn)值; 第一判斷模塊,用于判斷所述第一校驗(yàn)值、保存在所述主存儲空間內(nèi)的第一校驗(yàn)值與所述第二校驗(yàn)值是否相同;若是,則觸發(fā)第二寫入模塊; 所述第二寫入模塊,用于將所述目標(biāo)數(shù)據(jù)和所述第一校驗(yàn)值寫入備份存儲空間; 第二讀取模塊,用于從所述備份存儲空間讀取與所述目標(biāo)數(shù)據(jù)相對應(yīng)的備份數(shù)據(jù); 第三計(jì)算模塊,用于計(jì)算所述備份數(shù)據(jù)的第三校驗(yàn)值; 第二判斷模塊,用于判斷所述第一校驗(yàn)值、保存在所述備份存儲空間內(nèi)的第一校驗(yàn)值與所述第三校驗(yàn)值是否相同;若是,則所述目標(biāo)數(shù)據(jù)寫入成功。3.一種嵌入式設(shè)備的數(shù)據(jù)讀取方法,其特征在于,包括: 從主存儲空間讀取目標(biāo)數(shù)據(jù)和第四校驗(yàn)值; 計(jì)算所述目標(biāo)數(shù)據(jù)的第五校驗(yàn)值; 判斷所述第四校驗(yàn)值與所述第五校驗(yàn)值是否相同;若是,則從備份存儲空間讀取與所述目標(biāo)數(shù)據(jù)相對應(yīng)的備份數(shù)據(jù)和第六校驗(yàn)值; 計(jì)算所述備份數(shù)據(jù)的第七校驗(yàn)值; 判斷所述第六校驗(yàn)值與所述第七校驗(yàn)值是否相同;若是,則所述目標(biāo)數(shù)據(jù)讀取成功。4.根據(jù)權(quán)利要求3所述的數(shù)據(jù)讀取方法,其特征在于, 若所述第四校驗(yàn)值與所述第五校驗(yàn)值不相同,所述第六校驗(yàn)值與所述第七校驗(yàn)值相同,則將所述備份數(shù)據(jù)和所述第六校驗(yàn)值寫入所述主存儲空間; 從所述主存儲空間讀取備份數(shù)據(jù),并計(jì)算讀取的備份數(shù)據(jù)的第八校驗(yàn)值; 判斷所述第六校驗(yàn)值與所述第八校驗(yàn)值是否相同;若是,則所述目標(biāo)數(shù)據(jù)讀取成功。5.根據(jù)權(quán)利要求3所述的數(shù)據(jù)讀取方法,其特征在于, 若所述第四校驗(yàn)值與所述第五校驗(yàn)值相同,所述第六校驗(yàn)值與所述第七校驗(yàn)值不相同,則將所述目標(biāo)數(shù)據(jù)和所述第四校驗(yàn)值寫入所述備份存儲空間; 從所述備份存儲空間讀取目標(biāo)數(shù)據(jù),并計(jì)算讀取的目標(biāo)數(shù)據(jù)的第九校驗(yàn)值; 判斷所述第四校驗(yàn)值與所述第九校驗(yàn)值是否相同;若是,則所述目標(biāo)數(shù)據(jù)讀取成功。6.根據(jù)權(quán)利要求3所述的數(shù)據(jù)讀取方法,其特征在于, 若所述第四校驗(yàn)值與所述第五校驗(yàn)值不相同,所述第六校驗(yàn)值與所述第七校驗(yàn)值不相同,則從出廠默認(rèn)數(shù)據(jù)存儲空間讀取與所述目標(biāo)數(shù)據(jù)相對應(yīng)的默認(rèn)數(shù)據(jù),并計(jì)算所述默認(rèn)數(shù)據(jù)的第一默認(rèn)數(shù)據(jù)校驗(yàn)值; 將所述默認(rèn)數(shù)據(jù)和所述第一默認(rèn)數(shù)據(jù)校驗(yàn)值寫入主存儲空間; 從所述主存儲空間讀取默認(rèn)數(shù)據(jù),計(jì)算讀取的默認(rèn)數(shù)據(jù)的第二默認(rèn)數(shù)據(jù)校驗(yàn)值; 判斷所述第一默認(rèn)數(shù)據(jù)校驗(yàn)值與所述第二默認(rèn)數(shù)據(jù)校驗(yàn)值是否相同;若是,則將所述默認(rèn)數(shù)據(jù)和所述第一默認(rèn)數(shù)據(jù)校驗(yàn)值寫入備份存儲空間; 從所述備份存儲空間讀取與所述默認(rèn)數(shù)據(jù)相對應(yīng)的備份默認(rèn)數(shù)據(jù),計(jì)算所述備份默認(rèn)數(shù)據(jù)的第三默認(rèn)數(shù)據(jù)校驗(yàn)值; 判斷所述第一默認(rèn)數(shù)據(jù)校驗(yàn)值與所述第三默認(rèn)數(shù)據(jù)校驗(yàn)值是否相同;若是,則所述目標(biāo)數(shù)據(jù)讀取成功。7.一種嵌入式設(shè)備的數(shù)據(jù)讀取裝置,其特征在于,包括: 第三讀取模塊,用于從主存儲空間讀取目標(biāo)數(shù)據(jù)和第四校驗(yàn)值; 第四計(jì)算模塊,用于計(jì)算所述目標(biāo)數(shù)據(jù)的第五校驗(yàn)值; 第三判斷模塊,用于判斷所述第四校驗(yàn)值與所述第五校驗(yàn)值是否相同;若是,則觸發(fā)第四讀取模塊; 所述第四讀取模塊,用于從備份存儲空間讀取與所述目標(biāo)數(shù)據(jù)相對應(yīng)的備份數(shù)據(jù)和第六校驗(yàn)值; 第五計(jì)算模塊,用于計(jì)算所述備份數(shù)據(jù)的第七校驗(yàn)值; 第四判斷模塊,用于判斷所述第六校驗(yàn)值與所述第七校驗(yàn)值是否相同;若是,則所述目標(biāo)數(shù)據(jù)讀取成功。8.根據(jù)權(quán)利要求7所述的數(shù)據(jù)讀取裝置,其特征在于, 若所述第三判斷模塊判定所述第四校驗(yàn)值與所述第五校驗(yàn)值不相同,所述第四判斷模塊判定所述第六校驗(yàn)值與所述第七校驗(yàn)值相同,則觸發(fā)第一校正模塊; 所述第一校正模塊包括: 第一寫入單元,用于將所述備份數(shù)據(jù)和所述第六校驗(yàn)值寫入所述主存儲空間; 第一讀取單元,用于從所述主存儲空間讀取備份數(shù)據(jù); 第一計(jì)算單元,用于計(jì)算讀取的備份數(shù)據(jù)的第八校驗(yàn)值; 第一判斷單元,用于判斷所述第六校驗(yàn)值與所述第八校驗(yàn)值是否相同;若是,則所述目標(biāo)數(shù)據(jù)讀取成功。9.根據(jù)權(quán)利要求7所述的數(shù)據(jù)讀取裝置,其特征在于, 若所述第三判斷模塊判定所述第四校驗(yàn)值與所述第五校驗(yàn)值相同,所述第四判斷模塊判定所述第六校驗(yàn)值與所述第七校驗(yàn)值不相同,則觸發(fā)第二校正模塊; 所述第二校正模塊包括: 第二寫入單元,用于將所述目標(biāo)數(shù)據(jù)和所述第四校驗(yàn)值寫入所述備份存儲空間; 第二讀取單元,用于從所述備份存儲空間讀取目標(biāo)數(shù)據(jù); 第二計(jì)算單元,用于計(jì)算讀取的目標(biāo)數(shù)據(jù)的第九校驗(yàn)值; 第二判斷單元,用于判斷所述第四校驗(yàn)值與所述第九校驗(yàn)值是否相同;若是,則所述目標(biāo)數(shù)據(jù)讀取成功。10.根據(jù)權(quán)利要求7所述的數(shù)據(jù)讀取裝置,其特征在于, 若所述第三判斷模塊判定所述第四校驗(yàn)值與所述第五校驗(yàn)值不相同,所述第四判斷模塊判定所述第六校驗(yàn)值與所述第七校驗(yàn)值不相同,則觸發(fā)第三校正模塊; 所述第三校正模塊包括: 第三讀取單元,用于從出廠默認(rèn)數(shù)據(jù)存儲空間讀取與所述目標(biāo)數(shù)據(jù)相對應(yīng)的默認(rèn)數(shù)據(jù); 第三計(jì)算單元,用于計(jì)算所述默認(rèn)數(shù)據(jù)的第一默認(rèn)數(shù)據(jù)校驗(yàn)值; 第三寫入單元,用于將所述默認(rèn)數(shù)據(jù)和所述第一默認(rèn)數(shù)據(jù)校驗(yàn)值寫入主存儲空間; 第四讀取單元,用于從所述主存儲空間讀取默認(rèn)數(shù)據(jù); 第四計(jì)算單元,用于計(jì)算讀取的默認(rèn)數(shù)據(jù)的第二默認(rèn)數(shù)據(jù)校驗(yàn)值; 第三判斷單元,用于判斷所述第一默認(rèn)數(shù)據(jù)校驗(yàn)值與所述第二默認(rèn)數(shù)據(jù)校驗(yàn)值是否相同;若是,則觸發(fā)第四寫入單元; 所述第四寫入單元,用于將所述默認(rèn)數(shù)據(jù)和所述第一默認(rèn)數(shù)據(jù)校驗(yàn)值寫入備份存儲空間; 第五讀取單元,用于從所述備份存儲空間讀取與所述默認(rèn)數(shù)據(jù)相對應(yīng)的備份默認(rèn)數(shù)據(jù); 第五計(jì)算單元,用于計(jì)算所述備份默認(rèn)數(shù)據(jù)的第三默認(rèn)數(shù)據(jù)校驗(yàn)值; 第四判斷單元,用于判斷所述第一默認(rèn)數(shù)據(jù)校驗(yàn)值與所述第三默認(rèn)數(shù)據(jù)校驗(yàn)值是否相同;若是,則所述目標(biāo)數(shù)據(jù)讀取成功。
【文檔編號】G06F11/07GK106021002SQ201610281942
【公開日】2016年10月12日
【申請日】2016年4月29日
【發(fā)明人】徐煒
【申請人】上海慶科信息技術(shù)有限公司