Linux内核和应用的延时函数

1. 应用程序的延时函数

#include <unistd.h>

unsigned int sleep(unsigned int sec) //延时秒

int usleep(unsigned int usec) //延时微秒

2. 驱动程序

睡眠延时,会形成阻塞,导致进程调度(长延时)。使当前进程进入睡眠状态,等待一定的毫秒和微秒时间,同时释放CPU资源

优点:优点不占用 CPU 资源。

缺点:时间精确度低

#include <linux/delay.h>

void ssleep(unsigned int seconds) //秒级别

void msleep(unsigned int msecs) //毫秒级别

3. 驱动程序

忙等待延时,对于长时间的忙等待意味这无谓的耗费着 cpu 的资源

优点:时间精确度高

缺点:占用 CPU 资源

#include <linux/delay.h>

void ndelay(unsigned long x) //纳秒级别

void udelay(unsigned long usecs) //微秒级别

void mdelay(unsigned long msecs) //毫秒级别

注:

udelay 一般适用于一个比较小的 delay,如果你填的数大于 2000,系统会认为你这个是一个错误的 delay 函数,

因此如果需要 2ms 以上的 delay 需要使用 mdelay 函数。

关于精确的延时,建议还是使用高精确的定时器硬件去实现微秒级别延时,因为内核只能提供毫秒级别的定时

器中断

如果有帮助,可顺手点一下关注!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逐梦云间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值