jiffies:内核中的时间观念

2023-05-16

jiffies在内核中是一个全局变量,声明包含在#include <linux/jiffies.h>中,

几个内核中常用的的概念:

1. HZ

内核常量,ARM架构HZ=100,X86架构HZ=1000

例如HZ=100,表示硬件定时器1秒钟给CPU发送100个定时器中断信号

每发生一次中断的时间间隔为10ms

注意:不同的环境HZ的值都是可能不一样的,我曾经遇到过一个TI的开发板,他的jiffies比较特殊一点,HZ = 128表示1秒,所以大家使用的时候,一定要确认好HZ的值

2. jiffies_64, jiffies

 jiffies_64是内核全局变量,64位,unsigned long long,

记录自开机以来发生了多少次的定时器中断,每发生一次,"自动"加1 

jiffies也是内核全局变量,32位,unsigned long,值取得jiffies_64 的低32位,每发生一次定时器中断,同样"自动"加1,一般用来记录流失时间(时间间隔)

注意:只要在内核代码中看到jiffies,就等于此刻为当前时间

由于在内核中经常使用的jiffies,下边给出一个小例子(本代码只是一个使用jiffies的框架,具体使用,只需做稍微的修改)      
 参考代码:

unsigned long timeout = jiffies + 5*HZ;

说明:

 jiffies:表示当前时间

5*HZ:时间间隔为5秒

timeout:表示5秒以后的时间,也就是超时时间

 参考代码:判断是否超时

 unsigned long timeout = jiffies + 5*HZ;
      ...
      ...
 ... //若干条代码,代码执行需要时间
if (jiffies > timeout)
超时
else
        没有超时
     
 解决方法:

if(time_after(jiffies, timeout)) {
      超时
      } else {
      没有超时
      }//此函数不需要死机,只需要用sourceinsignt查看内核大神们怎么使用即可,里面很多都是经典的用法


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jiffies:内核中的时间观念 的相关文章

  • SpringBoot 测试类无法自动注入@Autowired

    原来的测试类的注解 xff1a 64 RunWith SpringRunner class 64 SpringBootTest 一直没法自动注入 xff0c 后来在 64 SpringBootTest xff0c 加入启动类Applicat
  • ##单片机和linux学习的关系,为什么学习linux?希望成为linux驱动工程师?

    我们知道单片机是要学习的 xff0c 那么怎么去学习单片机 xff1f 在上一课我们说不要使用老一套的方法学习 xff0c 实际上是指的两个问题 第一 xff1a 选择什么开发板 xff1b 第二 xff1a 使用什么开发工具 xff1b
  • [ROS连载学习篇 1 ]基于树莓派3B+的Ubuntu mate16.04安装

    前言 xff1a 笔者是一名在读本科生 xff0c 专业为电气工程及其自动化 xff0c 因个人兴趣加入学校一工作室学习ROS xff0c 但学校内设备有限 xff0c 配套的学习硬件只有树莓派3B 43 xff0c 在笔者大量查翻网页论坛
  • 推荐一些学习嵌入式经典的书籍

    在学习嵌入式的过程中 xff0c 到现在为止 xff0c 我还是看了有一部分书了 不得不说 xff0c 很多书就像经典一样 xff0c 永远不会过时 等到你再去品味的时候 xff0c 又会有新的体会 学无止境 xff01 学习也是一种不断积
  • 安装配置Ubuntu-22.04于WSL2的图形化界面

    WSL2安装可以参考微软的官方教程 xff0c 已经很简单了 xff1a 安装 WSL Microsoft Learn 注意部分网络环境在安装时可能需要科学上网 至于Ubuntu 22 04可以在应用商店里找到 xff0c 也可以使用以下命
  • Android中的自定义注解(反射实现-运行时注解)

    预备知识 xff1a Java注解基础 Java反射原理 Java动态代理 一 布局文件的注解 我们在Android开发的时候 xff0c 总是会写到setContentView方法 xff0c 为了避免每次都写重复的代码 xff0c 我们
  • Android 开发的技术方向

    xff11 应用开发 xff12 源码级开发 分为系统应用开发 xff0c Framework开发 xff0c 底层浏览器内核开发 xff0c 音视频编码开发 虚拟机开发 底层驱动开发等系统ROM相关的开发 3 安全 逆向 xff0c 病毒
  • Java内存优化和性能优化的几点建议

    1 没有必要时请不用使用静态变量 使用Java的开发者都知道 xff0c 当某个对象被定义为stataic变量所引用 xff0c 这个对象所占有的内存将不会被回收 有时 xff0c 开发者会将经常调用的对象或者变量定义为static xff
  • Linux系统安装docker并用ssh登录docker容器

    说明 xff1a 我使用的是Centos安装docker 第一步 xff1a 安装docker sudo yum install y yum utils sudo yum config manager add repo https down
  • 码云使用简介

    1 xff0c 何为码云 xff1f 码云属于中国的一个代码托管平台 xff0c 由 OSCHINA NET推出 简单说 xff0c 相当于GitHub的精简版 xff0c 对像小编这样英文盲显得更为友善 xff01 2 xff0c 下载及
  • Centos7搭建KVM虚拟化环境

    如果觉得写得不错 xff0c 烦请微信搜索公众号 34 郑州行疆户外 34 了解程序员的户外业余喜好 1 查看系统版本 root 64 openstack cat etc centos release CentOS Linux releas
  • Linux字符驱动之主设备号与次设备号

    drv demo c include lt linux version h gt include lt linux init h gt include lt linux module h gt include lt linux pci h
  • linux 更新内核,安装内核树

    https www cnblogs com williamjie p 10723919 html
  • x86计算CPU频率示例

    include lt stdio h gt include lt stdlib h gt include lt assert h gt include lt stdint h gt include lt string h gt includ
  • SM2 签名预处理操作

    如果觉得写得不错 xff0c 烦请微信搜索公众号 34 郑州行疆户外 34 了解程序员的户外业余喜好 转载 xff1a https www xuebuyuan com 1473900 html 一般情况下 xff0c 计算数字签名时应执行以
  • dataset中shuffle()、repeat()、batch()用法

    import numpy as np import tensorflow as tf np random seed 0 x 61 np random sample 11 2 make a dataset from a numpy array
  • Linux内核模块编程,多源码Makefile编写

    https mp csdn net console editor html 107838044 在学习内核模块编程的时候遇到了一些由于Makefile书写不正确导致的问题 一个 c源文件的Makefile按照网上的大部分资料介绍那样是没有问
  • 分组加密, 算法模式(ECB CBC CFB OFB)

    如果觉得写得不错 xff0c 烦请微信搜索公众号 34 郑州行疆户外 34 了解程序员的户外业余喜好 块加密 块加密 xff0c 英文Block Cyper xff0c 又称分组加密 xff0c 是一种常见的对称加密 xff0c 具有代表性
  • Linux UIO机制--用户空间I / O操作方法

    目录 前言 关于UIO UIO 的工作原理 前言 于许多类型的设备 xff0c 创建Linux内核驱动程序是过分的 真正需要的只是某种方式来处理中断并提供对设备存储空间的访问 控制设备的逻辑不必一定要在内核之内 xff0c 因为设备不需要利
  • Linux UIO驱动实例介绍

    接上一篇介绍UIO机制 https blog csdn net hpu11 article details 109395820 uio驱动详解 为了用最简单的例子说明问题 xff0c 我们在我们uio驱动的内核部分只映射了一块1024字节的

随机推荐

  • Mosquitto服务安装与使用---入门操作介绍

    关于Mosquitto配置的资料网上还是有几篇的 xff0c 但是看来看去 xff0c 基本上都是基于Linux 基于Window的凤毛麟角 xff0c 看上去貌似配置的东西相差不大 xff0c 实操过程中真的烦透了 xff0c 配置就是不
  • Windows 11 系统下载,正式版尚未发布

    下载链接方式 xff1a 关注 郑州行疆户外 程序员自己的订阅号 xff0c 回复 win11 xff0c 获取win11系统下载链接 一 发布 今年5月的Build大会 xff0c 微软便正式明确新一代操作系统为Windows 11 xf
  • Windows 11 系统下载安装 教程

    关 注 郑州行疆户外 订阅号 xff0c 回复 win11 xff0c 获取win11系统下载链接 xff0c 安装教程 说明 Windows11系统安装教程 xff0c 这里使用VM虚拟机演示具体安装教程 xff0c 如果是新手 xff0
  • Windows 11 TPM2.0问题及解决方法

    关注 郑州行疆户外 订阅号 回复 win11 xff0c 下载 windows11系统 回复 问题 xff0c 查看 windows11安装过程中遇到的问题及其解决方法 随着2021年6月24日 xff0c 微软正式发布会上确定windon
  • linux的dma驱动

    硬件平台 xff1a TI的3530 内核 xff1a linux 2 6 36 功能 xff1a 将fpga的数据从内存的一个地方复制到内存另一个地方 初学dma感到很是吃力 xff0c 编写的内核驱动代码仔细看了一个星期 xff0c 才
  • linux内核的并发与竞态

    并发与竞态是指多个任务单元同时访问同一个资源 xff0c 就会出现并发 xff0c 竞态的现象 其中多个任务单元包括中断 xff0c 进程 线程 xff0c 甚至多个多处理器 xff1b 同一资源既包含硬件资源 xff0c 也包括软件数据
  • UDP通信

    头文件 xff1a 1 pragma once 2 3 include lt stdio h gt 4 include lt unistd h gt 5 include lt string h gt 6 include lt stdlib
  • 交叉编译找不到stdio.h头文件,make menuconfig问题解决办法

    今天测试交叉编译器总出现问题 xff0c fatal error stdio h No such file or directory 后来根据指导使用编译命令 xff1a arm linux gcc src c I 头文件路径 能编译通过
  • 原子上下文,进程上下文,中断上下文的详细解析

    内核空间和用户空间是现代操作系统的两种工作模式 xff0c 内核模块运行在内核空间 xff0c 而用户态应用程序运行在用户空间 它们代表不同的级别 xff0c 而对系统资源具有不同的访问权限 内核模块运行在最高级别 xff08 内核态 xf
  • server,gtk,tslib

    一 首先先说下framebuffer xserver tslib gtk和桌面这五者之间的联系 xff0c 1 framebuffer 即linux系统的一块内存区域 xff0c 往这块区域写东西屏幕就会有所显示 对应的设备文件是dev f
  • 修改启动logo,禁止光标

    linux内核下使用的图片文件类型是pnm和PPm格式的 xff0c 所以在开始介绍修改linux内核启动LOGO之前 xff0c 1 先需要介绍一下怎么样设计自己开始logo的ppm图片 xff0c 首先选择一张png格式的图片 xff0
  • 移植gtk,这个配置有点早,可以了解一下他的工作流程

    最近一直GTK xff0c 感觉好晕 整整耗了我近三天才勉强在网络资料和他人帮助情况下完成 所以记录一下 xff0c 不然我记性太差 xff0c 很可能下班之前就忘了 xff01 以后也好有个参考 首先注意一个问题 xff1a GTK在编译
  • error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]

    这个错误多为编写linux驱动程序时出现的错误 xff0c 正常情况下是以警告出现的 xff0c 一般有两种情况 xff1a 1 在函数体内 xff0c 定义变量代码前边出现非定义的变量 此变量在其他地方已经定义了 xff0c 编译时就会出
  • 用户空间的虚拟地址如何转换得到实际的物理地址

    思路 xff1a 进程号是一个进程在用户空间的唯一标示 xff0c 所以 xff0c 根据pid可以从内核中得到一个进程的所有信息 xff0c 另外就是知道虚拟地址就可以通过内核物理地址映射到虚拟地址的逆运算就可以还原他的实际物理地址 以上
  • ubuntu系统下的minicom串口/usb转串口配置

    1 安装minicom串口软件 sudo apt get install minicom 2 配置串口 minicom默认配置是tty8 如果你直接使用的就是串口 xff0c 那么安装好之后就可以直接使用了 如果你是用usb转串口 xff0
  • Install ncurses (ncurses-devel) and try again.

    主要就是终端图形配置时最容易出现的问题 xff0c 比如最常见的make menuconfig xff0c 解决方法 xff1a sudo apt get install ncurses devel 屏幕弹出 xff1a 找不到这个软件 x
  • ioremap/mmap的几个测试结论

    环境 xff1a pc机 xff0c ubuntu 14 04 64位 xff0c 物理机 arm板 omap3530 xff0c 1G内存 xff0c 内核linux 2 6 32 1 mmap在pc机上测试映射大小 xff0c 可以将文
  • Freertos的钩子函数

    何谓钩子函数 xff1f 大多数操作系统 xff0c 如 xff1a windows linux ucos freertos 其实都有钩子函数 xff0c 能干什么呢 xff1f 其实就是操作系统留给开发者的一个回调函数 xff0c 具体有
  • fopen :invalid argument错误

    今天使用文件操作函数 xff1a fopen fread fwrite fclose时 xff0c 编译正常通过了 xff0c 但是运行时就爆出了invalid argument错误 FILE fp 61 fopen 34 a txt 34
  • jiffies:内核中的时间观念

    jiffies在内核中是一个全局变量 xff0c 声明包含在 include lt linux jiffies h gt 中 xff0c 几个内核中常用的的概念 xff1a 1 HZ 内核常量 ARM架构HZ 61 100 X86架构HZ