frank_wang
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2005-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2025回复:18

用D12做U盘时好奇怪的问题

楼主#
更多 发布于:2002-11-20 23:05
我用D12做U盘,已经到了UFI协议的INQURY、Read Capacity、Read等过程,然后出现了U盘。

但是奇怪的是,当我将做好的板子移动我的机器上的另一个口时,就找不到了,甚至连枚举好象都过不了,还向我要驱动程序(Mass Storage可以不要驱动吧),换到别的机器上也是如此。

于是,我把前几天的固件重新放进去,就是前几天已经可以识别出是Mass Storage设备的那个版本的程序,这样可以枚举到发现是Mass Storage设置,然后再重新将最新版的固件放进去,于是又可以找到,出现盘符,在别的机器上重复,也是如此。

甚感困惑,望指点!

最新喜欢:

mapoflmapofl
iamchine
驱动小牛
驱动小牛
  • 注册日期2002-11-18
  • 最后登录2005-11-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-11-21 10:15
我请教你几个问题:
请问在51的固件中需要做逻辑块到物理块的转换表吗?那关于FAT等管理需要做吗?还是主机操作系统完成?如果主机完成,那它的格式岂不多是FAT32?可我看SamsungFlash资料里提到FAT12和FAT16。还是固件只需解析BulkOnly+UFI(SCSI-2)的协议就可以了?谢谢!
还有你用的Flash是哪类的?是NAND Flash吗?


 
frank_wang
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2005-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-11-21 12:26
需要自己做Fat16,
iamchine
驱动小牛
驱动小牛
  • 注册日期2002-11-18
  • 最后登录2005-11-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-11-21 13:48
你是用ARM7做FAT16?
frank_wang
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2005-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-11-21 14:47
我做的这个东西
frank_wang
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2005-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
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.
frank_wang
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2005-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-11-21 15:37
TO iamchine:

上午针对你的问题写了许多,但网络出问题了没发过去,丢了.所以得写.

不敢讲请教,一起学习研究吧!
1.的确,我用的也是NAND Flash,三星的F2808,16M,
请问在51的固件中需要做逻辑块到物理块的转换表吗?那关于FAT等管理需要做吗?
以上两个东西都要自己做,我还没有做,正在做.

Jkw_Dev
驱动中牛
驱动中牛
  • 注册日期2002-11-03
  • 最后登录2014-11-28
  • 粉丝0
  • 关注0
  • 积分82分
  • 威望28点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-11-21 15:47
各位老大,我也想做个U盘玩玩,可不可以给些资料,让小弟也入门一下, Jack_mail@163.com
frank_wang
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2005-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-11-21 16:27
我现在还在做,还没有做完呢,所以手里头也还没有成型的资料,等做完了如果有时间整理,到时候再来这里共享吧.
linguohui
驱动牛犊
驱动牛犊
  • 注册日期2002-05-17
  • 最后登录2012-09-19
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望8点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-11-21 17:21
Hi, frank_wang
我现在也在做D12+Flash,目前进度和你一样,也有同样的问题,希望我们能共同进步
frank_wang
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2005-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-11-21 17:25
好呀,互相鼓励,常来这里交流进度吧。 ;)
iamchine
驱动小牛
驱动小牛
  • 注册日期2002-11-18
  • 最后登录2005-11-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
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播放器?:)
linguohui
驱动牛犊
驱动牛犊
  • 注册日期2002-05-17
  • 最后登录2012-09-19
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望8点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-11-21 22:17
你是不是在用philips\'s mass storage kit作蓝本?
linguohui
驱动牛犊
驱动牛犊
  • 注册日期2002-05-17
  • 最后登录2012-09-19
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望8点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-11-21 22:26
用mass storage时FAT文件系统是不需要做的,除非你自己需要读或写flash上的文件
frank_wang
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2005-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-11-22 08:29
对不起,前面有个问题没弄太清,如果单纯只做U盘,只不需要管理Fat的,只需要在BPB里面将Fat有关的信息给全,操作系统会自已去管理操作系统,如果要刷新FAT,主机也会给出相应的请求,底下要做的只是响应这些请求面已.

   但是我因为要从底下读写Flash,所以得做FAT16

我的这个ARM是个通用控制器,做USB功能是方便与PC机的文件交换,到是想下一步做个带USB的Mp3.

但MP3主要是解码芯片问题,如果有低价的芯片,其实没有太多的问题.
frank_wang
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2005-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-11-22 08:32
我不是用mass kit开始做的,我是用Evaluate Board基础上做的,mass 的东西是照着协议自己写的.
frank_wang
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2005-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2002-11-22 08:35
有关U盘出多个盘符的一点想法.

在MBR(Master Boot Record)中,第511和512字节为55 aa,由此倒着往前数65个字节为分区表,在分区表里,每16个字节决定一个分区的大小,看了Fat16的资料后得出这么一个结论,但没有自己试过,就是如果在此分区表中设置有关信息,是不是可以由系统自己识别出多个盘符来.
frank_wang
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2005-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2002-11-22 08:35
有关U盘出多个盘符的一点想法.

在MBR(Master Boot Record)中,第511和512字节为55 aa,由此倒着往前数64个字节为分区表,在分区表里,每16个字节决定一个分区的大小,看了Fat16的资料后得出这么一个结论,但没有自己试过,就是如果在此分区表中设置有关信息,是不是可以由系统自己识别出多个盘符来.
linguohui
驱动牛犊
驱动牛犊
  • 注册日期2002-05-17
  • 最后登录2012-09-19
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望8点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2002-11-22 22:56
你为何要做多个盘符呢?如果只有一块FLASH是不需要做多个盘符的

按SSFDC的Specification一块FLASH上只能有一个分区,既
分区表里只有一个分区入口,这一点与标准FAT是不一样的


游客

返回顶部