阅读:1773回复:12
关于Get Descriptor
要求返回长度为0x100,但是所有的描述府加起来也就只有50啊,我是发50个字节过去,还是发256个字节过去呢?
|
|
最新喜欢:![]() |
沙发#
发布于:2004-05-25 11:12
具体的长度应该是看wLength,如果长度长与描述符的长度,接收完描述符后,可以不管!随便问一句,在DOS环境下,没有驱动的帮助,如何读取USB的设备描述符?
|
|
板凳#
发布于:2004-05-25 15:55
具体的长度应该是看wLength,如果长度长与描述符的长度,接收完描述符后,可以不管!随便问一句,在DOS环境下,没有驱动的帮助,如何读取USB的设备描述符? 那就需要自己做驱动了。而且要从最底层做起 |
|
地板#
发布于:2004-05-25 16:04
现在我的枚举情况:
1。收到8字节setup包,由于某个问题(暂时不清楚),数据包内容如下: buf[0] = 80 buf[1] = 6 buf[2] = 0 buf[3] = 1 buf[4] = 80 buf[5] = 6 buf[6] = 0 buf[7] = 1 但是在bushound上看不见。 这个数据应该是有问题的,正常情况应该是 buf[0] = 80 buf[1] = 6 buf[2] = 0 buf[3] = 1 buf[4] = 0 buf[5] = 0 buf[6] = 40 buf[7] = 0 这个问题先掠过。然后就是判断为device descriptor命令,首先值返回前8个字节,bushounds上可以看见DI 8 CTL 23 01 14 00 - 01 00 00 00 8 DI 12 01 00 01 - ff ff ff 08 然后就host reset了?这时候reset正常么? 主机是否收到这8个字节了那 |
|
地下室#
发布于:2004-05-25 16:17
8 CTL 23 01 14 00 - 01 00 00 00
不是get descriptor命令。 get descriptor命令为 CTL 80 06 00 01-00 00 12 00 GET DESCRIPTR (device descriptor) DI 12 01 10 01- 00 00 00 40-ab 05 30 00- 10 01 01 02 .... CTL 80 06 00 02-00 00 09 00 GET DESCRIPTR (config descriptor) DI (略) CTL 80 06 00 02-00 00 27 00 GET DESCRIPTR (config+interface+endpoint) [编辑 - 5/25/04 by hustdj] |
|
5楼#
发布于:2004-05-25 16:23
这个我知道,现在就是因为主机还没有得到device descriptor,所以不会出现下一层设备
|
|
6楼#
发布于:2004-05-25 16:33
你是做从设备吧。
我只有做主设备的经验,很抱歉,可能帮不了你了 |
|
7楼#
发布于:2004-05-25 16:54
非常感谢你。
|
|
8楼#
发布于:2004-05-25 17:17
TO楼猪 和 hustdj:我在开发时碰到了个问题,我不需要太多的USB操作,我只需要在DOS下读取USB的设备描述符,现在碰如下问题1:我按照规范中的GET_DESCRIPTOR的步骤[SYNC][PID][ADDR][ENDP][CRC][EP]来给USB进行操作,我想问的是我是否可以直接写到USB设备的I/O地址上(如0XD000H)?2:但把命令发送完了,我是否可以从I/O地址读取USB送过来的DESCRIPTOR? 这个问题困惑了很久,想请教2位!先谢了!!
|
|
9楼#
发布于:2004-05-25 19:45
这要根据你的硬件来决定,要看你给usb芯片配的数据地址和命令地址是怎样的
|
|
10楼#
发布于:2004-05-26 09:20
我用的主板是INTEL865芯片组,USB CONTROLLER 是 ALCOR公司的USB FLASH DISK CONTROLLER,用USB-ZIP启动后,程序里先读取USB的DESCRIPTOR。我可以控制主板上USB的CONFIG 寄存器和I/O寄存器,我是否可以通过主板上的USB I/O BASE ADDRESS 来对USB进行操作?另:在进行读写操作之前,为什么要先分配空间给FRAME LIST?
|
|
11楼#
发布于:2004-05-26 10:15
我用的主板是INTEL865芯片组,USB CONTROLLER 是 ALCOR公司的USB FLASH DISK CONTROLLER,用USB-ZIP启动后,程序里先读取USB的DESCRIPTOR。我可以控制主板上USB的CONFIG 寄存器和I/O寄存器,我是否可以通过主板上的USB I/O BASE ADDRESS 来对USB进行操作?另:在进行读写操作之前,为什么要先分配空间给FRAME LIST? 这涉及面太广了。好像很难的样子。 建议你编一个软件来监视CONFIG 寄存器和I/O寄存器中的值。然后对usb设备进行简易操作。有点像bushound软件那样。 这样把获得的数据进行一定的分析,看看有没有帮助 |
|
12楼#
发布于:2004-05-26 11:52
TO HUSTDJ: 不知兄台做过主设备还是从设备,如果是主设备的话,不知道兄台对FRAME LIST BUUFER的概念是否清楚,我对这个还不是很清楚,想请教兄台!
|
|