我是靠谱客的博主 潇洒往事,最近开发中收集的这篇文章主要介绍【linux驱动开发知识点汇总-定时器hrtimer】,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

简介

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 —绝对时间

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】所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(85)

评论列表共有 0 条评论

立即
投稿
返回
顶部