linux 内核编程 延时函数,linux中内核延时编程
#include //定义使用定时来计时的宏
#ifndef SLEEP_MILLI_SEC
#define SLEEP_MILLI_SEC(nMilliSec)\
do { \
long timeout = (nMilliSec) * HZ / 1000; \
while(timeout > 0) \
{ \
timeout = schedule_timeout(timeout); \
} \
}while(0);
#endif
#define error(...) do {\
printk("********************************************************\n");\
printk("error located %s : %d :%s\n",__FILE__,__LINE__,__FUNCTION__);\
printk(__VA_ARGS__);\
printk("********************************************************\n");\
}while(0)
static struct task_struct * MyThread = NULL;
static int MyPrintk(void *data)
{
int i = 0;
while (i>-1 ) {
if (kthread_should_stop()) {
break;
}
error(" i = %d\n",i);
//延时1000毫秒,在延时中一直占用CPU,不适合做长时间的延时,否则会导致内核或者系统出问题
//udelay(),ndelay()同理
//mdelay(1000);
//用定时来延时1000毫秒
//SLEEP_MILLI_SEC(1000);
msleep(1000);
i++;
}
return 0;
}
static int __init init_kthread(void)
{
MyThread = kthread_run(MyPrintk,"hello world","mythread");
return 0;
}
static void __exit exit_kthread(void)
{
if(MyThread)
{
printk("stop MyThread\n");
kthread_stop(MyThread);
MyThread = NULL;
}
return;
}
module_init(init_kthread);
module_exit(exit_kthread);
MODULE_AUTHOR("hyy");
MODULE_LICENSE("GPL");
linux 内核编程 延时函数,linux中内核延时编程相关推荐
- c语言延时函数delay_STM32中精确延时函数的实现
在与传感器或者模块的总线进行通信的时候,常常需要使用到精确延时,一般我们会封装几个常用延时函数,下面我们以STM32F103芯片为例,详细介绍一下STM32下一种精确延时函数的实现: 时钟树 下图中紫 ...
- python中延时函数_python中实现延时回调普通函数示例代码
python中实现延时回调普通函数示例代码 这篇文章主要给大家介绍了关于python中实现延时回调普通函数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的 ...
- python的延时函数delay_python中实现延时回调普通函数示例代码
前言 回调函数是我们在python编程中经常会遇到的一个问题,而想在将来某一时刻进行函数回调,可以使用call_later()函数来实现,第一个参数是回调用延时,第二个是回调的函数名称 例子如下: i ...
- less 函数_Python中的函数式编程教程,学会用一行代码搞定所有内容
前言 在本文中,您将了解什么是函数范型,以及如何在Python中使用函数式编程.在Python中,函数式编程中的map和filter可以做与列表相同的事情.这打破了Python的禅宗规则之一,因此函数 ...
- 2毫秒c51汇编语言延时函数,单片机精确毫秒延时函数
实现延时通常有两种方法:一种是硬件延时,要用到定时器/计数器,这种方法可以提高CPU的工作效率,也能做到精确延时;另一种是软件延时,这种方法主要采用循环体进行. 今天主要介绍软件延时以及单片机精确毫秒 ...
- linux内核的延时函数,linux中内核延时函数 (转)
第一类延时函数原型是:(忙等) void ndelay(unsigned long nsecs); void udelay(unsigned long usecs); void mdelay(unsi ...
- linux 内核 fget,fgets函数 linux中fgets函数怎么用
一个函数该如何使用?我们最先要了解的就是这个函数的语法以及具体的含义是什么,所以今天我们就来看一看fgets函数在实际的运用过程当中是如何使用的,希望能给大家带来一定的帮助. fgets函数--lin ...
- linux协议栈skb操作函数,linux协议栈skb操作函数
1,struct sk_buff数据结构 struct sk_buff{ //这两个结构必须放在最前面 struct sk_buff *next; struct sk_buff *prev; stru ...
- linux内核的外部接口函数,linux内核中GPIO的使用(二)--标准接口函数
在linux内核中,有一些基本模块可以使用标准的接口函数来操作,比如GPIO.interrupt.clock,所谓的标准接口函数是指一些与硬件平台无关的.linux下做驱动通用的函数, 常用的有: g ...
最新文章
- 如何在线把网站html生成xml文件_快速抓取网站信息工具
- html两个框架同时_两个框架的故事
- 编译原理抽象语法树_平衡抽象原理
- Java中的堆栈安全递归
- 2013_changsha_onsite
- Oracle数据库里面查询字符串类型的字段不为空和为空的SQL语句:
- python如何执行代码漏洞_命令执行与代码执行漏洞原理
- 44 The shopping psychology 购物心理
- Ansible详解(二)——Ansible安装与命令
- Salus:安全扫描协调工具
- 【双系统】删除linux系统扇区后无法启动windows
- 从玉农业谋定国家龙头企业-林裕豪:对话农民丰收节交易会
- 【http】微信网站使用的是http80端口或者https443端口访问
- mysqladmin 管理命令详细应用
- 多字节加法 C语言,编写一个多字节无符号数加法子程序
- hihoCoder #1246 王胖浩与环
- c语言---字符串为什么不能修改内容???字符串常量存放在常量区吗???
- java 之文件输入输出流
- GPU配置MatConvNet(ECO代码)
- 数字孪生光伏发电技术
热门文章
- 专用efi文件包_优质设备项目来啦!山钢焦炉、济南鲍德炉料公司所属资产包转让...
- python高阶函数_python_bomb----高阶函数
- nginx 根据目录指定root_CentOS(7.6)基本操作与Nginx配置
- mysql使用中文报错,hibernate mysql 插入中文错误
- python棋子判定_python微信跳一跳系列之棋子定位颜色识别
- 信噪比:高端科研级相机的核心参数
- 机器视觉:系统中影响图像质量的因素有哪些?
- 【肥朝】从一次问题讨论聊聊我对阅读源码的思考
- COOKIESESSION 入门
- weblogic对JSP预编译、weblogic读取JSP编译后的class文件、ant中weblogic.jspc预编译JSP