#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中内核延时编程相关推荐

  1. c语言延时函数delay_STM32中精确延时函数的实现

    在与传感器或者模块的总线进行通信的时候,常常需要使用到精确延时,一般我们会封装几个常用延时函数,下面我们以STM32F103芯片为例,详细介绍一下STM32下一种精确延时函数的实现: 时钟树 下图中紫 ...

  2. python中延时函数_python中实现延时回调普通函数示例代码

    python中实现延时回调普通函数示例代码 这篇文章主要给大家介绍了关于python中实现延时回调普通函数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的 ...

  3. python的延时函数delay_python中实现延时回调普通函数示例代码

    前言 回调函数是我们在python编程中经常会遇到的一个问题,而想在将来某一时刻进行函数回调,可以使用call_later()函数来实现,第一个参数是回调用延时,第二个是回调的函数名称 例子如下: i ...

  4. less 函数_Python中的函数式编程教程,学会用一行代码搞定所有内容

    前言 在本文中,您将了解什么是函数范型,以及如何在Python中使用函数式编程.在Python中,函数式编程中的map和filter可以做与列表相同的事情.这打破了Python的禅宗规则之一,因此函数 ...

  5. 2毫秒c51汇编语言延时函数,单片机精确毫秒延时函数

    实现延时通常有两种方法:一种是硬件延时,要用到定时器/计数器,这种方法可以提高CPU的工作效率,也能做到精确延时;另一种是软件延时,这种方法主要采用循环体进行. 今天主要介绍软件延时以及单片机精确毫秒 ...

  6. linux内核的延时函数,linux中内核延时函数 (转)

    第一类延时函数原型是:(忙等) void ndelay(unsigned long nsecs); void udelay(unsigned long usecs); void mdelay(unsi ...

  7. linux 内核 fget,fgets函数 linux中fgets函数怎么用

    一个函数该如何使用?我们最先要了解的就是这个函数的语法以及具体的含义是什么,所以今天我们就来看一看fgets函数在实际的运用过程当中是如何使用的,希望能给大家带来一定的帮助. fgets函数--lin ...

  8. linux协议栈skb操作函数,linux协议栈skb操作函数

    1,struct sk_buff数据结构 struct sk_buff{ //这两个结构必须放在最前面 struct sk_buff *next; struct sk_buff *prev; stru ...

  9. linux内核的外部接口函数,linux内核中GPIO的使用(二)--标准接口函数

    在linux内核中,有一些基本模块可以使用标准的接口函数来操作,比如GPIO.interrupt.clock,所谓的标准接口函数是指一些与硬件平台无关的.linux下做驱动通用的函数, 常用的有: g ...

最新文章

  1. 如何在线把网站html生成xml文件_快速抓取网站信息工具
  2. html两个框架同时_两个框架的故事
  3. 编译原理抽象语法树_平衡抽象原理
  4. Java中的堆栈安全递归
  5. 2013_changsha_onsite
  6. Oracle数据库里面查询字符串类型的字段不为空和为空的SQL语句:
  7. python如何执行代码漏洞_命令执行与代码执行漏洞原理
  8. 44 The shopping psychology 购物心理
  9. Ansible详解(二)——Ansible安装与命令
  10. Salus:安全扫描协调工具
  11. 【双系统】删除linux系统扇区后无法启动windows
  12. 从玉农业谋定国家龙头企业-林裕豪:对话农民丰收节交易会
  13. 【http】微信网站使用的是http80端口或者https443端口访问
  14. mysqladmin 管理命令详细应用
  15. 多字节加法 C语言,编写一个多字节无符号数加法子程序
  16. hihoCoder #1246 王胖浩与环
  17. c语言---字符串为什么不能修改内容???字符串常量存放在常量区吗???
  18. java 之文件输入输出流
  19. GPU配置MatConvNet(ECO代码)
  20. 数字孪生光伏发电技术

热门文章

  1. 专用efi文件包_优质设备项目来啦!山钢焦炉、济南鲍德炉料公司所属资产包转让...
  2. python高阶函数_python_bomb----高阶函数
  3. nginx 根据目录指定root_CentOS(7.6)基本操作与Nginx配置
  4. mysql使用中文报错,hibernate mysql 插入中文错误
  5. python棋子判定_python微信跳一跳系列之棋子定位颜色识别
  6. 信噪比:高端科研级相机的核心参数
  7. 机器视觉:系统中影响图像质量的因素有哪些?
  8. 【肥朝】从一次问题讨论聊聊我对阅读源码的思考
  9. COOKIESESSION 入门
  10. weblogic对JSP预编译、weblogic读取JSP编译后的class文件、ant中weblogic.jspc预编译JSP