概述
简介
hrtimer为内核提供的高精度定时器,可以提供纳秒级的定时。
应用
1、初始化
- 函数原型:
void hrtimer_init(struct hrtimer *timer, clockid_t which_clock,
enum hrtimer_mode mode);
- 参数说明
- which_clock
- CLOCK_REALTIME---- 实时时间,若系统时间变了,定时器也跟着改变
- CLOCK_MONOTONIC—递增时间,不受系统时间影响
- CLOCK_BOOTTIME— 与 CLOCK_MONOTONIC 一样,是一个单调递增的时钟。 不同的是 CLOCK_BOOTTIME 时钟包括系统挂起的时间
- mode
- HRTIMER_MODE_REL —相对时间
- HRTIMER_MODE_ABS —绝对时间
- which_clock
2、设置回调函数
timer.function = hr_callback;
- 定时器超时后会调用回调函数。
- 回调函数中的返回值来决定是否需要重新激活定时器
- HRTIMER_NORESTART – 不需要重新激活
- HRTIMER_RESTART, – 需要重新激活
3、定时器启动
int hrtimer_start(struct hrtimer *timer, ktime_t tim,
const enum hrtimer_mode mode);
- 参数说明
- tim 定时器超时时间
- mode 时间类型<绝对时间或相对时间>
- 定时器经常和work队列一起使用,通过队列来启动、停止定时器
4、定时器取消
int hrtimer_cancel(struct hrtimer *timer);
最后
以上就是潇洒往事为你收集整理的【linux驱动开发知识点汇总-定时器hrtimer】的全部内容,希望文章能够帮你解决【linux驱动开发知识点汇总-定时器hrtimer】所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复