USB
文章平均质量分 88
shuai_wen
这个作者很懒,什么都没留下…
展开
-
USB gadget driver: adb
1. init clue:/* 1]create data structure: adb_dev * 2]调用misc_register(&adb_device); **/struct adb_data { bool opened; bool enabled;};struct adb_dev { struct usb_function原创 2013-09-06 16:51:39 · 2247 阅读 · 0 评论 -
Android 下的usb框架及功能点
有关USB android框架的链接http://blog.sina.com.cn/s/articlelist_1627432177_0_1.htmlICS4.0下Framework层的usb框架 Android 下的usb主要工作还是在android的framework层。主要有以下几个文件:1.1UsbDeviceManager.java/高转载 2013-12-19 17:44:04 · 2710 阅读 · 0 评论 -
android下usb框架系列文章---(2)Usb mass_storage turn on的过程
下面从framework层的ui来看一下插入usb后share的过程,这个动作的触发是从status bar下面弹出的usb connect开始的。frameworks/base/packages/SystemUI通过一系列反跟踪,这个packages是系统级别的,用来展示系统的UI,当插入usb线时,会在下方的status bar上会显示usb连接图标。 USB con转载 2013-12-19 17:50:26 · 4141 阅读 · 0 评论 -
USB gadget: mass_storage's android layer
USB gadget worked as mass_storage:kernel层数据的发送:static void android_work(struct work_struct *data){ struct android_dev *dev = container_of(data, struct android_dev, work); struct usb_co原创 2013-12-22 16:42:39 · 1836 阅读 · 0 评论 -
Android Uevent 分析,从kernel到framework
Uevent是内核通知android有状态变化的一种方法,比如USB线插入、拔出,电池电量变化等等。其本质是内核发送(可以通过socket)一个字符串,应用层(android)接收并解释该字符串,获取相应信息。一、Kernel侧:UEVENT的发起在Kernel端,主要是通过函数int kobject_uevent_env(struct kobject *kobj, enum kobj转载 2013-12-23 10:11:11 · 1030 阅读 · 0 评论 -
android之通过USB插拔流程来了解android UEvent
UEvent,全称User Space Event,是kernel通知用户空间的一种机制;在android中很多地方使用到了UEvent机制,如图:像HDMI,Battery,USB相关等;当我们需要接受底层的UEvent的时候,我们就需要注册一个UEventObserver,上层是如何处理这一过程的呢?来看看先;比如当我们插拔usb的时候,手机的notification通知是如何转载 2013-12-23 13:35:27 · 2498 阅读 · 0 评论 -
Anroid vold浅析
在android3.1以上的系统中,有MTP的挂载。但是我的介绍还是关于UMS大容量存储的数据访问方式,我们没有在我们新系统中采用MTP方式。顺便提一句,在merge到android4.2.2上以后,源码中有关于多用户的特性。对挂载还是有一定的影响的。要想去掉多用户,其实改动大但是不多。一直在做vold的开发,现在有时间刚好总结一下。init.rc中有这么一段:转载 2013-12-23 13:45:46 · 1790 阅读 · 0 评论 -
USB driver调试中遇到的问题
1.当USB拔出后,USB图标不消失The USB indication will not disappear when the usb cable plug out after plug the cable in and out ten more times. The indication show it is connected withUSB£¬ but actually th原创 2014-02-10 15:34:26 · 7063 阅读 · 0 评论 -
Android之 MTP框架和流程分析 (1)
原文: http://www.cnblogs.com/skywang12345/p/3474206.html 概要本文的目的是介绍Android系统中MTP的一些相关知识。主要的内容包括:第1部分 MTP简介 对Mtp协议进行简单的介绍。第2部分 MTP框架 介绍Android系统下MTP的框架。第3部分 MTP启动流转载 2014-11-09 16:26:00 · 1182 阅读 · 0 评论 -
Android之 MTP框架和流程分析 (2)
原文来自:http://www.cnblogs.com/skywang12345/p/3474206.html第三四五部分一. MTP驱动注册MTP驱动文件是drivers/usb/gadget/f_mtp.c。它通过下面的代码会映射到文件节点"/dev/mtp_usb"中。 1 static const char mtp_shortname[] = "mtp_usb";转载 2014-11-09 16:32:18 · 1639 阅读 · 1 评论 -
Android之 MTP框架和流程分析 (3)
前面转发了篇博客介绍了MTP, 偏重于上层,已经很清楚了。这篇侧重于底层,按照一定的流程讲。 1. 代码位置packages/providers/MediaProvider/src/com/android/providers/media/MtpReceiver.javapackages/providers/MediaProvider/src/com/android/provider转载 2014-11-09 16:37:26 · 4054 阅读 · 0 评论 -
USB枚举过程图示分析
本文描述了通过USB Tracker追踪USB设备的Windows XP上的枚举过程,在读该篇文章之前首先阅读USB枚举过程能够对USB枚举过程中的各个概念建立更准确的理解。另外Windows系统上USB枚举的详细过程可以参考“How does USB stack enumerate a device?”(CSDN禁止插入该链接,google吧)下面图1是USB枚举过程的流程图,图2是转载 2014-12-01 22:19:27 · 3449 阅读 · 0 评论 -
linux usb枚举过程分析【host】
当守护程序第一次运行或usb port上状态发生变化,守护进程被唤醒都会运行hub_events函数,这个函数在usb系统中处理核心位置,usb的枚举过程就是由它完成,usb枚举过程流程图如图1所示;图1 usb枚举流程图 由于hub_events函数比较长这里分几个部分进行讲解:[html] view plaincopy转载 2014-12-01 22:25:58 · 2406 阅读 · 0 评论 -
USB2.0速度识别
我们知道USB2.0向下兼容USB1.x,即高速2.0的hub能支持所有的速度类型的设备,而USB1.x的hub不能支持高速设备(High Speed Device)。因此,如果高速设备挂到USB1.x的hub上,那该设备只能工作在全速模式下。不管是hub还是设备(device),对于速度的区分是非常重要的,否则,后续的通信根本无法进行。全速和低速识别 根据规范,全速(Ful转载 2014-12-06 21:48:55 · 3258 阅读 · 0 评论 -
USB枚举详细过程剖析
(1)集线器检测新设备 主机集线器监视着每个端口的信号电压,当有新设备接入时便可觉察。(集线器端口的两根信号线的每一根都有15kΩ的下拉电阻,而每一个设备在D+都有一个1.5kΩ的上拉电阻。当用USB线将PC和设备接通后,设备的上拉电阻使信号线的电位升高,因此被主机集线器检测到。)(2)主机知道了新设备连接后 每个集线器用中断传输来报告在集线器上的事件。当主机知道了这个事件,它给集转载 2014-12-06 22:15:25 · 22291 阅读 · 2 评论 -
ADB 链接
http://www.jizhuomi.com/android/environment/226.htmlAndroid开发工具ADB教程之四:Device端分类标签: ADB 本文为大家梳理Device端adbd的运作原理。在此之前最好是已经看了前三篇文章:ADB概论、HOST端和Dalvik虚拟机之jdwp线程。这里讲清楚了 adb devices这个命令的执行流程,特别是jdw转载 2014-12-24 22:44:17 · 773 阅读 · 0 评论 -
USB 海量存储传输协议
参见:USB Mass StorageClass Bulk-Only Transport1 规范概述和范围前提条件:熟悉USB协议规范和USB海量存储类规范概述。本规范只描述块传输,也就是仅通过块类型(而不是控制或中断类型的端点)的端点传输命令、数据和状态。本规范仅使用默认的通道清除块端点上的STALL条件,发出相关的请求如下。本规范不需要使用中断端点。本规范定义了逻辑单元,该逻辑转载 2015-06-05 07:32:43 · 2456 阅读 · 0 评论 -
USB海量存储规范概述
本文介绍USB海量存储规范概述,主要是如下文档的简单翻译和总结。 USB Mass Storage ClassSpecification Overview, Rev. 1.2, June 23, 2003 http://www.usb.org/developers/devclass_docs/usb_msc_overview_1.2.pdf转载 2015-06-05 07:31:03 · 1267 阅读 · 0 评论 -
android下usb框架系列文章---(5)Usb setting 中tethering 设置流程
Usbsetting 中tethering 设置流程 一 资源位置及入口文件USB tethering, usb_tethering_button_textXml/tether_prefs.xml------usb_tether_settings,布局文件packages/apps/Settings/AndroidManifest.xml Te转载 2013-12-19 18:15:50 · 4852 阅读 · 0 评论 -
android下usb框架系列文章---(7)android-kernel gadget框架.doc
什么是usb gadget?当把pad/手机插到pc上时,可以作为u盘、网卡等usb功能设备呈现,这个就叫做gadget。可以理解为usb 从设备端,和host对应。一 Gadget框架结构gadget框架.doc" title="android下usb框架系列文章---(7)android-kernel gadget框架.doc" height="222" width="343">转载 2013-12-19 18:13:33 · 4178 阅读 · 1 评论 -
kernel cannot startup
引子:通过OTG连接USB 键盘,启动到这里就不再输出log也不能通过串口输入,但此时系统没有死掉,还响应中断。[ 15.809686:0] ALSA device list:[ 15.812931:0] #0: ns115-audio假设系统死锁在某个地方,如果此时能触发一个crash,就能分析出那个进程被中断打断,就是这个进程的进入了死锁状态;[原创 2013-09-24 11:27:14 · 1794 阅读 · 0 评论 -
USB gadget driver framework
USB gadget driver的框架可分为三部分:UDC-core, composite.c and android.c,其中 composite.c是核心,其他两部分都要bind 到 composit上。1. UDC-core结构体usb_gadget中包含指向usb_ep的link head,通过该link head,可以访问所有的usb_ep, usb_ep中包含了具体的,最原创 2013-09-04 15:42:05 · 3562 阅读 · 1 评论 -
关于android USB Host编程的一些总结
以前没有接触过android USB Host编程。来到这个公司后,一边做着测试项目,一边又得研究着这个组长临时给的任务。 他开始说的是,想实现android手机与PC端通过USB 编程方式进行连接,这样写一个android程序装在手机上,插上USB连上电脑,在电脑上就可以管理手机文件了。研究了两个多星期,查了一些资料,也试了不少方法,后来发现似乎走入了误区,就写一下自己的总结,希转载 2013-11-09 12:49:36 · 1846 阅读 · 1 评论 -
USB Host
In this documentAPI OverviewAndroid Manifest RequirementsWorking with devicesDiscovering a deviceObtaining permission to communicate with a deviceCommunicating with a deviceTerminating communi转载 2013-11-09 12:53:53 · 1335 阅读 · 0 评论 -
关于Android usb host 总结
前段时间因为项目需要,做了一段时间关于Android USB Host的开发,最近闲下来总结一下。Android模拟器无法测试USB,大部分的平板都不能使用usb host api,这里使用的测试平板是华硕的TF101,有一款可以测试Android平板是否支持USB HostAPI的apk http://download.csdn.net/download/limitemp/4837706转载 2013-11-09 12:48:11 · 2649 阅读 · 0 评论 -
USB Accessory
In this documentChoosing the Right USB Accessory APIsInstalling the Google APIs add-on libraryAPI OverviewUsage differences between the add-on library and the platform APIsAndroid Mani转载 2013-11-09 12:51:27 · 1568 阅读 · 0 评论 -
Android框架理解之USB
以下理解只代表我个人此时的观点,并没有义务进行更新通知,内容如有不妥、交流请致信share1999@gmail.com 目的是看一下android下的usb和linux下的usb有什么区别?如果现在就能回答,就不用往下看了。 我的理解是android下没有usb。一 Android诞生的背景 乍一看这个话题与android框架似乎毫无关系,但是每转载 2013-11-12 09:46:30 · 3006 阅读 · 1 评论 -
USB android 层链接
U盘挂载:http://blog.csdn.net/new_abc/article/category/1359203http://blog.sina.com.cn/s/blog_6100a4f10101ee3t.html原创 2013-11-12 10:34:45 · 964 阅读 · 4 评论 -
USB gadget driver: ACM
以 init为线索:acm_function_init -> gserial_setup(cdev->gadget, MAX_ACM_INSTANCES);int gserial_setup(struct usb_gadget *g, unsigned count){ struct usb_cdc_line_coding coding; for (i =原创 2013-09-05 14:32:29 · 5801 阅读 · 0 评论 -
Android SDCard Mount 流程分析(一)
前段时间对Android 的SDCard unmount 流程进行了几篇简短的分析,由于当时只是纸上谈兵,没有实际上的跟进,可能会有一些误导人或者小错误。今天重新梳理了头绪,针对mount的流程再重新分析一次。 本篇大纲android 系统如何开机启动监听mount服务默认设备节点在Android 系统的哪个目录vold.fstab 配置文件的分析 vold 里面启动页面main做转载 2013-12-14 19:40:30 · 768 阅读 · 0 评论 -
Android SDCard UnMounted 流程分析(三)
前一篇讲到SDCard unmout onEvent 发送socket 到框架层,接下来分析框架层得到数据后的流程。 MoutService当android 系统启动时,system将MountService 添加到启动服务里面,而MountService 会开启一个线程来运行NativeDaemonConnector,由它来监听vold的消息,代码: mConnector = new转载 2013-12-14 19:43:28 · 1086 阅读 · 0 评论 -
Vold工作流程分析學習
一 Vold工作機制分析 vold進程:管理和控制Android平台外部存儲設備,包括SD插撥、掛載、卸載、格式化等; vold進程接收來自內核的外部設備消息。Vold框架圖如下: Vold接收來自內核的事件,通過netlink機制。 Netlink 是一種特殊的 socket;转载 2013-12-14 16:29:12 · 1022 阅读 · 0 评论 -
Android SDCard Mount 流程分析(二)
上一篇关于Mount的分析,分析了main的作用和一些挂载系统的分析。下面深入分析Mount的流程走法。 Mount流程分为两个部分 主动挂载(插入SDCARD或者USB硬盘时系统自动挂载)手动挂载(卸载SDCARD或者USB硬盘后,再点击加载设备的手动挂载) 不同挂载走的流程并不相同,比如手动挂载是由上层发命令给vold 执行挂动作,而主动挂载是由kernel 分命令给v转载 2013-12-14 19:41:48 · 1136 阅读 · 0 评论 -
USB gadget driver: mass storage
1. based on init function clue;struct mass_storage_function_config { struct fsg_config fsg; struct fsg_common *common;}; struct fsg_config { unsigned nluns; st原创 2013-09-06 13:23:44 · 3945 阅读 · 4 评论 -
android下usb框架系列文章---(3)Storage框架整理
Storage框架整理一 storage功能相关模块MountService.java base/services/java/com/android/server/MountService.javaPackageManagerService.java base/services/java/com/android/serve转载 2013-12-19 17:57:30 · 2301 阅读 · 1 评论 -
android下usb框架系列文章---(4)android下的光盘功能控制
一 使能光盘功能 1. 1内核项中增加cd-rom文件系统的支持 alps/mediatek/config/xxxx/autoconfig/kconfig/project # # CD-ROM/DVD Filesystems # CONFIG_ISO9660_FS=y CONFIG_JO转载 2013-12-19 18:00:32 · 5763 阅读 · 0 评论 -
android下usb框架系列文章---(6)UsbDeviceManager及功能设置流程.doc
一 光盘bicr的流程(UsbDeviceManager.java)1.1光盘backfile的控制sys.usb.mtk_bicr_support:这个值系统变量用来标识是否显示光盘内容,两个值yes,yes_hide.这个值的初始化发生在UsbDeviceManager.java文件里if(nativeInitUMSproperty()) SystemPropert转载 2013-12-19 18:08:59 · 3534 阅读 · 0 评论 -
USB协通讯议--深入理解
0. 基本概念 一个【传输】(控制、批量、中断、等时):由多个【事务】组成; 一个【事务】(IN、OUT、SETUP):由一多个【Packet】组成。 USB数据在【主机软件】与【USB设备特定的端点】间被传输。【主机软件】与【USB设备特定的端点】间的关联叫做【pipes】。一个USB设备可以有多个管道(pipes)。1. 包(Packet转载 2015-06-05 07:42:39 · 1251 阅读 · 0 评论