linux 时钟定时器

linux系统有两个时钟:一个是由电池驱动的RTC,被称为硬件时钟,
断电后还是继续计时。
另一个是内核时钟或者软件时钟,软件根据时钟中断来计数,断电后不存在。


时钟周期:晶体振荡器在1秒内产生的时钟脉冲个数。


时钟中断:当时钟计数器减到0时就会产生一次中断。


时钟中断频率(HZ):1秒内timer产生的时钟中断个数。






jiffy作为全局变量用来记录自系统启动以来的节拍数。


extern u64 __jiffy_data jiffies_64;
extern unsigned long volatile __jiffy_data jiffies;
在32位处理器上用32位来表示,64位处理器上用64位表示,
在32位系统上jiffies取jiffies_64得低32位。


32位系统上面,jiffies可能会溢出,下面用四个宏定义来避免溢出的问题:


#define time_after(a,b) \
(typecheck(unsigned long, a) && \
typecheck(unsigned long, b) && \
((long)((b) - (a)) < 0))
#define time_before(a,b) time_after(b,a)


#define time_after_eq(a,b) \
(typecheck(unsigned long, a) && \
typecheck(unsigned long, b) && \
((long)((a) - (b)) >= 0))
#define time_before_eq(a,b) time_after_eq(b,a)


time_after(a,b) a>b 返回ture,
time_after_eq(a,b) a>=b 返回true
time_before(a,b) a<b 返回true
time_before_eq(a,b) a<=b 返回true




BogoMIPS这个值不是为了表示机器性能,主要是被udelay和mdelay函数使用,
用来做延时使用。这两个函数是忙等待延迟函数,根据每秒中处理器能执行的
循环数计时。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值