码迷,mamicode.com
首页 > 系统相关 > 详细

LINUX内核tasklet小任务机制

时间:2015-05-26 21:12:57      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:

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

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

        第一:定义一个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 

 

LINUX内核tasklet小任务机制

标签:

原文地址:http://www.cnblogs.com/hongzhunzhun/p/4531512.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!