GNU/Linux >> Znalost Linux >  >> Linux

Jak nastavit pravidelné zpětné volání časovače v modulu jádra Linuxu

Časovač linuxového jádra s vysokým rozlišením hrtimer je možnost.http://lwn.net/Articles/167897/

Zde, co dělám:

#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. Linux – Jak správně znovu načíst modul jádra?

  2. Jak vytvořit, zkompilovat, načíst moduly jádra Linuxu LKM

  3. Jak vytvořit jednoduchý atribut třídy sysfs v jádře Linuxu v3.2

  1. Jak předat hodnotu vestavěnému modulu jádra Linuxu při spouštění?

  2. Jak sestavit modul jádra Linuxu tak, aby byl kompatibilní se všemi verzemi jádra?

  3. Co je to poskvrněné jádro v Linuxu?

  1. Jak upgradovat jádro na ploše Linuxu

  2. Linux – Jak zjistit, který modul poškozuje jádro?

  3. Linux – poskvrněné jádro v Linuxu?