Chinaunix首页 | 论坛 | 博客
  • 博客访问: 208379
  • 博文数量: 102
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1015
  • 用 户 组: 普通用户
  • 注册时间: 2013-06-05 16:45
文章存档

2014年(73)

2013年(29)

我的朋友

分类: LINUX

2013-11-21 19:37:43

国嵌内核驱动进阶班-4-5Linux内核定时器)

实例:E:\S\S8\【国嵌视频】嵌入式Linux内核编程\内存管理子系统\实验代码\timer


点击(此处)折叠或打开

  1. //timer.c
  2. #include <linux/kernel.h>
  3. #include <linux/module.h>
  4. #include <linux/init.h>
  5. #include <linux/timer.h> /*timer*/
  6. #include <asm/uaccess.h> /*jiffies*/

  7. MODULE_LICENSE("GPL");
  8. MODULE_AUTHOR("David Xie");
  9. MODULE_DESCRIPTION("Timer Module");
  10. MODULE_ALIAS("timer module");

  11. struct timer_list timer;

  12. void timer_function(int para)
  13. {
  14.     printk("<0>Timer Expired and para is %d !!\n",para);    
  15. }


  16. int timer_init()
  17. {
  18.     init_timer(&timer);
  19.     timer.data = 5;
  20.     timer.expires = jiffies + (20 * HZ);//20s钟后超时
  21.     timer.function = timer_function;
  22.     add_timer(&timer);
  23.     
  24.     return 0;
  25. }


  26. void timer_exit()
  27. {
  28.     del_timer( &timer );
  29. }

  30. module_init(timer_init);
  31. module_exit(timer_exit);


  32. #Makefile
  33. ifneq ($(KERNELRELEASE),)

  34. obj-m := timer.o

  35. else
  36.     
  37. KDIR := /lib/modules/2.6.18-53.el5/build
  38. all:
  39.     make -C $(KDIR) M=$(PWD) modules
  40. clean:
  41.     rm -f *.ko *.o *.mod.o *.mod.c *.symvers

  42. endif


阅读(704) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~