您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在Linux内核模块中添加定期定时器回调

如何在Linux内核模块中添加定期定时器回调

Linux内核高分辨率计时器hrtimer一个选项。http://lwn.net/Articles/167897/

这是我的工作:

#include <linux/interrupt.h>
#include <linux/hrtimer.h>
#include <linux/sched.h>

static struct hrtimer htimer;
static ktime_t kt_periode;

static void timer_init(void)
{
    kt_periode = ktime_set(0, 104167); //seconds,nanoseconds
    hrtimer_init (& htimer, CLOCK_REALTIME, HRTIMER_MODE_REL);
    htimer.function = timer_function;
    hrtimer_start(& htimer, kt_periode, HRTIMER_MODE_REL);
}

static void timer_cleanup(void)
{
    hrtimer_cancel(& htimer);
}

static enum hrtimer_restart timer_function(struct hrtimer * timer)
{
    // @Do your work here.

    hrtimer_forward_Now(timer, kt_periode);

    return HRTIMER_RESTART;
}
其他 2022/1/1 18:14:43 有517人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶