LINUX内核tasklet小任务机制

    在内核中的中断机制中,为了防止解决中断嵌套(防止一个中断打断另一个中断)的问题,引进小任务机制:

      使用小任务机制需要三步:

        第一:定义一个struct tasklet_struct的类;

        第二步:初始化taskelet将处理任务的函数和takslet任务捆绑;

        第三步:调度tasklet :tasklet_schedule(&tasklet);

 

    

 12 #include <linux/delay.h>
 13 #include <linux/clk.h>
 14 #include <linux/miscdevice.h>
 15 #include <linux/io.h>
 16 #include <linux/ioport.h>
 17 #include <asm/uaccess.h>
 18 
 19 #include <linux/gpio.h>
 20 #include <mach/gpio.h>
 21 #include <plat/gpio-cfg.h>
 22 
 23 MODULE_LICENSE("GPL");
 24 MODULE_AUTHOR("bunfly");
 25 
 26 void my_tasklet_func(unsigned long data);
 27 struct tasklet_struct  my_tasklet;
 28 
 29 int test_init()
 30 {
 31     printk("hello kernel\n");
 32     tasklet_init(&my_tasklet,my_tasklet_func, 0);
 33     tasklet_schedule(&my_tasklet);
 34     return 0;
 35 }
 36 
 37 void test_exit()
 38 {
 39     tasklet_kill(&my_tasklet);
 40     printk("exit\n");
 41 }
 42 
 43 module_init(test_init);
 44 module_exit(test_exit);
 45 
 46 void my_tasklet_func(unsigned long data)
 47 {
 48     printk("wang wang wang\n");
 49 }
 50 

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。