发布时间:2012-12-19 11:33:14
USB urb (USB request block) 内核使用2.6.29.4 USB 设备驱动代码通过urb和所有的 USB 设备通讯。urb用 struct urb 结构描述(include/linux/usb.h )。 urb以一种异步的方式同一个特定USB设备的特定端点发送或接受数据。一个 USB 设备驱动可根据驱动的需要,分配多个 urb 给一个端点或重用单个 urb 给多个不同的端点。设备中的每个端点都处理一个 urb 队列, 所以多个 urb 可在队列清空之前被发送到相同的端点。 一个 urb 的典型生命循环如下: (1)被创建......【阅读全文】
发布时间:2012-12-19 11:33:06
内核使用2.6.29.4USB设备其实很复杂,但是Linux内核提供了一个称为USB core的子系统来处理了大部分的复杂工作,所以这里所描述的是驱动程序和USB core之间的接口。在USB设备组织结构中,从上到下分为设备(device)、配置(config)、接口(interface)和端点(endpoint)四个层次。对于这四个层次的简单描述如下: 设备通常具有一个或多个的配置 配置经常具有一个或多个的接口 接口通常具有一个或多个的设置 接口没有......【阅读全文】
发布时间:2012-12-19 11:31:56
Linux设备驱动程序学习(16)-USB 驱动程序(一) 从此文档开始,内核使用2.6.29.4 很久没有写《LDD3》的学习笔记了,趁着做项目的机会,学习一下USB的驱动程序,并写学习笔记。。如果刚开始接触USB,会感觉无从下手,这种感觉就像我第一次接触嵌入式Linux一样。所以要对USB的硬件原理、数据传输和在USB电缆上传输的数据格式有一定的了解。所以推荐一篇《实用USB术语详解》。再去CEPARK ( China Electronics Park ) 电子园看完上面的经典教程和基础知识。看了上面的文章,您会对USB有一定的认识(如果你再写一个简单的在51上的USB固件就更好了),......【阅读全文】
发布时间:2012-12-09 22:00:06
此情況適用於:先加載devices,後加driver時候 driver_register->bus_add_driver->driver_attach->__driver_attach->driver_match_device-> static inline int driver_match_device(struct device_driver *drv, struct device *dev){ return drv->......【阅读全文】
发布时间:2012-12-09 17:47:30
轉:http://blog.csdn.net/gorilla0123/article/details/6010991 8 of_platform总线上gianfar设备驱动添加,并绑定设备e0024000.ethernet和e0025000.ethernet: /driver/net/gianfar.c module_init(gfar_init); gfar_init à of_register_platform_driver(&gfar_driver) à of_register_driver à driver_register à bus_add_dr......【阅读全文】