UG1085也提到,PS_MODE1/PS_MODE2也可以作为外部USB Phy的复位信号。 ? PG201也提到了外部USB Phy的复位信号的相关设置。 ? 2....Vivado工具 在Vivado里,可以指定外部USB Phy的复位信号的来源和极性。 ? 3. USB Phy的复位信号 USB Phy是否需要复位信号,由外部的Phy决定。...一般来说,单板复位后,建议把外部USB Phy复位一次,保证USB Phy处于干净的状态。...MPSoC既可以使用MIO管脚、也可以使用PS_MODE(BOOT_PIN)管脚来作为USB Phy的复位信号。 3.1. 使用MIO管脚作为USB Phy复位信号 MPSoC有两个USB控制器。...如果找到,会调用Linux的GPIO框架来复位外部USB Phy。 3.2.
USB设备进行访问。...五、端点与管道 1、管道的概念 管道是主机软件(数据缓存区),和USB设备各各端点之间的数据传输连接,他是两者之间通信流的抽象(实际上数据传输是USB总线接口完成)。...1)、“流”指不具有USB定义格式的数据流,流通道中的数据是流的形式,也就是该数据内容不具有USB要求的结构。...首先,主机向USB设备发出一个请求;接着,就是数据的传送;最后,是一个状态阶段(这部分即一次命令请求的过程)。...为了能够容纳请求/数据/状态的变化,消息通道要求数据有一个格式,此格式保证了命令能够被可靠地传送和确认。消息通道允许双方向的信息流。 六、端点的传输类型 一个具体的端点只能属于四个传输模式下中的一种。
Linux 内核源码:include\linux\usb.h Linux 内核源码:drivers\hid\usbhid\usbmouse.c 1....BUS/DEV/DRV 模型 "USB 接口"是逻辑上的 USB 设备,编写的 usb_driver 驱动程序,支持的是"USB 接口": USB 控制器或 Hub 识别出 USB 设备后,会创建、...注册 usb_device usb_device 被"drivers\usb\core\generic.c" 驱动认领后,会选择、设置某个配置 这个配置下面的接口,都会分配、设置、注册一个 usb_interface...左边的 usb_driver 和右边的 usb_interface 如果匹配,则调用 usb_driver.probe 2....接口函数 在 USB 设备驱动程序中,能使用的 USB 函数都在这个头文件里:include\linux\usb.h。
1.3 适用范围 表 1-1: 适用产品列表 内核版本 驱动文件 Linux-4.9 drivers/usb/* Linux-5.4 drivers/usb/* 2 模块介绍 2.1 模块功能介绍...USB 总线采用树形结构,在一条总线上只能有唯一的主机设备。Linux 内核从主机和设备两个角度观察 USB 总线结构。...图 2-11: linux-4.x usb gadget 配置选择 2.6.2 linux-4.x/linux-5.4 USB Gadget 配置流程 Linux-4.x/Linux-5.4 使用 configfs...卸载主机驱动 通过下述命令找到主机驱动节点及对应路径 find -name ehci_enable find -name ohci_enable 然后根据上述结果,按如下命令卸载主机驱动 (以 t5 平台为例...2.8.2.2 USB Host 眼图测试 获取ed_test的路径path find /sys/ -name ed_test 测试眼图命令 echo test_pack > path/ed_test
/usb.h> 4.2 USB设备注册框架示例 #include #include #include //定义...鼠标驱动(中断传输方式) 5.1 USB驱动注册框架代码 #include #include #include ...#include #include #include #include .../init.h> #include #include #include #include <linux/slab.h...\n"); printk("命令结构大小_drv:%lu\n",sizeof(struct DEV_CMD)); return 0; } //读写命令 static long usb_dev_unlocked_ioctl
通过扫描以下目录获取物理节点所有 USB 设备: /sys/bus/usb/devices/usb* /sys/bus/usb/devices/usb*/$busnum-* 从该文件系统收集某一个设备的主要信息如下..."level": 1, "manufacturer": "QEMU", "port": 0, "prodid": "0001", "product": "QEMU USB...: 产品 serial: USB 硬件设备序列号 ,例如 0000:00:01.2 定位方法# 定位某一个 USB 设备的方法有两种: busnum + devnum idVendor + idProduct...设备类bDeviceClass、bDeviceSubClass、bDeviceProtocol By USB 中文网 USB设备描述符中的idVendor、idProduct和bcdDevice By...USB 中文网 USB 硬件设备的序列号 By IBM 注:本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
[ 0.513302] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 [ 0.513303] usb usb1...Controller [ 0.513304] usb usb1: Manufacturer: Linux 3.10.0-327.el7.x86_64 xhci-hcd [ 0.513305...] usb usb1: SerialNumber: 0000:00:14.0 [ 0.518700] usb usb2: New USB device found, idVendor=1d6b,...0.518702] usb usb2: Product: xHCI Host Controller [ 0.518702] usb usb2: Manufacturer: Linux 3.10.0...] usb 1-4: New USB device found, idVendor=413c, idProduct=301a [ 1.040348] usb 1-4: New USB device
在上一章分析完USB总线驱动程序后, 接下来开始写一个USB驱动: 本节目的: 将USB鼠标的左键当作L按键,将USB鼠标的右键当作S按键,中键当作回车按键 参考/drivers/hid/usbhid/...释放input_device 3.5在出口函数中 1)通过usb_deregister ()函数注销usb_driver结构体 4.代码如下: #include #include... #include #include #include #include... static struct input_dev *myusb_mouse_dev; //input_dev static char *myusb_mouse_buf...5.3使用hexdump命令来调试 (hexdump命令调试代码详解地址:http://www.cnblogs.com/lifexy/p/7553550.html) ?
Linux3.11版本引入了基于configfs的usb gadget configfs。.../bcdDevice # USB 1.1: 0x0110 # USB 2.0: 0x0200, USB 2.1: 0x0210, USB 2.5: 0x0250 # USB 3.0: 0x0300...(gadget_strings, gadget_info); [include/linux/usb/gadget_configfs.h] #define USB_CONFIG_STRINGS_LANG(...3.2.1.创建配置 当在用户空间执行mkdir -m 0770 /sys/kernel/config/usb_gadget/g1/configs/c.1命令时,会调用到configfs的config_desc_make...其主要的工作内容如下: 分配端点的usb_request、分配缓冲区、设置usb_request的回调函数、复位所有端点,并将gadget的端点数量清零。
然后USB总线驱动程序都会给它分配一个地址(编号) PC机想访问USB总线上某个USB设备时,发出的命令都含有对应的地址(编号) USB是一种主从结构。...主机叫做Host,从机叫做Device,所有的USB传输,都是从USB主机这方发起;USB设备没有"主动"通知USB主机的能力。..., 比如:鼠标的数据是从鼠标传到PC机, 对应的端点称为"中断输入端点" 其中端点0是设备的默认控制端点, 既能输出也能输入,用于USB设备的识别过程 同样linux内核也自带了USB总线驱动程序,框架如下...其中usb_bus_type是一个全局变量, 它和我们之前学的platform平台总线相似,属于USB总线, 是Linux中bus的一种....USB_REQ_SET_ADDRESS表示命令码,既设置地址; udev->devnum表示要设置目标设备的设备号;允许等待传输完成的时间为5秒,因为USB_CTRL_SET_TIMEOUT定义为5000
为了消除这种可能性,机构会限制和监测访问互联网,同时禁用 USB 存储设备。 在本教程中,我们将讨论三种不同的方法来禁用 Linux 机器上的 USB 存储设备。...方法 2:删除 USB 驱动 这种方法要求我们将 USB 存储的驱动程序(usb_storage.ko)删掉或者移走,从而达到无法再访问 USB 存储设备的目的。...执行下面命令可以将驱动从它默认的位置移走: $ sudo mv /lib/modules/$(uname -r)/kernel/drivers/usb/storage/usb-storage.ko /home...usb-storage 保存文件并退出。...usb-storage 就在就会被系统阻止加载,但这种方法有一个很大的缺点,即任何特权用户都可以通过执行以下命令来加载 usb-storage 模块, $ sudo modprobe usb-storage
1 开发板基础硬件介绍 1.1 常用接口 板子上的各种接口功如下,本篇固件烧录,主要用的接口包括: CN6:供电接口 B2:复位按键 CN11:ST-LINK USB(用作串口查看信息) CN9:HDMI...两种,这里介绍在Ubuntu虚拟机的Linux系统中安装的操作步骤。...电脑的串口软件,用于查看信息 Type-C数据线是烧录线,连接Ubintu虚拟机,注意是DFU这一个,如下图 3.2 命令行烧录 进入到下载的固件目录,到达stm32mp1这一级 cd ~/myTest...如下可正常打印出来,即为正常: 然后使用如下命令进行烧录: STM32_Programmer_CLI -c port=usb1 -w flashlayout_st-image-weston/optee...),需要在虚拟器的USB设置处重新连接USB download这个,否则还是会报错。
控制器硬件,主要流程如下: (1)获取USB控制器IP的版本,便于后续进行不同的配置,USB控制器不同IP版本之间有差别,将Linux内核版本号写入USB控制器寄存器,以便发现某些版本下的bug (2)...dwc3_writel(dwc->regs, DWC3_GUID, LINUX_VERSION_CODE) dwc3_soft_reset // 软件复位USB控制器...// 只有USB控制器处于设备模式才会复位,处于主机模式或dr_mode为OTG模式 // 且寄存器被配置为主机模式时不复位,由后续的驱动复位 dwc3_readl...,命令执行的时候会使用 dwc3_writel(dwc->regs, DWC3_DGCMDPAR, param) // 写入命令...,DWC3_DGCMD_CMDACT:激活命令,设置后开始执行命令 // DWC3_DGCMD_SET_SCRATCHPAD_ADDR_LO:Set Scratchpad
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...// disable gadget function驱动,主机复位、主机重新配置gadget、断开连接时使用 void (*disable)(struct usb_function *);...Linux 3.11版本引入了USB Gadget Configfs。在用户层可以通过暴漏出来的API定义USB Gadget设备的任意功能和配置,极大的方便了USB复合设备的配置和使用。...*); // usb总线复位时调用,必须实现,在中断中调用 void (*reset)(struct usb_gadget *); struct device_driver driver;
在Linux上使用smartctl命令查看硬盘的SMART信息。
… linux常用命令–开发调试篇 前言 Linux常用命令中有一些命令可以在开发或调试过程中起到很好的帮助作用,有些可以帮助了解或优化我们的程序,有些可以帮我们定位疑难问题.本文将简单介绍一下这些命令...u012247418/article/details/80 … Linux 常用命令:开发调试篇 前言 Linux常用命令中有一些命令可以在开发或调试过程中起到很好的帮助作用,有些可以帮助了解或优化我们的程序...示例程序 我们用一个小程序,来 … linux grep命令 linux grep命令1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep...全称是Global Regular Expressio … Linux常用命令(一) Linux常用命令 1. pwd查看当前路径(Print Working Directory) [root@CentOS...;创建用户成功linux系统会自动创建一个和用户名相同的分组,并将该用户分到改组中 … Linux paste命令 Linux paste命令用于合并文件的列. paste指令会把每个文件以列对列的方式
理解 dd 命令 Explanation of the dd command for live USB creation 首先,你输入 dd。没错,这就是你要运行的程序的名称。...第 0 步: 下载所需的 ISO 镜像 不用说,你需要有一个 ISO 镜像文件才能将其刷写到 USB 上。 我将使用 Ubuntu 20.04 ISO(可在此处下载)来测试我之前介绍的 dd 命令。...此路径可能因你的系统而异,你可以使用 lsblk 命令确认 USB 磁盘的路径。只需从列表中查找一个看起来像你的 USB 磁盘大小的驱动器,就可以了。...第 2 步:将 ISO 文件写入 USB 磁盘 在下载 ISO 文件的目录打开一个终端,然后运行以下命令(如果 /dev/sdb 与你的存储设备名称不同,请记住将其替换): sudo dd if="....desktop-amd64.iso" of="/dev/sdb" status="progress" conv="fsync" 之后,让 dd 去做剩下的事情,它会在完成后打印一条完成消息: 就像这样,你已经在 Linux
usb协议是一个复杂的协议,目前涉及到的版本就有usb1.0, usb2.0, usb3.0。...那么,对于我们这些不是很了解usb的开发人员,如何了解usb的代码结构呢?...c,通过Makefile和Kconfig发现,s3c2410依赖于USB_OHCI_HCD_S3C2410 和 USB_OHCI_HCD,那USB_OHCI_HCD呢?...d,USB_OHCI_HCD只依赖于DMA和IOMEM。...但是,如果要深入了解usb host&device驱动,那么除了这些代码逻辑,那么还要熟读usb协议手册,更重要的学会用catc协议分析仪真正地去了解usb是如何发包和收包的。
Linux od 命令: 用于输出文件内容。 od指令会读取所给予的文件的内容,并将其内容以八进制字码呈现出来。...实例 创建 tmp 文件: $ echo abcdef g > tmp $ cat tmp abcdef g 使用 od 命令: $ od -b tmp 0000000 141 142 143 144
Linux pstree命令 Linux pstree命令将所有行程以树状图显示,树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root),如果有指定使用者 id,则树状图会只显示该使用者所拥有的行程
领取专属 10元无门槛券
手把手带您无忧上云