boris-cao
驱动牛犊
驱动牛犊
  • 注册日期2008-04-28
  • 最后登录2008-04-29
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1237回复:2

求助??U盘开发问题!!

楼主#
更多 发布于:2008-04-28 11:08
各位大侠们,我在使用U盘开发时,通过一个朋友的同事弄了个源代码!但有几个问题想不通,想请教下!!(备注:使用三星的K9F5608作为存储设备)
(1)命令的返回信息!
a、25H
code unsigned char B_Read_Capacity[] = {0x00, 0x00, 0xfe, 0xa0,                0x00, 0x00, 0x02, 0x00       //block length in bytes                                };
这个可以理解,K9F5608共2048个BLOCK,即2047但保留了10个作为缓冲,所以为2037*32
b、但23H的返回就有点疑问
code unsigned char B_Read_Format_capacities[] = {0x00, 0x00, 0x00, 0x10, //capacity list header
    0x00, 0x00, 0x07, 0xf5,    0x01, 0x00, 0x02, 0x00,    //capacity descriptor
    //Number of Blocks =2037,unformatted media,blocklength = 512Bytes
    0x00, 0x00, 0x07, 0xfd,    0x00, 0x00, 0x02, 0x00  //Formattable Capacity Descriptors
    };
为何这里又用了K9F5608的BLOCK了?2037为何没象25H一样乘以个32了,不矛盾吗??
且下面为何又以2045呢??
c、1AH的返回
code unsigned char B_Mode_Sense_ALL[] = {0x0b, 0x00,       //Mode Data Length
0x00, 0x08, 0x00, 0x00,
0x7d, 0, 0, 0, 0x02, 0x00
              };    
code unsigned char B_Mode_Sense_TPP[] = {0xf0, 0x00,       //Mode Data Length
05, 00, 00, 00, 00, 0x0b, 00, 00, 00, 00, 0x24, 00, 00, 00, 00, 00
            };        
code unsigned char B_Mode_Sense_ZERO[] = {0x00, 0x06,      //Mode Data Length
0x00,                           //Medium Type Code
0,                             //write enabled
0, 0, 0, 0                     //reserved    
                            };
B_Mode_Sense_ZERO这个可以理解,但上面两个就无法理解了,就连前两个字节不是长度吗?都不对呀??
d、关于FAT的一个问题,就是如果我的文件放在U盘的下一级文件夹中,他的目录的地址(起始簇号)应该在哪里查找呢?

谢谢!!!期待大侠们的帮助!
boris-cao
驱动牛犊
驱动牛犊
  • 注册日期2008-04-28
  • 最后登录2008-04-29
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-04-29 11:12
怎么没高手来光顾下呀。。
shigui_2002
驱动牛犊
驱动牛犊
  • 注册日期2008-08-13
  • 最后登录2008-09-18
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-09-18 20:19
呵呵,顶一下
游客

返回顶部