U盘枚举失败-该设备无法启动(GET_MAX_LUN请求)
2021-08-20
1465
1
群里有人用STM32搞了一个U盘,但是U盘在插入电脑后在设备管理器是枚举失败。
我让他看一下设备状态:
又是熟悉的错误码10,表示设备启动失败。
设备的启动失败,一般在设备获取描述符获取之后,初始会失败,我之前在弄USB虚拟鼠标的时候也遇到此类情况。不过由于这个设备是U盘,本人还没有研究USB存储协议,只能从USB的角度来分析此问题。
我首先让他用BUSHOUND抓包:
可以看到:
- 有个xact error
- GET_MAX_LUN返回stall pid的USTS c0000004错误
这里我将它的请求与特定类相对应:
可以看到:
- 0xa1 : 发向接口的请求
- 0xfe:GET_MAX_LUN请求
- wValue:0000
- wIndex:0x0001
- wLength:0x0001数据长度为1字节
这里我们再看它的代码:
明显看到index的值不正确,应该导致控制请求失败。
后面让他再试试:
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936