- 論壇徽章:
- 0
|
大家好:
我遇到這樣一個問題,不知道該如何解決,請大家?guī)兔匆幌拢?br />
我把nand flash分了一個區(qū)用來存放可能會經常修個的配置文件,這些配置文件可通過web頁面進行修改,修改的文件保存在這個分區(qū)中。
在啟動時,用yaffs格式掛載這個分區(qū)。
今天在程序運行過程中,突然發(fā)現(xiàn)提示該分區(qū)
“block 35 is bad
block 36 is bad
block 36 is bad
................
“
很多壞塊信息,通過web不能正常對這些文件進行操作了。
后來,重啟在u-boot中nand erase了flash。卻沒有提示有壞塊!!!看來這就是所謂的“假壞塊”了
內核用的是2.6.19,是買開發(fā)板時附帶的內核文件,我發(fā)現(xiàn)是在fs/yaffs2/yaffs_guts.c中有yaffs_Scan()和yaffs_ScanBackwards()兩個函數(shù)中進行檢查。
雖然掛載時用的“-t yaffs",但實際在內核menuconfig中,只有yaffs2的選項,所以選了支持yaffs2。
請問 yaffs 不是提供了ECC校驗嗎? 為什么會出現(xiàn)這樣的”假壞塊“?
是不是有可能校驗算法有問題?
我懷疑 內核yaffs2文件系統(tǒng)代碼有問題,我想移植新的yaffs2代碼,請問這樣可以解決問題嗎?
謝謝了! |
|