内核的延时函数

内核的延时函数:

1.

  udelay(); mdelay(); ndelay();实现的原理本质上都是忙等待,ndelay和mdelay都是通过udelay衍生出来的,我们使用这些函数的实现往往会碰到编译器的如下警告————————“implicit declaration of function'udelay”,这往往是由于头文件的使用不当造成的。在include/asm-<??>/delay.h中定义了udelay(),而在include/linux/delay.h中定义了mdelayndelay.

udelay一般适用于一个比较小的delay,如果你填的数大于2000,系统会认为你这个是一个错误的delay函数,因此如果需要2ms以上的delay需要使用mdelay函数。

 

2.

  由于这些delay函数本质上都是忙等待,对于长时间的忙等待意味这无谓的耗费着cpu的资源,因此对于毫秒级的延时,内核提供了msleep,ssleep等函数,这些函数将使得调用它的进程睡眠参数指定的时间。

3.

  睡眠延时函数:msleep(n).

你可能感兴趣的:(【linux,内核】)