wikee
驱动小牛
驱动小牛
  • 注册日期2003-02-25
  • 最后登录2009-02-21
  • 粉丝0
  • 关注0
  • 积分355分
  • 威望108点
  • 贡献值0点
  • 好评度104点
  • 原创分0分
  • 专家分0分
阅读:1791回复:2

使用2K大页NANDFLASH驱动出现丢失链簇问题,请教有没有人碰到过?

楼主#
更多 发布于:2008-11-17 19:47
硬件是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不知道为甚么没有去回收一些使用过的块,而导致空间
不足了。

请使用过的同志谈谈看法,如果有硬件条件的不妨测试测试写满后的表现,然后告诉我。或者有已经解决的大虾不惜赐教啊!

万分感谢,渴望交流。

microsun
论坛版主
论坛版主
  • 注册日期2002-11-11
  • 最后登录2014-07-18
  • 粉丝0
  • 关注0
  • 积分1052分
  • 威望1159点
  • 贡献值0点
  • 好评度848点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-11-29 11:32
以前遇到过,好像是WINCE的FTL有问题,得给磁盘留点空间,不要放的太满。
学海无涯
high
论坛版主
论坛版主
  • 注册日期2002-08-10
  • 最后登录2010-07-26
  • 粉丝4
  • 关注0
  • 积分60分
  • 威望655点
  • 贡献值0点
  • 好评度56点
  • 原创分0分
  • 专家分60分
板凳#
发布于:2008-12-03 04:25
找一个新版本bsp, 或者2442的bsp, 里面有支持2k的驱动。目前没有发现什么问题。
游客

返回顶部