xHCI USB host controller & Debug Capability & Windows debug module

本文探讨了Windows 8/8.1/10系统下使用xHCI USB host controller进行USB3.0/3.1设备调试的问题。重点介绍了调试过程中涉及的Debug Capability功能及其实现方式,并指出微软提供的USB调试模块存在的潜在问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大部分市面上的xHCI USB host controller都必须支持Debug Capability. (也有部分不支持的,不知道,他们有没有取得USB-IF的CERTIFICATION)

Win8/8.1/10支持USB3.0/3.1的双机调试,运用的就是xHCI USB host controller的这个Debug Capability.


调试的时候,一边是USB3.0/3.1的调试机,另一边则USB3.0/3.1的被调试机,被调试机的USB3.0/3.1 host 运行在USB Debug Device模式下。


调试机这边,有一个USB DEBUG DEVICE DRIVER

被调试机这边,需要将WINDOWS的内核调试模块打开


微软的各类USB驱动都非常ROBUST,例如O/UHCI/EHCI/XHCI, HUB 2.0, HUB 3.0, MASS STORAGE, VIDEO, AUDIO, PRINTER, USB HID, 等。

但这个USB的内核调试模块,总感觉不是特别对劲。


大家可以做这样一个实验,

1. 硬件上找一块带有XHCI USB DEBUG CAPABILITY的XHCI HOST

将它插到主机上,一般是PCIE X 2


2.软件上,

在内核调试模块没有打开前,在DEVICE MANAGER中,将这个XHCI HOST, DISABLE

将系统的内核调试模块打开,并设置为USB, 以及对应的BUS.DEVICE.FUNCTION

重启

回到DEVICE MANAGER, 发现这个XHCI HOST是处于DISABLED状态的

ENABLE该XHCI HOST, 你会发现,系统像死机一样,STUCK几秒钟


3.问题在哪?

问题在于,这个USB内核调试模块,不停地CHECK USB DEBUG CAPABILITY的两个寄存器(DBC PORTSC与DBC CTRL)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值