当前位置: 首页 > news >正文

【QNX+Android虚拟化方案】137 - msm-5.4 Kernel U盘 插入中断、枚举、匹配完整流程详解

【QNX+Android虚拟化方案】137 - msm-5.4 Kernel U盘 插入中断、枚举、匹配完整流程详解

    • 1. HUB提交中断URB给HCD控制器,URB完成回调函数为 hub_irq()
    • 2. U盘插入后,触发运行 hub_irq() 中断回调函数
      • 2.1 高通 DWC3 Host HCD 初始化流程
      • 2.2 urb->complete(urb) 中断回调流程
      • 2.3 hub_irq() 将 hub->events 加入 hub_wq 工作队列
      • 2.4 hub_event() 处理端口事件
      • 2.5 hub_port_connect() 枚举识别 USB 设备, 依次初始化USB 外设为:ATTACHED -> POWERED -> 获取设备描述符 -> DEFAULT -> ADDRESS, 获取并解析 配置描述符、接口描述符、端点描述符
    • 3. U盘 USB Device 和 USB Driver 匹配 流程
      • 3.1 device_add(&udev->dev) 添加usb device 设备,触发 USB Device 和 usb_generic_driver通用驱动匹配,然后调用 generic_probe()开始下发配置
      • 3.2 generic_probe() 下发配置,配置为 USB_STATE_CONFIGURED 模式,触发USB 接口与接口驱动匹配
      • 3.3 device_add(&intf->dev) 接口驱动匹配流程,match匹配后,调用 storage_probe() 函数
      • 3.4 storage_probe() 接口驱动初始化


基于原生纯净代码,自学总结 纯技术分享,不会也不敢涉项目、不泄密、不传播代码文档!!!
本文禁止转载分享 !!!
汇总链接:《【QNX+Android虚拟化方案】00 - 系列文章链接汇总》
本文链接:《【QNX+Android虚拟化方案】137 - msm-5.4 Kernel U盘 插入中断、枚举、匹配完整流程详解》



最近看了比较多的 U盘 相关问题

本文,我们完整分析下 U盘 从插入 到识别的整个过程,了解这个过程,对分析 U盘不识的问题非常有好处。


1. HUB提交中断URB给HCD控制器,URB完成回调函数为 hub_irq()

HUB 初始化时,会调用 hub_configure()->usb_fill_int_urb()->hub_activate()->usb_s

http://www.dtcms.com/a/166943.html

相关文章:

  • 探秘数据结构:构建高效算法的灵魂密码
  • 【Android】四大组件之ContentProvider
  • POI从入门到上手(三)-轻松完成EasyExcel使用,完成Excel导入导出.
  • Node.js心得笔记
  • 数据库基本概念:数据库的定义、特点、分类、组成、作用
  • llamafactory-cli webui启动报错TypeError: argument of type ‘bool‘ is not iterable
  • Python10天冲刺-函数进行详细的性能分析
  • ES6-Set-Map对象小记
  • KDD 2025 | (8月轮)时间序列(Time Series)论文总结
  • PostgreSQL安装部署
  • 使用HunyuanVideo搭建文本生视频大模型
  • 【2025五一数学建模竞赛B题】 矿山数据处理问题|建模过程+完整代码论文全解全析
  • qemu(4) -- qemu-system-arm使用
  • 从股指到期指,哪些因素影响基差?
  • Selenium3自动化测试,Python3测试开发教程视频测试用例设计
  • 学习与规划的融合Dyna-Q:python从零实现
  • 【Github仓库】Learn-Vim随笔
  • Redis ⑧-RESP | 渐进式遍历 | 数据库管理
  • 机器人--主机--控制系统
  • YOLOv8模型训练过程
  • MCP:智能家居的“大脑”,如何引领未来居住革命
  • LangChain4j +DeepSeek大模型应用开发——7 项目实战 创建硅谷小鹿
  • Python Cookbook-6.14 实现状态设计模式
  • DeepSeek 赋能自然语言处理:从理论到实践的全方位解析
  • Qt指南针
  • 支持selenium的chrome driver更新到136.0.7103.49
  • 打包 Python 项目为 Windows 可执行文件:高效部署指南
  • 33、VS中提示“以下文件中的行尾不一致。是否将行尾标准化?“是什么意思?
  • 【C语言练习】014. 使用数组作为函数参数
  • Java关键字解析