熟悉又陌生的udelay
内核开发中经常用到延时函数,最熟悉的是mdelay msleep。虽然经常会使用,但是具体实现却不了解,今天来研究下。这2个函数在实现上有着天壤之别。msleep实现是基于调度,延时期间调用schedule_timeout产生调度,待时间到期后继续运行,该函数实现在kernel/timer.c中。由于linux内核不是实时系统,因此涉及调度的msleep肯定不会精确。今天不细说msleep,有时间再来分析它,今天重点来学习mdelay。mdelay是使用最多的延时函数。它的实现是忙循环,利用了内