U盘修复

前几天搞测试,把个人U盘搞坏了,坏的缘由其实很简单,我把个人那个系统的程序改了一下,不停的向U盘中写数据,U盘写满了就格式化再从新写,2G的U盘写满了2次,终于写坏了。

U盘内保存的数据放在一个文件中,系统每收到512字节数据就向U盘保存一下,由于是以文件形式保存,所以也要更新文件大小信息,致使目录扇区不停被写入数据,写得太多,Flash出现坏块了。

原本我觉得只是出现坏块,把物理0扇区的相关参数修改一下,避开坏的扇区就好了,兴致勃勃地把程序改了一下,结果大失所望。物理0扇区的数据能够读出来,可是写入数据就不行,执行相应的UFI命令返回STALL,复位后再写依然返回STALL,REQUEST SENSE命令也是返回STALL。

我把物理0扇区的数据读出来跟正常的U盘比较一下,发现坏U盘的0扇区的数据是乱七八糟的,估计可能U盘内部的程序出问题了。

这可不是USB规范和OHCI就能搞定的了,看来还得网上搜索高人的答案了。找了半天,发现解决方案其实很简单,

1.先用u盘芯片型号检测工具检测u盘芯片:下载网址为  http://drv5.cn/sfinfo/64.html 2.在相同的连接上面找到(若是找不到就用搜索引擎找)并下载相应的U盘(关键是对应芯片型号)的量产工具进行修复。 关键是第二步的量产工具必定要找对,这没什么好办法,就是慢慢找,下来慢慢试了,一旦量产工具能够识别出U盘,那就基本没问题了。