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-09 14:28:16
1、usb设备与驱动程序的匹配过程 a.先安装驱动,后插入设备 这种情况下,usb host controller完成对设备的枚举过程后,将设备的信息封装到一个usb_interface结构体中。usb core根据该结构体提供的设备信息(Vendor_id & Product_id)去遍历所有的驱动程序,找到支持该设备的驱动,并调用该驱动中的probe函数。最终将该驱动与设备关联,完成驱动程序的注册。 b.先插入设备,后安装驱动 ......【阅读全文】
发布时间:2013-01-09 10:27:06
文章出处:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/21/2602015.html 一、信号量 信号量又称为信号灯,它是用来协调不同进程间的数据对象的,而最主要的应用是共享内存方式的进程间通信。本质上,信号量是一个计数器,它用来记录对某个资源(如共享内存)的存取状况。一般说来,为了获得共享资源,进程需要执行下列操作: (1) 测试控制该资源的信号量。 (2) 若此信号量的值为正,则允许进行使用该资源。进程将信号量减1。 (3) ......【阅读全文】
发布时间:2013-01-08 22:25:32
今天内容:USB驱动 1. 在USB设备组织结构中,从上到下分为设备(device)、配置(config)、接口(interface)和端点(endpoint)四个层次。 2. 设备地代表了一个插入的USB设备,在内核使用数据结构 struct usb_device来描述。 3. 一个USB设备可以有......【阅读全文】