阅读:1858回复:2
使用2K大页NANDFLASH驱动出现丢失链簇问题,请教有没有人碰到过?
硬件是2440+K9F4G08U0A,512MBflash,WINCE5.0,BSP为4.2升级的那种。
使用zhenshijie同志的2K大页NANDFLASH驱动,加载、显示、存取都很正常。 但是使用一段时间后发现,如果存了很多数据,例如已经使用了490MB之后, 再拷贝一个大于剩余空间的文件进入的话,在提示空间不足后,NANDFLASH就不正常了。 表现为: 1、无法删除NANDFLASH上的已存在文件了,提示空间不足。 2、查看属性应该还剩下10M左右空间,但是无法再存放小于剩余空间的文件了,就算 新建一个文件夹也是不成功。 3、使用控制面板中的存取管理器,卸载NANDFLASH盘后,扫描提示出现1个丢失的链簇。 4、由于我的注册表使用HIVE,在重启开机后,FMD启动MOUNT出现错误,系统无法启动了。 我发现一些不能理解的地方应该有点关系: 1、除了第一次格式化,用到FMD_EraseBlock1G08()函数外,在拷贝数据,擦除数据都没有使用到这个函数了。 我再这个函数中加上了串口打印信息,没有看到出现。是否在FMD_WriteSector1G08()中已经有擦除动作? 2、我看了NAND.S中的WrPage2048函数应该是没有擦除动作的,那么是否表示NANDFLASH没有把已经用过的块 擦除重新利用?如果是这样就可以反面说明,上面的现象了,当一个大于剩余空间的文件被写入时,只有写到最后 无空间时,才提示空间不足,但是前面部分文件数据已经把剩余的NANDFLASH块写过了,自然后面新建文件夹、拷贝 小文件都无法成功了,因为没有全新的0XFF的块了,而WINCE不知道为甚么没有去回收一些使用过的块,而导致空间 不足了。 请使用过的同志谈谈看法,如果有硬件条件的不妨测试测试写满后的表现,然后告诉我。或者有已经解决的大虾不惜赐教啊! 万分感谢,渴望交流。 |
|
沙发#
发布于:2008-11-29 11:32
以前遇到过,好像是WINCE的FTL有问题,得给磁盘留点空间,不要放的太满。
|
|
|
板凳#
发布于:2008-12-03 04:25
找一个新版本bsp, 或者2442的bsp, 里面有支持2k的驱动。目前没有发现什么问题。
|
|