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

Linux驱动开发: USB驱动开发

8 MaxPower 1 mA 在此配置的总线电源耗费量。以 2mA 为一个单位。...四、 linux内核下USB相关的API函数与数据结构 前面介绍了USB相关一些基础概念与重要的数据结构,接下来就分析在linux内核中如何编写一个USB 驱动程序,编写与一个USB设备驱动程序的方法和其他总线驱动方式类似...urb(USB Request Block)Linux内核中USB驱动实现上的一个数据结构,用于组织每一次的USB设备驱动的数据传输请求。...鼠标驱动(中断传输方式) 5.1 USB驱动注册框架代码 #include #include #include ...#include /* 本程序为USB鼠标驱动程序,要安装本驱动,需要先将内核自带的USB驱动程序卸载掉 */ //定义USB的IDTAB 24ae:2002 static

69.3K20

Linux 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 设备驱动程序中,能使用的 USB 函数都在这个头文件里:include\linux\usb.h。...:这是一个同步函数,它会等待 URB 结束 usb_unlink_urb:这是一个异步函数,它不会等待 URB 结束,USB 控制器驱动会调用它的回调函数 void usb_kill_urb(struct

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

19.Linux-USB总线驱动分析

, 比如:鼠标的数据是从鼠标传到PC机, 对应的端点称为"中断输入端点" 其中端点0是设备的默认控制端点, 既能输出也能输入,用于USB设备的识别过程 同样linux内核也自带了USB总线驱动程序,框架如下...其中usb_bus_type是一个全局变量, 它和我们之前学的platform平台总线相似,属于USB总线, 是Linux中bus的一种....,存在/sys/bus .match = usb_device_match,       //匹配函数,匹配成功就会调用usb_driver驱动的probe函数成员 .uevent...,表示设备描述块下有最多不能超过8个配置描述块 */ /*ncfg表示 设备描述块 有多少个配置描述块 */ if (ncfg > USB_MAXCONFIG) { dev_warn...设备时,系统就会获取USB设备的设备、配置、接口、端点的数据,并创建新设备,所以我们的驱动就需要写id_table来匹配该USB设备 USB总线驱动程序大概流程就此结束,未完待续——分析完后下节开始写USB

8.5K91

Linux驱动开发: 编写USB接口光谱仪驱动

/download.csdn.net/download/xiaolong1126626497/19036980 二、功能介绍 使用的光谱仪设备是USB接口的,厂家只提供了windows驱动和配套软件...,不支持Linux使用,也没有完善的资料,现在设备想在Linux系统使用,要支持PClinux和嵌入式Linux设备,只能自己重新开发一个驱动再编写一个配套的上位机(上位机是采用QT写的)。...所有就在windows系统使用USB抓包软件,分析光谱仪设备与windows软件间的通信数据包,对比命令手册,得到完整的通讯流程,然后再对比编写了一个Linux系统驱动。.../download.htm USBTrace 官网下载地址:http://www.sysnucleus.com/usbtrace_download.html 如果是Linux想使用USB抓包可以用..." #define IOCTL_CMD_RW 0x39654127 //读写命令 #endif 3.2 驱动.c #include #include <linux/module.h

3.6K10

详解linux usb host驱动编写入门

大家如果打开kernel usb host目录,就会发现下面包含了ohci,uhci,ehci,xhci,whci等多种形式的控制器驱动。...1、代码分布 drivers/usb目录下面,host目录包括了host驱动代码,core目录包含了主要的api接口代码,而其他目录则主要是device驱动代码。...) += ohci-s3c2410.o b,再查看一Kconfig, config USB_OHCI_HCD_S3C2410 tristate "OHCI support for Samsung...每个host driver其实就是注册了一,告知了mem地址在哪。下面这段代码就是ohci-s3c2410.c中probe函数的代码。...但是,如果要深入了解usb host&device驱动,那么除了这些代码逻辑,那么还要熟读usb协议手册,更重要的学会用catc协议分析仪真正地去了解usb是如何发包和收包的。

5.8K75

21.Linux-写USB键盘驱动(详解)

本节目的:     根据上节写的USB鼠标驱动,来依葫芦画瓢写出键盘驱动 1.首先我们通过上节的代码中修改,来打印下键盘驱动的数据到底是怎样的 先来回忆,我们之前写的鼠标驱动的id_table是这样:...所以我们要修改id_table,使这个驱动为键盘的驱动,如下图所示: ? 然后修改中断函数,通过printk()打印数据: 我们先按按键A为例,打印出0x04,如下图: ?...3.接下来再来仔细分析内核自带的USB键盘驱动usbkbd.c里的中断函数: 代码如下: static void usb_kbd_irq(struct urb *urb) { struct.../kernel.h> #include #include #include #include <linux/...(full HID) support     //hid:人机交互的USB驱动,比如鼠标,键盘等 然后make uImage 编译内核 将新的键盘驱动模块放入nfs文件系统目录中 5.2然后烧写内核,

7.2K92

制作 Kali 可启动 USB 驱动器 (Linux)

制作 Kali 可启动 USB 驱动器 (Linux) 我们最喜欢的方式,也是最快的方法,启动和运行 Kali Linux 是从 USB 驱动器“实时”运行它。...驱动器上 它具有潜在的持久性——通过一些额外的努力,您可以将 Kali Linux “实时” USB 驱动配置为具有持久性存储,因此您收集的数据将在重新启动后保存 为此,我们首先需要创建一个可引导的...如果您在 Linux 运行,则可以使用dd预先安装的命令或使用Etcher。 USB 拇指驱动器,4GB 或更大。(具有直接 SD 卡插槽的系统可以使用类似容量的 SD 卡。步骤相同。)...在 Linux (DD) 上创建可引导 Kali USB 驱动器 在 Linux 环境中创建可引导的 Kali Linux USB 驱动器很容易。...在没有将 USB 驱动器插入端口的情况sudo fdisk -l,在终端窗口的命令提示符执行命令(如果您不使用 fdisk 的提升权限,您将不会得到任何输出)。

14510

usb转rs485 linux驱动下载,USB转RS485串口驱动「建议收藏」

USB转RS485串口驱动是一款非常专业的USB转RS485驱动安装程序。...这款软件适合WIN7/WIN XP/LINUX等系统,能够帮助用户一键解决USB无法转换成RS485的问题,需要的小伙伴可下载体验。 【安装方法】 1、在安装前可以先看看使用说明再安装。...将USB转换线插入电脑的USB接口中,系统会提示检测到新设备并出现新硬件添加向导,选择从列表或指定的位置安装,手动安装,找到刚刚驱动的解压目录,让WINDOWS自动搜索更新驱动就OK了。...根据硬件添加向导一步步的引导安装驱动 【支持系统】 Windows 8.1 Windows 8.1 x64 Windows 8 Windows 8 x64 Windows Server2012 Windows...Vista x64 Windows Server 2003 Windows Server 2003 x64 Windows XP Windows XP x64 Windows ME Windows 98 Linux

8.7K40

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

Composite层是一个可选的中间层,可通过一种配置或多种配置高效的支持多种功能的设备,简化了USB复合设备驱动的开发。...2.Gadget Function驱动 Linux内核的USB Gadget Function驱动都在drivers/usb/gadget/function/目录下,有通讯设备类(Communication...alloc_func创建usb_function并初始化,重点是设置里面的回调函数,通常情况,不直接使用usb_function数据结构,而是嵌入到驱动的数据结构中使用。...; // usb_add_function函数添加的配置 // 驱动的bind回调函数,分配驱动所需的资源,如配置、端点、I/O缓冲区等 int (*bind)(struct usb_configuration...Linux 3.11版本引入了USB Gadget Configfs。在用户层可以通过暴漏出来的API定义USB Gadget设备的任意功能和配置,极大的方便了USB复合设备的配置和使用。

9.4K20

sdio 驱动_usb接口安装驱动失败

在SDIO的1BIT模式DAT0用来传输数据,DAT1用作中断线。在SDIO的4BIT模式DAT0-DAT3用来传输数据,其中DAT1复用作中断线 2....硬件接口 2.1 SDIO 总线 SDIO总线 和 USB总线 类似,SDIO也有两端,其中一端是HOST端,另一端是device端。...Linux SDIO WIFI驱动 SDIO 接口的 wifi,首先,它是一个 sdio 卡 设备,然后具备了 wifi 的功能,所以 SDIO 接口的 WiFi 驱动就是在 wifi 驱动外面套上了一个...SDIO 驱动 的外壳 SDIO驱动代码目录:drivers/mmc 下有 mmc卡、sd卡、sdio 卡驱动 驱动分层:主机驱动层(实现SDIO驱动) => 核心层(向上向下接供接口) => 设备驱动层...根据 接口类型 usb、sdio、pcie 选择不同的操作 ———————dhd_bus_register // 注册成功就调用 dhd_sdio.dhdsdio_probe ————————bcmsdh_register

4.1K50

Linux驱动开发: LinuxRTC实时时钟驱动

Linux内核版本: 3.5 1.1 LinuxRTC时间的读写分析 1.1.1 系统时间与RTC实时时钟时间 Linux系统包含两个时间:系统时间和RTC时间。...1.1.2 Linux内核RTC实时时钟配置查看与选择: 进入到内核根目录下,输入: make menuconfig 进入到内核配置菜单: 根据选项进入到RTC实时驱动菜单: Device Drivers...3个信息(红色选中的配置选项): 1..../include/linux/rtc.h 定义了与RTC有关的数据结构 Linux内核源码自带的RTC驱动代码存放位置: \linux-3.5\drivers\rtc\目录下全是RTC驱动示例代码..../123.sh 记录了9288+1 的读入 记录了9288+1 的写出 4755752字节(4.8 MB)已复制,33.2798 秒,143 kB/秒 默认没有RTC驱动的情况,获取系统时间是从1970

38.1K10

嵌入式Linux移植USB网卡驱动「建议收藏」

TL-WN725N 2.0 驱动版本:8188eu_USB_Linux 因为我们是要移植到ARM开发板上,所以首先我们需要更改驱动的Makefile; CONFIG_PLATFORM_I386_PC...= /usr/src/linux-3.0.8 endif 其中KVER是你开发板的linux版本,一般情况跟我们电脑环境的Linux版本是不一样的,那么此时我们就需要把开发板上的内核在电脑上编译一(...zhaokeke@ubuntu:~/8188eu_USB_linux/driver/rtl8188eu$ make zhaokeke@ubuntu:~/8188eu_USB_linux/driver/...modules.order Kconfig_rtl8188e_usb_linux autoconf_rtl8189e_sdio_linux.h os_dep Kconfig_rtl8189e_sdio_linux...,此时我们需要配置网卡; 首先我们需要绑定IP地址: [root@FriendlyARM net]# ifconfig wlan0 192.168.1.22 为能够是 usb wifi 能够正常访问网络

6.9K30

USB总线-Linux内核USB3.0设备控制器之UDC驱动分析(六)

USB Function驱动通过调用这些接口匹配及访问USB设备控制器,而底层USB控制器驱动要实现这些接口定义的功能。下面分析一主要的UDC驱动接口调用流程。 2....前者通过UDC设备的名称匹配,通常是configfs配置USB Function驱动使用,后者直接匹配udc_list链表中的第一个UDC驱动,通常是legacy类型的USB Function驱动使用...使能端点0的步骤如下: 向控制器发送开始新配置命令DWC3_DEPCMD_DEPSTARTCFG(初始化的时候需要发送此命令),所有端点设置端点传输资源配置命令DWC3_DEPCMD_SETTRANSFRESOURCE...下面是参数寄存器USB3_DEPnCMDPAR0、USB3_DEPnCMDPAR1、USB3_DEPnCMDPAR2的具体意义。 USB3_DEPnCMDPAR0 位域 说明 31:30 配置行为。...0-初始化端点状态,用于第一次配置端点1-恢复端点状态,用于休眠唤醒后恢复端点状态,需要恢复的状态保存到DEPCMDPAR2寄存器中2-修改端点状态,用于修改已经配置好的端点配置,例如修改DEPEVTEN

8.5K20

linux usb端点

USB设备进行访问。...虽然有16个端点,但通常我们只用到3个,如下: 1)、EP0:做传输配置和控制信息; 2)、EP1:做数据输入IN_EP; 3)、EP2:做数据输出OUT_EP。...注意:除了端点0,其余的端点在设备配置之前不能与主机通信,只有向主机报告这些端点的特性并被确认后才能被激活。 三、端点的特性 一个端点的特性决定了它与客户软件进行传送的类型。...六、端点的传输类型 一个具体的端点只能属于四个传输模式中的一种。数据传输类型分为四种分别是:控制传输、批量传输、同步传输和中断传输。...一般情况,通常把工作在什么模式的端点就叫什么端点,例如:控制端点、批量端点、同步端点和中断端点。

9.8K30
领券