linux操作系统内核的时钟中断机制

linux操作系统内核的时钟中断机制

ID:27561933

大小:83.50 KB

页数:7页

时间:2018-12-04

linux操作系统内核的时钟中断机制_第1页
linux操作系统内核的时钟中断机制_第2页
linux操作系统内核的时钟中断机制_第3页
linux操作系统内核的时钟中断机制_第4页
linux操作系统内核的时钟中断机制_第5页
资源描述:

《linux操作系统内核的时钟中断机制》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、Linux操作系统内核的时钟中断机制•摘要:木文主要从内核实现的角度分析了Linux2.4.0内核的时钟中断、内核对时间的表示等。本文是为那些想要丫解LinuxI/O子系统的读者和Linux驱动程式研发人员而写的。关键词:Linux、时钟、定时器中明:这份文件是按照免费软件开放原始码的精神发布的,所有人能免费获得、使用和重新发布,不过你没有限制别人重新发布你发布内容的权利。发布木文的目的是希望他能对读者有用,但没有所有担保,甚至没有适合特定A的的隐含的担保。更周详的情况请参阅GNU通用公共许可证(GPL),及GNU自由文件协

2、议(GFDL)。你应该已和文件一起收到一份GNU通用公共许可证(GPL)的副本。如果还没有,写信给:TheFreeSoftwareFoundation,Inc.,675MassAve,Cambridge,MA02139,USA欢迎各位指出文件屮的错误和疑问。前言时间在一个操作系统A核屮占据着重要的地位,他是驱动一个0S闪核运行的“起博器”。一般说来,内核主要需要两种类型的时间:1.在A核运行期间持续记荥当前的时间和口期,以便

3、Aj核对某些对象和事件作时间标记(timestamp,也称为“时间戳”),或供用户通过时间sysea

4、l1进行检索。2.维持一个固定周期的定时器,以提醒内核或用户一段时间己过去了。PC机中的时间是有三种时钟硬件提供的,而这些时钟硬件乂都基于固定频率的晶体振荡器来提供时钟方波信号输入。这三种时钟硬件是:(1)实时时钟(RealTimeClock,RTC);(2)可编程间隔定时器(ProgrammableIntervalTimer,PIT);(3)时间戳计数器(TimeStampCounter,TSC)o时钟硬件1、实时时钟RTC自从TBMPCAT起,所有的PC机就都包含了一个叫做实时时钟(RTC)的时钟芯片,以便在PC机断电后

5、仍然能够继续保持时间。显然,RTC是通过主板上的电池来供电的,而不是通过PC机电源来供电的,因此当PC机关掉电源后,RTC仍然会继续工作。通常,CMOSRAM和RTC被集成到一块芯片上,因此RTC也称作“CMOSTimer”。最常见的RTC芯片是MC146818(Motorola)和DS12887(maxim),DS12887完全兼容于MC146818,并有一定的扩展。木节内容主要基于MC146818这一标准的RTC芯片。具体内容能参考MC146818的Datasheet。1.1RTC寄存器MCI46818RTC芯片一共有6

6、4个寄存器。他们的芯片内部地址编号为0x00〜0x3F(不是I/O端1_1地址),这些寄存器一共能分为三组:(1)时钟和日历寄存器组:共有10个(0x00~0x09),表示时间、日历的具体信息。在PC机中,这些寄存器中的值都是以BCD格式来存储的(比如23dec=0x23BCD)。(2)状态和控制寄存器组:共有4个(OxOA〜OxOD),控制RTC芯片的工作方式,并表示当前的状态。(3)CMOS设置数据:通用的CMOSRAM,他们和时间无关,因此我们不关心他。时钟和日历寄存器组的周详解释如下:AddressFunction0

7、0CurrentsecondforRTC01Alarmsecond02Currentminute03Alarmminute04Currenthour05Alarmhour06Currentdayofweek(01=Sunday)07Currentdateofmonth08Currentmonth09Currentyear(finaltwodigits,eg:93)状态寄存器A(地址OxOA)的格式如下:其中:(1)bit(7)??UTP标志(UpdateinProgress),为1表示RTC正在更新FI历寄存器组中的值,此时

8、日历寄存器组是不可访问的(此时访问他们将得到一个无意义的渐变值)。(2)bit(6:4)??这三位是“除法器控制位”(divider-controlbits),用来定义RTC的操作频率。各种可能的值如下:DividerbitsTime-basefrequencyDividerResetOperationModeDV2DV1DVO0004.194304MHZNOYES0011.048576MHZNOYES01032.769KHZNOYES110/1所有YESNOPC机通常将Dividerbits设置成“010”。(3)bit(

9、3:0)??速率选择位(RateSelectionbits),用于周期性或方波信号输出。RSbits4.194304或1.048578MHZ32.768KHZRS3RS2RSIRSO周期性中断方波周期性中断方波0000NoneNoneNoneNone000130.517ns32.768KH

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。