头文件以及简单使用流程
头文件: #include <linux/timer.h>
简单使用流程:
- struct timer_list test_timer;
- setup_timer(&test_timer, timer_print, 1234);
- test_timer.expires = jiffies + 5 * HZ;
- add_timer(&test_timer);
说明
1. 定义定时器 test_timer
值得注意的是,定义定时器时注意定时器为全局变量或者是通过kmalloc从堆中申请到的内存。否则定时器会在函数生命周期结束后被销毁,导致出现错误。
2. setup_timer初始化test_timer
首先来看一下setup_timer的源代码
#define setup_timer(timer, fn, data) \
__setup_timer((timer), (fn), (data), 0)
#define __setup_timer(_timer, _fn, _data, _flags)