正如本小节中框图所示,USB Gadget 驱动,包括 USB 设备控制器(UDC) 驱动 和 Gadget 功能(function)驱动 两大部分。其中 USB 设备控制器(UDC) 驱动 负责 USB 设备控制器(UDC) 和 主机侧 USB 控制器(UHC) 之间的数据传输;而 Gadget 功能驱动(function) 负责实现功能协议(如 UDC 等)。USB 设备控制器(UDC) ...
编写gadget的关键是在于了解udc、gadget、composite三者之间的联系和架构层次,在实际应用中gadget是不需要我们去编写的,需要我们自己去编写的是composite层,以及地对udc层的修改,下面开始详细介绍着三者。 1、composite英文意思是复合的意思,估计是编写usb gadget层设备驱动都整合到一起,通过统一的函数usb_composite_register...
早期的USB只支持单一的gadget设备,使用场景较为简单,随后加入了composite framework,用来支持多个function的gadget设备,多个function的绑定在内核中完成,若需要修改,则需要修改内核,不灵活也不方便。Linux3.11版本引入了基于configfs的usb gadget configfs。usb gadget configfs重新实现了复合设备层,使用者可以在用户空间配置...
编写gadget的关键是在于了解udc、gadget、composite三者之间的联系和架构层次,在实际应用中gadget是不需要我们去编写的,需要我们自己去编写的是composite层,以及地对udc层的修改,下面开始详细介绍着三者。 1、composite英文意思是复合的意思,估计是编写usb gadget层设备驱动都整合到一起,通过统一的函数usb_composite_register...
echo0x0019>/sys/kernel/config/usb_gadget/g1/idProduct # 设备版本号 echo0x0200>/sys/kernel/config/usb_gadget/g1/bcdDevice #USB1.1:0x0110#USB2.0:0x0200,USB2.1:0x0210,USB2.5:0x0250#USB3.0:0x0300,USB3.1:0x0310,USB3.2:0x0320# echo0x0210>/sys/kernel/config/usb_gadget/g1/bcdUSB ...
本节只分析USB控制器作为Device时的驱动框架。 USB控制器作为Device时,驱动框架可分为5层。最上层的是Gadget Function驱动,代表了具体设备的驱动,如大容量存储设备驱动(U盘、移动硬盘等)、通讯类设备驱动(USB串口、USB虚拟网卡等)、UAC驱动(USB麦克风、USB声卡等USB音频类设备)。接下来是Gadget Funcation API层,该...
USB Gadget是分层的软件结构,本文分析的是2.6.32.2版本的Gadget软件结构,这个软件结构与以前版本的变化很大。USB Gadget软件结构总共分为三层: 一. UDC层 这一层是与硬件相关层。相关文件s3c2410_udc.c s3c2410_udc.h。s3c2410设备控制器作为一个linux设备在这一层是作为platform设备而注册到linux设备模型中的。相关数...
0307Linux USB从机驱动UDC与Gadget Function框架讲解设计是linux内核的第28集视频,该合集共计37集,视频收藏或关注UP主,及时了解更多相关视频内容。
Linux USBGadget广泛应用于各种嵌入式系统中,尤其是需要与PC或其他USB主机进行通信的情况。以下是Linux USB Gadget的一些主要应用领域: -嵌入式存储设备:通过将Linux设备配置为USB存储设备,可以方便地在Linux主机或其他系统中进行数据传输和存储。 -网络设备:可以将Linux设备配置为USB网络适配器,从而使其具备网络连接功能...
Linux-USB Gadget 驱动框架(以下简称 Gadget )实现了 USB 协议定义的设备端的软件功能。相对于 Linux USB 主机端( Host )驱动⽽⾔, Gadget 驱动出现较晚,它出现在 2.4.23 以后。Gadget 框架提出了⼀套标准 API, 在底层USB 设备控制器 (USB Device Controller, UDC) 驱动则实现这⼀套 API, 不同...