usb driver编写 (转)】的更多相关文章

在开头补上LDD3的一句话:如果 USB 驱动没有和另一种处理用户和设备交互的子系统(例如 input, tty, video, 等待)关联, 驱动可使用 USB 主编号为了使用传统的和用户空间之间的字符驱动接口. 为此, USB 驱动必须在探测函数中调用 usb_register_dev 函数, 当它想注册一个设备到 USB 核心. 确认设备和驱动处于正确的状态, 来处理一个想在调用这个函数时尽快存取这个设备的用户.   转载于此:http://www.redflag-linux.com/pr…
Writing a Simple USB Driver   From Issue #120April 2004 Apr 01, 2004  By Greg Kroah-Hartman  in Software Give your Linux box a multicolored light you can see from across the room, and learn how to write a simple driver for the next piece of hardware…
小米2S不显示CD驱动器(H),便携设备,MTP,驱动USB Driver,MI2感叹号的解决方法 by:授客 QQ:1033553122 用户环境 操作系统:Win7 手机设备:小米2S   问题描述 糊里糊涂的出问题了.打开[计算机],看不到图示的便携设备MI 2,也看不到CD驱动器(I:) XIAOMI 右键[计算机]-[管理]-[设备管理器],看到类似如下图的场景,看到USB Device,MI 2等驱动都显示黄色小感叹号 注意:我忘记截图了,下图来自网络. 查看Android Phon…
The environment settings are as follows: 1. ubuntu 14.04 , linux kernel: linux-lts-xenial-4.4.0 2. module :  Quectel EC20-CE-TE-A 在linux中增加usb驱动的时候,需要修改linux代码,但是ubuntu的源码是不完全的,所以需要去官网下载源码,修改完了之后编译成模块的形式,更新. 下载源码命令如下: sudo apt-get source linux-image-…
Delphi有时候无法连接调试一些手机,解决方案: 1.安装Google USB Driver 2.通过设备管理器查看手机或平板USB的VID,PID 3.修改你的电脑上的android_winusb.inf,将第2步找到的VID,PID加到inf中. 例如: ;Samsung Galaxy S3 %SingleAdbInterface% = USB_Install, USB\VID_04E8&PID_6860 %CompositeAdbInterface% = USB_Install, USB…
CVE-2016-2502-drivers/usb/gadget/f_serial.c in the Qualcomm USB driver in Android.Buffer Overflow Vulnerability reported by #plzdonthackme, Soctt. struct ioctl_smd_write_arg_type { char *buf; unsigned int size; }; #define GSERIAL_BUF_LEN 256 char smd…
目的 完成一个CDC + MSC的复合USB设备 可以方便在CDC,MSC,复合设备三者间切换 可移植性强 预备知识 cube中USB只有两个入口. main函数中的MX_USB_DEVICE_Init函数. /* init function */ void MX_USB_DEVICE_Init(void) { /* Init Device Library,Add Supported Class and Start the library*/ USBD_Init(&hUsbDeviceFS, &a…
ISO image to a DVD or burn the IMG file to a USB drive For a bare-metal installation ipmitool, HP iLO, or Dell iDRAC 刻录iso文件到DVD  方法 Use any standard software to burn the ISO to a writable DVD. Some popular options: Linux -- Brasero and Xfburn are co…
http://www.george-smart.co.uk/wiki/Xilinx_JTAG_Linux…
在设备管理器里找到便携设备:APPLE IPHONE 更新驱动 自定义更新:在设备管理器里找到便携设备:APPLE IPHONE 更新驱动 自定义更新:C:\Program Files\Common Files\Apple\Mobile Device Support\Drivers\ OK,解决.…
1.驱动编写分析 (1)usb总线驱动程序在我们接入USB设备的时候会帮我们构造一个新的usb_device.注册到总线里面来.左边这一块已经帮我们做好了,我们要做的是右边这一块.我们要构造一个usb_driver结构体,然后注册进去.usb_driver结构体里面的id_table表示能够支持哪一些设备,里面的probe函数表示能够支持接入设备时会被调用. (2)目的 USB鼠标用作键盘.左键按下时相当于字母L,右键按下时相当于字母S,鼠标中间的滑轮相当于回车. (3)输入子系统 在probe…
1.ARM-Linux下USB驱动程序开发1.1.1.linux下USB配置:*********(MassStorage:存储设备)************************************ -> Device Drivers -> SCSI device support(通用设备) -> SCSI disk support (磁盘支持) -> SCSI device support(设备支持) -> Device Drivers -> USB suppo…
usb驱动分为通过usbfs操作设备的用户空间驱动,内核空间的内核驱动.两者不能同时进行,否则容易引发对共享资源访问的问题,死锁!使用了内核驱动,就不能在usbfs里驱动该设备. 下面转载的一篇分析usb-skeleton.c文章. 初次接触与OS相关的设备驱动编写,感觉还挺有意思的,为了不至于忘掉看过的东西,笔记跟总结当然不可缺,更何况我决定为嵌入式卖命了.好,言归正传,我说一说这段时间的收获,跟大家分享一下Linux的驱动开发.但这次只先针对Linux的USB子系统作分析,因为周五研讨老板催…
3:USBD驱动详解 这一部分将要描述USBD(USB Host Driver)的典型应用.例如初始化,client注册,动态连接注册,设备配置,数据传输,同时还探讨了USBD内部设计的关键特性.这部分是VxWorks下USB驱动的核心. 1 初始化USBD:分为两步 (1)必须至少调用一次函数usbdInitialize().在一个给定的系统中,usbdlnifialize()初始化内部USBD数据结构,并依次调用其它USB驱动栈模块的入口.usbdinitialize()可以在启动时调用一次…
                          USB概述 <USB简介> a:背景 USB是Universal Serial Bus的缩写,是一种全新的,双向同步传输的,支持热插拔的PC串行通信协议,USB标准提出的主要目的是为了提供一种兼容低速和高速,可扩充并且使用方便外围设备接口共人们使用,同时解决之前计算机接口过多的难题(这也是造成USB协议很复杂的原因) b:usb系统的组成 (1)USB主机 一个usb系统只有一个主机.USB和主机系统的接口称为主机控制器,主机控制器由硬件,固…
主要内容: udev简介 如何配置和使用udev 如何编写udev规则 字符串替换和匹配 udev主要作用 编写udev规则实例 难点解析 1. udev简介 1.1 什么是udev? udev是Linux(linux2.6内核之后)默认的设备管理工具.udev 以守护进程的形式运行,通过侦听内核发出来的 uevent 来管理 /dev目录下的设备文件. 如何理解udev是守护进程呢?即系统内核启动后init进程(比如busybox的init程序.sysinit.Upstart或systemd)…
USB驱动编程原理: 当我们把USB设备插入USB口时会提示需要安装相对应的驱动,如USB鼠标.USB键盘等,这些电脑自己自身已经自带有相对于的驱动程序, 当电脑检查到该USB设备类型相同就去帮你安装相对于驱动,但有些由于系统没有自带有相对于的USB驱动程序,需要联网或者厂家资料自带有 就需要手动安装驱动,如USB转串口驱动,搞开发搭建前期时需要安装一大推驱动程序开可以进行开发. USB驱动开发依据主从关系的:也就是把USB口这一端作为主设备,也即开发板,USB设备作为从设备,主设备上具备有一个…
一.USB固件和USB传输方式 USB固件: USB固件一般不需要我们编写,在此不做程序分析. USB固件中包含USB设备的出厂信息,如厂商ID.产品ID.主版本号和次版本号等.这就是为什么当我们把U盘插入USB口的时候主机可以知道这是一个U盘设备. 除包含出厂信息外,固件中还包含处理USB协议和设备读写操作的程序,如将数据从设备发送到总线上或从总线中将数据读取到设备中.驱动程序只是将USB规范定义的请求发送给固件程序,固件程序负责将数据写入设备中.USB规范定义了USB设备间的通信方式. US…
简介 本文介绍USB驱动程序编写的流程,分析一个键盘的USB程序,基于linux-2.6.39 USB驱动概要 分层 主机层面的USB驱动的整体架构可以分成4层,自顶到下依次是 1.USB设备驱动:本文主要讲述的内容,利用USB核心提供的编程接口编写具体硬件设备与系统的交互逻辑 2.USB核心:linux内核实现,管理上层的USB设备驱动,并且对下面的USB通信机制做封装,封装的接口提供给上层做驱动编写 3.USB主机控制器驱动:主要负责USB硬件和主机通信机制 3.USB控制器:实际的硬件部分…
某设备需要提供多路USB串口的功能给主机端使用,比如一路用作业务1通信功能,一路用作业务2通信功能,一路用作debug抓log用途,诸如此类.如下图所示. 要实现上述设备功能,可以参考如下步骤. 1)首先,了解一下背景知识.Linux kernel为设备端USB驱动提供了名为USB Gadget的驱动框架,设备端要基于Linux系统实现USB device功能,都需要基于Gadget框架.各种USB class定义的功能,在设备端的实现,称之为USB function.常见的USB functi…
imx6 usb的host和slave配置,配置之后,安装gadget模块,就能够在host和slave之间切换. 参考文档: i.MX 6Dual/6Quad Linux Reference Manual http://www.cnblogs.com/helloworldtoyou/p/6181860.html 将内核.config文件中下列选项选中(Y),或者编译成模块编译成M. 以下是摘自i.MX 6Dual/6Quad Linux Reference Manual中的内容 Chapter…
本文转载自:http://www.360doc.com/content/12/0321/14/8363527_196286673.shtml 注意,该文件是2.4的内核的驱动源文件,并不保证在2.6内核中可用.文件路径为kernel/driver/usb/usb_skelton.c 该文件是usb驱动的一个框架,很多usb的驱动都可以在这个文件的基础上进行修改得到. 下面就是该源文件,中文部分是我的注释,如有错误的地方,欢迎指出. /* * USB Skeleton driver - 0.6 *…

USB

[一].USB(Universal Serial Bus):是通用串行总线的缩写,具有方便易用,动态分配带宽,容错性优越和高性价比等特点. USB接口设备结构分:USB Host(主机)和USB Device(外部设备).主机与设备间进行通信,主-主或设备-设备间不可通信. USB主机功能:验证USB设备是否安装好或拔除:控制USB主机与USB设备间数据通信:返回USB主机所显状态. USB系统软件分为:主机控制器驱动(HCD:Host control Device ).USB驱动(USBD:U…
上一节勉勉强强把struct urb这个中心给说完,接着看那三个基本点. 第一个基本点,usb_alloc_urb函数,创建urb的专用函数,为一个urb申请内存并做初始化,在drviers/usb/core/urb.c里定义. /** * usb_alloc_urb - creates a new urb for a USB driver to use * @iso_packets: number of iso packets for this urb * @mem_flags: the ty…
上节中看到usb目录中有一个core目录,凡是认识这个core单词的人都会想要先看看它是什么,对不?用LDD3中一幅图,来表述usb core所处地位. usb core负责实现一些核心的功能,为别的设备驱动程序提供服务,提供一个用于访问和控制USB硬件的接口,而不用去考虑系统当前存在哪种host controller. 上述就是core的作用和地位,下面就分析core目录下的代码.首先用ls命令看一下它包含哪些文件,顺便用wc –l命令统计一下多少文件和代码.是不是吓了一跳?几万行的代码,co…
USB只是Linux庞大家族里的一个小部落,host controller是它们的族长,族里的每个USB设备都需要被系统识别.下图显示包含一个USB接口的USB鼠标导出的结果. USB系统中的第一个USB设备是root hub,它是和host controller绑定在一起的.这个root hub通常包含在PCI设备中,是连接PCI总线和USB总线的bridge,控制着连接到其上的整个USB总线.所有的root hub,内核的usb core都分配有独特的编号,上面贴出来的例子里,就是usb2,…
4.1.1 Bus Topology 最大层数为7,第7层只能是Function不能是Hub,非根Hub最大5级. 5.3 USB Communication Flow Host Controller Driver(HCD):对上层的USB System Software屏蔽USB Packet的接收和发送细节.例如一张PCIe转USB的卡,Host Controller负责将数据从PCIe总线转到USB总线上发送出去,或者反之.这一层只负责处理总线数据收发,不处理协议细节. USB Drive…
making a linux usb driver http://www.kroah.com/linux/ http://matthias.vallentin.net/blog/2007/04/writing-a-linux-kernel-driver-for-an-unknown-usb-device/ http://www.linuxjournal.com/article/7353?page=0,2 sudo lsusb -v -d 16c0:05df                    …
一.USB协议基础知识   前序:USB概念概述 USB1.0版本速度1.5Mbps(低速USB) USB1.1版本速度12Mbps(全速USB)  USB2.0版本速度480Mbps(高速USB). USB 分为主从两大体系,一般而言, PC 中的 USB 系统就是作主,而一般的 USB 鼠标, U 盘则是典型的 USB 从系统. USB主控制器这一块,我们至少要开发出 USB 的主控制器与从控制器,鼠标是低速设备,所需的是最简单的一类从控制器.主控制器则复杂得多,因为太过于复杂了,所以就形成…