Linux系统下内核定时器的用法

Linux系统下内核定时器的用法

内核定时器的用法其实很简单

1.需要定义一个timer_list变量timer、先初始化timer

init_timer(&timer);

2.对timer的相关参数赋值

timer.function = fun;

timer.expires = jiffies + TIMER_DELAY;

3.向内核添加定时器

add_timer(&timer);

在定时器时间到的时候,会执行fun,如果继续定时,可以通过在fun中执行

mod_timer(&timer, jiffies + TIMER_DELAY);

4.在不需要的时候通过调用

del_timer(&timer);


比如下面的例子

............

static struct timer_list my_timer;


static void my_timer_function(unsigned long data)
{

mod_timer(&my_timer, jiffies+HZ/100);

}

static int sixth_drv_init(void)
{

init_timer(&my_timer);
my_timer.function = my_timer_function;
//my_timer.expires  = 0;
add_timer(&my_timer); 

return 0;
}


static void sixth_drv_exit(void)
{
del_timer(&my_timer);
}

module_init(sixth_drv_init);

module_exit(sixth_drv_exit);

MODULE_LICENSE("GPL");



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章