Linux内核定时器Timer的学习

前言

这段时间我会把内核的小模块复习起来并记录成文章给大家发表出来,方便大家来学习,大家感兴趣的话可以点赞关注下,顺便说下想第一时间看我的文章的话可以点击公众号主页右上角有个设为星标,以免错过好文。先从定时器开始学习。

内核定时器简介

定时器是一个很常用的功能,需要周期性处理的工作都要用到定时器, 基本做驱动开发的人都要接触用到的。内核定时器因为采用系统时钟属于软件定时器所以他精度不高,不能作为高精度定时器使用,用法和硬件定时器一样,只不过不需要初始化一大堆寄存器而工作,需要注意一点是默认执行一次就结束了并不是周期性运行的,因此如果要想实现周期性的定时,就需要在定时处理函数中重新开启定时器。

内核定时器的数据结构

Linux内核使用 timer_list 结构体表示内核定时器, timer_list 定义在文件include/linux/timer.h 中

struct timer_list {
   
   
         /*
         ¦* All fields that change during normal runtime grouped to the
         ¦* same cacheline
         ¦*/
         struct hlist_node       entry;
         unsigned long           expires; //定时器的超时时间,单位不是时长,单位是节拍数
         void                    (*function
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值