BUSHOUND抓包stall pid的USTS c0000004错误
2021-08-31
4592
112
对USB设备进行数据分析,使用最多的也就是BUSHOUND了,不过经常遇到一个问题就是 USTS c0000004 stall pid 错误。
USTS c0000004 stall pid
在本站中搜索一下,发现本人因为对USB知识的无知而迷惑过。
不信你可点击查看:http://www.usbzh.com/s.php?q=C0000004
Device Phase Data Description Cmd.Phase.Ofs(rep)
------ ----- ------------------------------------------------------------------
20.0 CTL 21 0a 00 00 00 00 00 00 SET IDLE 7.1.0
20.0 USTS c0000004 stall pid 7.2.0
13.0 CTL a1 86 00 0b 00 01 01 00 CLASS
13.0 USTS c0000004 stall pid
13.0 CTL a1 86 00 0c 00 01 01 00 CLASS
13.0 USTS c0000004 stall pid
13.0 CTL a1 86 00 0d 00 01 01 00 CLASS
13.0 USTS c0000004 stall pid
13.0 CTL a1 86 00 0e 00 01 01 00 CLASS
13.0 USTS c0000004 stall pid
13.0 CTL 21 0a 00 00 00 00 00 00 SET IDLE
13.0 USTS c0000004 stall pid
CTL 21 0a 00 00 00 00 00 00 SET_IDLE
USTS C0000004 stall pid
别人在调试U盘GET_MAX_LUN时遇到过:
关于stall pid的USTS c0000004错误的解释
关于c0000004错误,这个值到底是什么意思,这是USB状态信息USTS,详见http://www.usbzh.com/article/detail-645.html
另一个就是PID错误了,关于PID,这是USB中的概念,表示包ID错误,即PID=PACKAGE IDENTIY
- USB 数据流(令牌、数据、握手) http://www.usbzh.com/article/detail-73.html
但是,明显肯定这里的旨示也是有错误的
经过本人多年的来调试经验,返回stall pid的USTS c0000004错误表示控制请求未经过正确的处理,这里示正确处理的原因可能有:
- 控制请求的一些字段设置错误。如本来是发给接口ID=0的,却发向接口ID=1,即本身的USB请求参数错误
- 固件接收到控制请求,但不处理,导致PC变为stall状态。
U盘枚举失败-该设备无法启动(GET_MAX_LUN请求) http://www.usbzh.com/article/detail-536.html
总之,出现上面的错误,需要查的是:
- 配置描述符中相关的字段是否正确。因为主机会解析该描述符中一些描述符使用这些描述符来进行二次控制请求。
- 检查固件中是否有对应的数据处理。
关于控制请求可以参见:
- USB标准请求:http://www.usbzh.com/article/detail-417.html
- UVC特定类请求:http://www.usbzh.com/article/detail-29.html
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936