导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→提供了海量存储器描述符为什么仍然要求驱动呢?[freasy]

 *第18795篇: 提供了海量存储器描述符为什么仍然要求驱动呢?

  
楼 主:freasy 2004年1月24日17:57
 提供了海量存储器描述符为什么仍然要求驱动呢?
我的USB开发板想做成一个U盘,我按照mass storage的bulk_only协议和ufi协议提供给主机描述符,为什么系统仍然要求提供驱动程序呢?
我的描述符是这样的
const char device_descriptor[] =
{
 0x12,   // 描述表大小 (18 bytes)
 0x01,   // 设备描述表类型
 0x00, 0x01, // 兼容设备版本号(BCD码)
 0x00,   // class code (each interface specifies class information) */
 0x00,   // device sub-class (must be set to 0 because class code is 0) 
 0x00,   // device protocol (no class specific protocol) */
 0x10,   // 端点0最大包大小(8,16,32,64)
 0x00, 0x04, // 厂商ID
 0x00, 0x01, // 产品ID
 0x00, 0x01, // 设备发行号(BCD码)
 0x00,   // 厂商信息字符串索引
 0x00,   // 产品信息字符串索引
 0x00,   // 设备序列号字符串索引(不支持设为0)
 0x01   // 可能配置数
};

const char Configuration_Descriptor[] =
{
0x09,    // 配置描述表长度
0x02,    // 配置描述表类型
0x20,0x00,  // 配置描述表及附带表长度
0x01,    // 接口配置数
0x01,    // 配置描述表标识
0x00,    // 配置描述表字符串描述表索引
0x20,    // 配置属性
0x64     // 总线供电最大值(*2mA)
};

const char Interface_Descriptor[] =
{
0x09, // 接口描述表长度(9)
0x04, // 接口描述表类型
0x00, // 接口号(0)
0x00, // 轮寻设置(0 号端点)
0x02, // 端点数 (4)
0x08, // 接口类属
0x04, // 子类码
0x50, // 协议码
0x00  // 接口字符串描述表索引(不支持)
};

const char Endpoint1_out_Descriptor[] =
{
0x07, // 端点描述表长度(7)
0x05, // 端点描述表类型
0x01, // OUT 端点(1)
0x02, // 传输模式(0 控制、1 同步、2 批、3 中断传输)
0x10, 0x00, // 最大包大小(16)
0x00   
};

const char Endpoint1_in_Descriptor[] =
{
0x07, // 端点描述表长度(7)
0x05, // 端点描述表类型
0x81, // IN 端点(1)
0x02, // 传输模式(0 控制、1 同步、2 批、3 中断传输)
0x10, 0x00, // 最大包大小(16)
0x00  // 轮寻时间 (1ms)
};


  
2楼:freasy 2004年1月24日20:02
 我跟踪程序发现主机只读了设备描述符
我在读取描述符的地方做了手脚,如果读取,就会让某个led灯亮
结果发现只有代表设备描述符的灯亮了~
  
3楼:freasy 2004年1月26日14:11
 确实读取了其它描述符,可是系统为什么不识别为mass storage 呢?
我在usb的接收中断里面添加跟踪的代码(其实就是在里面让灯亮),最后发现,除了0端点接收到了数据外,其它端点都没有数据了~~。我用的是bulk_only协议,1端点应该过来ufi的数据啊~

>>>>>>对该主题发表你的看法

本主题贴数3,分页: [第1页]


[上一篇主题]:买了一本《eCos》书,编译通过了!

[下一篇主题]:请问“上拉电阻”的概念如何理解??