2021-05-28


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)); //开下一次中断
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值