close




step:1. #vi task_let.c
#include <linux/kernel.h>
#include <linux/module.h>
#include <asm/uaccess.h> /* for put_user */
#include <linux/interrupt.h>
#define DEVICE_NAME "taskQ"
void mytl_fun (unsigned long t)
{
  // To do: implement your defered codes
        if(in_interrupt())
                printk("in interrupt context\n");
                printk("i am in mytq_fun,jiffies=%ld\n",jiffies);
}
DECLARE_TASKLET(my_tasklet, mytl_fun, 0);
int init_module(void)
{
        printk ("queued task at jiffies = %ld\n", jiffies );
        // To do : schedule a tasklet
        tasklet_schedule(&my_tasklet);
        printk("TL schedule jiffies =%ld\n",jiffies);
  return 0;
}
void cleanup_module(void)
{
        printk ("I cleaned up, jiffies = %ld\n", jiffies );
}

在PuTTY上
step:2. #make


在VM上
step:3.#echo 7 > /proc/sys/kernel/printk


在PuTTY上
step:4. #insmod ./task_let.ko




arrow
arrow
    文章標籤
    Linux device drive
    全站熱搜
    創作者介紹
    創作者 布拉怡 的頭像
    布拉怡

    nini的部落格

    布拉怡 發表在 痞客邦 留言(0) 人氣()