系统定时器、HZ、jiffies
系统定时器
系统定时器是一种可编程硬件芯片,它能以固定频率产生中断,该频率可以通过编程预定,称作节拍率(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相关推荐
- linux上的定时器上的jiffies,linux定时器和Jiffies汇.doc
linux定时器和Jiffies汇 1.linux HZ Linux核心几个重要跟时间有关的名词或变数,将介绍HZ.tick与jiffies. HZ Linux核心每隔固定周期会发出timer int ...
- linux定时器回调处理过程,Linux内核系统定时器TIMER实现过程分析
可见涉及到系统定时器的数据结构并不多,那么:对于一个linux系统中,定时器个数可能会很多,而且每个定时器的超时事件时间并不相同,所以如何管理和处理定时器超时事件,关系到内核性能的高低.它根据不同的定 ...
- 嵌入式开发(7)系统定时器(SysTick)之延时函数运用
目录 一.系统定时器 1. 简介 2.工作原理 3.频率的概念 二.库函数SysTick定时器操作 系统定时器配置 三.寄存器SysTick定时器操作 1.系统定时器的用途 2.寄存器 3.官方示例 ...
- STM32 基础系列教程 5 – 系统定时器
前言 学习stm32 systime的使用,用基本定时器产生定时1ms定时中断,用于参生1ms系统时钟节拍,并实现将1ms 节拍改成500us 或其它时间功能.并实产生的时间节拍为机基准实现控制LED ...
- STM32超声波模块测距串口输出/通用定时器中断并输出PWM控制舵机/系统定时器延时
参考:stm32 超声波模块 原理 实现测距 +舵机使用 作者:点灯小哥 发布时间: 2021-03-10 19:37:16 网址:https://blog.csdn.net/weixin_46016 ...
- STM32系统定时器SysTick(只能向下递减)延时闪烁灯
参考:stm32 系统定时器 SysTick 作者:点灯小哥 发布时间: 2021-03-10 13:46:00 网址:https://blog.csdn.net/weixin_46016743/ar ...
- 实现流水灯以间隔500ms的时间闪烁(系统定时器SysTick实现的精确延时)
/** ****************************************************************************** * @file main.c * ...
- 嵌入式基础篇 - 第2章 Systick系统定时器
2.1 STM32 的时钟系统 STM32 芯片为了实现低功耗,设计了一个功能完善但却非常复杂的时钟系统.普通的MCU 一般只要配置好 GPIO 的寄存器就可以使用了,但 STM32 还有一个步骤,就 ...
- SysTick系统定时器(功能框图和优先级配置)
SysTick系统定时器(功能框图和优先级配置) SysTick-系统定时器是属于 CM3 内核中的一个外设,内嵌在 NVIC 中.系统定时器是一个 24bit (2^24)的向下递减的计数器,计数器 ...
最新文章
- 四 配置sshd与samba服务
- npm install的代理问题
- 上传文件 connection reset
- 互联网日报 | 5月12日 星期三 | 全国人口共14.1178亿人;长安汽车迈入2000万辆时代;Soul递交纳斯达克招股书...
- 《DeepLearning.ai 深度学习笔记》发布,黄海广博士整理
- 6.边缘检测:梯度——计算梯度Matlab实战_5
- SAP License:SAP软件实施要点
- mysql 排序字段 添加索引吗_mysql需要在哪些字段上加索引?
- Mongo之架构部署(Replica Sets+Sharding)
- AcWing 785. 快速排序
- PMP课程笔记:第11章 项目风险管理
- javascript手册地址
- 计算机更新bios,GIGABYTE How to Reflash VGA BIOS
- 抖音只能上下滑动吗_仿抖音上下滑动分页视频
- 更改win10管理员账户名称
- PCL学习:随机采样一致性算法(RANSAC)
- 解决 idea 启动报错: Failed to create JVM.JVM.Path XXXXXXX\jbr\
- VCS dump fsdb 波形
- proxycap不错
- PDF的页面设置工具在哪里?如何使用并调整PDF页面?