怎样理解Gadget框架

usb 协议是主从结构:
左边主机,右边从机;usb 有主机控制器 uhc 和从机控制器 udc,主机侧有 usb device driver,从机侧有 usb
function driver。
意思是说,一个开发板,可以当 usb 主机,接鼠标、键盘等从机;一个开发板也可以当 u 盘,接入 pc
电脑,此时开发板是从机。因此,我们要掌握两套驱动框架。这是 linux 下 usb 相对于 i2c、spi 复杂的地方,i2c 等根本不会考虑主控 soc
作为从机的情况,但 usb 需要考虑。
本文主要针对主控 soc 作为 usb 从机的情况,linux 为其提供了 gadget 框架。
编写 usb 设备驱动程序时,主要是:
读取设备的各类描述符,比如 endpoint 描述符,得到端点号
使用底层 usb host controller 驱动程序提供的 api 函数,从 endpoint 上读写数据
基于 gadget 驱动框架模拟一个 usb 设备时,endpoint 的数据传输能力是底层的 usb device controller
驱动提供的,我们要做的就是:
提供各类设备描述符
使用底层 usb device controller 驱动程序提供的 api 函数,从 endpoint 得到数据、反馈数据
gadget 的含义是“小器件”,在 linux 的 usb 系统中,它表示“usb device”。gadget 驱动程序,就是用来模拟 usb
device。对于真实的 usb device,它有两大要素:
怎么表示自己?
每个 usb device 都有 1 个设备描述符
都 1 个或多个配置描述符
每个配置描述符里面有 1个 或多个接口描述符
每个接口描述符里面有 0 个多个端点描述符
怎么进行数据传输?
通过端点进行传输
有端点的操作函数
在学习过程中,记住这几个要点非常有帮助:
各类描述符的构造
usb host 获得 gadget 各类描述符的过程
数据传输的流程

【新专利介绍】便于安装球阀的超声波水表
运动控制术语
恒温恒湿箱(普及型)的产品特点是怎样的
新款iPhone SE2将搭载A13处理器,明年总销量将达3000万台
JL-33 手持式气象站功能特点介绍
怎样理解Gadget框架
芯启源智能网卡技术全球领先,致力于成为行业领军企业
什么是眼图?
服务器有望带动PCB景气度回暖
体感试衣镜是一种什么体验,让试装过程变得简单又有趣
jvm内存模型和内存结构
进一步做好套餐设置规范,运营商需要更用心
字节跳动成立抖音集团 或在港上市
星星科技拟1.5亿元参设产业投资基金 主投汽车电子相关产业
传统汽车企业已醒悟,互联网造车企业面临威胁
惠普推出43.4英寸超大带鱼屏S430c,将在11月4日上市
1151二线制变送器校验调整和安装经验
GFDD760-90干式变压器冷却风机的工作原理说明
何谓保护接零?有什么优点?保护接零与保护接地区别
联想ZUK Z2拆机全解 内部做工到底如何