Linux 内核定时器
Linux 5.14版本内核定时器从Linux 3.X版本以后内核定时器有了修改所以学习中花费了一些时间在解决5.14版本中API的使用。变更不再累述直接说5.14的函数使用方法一、初始化timer,设置定时器处理函数
timer_setup(&timer, timer_handler, 0); // 1. 初始化
mod_timer(&timer, jiffies + msecs_to_jiffies(timerperiod)); //设置定时器参数,timerperiod单位是ms。
add_timer(&timer);//开启定时器
经过上面函数将启动一个定时器
static int device_probe(struct platform_device *pdev)
{
...
timer_setup(&timer, timer_handler, 0); // 1. 初始化
...
}
static int chardev_open(struct inode *inode, struct file *filp)
{
...
add_timer(&timer);//开启定时器
timeperiod = 1000; /* 默认周期为1s */
...
}
void timer_handler(struct timer_list *s)
{
//定时器中断处理函数
...
mod_timer(&selfdev.timer, jiffies + msecs_to_jiffies(timerperiod)); //开下一次中断
}
581

被折叠的 条评论
为什么被折叠?



