Linux内核 -高精度定时器

这篇具有很好参考价值的文章主要介绍了Linux内核 -高精度定时器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

高精度定时器使用示例文章来源地址https://www.toymoban.com/news/detail-805583.html

代码

#include <linux/hrtimer.h>
#include <linux/jiffies.h>

static struct hrtimer my_hrtimer;

enum hrtimer_restart my_hrtimer_callback(struct hrtimer *timer)
{
    // 定时器到期时要执行的操作
    // ...

    return HRTIMER_NORESTART; // 或者重新启动定时器
}

static int __init my_hrtimer_init(void)
{
    ktime_t ktime;

    // 初始化 hrtimer
    hrtimer_init(&my_hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);

    // 设置定时器到期时间(例如,500ms)
    ktime = ktime_set(0, 500 * 1000000L); // 500ms

    // 设置回调函数
    my_hrtimer.function = my_hrtimer_callback;

    // 启动 hrtimer
    hrtimer_start(&my_hrtimer, ktime, HRTIMER_MODE_REL);

    return 0;
}

static void __exit my_hrtimer_exit(void)
{
    // 取消 hrtimer
    hrtimer_cancel(&my_hrtimer);
}

module_init(my_hrtimer_init);
module_exit(my_hrtimer_exit);

到了这里,关于Linux内核 -高精度定时器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux 内核定时器

    一、相关知识点 (一)知识点 1、内核定时器分类     1)标准定时器或系统定时器     2)高精度定时器(HRT)         头文件:#include linux/hrtimer.h 2、检查系统是否可用HRT     1)查看内核配置文件              2)查看机器         cat proc/timer_list  | grep \\\"resolution\\\" 

    2024年02月11日
    浏览(31)
  • 09_Linux内核定时器

    目录 Linux时间管理和内核定时器简介 内核定时器简介 Linux内核短延时函数 定时器驱动程序编写 编写测试APP 运行测试          学习过UCOS或FreeRTOS的同学应该知道, UCOS或FreeRTOS是需要一个硬件定时器提供系统时钟, 一般使用Systick作为系统时钟源。同理 , Linux要运行 , 也是需

    2024年02月13日
    浏览(31)
  • Linux 内核定时器(高级字符设备五)

      在 Linux 内核中很多函数是基于定时器进行驱动的,但是内核定时器的精度并不高,所以不能作为高精度定时器使用。并且内核定时器的运行没有周期性,到达计时终点后会自动关闭。如果要实现周期性定时,就要在定时处理函数中重新开启定时器。   Linux 内核中使用

    2024年02月08日
    浏览(28)
  • linux驱动开发 - 08_内核定时器

    链接: C/C++Linux服务器开发/后台架构师【零声教育】-学习视频教程-腾讯课堂 1.1 内核时间管理简介 Linux 内核中有大量的函数需要时间管理,比如周期性的调度程序、延时程序、对于驱动编写者来说最常用的定时器。 硬件定时器提供时钟源,时钟源的频率可以设置, 设置好以

    2024年02月02日
    浏览(22)
  • <Linux开发>驱动开发 -之-内核定时器与中断

    <Linux开发>驱动开发 -之-内核定时器与中断 交叉编译环境搭建: <Linux开发> linux开发工具-之-交叉编译环境搭建 uboot移植可参考以下: <Linux开发> -之-系统移植 uboot移植过程详细记录(第一部分) <Linux开发> -之-系统移植 uboot移植过程详细记录(第二部分) <Linux开

    2024年02月08日
    浏览(33)
  • [驱动开发]Linux内核定时器与中断的简单应用

    首先介绍一下定时器原理。 在linux系统中定时器有分为软定时和硬件定时器。 以海思某款芯片为例,定时器模块又称为Timer模块,主要实现定时、计数功能。 Timer 具有以下特点: 带可编程 8 位预分频器的 32bit/16bit 减法定时器/计数器。 Timer 的计数时钟为 3MHz 时钟。 支持 3 种

    2024年02月20日
    浏览(28)
  • Linux学习第21天:Linux内核定时器驱动开发: 流淌的时间长河

    Linux版本号4.1.15   芯片I.MX6ULL                                    大叔学Linux    品人间百味  思文短情长           在人类的发展进化中,时间是一个非常重要神秘的物质量。任何事物都是在时间的长河中流淌发生、发展、变化。我们进行驱动开发中对时间的定义和使

    2024年02月07日
    浏览(32)
  • lv14 内核定时器 11

    硬件有一个时钟装置,该装置每隔一定时间发出一个时钟中断( 称为一次时钟嘀嗒-tick ),对应的中断处理程序就将 全局变量jiffies_64加1 jiffies_64 是一个全局64位整型, jiffies全局变量为其低32位的全局变量, 程序中一般用jiffies HZ:可配置的宏,表示1秒钟产生的时钟中断次数

    2024年01月22日
    浏览(28)
  • STM32 等精度测频 TIM定时器 分高低频测试

    记录一下STM32稍显艰难的学习过程、、 使用的STM32开发板:微雪的Open407Z 相关资料: Open407Z-C - Waveshare Wiki MCU型号:STM32F407ZE 本次想要实现一个单片机学习中很普遍也很简单的测频功能,但是实操起来还得进行很多定时器的以及中断的相关操作。。 首先想到的是用一个定时器

    2024年02月15日
    浏览(29)
  • STM32 定时器配置不当导致误差(精度)偏大的问题发现与解决

    通用定时器TIM2/3/4/5,PWM输出1Khz的波形 一开始初始化代码如下: 示波器端查看效果如下:误差在5.64‰ 修好初始化代码如下: 示波器端查看效果如下:误差在0.2‰ Over!

    2024年01月16日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包