WUCANADA IP属地:美国

文章 关注 粉丝 访问 贡献
 
共 28 篇文章
显示摘要每页显示  条
Linux设备驱动子系统第四弹-USB gadget.比如手机用USB线插入PC后,手机就是USB Gadget。gadget文件夹里存放了各芯片厂商支援的USB Gadget控制器驱动,比如支持Mavell的PXA9XX系列的USB Gadget驱动为mv_gadget.c,其架构如下图所示,通过platform_data和resource的到gadget芯片物理地址,中断号等 (橙色)初始化gadget芯片和相关数据 (浅灰色)...
USB子系统初始化的时候就会注册usb_generic_driver, 它的结构体类型是usb_device_driver,它是USB世界里唯一的一个USB设备驱动,区别于struct usb_driver USB驱动。HCD解析urb,拿到数据与USB设备通信。hub_port_connect_change()是核心函数,以端口发现有新的USB设备插入为例,USB Hub为USB设备做了以下几步重要的工作,注意这里所谓的USB设备...
linux-2.6.25/drivers/usb/core/driver.c中,我们可以找到两种register driver的方式,分别为usb_register_driver()和usb_register_device_driver()。其实,对于usb_register_driver()可以看作是usb设备中的接口驱动,而usb_register_device_driver()是一个单纯的USB设备驱动。首先,可以通过container_of()将封装的struct device, s...
//这个是在设备控制器初始化的时候注册中断处理程序的语句:retval = request_irq(IRQ_USBD, s3c2410_udc_irq, IRQF_DISABLED, gadget_name, udc); 最后一个参数udc是一个struct s3c2410_udc.udc_write(tmp, S3C2410_UDC_EP_INT_REG);//以上代码才真正的将urt的数据写入USB设备控制器端点0的FIFO,这里有一个条件就是S3C2410_UDC_EP0_CSR_IPKRD...
struct usb_gadget *gadget = cdev->gadget;以四个数据结构为基础:struct usb_composite_driver struct usb_composite_dev struct usb_gadget_driver struct usb_gadget 两个register函数为导向: usb_composite_register(&zero_driver) usb_gadget_register_driver(&composite_driver)(2) 过程方向 UDC层-->USB...
Linux USB Gadget--软件结构Linux USB Gadget--软件结构 2013-07-22 16:06:36 标签:linux usb gadget USB Gadget是分层的软件结构,本文分析的是2.6.32.2版本的Gadget软件结构,这个软件结构与以前版本的变化很大。struct usb_gadget gadget;而struct usb_gadget_driver是在USB设备层中初始化的,他是通过usb_gadget_register_d...
s3c2410_udc_mach_info结构在udc.h中定义:struct s3c2410_udc_mach_info { void (*udc_command)(enum s3c2410_udc_cmd_e); void (*vbus_draw)(unsigned int ma); unsigned int vbus_pin; unsigned char vbus_pin_inverted; }; 那么这个指针又是什么时候赋值的,是在s3c2410_udc_probe函数中。所以在注册g...
struct bus_type usb_serial_bus_type = { .name = "usb-serial", .match = usb_serial_device_match, .probe = usb_serial_device_probe, .remove = usb_serial_device_remove, .drv_attrs = drv_attrs,};至此,打开设备和读设备的流程已经写完 最后看serial_write函数,该函数对应了usb_serial_generic_writeint usb_serial_gen...
int usb_register_dev(struct usb_interface *intf, struct usb_class_driver *class_driver){//如果创建usb设备错误,则清空usb_minors if (IS_ERR(intf->usb_dev)) { down_write(&minor_rwsem); usb_minors[minor] = NULL; intf->minor = -1; up_write(&minor_rwsem); retval = PT...
设备链表包含各种系统中的 USB 设备以及这些设备的所有接口,驱动链表包含 USB 设备驱动程序(usb device driver)和 USB 驱动程序(usb driver)。USB 设备驱动程序(usb device driver)和 USB 驱动程序(usb driver)的区别是什么?比如鼠标驱动程序,usb_mouse_init 函数将通过 usb_register(&usb_mouse_driver) 将鼠标驱动程序注册到 ...
帮助 | 留言交流 | 联系我们 | 服务条款 | 下载网文摘手 | 下载手机客户端
北京六智信息技术股份有限公司 Copyright© 2005-2024 360doc.com , All Rights Reserved
京ICP证090625号 京ICP备05038915号 京网文[2016]6433-853号 京公网安备11010502030377号
返回
顶部