04-Linux中的延時操作函數

本系列文章主要講Linux中的中斷和時間管理,文章機構如下:
01 - 驅動中的中斷處理
02 - 中斷下半部 tasklet
03 - 中斷的下半部 workqueue
04 - Linux中的延時操作函數
05 - Linux硬件定時 jiffies
06 - Linux 低分辨率定時器
07 - Linux高分辨率定時器

1 延時函數

 在硬件操作中經常會用到延時,內核提供了一組延時操作函數

#define mdelay(n)	udelay((n) * 1000)	// ms級延時
void udelay(unsigned long usecs)		// us級延時
void ndelay(unsigned long nsecs)		// ns級延時

 這些延時函數都是忙等待延時,是靠白白消耗CPU的時間來得到延時的,如果沒有特殊的理由不推薦使用這些函數來獲得較長的延時時間

2 休眠延時函數

 如果延時時間較長有沒有特殊的要求,可以使用休眠延時

void msleep(unsigned int msecs)			// ms級延時,休眠時不能被信號打斷
void ssleep(unsigned int seconds)		//  s級演示,休眠時不能被信號打斷

unsigned long msleep_interruptible(unsigned int msecs)	// 休眠時可以被信號打斷
發佈了57 篇原創文章 · 獲贊 65 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章