日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

Linux操作系統(tǒng)內(nèi)核的時鐘中斷機制( 二 )


DV2 DV1 DV0;
0 0 0 4.194304 MHZ NO YES;
0 0 1 1.048576 MHZ NO YES;
0 1 0 32.769 KHZ NO YES;
1 1 0/1 任何 YES NO
PC機通常將Divider bits設(shè)置成“010” 。
(3)bit[3:0]——速率選擇位(Rate Selection bits),用于周期性或方波信號輸出 。
RS bits 4.194304或1.048578 MHZ 32.768 KHZ
RS3 RS2 RS1 RS0 周期性中斷 方波 周期性中斷 方波

0 0 0 0 None None None None;
0 0 0 1 30.517μs 32.768 KHZ 3.90625ms 256 HZ;
0 0 1 0 61.035μs 16.384 KHZ;
0 0 1 1 122.070μs 8.192KHZ;
0 1 0 0 244.141μs 4.096KHZ;
0 1 0 1 488.281μs 2.048KHZ;
0 1 1 0 976.562μs 1.024KHZ;
0 1 1 1 1.953125ms 512HZ;
1 0 0 0 3.90625ms 256HZ;
1 0 0 1 7.8125ms 128HZ;
1 0 1 0 15.625ms 64HZ;
1 0 1 1 31.25ms 32HZ;
1 1 0 0 62.5ms 16HZ;
1 1 0 1 125ms 8HZ;
1 1 1 0 250ms 4HZ;
1 1 1 1 500ms 2HZ
PC機BIOS對其默認的設(shè)置值是“0110” 。
狀態(tài)寄存器B的格式如下所示:
各位的含義如下:
(1)bit[7]——SET標志 。為1表示RTC的所有更新過程都將終止,用戶程序隨后馬上對日歷寄存器組中的值進行初始化設(shè)置 。為0表示將允許更新過程繼續(xù) 。
(2)bit[6]——PIE標志,周期性中斷使能標志 。
(3)bit[5]——AIE標志,告警中斷使能標志 。
(4)bit[4]——UIE標志,更新結(jié)束中斷使能標志 。
(5)bit[3]——SQWE標志,方波信號使能標志 。
(6)bit[2]——DM標志,用來控制日歷寄存器組的數(shù)據(jù)模式,0=BCD,1=BINARY 。BIOS總是將它設(shè)置為0 。
(7)bit[1]——24/12標志,用來控制hour寄存器,0表示12小時制,1表示24小時制 。PC機BIOS總是將它設(shè)置為1 。
(8)bit[0]——DSE標志 。BIOS總是將它設(shè)置為0 。
狀態(tài)寄存器C的格式如下:
(1)bit[7]——IRQF標志,中斷請求標志,當該位為1時,說明寄存器B中斷請求發(fā)生 。
(2)bit[6]——PF標志,周期性中斷標志,為1表示發(fā)生周期性中斷請求 。
(3)bit[5]——AF標志,告警中斷標志,為1表示發(fā)生告警中斷請求 。
(4)bit[4]——UF標志,更新結(jié)束中斷標志,為1表示發(fā)生更新結(jié)束中斷請求 。
狀態(tài)寄存器D的格式如下:
(1)bit[7]——VRT標志(Valid RAM and Time),為1表示OK,為0表示RTC已經(jīng)掉電 。
(2)bit[6:0]——總是為0,未定義 。
1.2 通過I/O端口訪問RTC
在PC機中可以通過I/O端口0x70和0x71來讀寫RTC芯片中的寄存器 。其中,端口0x70是RTC的寄存器地址索引端口,0x71是數(shù)據(jù)端口 。
讀RTC芯片寄存器的步驟是:

mov al, addr;
out 70h, al ; Select reg_addr in RTC chip;
jmp $ 2 ; a slight delay to settle thing;
in al, 71h ;
寫RTC寄存器的步驟如下:

mov al, addr;
out 70h, al ; Select reg_addr in RTC chip;
jmp $ 2 ; a slight delay to settle thing;
mov al, value;
out 71h, al
1.3 可編程間隔定時器PIT
每個PC機中都有一個PIT,以通過IRQ0產(chǎn)生周期性的時鐘中斷信號 。當前使用最普遍的是Intel 8254 PIT芯片,它的I/O端口地址是0x40~0x43 。
Intel 8254 PIT有3個計時通道,每個通道都有其不同的用途:
(1) 通道0用來負責(zé)更新系統(tǒng)時鐘 。每當一個時鐘滴答過去時,它就會通過IRQ0向系統(tǒng)產(chǎn)生一次時鐘中斷 。
(2) 通道1通常用于控制DMAC對RAM的刷新 。
(3) 通道2被連接到PC機的揚聲器,以產(chǎn)生方波信號 。
每個通道都有一個向下減小的計數(shù)器,8254 PIT的輸入時鐘信號的頻率是1193181HZ,也即一秒鐘輸入1193181個clock-cycle 。每輸入一個clock-cycle其時間通道的計數(shù)器就向下減1,一直減到0值 。因此對于通道0而言,當他的計數(shù)器減到0時,PIT就向系統(tǒng)產(chǎn)生一次時鐘中斷,表示一個時鐘滴答已經(jīng)過去了 。當各通道的計數(shù)器減到0時,我們就說該通道處于“Terminal count”狀態(tài) 。

推薦閱讀