GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So richten Sie einen periodischen Timer-Callback in einem Linux-Kernel-Modul ein

Hochauflösender Linux-Kernel-Timer hrtimer ist eine Option.http://lwn.net/Articles/167897/

Folgendes mache ich:

#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;
}

Linux
  1. So aktualisieren Sie den Kernel auf dem Linux-Desktop

  2. Linux – Wie kann man feststellen, welches Modul den Kernel verschmutzt?

  3. Linux – Ein verdorbener Kernel in Linux?

  4. Wie kodiere ich ein Linux-Kernel-Modul?

  5. So erstellen Sie ein einfaches sysfs-Klassenattribut im Linux-Kernel v3.2

So laden und entladen Sie Kernel-Module in Linux

Modprobe-Befehl unter Linux

So richten Sie automatische Kernel-Updates unter Linux ein

So richten Sie sofort einen statischen Dateiserver unter Linux ein

So richten Sie automatische Kernel-Updates unter Linux ein

So installieren Sie das Modul „Python-Pexpect“ unter Linux