蒋迪的博客
| 关于 | 归档

#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是否处于灯态状态