系统定时器

系统定时器是一种可编程硬件芯片,它能以固定频率产生中断,该频率可以通过编程预定,称作节拍率(tick rate),该中断就是定时器中断。
节拍率是通过静态预处理定义的,也就是 HZ,在系统启动时按照 HZ 值对硬件进行设置。
i386 体系结构中系统定时器频率为 1000Hz,但其它体系结构的节拍率大多数都等于 100。

宏定义

以树莓派为例

/linux/include/uapi/asm-generic/param.h

#ifndef HZ
#define HZ 100
#endif

linux/include/linux/jiffies.h

extern u64 __cacheline_aligned_in_smp jiffies_64;
extern unsigned long volatile __cacheline_aligned_in_smp __jiffy_arch_data jiffies;

打印 HZ、jiffies

编个小程序打印一下 HZ 和 jiffies 的值
hello.c

#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>MODULE_LICENSE("Dual BSD/GPL");static int hello_init(void)
{printk("HZ = %d\n", HZ);printk("hello_init, jiffies = %ld\n", jiffies);return 0;
}static void hello_exit(void)
{printk("hello_exit, jiffies = %ld\n", jiffies);
}module_init(hello_init);
module_exit(hello_exit);

Makefile

obj-m = hello.oKDIR=/home/liyongjun/project/board/buildroot-2021.05/RPi3/build/linux-custom
CROSS_COMPILE=/home/liyongjun/project/board/buildroot-2021.05/RPi3/host/bin/arm-buildroot-linux-uclibcgnueabihf-all:make -C $(KDIR) M=$(PWD) ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) modules
clean:make -C $(KDIR) M=$(PWD) ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) clean

运行

上传到树莓派中运行

# insmod hello.ko && sleep 1s && rmmod hello
[60740.476063] HZ = 100
[60740.479956] hello_init, jiffies = 6044048
[60741.495989] hello_exit, jiffies = 6044150

验证了 HZ 等于 100;jiffies 一秒种增加 100

系统定时器、HZ、jiffies相关推荐

  1. linux上的定时器上的jiffies,linux定时器和Jiffies汇.doc

    linux定时器和Jiffies汇 1.linux HZ Linux核心几个重要跟时间有关的名词或变数,将介绍HZ.tick与jiffies. HZ Linux核心每隔固定周期会发出timer int ...

  2. linux定时器回调处理过程,Linux内核系统定时器TIMER实现过程分析

    可见涉及到系统定时器的数据结构并不多,那么:对于一个linux系统中,定时器个数可能会很多,而且每个定时器的超时事件时间并不相同,所以如何管理和处理定时器超时事件,关系到内核性能的高低.它根据不同的定 ...

  3. 嵌入式开发(7)系统定时器(SysTick)之延时函数运用

    目录 一.系统定时器 1. 简介 2.工作原理 3.频率的概念 二.库函数SysTick定时器操作 系统定时器配置 三.寄存器SysTick定时器操作 1.系统定时器的用途 2.寄存器 3.官方示例 ...

  4. STM32 基础系列教程 5 – 系统定时器

    前言 学习stm32 systime的使用,用基本定时器产生定时1ms定时中断,用于参生1ms系统时钟节拍,并实现将1ms 节拍改成500us 或其它时间功能.并实产生的时间节拍为机基准实现控制LED ...

  5. STM32超声波模块测距串口输出/通用定时器中断并输出PWM控制舵机/系统定时器延时

    参考:stm32 超声波模块 原理 实现测距 +舵机使用 作者:点灯小哥 发布时间: 2021-03-10 19:37:16 网址:https://blog.csdn.net/weixin_46016 ...

  6. STM32系统定时器SysTick(只能向下递减)延时闪烁灯

    参考:stm32 系统定时器 SysTick 作者:点灯小哥 发布时间: 2021-03-10 13:46:00 网址:https://blog.csdn.net/weixin_46016743/ar ...

  7. 实现流水灯以间隔500ms的时间闪烁(系统定时器SysTick实现的精确延时)

    /** ****************************************************************************** * @file main.c * ...

  8. 嵌入式基础篇 - 第2章 Systick系统定时器

    2.1 STM32 的时钟系统 STM32 芯片为了实现低功耗,设计了一个功能完善但却非常复杂的时钟系统.普通的MCU 一般只要配置好 GPIO 的寄存器就可以使用了,但 STM32 还有一个步骤,就 ...

  9. SysTick系统定时器(功能框图和优先级配置)

    SysTick系统定时器(功能框图和优先级配置) SysTick-系统定时器是属于 CM3 内核中的一个外设,内嵌在 NVIC 中.系统定时器是一个 24bit (2^24)的向下递减的计数器,计数器 ...

最新文章

  1. 四 配置sshd与samba服务
  2. npm install的代理问题
  3. 上传文件 connection reset
  4. 互联网日报 | 5月12日 星期三 | 全国人口共14.1178亿人;长安汽车迈入2000万辆时代;Soul递交纳斯达克招股书...
  5. 《DeepLearning.ai 深度学习笔记》发布,黄海广博士整理
  6. 6.边缘检测:梯度——计算梯度Matlab实战_5
  7. SAP License:SAP软件实施要点
  8. mysql 排序字段 添加索引吗_mysql需要在哪些字段上加索引?
  9. Mongo之架构部署(Replica Sets+Sharding)
  10. AcWing 785. 快速排序
  11. PMP课程笔记:第11章 项目风险管理
  12. javascript手册地址
  13. 计算机更新bios,GIGABYTE How to Reflash VGA BIOS
  14. 抖音只能上下滑动吗_仿抖音上下滑动分页视频
  15. 更改win10管理员账户名称
  16. PCL学习:随机采样一致性算法(RANSAC)
  17. 解决 idea 启动报错: Failed to create JVM.JVM.Path XXXXXXX\jbr\
  18. VCS dump fsdb 波形
  19. proxycap不错
  20. PDF的页面设置工具在哪里?如何使用并调整PDF页面?

热门文章

  1. B.Duck母公司顺利上市,德盈能否孵化更多“小黄鸭”?
  2. websocket实现在线客服系统
  3. 除法逆元(ZS and The Birthday Paradox,cf 711E)
  4. 游泳时腿抽筋的处理办法集锦
  5. bootstrap select多选的change事件
  6. 在新版Microsoft edge网络浏览器中阻止自动播放视频
  7. node.js离线安装
  8. VS2008简体中文正式版序列号大全
  9. python基础练习(100)--练习题
  10. 阿里云redis的lua脚本报错踩坑记