阅读:1236回复:2
求助??U盘开发问题!!
各位大侠们,我在使用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盘的下一级文件夹中,他的目录的地址(起始簇号)应该在哪里查找呢? 谢谢!!!期待大侠们的帮助! |
|
沙发#
发布于:2008-04-29 11:12
怎么没高手来光顾下呀。。
|
|
板凳#
发布于:2008-09-18 20:19
呵呵,顶一下
|
|