Linux 为什么';t是否在/proc/interrupts中启用rtc中断显示?

Linux 为什么';t是否在/proc/interrupts中启用rtc中断显示?,linux,timer,linux-kernel,real-time,Linux,Timer,Linux Kernel,Real Time,我已经编写了一个简单的应用程序来启用rtc中断 #包括 #包括 #包括 #包括 int main(){ int fd=open(“/dev/rtc0”,仅限ordu); int赫兹=64; 如果(ioctl(fd,RTC\U IRQP\U设置,hz)=-1){ printf(“ioctl(RTC_IRQP_SET)失败”); 返回1; } 如果(ioctl(fd,RTC开)=-1){ printf(“ioctl(RTC打开)失败”); 返回1; } } 在它运行之后,我希望中断

我已经编写了一个简单的应用程序来启用rtc中断

#包括
#包括
#包括
#包括
int main(){
int fd=open(“/dev/rtc0”,仅限ordu);
int赫兹=64;
如果(ioctl(fd,RTC\U IRQP\U设置,hz)=-1){
printf(“ioctl(RTC_IRQP_SET)失败”);
返回1;
}    
如果(ioctl(fd,RTC开)=-1){
printf(“ioctl(RTC打开)失败”);
返回1;
}    
}
在它运行之后,我希望中断显示在IRQ8下的
/proc/interrupts

发件人:

然而,它也可以用来产生从2Hz到1Hz的信号 相对较快的8192Hz,以2的幂递增。这些信号 由中断号8报告。(哦!这就是IRQ 8 对于…)它还可以作为24小时警报,当 闹钟响了

但是没有变化。

8:01 IO APIC edge rtc0


他仍然保持被动。我在这里遗漏了什么?

答案是周期性中断(PIE)是使用计时器或hrtimer(取决于您的机器)实现的,而不是RTC。你可以看看:


基本上,当您设置警报时,您只会收到一个中断。

问得好!有趣的是,如果你把
charbuf[8];对于(int i=0;i<64;++i)读取(fd,buf,sizeof(buf))
程序按预期取1s。所以它在工作,但是中断仍然不被计算。你读了吗。你不需要RTC来获得时间!显示整个
/proc/中断