延时函数
linux 驱动开发过程中,经常会用到延迟函数:udelay,mdelay,usleep,msleep,usleep_range。这几个延时函数优先使用usleep_range其次是usleep最后udelay。
1、delay和sleep的区别
delay,属于忙等待函数CPU空转,在延迟过程中无法运行其他任务,这个时间是准确的,需要等待多少实际就会等待多少时间;
sleep,属于休眠函数,是让当前进程休眠,让出CPU给其它进程使用,等到时间到了之后再唤醒,不能用于中断上下文中。
usleep_range 用于非原子环境的睡眠,目前内核建议用这个函数优先替换之前udelay,休眠让出CPU资源,用延时最小时间将进程该唤醒