全局变量jiffies用来记录自系统启动以来产生的节拍的总数。启动时,内核将该变量初始化为0,此后,每次时钟中断处理程序都会增加该变量的值。一秒内时钟中断的次数等于Hz,所以jiffies一秒内增加的值也就是Hz。

系统运行时间以秒为单位,等于jiffies/Hz。

注意,jiffies类型为无符号长整型(unsigned long),其他任何类型存放它都不正确。

将以秒为单位的时间转化为jiffies:

seconds * Hz

将jiffies转化为以秒为单位的时间:

jiffies / Hz

实验使用1:记下2个函数之间的间隔。

> unsigned long lcd_on_tick;

> unsigned long lcd_off_tick;

> unsigned long lcd_keep_tick;

>         void lcd_on(void)

>        {

> lcd_on_tick=jiffies;//记下当前时间

> printk("lcd_on_tick = %ld",lcd_on_tick);}

>        void lcd_off(void)

>        {

>         lcd_off_tick=jiffies;

> printk("lcd_off_tick = %ld ",lcd_off_tick);//记下当前时间

>

>          lcd_keep_tick=lcd_off_tick-lcd_on_tick;

> printk("lcd_off_tick - lcd_on_tick = %ld

> ms",lcd_keep_tick*1000/HZ);//计算出2者间隔多少ms 通过log显示还是非常准的

> }

>

> <4>[  144.288757] lcd_on_tick = -15571

> <6>[  144.289093] lcdc_truly_gpio_init: lcdc_gpio_initialized = 1

> <6>[  144.289825] lcdc_gordon_panel_on

> <3>[  144.510650] [TP]cap_touch_screen_set_reset: Set RESET: 0

> <3>[  144.511840] [TP]cap_touch_screen_set_reset: Set RESET: 1

> <6>[  144.562561] gt818 1-005d:  Guitar Version: 0x00.0x83

> <7>[  144.570892] BATT: msm_battery_late_resume

> <4>[  144.571441] [MSM_BATT] msm_batt_set_compensation:

> batt_compensation=0

> <6>[  145.384063] request_suspend_state: sleep (0->3) at 145385327712

> (2012-09-21 11:26:02.976361082 UTC)

> <7>[  145.384277] BATT: msm_battery_early_suspend

> <4>[  145.386718] [MSM_BATT] msm_batt_set_compensation:

> batt_compensation=1

> <6>[  145.389465] Send suspend cmd

> <4>[  145.498809] lcd_off_tick = -15450 lcd_off_tick - lcd_on_tick =

> 1210 ms

所以如果有需要比较2个函数执行时间间隔就有用处了,用的情况还是还多的。这里只是一点小用法。

2:设置超时

unsigned long timeout = jiffies + tick_rate * 2; // 2秒钟后超时

 if(time_before(jiffies, timeout){

// 还没有超时

}

else{

// 已经超时

}

总结:

HZ为1s    jiffies类型unsigned long  。    HZ=1000时 1jiffies = 1ms    HZ=100时 1jiffies=10ms

高通平台默认1HZ = 100 jiffies

如何改HZ=1000?

内核态的HZ需要位1000,就是1 jiffies 为1ms,应该是修改/arch/arm/Kconfig    default 1000
config HZ
    int
    default 200 if ARCH_EBSA110 || ARCH_S3C24XX || ARCH_S5P64X0 || \
        ARCH_S5PV210 || ARCH_EXYNOS4
    default OMAP_32K_TIMER_HZ if ARCH_OMAP && OMAP_32K_TIMER
    default AT91_TIMER_HZ if ARCH_AT91
    default SHMOBILE_TIMER_HZ if ARCH_SHMOBILE
    default 1000

jiffies机制及其实验与使用 jiffies与HZ换算相关推荐

  1. linux查询jiffies命令,关于linux:将jiffies转换为秒

    我有一段用户空间代码,该代码正在解析/ proc / PID / task / TID / stat以获取cpu的使用情况. 我可以使用HZ来获取每秒的跳动,但是此代码可以移动到另一台具有不同配置值的 ...

  2. C++中消息机制阻塞实验

    VC6标准WIN32程序,Windows消息处理机制: 1.在注册窗口类时,指定了消息处理函数WndProc(). 2.WinMain()里有消息循环: while (GetMessage(& ...

  3. 浙江大学PTA C语言-实验9 结构程序设计 7-2 时间换算

    7-2 时间换算 (15分) 本题要求编写程序,以hh:mm:ss的格式输出某给定时间再过n秒后的时间值(超过23:59:59就从0点开始计时). 输入格式: 输入在第一行中以hh:mm:ss的格式给 ...

  4. linux HZ Tick Jiffies

    1.linux HZ Linux核心几个重要跟时间有关的名词或变数,底下将介绍HZ.tick与jiffies. HZ Linux核心每隔固定周期会发出timer interrupt (IRQ 0),H ...

  5. arm linux hz,需要了解的linux HZ Tick Jiffies

    Linux核心几个重要跟时间有关的名词或变数,底下将介绍HZ.tick与jiffies. HZ Linux核心每隔固定周期会发出TImer interrupt (IRQ 0),HZ是用来定义每一秒有几 ...

  6. linux内核中的jiffies,Linux内核中的jiffies及其作用介绍及jiffies等相关函数详解

    在LINUX的时钟中断中涉及至二个全局变量一个是xtime,它是timeval数据结构变量,另一个则是jiffies,首先看timeval结构 struct timeval { time_t tv_s ...

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

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

  8. linux查询jiffies命令,linux HZ Tick Jiffies

    HZ的不同值会影响timer (节拍)中断的频率 2.2 jiffies及其溢出 全局变量jiffies取值为自操作系统启动以来的时钟滴答的数目,在头文 件中定义,数据类型为unsigned long ...

  9. 在linux内核中获得比jiffies精度更高的时间值【转】

    转自:http://blog.chinaunix.net/uid-20672257-id-2831219.html 内核一般通过jiffies值来获取当前时间.尽管该数值表示的是自上次系统启动到当前的 ...

最新文章

  1. 计算机类和鼠标类是什么关系,常见鼠标的种类
  2. linux机群下NFS+NIS服务的搭建以及MPICH的简单安装
  3. VTK:可视化算法之CutStructuredGrid
  4. linux平台及windows平台mysql重启方法
  5. 如何查看自己的Github仓库占据了多少存储空间
  6. [转载]名字长的麻烦
  7. development period
  8. Mysql客户端的安装
  9. 血泪安装caffe教程
  10. 微软原版win10系统启动盘的制作
  11. 各种手持式条形码扫描仪的优缺点
  12. matlab中ga函数的用法,[转载]MATLAB中自带遗传算法函数GA的用法
  13. 如何在jsp中写一个弹窗
  14. JavaScript基本数据类型之String 和 Boolean
  15. available: expected at least 1 bean which qualifies as autowire candidate
  16. React-Cropper实现图片裁剪
  17. pytorch学习笔记(八):PytTorch可视化工具 visdom
  18. 在anaconda中git找不到命令,可能是设置的git环境变量路径包含中文
  19. 2018最新史上最全SpringBoot视频教程(完整)
  20. CSS重复线性渐变之画格子

热门文章

  1. 【实战】轻轻松松使用StyleGAN(一):创建令人惊讶的黄种人脸和专属于自己的老婆动漫头像
  2. 【笔记】为什么现代人变得越来越娱乐至死
  3. week15作业A ZJM 与霍格沃兹
  4. K-D 树, 高维空间索引
  5. java $ 怎样用_jsp中$是什么意思?怎么用?
  6. 自动调节式防涝井盖设计
  7. Gvim计数器模板经典练习
  8. Physically Based Rendering——史上最容易理解的BRDF中D函数NDF的中文资料
  9. android视频编辑好,安卓比较好用的视频剪辑软件 手机视频剪辑软件推荐
  10. 什么是逻辑卷管理器lvm?lvm设备的管理