驱动中的延时执行
时间:2006-06-05 来源:chouqiu
延时分长延时(数个jiffies)和短延时(微秒级), 每种又分有忙等待和休眠两种, 前者定时精确, 但占用CPU, 后者减轻CPU负载, 但实际延时时间往往随系统负载不同而变化, 通常都会长于预定的延时时间. 一般情况下选择后者为好!(preemptible内核会使得前者的精确度也受到影响)
需要注意的是, 内核提供的ndelay(unsigned long nsecs), udelay(unsigned long usecs)和mdelay(unsigned long msecs)(定义于linux/delay.h)都是忙等待型, 如果在内核中执行毫秒级以上的延时且要求不精确时应该使用msleep或msleep_interruptable(定义于linux/delay.h), 以减轻系统负载.
需要注意的是, 内核提供的ndelay(unsigned long nsecs), udelay(unsigned long usecs)和mdelay(unsigned long msecs)(定义于linux/delay.h)都是忙等待型, 如果在内核中执行毫秒级以上的延时且要求不精确时应该使用msleep或msleep_interruptable(定义于linux/delay.h), 以减轻系统负载.
相关阅读 更多 +