阅读:2025回复:18
用D12做U盘时好奇怪的问题
我用D12做U盘,已经到了UFI协议的INQURY、Read Capacity、Read等过程,然后出现了U盘。
但是奇怪的是,当我将做好的板子移动我的机器上的另一个口时,就找不到了,甚至连枚举好象都过不了,还向我要驱动程序(Mass Storage可以不要驱动吧),换到别的机器上也是如此。 于是,我把前几天的固件重新放进去,就是前几天已经可以识别出是Mass Storage设备的那个版本的程序,这样可以枚举到发现是Mass Storage设置,然后再重新将最新版的固件放进去,于是又可以找到,出现盘符,在别的机器上重复,也是如此。 甚感困惑,望指点! |
|
最新喜欢:![]() |
沙发#
发布于:2002-11-21 10:15
我请教你几个问题:
请问在51的固件中需要做逻辑块到物理块的转换表吗?那关于FAT等管理需要做吗?还是主机操作系统完成?如果主机完成,那它的格式岂不多是FAT32?可我看SamsungFlash资料里提到FAT12和FAT16。还是固件只需解析BulkOnly+UFI(SCSI-2)的协议就可以了?谢谢! 还有你用的Flash是哪类的?是NAND Flash吗? |
|
板凳#
发布于:2002-11-21 12:26
需要自己做Fat16,
|
|
地板#
发布于:2002-11-21 13:48
你是用ARM7做FAT16?
|
|
地下室#
发布于:2002-11-21 14:47
我做的这个东西
|
|
5楼#
发布于:2002-11-21 15:34
我当然不是用ARM7专门做一个Fat16或是U盘,这个东西只是ARM7系统很小但很有意思的一个功能.
请大家讨论一下三种协议的取舍吧,我有点决定不了了: UFI RBC SCSI 还有你们用的Mass Storage Device的VID和PID是从哪里来的,要知道这个东西决定了你的U盘是不是可以在PC机上找到,我用我自己买的一个U盘的VID和PID,但是它使用的SCSI,这就决定了如果我想让其工作,也必须使用SCSI,但我感觉用RBC更好,但没有合适的VID和PID. |
|
6楼#
发布于:2002-11-21 15:37
TO iamchine:
上午针对你的问题写了许多,但网络出问题了没发过去,丢了.所以得写. 不敢讲请教,一起学习研究吧! 1.的确,我用的也是NAND Flash,三星的F2808,16M, 请问在51的固件中需要做逻辑块到物理块的转换表吗?那关于FAT等管理需要做吗? 以上两个东西都要自己做,我还没有做,正在做. |
|
7楼#
发布于:2002-11-21 15:47
各位老大,我也想做个U盘玩玩,可不可以给些资料,让小弟也入门一下, Jack_mail@163.com
|
|
8楼#
发布于:2002-11-21 16:27
我现在还在做,还没有做完呢,所以手里头也还没有成型的资料,等做完了如果有时间整理,到时候再来这里共享吧.
|
|
9楼#
发布于:2002-11-21 17:21
Hi, frank_wang
我现在也在做D12+Flash,目前进度和你一样,也有同样的问题,希望我们能共同进步 |
|
10楼#
发布于:2002-11-21 17:25
好呀,互相鼓励,常来这里交流进度吧。 ;)
|
|
11楼#
发布于:2002-11-21 17:31
To Frank_Wang:
谢谢!是的,大家一起学习讨论研究。 关于RBC的命令的确简单,不过我在微软网页上看到其操作系统自带的Driver还不支持RBC,只有SubClass=06h和!06h两类,但!06h的CB要固定添加到12字节长,所以UFI可以,而RBC就不行了;你是自己再做主机端驱动吧。我想对于SCSI,你也不必所有命令都支持啊。我们也没有什么VID和PID,看来这方面也得再想想办法了。 还有如果发贴有问题,可以mail to:iamchine@sina.com BTW.我在本版的提问有位朋友回答说U盘不用做FAT的,操作系统会管,当然也许有不同的实现方式。而且我也觉得你用ARM做FAT还好,但51做就太慢了点吧?Guess下你是不是做带U盘功能的MP3播放器?:) |
|
12楼#
发布于:2002-11-21 22:17
你是不是在用philips\'s mass storage kit作蓝本?
|
|
13楼#
发布于:2002-11-21 22:26
用mass storage时FAT文件系统是不需要做的,除非你自己需要读或写flash上的文件
|
|
14楼#
发布于:2002-11-22 08:29
对不起,前面有个问题没弄太清,如果单纯只做U盘,只不需要管理Fat的,只需要在BPB里面将Fat有关的信息给全,操作系统会自已去管理操作系统,如果要刷新FAT,主机也会给出相应的请求,底下要做的只是响应这些请求面已.
但是我因为要从底下读写Flash,所以得做FAT16 我的这个ARM是个通用控制器,做USB功能是方便与PC机的文件交换,到是想下一步做个带USB的Mp3. 但MP3主要是解码芯片问题,如果有低价的芯片,其实没有太多的问题. |
|
15楼#
发布于:2002-11-22 08:32
我不是用mass kit开始做的,我是用Evaluate Board基础上做的,mass 的东西是照着协议自己写的.
|
|
16楼#
发布于:2002-11-22 08:35
有关U盘出多个盘符的一点想法.
在MBR(Master Boot Record)中,第511和512字节为55 aa,由此倒着往前数65个字节为分区表,在分区表里,每16个字节决定一个分区的大小,看了Fat16的资料后得出这么一个结论,但没有自己试过,就是如果在此分区表中设置有关信息,是不是可以由系统自己识别出多个盘符来. |
|
17楼#
发布于:2002-11-22 08:35
有关U盘出多个盘符的一点想法.
在MBR(Master Boot Record)中,第511和512字节为55 aa,由此倒着往前数64个字节为分区表,在分区表里,每16个字节决定一个分区的大小,看了Fat16的资料后得出这么一个结论,但没有自己试过,就是如果在此分区表中设置有关信息,是不是可以由系统自己识别出多个盘符来. |
|
18楼#
发布于:2002-11-22 22:56
你为何要做多个盘符呢?如果只有一块FLASH是不需要做多个盘符的
按SSFDC的Specification一块FLASH上只能有一个分区,既 分区表里只有一个分区入口,这一点与标准FAT是不一样的 |
|