我尝试把在PXA255下把wince4.2下的USB 驱动移植到6.0下.主控制器 Cypress 的c7y67300.在usbmsc.c里的SetUsbInterface函数里,我打印出来的接口信息如下:
USB_INTERFACE_DESCRIPTOR[0]:
-------------------------
bLength: 0x9
bDescriptorType: 0x4
bInterfaceNumber: 0x0
bAlternateSetting: 0x0
bNumEndpoints: 0x2
bInterfaceClass: 0x8
bInterfaceSubClass: 0x6
bInterfaceProtocol: 0x50
iInterface: 0x0
这里bNumEndpoints: 0x2说明这个接口有两个端口(不包括端口0).接着我打印出两个端口信息:
USB_ENDPOINT_DESCRIPTOR:
-----------------------------
bLength: 0x7
bDescriptorType: 0x5
bEndpointAddress: 0x81
bmAttributes: 0x2
wMaxPacketSize: 0x40
bInterval: 0x0
USB_ENDPOINT_DESCRIPTOR:
-----------------------------
bLength: 0x40
bDescriptorType: 0x0
bEndpointAddress: 0x0
bmAttributes: 0x0
wMaxPacketSize: 0x0
bInterval: 0x0
明显第二个端口有问题(不符合USB规范).于是我的USB SetUsbInterface没有能设置 Bulk OUT.失败返回了.
请问这是什么原因引起的.任何回答不甚感谢!!!
啊,怎么会这样,描述符一般都在一起的,是不是哪里扩展过?EP2的 Length似乎是前面一个ep的尾巴,是不是buf没对?
能连PC Bushound上看么?
楼主有Cypress的源码么?