專利名稱:一種讀寫存儲卡的方法及裝置的制作方法
技術領域:
本發(fā)明涉及嵌入式系統(tǒng)開發(fā)領域,特別涉及一種讀寫存儲卡的方法及裝置。
背景技術:
存儲卡作為一類通用大容量存儲介質(zhì)在很多嵌入式設備中都有所應用,例如CF卡(Compact Flash Card )、 SD卡(Secure Digital Memory Card)、 TF卡 TransFLashCard)等。存儲卡一般由卡控制器和Flash單元兩部分組成,其中的 Flash都是采用NAND Flash (與非型Flash),有讀寫次數(shù)限制,也就是使用壽 命的限制, 一般在1-10萬次左右。在對穩(wěn)定性要求很高的通訊系統(tǒng)設備上, CF卡的應用很廣泛,在便攜設備中,SD卡和TF卡等應用比較廣泛。存儲卡普遍的應用方法包括在卡上使用某種文件系統(tǒng),例如pfflLE、 FAT、 FAT32、 ext2、 ext3等,尤其以FAT32應用最為廣泛。軟件以文件的形 式讀寫存儲卡,因為存儲卡的容量遠遠小于硬盤,所以存儲卡上一般只有一個 分區(qū)。這種實現(xiàn)方案管理很方便,但對于某種應用場合存在下面的缺陷(1) 文件訪問過程中,多個扇區(qū)被頻繁讀寫,頻繁讀寫的扇區(qū)最容易損壞,例如 在FAT32文件系統(tǒng)中,位于DBR、 FAT1、 FAT2、目錄區(qū)中的扇區(qū)因其會被頻 繁讀寫,所以最容易損壞。當頻繁讀寫扇區(qū)發(fā)生損壞時,導致存儲卡訪問失敗, 從而嵌入式設備中單板運行異常。(2)由于沒有完善的告警機制,導致存儲卡 損壞后系統(tǒng)立即癱瘓,維護人員沒有足夠的處理時間。為了提高存儲卡的容錯性能,增強系統(tǒng)的健壯性,目前,如下解決方法 (1)采用備份單板。由于一個板的一張存儲卡不可用而導致嵌入式設備中整 張板不可用,因此,采用備份單板,但成本太高。(2)采用一個單板雙存儲卡,這種方案較之于第一種方案節(jié)省了成本,但必須應用兩張卡,從單板尺寸到材 料,成本依然很高。而且對于目前很多在用的只有單存儲卡的單板則無法通過升級軟件實現(xiàn)容錯保護。(3 )采用文件系統(tǒng)關鍵信息段設置讀寫權限或者凍結 某些信息區(qū)的方法,這樣,減少存儲卡關鍵信息區(qū)的讀寫頻率,進而減小存儲 卡的損壞概率。但這種方法對應用場合有嚴格的限制,不具有通用性。而且沒 有完善的告警輔助機制,對于設備的可維護性依然沒有很好的改善。發(fā)明內(nèi)容本發(fā)明實施例提供一種讀寫存儲卡的方法及裝置,用以解決現(xiàn)有技術中存 儲卡容錯性低、從而導致嵌入式系統(tǒng)不穩(wěn)定問題。本發(fā)明實施例提供一種讀寫存儲卡的方法,所述存儲卡包括 一個主用分 區(qū)和至少一個備用分區(qū),該方法包括讀寫裝置將第一文件寫入所述存儲卡時,將所述第一文件寫入所述主用分 區(qū)后,將所述第一文件寫入所述至少一個備用分區(qū);所述讀寫裝置從所述存儲卡中讀取第二文件時,從所述至少 一個備用分區(qū) 讀取第二文件,當從備用分區(qū)讀取第二文件出錯時,從所述主用分區(qū)讀取所述 第二文件。本發(fā)明實施例提供一種讀寫存儲卡的裝置,所述存儲卡包括 一個主用分 區(qū)和至少一個備用分區(qū),該裝置包括寫入單元,用于將第一文件寫入所述主用分區(qū)后,將所述第一文件寫入所 述至少一個備用分區(qū);讀取單元,用于從所述至少一個備用分區(qū)讀取第二文件,當從備用分區(qū)讀 取第二文件出錯時,從所述主用分區(qū)讀取所述第二文件。本發(fā)明實施例中,存儲卡被分為一個主用分區(qū)和至少一個備用分區(qū),這樣, 讀寫裝置將第一文件寫入所述存儲卡時,將所述第一文件寫入所述主用分區(qū) 后,將所述第一文件寫入所述至少一個備用分區(qū),從而,主用分區(qū)和備用分區(qū)上有相同的數(shù)據(jù),起到了*保護的作用。讀寫裝置從所述存儲卡中讀取第二 文件時,從所述至少一個備用分區(qū)讀取第二文件,當從備用分區(qū)讀取第二文件 出錯時,從所述主用分區(qū)讀取所述第二文件,保證系統(tǒng)能夠正常運行,提高了 系統(tǒng)的穩(wěn)定性。
圖1為本發(fā)明實施例中存儲卡格式化分區(qū)的示意圖; 圖2為本發(fā)明第一實施例中向存儲卡寫入文件的示意圖; 圖3為本發(fā)明第二實施例中從存儲卡中讀取文件的示意圖; 圖4為本發(fā)明第三實施例中從存儲卡中讀取文件的示意圖; 圖5為本發(fā)明實施例中存讀寫存儲卡的裝置示意圖。
具體實施方式
本發(fā)明實施例中,對于僅有一張存儲卡的單板或系統(tǒng),在對該存儲卡進行 格式化分區(qū)過程中,將存儲卡劃分為多個區(qū)域,可以包括一個主用分區(qū)和一個 備用分區(qū),也可以包括一個主用分區(qū)和多個備用分區(qū),其中,主用分區(qū)和備用 分區(qū)的容量大小可以一致,也可以不一致。這樣,對于4又有一張存儲卡的單板或系統(tǒng),該存儲卡中包括一個主用分區(qū) 和一個備用分區(qū),則讀寫裝置在向存儲卡寫入第一文件時,按照先主用分區(qū)后 備用分區(qū)的順序把第一文件先后寫入存儲卡,即讀寫裝置將第一文件寫入所述 主用分區(qū)后,將所述第一文件寫入所述備用分區(qū)。這里,當主用分區(qū)和備用分 區(qū)的容量大小一致,向主用分區(qū)寫入第一文件的過程與向備用分區(qū)寫入第一文 件的過程可以是一致的;當主用分區(qū)和備用分區(qū)的容量大小不一致時,例如備 用分區(qū)的容量小一些,這樣,可以先將第一文件進行壓縮,然后將壓縮后的第 一文件寫入備用分區(qū)中。在寫入的過程中,如果主用分區(qū)和備用分區(qū)寫入過程中均未發(fā)生硬件錯誤,則正常結束。如果主用分區(qū)和備用分區(qū)中有一個分區(qū)發(fā)生硬件錯誤,則只 能有一個分區(qū)的寫入過程正常結束,需向網(wǎng)管上報普通告警信息。如果主用分 區(qū)和備用分區(qū)均發(fā)生硬件錯誤,則兩個分區(qū)都不能正常寫入第一文件,需上報 嚴重告警信息。其中,普通告警信息,用于提醒維護人員,存儲卡中主用分區(qū) 或備用分區(qū)有一個已經(jīng)損壞,需近期更換存儲卡。嚴重告警信息,用于提醒維 護人員,存儲卡中主用分區(qū)和備用分區(qū)都已損壞,需立刻更換存儲卡。硬件錯 誤包括由于存儲卡的某個或某些扇區(qū)損壞,導致讀寫存儲卡時,存儲卡的控制 器返回硬件錯誤指示,還包括存儲卡的控制器出現(xiàn)故障。而本發(fā)明實施例中,讀寫裝置從存儲卡讀出第二文件時,先從備用分區(qū)讀 取第二文件,當能正常從備用分區(qū)讀取第二文件時,則讀取過程正常結束。當 從備用分區(qū)讀取第二文件出錯時,則從主用分區(qū)讀取所述第二文件。其中,從備用分區(qū)讀取第二文件出錯包括硬件錯誤或軟件錯誤。這樣,當從所述備用分區(qū)讀取第二文件,備用分區(qū)發(fā)生硬件錯誤時,向網(wǎng) 管上報普通告警信息,并從主用分區(qū)讀取第二文件。當能正常從主用分區(qū)讀取 第二文件時,則讀取過程正常結束,當從不能從主用分區(qū)讀取第二文件,即主 用分區(qū)發(fā)生硬件錯誤時,上報嚴重告警信息。當從所述備用分區(qū)讀取第二文件,發(fā)生軟件錯誤時,從主用分區(qū)讀取第二 文件,當能正常從主用分區(qū)讀取第二文件時,將該第二文件從主用分區(qū)備份到 所述備用分區(qū),讀取過程正常結束。其中,軟件錯誤包括讀出第二文件后的 第二文件關鍵字段校驗錯誤,以及讀不到第二文件等。軟件錯誤的優(yōu)先級要低 于硬件錯誤。下面結合"^兌明書附圖對本發(fā)明實施例作進一步詳細描述。 本發(fā)明實施例中,存儲卡被格式化成FAT32文件系統(tǒng),如圖l所示,在存 儲卡上格式化出多個扇區(qū),其中,包括兩個大小一樣的分區(qū),格式化后的存儲 卡從下向上的第一個扇區(qū)到最后一個扇區(qū)分別是主引導扇區(qū)(MBR)、保留 扇區(qū)、主用分區(qū)、備用分區(qū)和未使用保留扇區(qū)。其中,主用分區(qū)和備用分區(qū)的容量和功能單元分配都是一致的。這里,由于存儲卡的容量有限,因此,存儲 卡上格式化出的多個扇區(qū)中只包括了 一個主用分區(qū),以及一個備用分區(qū)。這樣,整個存儲卡上只有一份的區(qū)域未使用保留扇區(qū)、MBR和保留扇 區(qū);主用分區(qū)和備用分區(qū)都有一份的區(qū)域操作系統(tǒng)引導扇區(qū)(DBR), DBR 后的第一個扇區(qū),保留扇區(qū),主文件分配表(FAT1 ),備份的文件分配表(FAT2 ), 目錄區(qū)和數(shù)據(jù)區(qū)。其中,DBR后的第一個扇區(qū)用于記錄磁盤剩余容量和下一個 空閑簇的起始地址;目錄區(qū)用于存儲^^目錄。實施例一,通信設備中的嵌入式單板包括了如圖l所述的存儲卡,參見圖 2,向該存儲卡寫入文件的過程如下,包括步驟201:向主用分區(qū)寫入文件。進入寫入流程時,讀寫裝置先向主用分區(qū)寫入文件。步驟202:判斷主用分區(qū)是否出現(xiàn)硬件錯誤,當出現(xiàn)硬件錯誤,執(zhí)行步驟 206,沒有出現(xiàn)硬件錯誤,則文件正常寫入主用分區(qū),執(zhí)行步驟203。當讀寫裝置在向主用分區(qū)寫入文件過程中,由于主用分區(qū)出現(xiàn)硬件錯誤, 不能正常將文件寫入主用分區(qū)中,則執(zhí)行步驟206。否則文件正常寫入主用分 區(qū),執(zhí)行步驟203。其中,出現(xiàn)硬件錯誤的原因,可能是通信設備突然復位, 斷電,或者存儲卡的寫入次數(shù)超過了 Flash的使用壽命上限等等。步驟203:向備用分區(qū)寫入文件,轉(zhuǎn)入步驟204。步驟204:判斷備用分區(qū)是否出現(xiàn)硬件錯誤,當出現(xiàn)硬件錯誤,不能正常 將文件寫入備用分區(qū)中,執(zhí)行步驟205,沒有出現(xiàn)硬件錯誤,則文件正常寫入 備用分區(qū),寫文件流程也正常完成。步驟205:向網(wǎng)管上報普通告警信息,即提醒維護人員,存儲卡中備用分 區(qū)已經(jīng)損壞,需近期更換存儲卡。雖然備用分區(qū)出現(xiàn)硬件錯誤,但是文件已正常寫入主用分區(qū)了,因此,寫 文件流程也正常完成了。步驟206:向網(wǎng)管上報普通告警信息,即提醒維護人員,存儲卡中主用分區(qū)已經(jīng)損壞,需近期更換存儲卡。步驟207:向備用分區(qū)寫入文件,轉(zhuǎn)入步驟208。步驟208:判斷備用分區(qū)是否出現(xiàn)硬件錯誤,當出現(xiàn)硬件錯誤,不能正常 將文件寫入備用分區(qū)中,執(zhí)行步驟209,沒有出現(xiàn)硬件錯誤,則文件正常寫入 備用分區(qū),寫文件流程正常完成。這里,當備用分區(qū)也出現(xiàn)硬件錯誤時,則主用分區(qū)和備用分區(qū)都同時出現(xiàn) 問題了,文件既不能寫入主用分區(qū)也不能寫入備用分區(qū),因此,執(zhí)行步驟209。當備用分區(qū)沒有出現(xiàn)硬件錯誤時,文件雖然不能正常寫入主用分區(qū),但是 可以寫入備用分區(qū),因此,寫文件流程也正常完成了。步驟209:向網(wǎng)管上報嚴重告警信息,即提醒維護人員,存儲卡中主用分 區(qū)和備用分區(qū)都已經(jīng)損壞,需立刻更換存儲卡。文件既不能寫入主用分區(qū)也不能寫入備用分區(qū),因此,寫文件流程異常完成。實施例二,通信設備中的嵌入式單板包括了如圖l所述的存儲卡,參見圖 3,從該存儲卡讀取文件的過程如下,其中,從該存儲卡讀取文件出錯為硬件 出錯,包括步驟301:從備用分區(qū)讀取文件。進入讀取流程,讀寫裝置先從備用分區(qū)讀取文件。步驟302:判斷備用分區(qū)是否出現(xiàn)硬件錯誤,當出現(xiàn)硬件錯誤,不能從備 用分區(qū)讀取文件,執(zhí)行步驟303,沒有出現(xiàn)硬件錯誤,則正常從備用分區(qū)讀取 文件,讀文件流程正常結束。步驟303:向網(wǎng)管上報普通告警信息,即提醒維護人員,存儲卡中備用分 區(qū)已經(jīng)損壞,需近期更換存儲卡。步驟304:從主用分區(qū)中讀取文件,進入步驟305。步驟305:判斷主用分區(qū)是否出現(xiàn)硬件錯誤,當出現(xiàn)硬件錯誤,不能從主 用分區(qū)讀取文件,執(zhí)行步驟306。沒有出現(xiàn)硬件錯誤,則,能從主用分區(qū)讀取文件,讀文件流程正常完成。這里,當主用分區(qū)出現(xiàn)硬件錯誤時,則主用分區(qū)和備用分區(qū)都同時出現(xiàn)問題了,既不能從主用分區(qū)也不能從備用分區(qū)讀取文件,因此,執(zhí)行步驟306。 當主用分區(qū)沒有出現(xiàn)錯誤時,雖然不能正常從備用分區(qū)讀取文件,但是可以從主用分區(qū)讀取文件,因此,讀文件流程也正常完成了。步驟306:向網(wǎng)管上報嚴重告警信息,即提醒維護人員,存儲卡中主用分區(qū)和備用分區(qū)都已經(jīng)損壞,需立刻更換存儲卡。既不能從主用分區(qū)也不能從備用分區(qū)讀取文件,因此,讀文件流程異常完成。實施例三,讀取文件時,硬件錯誤的優(yōu)先級高于軟件錯誤,因此,本發(fā)明 實施例作為實施例二的一個子流程,假設讀取文件的過程中,沒有發(fā)生硬件4晉 誤。參見圖4,從如圖1所示的存儲卡讀取文件的過程如下,包括步驟401:從備用分區(qū)讀取文件。進入讀取流程,讀寫裝置先從備用分區(qū)讀取文件。步驟402:判斷讀取的過程是否發(fā)生軟件錯誤,當出現(xiàn)軟件錯誤時,不能 正常從備用分區(qū)讀取文件,執(zhí)行步驟403,沒有出現(xiàn)軟件件錯誤,則正常從備 用分區(qū)讀取文件,讀文件流程正常結束。在從備用分區(qū)讀取文件的過程中,有可能會出現(xiàn)讀不到文件,或者讀出文 件后,該文件的關鍵字段校驗錯誤,那么表明軟件錯誤,因此,不能正常從備 用分區(qū)讀取文件,執(zhí)行步驟403。步驟403:從主用分區(qū)中讀取文件,進入步驟404。步驟404:判斷讀取的過程是否發(fā)生軟件錯誤,當出現(xiàn)軟件錯誤時,不能 正常從主用分區(qū)讀取文件,執(zhí)行步驟405,沒有出現(xiàn)軟件件錯誤,則正常從備 用分區(qū)讀取文件,執(zhí)行步驟406。步驟405:讀取文件失敗,調(diào)用重新寫入該文件的流程。這里,既不能從主用分區(qū)也不能從備用分區(qū)讀取文件,因此,讀文件流程異常咒成。步驟406:將該文件從主用分區(qū)備分到備用分區(qū)。從主用分區(qū)正常讀取文件后,因備用分區(qū)出現(xiàn)了軟件錯誤,因此,將該文 件從主用分區(qū)備分到備用分區(qū),這樣保證了備用分區(qū)中該文件也是完好的,以 便下次進行讀取。雖然不能正常從備用分區(qū)讀取文件,但是可以從主用分區(qū)讀取文件,因此, 讀文件流程也正常完成了 。上述三個實施例中,讀寫存儲卡的過程中采用寫文件時先寫主用分區(qū)后寫 備用分區(qū),讀文件時先讀備用分區(qū)后讀主用分區(qū)的策略。這樣,由于寫的時候先主用分區(qū)后備用分區(qū),當系統(tǒng)突然斷電或復位等情 況發(fā)生時,可能出現(xiàn)主用分區(qū)寫完而備用分區(qū)沒來得及寫或者沒有寫完的情 況。此時,如果采取先讀主用分區(qū)后讀備用分區(qū)的方法,則由于主用分區(qū)一直 讀取正確,因此,程序正常返回,這樣就不能確定備用分區(qū)的當前文件是否存 在或正確,這樣積累下去,備用分區(qū)就可能遺留^f艮多不存在或不正確的文件。 當主用分區(qū)出現(xiàn)問題時,由于文件整體切換到備用分區(qū),而備用分區(qū)的遺留錯 誤文件會導致備用分區(qū)使用異常。如果試圖通過整個主備用分區(qū)的同步來解決 這個問題,則由于文件過多,大大降低了系統(tǒng)的效率。如果采用每次讀完主用 分區(qū)再檢驗一下備用分區(qū)的方式,則由于每個文件都需要檢驗,同樣降低了系 統(tǒng)的效率。而采用本發(fā)明實施例中先讀備用分區(qū)后讀主用分區(qū)的方式時,當讀備用分 區(qū)時,沒有發(fā)現(xiàn)文件或校l^文件錯誤,轉(zhuǎn)而去讀主用分區(qū),如果主用分區(qū)讀出 正確,此時將該文件做一個從主用分區(qū)到備用分區(qū)的同步動作,以保證主備用 分區(qū)是同步的,即保證主備用分區(qū)存儲的都是可用的文件,這樣發(fā)生切換后出 現(xiàn)異常的幾率大大降低。并且,僅僅同步了一個確定有問題的文件,較之于全 盤備份方案大大節(jié)約了時間,提高了效率。本發(fā)明實施例中,當存儲卡的容量足夠大時,存儲卡還可以包括一個主用分區(qū),多個備用分區(qū),例如存儲卡包括主用分區(qū),第一備用分區(qū)和第二備 用分區(qū)。這樣,向存儲卡寫文件時,先寫主用分區(qū),然后寫第一備用分區(qū),最 后寫第二備用分區(qū);從存儲卡讀文件時,先讀第一備用分區(qū),當不能從第一備 用分區(qū)讀取文件時,則可以從第二備用分區(qū)讀取文件,當仍然不能從第二備用 分區(qū)讀取文件時,最后從主用分區(qū)讀取文件。其中,第一備用分區(qū)與第二備用 分區(qū)可以互換。
這里,向存儲卡寫文件時,首先向主用分區(qū)寫文件,當主用分區(qū)發(fā)生硬件 錯誤時,上報普通告警信息,然后向第一備用分區(qū)寫文件,當?shù)谝粋溆梅謪^(qū)發(fā) 生硬件錯誤時,上報普通告警信息,最后向第二備用分區(qū)寫文件,當?shù)诙溆?分區(qū)也發(fā)生硬件錯誤時,則上報嚴重告警信息,不能向存儲卡中寫入文件。
從存儲卡讀取文件時,從第一備用分區(qū)讀取文件,當?shù)谝粋溆梅謪^(qū)發(fā)生硬 件錯誤時,上報普通告警信息,然后從第二備用分區(qū)讀取文件,當?shù)诙溆梅?區(qū)發(fā)生硬件錯誤時,仍需上報普通告警信息,最后從主用分區(qū)讀取文件,當主 用分區(qū)發(fā)生硬件錯誤時,則上報嚴重告警信息,不能從存儲卡中讀取文件。
當讀取文件,存儲卡硬件正常,若從第一備用分區(qū)讀取文件,發(fā)生軟件錯 誤時,從第二備用分區(qū)讀取文件,當從第二備用分區(qū)能讀取文件,則讀取文件 后,將該文件備份到第一備用分區(qū)中,讀取流程結束;當從第二備用分區(qū)讀取 文件,也發(fā)生軟件錯誤時,則還需從主用分區(qū)中讀取文件,當從主用分區(qū)能讀 取文件,則讀取文件后,將該文件備盼到第一備用分區(qū)以及第二備用分區(qū)中, 或者將該文件備份到第 一備用分區(qū)或第二備用分區(qū)中,讀取流程結束。
當然,上述實施例中,若存儲卡中主用分區(qū),第一備用分區(qū)和第二備用分 區(qū)的容量大小不一樣時,可以在寫入文件的過程中,將文件1、 2、 5、 6寫入 主用分區(qū)后,再將文件l、 2、 5、 6寫入第一備用分區(qū),將文件3、 4、 7、 8寫 入主用分區(qū)后,再將文件3、 4、 7、 8寫入第二備用分區(qū)。這樣,在讀取文件 的過程中,先從第一或第二備用分區(qū)中讀取文件,當不能讀取到文件時,則從 主用分區(qū)讀取文件。例如讀取文件7時,可以先從第一備用分區(qū)中讀取文件7,當沒有讀取文件7時,則從第二備用分區(qū)中讀取文件7,當能讀取文件7時, 流程結束,否則,從主用分區(qū)中讀取文件7。
當然,本發(fā)明實施例中,存儲卡也可以被格式化成pHILE、 FAT、 ext2、 ext3等文件系統(tǒng),其中,存儲卡中至少包括兩個容量、格式都一樣的分區(qū)。并 且,主用分區(qū)可以與備用分區(qū)進行交換,即讀寫存儲卡的過程中也可以采用寫 文件時先寫備用分區(qū)后寫主用分區(qū),讀文件時先讀主用分區(qū)后讀備用分區(qū)的策 略。具體的讀寫過程就不再累述了。
根據(jù)上述讀寫存儲卡的方法,可以構造一種讀寫存儲卡的裝置,該裝置可 以是通信設備上嵌入式單板或系統(tǒng)中的一個模塊,例如中央處理器CPU存儲 單元。通信設備上嵌入式單板或系統(tǒng)中的存儲卡在進行格式化分區(qū)時,已包括 一個主用分區(qū)和至少一個備用分區(qū)。參見圖5,讀寫該存儲卡的裝置包括寫 入單元100和讀取單元200。
寫入單元IOO,用于先將第一文件寫入所述主用分區(qū),后將所述第一文件 寫入所述至少一個備用分區(qū)。
讀取單元200,用于從所述至少一個備用分區(qū)讀取第二文件,當從備用分 區(qū)讀取第二文件出錯時,從所述主用分區(qū)讀取所述第二文件。
其中,寫入單元100在向主用分區(qū)寫入第一文件的過程中,檢查主用分區(qū) 是否發(fā)生硬件錯誤,當所述主用分區(qū)發(fā)生硬件錯誤時,上報普通告警信息;在 向備用分區(qū)寫入第一文件的過程中,也要檢查備用分區(qū)是否發(fā)生硬件錯誤,如 果只有備用分區(qū)一個發(fā)生硬件錯誤時,上報普通告警信息,如果備用分區(qū)和主 用分區(qū)都發(fā)生了錯誤,則上報嚴重告警信息。當存儲卡包括多個備用分區(qū)時, 寫入單元IOO可以向其中一個備用分區(qū),或者多個備用分區(qū)寫入第一文件,每 寫入一個備用分區(qū),都要檢查該備用分區(qū)是否發(fā)生硬件錯誤,如果只有單獨備 用分區(qū)發(fā)生硬件錯誤時,上l艮普通告警信息,如果所有備用分區(qū)和主用分區(qū)都 發(fā)生了錯誤,則上報嚴重告警信息。
當讀取單元200從存儲卡讀取第二文件過程中出現(xiàn)的是硬件錯誤,則,讀取單元200從備用分區(qū)讀取第二文件的過程中,檢查備用分區(qū)是否發(fā)生硬件錯 誤,當所述備用分區(qū)沒有發(fā)生錯誤時,從所述備用分區(qū)讀取第二文件。當所述 備用分區(qū)發(fā)生硬件錯-誤時,上報普通告警信息,并從主用分區(qū)讀取第二文件。 其從主用分區(qū)讀取第二文件的過程中,同樣需檢查主用分區(qū)是否發(fā)生硬件錯 誤,當所述主用分區(qū)沒有發(fā)生錯誤時,.從所述主用分區(qū)讀取第二文件。當所述 主用分區(qū)也發(fā)生錯誤時,則上報嚴重告警信息。當存儲卡包括多個備用分區(qū)時, 讀取單元200可以先從其中 一個備用分區(qū)讀取第二文件,當該備用分區(qū)發(fā)生硬 件錯誤時,上報普通告警信息,然后從其他備用分區(qū)讀取第二文件,當其他備 用分區(qū)也發(fā)生硬件錯誤時,上報普通告警信息,并從主用分區(qū)讀取第二文件。 當所述主用分區(qū)沒有發(fā)生錯誤時,從所述主用分區(qū)讀取第二文件。當所述主用 分區(qū)也發(fā)生錯誤時,則上報嚴重告警信息。
當讀取單元200從存儲卡讀取第二文件過程中出現(xiàn)的是軟件錯誤,則,讀 取單元200從備用分區(qū)讀取第二文件的過程中出現(xiàn)軟件4晉誤,從所述主用分區(qū) 讀取第二文件。并且,從所述主用分區(qū)讀取所述第二文件之后,將所述第二文 件從所述主用分區(qū)備份到所述備用分區(qū)。當存儲卡包括多個備用分區(qū)時,讀取 單元200從其中一個備用分區(qū)讀取第二文件的過程中出現(xiàn)軟件錯誤,則可以從 其他備用分區(qū)讀取第二文件,并且,從笫二備用分區(qū)讀取所述第二文件之后, 將所述第二文件備份到第一備用分區(qū)。若讀取單元200也不能從其他備用分區(qū) 讀取第二文件,則從所述主用分區(qū)讀取第二文件。并且,從所述主用分區(qū)讀取 所述第二文件之后,將所述第二文件從所述主用分區(qū)備份到至少一個備用分 區(qū)。
綜上所述,本發(fā)明實施例中,在存儲卡上格式化出一個主用分區(qū)和至少一 個備用分區(qū),這樣,向存儲卡寫入文件時,在主備用分區(qū)都寫一份,從而,文 件系統(tǒng)會自動創(chuàng)建兩份一模一樣的頻繁讀寫區(qū),同時數(shù)據(jù)區(qū)也有兩份,因此, 起到了M保護作用。在讀M儲卡上的文件時,當備用分區(qū)由于某種原因出 現(xiàn)故障,發(fā)生了錯誤,馬上切換到主用分區(qū),讀取主用分區(qū)的數(shù)據(jù),保證系統(tǒng)能夠正常運行。同時,在讀寫存儲卡的過程中,當主用分區(qū)和備用分區(qū)中有一 個分區(qū)發(fā)生硬件錯誤時,向網(wǎng)管上報告警,提醒維護人員近期及時更換存儲卡。 如果主用分區(qū)和所有備用分區(qū)都發(fā)生硬件錯誤,則直接上報嚴重告警,提醒維 護人員馬上更換存儲卡。從而,提高了系統(tǒng)的可維護性和健壯性
顯然,本領域的技術人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā) 明的精神和范圍。這樣,倘若對本發(fā)明的這些修改和變型屬于本發(fā)明權利要求 及其等同技術的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權利要求
1、一種讀寫存儲卡的方法,其特征在于,所述存儲卡包括一個主用分區(qū)和至少一個備用分區(qū),該方法包括讀寫裝置將第一文件寫入所述存儲卡時,將所述第一文件寫入所述主用分區(qū)后,將所述第一文件寫入所述至少一個備用分區(qū);所述讀寫裝置從所述存儲卡中讀取第二文件時,從所述至少一個備用分區(qū)讀取第二文件,當從備用分區(qū)讀取第二文件出錯時,從所述主用分區(qū)讀取所述第二文件。
2、 如權利要求1所述的方法,其特征在于,所述將所述第一文件寫入所 述主用分區(qū)包括當所述主用分區(qū)發(fā)生硬件錯誤時,上報普通告警信息。
3、 如權利要求2所述的方法,其特征在于,所述將所述第一文件寫入所 述至少一個備用分區(qū)包括當備用分區(qū)發(fā)生硬件錯誤時,上報嚴重告警信息。
4、 如權利要求1所述的方法,其特征在于,當從備用分區(qū)讀取第二文件 發(fā)生硬件錯誤時,從所述主用分區(qū)讀取所述第二文件之前,該方法還包括上報普通告警信息。
5、 如權利要求1所述的方法,其特征在于,當從備用分區(qū)讀取第二文件 發(fā)生硬件錯誤時,從所述主用分區(qū)讀取所述第二文件包括當從所述主用分區(qū)讀取第二文件,發(fā)生硬件錯誤時,上報嚴重告警信息。
6、 如權利要求1所述的方法,其特征在于,當從備用分區(qū)讀取第二文件 發(fā)生軟件錯誤時,從所述主用分區(qū)讀取所述第二文件之后,該方法還包括將所述第二文件從所述主用分區(qū)備份到所述至少 一個備用分區(qū)。
7、 一種讀寫存儲卡的裝置,其特征在于,所述存儲卡包括 一個主用分 區(qū)和至少一個備用分區(qū),該裝置包括寫入單元,用于將第一文件寫入所述主用分區(qū)后,將所述第一文件寫入所述至少一個備用分區(qū);讀取單元,用于從所述至少一個備用分區(qū)讀取第二文件,當從備用分區(qū)讀 取第二文件出錯時,從所述主用分區(qū)讀取所述第二文件。
8、 如權利要求7所述的裝置,其特征在于,所述寫入單元包括 第一檢查子單元,用于寫入第一文件時,檢查主用分區(qū)和至少一個備用分區(qū)是否發(fā)生硬件錯誤;第一上報子單元,用于寫入第一文件時,所述主用分區(qū)或至少一個備用分 區(qū)發(fā)生硬件錯誤時,上報普通告警信息;第二上報子單元,用于寫入第一文件時,所述主用分區(qū)發(fā)生硬件錯誤,以 及所述備用分區(qū)發(fā)生硬件錯誤時,上報嚴重告警信息。
9、 如權利要求7所述的裝置,其特征在于,所述讀取單元包括 第二檢查子單元,用于讀取第二文件時,檢查至少一個備用分區(qū)和/或主用分區(qū)是否發(fā)生硬件錯誤;第三上凈艮子單元,用于讀取第二文件,所述至少一個備用分區(qū)或主用分區(qū) 發(fā)生硬件錯誤時,上報普通告警信息;第四上報子單元,用于讀取第二文件,所述備用分區(qū)發(fā)生硬件錯誤,以及 所述主用分區(qū)發(fā)生硬件錯誤時,上報嚴重告警信息。
10、 如權利要求7所述的裝置,其特征在于,所述讀取單元還包括 備份子單元,用于從所述備用分區(qū)讀取第二文件,發(fā)生軟件錯誤時,將所述第二文件從所述主用分區(qū)備份到所述至少 一個備用分區(qū)。
全文摘要
本發(fā)明公開了一種讀寫存儲卡的方法及裝置,用以解決現(xiàn)有技術中存儲卡容錯性低、從而導致嵌入式系統(tǒng)不穩(wěn)定問題。存儲卡包括一個主用分區(qū)和至少一個備用分區(qū),該方法包括讀寫裝置將第一文件寫入所述存儲卡時,將所述第一文件寫入所述主用分區(qū)后,將所述第一文件寫入所述至少一個備用分區(qū);所述讀寫裝置從所述存儲卡中讀取第二文件時,從所述至少一個備用分區(qū)讀取第二文件,當從備用分區(qū)讀取第二文件出錯時,從所述主用分區(qū)讀取所述第二文件。
文檔編號G06K19/073GK101576966SQ20091020327
公開日2009年11月11日 申請日期2009年6月2日 優(yōu)先權日2009年6月2日
發(fā)明者孫士友 申請人:中興通訊股份有限公司