linux tasklet函数,14.9.5 实例:Tasklet演示
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演示相关推荐
- linux tasklet函数,tasklet和work_struct详解
一.tasklet 1.1.tasklet介绍 tasklet的使用比较简单,只需要定义tasklet及其处理函数并将两者关联即可,在定义时可以采用两种形式. 例子: struct tasklet_s ...
- linux awk 内置函数详细介绍(实例)
原文地址为: linux awk 内置函数详细介绍(实例) 这节详细介绍awk内置函数,主要分以下3种类似:算数函数.字符串函数.其它一般函数.时间函数 一.算术函数: 以下算术函数执行与 C 语言中 ...
- linux c语言内核函数手册,Linux C函数实例速查手册
函数学习目录: 第1章 初级I/O函数 1.1 close函数:关闭已经打开的文件 1.2 creat函数:创建一个文件 1.3 dup函数:复制文件描述符 1.4 dup2函数:复制文件描述符到指定 ...
- 红帽Linux故障定位技术详解与实例(1)
红帽Linux故障定位技术详解与实例(1) 2011-09-28 14:26 圈儿 BEAREYES.COM 我要评论(0) 字号:T | T 在线故障定位就是在故障发生时, 故障所处的操作系统环境仍 ...
- linux write函数长度,【转】linux驱动中的write函数
Linux下我们在使用设备的时候,都会用到write这个函数,通过这个函数我们可以象使 用文件那样向设备传送数据.可是为什么用户使用write函数就可以把数据写到设备里面 去,这个过程到底是怎么实现的 ...
- 如何替换一个Linux内核函数的实现-热补丁原理
昨晚发过誓了.不会再接着写二进制hook的手艺了,今天有网友咨询技术细节,终于又忍不住了- 为了不违背即便是胡乱说出口誓言,今天不写二进制hook,今天用C语言写,二进制只是沾点边儿! 看题目, 替换 ...
- Linux无界面新建Oracle数据库实例
Linux无界面新建Oracle数据库实例 根据https://blog.csdn.net/qq_24058757/article/details/88220437 步骤操作后总结整理的自己的新建实例 ...
- Python中Print()函数的用法___实例详解(二)(全,例多)
Python中Print()函数的用法___实例详解(二)(全,例多) 目录 十一.Print()小例子 十二.Print()中文输入显示乱码问题 十三.Print()写入文件 十四.print()在 ...
- linux C函数之strdup函数分析【转】
本文转载自:http://blog.csdn.net/tigerjibo/article/details/12784823 linux C函数之strdup函数分析 一.函数分析 1.函数原型: [c ...
最新文章
- Hadoop学习笔记之三 数据流向
- Error in exists(x): 第一个参数不对
- CSS大小设置实例——盒子模型
- VS2013找不到winres.h的解决办法
- flutter 分割线_Flutter 底部弹框 showModalBottomSheet 使用Demo
- python浅拷贝深拷贝
- SpringCloud集成lombox(eclipes工具)
- 企业数字化信息化运营管理规划方案
- iOS 斯坦福大学公开课地址
- [转]色度抽样(4:2:0)到底是什么意思?
- ✨✨✨【C语言】带你用最短的时间刷题(附解题思路、具体代码)不断更新(二)✨✨✨
- CSS3正方体图片轮换
- pg数据库插件timescale时序库使用记录
- (windows)如何删除删不掉的文件
- xray和burp联动
- Spring5框架-IOC容器
- 【爬虫实战】10应用Python网络爬虫——定向爬取百度百科文字
- BSQ,BIL,BIP的区别
- epplus保存为流_.NET Core 2从内存流下载Excel文件 - c#
- 3dsMax 快捷键记录
热门文章
- cllocationmanager 获取不了 的原因_我的世界:天启之境如何获取“人鱼手链”?一段人鱼姬的爱情故事...
- python sqlserver api连接池_非常老的话题 SQLSERVER连接池
- html屏幕垂直居中显示,HTML+CSS,让div在屏幕中居中(水平居中+垂直居中)方法总结...
- ado.net连接mysql 类_C# ADO.NET 连接数据库常用到的类及基本操作格式
- 大数据实训记录(一)
- python基础教程:修改Python列表中元素的几种方法
- Python基础教程:format 格式化字符串用法
- Python re 模块findall() 函数返回值展现方式详解
- python四种数值交换方法
- python之高级的文件操作shutil模块