FLASH掉電保護問題_第1頁
FLASH掉電保護問題_第2頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、來自網(wǎng)絡(luò)的來自網(wǎng)絡(luò)的FLASH掉電總結(jié)掉電總結(jié)原因:由于 FLASH 的擦除和寫入的特性,如果在擦除中掉電或者寫入時掉電,有可能會出現(xiàn)失敗的情況,下次再上電讀取就會出錯;擦除的時候掉電,不能保證擦除完全,但是已經(jīng)擦除的部分,肯定是 Oxff 了。寫的時候掉電,已經(jīng)寫入的就是正確的,電平掉到最低極限工作電壓附近時,寫入的就無法保證了地址無法保證,寫入的值也無法保證。沒有寫到的,肯定還是 Oxff。解決方式:1. 硬件方式解決硬件方式解決掉電保護機制掉電保護機制必須硬件電路上有相應(yīng)的掉電警告中斷,而且必須有足夠的時間供軟件響應(yīng)。樓上還有一位兄弟說的對;掉電保存和上電恢復;需要以下:1)快速檢測掉電

2、信號;(太敏感了也不好,常常喊狼來了);2)要有足夠的時間讓你停下來保存現(xiàn)場;3)上電后可靠的復位;這些的關(guān)鍵是掉電信號電源復位信號三個怎么配合的事;軟件怎么寫應(yīng)該大家都會;關(guān)鍵在硬件上;掉電保護不是重新擦寫那么簡單,首先要有一個機制能知道發(fā)生了掉電事件,還要知道什么地方的數(shù)據(jù)是可能出錯的,如果是新建文件還好一點,一般就是數(shù)據(jù)作廢,如果是改寫一個文件時發(fā)生掉電事故的話,還要有恢復機制,將數(shù)據(jù)恢復成改寫以前的數(shù)據(jù)。由于 flash 的先擦后寫的特性,不會在原來位置重新寫數(shù)據(jù),一般都是把原位置的數(shù)據(jù)標記為無效,再在新位置寫入數(shù)據(jù),對于文件來說有一個存儲位置的關(guān)系,這不同于文件系統(tǒng)的邏輯地址,每個邏

3、輯地址要有對應(yīng)的物理地址, 要有一套邏輯-物理地址的轉(zhuǎn)換映射關(guān)系在里面。 flash 空間總是有限的,還要有垃圾回收的機制,系統(tǒng)要將無效數(shù)據(jù)的存儲空間回收。而 nand 的擦單元是寫單元的 2的 n 次幕(如 32,64,128)倍,如果一個擦除單元內(nèi)有有效數(shù)據(jù)的話,還要將有效的數(shù)據(jù)搬移到其它地方,要對相應(yīng)的文件的地址映射進行更新維護。 擦寫均衡的實現(xiàn)也是一件比較復雜的事情所以我們看到的 U 盤大小總是小于標定的大小,因為它內(nèi)部要保留一定區(qū)間用來實現(xiàn)FTL 的算法,保存 FTL 層的數(shù)據(jù)。如果是這么個要求讓我重新設(shè)計一下硬件的話會有如下幾個部分:1電源管理芯片,檢測掉電事件的發(fā)生;2儲能元件,

4、 在掉電發(fā)生后能滿足執(zhí)行掉電保護的操作即有足夠的時間存儲一些標志位和必要的數(shù)據(jù);然后結(jié)合前面大家提到的軟件掉電保護方法來實現(xiàn)。一個電源檢測芯片,一個儲能元件(比如大點的電容)結(jié)合軟件判斷以及提前保存現(xiàn)場就能很好的實現(xiàn)掉電保護了還是硬件上做些改動吧,成本又沒多少,想純軟件實現(xiàn)感覺比較難。2. 軟件方式解決軟件方式解決要改寫某扇區(qū)內(nèi)容,1.先把該扇區(qū)內(nèi)容備份到一個特殊的扇區(qū);2.在某個地方寫一個特殊的標記;3.完成該扇區(qū)的改寫操作,清除標記;4.系統(tǒng)每次上電或復位,都去檢查下標記,就跟 windows 下的“磁盤掃描程序”一樣;即使最壞情況,也可以恢復改寫之前的數(shù)據(jù);這個過程“備份-置標記-寫-清標記”的辦法,是個可行的辦法,也是目前比較通行的辦法。但是要注意:這個標記必須是單獨占用一個無用的扇區(qū)(沒有實際有用數(shù)據(jù)的扇區(qū)),保證對標記的操作不會影響到實際數(shù)據(jù)。二是這只能保證數(shù)據(jù)能恢復到之前的狀態(tài),不能確保數(shù)據(jù)結(jié)構(gòu)的完整性。譬如你有一個數(shù)據(jù)結(jié)構(gòu)有 16 字節(jié)(它們之間是有邏輯關(guān)系的),跨兩個扇區(qū)保存,現(xiàn)在要全面更新這16 個字節(jié)的數(shù)據(jù),如果發(fā)生某個扇區(qū)沒有成功更新(即恢復到之前的數(shù)據(jù)),就會發(fā)生新舊數(shù)據(jù)同時存在的情況,程序

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論