/* 内核定时器测试模块 */ #include <linux/kernel.h> //内核 #include <linux/module.h> //内核模块 #include <linux/init.h> //模块初始化和注销 #include <linux/slab.h> //屋里内存分配管理 #include <linux/list.h> //内核链表 #include <linux/timer.h> //内核定时器 //内核模块声明 MODULE_LICENSE("GPL"); MODULE_AUTHOR("EDISON REN"); MODULE_DESCRIPTION("KERNEL TIMER TEST"); MODULE_ALIAS("KERNEL TIMER TEST"); struct timer_list timer; //内核定时器 void timer_function(int para) { printk("Timer Expired and para is:%d\n",para); } int timer_init(void) { init_timer(&timer); //初始化内核定时器 timer.data=10; //参数 timer.expires=jiffies+ (3*HZ); //延时3秒 timer.function=timer_function; //定时器的执行函数 add_timer(&timer); //将定时器加入到系统定时器链表中 printk("Create Timer Success!\n"); return 0; } int timer_exit(void) { del_timer(&timer); //删除该定时器 printk("Delete Timer!\n"); return 0; } module_init(timer_init); module_exit(timer_exit);
Makefile
obj-m := ktimer.o KDIR := /usr/src/linux-headers-3.13.0-32-generic/ all: make -C $(KDIR) M=$(PWD) modules #ARCH=arm CROSS_COMPILE=arm-linux- clean: rm -f *.ko *.o *.mod *.symvers *.order *.mod.c
时间: 2024-09-28 22:00:09