阅读:1446回复:1
ResetATA和GetMaxLUN和处理处
我用D12开发的MASS STORAGE,开发卡在了ResetATA和GetMaxLUN和处理处,希望那位兄弟指点:1。我觉得有问题的地方做了注释,望各位帮我看看。
2,我已经跟踪过,发现ResetATA和GetMaxLUN没执行啊,为什么?望那位兄弟指点 不好意思,没法编辑BOUNDHUB的数据啊: CTL 80 06 00 02 00 00 2e 00 GET DESCRIPTOR DI 09 02 2e 00 01 01 00 a0 //描述符集应该是正确的我已经检查过了 32 09 04 00 00 04 08 06 50 00 07 05 80 00 10 00 0a 07 05 00 00 10 00 0a ........ 07 05 81 03 10 00 0a 07 05 01 03 10 00 0a ...... URB 50 00 08 00 00 00 00 00 CONTROL TRANSFER c8 17 32 81 03 00 00 00 22.3.8 d4 17 32 81 03 2b 00 02 22.3.16 2e 00 00 00 48 1b 3b 81 22.3.24 c8 ba 2d 81 00 00 00 00 22.3.32 28 43 3b 81 e8 5a 2c 81 22.3.40 6c 43 3b 81 6c 43 3b 81 22.3.48 00 00 00 00 00 00 00 00 22.3.56 00 00 00 00 00 00 00 00 22.3.64 80 06 00 02 00 00 2e 00 22.3.72 16.0 CTL 00 09 01 00 00 00 00 00 SET CONFIG 23.1.0 16.0 URB 78 00 00 00 00 00 00 00 SELECT CONFIG 23.2.0 c8 17 32 81 00 00 00 00 23.2.8 48 1b 3b 81 c8 32 d5 e2 23.2.16 60 00 00 00 08 06 50 00 23.2.24 48 cd 31 81 04 00 00 00 23.2.32 10 00 80 0a 00 00 00 00 23.2.40 60 cd 31 81 00 10 00 00 23.2.48 00 00 00 00 10 00 00 0a 23.2.56 00 00 00 00 7c cd 31 81 23.2.64 00 10 00 00 00 00 00 00 23.2.72 10 00 81 0a 03 00 00 00 //DO 应该出现//右边的: 98 cd 31 81 00 10 00 00 // 55 53 42 43 28 b5 26 81 USBC(.&. 00 00 00 00 10 00 01 0a // 24 00 00 00 80 00 06 12 $....... 03 00 00 00 b4 cd 31 81 // 00 00 00 24 00 00 00 00 ...$.... 00 10 00 00 00 00 00 00 // 00 00 00 00 00 00 00 ....... // 可是却出现了左边的 12.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 24.1.0 12.0 DI 03 01 00 00 .... 24.2.0 12.0 URB 50 00 08 00 00 00 00 00 CONTROL TRANSFER 24.3.0 c8 67 67 81 03 00 00 00 24.3.8 d4 67 67 81 03 00 00 00 24.3.16 04 00 00 00 28 69 2c 81 24.3.24 c8 ba 2d 81 00 00 00 00 24.3.32 88 f4 67 81 e8 e2 7d 81 24.3.40 00 00 00 00 00 00 00 00 24.3.48 00 00 00 00 00 00 00 00 24.3.56 00 09 01 00 00 00 00 00 24.3.64 a3 00 00 00 01 00 04 00 24.3.72 12.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 25.1.0 12.0 DI 00 01 00 00 .... 25.2.0 12.0 URB 50 00 08 00 00 00 00 00 CONTROL TRANSFER 25.3.0 c8 67 67 81 03 00 00 00 25.3.8 d4 67 67 81 03 00 00 00 25.3.16 04 00 00 00 28 69 2c 81 25.3.24 c8 ba 2d 81 00 00 00 00 25.3.32 88 f4 67 81 e8 e2 7d 81 25.3.40 00 00 00 00 00 00 00 00 25.3.48 00 00 00 00 00 00 00 00 25.3.56 00 09 01 00 00 00 00 00 25.3.64 a3 00 00 00 02 00 04 00 25.3.72 12.0 URB 24 00 02 10 00 00 00 00 //为什么出现这么多URB 26.1.0 30 00 00 00 00 00 00 00 26.1.8 28 1f 3b 81 00 00 00 00 26.1.16 66 00 65 00 72 00 65 00 26.1.24 6e 00 63 00 26.1.32 12.0 URB 24 00 02 10 00 00 00 00 27.1.0 30 00 00 00 00 00 00 00 27.1.8 48 68 3f 81 00 00 00 00 27.1.16 66 00 65 00 72 00 65 00 27.1.24 6e 00 63 00 27.1.32 12.0 URB 24 00 02 10 00 00 00 00 28.1.0 30 00 00 00 00 00 00 00 28.1.8 08 c7 31 81 00 00 00 00 28.1.16 66 00 65 00 72 00 65 00 28.1.24 6e 00 63 00 28.1.32 12.0 URB 24 00 02 10 00 00 00 00 29.1.0 30 00 00 00 00 00 00 00 29.1.8 08 43 7e 81 00 00 00 00 29.1.16 66 00 65 00 72 00 65 00 29.1.24 6e 00 63 00 29.1.32 12.0 URB 14 00 01 10 00 00 00 00 30.1.0 e8 48 4e 81 00 00 00 00 30.1.8 28 1f 3b 81 30.1.16 12.0 URB 14 00 01 10 00 00 00 00 31.1.0 e8 48 4e 81 00 00 00 00 31.1.8 48 68 3f 81 31.1.16 12.0 URB 14 00 01 10 00 00 00 00 32.1.0 e8 48 4e 81 00 00 00 00 32.1.8 08 c7 31 81 32.1.16 12.0 URB 14 00 01 10 00 00 00 00 33.1.0 e8 48 4e 81 00 00 00 00 33.1.8 08 43 7e 81 33.1.16 12.0 URB 24 00 02 10 00 00 00 00 34.1.0 30 00 00 00 00 00 00 00 34.1.8 28 43 3b 81 00 00 00 00 34.1.16 66 00 65 00 72 00 65 00 34.1.24 6e 00 63 00 34.1.32 12.0 URB 14 00 01 10 00 00 00 00 35.1.0 e8 48 4e 81 00 00 00 00 35.1.8 28 43 3b 81 35.1.16 12.0 CTL 23 01 01 00 01 00 00 00 CLEAR FEATURE 36.1.0 //处理ResetATA和GetMaxLUN的函数 void TPBulk_ResetATA(void) { single_transmit(0,0); //在设备RESET之前,应返回NAK //stall_ep0(); //控制端点停止 } void TPBulk_GetMaxLUN(void) { single_transmit(0,1); //0-没有LUN,1-传输的数据长度 stall_ep0(); //控制端点停止 } //调用ResetATA和GetMaxLUN的代码 if (type == USB_STANDARD_REQUEST) //==0x00 (*StandardDeviceRequest[req])(); //已成功调用,并成功执行 else if(type == USB_CLASS_REQUEST) //==0x20 { req=0xFF-req; // (*ClassDeviceRequest[req])(); //调用ResetATA和GetMaxLUN的代码 } |
|
沙发#
发布于:2004-12-30 09:34
这个我已经解决了,是看错了。非常感谢一些大虾对我帮助和启发!!
|
|