一、相关知识点
(一)知识点
CONFIG_HIGH_RES_TIMERS=y
(二)定时器API
#define timer_setup(timer, callback, flags)
准备一个计时器以供首次使用
参数:
timer:定时器
callback:定时器到期时调用的函数
flags:TIMER_*标记
void add_timer(struct timer_list *timer);
int del_timer(struct timer_list * timer);
int mod_timer(struct timer_list *timer, unsigned long expires);
二、程序例程
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/timer.h>
static struct timer_list my_timer;
//定时器回调函数
void my_timer_callback(struct timer_list *t)
{
pr_info("%s called (%ld.)\n",__func__,jiffies);
}
static int __init my_init(void)
{
int ret;
pr_info("Timer module loaded\n");
timer_setup(&my_timer,my_timer_callback,0); //设置定时器
ret = mod_timer(&my_timer,jiffies + msecs_to_jiffies(300)); //设置定时器时间,并启动
if (ret) {
pr_err("Timer firing failed\n");
}
return 0;
}
static void __exit my_exit(void)
{
int ret;
ret = del_timer(&my_timer); //释放定时器
if (ret) {
pr_err("The timer is still in use ...\n");
}
pr_info("Timer module unloaded\n");
}
module_init(my_init);
module_exit(my_exit);
MODULE_DESCRIPTION("Standard timer example");
MODULE_LICENSE("GPL v2");
MODULE_AUTHOR("ChaoQing");
文章来源地址https://www.toymoban.com/news/detail-672902.html
文章来源:https://www.toymoban.com/news/detail-672902.html
到了这里,关于Linux 内核定时器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!