第三十二篇:Windbg中USB2.0调试环境的搭建

2023-05-16

2011年的时候,为了开发USB Mass storage -- UASP (USB attached SCSI Protocol)的设备驱动程序,从米国买了两个USB2.0的调试小设备(如下图,每个似乎80美刀,贼贵的东西)。

主要是用来替代串口115200波特率的响应速度慢,以便解决调试效率的问题。


当时,根据WINDBG的HELP文档,而且也GOOGLE了一些网上的相关参考内容,硬是没有把USB2.0的调试环境搭建起来。

后来有一段时间,朋友要开发驱动程序,他原来一直用一台配有PCI转1394卡来调试,但现在要用笔记本,却又不带1394接口,所以,问我借了这个USB2.0调试设备一用,但这个驱动高手,搞了半天,也硬是没把USB2.0调试环境搭建起来。


于是,这个小玩意儿,就一直躺在实验室的角落里,我还是照旧,在Win7上用串口调试,在Win8上用NET调试。


最近在开发显示相关的DLL时,也一直在Win8/8.1/10系统上用NET调试。

为了将Win7的调试环境搭起来,加上这个平台没有串口,所以,又想到了这个USB2.0调试设备。


根据WDK8.1 Windbg的帮助文档,先在第一类平台上试着搭建。

但是没有成功,原因很简单,该USB2.0调试设备只能直连HOST与TARGET上的EHCI HOST。

而第一类平台的调调试机,任何一个EHCI HOST的PORT1, 都嵌入了一个GENERIC USB HUB。

既然这个ROOT HUB下面的PORT1被占用了,不符合环境搭建的要求,那自然连接不起来了。

USB debugging does not work over a hub or docking station. (from help documents)



PCI to USB host controller        


<span style="white-space:pre">	</span>Root Hub              


<span style="white-space:pre">		</span>Port1: Generic usb hub                       


<span style="white-space:pre">			</span>Port 1 --plug physical port of the debug cable                       


<span style="white-space:pre">			</span>Port 2              


<span style="white-space:pre">		</span>Port2  

之后,就换了一台被测试机,根据帮助文档,前后花了不到十分钟,就把调试环境搭建成功了。


下面,就是几个主要步骤:

在被调试机上:

1. bcdedit /debug off

2. 重启

3. 通过USBView找到ROOT HUB PORT1

4. 找到后, 通过Device Manager记录这个EHCI HOST的PCI bus, device, and function numbers

5. 

  1. Windows 7系统上设置
  1. bcdedit /debug on bcdedit /dbgsettings usb targetname: someName bcdedit /set "{dbgsettings}" busparams x.y.z

    where x, y, and z are the bus, device, and function numbers for the host controller. The bus, device, and function numbers must be in decimal format (for example, busparams 0.29.7).

6. 重启


在调试主机上:

只要将该设备接到EHCI HOST下,同时安装驱动就可以了。


建立调试会话:

File-->Kernel Debug-->usb2.0 tab-->enter the target name-->ok

或者是在COMMAND PROMPT WINDOWS中:

windbg /k usb2:targetname=TargName



事实上,并不是每一台PC都能作为USB2.0的调试方式的调试机的:

  • The target computer must have a USB 2.0 controller that is compatible with the EHCI specification and that supports kernel debugging. Not all EHCI-compatible controllers have this support. 


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第三十二篇:Windbg中USB2.0调试环境的搭建 的相关文章

随机推荐

  • 无人机开发-介绍MAVLink代码的大概结构

    可以看到 xff0c 里面有多个文件夹和几个头文件 pixhawk xff0c ardupilotmega xff08 apm xff09 xff0c matrixpilot这类的文件夹里都是各个飞控自己定义的mavlink消息类型 xff
  • 无人机开发-图传技术浅析

    2016年 xff0c 是中国无人机市场的元年 xff0c 无人机能够一跃进入大众视野 xff0c 并迅速在大众市场火热发展 xff0c 是很多人始料未及的 从刚开始的空中摄录 xff0c 到后来的实时摄录 xff0c 方便的无人机图传功能
  • Ubuntu18.04安装ROS+gazebo9+PIX4仿真

    本文仅作安装过程记录之用 1 安装ros Ubuntu18 04选择ROS Melodic 教程网址 xff1a http wiki ros org cn melodic Installation Ubuntu 1 1配置 Ubuntu 软
  • PX4+gazebo仿真给无人机添加摄像头

    1 启动仿真 xff1a cd到Firmware文件夹 xff0c 执行以下代码 roslaunch px4 mavros posix sitl launch 如果启动过程卡住或者很慢 xff0c 下载该链接的压缩包https bitbuc
  • 最全Pycharm教程(10)——Pycharm调试器总篇

    如果觉得这篇文章对您有所启发 xff0c 欢迎关注我的公众号 xff0c 我会尽可能积极和大家交流 xff0c 谢谢 最全Pycharm教程 xff08 1 xff09 定制外观 最全Pycharm教程 xff08 2 xff09 代码风格
  • 关于嵌入式

    学习方向 首先要学习下基础课程单片机 xff0c 汇编和C语言等等 xff0c 然后再学习嵌入式 xff0c 如果说你要想水平高的话 xff0c 最好学习下操作系统 xff0c 数据结构 xff0c 算法及一些硬件方面的知识等等 看你是想在
  • make_unique的使用

    关于make unique的构造及使用例程 xff0c MSDN的讲解非常详细 xff08 https msdn microsoft com zh cn library dn439780 aspx xff09 使用过程中 xff0c 我的理
  • C#学习记录——C#编写串口程序

    因为电气自动化专业出差太多 xff0c 考虑学点其他的看能不能实现转行 xff0c 也没太清晰的路线 xff0c 看网上好多推荐电气自动化转C 上位机开发的 xff0c 也抽时间学习了解下C xff0c 因为非软件专业 xff0c 对计算机
  • the working directory ‘XXX’ does not exist

    积累点滴 今天在idea上重新建了一个项目 xff0c 结果一运行就报了 the working directory XXX does not exist 的错误 明明上一个项目都运行好好的 xff0c 怎么新建一个就出问题了呢 xff1f
  • Git 子模块(Submodule)

    提示 xff1a Git 子模块 Submodule 操作 文章目录 一 Git 子模块 Submodule 是什么 xff1f 二 使用步骤1 创建子仓库2 clone 带有子仓库的git项目 三 子仓库代码的修改和更新 一 Git 子模
  • Java Web项目开发项目经验总结

    一 学会如何读一个JavaWeb项目源代码 步骤 xff1a 表结构 gt web xml gt mvc gt db gt spring ioc gt log gt 代码 1 先了解项目数据库的表结构 xff0c 这个方面是最容易忘记的 x
  • React + TS + Mobx 示例

    一 创建项目 方式一 xff1a create react app todo React ts demo scripts version 61 react scripts ts cd todo React ts demo npm start
  • AMD IOMMU与Linux (2) -- IVRS及AMD IOMMU硬件初始化

    介绍AMD IOMMU driver基于IVRS的硬件初始化情况 1 I O Virtualization ACPI table 2 drivers iommu amd init c 1 I O Virtualization ACPI ta
  • AMD IOMMU与Linux (3) -- DMA

    Linux中DMA会使用硬件IOMMU如AMD IOMMU INTEL VT D xff0c 也会使用软件的SWIOTLB 这篇梳理一下LINUX内核在有AMD IOMMU的情况下 xff0c 是如何做DMA的 xff0c 内容包括如下 1
  • AMD IOMMU与Linux (4) -- Domain, Group, Device

    1 domain的本质是一个页表 xff0c 1对1的关系 2 IOMMU DOMAIN UNMANAGED vs IOMMU DOMAIN DMA a IOMMU DOMAIN UNMANAGED DMA mappings managed
  • 第三篇:知其然,知其所以然-USB音频设备的开发过程

    最近 xff0c 有朋友正好在开发一个USB音频设备 xff0c 所以询问我一些USB音频设备开发方面的技术细节问题 xff1b 也和音响发烧友聊到USB音频设备的实现方式与其优缺点 xff1b 后来 xff0c 也和人谈到实现一个USB音
  • 第七篇:风起于青萍之末-电源管理请求案例分析(下)

    第五篇 风起于青萍之末 电源管理请求案例分析 上 http blog csdn net u013140088 article details 18180249 第六篇 风起于青萍之末 电源管理请求案例分析 中 http blog csdn
  • 第十九篇:USB Audio/Video Class设备协议

    转发请注明出处 随着项目的不断进行 我想在网上查找了一下USB Audio Video的最新资料 看看有没有业内人士的更新 由于我们的项目一直在技术的最前延 而且这个USB IF官方发布的协议 也非常非常新 结果找了半天 都是我这篇文章的转
  • 《网络架构系列2-Http详解》

    不诗意的女程序媛不是好厨师 转载请注明出处 xff0c From李诗雨 https blog csdn net cjm2484836553 article details 104136511 网络架构系列2 Http详解 1 Http的协议
  • 第三十二篇:Windbg中USB2.0调试环境的搭建

    2011年的时候 xff0c 为了开发USB Mass storage UASP USB attached SCSI Protocol 的设备驱动程序 xff0c 从米国买了两个USB2 0的调试小设备 xff08 如下图 xff0c 每个