Linux核心驅動之延時
阿新 • • 發佈:2019-02-20
使用場景:
延後一定的時間執行特定的程式碼
根據延時時間的長短分為“長延時”和“短延時”
長延時:
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