GNU/Linux >> Tutoriels Linux >  >> Linux

Comment configurer un rappel de minuterie périodique dans un module du noyau Linux

Minuterie haute résolution du noyau Linux hrtimer est une option.http://lwn.net/Articles/167897/

Voici ce que je fais :

#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. Comment mettre à niveau le noyau sur Linux Desktop

  2. Linux - Comment déterminer quel module corrompt le noyau ?

  3. Comment créer, compiler, charger des modules de noyau chargeables Linux LKM

  4. Comment écrire votre propre module de noyau Linux avec un exemple simple

  5. Comment coder un module du noyau Linux ?

Comment charger et décharger les modules du noyau sous Linux

Commande Modprobe sous Linux

Comment configurer les mises à jour automatiques du noyau sous Linux

Comment configurer instantanément un serveur de fichiers statique sous Linux

Comment configurer les mises à jour automatiques du noyau sous Linux

Comment installer le module 'Python-Pexpect' sous Linux