记录相关数据结构之前,先上一张图,这样就基本一目了然了

USB XHCI HOST有三种RING

分别为COMMAND, EVENT 与TRANSFER

这里所说的是TRANSFER RING

一个RING可能由一个或者多个SEGMENT构成

每一个SEGMENT则有多个TRB构成

多个SEGMENT的链接是由LINK TRB来实现的,LINK就像一个单链表,最后一个LINK TRB指向第一个SEGMENT,由此,形成了一个环,RING

TRANSFER TRB有以下几种类型:

针对USB CONTROL TRANSFER的SETUP, DATA, STATUS TRBs

针对BULK, INTERRUPT, ISO TRANSFER的NORMAL TRB

针对ISO TRANSFER的ISOCH TRB (ISO TD由一个ISOCH TRB与0个或多个NORMAL TRB构成)

SW将需要硬件完成的USB传输,通过TRB的形式,将信息提交给硬件,放入RING当中,放入的位置为当前ENQUEUE PTR的位置,每放一个,ENQUEUE PTR向前跨一步,遇到LINK TRB,则跳转到LINK TRB指向的位置

而硬件则按DEQUEUE PTR指向的位置,取出TRB到CACHE当中,执行该TRB,同样,每执行一个,则ADVANCE 该 DEQUEUE PTR,遇LINK TRB,跳转。

TD表示一个USB TRANSFER(不同于USB TRANSACTION)

在TRB当中,有一个CH BIT,如果一处TD由多个TRB构成,则软件需要将除最后一个TRB的所有CH BIT置位。

linux xhci源码,第四十六篇:Linux中的USB XHCI HOST TRANSFER RING的相关数据结构 (1)相关推荐

  1. 【转】ABP源码分析四十六:ABP ZERO中的Ldap模块

    通过AD作为用户认证的数据源.整个管理用户认证逻辑就在LdapAuthenticationSource类中实现. LdapSettingProvider:定义LDAP的setting和提供Defaut ...

  2. skywalking源码分析第十六篇一agent端JVMService之度量上报

    文章目录 原理图 原理图一基于MXBean进行Metrics数据收集 源码分析一JVMService 总结 原理图 通过prepare构建Metrics存储缓冲队列 初始化grpc客户端 通过boot ...

  3. 【转】ABP源码分析二十六:核心框架中的一些其他功能

    本文是ABP核心项目源码分析的最后一篇,介绍一些前面遗漏的功能 AbpSession AbpSession: 目前这个和CLR的Session没有什么直接的联系.当然可以自定义的去实现IAbpSess ...

  4. Linux 驱动开发 四十六:Linux MISC驱动实验

    misc 的意思是混合.杂项的,因此MISC 驱动也叫做杂项驱动,也就是当我们板子上的某些外设无法进行分类的时候就可以使用 MISC 驱动. MISC 驱动其实就是最简单的字符设备驱动,通常嵌套在 p ...

  5. php网页游戏学习之xnova(ogame)源码解读,PHP网页游戏学习之Xnova(ogame)源码解读(十六)...

    PHP网页游戏学习之Xnova(ogame)源码解读(十六) 作者:bea 十九.攻击任务(MissionCaseAttack.php) 按照舰队任务的编号,排在第一个的就是攻击任务.这个代码很长,看 ...

  6. 【转】ABP源码分析三十六:ABP.Web.Api

    这里的内容和ABP 动态webapi没有关系.除了动态webapi,ABP必然是支持使用传统的webApi.ABP.Web.Api模块中实现了一些同意的基础功能,以方便我们创建和使用asp.net w ...

  7. ABP源码分析三十六:ABP.Web.Api

    这里的内容和ABP 动态webapi没有关系.除了动态webapi,ABP必然是支持使用传统的webApi.ABP.Web.Api模块中实现了一些同意的基础功能,以方便我们创建和使用asp.net w ...

  8. 第二人生的源码分析(二十六)底层网络协议

    为了理解第二人生的客户端与服务器的沟通,那么下面就来分析一下第二人生采用的网络协议.在目前的网络里,主要有两个协议:TCP和UDP,而第二人生里是采用UDP协议.TCP协议与UDP协议的主要区别,就是 ...

  9. 嵌入式linux系统蜂鸣器实验,「正点原子Linux连载」第四十六章Linux蜂鸣器实验

    1)实验平台:正点原子Linux开发板 2)摘自<正点原子I.MX6U嵌入式Linux驱动开发指南> 关注官方微信号公众号,获取更多资料:正点原子 大家将imx35_gpio_hwdata ...

最新文章

  1. java 重启系统_java 程序,实现重启功能。求大神帮忙,急
  2. 查看centos系统配置详细信息
  3. Java基础实战Bank项目01-04
  4. html5 页面加载缓慢,html5体验优化页面加载的14条建议
  5. 帮MM修电脑的三个步骤-此文绝对实用
  6. 利用遗传算法演化一个棋类游戏的人工智能
  7. Ubuntu20.04更换阿里源教程
  8. Javacv 音视频小工具 - 下载抖音视频
  9. 【Unity】出现NullReferenceException:Object reference not set to an instance of an object.的原因总结
  10. 时光不负,对我来说不寻常的一年 | 2021 年终总结
  11. jemter ramp-up
  12. 透明与不透明物体共存
  13. Apache Flink_JZZ166_MBY
  14. remap中的xmap,ymap详解
  15. TensorRt推理部署优化方案及流程概述
  16. javascript中reduce的用法
  17. C++ 纯 OpenCV 实现扑克牌实时识别
  18. 利用套打和分栏巧妙来做商品价签
  19. 爬取小说——爬取书的地址
  20. Java的基础语法(8)-- API常见的类的介绍匿名对象

热门文章

  1. 粒子群算法(PSO)——Java实现PSO算法(详细注释) 优化算法
  2. 字符串匹配算法研究(一)
  3. 数据库课程设计——1、登陆界面
  4. HEVC 编解码详解
  5. uni app 开发微信小程序及上线体验
  6. 中顶体育场馆管理系统
  7. 云计算介绍PPT2011-03版
  8. 查看数据库(表)的大小(Mysql和Oracle)
  9. 前端demo逻辑系列之炫酷字体
  10. 【观察】用友“SaaS+PaaS+生态”再提速,以“平台”模式赋能成长型企业