專利名稱:閃存程序自動糾錯修復方法及裝置的制作方法
技術領域:
本發(fā)明涉及數據存儲技術領域,尤其涉及一種閃存程序自動糾錯修復方法及裝置。
背景技術:
目前,很多嵌入式設備采用閃存芯片來存儲程序與數據,雖然閃存是一種掉電后數據不會丟失的器件,但依然會有一些異常情況的發(fā)生導致存儲于閃存器件的數據損壞, 如果發(fā)生這種情況,就會使設備工作異常,如果這種損壞發(fā)生在程序中,極可能使系統(tǒng)無法啟動,導致嵌入式設備的程序系統(tǒng)可靠性較低。
發(fā)明內容
本發(fā)明提供一種閃存程序自動糾錯修復方法及裝置,用以解決現(xiàn)有技術中嵌入式設備的程序系統(tǒng)可靠性較低的缺陷,實現(xiàn)提高嵌入式設備的程序系統(tǒng)可靠性。本發(fā)明提供一種閃存程序自動糾錯修復方法,包括 在閃存中存儲的原程序運行前,對原程序進行完整性校驗;
若原程序不完整,則將事先存儲的備份程序覆蓋閃存中存儲的原程序。本發(fā)明提供的閃存程序自動糾錯修復方法,通過在原程序運行前先對原程序進行完整性校驗,并在確認原程序不完整時,將備份程序覆蓋原程序,可以確保嵌入式設備能夠正常啟動運行,避免出現(xiàn)因原程序損壞而導致嵌入式設備無法正常運行,實現(xiàn)提高了嵌入式設備的程序系統(tǒng)可靠性。如上所述的閃存程序自動糾錯修復方法,對原程序進行完整性校驗,具體為采用消息摘要算法或哈希算法對原程序進行完整性校驗以獲得校驗值,并判斷校驗值與事先存儲的原校驗值是否相同;若相同,在確認原程序完整;若不相同,則確認原程序不完整。如上所述的閃存程序自動糾錯修復方法,還包括若原程序完整,則判斷原程序的校驗值與備份程序對應存儲的備份校驗值是否相同;若不同,則將原程序覆蓋備份程序,并將備份校驗值更改為校驗值。如上所述的閃存程序自動糾錯修復方法,若原程序不完整,則將事先存儲的備份程序覆蓋閃存中存儲的原程序,具體為若原程序不完整,則先對原程序進行備份,然后再將事先存儲的備份程序覆蓋閃存中存儲的原程序。如上所述的閃存程序自動糾錯修復方法,備份程序存儲在閃存中或者存儲在與閃存連接的外部存儲設備上。本發(fā)明提供一種閃存程序自動糾錯修復裝置,包括
校驗模塊,用于在閃存中存儲的原程序運行前,對原程序進行完整性校驗; 處理模塊,用于若原程序不完整,則將事先存儲的備份程序覆蓋閃存中存儲的原程序。本發(fā)明提供的閃存程序自動糾錯修復裝置,通過在原程序運行前先對原程序進行完整性校驗,并在確認原程序不完整時,將備份程序覆蓋原程序,可以確保嵌入式設備能夠CN 102402470 A
說明書
2/4頁
正常啟動運行,避免出現(xiàn)因原程序損壞而導致嵌入式設備無法正常運行,實現(xiàn)提高了嵌入式設備的程序系統(tǒng)可靠性。如上所述的閃存程序自動糾錯修復裝置,校驗模塊還用于采用消息摘要算法或哈希算法對原程序進行完整性校驗以獲得校驗值,并判斷校驗值與事先存儲的原校驗值是否相同;若相同,在確認原程序完整;若不相同,則確認原程序不完整。如上所述的閃存程序自動糾錯修復裝置,還包括判斷模塊,用于若原程序完整, 則判斷原程序的校驗值與備份程序對應存儲的備份校驗值是否相同;更新模塊,用于若不同,則將原程序覆蓋備份程序,并將備份校驗值更改為校驗值。如上所述的閃存程序自動糾錯修復裝置,處理模塊還用于若原程序不完整,則先對原程序進行備份,然后再將事先存儲的備份程序覆蓋閃存中存儲的原程序。如上所述的閃存程序自動糾錯修復裝置,備份程序存儲在閃存中或者存儲在與閃存連接的外部存儲設備上。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。圖1為本發(fā)明閃存程序自動糾錯修復方法實施例的流程圖; 圖2為本發(fā)明閃存程序自動糾錯修復裝置實施例的結構示意圖。
具體實施例方式
為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。圖1為本發(fā)明閃存程序自動糾錯修復方法實施例的流程圖。如圖1所示,本實施例閃存程序自動糾錯修復方法,包括
步驟1、在閃存中存儲的原程序運行前,對原程序進行完整性校驗。具體的,步驟1將在嵌入式設備運行其閃存中的原程序前事先對原程序進行完整性校驗,從而判定原程序是否損壞。步驟2、若原程序不完整,則將事先存儲的備份程序覆蓋閃存中存儲的原程序。具體的,如果步驟1校驗得知閃存中的原程序不完整,則通過步驟2可以將事先存儲的備份程序覆蓋原程序,從而確保嵌入式設備能夠正常啟動,提高了嵌入式設備的程序系統(tǒng)可靠性。優(yōu)選的,步驟1可以為若原程序不完整,則先對原程序進行備份,然后再將事先存儲的備份程序覆蓋閃存中存儲的原程序,從而方便操作人員分析原程序的錯誤原因。其中,本實施例閃存程序自動糾錯修復方法中的備份程序存儲在閃存中或者存儲在與閃存連接的外部存儲設備上。本實施例閃存程序自動糾錯修復方法可以采用多種方式對閃存中的原程序進行校驗,優(yōu)選的,本實施例中的步驟1具體為采用消息摘要算法或哈希算法對原程序進行完整性校驗以獲得校驗值,并判斷校驗值與事先存儲的原校驗值是否相同;若相同,在確認原程序完整;若不相同,則確認原程序不完整。具體的,消息摘要算法的主要特征是加密過程不需要密鑰,并且經過加密的數據無法被解密,只有輸入相同的明文數據經過相同的消息摘要算法才能得到相同的密文。消息摘要算法不存在密鑰的管理與分發(fā)問題,適合于分布式網絡相同上使用。由于其加密計算的工作量相當可觀,所以以前的這種算法通常只用于數據量有限的情況下的加密,例如計算機的口令就是用不可逆加密算法加密的。近年來,隨著計算機相同性能的飛速改善,加密速度不再成為限制這種加密技術發(fā)展的桎梏,因而消息摘要算法應用的領域不斷增加。而哈希算法哈希算法將任意長度的二進制值映射為固定長度的較小二進制值,這個小的二進制值稱為哈希值。哈希值是一段數據唯一且極其緊湊的數值表示形式。如果散列一段明文而且哪怕只更改該段落的一個字母,隨后的哈希都將產生不同的值。要找到散列為同一個值的兩個不同的輸入,在計算上是不可能的,所以數據的哈希值可以檢驗數據的完整性。步驟1通過校驗閃存中原程序的校驗值是否與事先存儲的原校驗值相同,便可以方便準確的判斷原程序是否完整。其中,原校驗值是用戶向閃存中拷貝原程序的同時存儲的與原程序對應的值。本實施例閃存程序自動糾錯修復方法,通過在原程序運行前先對原程序進行完整性校驗,并在確認原程序不完整時,將備份程序覆蓋原程序,可以確保嵌入式設備能夠正常啟動運行,避免出現(xiàn)因原程序損壞而導致嵌入式設備無法正常運行?;谏鲜黾夹g方案,可選的,本實施例閃存程序自動糾錯修復方法,還包括 步驟3、若原程序完整,則判斷原程序的校驗值與備份程序對應存儲的備份校驗值是否相同。具體的,在步驟1校驗確認原程序完整后,通過步驟3判斷步驟1獲得的原程序的校驗值與備份程序對應存儲的備份校驗值是否相同。步驟4、若不同,則將原程序覆蓋備份程序,并將備份校驗值更改為校驗值。具體的,若通過步驟3判斷得知校驗值與備份校驗值不同,則說明原程序已經升級了,則通過步驟4將原程序覆蓋備份程序,同時,將備份校驗值更改為校驗值,從而獲得更新后的備份程序。本領域普通技術人員可以理解實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質包括R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質。圖2為本發(fā)明閃存程序自動糾錯修復裝置實施例的結構示意圖。如圖2所示,本實施例閃存程序自動糾錯修復裝置,包括校驗模塊1和處理模塊2。校驗模塊1用于在閃存中存儲的原程序運行前,對原程序進行完整性校驗。具體的,本實施例中的校驗模塊1可以還用于采用消息摘要算法或哈希算法對原程序進行完整性校驗以獲得校驗值,并判斷校驗值與事先存儲的原校驗值是否相同;若相同,在確認原程序完整;若不相同,則確認原程序不完整。處理模塊2用于若原程序不完整,則將事先存儲的備份程序覆蓋閃存中存儲的原程序。具體的,處理模塊2可以還用于若原程序不完整,則先對原程序進行備份,然后再將事先存儲的備份程序覆蓋閃存中存儲的原程序。進一步的,本實施例閃存程序自動糾錯修復裝置可以還包括判斷模塊3用于若
5原程序完整,則判斷原程序的校驗值與備份程序對應存儲的備份校驗值是否相同;更新模塊4用于若不同,則將原程序覆蓋備份程序,并將備份校驗值更改為校驗值。其中,本實施例中的備份程序存儲在閃存中或者存儲在與閃存連接的外部存儲設備上。本實施例閃存程序自動糾錯修復裝置,通過在原程序運行前先對原程序進行完整性校驗,并在確認原程序不完整時,將備份程序覆蓋原程序,可以確保嵌入式設備能夠正常啟動運行,避免出現(xiàn)因原程序損壞而導致嵌入式設備無法正常運行。最后應說明的是以上實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發(fā)明各實施例技術方案的精神和范圍。
權利要求
1.一種閃存程序自動糾錯修復方法,其特征在于,包括在閃存中存儲的原程序運行前,對原程序進行完整性校驗;若原程序不完整,則將事先存儲的備份程序覆蓋閃存中存儲的原程序。
2.根據權利要求2所述的閃存程序自動糾錯修復方法,其特征在于,對原程序進行完整性校驗,具體為采用消息摘要算法或哈希算法對原程序進行完整性校驗以獲得校驗值,并判斷校驗值與事先存儲的原校驗值是否相同;若相同,在確認原程序完整;若不相同,則確認原程序不完整。
3.根據權利要求2所述的閃存程序自動糾錯修復方法,其特征在于,還包括若原程序完整,則判斷原程序的校驗值與備份程序對應存儲的備份校驗值是否相同;若不同,則將原程序覆蓋備份程序,并將備份校驗值更改為校驗值。
4.根據權利要求1所述的閃存程序自動糾錯修復方法,其特征在于,若原程序不完整, 則將事先存儲的備份程序覆蓋閃存中存儲的原程序,具體為若原程序不完整,則先對原程序進行備份,然后再將事先存儲的備份程序覆蓋閃存中存儲的原程序。
5.根據權利要求1所述的閃存程序自動糾錯修復方法,其特征在于,備份程序存儲在閃存中或者存儲在與閃存連接的外部存儲設備上。
6.一種閃存程序自動糾錯修復裝置,其特征在于,包括校驗模塊,用于在閃存中存儲的原程序運行前,對原程序進行完整性校驗;處理模塊,用于若原程序不完整,則將事先存儲的備份程序覆蓋閃存中存儲的原程序。
7.根據權利要求1所述的閃存程序自動糾錯修復裝置,其特征在于,校驗模塊還用于采用消息摘要算法或哈希算法對原程序進行完整性校驗以獲得校驗值,并判斷校驗值與事先存儲的原校驗值是否相同;若相同,在確認原程序完整;若不相同,則確認原程序不完離iF. ο
8.根據權利要求7所述的閃存程序自動糾錯修復裝置,其特征在于,還包括判斷模塊,用于若原程序完整,則判斷原程序的校驗值與備份程序對應存儲的備份校驗值是否相同;更新模塊,用于若不同,則將原程序覆蓋備份程序,并將備份校驗值更改為校驗值。
9.根據權利要求6所述的閃存程序自動糾錯修復裝置,其特征在于,處理模塊還用于若原程序不完整,則先對原程序進行備份,然后再將事先存儲的備份程序覆蓋閃存中存儲的原程序。
10.根據權利要求6所述的閃存程序自動糾錯修復裝置,其特征在于,備份程序存儲在閃存中或者存儲在與閃存連接的外部存儲設備上。
全文摘要
本發(fā)明提供一種閃存程序自動糾錯修復方法及裝置。閃存程序自動糾錯修復方法,包括在閃存中存儲的原程序運行前,對原程序進行完整性校驗;若原程序不完整,則將事先存儲的備份程序覆蓋閃存中存儲的原程序。通過在原程序運行前先對原程序進行完整性校驗,并在確認原程序不完整時,將備份程序覆蓋原程序,可以確保嵌入式設備能夠正常啟動運行,避免出現(xiàn)因原程序損壞而導致嵌入式設備無法正常運行,實現(xiàn)提高了嵌入式設備的程序系統(tǒng)可靠性。
文檔編號G06F11/14GK102402470SQ20111042588
公開日2012年4月4日 申請日期2011年12月19日 優(yōu)先權日2011年12月19日
發(fā)明者劉新, 劉方棟, 吳風炎, 周東民, 張希, 曲圣, 李海波, 楊濤, 牛繼云 申請人:青島海信網絡科技股份有限公司