打印

Nand Flash模拟U盘快要成功,但是????

[复制链接]
3873|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wangliuliu566|  楼主 | 2014-10-11 16:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
参考了电脑圈圈的U盘制作,我用nand flash模拟了一个U盘,电脑可以识别U盘,里面提前建立的测试文件也能正常读取,但是往里面复制东西时,电脑提示windows延缓写入失败,东西表面上看已经复制到U盘里面去了,拔掉U盘再插进去,发现之前复制的东西已经没了?纠结几天还没解决,不知大家有没有相关解决思路?小弟在此提前谢过!!

相关帖子

沙发
584025981| | 2014-10-11 21:08 | 只看该作者
先用WINHEX软件看看模拟的U盘,文件内容和文件目录项是否写入了

使用特权

评论回复
板凳
wangliuliu566|  楼主 | 2014-10-13 15:32 | 只看该作者
584025981 发表于 2014-10-11 21:08
先用WINHEX软件看看模拟的U盘,文件内容和文件目录项是否写入了

    您好,用Winhex观察后发现,文件内容和文件目录项确实写入了,但今天出现这样几种现象:
   (1) 可以往模拟的U盘复制少量文件(命名为A),拔掉U盘再插进去,A文件仍存在,内容正确;
   (2) 自己新建一个文件(命名为B),并随意填充一些内容,用Winhex观察文件目录项和文件内容确实写入U盘了,但拔掉U盘再插进去发现B文件没了;
   疑问:复制和新建文件时,电脑对下位机(带Nand Flash)自动发送写命令,复制能成功,为何新建就不行了?

使用特权

评论回复
地板
maziwoaini| | 2014-10-14 16:12 | 只看该作者
说的不错,很好,good!

使用特权

评论回复
5
wangliuliu566|  楼主 | 2014-10-15 19:47 | 只看该作者
这几天太忙了,抽空又测了测,把之前的现象重新描述一下:
(1)我模拟的文件系统是FAT16,模拟的U盘是16MB,0扇区是DBR,1 ~ 4扇区是FAT1,5 ~ 8扇区是FAT2,9 ~ 40扇区是根目录区,41扇区之后是数据区,数据区是以簇为单位的,起始簇号是2
(2)往U盘中复制文件A时,用winhex观察A文件放在了第4簇,通过查看根目录区关于文件A的内容是正确的,拔掉U盘再插进去,A文件仍存在,内容也正确
(3)在U盘中新建文件B时(单片机复位之后),用winhex观察B文件放在了第4簇(有时候B文件竟然放在了第0簇,不知怎么回事?),通过查看根目录区关于文件B的内容是正确的,拔掉U盘再插进去,发现新建的文件B变成了一个乱码文件。新建文件时,电脑会提示:Windows -延缓写入失败。

疑问:复制和新建同样写在了第4簇,为何新建的文件出现这样的问题?

使用特权

评论回复
6
figureyang| | 2014-10-23 08:58 | 只看该作者
本帖最后由 figureyang 于 2014-10-23 09:00 编辑

NANDFLASH要做坏块替换


Cheap_flash.rar (2.89 MB)

使用特权

评论回复
7
wangliuliu566|  楼主 | 2014-10-27 18:41 | 只看该作者
figureyang 发表于 2014-10-23 08:58
NANDFLASH要做坏块替换

我的程序里面有坏块管理和写平衡算法,这一点当时是顾及到了,不过还是非常感谢你提供的附件。

使用特权

评论回复
8
xyz19820925| | 2014-11-3 16:49 | 只看该作者
这个问题肯定出现在你读取到数据后没有正确的写入到FLASH里面去,按照正常逻辑是计算机让你写哪个扇区你就写哪个扇区的。仔细跟踪下你写第二个文件的时候你读取FLASH的扇区数据进来在修改是否正确,或者直接删除扇区数据后在写入的数据是否正确。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

139

帖子

1

粉丝