linux mips 时钟中断,Linux内核中地时钟中断.pdf
Linux內(nèi)核中地時鐘中斷
Linux 內(nèi)核中的時鐘中斷
第七章 Linux 內(nèi)核的時鐘中斷
(By 詹榮開,NUDT)
Copyright ? 2003 by 詹榮開
E-mail:zhanrk@
Linux-2.4.0
Version 1.0.0,2003-2-14
摘要:本文主要從內(nèi)核實現(xiàn)的角度分析了Linux 2.4.0 內(nèi)核的時鐘中斷、內(nèi)核對時間的表示等。本文是
為那些想要了解Linux I/O 子系統(tǒng)的讀者和Linux 驅(qū)動程序開發(fā)人員而寫的。
關(guān)鍵詞:Linux、時鐘、定時器
申明:這份文檔是按照自由軟件開放源代碼的精神發(fā)布的,任何人可以免費獲得、使用和重新發(fā)布,
但是你沒有限制別人重新發(fā)布你發(fā)布內(nèi)容的權(quán)利。發(fā)布本文的目的是希望它能對讀者有用,但沒有任
何擔(dān)保,甚至沒有適合特定目的的隱含的擔(dān)保。更詳細的情況請參閱GNU 通用公共許可證(GPL),以
及GNU 自由文檔協(xié)議(GFDL)。
你應(yīng)該已經(jīng)和文檔一起收到一份GNU 通用公共許可證(GPL)的副本。如果還沒有,寫信給:
The Free Software Foundation, Inc., 675 Mass Ave, Cambridge,MA02139, USA
歡迎各位指出文檔中的錯誤與疑問。
第 1 頁
Linux 內(nèi)核中的時鐘中斷
前言
時間在一個操作系統(tǒng)內(nèi)核中占據(jù)著重要的地位,它是驅(qū)動一個OS 內(nèi)核運行的“起博器”。一般說來,
內(nèi)核主要需要兩種類型的時間:
1. 在內(nèi)核運行期間持續(xù)記錄當(dāng)前的時間與日期,以便內(nèi)核對某些對象和事件作時間標(biāo)記(timestamp,
也稱為“時間戳”),或供用戶通過時間syscall 進行檢索。
2. 維持一個固定周期的定時器,以提醒內(nèi)核或用戶一段時間已經(jīng)過去了。
PC 機中的時間是有三種時鐘硬件提供的,而這些時鐘硬件又都基于固定頻率的晶體振蕩器來提供時
鐘方波信號輸入。這三種時鐘硬件是:(1)實時時鐘(Real Time Clock,RTC);(2)可編程間隔定時器
(Programmable Interval Timer,PIT);(3)時間戳計數(shù)器(Time Stamp Counter,TSC)。
7.1 時鐘硬件
7.1.1 實時時鐘RTC
自從IBM PC AT 起,所有的PC 機就都包含了一個叫做實時時鐘(RTC)的時鐘芯片,以便在PC 機
斷電后仍然能夠繼續(xù)保持時間。顯然,RTC 是通過主板上的電池來供電的,而不是通過PC 機電源來供電
的,因此當(dāng)PC 機關(guān)掉電源后,RTC 仍然會繼續(xù)工作。通常,CMOS RAM 和RTC 被集成到一塊芯片上,
因此RTC 也稱作“CMOS Timer”。最常見的RTC 芯片是MC146818(Motorola)和DS12887(maxim),
DS12887 完全兼容于MC 146818,并有一定的擴展。本節(jié)內(nèi)容主要基于MC 146818 這一標(biāo)準(zhǔn)的RTC 芯片。
具體內(nèi)容可以參考MC146818 的Datasheet。
7.1.1.1 RTC 寄存器
MC146818 RTC 芯片一共有64 個寄存器。它們的芯片內(nèi)部地址編號為0x00~0x3F(不是I/O 端口地
址),這些寄存器一共可以分為三組:
(1)時鐘與日歷寄存器組:共有 10 個(0x00~0x09),表示時間、日歷的具體信息。在PC 機中,這
些寄存器中的值都是以BCD 格式來存儲的(比如23dec=0x23BCD)。
(2)狀態(tài)和控制寄存器組:共有4 個(0x0A~0x0D),控制RTC 芯片的工作方式,并表示當(dāng)前的狀態(tài)。
(3)CMOS 配置數(shù)據(jù):通用的CMOS RAM,它們與時間無關(guān),因此我們不關(guān)心它。
時鐘與日歷寄存器組的詳細解釋如下:
Address Function
00 Current second for RTC
01 Alarm second
02 Current minute
03 Alarm minute
總結(jié)
以上是生活随笔為你收集整理的linux mips 时钟中断,Linux内核中地时钟中断.pdf的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 记录下IDEA导入web项目遇到的web
- 下一篇: linux下看网卡版本,Linux下查看