[RK3288] 外接USB设备出现丢数】的更多相关文章

CPU:RK3288 系统:Android 5.1 主板外接 USB 接口的外设,经常会出现丢数的现象,这种问题在很多 USB 接口的外设上都遇到过,例如:USB读卡器.USB扫描枪等 有一个共同点是外设在系统中作为一个键盘设备,相当于键盘输入. 直接上RK提供的补丁,此补丁优化很大,但是没有根本解决问题,偶尔还会出现丢数 diff --git a/kernel/drivers/irqchip/irq-gic.c b/kernel/drivers/irqchip/irq-gic.c old mo…
(一)DeviceIoControl的PInvoke /* ---------------------------------------------------------- 文件名称:DeviceIoControl.cs 作者:秦建辉 MSN:splashcn@msn.com QQ:36748897 博客:http://blog.csdn.net/jhqin 开发环境: Visual Studio V2010 .NET Framework 4 Client Profile 版本历史: V1.…
因为以前没用过USB,对USB也不了解,于是上网查了很多资料,不过网上的资料都是零零散散,不清不楚的,于是我自己总结了一下,下面几个链接是网上这么多零散资料里,我觉得比较有参考意义的. USB设备连接思路参考:https://www.cnblogs.com/xyzyx/articles/2959610.html#undefined 代码参考:http://www.cnblogs.com/xidongs/archive/2011/11/28/2266100.html# 收发数据参考:https:/…
一.背景: 最近在做的一个项目需要使用USB传递数据,对USB理解不是很深,USB的系统驱动编写则更是天方 夜谭,因此将设备配置成HID类设备成为了首选.其最大的好处在于,LINUX/Windows系统中均自带HID 设备驱动,免除了USB系统驱动的困扰,同时HID配置为高速设备与全速设备时,其每笔事务传输的最大 字节大小分别为64bytes.1024bytes,亦符合当前开发需求. 二.正文: 安装及使用方法在"HIDAPI"文件夹中的"Readme"有了详细说明…
usb设备驱动 本章主要内容包含以下:USB总线介绍,USB协议分析,USB系统架构 一.USB总线介绍 1.1USB发展史 USB(Universal Serial Bus)通用串行总线,是一种外部总线标准用于规范电脑与外部设备的连接和通讯.USB是在1994年底由英特尔.康柏.IBM.Microsoft等多家公司联合提出的,自1996年推出后已成功替代串口和并口,成为当今个人电脑和大量智能设备的必配接口之一. USB 1.0出现在1996年的,速度只有1.5Mb/s1998年升级为USB 1…
USB主机在检测到USB设备插入后,就要对设备进行枚举了.为什么要枚举?枚举就是从设备读取各种描述符信息,这样主机就可以根据这些信息来加载合适的驱动程序,从而知道设备是什么样的设备,如何进行通信等. 枚举的过程: 1.  USB主机检测到USB设备插入之后,就会先对设备复位.USB设备在总线复位后其地址为0,这样主机就可以通过地址0和那些刚刚插入的设备通信.USB主机往地址为0的设备的端点0发送获取设备描述符的标准请求(这是一个控制传输的建立过程).设备收到该请求后,会按照主机请求的参数,在数据…
在终端用户看来,USB设备为主机提供了多种多样的附加功能,如文件传输,声音播放等,但对USB主机来说,它与所有USB设备的接口都是一致的.一个USB设备由3个功能模块组成:USB总线接口.USB逻辑设备和功能单元.这里的USB总线接口指的是USB设备中的串行接口引擎(SIE):USB逻辑设备被USB系统软件看作是一个端点的集合:功能单元被客户软件看作是一个接口的集合.SIE.端点和接口都是USB设备的组成单元. 为了更好地描述USB设备的特征,USB提出了设备架构的概念.从这个角度来看,可以认为…
usb驱动分为通过usbfs操作设备的用户空间驱动,内核空间的内核驱动.两者不能同时进行,否则容易引发对共享资源访问的问题,死锁!使用了内核驱动,就不能在usbfs里驱动该设备. 下面转载的一篇分析usb-skeleton.c文章. 初次接触与OS相关的设备驱动编写,感觉还挺有意思的,为了不至于忘掉看过的东西,笔记跟总结当然不可缺,更何况我决定为嵌入式卖命了.好,言归正传,我说一说这段时间的收获,跟大家分享一下Linux的驱动开发.但这次只先针对Linux的USB子系统作分析,因为周五研讨老板催…
在前面的文章中,我们已经给出了USB协议的链接地址,从这篇文章起,我们会涉及到许多USB 1.1的内容,我们的指导思想是先从熟悉USB 1.1协议入手,先使用现成的HCD和USBD,直接面对客户端驱动编程,尽快看到成果,使读者对USB的开发充满信心,进而去研究USBD和HCD的编程方法.请读者自行阅读协议,文章中有关协议的详细情况,由于会涉及非常多的文字,恕不能过多解释. 1.USB系统主机端的软件结构  一般来说,教科书或者协议上都会把USB主机端的软件说成有三层,第一层叫主机控制器驱动程序H…
通过前面的学习,大家应该对USB固件程序结构有了比较深的认识,现在再来详细说说固件里决定设备识别成厂商自定义USB设备的地方有哪些,或者说厂商自定义USB设备的固件特性有哪些. 之前不止一次说过学习USB固件编程的要点是要学会各种描述符及主机命令以及设备的枚举过程,理解设备枚举过程是主线,在这一过程中需要掌握主机各种命令及USB相关描述符(本站<USB命令请求及描述符详解(速查手册)>和<用USB Monitor监视USB枚举(配置.识别)过程(USB枚举过程分析)>对此进行了总结…
USB设备驱动 ·  )USB Hub:每个USBHost控制器都会自带一个USB Hub,被称为根(Root)Hub.这个根Hub可以接子(Sub)Hub,每个Hub上挂载USB设备.一般PC有8个USB口,通过外接USB Hub,可以插更多的USB设备.当USB设备插入到USBHub或从上面拔出时,都会发出电信号通知系统.这样可以枚举USB设备,例如当被插入的时候,系统就会创建一个USB物理总线,并询问用户安装设备驱动.如图17-4所示为一个典型的USB Hub的示意图. 是控制管道,管道1…
add by zhj:上午鼠标还用的好好的,下午就不能用了,插上之后提示“跟这台计算机连接的一个usb设备运行不正常”,尼玛,什么情况?我今天没安装软件啊,换了个USB接口也不行,在另一台电脑上试还是不行,在我想把这个鼠标扔了的时候,发现了下面的帖子,用第一种方法试了试.把插头拔下来,用钥匙连接了一下正负线,然后把鼠标拔出重新插上,OK,果然牛逼,好了,不用重启电脑.但后来又多次出现这种情况,连接正负线也不管用了,只好买了一个新鼠标. 原文:http://itbbs.pconline.com.c…
USB 设备驱动: 一.USB 描述符:(存在于USB 的E2PROM里面) 1.  设备描述符:struct usb_device_descriptor 2.  配置描述符:struct usb_config_descriptor 3.  接口描述符:struct usb_interface_descriptor 4.  端点描述符:struct usb_endpoint_descriptor 通过命令lsusb 列出系统中所有的USB设备: 通过命令lsusb -v 列出系统中所有的USB设…
说明:本分析基于mstar801平台Linux2.6.35.11内核,其他内核版本仅供参考. 一.程序在内核中的位置 1.usb host做为pci总线下的一个设备存在(嵌入式系统中有可能也会直接挂在CPU上):这部分驱动由厂家实现,本分析以mstar为例. 2.USB总线驱动 kernel/drivers/usb/core/driver.c EXPORT_SYMBOL_GPL(usb_register_driver); EXPORT_SYMBOL_GPL(usb_deregister); EX…
1.urb 结构体 USB 请求块(USB request block,urb)是USB 设备驱动中用来描述与USB 设备通信所用的基本载体和核心数据结构,非常类似于网络设备驱动中的sk_buff 结构体. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 struct urb { /* 私有的:只能由USB 核心和主机控制器访问的字段 */ struct kref kref; …
1.usbmouse.c (1)probe函数 在这个probe函数后判断是不是一个鼠标,先得到usb_host_interface结构体,除了端点0外,端点个数如果不是1,返回错误,表示不是自己能支持的设备.如果只有一个端点,放在endpoint这个数组里面.endpoint[0]是表示除了端点0外的第一个端点.得到它的端点描述符. 如果不是输入(中断)类型端点,输入输出是站在主机角度说的,鼠标是输入设备(数据输入给主机).返回错误.可以查看端点描述符里面的属性知道 ,这个属性表明其类型和方向…
首先需要将usbfs挂载一下,然后才能查看.$ mount -t usbfs none /proc/bus/usb$ cat  /proc/bus/usb/devices或者在文件(/etc/fstab)中添加如下这句:none  /proc/bus/usb  usbfs  defaults  0  0查看到的信息,如下所示:T:  Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12   MxCh= 3B:  Alloc=  0/900 us…
当需要使用usb bulk传输,想让设备像串口通讯那样和PC主机通信, 通常需要自己做一个PC端的驱动,比较麻烦. 为避免在pc上编写usb设备驱动的麻烦,可以将设备做成mass storage 类的设备,使用通用的驱动. 在通讯之前设备端需要先做两件事: 1,实现mass storage 类的描述符和类请求. 2,实现必要的SCSI命令,让PC认为该设备已正常运作. 我利用修改linux中的gadget zero设备做了一个简单的设备. 如果是在裸机程序下面做,应该也差不多,直接拿芯片厂商BS…
一.概述 公司最近要我实现USB设备插入Ubuntu后,自动共享到网络上,能像Windows共享一样(如\\192.168.1.10)访问里面的内容,不需要写入权限.当时听完这需求,我这新人表示惊呆了,立刻上网搜相关文档,并跑去问主管,这功能有人实现了不?主管很肯定地说,必须的.网上搜到的技术文档只有插入USB设备自动挂载,自动共享没搜到,这下只好靠自己了. 经过一番折腾总算在Ubuntu14.04桌面版实现了该功能,但还不完美,例如:默认只共享出来5个USB设备,USB1~5,拔出后设备还存在…
症状: 当你发现"移动硬盘图标"经常无故消失,又自己出现时. 你可以把这个现象称之为"掉电" or "掉驱动". 遇到这种情况,相当不爽. 比如"拷贝大文件"快完成的时候,掉之,那就真的是"我去...". 这种现象在笔记本上尤为常见,台式机相对比较少. 怎么解决呢? 解决方案: 1.取消勾选"允许计算机关闭此设备以节约电源(A)". 从"我的电脑" or "…
问题:域环境下如何禁用USB口设备? 第一种:用传统的办法,在Bios中禁用USB. 第二种: 微软技术支持回答:根据您的需求, Windows识别USB设备主要通过两个文件,一个是Usbstor.pnf.另外一个是Usbstor.inf,当在电脑第一次使用USB设备之前禁用这两个文件即可达到我们的目标.1.打开Active Directory用户和计算机:2.选择需要禁用USB设备的OU,并点击鼠标右键进行组策略:3.创建一个针对USB的GPO,并点击编辑,打开组策略编辑器:4.进入组策略编辑…
由于某些软件只有windows版本,于是只好安装个虚拟机win7 /**************************安装*************************************/ Virtualbox 直接在软件中心就有,安装一下就行 然后随便搜索了个win7的镜像,找到很多都是Ghost镜像,那就下个Ghost吧 然后,新建了个win7虚拟机,把下载的iso加载进去,开机后,发现出问题了,无法直接ghost安装,只能进入PE,失败了好几次 后来尝试出解决方法如下 1,新建…
前言: USB设备使用方便,但也可能被用来携带恶意软件.病毒,感染计算机系统.通过禁用自动播放功能.杀毒软件查杀.不定期的对设备进行格式化等操作可以确保它是干净的.但它存在的安全问题要比我们想象的更深,问题不仅在于它携带了什么,还在于通过它的工作方式就能产生安全隐患. USB隐藏的危险: 安全研究员Karsten Nohl 和Jakob Lell 发现了从根本上颠覆USB安全性的方法.他们创建的恶意软件,暂且称为BadUSB,可以被安装到USB设备中完全控制PC,无形中修改内存中的文件,甚至重定…
USB在接入系统的时候,以0的设备ID和主机通信,然后由主机为其分配新的ID. 在主机端,D+和D-都是下拉接地的.而设备端的D-接上拉时,表明此设备为高速设备:12M/s. D+接上拉时则是全速设备:480M/S. PC的USB口中的D+D-有15K的下拉电阻,未接USB设备时,皆为低电平. 而设备中的D+D-则是1.5K的上拉电阻.一旦接入PC中,电脑就会知道有设备接入. USB是主从结构.所有的传输都是由主机发起的,即USB设备没有主动通知USB主机的能力. USB的传输类型: 控制传输.…
来源:http://www.cnblogs.com/fsjohnhuang/p/3987545.html 首先下载安装virtualbox的扩展包,因为box原本不支持usb设备.www.virtualbox.org/wiki/downloads 然后将自己添加到用户组vboxusers chmod -G vboxusers -a username id username 查看自己是否在vboxusers组中 重启计算机就可以了. 注意如果不将自己添加到vboxusers用户组中将看不到usb设…
上篇 <Windows下USB磁盘开发系列一:枚举系统中U盘的盘符>介绍了很简单的获取系统U盘盘符的办法,现在介绍下如何枚举系统中所有USB设备(不光是U盘). 主要调用的API如下: 1,调用SetupDiGetClassDevs()获取指定设备类型的句柄: 2,调用SetupDiEnumDeviceInfo()枚举设备信息: 3,调用SetupDiGetDeviceRegistryProperty()获取设备信息. 具体实现函数如下: int enum_usb_device_info()…
根据USB规范的规定,所有的USB设备都有供应商ID(VID)和产品识别码(PID),主机通过不同的VID和PID来区别不同的设备,VID 和PID都是两个字节长,其中,供应商ID(VID)由供应商向USB执行论坛申请,每个供应商的 VID是唯一的,PID由供应商自行决定,理论上来说,不同的产品.相同产品的不同型号.相同型号的不同设计的产品最好采用不同的PID,以便区别相同厂 家的不同设备. VID和PID通常情况下有两种存储方式,第一种是主控生产商的VID和PID,存储在主控的bootcode…
转载自:http://www.cnblogs.com/ericsun/archive/2013/06/10/3130679.html 具体步骤在上面的链接中 今天在ubuntu下安装了Virtualbox.但是每次设置的时候,提示 virtualbox当前不允许访问usb设备等等等.. 转载的仁兄的其中的一个步骤有点问题 将其改为:sudo usermod -a -G vboxusers sharl....…
我们在虚拟机中识别USB设备有三种情况导致Linux系统不能读取到USB设备: 1. .当虚拟机的USB服务没有开启的时候 2. 若虚拟机的USB连接的设置选项没有设置好 3. Widows抢先一步,被Windows读取到虚拟机下Linux读取USB设备的问题 还有一种是虚拟机USB读取服务文件出现了问题,这个见链接 http://blog.csdn.net/limb99/article/details/7723600 1.当虚拟机的USB服务没有开启的时候,是无法读取到的,必须将其打开 2.若…
/* ---------------------------------------------------------- 文件名称:WMIUsbQuery.cs 作者:秦建辉 MSN:splashcn@msn.com QQ:36748897 博客:http://blog.csdn.net/jhqin 开发环境: Visual Studio V2010 .NET Framework 4 Client Profile 版本历史: V1.3 2011年09月08日 代码优化 V1.2 2011年09…