- 论坛徽章:
- 0
|
大家好:
我遇到这样一个问题,不知道该如何解决,请大家帮忙看一下:
我把nand flash分了一个区用来存放可能会经常修个的配置文件,这些配置文件可通过web页面进行修改,修改的文件保存在这个分区中。
在启动时,用yaffs格式挂载这个分区。
今天在程序运行过程中,突然发现提示该分区
“block 35 is bad
block 36 is bad
block 36 is bad
................
“
很多坏块信息,通过web不能正常对这些文件进行操作了。
后来,重启在u-boot中nand erase了flash。却没有提示有坏块!!!看来这就是所谓的“假坏块”了
内核用的是2.6.19,是买开发板时附带的内核文件,我发现是在fs/yaffs2/yaffs_guts.c中有yaffs_Scan()和yaffs_ScanBackwards()两个函数中进行检查。
虽然挂载时用的“-t yaffs",但实际在内核menuconfig中,只有yaffs2的选项,所以选了支持yaffs2。
请问 yaffs 不是提供了ECC校验吗? 为什么会出现这样的”假坏块“?
是不是有可能校验算法有问题?
我怀疑 内核yaffs2文件系统代码有问题,我想移植新的yaffs2代码,请问这样可以解决问题吗?
谢谢了! |
|