Linux内核驱动开发-006内核定时器

1驱动程序

/*************************************************************************> File Name: timer.c> Author: yas> Mail: rage_yas@hotmail.com> Created Time: 2024年04月23日 星期二 19时20分42秒************************************************************************/#if 1
/*=========================The timer driver=========================*//*==========头文件包含==========*/
#include <linux/init.h>
#include <linux/module.h>
#include <linux/timer.h>/*==========驱动函数声明==========*/
static int __init timer_driver_init(void);
static void __exit timer_driver_exit(void);static void timer_out(unsigned long n);/*==========全局变量==========*//* 1 定义内核定时器*/
static struct timer_list timer;/*******************************************************************************
* 函 数 名	: timer_out
* 函数功能	: 
* 输    入  : 							
* 输    出  :
*******************************************************************************/
static void timer_out(unsigned long n)
{printk("%lu\n",n);//timer.data = jiffies;/*修改定时器的超时时间*/mod_timer(&timer,jiffies+3*HZ);//【目标定时器】【新的到期时间】
}/*******************************************************************************
* 函 数 名	: timer_driver_init
* 函数功能	: 
* 输    入  : 							
* 输    出  :
*******************************************************************************/
static int __init timer_driver_init(void)
{/* 2 初始化内核定时器*/init_timer(&timer);/* 3个定时器成员变量初始化*/timer.function=timer_out;//回调函数,定时期满需要执行的代码timer.expires=jiffies+3*HZ;//定时期满=节拍初值+节拍增量(时间*节拍频率)timer.data=jiffies;//function成员的参数/* 3 启动定时器*/add_timer(&timer);return 0;
}/*******************************************************************************
* 函 数 名	: timer_driver_exit
* 函数功能	: 
* 输    入  : 							
* 输    出  :
*******************************************************************************/
static void __exit timer_driver_exit(void)
{del_timer(&timer);//删除定时器
}module_init(timer_driver_init);
module_exit(timer_driver_exit);MODULE_LICENSE("GPL");
MODULE_AUTHOR("XXX");
/*=========================The timer driver=========================*/
#endif/*=========================定时器========================*/
/* 1 基本概念:*  [HZ]: 计数频率 - 每秒几个节拍 - [include/asm-generic/param.h]*  [jiffies]: 本质上就是一个计数器,从系统启动开始计数,计数的周期系统默认配置为[1/200]*  所以定时精度是5ms* 2 定时原理:*  启动内核定时器后,从系统计数器当前状态开始,到达指定时间后,系统调用回调函数。* 3 补充:*  (1)提高[HZ]就可以获得更高的精度->高节拍率*  (2)高节拍率->中断频繁->不如不中断**  (3)linux的几个延时函数:*      void ndelay(unsigned long nsecs);纳秒延时函数*      void udelay(unsigned long usecs);微秒延时函数*      void mdelay(unsigned long mseces);毫秒延时函数*********************************************************/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/4029.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每日JAVA高级面试题

Java 高级面试问题及答案 以下是一些在Java高级面试中可能会遇到的问题&#xff0c;以及对这些问题的探讨和回答。 问题 1: Java内存模型是什么&#xff1f;请解释其重要性。 探讨&#xff1a; Java内存模型&#xff08;Java Memory Model, JMM&#xff09;是Java虚拟机&…

【unity】三维数学应用(计算线和面的交点)

【unity】三维数学应用&#xff08;计算线和面的交点&#xff09; 实现方法有多种&#xff0c;下面介绍一种简单的方法。利用一个点指向面上任意点的向量&#xff0c;到该面法线的投影长度相同的基本原理&#xff0c;结合相似三角形既可以求出交点。 原理 如下图 GD组成的线段…

c++图论基础(1)

目录 无向图 无向图度 无向图性质 有向图 有向图度 有向图性质 图的分类&#xff1a; 稀疏图&#xff1a; 稠密图&#xff1a; 零图&#xff1a; 有向完全图&#xff1a; 无向完全图&#xff1a; 度序列&#xff1a; 图是由顶点集合(简称点集)和顶点间的边(简称边…

华为机试:夺宝奇兵

夺宝奇兵 | 时间限制&#xff1a;1秒 | 内存限制&#xff1a;262144K 一个3人寻宝团队搜寻沉船成功&#xff0c;获得一笔宝藏&#xff0c;领头人为不起纷争&#xff0c;决定将财宝分成3N份&#xff0c;每次3人从分好的3堆宝藏中依次拿取&#xff0c;领头人第一拿&#xff0c;你…

Weblogic JMS

简介 全称:WebLogic Server的Java Messaging Service(JMS) WebLogic JMS 是与 WebLogic Server 平台紧密集成的企业级消息传递系统。 Java Message Service (JMS) API 是一种消息传递标准,允许基于 Java Platform Enterprise Edition (Java EE) 的应用程序组件创建、发送、…

DiffSpeaker 部署踩坑笔记

目录 依赖项&#xff1a; Windows环境下安装psbody 下载安装boost 编译安装psbody 保存mp4报错解决 语音驱动的3D面部动画&#xff0c;可以用扩散模型或Transformer架构实现。然而它们的简单组合并没有性能的提升。作者怀疑这是由于缺乏配对的音频-4D数据&#xff0c;这对…

windows rabbitMq安装

一、Erlang 环境准备 下载安装包 跟我们跑java项目&#xff0c;要装jdk类似。rabbitMQ是基于Erlang开发的&#xff0c;因此安装rabbitMQ服务器之前&#xff0c;需要先安装Erlang环境。 官网直接下载windows直装版本&#xff1a;https://www.erlang.org/downloads 无脑安装&a…

【RocketMQ知识点总结-1】

文章目录 RocketMQ介绍RocketMQ架构&#xff1a;NameServer:BrokerProducerTopic&#xff08;主题&#xff09;&#xff1a;Queue&#xff08;队列&#xff09;&#xff1a;Message&#xff08;消息&#xff09;&#xff1a; RocketMQ的工作流程RocketMQ的使用场景异步消息传递…

预训练扩散模型用于即插即用的医学图像增强

文章目录 Pre-trained Diffusion Models for Plug-and-Play Medical Image Enhancement摘要本文方法Image Enhancement with Denoising AlgorithmPre-Trained Diffusion Models for Plug-and-play Medical Image Enhancement 实验结果 Pre-trained Diffusion Models for Plug-a…

CentOS安装SonarQube

系列文章目录 文章目录 系列文章目录前言前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 sonar是一款静态代码质量分析工具,支持Java、Python、PHP、JavaScript、…

C++ | Leetcode C++题解之第51题N皇后

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<vector<string>> solveNQueens(int n) {auto solutions vector<vector<string>>();auto queens vector<int>(n, -1);auto columns unordered_set<int>();auto diag…

【redis】Redis数据类型(二)Hash类型

目录 Hash类型介绍特性hash 的内部编码方式/底层结构hashtableziplistlistpack 适用场景举例 常用命令hset示例 hsetnx示例&#xff1a; hmset示例 hget示例 hmget示例 hgetall示例 hdel示例 hlen示例 hexists示例 hincrby示例 hincrbyfloat示例 hkeys示例 hvals示例 Hash类型介…

光纤网络电力控制系统设计方案:623-6U CPCI的光纤网络电力控制系统

6U CPCI的光纤网络电力控制系统 一、设备概述 柔性直流输电系统中用于控制与测量的FS系统&#xff0c;适用于风电和太阳能发电的并网快速数值计算和闭环控制&#xff0c;以及与直流输电系统的换流器有关的特殊控制功能&#xff0c;包括门控单元的信号处理。该控制板的最大…

Oracle时间函数

1. 时区 先说下时区&#xff0c;oracle时区分两种&#xff1a;数据库时区和会话时区。 查看数据库的时区&#xff1a;select dbtimezone from dual; 设置数据库时区&#xff1a;创建时指定&#xff1a;create database db1... set time_zone6:00; 或后期修改&#xff1a;alter…

谷歌TPU(Tensor Processing Unit)

谷歌TPU&#xff08;Tensor Processing Unit&#xff09; https://cloud.google.com/tpu/docs/intro-to-tpu?hlzh-cn CPU的工作模式和GPU工作模式的区别 CPU 最大的优点是它们的灵活性。您可以在 CPU 上为许多不同类型的应用加载任何类型的软件。对于每次计算&#xff0c;CPU…

推荐免费的RVC模型下载网站

前沿 近年来&#xff0c;随着人工智能与计算机生成内容&#xff08;AICG&#xff09;技术的飞速发展&#xff0c;众多人才纷纷投身于这一领域。从ChatGPT到Stable Diffusion&#xff0c;再到RVC&#xff0c;这些广为人知的AI技术正逐步改变我们的生产方式。众所周知&#xff0…

【C++】:手撕红黑树(红黑树的模拟实现)

每日给大家介绍一家公司 如下 接下来我们进入正题 1.红黑树的概念 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制&#xff0c;红黑树…

2024蓝桥杯CTF--逆向

蓝桥杯付费CT--逆向 题目&#xff1a;RC4题目&#xff1a;happytime总结&#xff1a; 题目&#xff1a;RC4 先查壳&#xff0c;无壳&#xff0c;并且是32位&#xff1a; 用32位的ida打开&#xff0c;直接定位到main函数&#xff1a; 重点关注sub_401005函数&#xff0c;这个应…

SDM模型——建模用户长短期兴趣的Match模型

1. 引言 SDM模型(Sequential Deep Matching Model)是阿里团队在2019年CIKM的一篇paper。模型属于序列召回模型&#xff0c;研究的是如何通过用户的历史行为序列去学习到用户的丰富兴趣。 SDM模型把用户的历史序列根据交互的时间分成了短期和长期两类&#xff0c;然后从短期会…

hwte git GitHub

电脑重装系统或者第一次配置HWTE Git&#xff0c;需要配置hosts文件 配置hosts 文件 1、先检查host文件&#xff1a;vim(sudo vim) /etc/hosts&#xff0c;是否配置了如下内容&#xff0c;没有的话&#xff0c;将如下内容加进去&#xff0c; #Radar hosts 17.34.114.138 atla…