我是靠谱客的博主 优雅自行车,最近开发中收集的这篇文章主要介绍Linux驱动开发-内核定时器,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1. 内核定时器介绍

内核定时器是内核用来控制在未来某个时间点(基于jiffies(节拍总数))调度执行某个函数的一种机制,相关函数位于 <linux/timer.h> 和 kernel/timer.c 文件中。

当内核定时器定时时间到达时,会进入用户指定的函数,相当于软中断。内核定时器注册开启后,运行一次就不会再运行(相当于自动注销),我们可以重新设置定时器的超时时间,让定时器重复运行。

每当时钟中断发生时,全局变量jiffies(一个32位的unsigned long 变量)就加1,因此jiffies记录了linux系统启动后时钟中断发生的次数,驱动程序常利用jiffies来计算不同事件间的时间间隔。内核每秒钟将jiffies变量增加HZ次。因此,对于HZ值为100的系统,jiffy+1等于隔了10ms,而对于HZ为1000的系统,jiffy+1仅为1ms。

内核定时器结构体:
下面列出了需要关心的成员

struct timer_list {
   
	unsigned long expires;         //设置超时时间,用jiffies作为基准值
	void 

最后

以上就是优雅自行车为你收集整理的Linux驱动开发-内核定时器的全部内容,希望文章能够帮你解决Linux驱动开发-内核定时器所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部