Chinaunix首页 | 论坛 | 博客
  • 博客访问: 189913
  • 博文数量: 26
  • 博客积分: 1425
  • 博客等级: 上尉
  • 技术积分: 270
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-14 23:54
文章存档

2010年(26)

我的朋友

分类: 嵌入式

2010-09-27 20:51:07

USB mass storage porting
 
一、基本检测原理
 
  当usb插入时kenel会通过NETLINK机制向vold发消息。vold会调用NetlinkHandler:onEvent()进行处
  理。这些event分block,switch,battery,power_supply,其中block指的是usb/sdcard这一类
  usbmassstorage; switch指的是headset,usb wire这类设备。
  这时会调到VolumeManager::handleBlockEvent()处理.
 
二、流程分析
  USB mass storage也是通过Vold来连接到PC的。
  
  Vold会读取/sys/devices/virtual/switch/usb_mass_storage/state的状态,这个状态是online或
  offline。
 
  根据状态的不同调用vm->notifymsConnected()发送信息到socket;
  
  然后MountService和VolumeManager会处理相关信息。
  
  如果处理成功,会连接/sys/devices/platform/fsl-usb2-udc/gadget/lun0/file到PC。
 
 
 
阅读(2678) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~