14.9.5  实例:Tasklet演示

本节的例子演示了Tasklet的使用方法。虽然Tasklet是Linux中断处理的底半部的一种实现机制。但Tasklet并不一定要和中断一起使用。即使没有中断,也可以在Linux驱动中使用Tasklet。本例在驱动程序的初始化函数中指定和调度Tasklet处理程序,并在驱动程序的退出函数中销毁了Tasklet。

本节示例的源代码路径如下。

随书光盘:/sources/ch14/tasklet.c

虚拟环境:/root/drivers/ch14/tasklet.c

在ch14目录中有一个bh_eclipse目录,该目录是Eclipse工程目录。读者可以在Eclipse中导入该目录,并可在该目录中查看、编译和安装tasklet驱动,以及查看本章涉及的系统源代码(如rtc-s3c.c、softirq.c、irqs.h、workqueue.c等)。

本例的源代码如下:

#include

#include

#include

#include

#include

static struct tasklet_struct my_tasklet;

//  tasklet处理函数

static void tasklet_handler (unsigned long data)

{

printk(KERN_ALERT "tasklet_handler is running.\n");

}

static int _init demo_init(void)

{

//  初始化tasklet

tasklet_init(&my_tasklet, tasklet_handler, 0);

//  调度tasklet处理程序

tasklet_schedule(&my_tasklet);

printk(KERN_ALERT "demo_init.\n");

return 0;

}

static void _exit demo_exit(void)

{

//  销毁tasklet

tasklet_kill(&my_tasklet);

printk(KERN_ALERT "demo_exit.\n");

}

MODULE_LICENSE("GPL");

module_init(demo_init);

module_exit(demo_exit);

执行build.sh脚本文件编译和安装tasklet驱动。tasklet驱动安装成功后,就会调度tasklet处理程序,使用dmesg命令可以参看tasklet驱动输出的日志信息,如图14-7所示。

【责任编辑:book TEL:(010)68476606】

点赞 0

linux tasklet函数,14.9.5 实例:Tasklet演示相关推荐

  1. linux tasklet函数,tasklet和work_struct详解

    一.tasklet 1.1.tasklet介绍 tasklet的使用比较简单,只需要定义tasklet及其处理函数并将两者关联即可,在定义时可以采用两种形式. 例子: struct tasklet_s ...

  2. linux awk 内置函数详细介绍(实例)

    原文地址为: linux awk 内置函数详细介绍(实例) 这节详细介绍awk内置函数,主要分以下3种类似:算数函数.字符串函数.其它一般函数.时间函数 一.算术函数: 以下算术函数执行与 C 语言中 ...

  3. linux c语言内核函数手册,Linux C函数实例速查手册

    函数学习目录: 第1章 初级I/O函数 1.1 close函数:关闭已经打开的文件 1.2 creat函数:创建一个文件 1.3 dup函数:复制文件描述符 1.4 dup2函数:复制文件描述符到指定 ...

  4. 红帽Linux故障定位技术详解与实例(1)

    红帽Linux故障定位技术详解与实例(1) 2011-09-28 14:26 圈儿 BEAREYES.COM 我要评论(0) 字号:T | T 在线故障定位就是在故障发生时, 故障所处的操作系统环境仍 ...

  5. linux write函数长度,【转】linux驱动中的write函数

    Linux下我们在使用设备的时候,都会用到write这个函数,通过这个函数我们可以象使 用文件那样向设备传送数据.可是为什么用户使用write函数就可以把数据写到设备里面 去,这个过程到底是怎么实现的 ...

  6. 如何替换一个Linux内核函数的实现-热补丁原理

    昨晚发过誓了.不会再接着写二进制hook的手艺了,今天有网友咨询技术细节,终于又忍不住了- 为了不违背即便是胡乱说出口誓言,今天不写二进制hook,今天用C语言写,二进制只是沾点边儿! 看题目, 替换 ...

  7. Linux无界面新建Oracle数据库实例

    Linux无界面新建Oracle数据库实例 根据https://blog.csdn.net/qq_24058757/article/details/88220437 步骤操作后总结整理的自己的新建实例 ...

  8. Python中Print()函数的用法___实例详解(二)(全,例多)

    Python中Print()函数的用法___实例详解(二)(全,例多) 目录 十一.Print()小例子 十二.Print()中文输入显示乱码问题 十三.Print()写入文件 十四.print()在 ...

  9. linux C函数之strdup函数分析【转】

    本文转载自:http://blog.csdn.net/tigerjibo/article/details/12784823 linux C函数之strdup函数分析 一.函数分析 1.函数原型: [c ...

最新文章

  1. Hadoop学习笔记之三 数据流向
  2. Error in exists(x): 第一个参数不对
  3. CSS大小设置实例——盒子模型
  4. VS2013找不到winres.h的解决办法
  5. flutter 分割线_Flutter 底部弹框 showModalBottomSheet 使用Demo
  6. python浅拷贝深拷贝
  7. SpringCloud集成lombox(eclipes工具)
  8. 企业数字化信息化运营管理规划方案
  9. iOS 斯坦福大学公开课地址
  10. [转]色度抽样(4:2:0)到底是什么意思?
  11. ✨✨✨【C语言】带你用最短的时间刷题(附解题思路、具体代码)不断更新(二)✨✨✨
  12. CSS3正方体图片轮换
  13. pg数据库插件timescale时序库使用记录
  14. (windows)如何删除删不掉的文件
  15. xray和burp联动
  16. Spring5框架-IOC容器
  17. 【爬虫实战】10应用Python网络爬虫——定向爬取百度百科文字
  18. BSQ,BIL,BIP的区别
  19. epplus保存为流_.NET Core 2从内存流下载Excel文件 - c#
  20. 3dsMax 快捷键记录

热门文章

  1. cllocationmanager 获取不了 的原因_我的世界:天启之境如何获取“人鱼手链”?一段人鱼姬的爱情故事...
  2. python sqlserver api连接池_非常老的话题 SQLSERVER连接池
  3. html屏幕垂直居中显示,HTML+CSS,让div在屏幕中居中(水平居中+垂直居中)方法总结...
  4. ado.net连接mysql 类_C# ADO.NET 连接数据库常用到的类及基本操作格式
  5. 大数据实训记录(一)
  6. python基础教程:修改Python列表中元素的几种方法
  7. Python基础教程:format 格式化字符串用法
  8. Python re 模块findall() 函数返回值展现方式详解
  9. python四种数值交换方法
  10. python之高级的文件操作shutil模块