VxWorks下USB驱动总结1】的更多相关文章

3:USBD驱动详解 这一部分将要描述USBD(USB Host Driver)的典型应用.例如初始化,client注册,动态连接注册,设备配置,数据传输,同时还探讨了USBD内部设计的关键特性.这部分是VxWorks下USB驱动的核心. 1 初始化USBD:分为两步 (1)必须至少调用一次函数usbdInitialize().在一个给定的系统中,usbdlnifialize()初始化内部USBD数据结构,并依次调用其它USB驱动栈模块的入口.usbdinitialize()可以在启动时调用一次…
1.USB设备 物理特征:4条电缆,电源线.地线.数据线.脉冲线; 速 度:低速1.5Mbps,全速12Mbps,高速480Mbps; 规范版本:1998年USB1.1,2000年USB2.0; 连 接:PCI总线<->USB控制器(OHCI/UHCI/EHCI)<->USB设备; 单个USB控制器最大连接个数:127; 距离限制:USB单条线缆长度不能超过5m,通过hub可延长至30m. 重要概念:主机-USB设备采用master-slave方式分工,所有通信都是主机发起的:在某…
转自:http://blog.csdn.net/jimmy_1986/article/details/5838297 嵌入式linux下的usb属于所有驱动中相当复杂的一个子系统,要想将她彻底征服,至少需要个把月的时间,不信?那是你没做过. 本人做过2年的嵌入式驱动开发,usb占了一大半的时间.期间走了不少弯路,下面将我的血的经验教训总结下,为要从事和正在从事的战友们做一点点贡献吧:) 首先,扫盲: 要做的是阅读usb Spec(英文的哦,其实很多文章.书籍和资料真有水平的还是原创的好,就像食品…
1.曾经看到帖子说vxworks5.5下没有sata驱动,vxworks6.6下有,这样的说法恐怕不正确,由 于俺在5.5下也运用运用了sata硬盘,请注重这里俺只是说运用运用,没有说运用运用了sata的ahci模式.俺个人觉得,vxworks5.5下实际上是可以运用运用ide模式的ata,就是说cf卡,ide硬盘+sata硬盘的ide模式都是可以运用运用的,并不可以一概说,sata就不可以使: 2.vxworks5.5下的ata驱动只有pio模式,没有dma模式,因而速度不快.若想运用运用dm…
转自:http://blog.csdn.net/brucexu1978/article/details/17583407 版权声明:本文为博主原创文章,未经博主允许不得转载. http://www.cnblogs.com/general001/articles/2319552.html http://blog.csdn.net/uruita/article/details/7263290:MODULE_DEVICE_TABLE http://blog.chinaunix.net/uid-2590…
端点 USB 通讯的最基本形式是通过一个称为端点的东西.一个USB端点只能向一个方向传输数据(从主机到设备(称为输出端点)或者从设备到主机(称为输入端点)).端点可被看作一个单向的管道. 一个 USB 端点有 4 种不同类型, 分别具有不同的数据传送方式: 控制CONTROL 控制端点被用来控制对 USB 设备的不同部分访问. 通常用作配置设备.获取设备信息.发送命令到设备或获取设备状态报告.这些端点通常较小.每个 USB 设备都有一个控制端点称为"端点 0", 被 USB 核心用来在…
学习目标:分析USB驱动源码结构. 一.Windows下USB驱动理论问题 1. 当usb设备接入PC时,右下角弹出"发现AAA",并弹出对话框,提示安装驱动程序.没有驱动程序,Windows是怎样知道是AAA设备? --> Windows有USB的总线驱动程序,接入USB设备后,"总线驱动程序"就会知道该设备是"AAA",提示安装的是”AAA的设备驱动程序".这里USB总线驱动程序负责:识别USB设备, 给USB设备找到对应的驱…
之前做过STM32的usb HID复合设备,闲来看看linux下USB设备驱动是怎么一回事, 参考资料基于韦东山JZ2440开发板,以下,有错误欢迎指出. 1.准备知识 1.1USB相关概念: USB枚举过程:https://blog.csdn.net/go_str/article/details/80802452 USB其它概念: Linux platform平台总线.平台设备.平台驱动 (1)usb是主从结构,usb的传输都是主机发起: (2)usb右四种传输类型:控制.批量.中断.实时传输…
USB驱动分为两块,一块是USB的bus驱动,这个东西,Linux内核已经做好了,我们可以不管,我们只需要了解它的功能.形象的说,USB的bus驱动相当于铺出一条路来,让所有的信息都可以通过这条USB通道到达该到的地方,这部分工作由usb_core(drivers/usb/usb.c)来完成.当USB设备接到USB控制器接口时,usb_core就检测该设备的一些信息,如生产厂商的ID(VID)和产品的ID(PID),或者是设备所属的class.subclass跟protocol,以便确定应该调用…
源: Linux 下wifi 驱动开发(四)—— USB接口WiFi驱动浅析…
转:http://blog.csdn.net/zhengmeifu/article/details/8837930 Linux下编译记录:编译PC端USB驱动和写入工具dnw_linux.tgz压缩包文件结构如下 dnw_linux/dnw_linux/secbulk/dnw_linux/secbulk/Makefilednw_linux/secbulk/secbulk.cdnw_linux/dnw/dnw_linux/dnw/dnw.c 其中secbulk.c是PC端USB驱动, dnw.c是…
转自:http://blog.csdn.net/txxm520/article/details/8934706 首先说一下linux的风格,个人理解 1. linux大小结构体其实是面向对象的方法,(如果把struct 比作类,kmalloc就是类的实例化,结构体里面的函数指针就是方法,还有重构,多态) 2. 在linux里面,设备是对象,驱动也是对象,并且这两个是分开的 现在我们来看驱动的总体架构 并不用太在意这个图,对用户来说usb_serial设备就是普通的串口设备 我们可以看驱动里面几个…
总算是进入了HCD的片儿区,既然来到一个片区,怎么都要去拜会一下山头几个大哥吧.,先回忆一些我们怎么到这里的?给你列举一个调用函数过程usb_control_msg->usb_internal_control_msg->usb_start_wait_urb->usb_submit_urb->usb_hcd_submit_urb.这个山头儿,王中之王就是drivers/usb/core/hcd.h里定义的struct usb_hcd. /*----------------------…
直接看代码吧. /*-------------------------------------------------------------------*/ /** * usb_submit_urb - issue an asynchronous transfer request for an endpoint * @urb: pointer to the urb describing the request * @mem_flags: the type of memory to alloca…
函数usb_control_msg完成一些初始化后调用了usb_internal_control_msg之后就free urb.剩下的活,全部留给usb_internal_control_msg去做了,那就去了解一下它背后的生活吧. /*-------------------------------------------------------------------*/ // returns status (negative) or length (positive) static int…
在第五节我们说过会专门分析函数usb_device_match,以体现模型的重要性.同时,我们还是要守信用的. 再贴一遍代码,看代码就要不厌其烦. static int usb_device_match(struct device *dev, struct device_driver *drv) { /* devices and interfaces are handled separately */ if (is_usb_device(dev)) { /* interface drivers…
Linux设备模型中的总线落实在USB子系统里就是usb_bus_type,它在usb_init的函数bus_register(&usb_bus_type)里注册.usb_bus_type定义如下: struct bus_type usb_bus_type = { .name = "usb", .match = usb_device_match, .uevent = usb_uevent, .suspend = usb_suspend, .resume = usb_resume…
此系列是http://blog.csdn.net/fudan_abc/博文的整理,同时加入了自己的理解.很敬佩fudan_abc的文章,仔细学习和分析受益很多.注:fundan_abc所分析linux内核代码所用的版本是2.6.22.6. Q:学习linux下的usb通信要怎样进行? 熟悉linux驱动开发,同时需要了解usb协议规范,对照linux下的usb驱动代码慢慢分析和学习 Q:为什么要开发usb? 在usb出现以前,设备接口多样化(有串口.并口等),而usb可以实现这些接口的统一和标准…
1. 将u盘插入电脑,在windows能够识别后,进入VirtualBox的选定要加载的虚拟机,选择设置——>选择usb设备项 2. 选择右边的第一或者是第二个图标,增加一个新的筛选器,第一个图标是增加一个空的筛选器,能够加载任何的usb设备.第二图标是加载host中usb列表的设备. 3. 增加筛选器后,通过windows的安全删除硬件方式卸载usb. 4. 启动 guest,进入ubuntu,此时应该会提示windows发现了virtual box usb驱动,指定驱动为virtual bo…
usb 驱动学习总结: usb 采用分层的拓扑结构,金字塔型,最多是7层.usb 是主从结构,主和主或者从和从之间不能交换数据.理论上一个usb主控制器最多可接127个设备,协议规定每个usb设备具有一个7bit的地址,范围是[0,127], 0地址是保留给为初始化的设备用的. 一个完整的USB数据传输过程如下: 下行:USB主控制器发出命令和数据 -> 根hub ->子hub或者usb 设备.上行:设备接收到数据,处理返回数据和信息 -> 上一层hub ->上一层hub...-&…
Linux下USB烧写uImage kernel   1.启动开发板,进入u-boot:(如果开发板中没有系统,可以通过用SD卡方式启动开发板进入)   U-Boot 2011.06 (Mar 19 2012 - 08:45:34) for MINI6410   CPU: S3C6400@667MHz Fclk = 667MHz, Hclk = 133MHz, Pclk = 66MHz (ASYNC Mode) Board: MINI6410 DRAM: 256 MiB NAND: 512 Mi…
Suumary: 简单介绍了一下SD卡的历史和发展,同时结合MX31 ADS上的WINCE 下SDHC驱动更深入的了解该硬件的一些行为特点. 了解SD card SD是Secure Digital Card卡的简称,直译成汉语就是“安全数字卡”,是由日本松下公司.东芝公司和美国SANDISK公司共同开发研制的全新的存储卡产品.SD存储卡是一个完全开放的标准(系统),多用于MP3.数码摄像机.数码相机.电子图书.AV器材等等,尤其是被广泛应用在超薄数码相机上.SD卡在外形上同Multimedia…
linux里的软件分为用户层和内核层两种.比如内核里编译了温度传感器的驱动,还得有lm-sensors在用户层负责解释处理内核递交出的数据.usb驱动是硬件驱动方面的东西,libusb是给应用软件开发和usb驱动协同操作(在底层读取usb内容)的功能时提供的库. 驱动开发向来是内核开发中工作量最多的一块,随着USB设备的普及,大量的USB设备的驱动开发也成为驱动开发者手头上做的最多的事情.本文主要介绍Linux平台下基于libusb的驱动开发,希望能够给从事Linux驱动开发的朋友带来些帮助,更…
对于AM335x来讲,TI维护的USB驱动已经非常完善了,本文称之为移植,实际上仅仅是配置内核选项使能USB HOST/OTG功能.废话少说,直接动手开启AM335x的USB驱动配置项. Step1. 配置内核支持USB 默认的配置项没有配置USB相关的选项,但是DTS已经配置好了,我们不需要对DTS作任何修改,详细的内核配置项如下: [cpp] view plaincopy Device Drivers  ---> [*] USB support  ---> [*]     OTG supp…
1.       ATA接口的三种数据传输方式 (1)PIO(Programmable Input-Output)传输,可以分为PIO寄存器传输和PIO数据传输.PIO寄存器传输主要用于对ATA设备中的寄存器进行读写.读写的数据位数为8位DD[7:0].ATA主机控制器根据所要读写的寄存器地址设置CS0_.CS1_.DA[2:0]地址信号,同时将DIOW_或DIOR_设为有效,ATA主机控制器或ATA设备驱动数据总线释放数据.当DIOW_或DIOR_撤销时,ATA主机控制器或ATA设备从数据总线…
.cdromFs:允许系统从按照ISO9660标准文件系统格式化的CD-ROM上读取设备: 通常文件系统驱动位于磁盘(块存取)设备驱动和IO系统之间,这一点在VxWorks中也不例外,但它在此基础上扩充了功能,即在文件系统下方增加了一个CBIO(Core Blocked IO)接口,在CBIO下方才是块存取设备驱动,其示意图如下: 图1 VxWorks I/O系统层次图 而CBIO接口部分又细分为4个逻辑子层,每个逻辑层都有与创建文件系统相关的函数,将CBIO接口部分细分后,包含各子层相关操作函…
去年,老师让我分析基于HD3系统芯片的WindowsCE USB驱动的可行性.USB驱动非常庞大,多个软件层次相互交错,以及各种协议,USB系统对于一般人很难理解,我对其也只是理解一个大概,下面,我对USB驱动架构的认识做一个总结. USB系统可以分为两个系统:(1)主机系统HOST:(2)设备系统(Device). USB主机系统HostUSB主机系统中,USB主机控制器是一块核心的处理芯片,主机控制器通过根集线器(Root Hub)与外部USB从机设备相连.USB主机控制器包含硬件.软件.固…
现象:把usb设备接入电脑 1.Windows发现设备 2.跳出一个对话框提示安装驱动程序 问1:既然没有驱动程序,为什么了够知道是什么驱动了?? 答1:Windows里面已经有了usb总线驱动程序,接入usb设备后,是“总线驱动程序知道”是什么驱动.提示安装设备驱动程序 usb总线驱动程序负责识别USB设备,给usb设备找到对应的驱动程序 问2.usb设备种类多,为什么接入电脑就能够识别出来了? 答2.PC和USB设备都的遵守一些规范. 比如:USB接入电脑后PC机会发出,读取设备类型的命令(…
s3c2410x驱动是一款非常好用的usb驱动程序,win7 64位下mini2440 USB下载驱动安装,解决win7下安装SEC S3C2410X Test B/D 驱动出现叹号的问题.如果你开始不成功可能是因为没接上串口,我接上串口以后用DNW相同的方法成功的实现了程序的下载. SEC S3C2410X Test B/D 驱动安装教程: 1) 在绿色资源网下载驱动: 2) 安装驱动, 3) 安装完后在[其它设备]->[SEC S3C210X Test B/D] 前有个叹号,说明驱动没有安装…
转自:http://blog.csdn.net/aaronychen/article/details/3928479 Linux下USB suspend/resume源码分析 Author:aaron   本文主要从自己开发的一个USB驱动的例子来深入讲解linux内核是如何支持USB设备的休眠和唤醒的, 最近我在为我们公司的一个模块写linux下的驱动, 其中之一就是要支持USB的休眠唤醒问题, 实际上linux内核对USB的这个功能的支持还是比较新的, 也就是最近几年的事. 一  打开/关闭…