GNU/Linux >> Belajar Linux >  >> Linux

Cara mengatur callback pengatur waktu berkala dalam modul kernel Linux

Timer resolusi tinggi kernel Linux hrtimer adalah pilihan.http://lwn.net/Articles/167897/

Inilah yang saya lakukan:

#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. Cara memutakhirkan Kernel di Desktop Linux

  2. Linux – Bagaimana Cara Menentukan Modul Yang Menodai Kernel?

  3. Linux – Kernel Tercemar Di Linux?

  1. Cara Membuat, Mengkompilasi, Memuat Modul Kernel yang Dapat Dimuat LKM Linux

  2. Cara Menulis Modul Kernel Linux Anda Sendiri dengan Contoh Sederhana

  3. Bagaimana cara membuat kode modul kernel Linux?

  1. Linux – Bagaimana Cara Memuat Ulang Modul Kernel dengan Benar?

  2. Bagaimana cara memberikan nilai ke modul kernel Linux bawaan saat boot?

  3. Bagaimana cara membangun modul kernel Linux agar kompatibel dengan semua rilis kernel?