#Linux驱动开发 Linux 内核定时器
内核定时器
HZ 与 Jiffies
HZ : 即处理器每秒得节拍数;HZ越大,定时器间隔就越小,因此进程调度得准确性会更高。
HZ 的值取决于体系架构;
jiffies: 记录系统启动以来,系统定时器触发的次数,内核每秒钟增加HZ次;
jiffies 变量即为 volatil 类型,即 系统总是重新从它所在的内存读取数据
#include <linux/timer.h>
struct timer_list my_timer;
/*
add a timer;
*/
init_timer(&my_timer);
my_timer.expire = jiffies + n * HZ;
my_timer.function = timer_func;
my_timer.data = func_parameter;
add_timer(&my_timer);
/* a timer function*/
static void timer_func(unsigned long func_parameter){
mod_timer(&my_timer,jiffies+msecs_to_jiffies(300));
}
/* other timer api*/
del_timer()//取消定时器
timer_pending()//查看my_timer是否处于灯态状态