阅读:3870回复:42
将枚举进行到底―GET CONFIGURATION问题!
在大家的帮助下,我的枚举已经进行到了GET CONFIGURATION了,主机发送获得接口请求后,我返回了一个字节数据(值为1)
然后主机就又发送了一个00 09 00 00 00 00 00 00(设置配置)请求,是不是我发送的数据不对呢? |
|
沙发#
发布于:2003-03-21 21:14
jinghuiren老兄,我现在正在啃scsi命令,你对这方面熟悉吗! 支去书店找电子工业出版的有一本专讲 《IDE 与 SCSI总线》的。 决对好用。 |
|
板凳#
发布于:2003-03-21 10:22
不熟悉,严格的说是第一次听说,而且还不知道是什么东西,遗憾ing :(
|
|
地板#
发布于:2003-03-21 01:25
jinghuiren老兄,我现在正在啃scsi命令,你对这方面熟悉吗!
|
|
地下室#
发布于:2003-03-20 23:51
恭喜大伙都成功了。
我的可能要先放一下。 |
|
5楼#
发布于:2003-03-20 19:49
to renjinghui:为什么我得中断只是suspend和busreset呢?把这两个中断处理完了就没有中断再进来了阿?这是为什么呢?谢谢了
|
|
6楼#
发布于:2003-03-18 12:52
呵呵,多谢个位老兄的鼎立帮助!我的问题已经解决,原因是别人写的设备驱动出了问题,我用SOFTICE调了一下,发现ConfigDevice()里在搜索指定配置描述附中的接口描述符时出了错,用的函数太过古老了,找不着,所以就无法建立pipe list,因此主机只好再发命令把设备置于未配置状态(也就是00 09 00 00 00 00 00 00命令),改了之后就好了!
这是昨天完成的,可是前天晚上开了会,因为那时还没做完,所以被老板狠狠骂了一顿,我比窦娥都冤呀! 真的很感谢大家,多谢多谢了!!! :) |
|
7楼#
发布于:2003-03-14 20:52
我的已经通过了,现在正在识别SCSI的命令包了!
我建议你试试以下几个方法: 1、重装系统98、2000 2、肯定是你的get config的应答有问题! 3、set address时的设置有错,导致set config应答之后,收不到bulk only控制包 祝你好运!!! :D |
|
8楼#
发布于:2003-03-11 14:46
[quote]下面是最新收到的数据: 这个就是枚举没有成功了。 因为我碰到过这种现象, 当host得到不正确的响应或超时时,它可能会重新开始 GetDescriptor. [/quote] 这种说法不太准确,usb是有可能发几次GetDescriptor命令的 |
|
9楼#
发布于:2003-03-11 12:13
收到 set config 后有没有设置端点使能?
|
|
10楼#
发布于:2003-03-09 17:57
哎,我看短时间内是搞不定了,先结了贴再说吧. :(
|
|
11楼#
发布于:2003-03-09 13:16
我用的是 USB1.1
收到的请求有: 01、80 06 00 01 00 00 40 00 02、00 05 02 00 00 00 00 00 03、80 06 00 01 00 00 12 00 04、80 06 00 02 00 00 09 00 05、80 06 00 02 00 00 ff 00 06、80 06 00 03 00 00 ff 00 07、80 06 02 03 09 04 ff 00 之后就收不到 08 step 了。 但在前 07 step 中已经加载过 .INF 和 .SYS 了。 出现黄色叹号, 我的问题可能出在哪里。 是的回应数值不对还是驱动有问题? |
|
12楼#
发布于:2003-03-09 13:10
[quote]之前我已经收到了一个00 09 01 00 00 00 00 00了,我返回空的数据报表是配置完成后,主机发送了get configuration给我,我返回了当前配置值1后,主机就发给我00 09 00 00 00 00 00 00,所以很奇怪 置哪个标志位啊? [/quote] 我也觉得应该置那个标志位。 SETUP -> IN IN 为: NoDataControl |
|
13楼#
发布于:2003-03-09 13:02
下面是最新收到的数据: 这个就是枚举没有成功了。 因为我碰到过这种现象, 当host得到不正确的响应或超时时,它可能会重新开始 GetDescriptor. |
|
14楼#
发布于:2003-03-09 12:50
现在问题是:我在set config里面只设置了一个标志位,然后主机就发送get config命令,我收到后返回了当前的配置值1,然后主机就又发了个00 09 00 00 00 00 00 00给我,之后就什么也没有了,而设备管理器里面显示的设备上那个黄色的叹号还有,这是不是说明我后续枚举没有完成呢。 我也是出现了黄色的叹号, 我想很可能是没有成功, 因为我还没有收到 00 09 00 00 00 00 00 00 就出现黄色叹号了。 我只收到 80 06 ...... 和 00 05 ..... , 等收到 80 06 02 03 09 04 ff 00 的时候,MCU 就不动了。 |
|
15楼#
发布于:2003-03-07 18:34
我用的是3.3的,前不久有人传了一个我当下来的,你往前翻几页看看,还在呢.
那我按你说的再试试,我现在还有一点怀疑,是不是cpu太快也会对我的设备有影响,我用的是P4-2.4G的. |
|
16楼#
发布于:2003-03-07 14:23
cypress的设成FF我想是因为它用自己的驱动程序,而且FF的含义就是Vendor自定义类和子类。如果你想用缺省的W2K MassStorageClass驱动,不如就改成08 06 50或08 04 50算了。
还有你的BusHound版本多少的?我怎么抓不到买的2.0硬盘盒的数据信息? |
|
17楼#
发布于:2003-03-07 14:15
但是我看CYPRESS里面成功枚举的也没有呀,不过他们设的是FF,那我也改成FF试试。
|
|
18楼#
发布于:2003-03-07 14:08
我还是感觉你返回配置描述符表里的接口描述符有问题,你不告诉主机什么类,子类及协议,主机怎么继续给你发信息?当然它就会继续要配置和接口信息了。
|
|
19楼#
发布于:2003-03-07 10:27
下面是收到的全部数据:
15 CTL 80 06 00 01 - 00 00 12 00 GET DESCRIPTR 15 DI 12 01 02 00 - 00 00 00 40 - 47 05 49 1b - 00 00 00 00 .......@G.I... 00 01 .. 15 CTL 80 06 00 02 - 00 00 c8 00 GET DESCRIPTR 15 DI 09 02 20 00 - 01 01 01 80 - 32 09 04 00 - 00 02 00 00 .. .....2..... 00 00 07 05 - 81 02 00 02 - 00 07 05 02 - 02 00 02 00 ............. 15 CTL 00 09 01 00 - 00 00 00 00 SET CONFIG 15 CTL 80 08 00 00 - 00 00 01 00 GET CONFIG 15 USTS 04 00 00 c0 pid stalled 15 CTL 81 0a 00 00 - 00 00 01 00 GET INTERFACE 15 USTS 04 00 00 c0 pid stalled 15 CTL 00 09 00 00 - 00 00 00 00 SET CONFIG 难道是 GET CONFIG和 INTERFACE 有错吗,GET INTERFACE不是只需要返回一个0就可以了吗? |
|
上一页
下一页