
Android USB
文章平均质量分 85
USB
小馋喵星人
这个作者很懒,什么都没留下…
展开
-
USB NCM usbnet 枚举流程代码分析
USB NCM usbnet 枚举流程代码分析一、cdc_ncm.c1.1 struct usb_device_id结构体1.1.1 match_flags 设备类型1.1.2 bInterfaceClass 接口类一、cdc_ncm.c在linux 驱动中,CDC NCM的驱动位于: kernel\drivers\net\usb\cdc_ncm.cstatic struct usb_driver cdc_ncm_driver = { .name = "cdc_ncm", .id_table =原创 2021-10-18 17:51:58 · 2877 阅读 · 0 评论 -
【Linux USB子系统 - 01】Legacy 类设备功能驱动层 - 代码流程分析
【Linux USB子系统 - 01】Legacy 类设备功能驱动层 - 代码流程分析一、Legacy 类设备功能驱动层1.1 struct usb_device_descriptor 结构体1.2 struct usb_gadget_strings 结构体1.3 struct usb_composite_driver 结构体有关Linux USB子系统的架构,网上有一往篇写的很好的文章,可以参考学习下:《一文搞懂 USB 设备端驱动框架》,盗用上面文章中的一张图,很好的归纳了usb子系统的整体架构:原创 2021-08-12 11:37:11 · 1677 阅读 · 0 评论 -
高通USB 调试总结随笔
高通USB 调试总结随笔1. 分析USB log2. 正常识别流程3. 修改为host 模式4. USB检测插入原理最近分析了个高通USB 1 通过 主板上的HUB芯片不能正常通信识别USB 外设的问题,注意分析时,一定要再三确认硬件工作正常 ,可以做个实验,剪开一根USB 线,飞线到HUB芯片DPDM 上,如果,USB 接在电脑上,USB 外设接在HUB口上,电脑能正常识别外设,说明HUB芯片正常工作。如下是对软件调试方面的一些方法,写个随笔备份下:1. 分析USB logecho ‘fi原创 2020-06-09 17:15:42 · 4195 阅读 · 0 评论 -
Linux USB 驱动开发(五)—— USB驱动程序开发过程简单总结
设备驱动程序是操作系统内核和机器硬件之间的接口,由一组函数和一些私有数据组成,是应用程序和硬件设备之间的桥梁。在应用程序看来,硬件设备只是一个设备文件,应用程序可以像操作普通文件一样对硬件设备进行操作。设备驱动程序是内核的一部分,主要完成以下功能:对设备的初始化和释放;把数据从内核传送到硬件设备和从硬件设备读取数据;读取应用程序数据传送给设备文件和回送应用程序请求的数据;检测和处理硬件设备出现...转载 2019-07-01 12:05:01 · 1077 阅读 · 0 评论 -
USB OTG(Host) 、 USB ADB(Device)、DWC3 Charge
Linux下USB驱动详解(HOST)https://blog.youkuaiyun.com/feng85016578/article/details/52808434ljzcom的专栏https://blog.youkuaiyun.com/ljzcom/article/category/1067200USB OTG学习笔记https://blog.youkuaiyun.com/ljzcom/article/details...原创 2019-07-04 11:37:26 · 6294 阅读 · 0 评论 -
Linux USB 驱动开发(四)—— 热插拔那点事
学习USB热插拔之前,先学习一些USB的硬件知识:一、USB基础概念1、硬件知识(USB插座和插头)在最初的标准里,USB接头有4条线:电源,D-,D+,地线。后来OTG出现了,又增加了miniUSB接头。而miniUSB接头则有5条线,多了一条ID线,用来标识身份用的。标准USB口只有A型和B型,如下:USB插头的地引脚和电源引脚比较长,而两个数据引脚则比较短,(如下图所示: ...转载 2019-06-28 18:11:33 · 1615 阅读 · 0 评论 -
Linux USB 驱动开发(三)—— 编写USB 驱动程序
前面学习了USB驱动的一些基础概念与重要的数据结构,那么究竟如何编写一个USB 驱动程序呢?编写与一个USB设备驱动程序的方法和其他总线驱动方式类似,驱动程序把驱动程序对象注册到USB子系统中,稍后再使用制造商和设备标识来判断是否安装了硬件。USB 驱动程序依然遵循设备模型 —— 总线、设备、驱动。和I2C 总线设备驱动编写一样,所有的USB驱动程序都必须创建的主要结构体是 struct ...转载 2019-06-28 10:36:43 · 1532 阅读 · 0 评论 -
Linux USB 驱动开发(二)—— USB 驱动几个重要数据结构
前面《Linux USB 驱动开发(一)—— USB设备基础概念》中,我们学习了USB 驱动的一个描述符,下面来学习 USB 驱动的几个重要数据结构一、struct usb_interface 接口函数struct usb_interface{ struct usb_host_interface *altsetting; struct usb_h...转载 2019-06-28 10:19:18 · 1044 阅读 · 0 评论 -
Android下USB Accessory的实现分析 (四)--- AOA上层分析
本文 接着前面的文章 《Android下USB Accessory的实现分析 (三)— Android Open AccessoryProtocol》2.2 Android上层对USBAccessory设备的处理流程下图是g_android.ko驱动检测到USB Accessory设备之后大致的处理流程:首先g_android.ko驱动发现USB Accessory设备发送了“ACC...转载 2019-06-24 17:24:39 · 1622 阅读 · 0 评论 -
Android下USB Accessory的实现分析 (三)--- Android Open AccessoryProtocol
本文 接着前面的文章 《Android下USB Accessory的实现分析 (二)— 底层驱动设计实现》2.1.4 Android Open AccessoryProtocol为了支持USB Accessory,让USB主从设备双方能够互相识别和兼容对方,Google定义了一套Android OpenAccessory Protocol(简称AOA),此协议目前有两个版本:Version...转载 2019-06-24 14:26:16 · 5755 阅读 · 0 评论 -
Android下USB Accessory的实现分析 (二)--- 底层驱动设计实现
接着前面的文章 《Android下USB Accessory的实现分析 (一)— AOA背景介绍》2.Android下Usb Accessory的设计实现Android下对Usb Accessory设备的支持包括内核驱动层的支持和Android Framework层的支持,如下是设计架构图:下面就分别从Linux内核驱动,Android Framework层,以及相关的应用层代码来进行分...转载 2019-06-24 14:30:18 · 3066 阅读 · 0 评论 -
Android下USB Accessory的实现分析 (一)--- AOA背景介绍
摘要本文介绍了USB Accessory的一些背景知识,并从Linux驱动到Android Framework层,阐述了USB accessory的整个实现过程。关键词: Android,USB,Accessory, ADK1. 背景介绍自Android 3.1之后的版本,Google引入了USB Accessories的概念,并提供了相关的开发库。下面是developer.andro...转载 2019-06-22 11:23:12 · 2611 阅读 · 2 评论 -
Linux USB 驱动开发(一)—— USB设备基础概念
在终端用户看来,USB设备为主机提供了多种多样的附加功能,如文件传输,声音播放等,但对USB主机来说,它与所有USB设备的接口都是一致的。一个USB设备由3个功能模块组成:USB总线接口、USB逻辑设备和功能单元:a – 这里的USB总线接口指的是USB设备中的串行接口引擎(SIE);b – USB逻辑设备被USB系统软件看作是一个端点的集合;c – 功能单元被客户软件看作是一个接口...转载 2019-06-27 17:35:01 · 1095 阅读 · 0 评论 -
Qualcomm USB Code Analysis(一) 之 /core/usb.c
前面转载学习了一些在前辈写的文章,了解了相关的原理,但代码是最好的老最师,为了能够深入的学习USB的工作原理,重点还是要深入到代码中去看,因此,从本文开始,主要是跟踪代码学习。带着问题学习:目前,领导给了一个任务,研究,如何实现在不断电的前提下切换USB Host/Device 模式:该问题分解如下:如何实现切换 USB Host / Device 模式如何实现 当前机器无论是...原创 2019-07-02 17:27:34 · 2604 阅读 · 0 评论 -
Linux USB 驱动开发实例(七)—— 基于USB 总线的无线网卡浅析
回顾一下USB的相关知识USB(Universal Serial Bus)总线又叫通用串行外部总线,它是20世纪90年代发展起来的。USB接口现在得到了广泛的应用和普及,现在的PC机中都带有大量的USB接口。它最大的特点就是方便通用、支持热插拔并且可以在一个接口上插上多个设备。当设备用电量小的时候,它还可以充当电源。它的众多优点使得它得到了广泛的应用。在PC机器内部有个USB中央控制器,这个...转载 2019-07-01 16:45:15 · 984 阅读 · 0 评论 -
Linux USB 驱动开发实例(六)—— USB鼠标驱动注解及测试
参考2.6.14版本中的driver/usb/input/usbmouse.c。鼠标驱动可分为几个部分:驱动加载部分、probe部分、open部分、urb回调函数处理部分。一、驱动加载部分static int __init usb_mouse_init(void){ int retval = usb_register(&usb_mouse_driver);//注册鼠标驱动 ...转载 2019-07-01 16:38:29 · 875 阅读 · 0 评论