4.内核定时器的使用
下面代码是本人在项目中遇到使用定时器的一个例子,可以编译运行正确的结果
1 #include <linux/timer.h> 2 3 struct timer_list timer; //内核定时器全局变量 4 5 void timer_init() //放在适当的地方,以便被正确地调用 6 { 7 timer.data = 0; 8 timer.expires = jiffies + 1*HZ; 9 timer.function = (int* )timer_handler; 10 add_timer(&timer); 11 } 12 13 int timer_handler() //时间到,系统自动调用.由于定时器已被安装到定时器链表中了 14 { 15 br_CNT = 0; //真正的业务逻辑 16 mt_CNT = 0; //真正的业务逻辑 17 18 timer.data = 0; 19 timer.expires = jiffies + 1*HZ; 20 timer.function = (int* )timer_handler; 21 add_timer(&timer); //时间到,原定时器销毁,故需重新安装 22 23 return 0; 24 } 25 26 del_timer(&timer); //超时的时候,系统自动调用,但有时需要手动显示调用.注放置的位置