2013年(10)
发布时间:2013-01-12 20:02:50
void *usb_buffer_alloc (struct usb_device *dev, size_t size, gfp_t mem_flags, dma_addr_t *dma); 这个函数是 usbcore 提供的 . 从名字上就能知道它是用来申请内存的 ,内核中给出了一些介绍。 第一个参数就是 struct usb_device 结构体的指针 , 第二个参数申请的 buffer 的大小 , 第三个参数 ,GFP_KERNEL, 是一个内存申请的 flag, 通常内存申请都用这个 flag, 除非是中断上下文 , 不能睡眠 , 那就得用 GPF_ATOMIC,......【阅读全文】
发布时间:2013-01-08 22:25:32
今天内容:USB驱动 1. 在USB设备组织结构中,从上到下分为设备(device)、配置(config)、接口(interface)和端点(endpoint)四个层次。 2. 设备地代表了一个插入的USB设备,在内核使用数据结构 struct usb_device来描述。 3. 一个USB设备可以有......【阅读全文】
发布时间:2013-01-08 20:19:53
linux usb 鼠标 谨以此文纪念过往的岁月 4.2.1 usb_endpoint_is_int_in判断端点是否为中断in类型static inline int usb_endpoint_is_int_in(const struct usb_endpoint_descriptor *epd){ return (usb_endpoint_xfer_int(epd) && usb_endpoint_dir_in(epd));}static inline int usb_endpoint_xfer_int(const struct ......【阅读全文】
发布时间:2013-01-08 19:28:40
Linux USB驱动框架分析(一) 初次接触与OS相关的设备驱动编写,感觉还挺有意思的,为了不至于忘掉看过的东西,笔记跟总结当然不可缺,更何况我决定为嵌入式卖命了。好,言归正传,我说一说这段时间的收获,跟大家分享一下Linux的驱动开发。但这次只先针对Linux的USB子系统作分析,因为周五研讨老板催货。当然,还会顺带提一下其他的驱动程序写法。 事实上,Linux的设备驱动都遵循一个惯例——表征驱动程序(用driver更贴切一些,应该称为驱动器比较好吧)的结构体,结构体里面应......【阅读全文】