摘要: http://blog.csdn.net/liwendovo/article/details/7793487Linux 2.6内核使用了不少工作队列来处理任务,他在使用上和 tasklet最大的不同是工作队列的函数可以使用休眠,而tasklet的函数是不允许使用休眠的。工作队列的使用又分两种情况,一种是利用系统共享的工作队列来添加自己的工作,这种情况处理函数不能消耗太多时间,这样会影响共享队列中其他任务的处理;另外一种是创建自己的工作队列并添加工作。(一)利用系统共享的工作队列添加工作:Ø 第一步:声明或编写一个工作处理函数void my_func();Ø 第二步:创建一个 阅读全文
posted @ 2013-08-25 16:43 kuangniuniu 阅读(8599) 评论(0) 推荐(2) 编辑
摘要: http://blog.csdn.net/huguohu2006/article/details/6396866oremap_nocache()函数我想大家都不陌生,现在我就把此函数分析一下,不当之处请大家谅解!对于EHCI 来说它把它本身的寄存器和内存映射到内存中区!但是站在CPU的角度来说,我们无法直接访问这块内存空间,需要将设备的总线地址映射成一个cpu可访问的线性地址!调用ioremap_nocache()函数之后,返回一个线性地址,此时CPU 可以访问设备的内存(已经将其映射到了线性地址空间中了),此时CPU可以使用访问内存的指令访问设备的内存空间(host bridge 判断访问物 阅读全文
posted @ 2013-08-25 16:30 kuangniuniu 阅读(610) 评论(0) 推荐(0) 编辑
摘要: 一直从事Qualcomm平台的手机开发,以后会陆续总结Q平台的开发经验,与大家分享 阅读全文
posted @ 2013-08-25 14:49 kuangniuniu 阅读(184) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/dreamxu/article/details/5866593一、定义:linux/include/linux/completion.h 13struct completion { 14 unsigned int done; 15 wait_queue_head_t wait; 16};二、作用:虽然信号量可以用于实现同步,但往往可能会出现一些不好的结果。例如:当进程A分配了一个临时信号量变量,把它初始化为关闭的MUTEX,并把其地址传递给进程B,然后在A之上调用down(),进程A打算一旦被唤醒就撤销给信号量。随后... 阅读全文
posted @ 2013-08-25 14:48 kuangniuniu 阅读(446) 评论(0) 推荐(0) 编辑