USB总线驱动程序
2015-08-25 15:01
183 查看
USB驱动程序框架:
app:
------------------------------------------------------------------------------------
USB设备驱动程序
内核 -------------------------------------------------------------------------
USB总线驱动程序
------------------------------------------------------------------------------------
USB主机控制器
UHCI OHCI EHCI
硬件 -----------------------------------------------
USB设备
USB总线驱动程序有三种规范:
UHCI: intel 低速(1.5Mbps)/全速(12Mbps)
OHCI: microsoft 低速、全速
EHCI: 高速(480Mbps)
USB总线驱动程序的作用
1.识别USB设备
1.1分配地址,并高速USB设备(set address)
1.2发出命令获取描述符
2.查找并安装对应的设备驱动程序
3.提供USB读写函数
把USB设备接到开发板上,看输出信息:
usb 1-1:new full speed USB device using s3c2410-ohci and address 2 验证了上述说法。
在内核的drivers目录下查找关键字找到这句话:
grep "USB device using" * -nR 后找到 usb/core/hub.c:2657:
"%s %s speed %sUSB device using %s and address %d\n",
依次找到函数的调用关系:
hub_irq
kick_khubd
hub_thread
hub_events
hub_port_connnect_change
choose_address(udev); //给新设备分配编号(地址)
hub_port_init //usb 1-1:new full speed USB device using s3c2410-ohci and address 2
hub_set_address //把编号(地址)告诉USB设备
usb_get_device_descriptor(udev,8); //获取设备描述符
app:
------------------------------------------------------------------------------------
USB设备驱动程序
内核 -------------------------------------------------------------------------
USB总线驱动程序
------------------------------------------------------------------------------------
USB主机控制器
UHCI OHCI EHCI
硬件 -----------------------------------------------
USB设备
USB总线驱动程序有三种规范:
UHCI: intel 低速(1.5Mbps)/全速(12Mbps)
OHCI: microsoft 低速、全速
EHCI: 高速(480Mbps)
USB总线驱动程序的作用
1.识别USB设备
1.1分配地址,并高速USB设备(set address)
1.2发出命令获取描述符
2.查找并安装对应的设备驱动程序
3.提供USB读写函数
把USB设备接到开发板上,看输出信息:
usb 1-1:new full speed USB device using s3c2410-ohci and address 2 验证了上述说法。
在内核的drivers目录下查找关键字找到这句话:
grep "USB device using" * -nR 后找到 usb/core/hub.c:2657:
"%s %s speed %sUSB device using %s and address %d\n",
依次找到函数的调用关系:
hub_irq
kick_khubd
hub_thread
hub_events
hub_port_connnect_change
choose_address(udev); //给新设备分配编号(地址)
hub_port_init //usb 1-1:new full speed USB device using s3c2410-ohci and address 2
hub_set_address //把编号(地址)告诉USB设备
usb_get_device_descriptor(udev,8); //获取设备描述符
相关文章推荐
- HDU4320——GCD——Arcane Numbers 1
- Testlink集成Jira时如果出现Error咋办?
- SpringMVC自带的定时器,超好用,基于注解
- 20150825数据类型以及数据转换
- 如何让input之间无空隙
- 一些数学公式
- git克隆/更新/提交代码步骤及示意图
- js特效之_滚动标题
- Autonomous Intelligent Robotics
- RelativeLayout进行纯代码布局的理论基础
- python logging usage
- Java.lang的研究(分析包含的重要类和接口)
- 面向对象之继承(类与类之间的关系)
- H5移动前端性能优化
- Linux文件系统iNode及stat命令
- 用Java开源项目JOONE实现人工智能编程
- IOS 学习 创建表格的方法
- oracle删除表空间后 再创建同名表空间报错 OSD-04010
- [LeetCode] Edit Distance
- 微信活动页面动态加载以及封装