Linux内核驱动之延时

使用场景:

延后一定的时间执行特定的代码

根据延时时间的长短分为“长延时”和“短延时”

长延时:

1.忙等待

while (time_before(jiffies, j1))
    cpu_relax();
这里j1是jiffies延时超时的值

2.让出处理器

while (time_before(jiffies, j1)) {
    schedule();
}
3.超时

#include 
long wait_event_timeout(wait_queue_head_t q, condition, long timeout);
long wait_event_interruptible_timeout(wait_queue_head_t q, condition, long timeout);
短延时:

#include 
void ndelay(unsigned long nsecs);
void udelay(unsigned long usecs);
void mdelay(unsigned long msecs);

参考:http://blog.csdn.net/liangxiaozhang/article/details/8269170


你可能感兴趣的:(linux)