linux mips 时钟中断,Linux内核中地时钟中断.pdf
Linux内核中地时钟中断
Linux 内核中的时钟中断
第七章 Linux 内核的时钟中断
(By 詹荣开,NUDT)
Copyright © 2003 by 詹荣开
E-mail:zhanrk@
Linux-2.4.0
Version 1.0.0,2003-2-14
摘要:本文主要从内核实现的角度分析了Linux 2.4.0 内核的时钟中断、内核对时间的表示等。本文是
为那些想要了解Linux I/O 子系统的读者和Linux 驱动程序开发人员而写的。
关键词:Linux、时钟、定时器
申明:这份文档是按照自由软件开放源代码的精神发布的,任何人可以免费获得、使用和重新发布,
但是你没有限制别人重新发布你发布内容的权利。发布本文的目的是希望它能对读者有用,但没有任
何担保,甚至没有适合特定目的的隐含的担保。更详细的情况请参阅GNU 通用公共许可证(GPL),以
及GNU 自由文档协议(GFDL)。
你应该已经和文档一起收到一份GNU 通用公共许可证(GPL)的副本。如果还没有,写信给:
The Free Software Foundation, Inc., 675 Mass Ave, Cambridge,MA02139, USA
欢迎各位指出文档中的错误与疑问。
第 1 页
Linux 内核中的时钟中断
前言
时间在一个操作系统内核中占据着重要的地位,它是驱动一个OS 内核运行的“起博器”。一般说来,
内核主要需要两种类型的时间:
1. 在内核运行期间持续记录当前的时间与日期,以便内核对某些对象和事件作时间标记(timestamp,
也称为“时间戳”),或供用户通过时间syscall 进行检索。
2. 维持一个固定周期的定时器,以提醒内核或用户一段时间已经过去了。
PC 机中的时间是有三种时钟硬件提供的,而这些时钟硬件又都基于固定频率的晶体振荡器来提供时
钟方波信号输入。这三种时钟硬件是:(1)实时时钟(Real Time Clock,RTC);(2)可编程间隔定时器
(Programmable Interval Timer,PIT);(3)时间戳计数器(Time Stamp Counter,TSC)。
7.1 时钟硬件
7.1.1 实时时钟RTC
自从IBM PC AT 起,所有的PC 机就都包含了一个叫做实时时钟(RTC)的时钟芯片,以便在PC 机
断电后仍然能够继续保持时间。显然,RTC 是通过主板上的电池来供电的,而不是通过PC 机电源来供电
的,因此当PC 机关掉电源后,RTC 仍然会继续工作。通常,CMOS RAM 和RTC 被集成到一块芯片上,
因此RTC 也称作“CMOS Timer”。最常见的RTC 芯片是MC146818(Motorola)和DS12887(maxim),
DS12887 完全兼容于MC 146818,并有一定的扩展。本节内容主要基于MC 146818 这一标准的RTC 芯片。
具体内容可以参考MC146818 的Datasheet。
7.1.1.1 RTC 寄存器
MC146818 RTC 芯片一共有64 个寄存器。它们的芯片内部地址编号为0x00~0x3F(不是I/O 端口地
址),这些寄存器一共可以分为三组:
(1)时钟与日历寄存器组:共有 10 个(0x00~0x09),表示时间、日历的具体信息。在PC 机中,这
些寄存器中的值都是以BCD 格式来存储的(比如23dec=0x23BCD)。
(2)状态和控制寄存器组:共有4 个(0x0A~0x0D),控制RTC 芯片的工作方式,并表示当前的状态。
(3)CMOS 配置数据:通用的CMOS RAM,它们与时间无关,因此我们不关心它。
时钟与日历寄存器组的详细解释如下:
Address Function
00 Current second for RTC
01 Alarm second
02 Current minute
03 Alarm minute
linux mips 时钟中断,Linux内核中地时钟中断.pdf相关推荐
- mips 内存 linux,MIPS 在linux中的内存映射
如图: 一些说明: 1.内核从什么地方开始运行:MIPS Linux内核的代码构建为在kseg0区运行:虚拟地址从0x80000000向上.这个范围的地址仅仅是一个到物理内存低512MB的窗口,无需T ...
- Linux驱动模块编译进内核中
BQ27501驱动编译进内核 一. 驱动程序编译进内核的步骤 在 linux 内核中增加程序需要完成以下三项工作: 1. 将编写的源代码复制到 Linux 内核源代码的相应目录: 2. 在 ...
- Linux进程管理:内核中的优先级继承互斥(rtmutex.h):防止优先级反转
目录 Priority inheritance in the kernel 译文 Priority inheritance in the kernel https://lwn.net/Articles ...
- Linux服务器(centos7)中Word转换PDF,文档出现中文乱码或方格【亲测可用,已解决】
提示:在centos服务器使用aspose.word转换word文件为pdf的时候只有中文乱码或则方格,但是在win服务器上使用可以正常转换.本次文章主要解决字体缺失问题 目录 前言 一.在linux ...
- 用户的虚拟地址 linux 0 4gb,Linux驱动虚拟地址和物理地址的映射
一般情况下,Linux系统中,进程的4GB内存空间被划分成为两个部分------用户空间和内核空间,大小分别为0~3G,3~4G. 用户进程通常情况下,只能访问用户空间的虚拟地址,不能访问到内核空间. ...
- linux 保留内核中sas驱动的加载导致crash问题
[root@localhost ~]# uname -a Linux localhost.localdomain 3.10.0-693.5.2.el7.x86_64 问题描述,在crash的时候,小内 ...
- 在linux内核中获得比jiffies精度更高的时间值【转】
转自:http://blog.chinaunix.net/uid-20672257-id-2831219.html 内核一般通过jiffies值来获取当前时间.尽管该数值表示的是自上次系统启动到当前的 ...
- Linux 2.6内核中新的锁机制--RCU [转]
2005 年 7 月 01 日 本文详细地介绍了 Linux 2.6 内核中新的锁机制 RCU(Read-Copy Update) 的实现机制,使用要求与典型应用. 一. 引言 众所周知,为了保护共享 ...
- linux内核hz,linux内核中的HZ介绍
时钟中断由系统定时硬件以周期性的间隔产生,这个间隔由内核根据 HZ 值来设定,HZ 是一个体系依赖的值,在 中定义或该文件包含的某个子平台相关文件中.作为通用的规则,即便如果知道 HZ 的值,在编程时 ...
最新文章
- 最全正則表達式汇总—想要的都有了
- 常用eclipse插件集合, 持续更新
- 系统集成项目管理工程师-项目沟通管理笔记
- 【Android 安装包优化】资源混淆 ( resources.arsc 资源映射表混淆 | resources.arsc 资源映射表二进制格式分析 | 混淆全局字符串池和资源名称字符串池 )
- 15个相当不错的jQuery技巧
- SpringBoot笔记(二)
- 非线性回归模型(part3)--K近邻
- where is flag GV_IMMEDIATE_RESTART marked in SAP CRM WebClient UI
- 一年翻 3 倍,装机量 6 亿台的物联网操作系统又放大招!
- R之data.table速查手册
- 让你变懒的 Android Studio Live Templates
- USB接线定义和链接摄像头
- 温控PLC三菱风机程序设计多路多路风机,温度控制,时间控制
- js 如何计算当年清明节日期
- 91pay.php,电商网站使用支付宝转账付款功能代替支付宝支付接口
- mysql 周几_Mysql的日期转换成星期[某天对应周几]
- mtk插u盘如何休眠?_iOS13.3.1 U盘越狱卡代码问题,你也是吗?
- LNK 2001错误
- QPluginLoader 加载插件dll失败
- nexus配置阿里云仓库