首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

USB 协议核心概念与实践

下面以 Linux 内核的实现为例来简要介绍各个描述符,主要参考头文件 include/uapi/linux/usb/ch9.h。...// 设备类型 __u8 bDeviceSubClass; // 设备子类型 __u8 bDeviceProtocol; // 设备协议 __u8 bMaxPacketSize0; // ep0...端点描述 端点描述符用来描述除了零端点(ep0)之外的其他端点,零端点总是被假定为控制端点,并且在开始请求任意描述符之前就已经被配置好了。...主要用于实现前面提到的 USB 功能,包括处理 setup packet (ep0)、返回各类描述符、处理各类修改配置情况、处理各类 USB 事件以及 IN/OUT 的传输等等。...关于 Linux USB 子系统的详细设计结构,可以参考源码中的文档: Linux USB API,以及其他一些资料,如下所示: https://bootlin.com/doc/legacy/linux-usb

1.6K51
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    USB总线-Linux内核USB3.0设备控制器驱动框架分析(四)

    2.Gadget Function驱动 Linux内核的USB Gadget Function驱动都在drivers/usb/gadget/function/目录下,有通讯设备类(Communication...[include/linux/usb/composite.h] struct usb_function_driver { const char *name; struct module...Linux 3.11版本引入了USB Gadget Configfs。在用户层可以通过暴漏出来的API定义USB Gadget设备的任意功能和配置,极大的方便了USB复合设备的配置和使用。...ep0表示端点0,驱动注册时会提前分配好,用于响应控制请求。除端点0外,USB设备驱动还会使用其他的端点,这些端点数据结构挂到ep_list链表中。speed表示USB设备控制器当前的速度。...udc; // 指向usb_udc // usb设备控制器硬件操作函数,不涉及io操作 const struct usb_gadget_ops *ops; struct usb_ep *ep0

    10.1K20

    Linux - Linux内存管理

    为了解决内存紧缺的问题,Linux引入了虚拟内存的概念。为了解决快速存取,引入了缓存机制、交换机制等。...要深入了解Linux内存运行机制,需要知道下面提到的几个方面。 首先,Linux系统会不时地进行页面交换操作,以保持尽可能多的空闲物理内存。...其次,Linux进行页面交换是有条件的,不是所有页面在不用时都交换到虚拟内存中,Linux内核根据“最近最经常使用”算法,仅仅将一些不经常使用的页面文件交换到虚拟内存中。...Linux虽然可以在一段时间内自行恢复,但是恢复后的系统已经基本不可用了。...Linux下可以使用文件系统中的一个常规文件或者一个独立分区作为交换空间。同时Linux允许使用多个交换分区或者交换文件。

    52.4K41

    Linux】--- Linux权限概念

    shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。...2.3 Linux中的用户 Linux下有两种用户:超级管理员(root)、普通用户。 超级管理员(root):可以再linux系统下做任何事情,不受权限约束 普通用户:在linux下做有限的事情。...Linux具有组的概念,主要是在多人协作的时候,更好的进行权限管理!...而在Linux中不通过后缀区分文件类型!但并不是说Linux不用后缀。 那通过什么区分呢?即ls -l第一个属性列。 Linux文件类型: -:普通文件。...很简单一个道理,Linux系统不以文件后缀作为区分文件类型的依据,但并不代表gcc不需要,Linux系统 != gcc。

    11611

    LinuxLinux基本指令(3)

    .tar.gz   的缩写 例:tar  czf xx.tgz  tar  tzf  xx.tgz tar  xzf  xx.tgz 若是想要解压到指定路径 ,可以使用选项 :-C  路径  Linux...七.bc  指令 这个指令很简单,可以认为是Linux上的计算器。 ...八.uname –r指令 语法:uname [选项] 功能: uname用来获取电脑和操作系统的相关信息; 补充说明:     uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息...「Tab」「ctrl+c」「ctrl+d」「ctrl+r」热键 「Tab」:具有指令补齐的作用 这个要连续按两下,担忧的版本的Linux并不支持; 「ctrl+c」:终止当前的程序 这个热键其实很好用...遇到什么情况时,直接无脑 「ctrl+c」就可以退出; 「ctrl+d」:当我们用 su 指令切到另一个用户时,可以「ctrl+d」退回到原来的用户 例: 「ctrl+r」:搜索历史指令,Linux

    14111
    领券