加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_阳江站长网 (https://www.0662zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

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

发布时间:2016-05-16 20:25:25 所属栏目:Linux 来源:站长网
导读:摘要: 本文主要从内核实现的角度分析了Linux 2.4.0内核的时钟中断、内核对时间 的表示等。本文是为那些想要了解Linux I/O子系统的读者和Linux驱动程序开发 人

PC机BIOS对其默认的设置值是“0110”。

状态寄存器B的格式如下所示:

各位的含义如下:

(1)bit[7]——SET标志。为1表示RTC的所有更新过程都将终止,用户程 序随后马上对日历寄存器组中的值进行初始化设置。为0表示将允许更新过程继 续。

(2)bit[6]——PIE标志,周期性中断使能标志。

(3)bit[5]——AIE标志,告警中断使能标志。

(4)bit[4]——UIE标志,更新结束中断使能标志。

(5)bit[3]——SQWE标志,方波信号使能标志。

(6)bit[2]——DM标志,用来控制日历寄存器组的数据模式,0=BCD,1 =BINARY。BIOS总是将它设置为0。

(7)bit[1]——24/12标志,用来控制hour寄存器,0表示12小时制,1表 示24小时制。PC机BIOS总是将它设置为1。

(8)bit[0]——DSE标志。BIOS总是将它设置为0。

状态寄存器C的格式如下:

(1)bit[7]——IRQF标志,中断请求标志,当该位为1时,说明寄存器B中 断请求发生。

(2)bit[6]——PF标志,周期性中断标志,为1表示发生周期性中断请求 。

(3)bit[5]——AF标志,告警中断标志,为1表示发生告警中断请求。

(4)bit[4]——UF标志,更新结束中断标志,为1表示发生更新结束中断 请求。

状态寄存器D的格式如下:

(1)bit[7]——VRT标志(Valid RAM and Time),为1表示OK,为0表示 RTC已经掉电。

(2)bit[6:0]——总是为0,未定义。

1.2 通过I/O端口访问RTC

在PC机中可以通过I/O端口0x70和0x71来读写RTC芯片中的寄存器。其中,端 口0x70是RTC的寄存器地址索引端口,0x71是数据端口。

读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

(编辑:应用网_阳江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!