Linux 内核延时

linux的时间概念:

Linux系统定时器是可编程的频率中断处理器,此频率为每秒的定时器节拍数,对应内核变量HZ


HZ是一个与体系结构相关的常数:

Linux为大多数平台提供HZ值范围为50-1200
x86 PC平台默认为1000,我们的内核为200


内核中有一个非常重要的全局变量:jiffies

它是一个无符号32位整数,用来记录自内核启动以来的时钟滴答总数(即每隔1/HZ秒加1)

时间延时:

在驱动编程中经常会用到一些延时的情况根据延迟时间的长短分为长延迟和短延迟
短延迟-不依赖于时钟滴答,与具体的CPU类型相关
#include <linux/delay.h>
void ndelay(unsigned long nsecs); //纳秒级延时
void udelay(unsigned long usecs); //微秒级延时
void mdelay(unsigned long msecs); //毫秒级延时
【注】:这三个延时函数使任务进入忙等待,一般不太长的时间可以用它
还有一种毫秒级延迟方法,此方法不涉及忙等待, 会导致进程睡眠,函数如下(其中带interruptible为 可提前唤醒)
void msleep(unsigned int millisecs);/*毫秒*/
unsigned long msleep_interruptible(
unsigned int millisecs);/*毫秒*/
void ssleep(unsigned int seconds);/*秒*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Eric_Xi_BJ

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

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

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

打赏作者

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

抵扣说明:

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

余额充值