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");



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