1. 程式人生 > >Linux核心驅動之延時

Linux核心驅動之延時

使用場景:

延後一定的時間執行特定的程式碼

根據延時時間的長短分為“長延時”和“短延時”

長延時:

1.忙等待

while (time_before(jiffies, j1))
    cpu_relax();
這裡j1是jiffies延時超時的值

2.讓出處理器

while (time_before(jiffies, j1)) {
    schedule();
}
3.超時
#include <linux/wait.h>
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 <linux/delay.h>
void ndelay(unsigned long nsecs);
void udelay(unsigned long usecs);
void mdelay(unsigned long msecs);

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