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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值