当前位置: 技术问答>linux和unix
RTC通过IRQ0产生的时钟中断的作用?
来源: 互联网 发布时间:2016-08-07
本文导语: 在ARM硬件平台下,RTC通过IRQ0产生的时钟中断在系统中的作用是什么? 通常ARM Linux下的HZ,jiffies,时钟节拍的概念是针对RTC的时钟中断还是PIT的产生的时钟中断? | 哎呀,我误导你了 arm上的IRQ0不是RTC输入的 rtc...
在ARM硬件平台下,RTC通过IRQ0产生的时钟中断在系统中的作用是什么?
通常ARM Linux下的HZ,jiffies,时钟节拍的概念是针对RTC的时钟中断还是PIT的产生的时钟中断?
通常ARM Linux下的HZ,jiffies,时钟节拍的概念是针对RTC的时钟中断还是PIT的产生的时钟中断?
|
哎呀,我误导你了
arm上的IRQ0不是RTC输入的
rtc仅仅作为arm soc的片内器件
此外arm如s3c2410还有5组PIT,一般是拿这些PIT当做jiffies时钟中断
且在arm下再把这个jiffies相关的时钟中断叫做IRQ0就不合适了,编号可能不再是0了
cat /proc/interrupts 可见
以下代码使用的是IRQ_TIMER4中断作为ticks中断,即jiffies时钟中断
正规术语我讲不清楚,就是这个意思了
定时器timer4被编程控制,作为ticks中断,而不是RTC
static irqreturn_ts3c2410_timer_interrupt(int irq, void *dev_id)
{
timer_tick();
return IRQ_HANDLED;
}
static structirqactions3c2410_timer_irq = {
.name= "S3C2410 Timer Tick",
.flags= IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL,
.handler= s3c2410_timer_interrupt,
};
static void __init s3c2410_timer_init(void)
{
s3c2410_timer_resources();
s3c2410_timer_setup();
setup_irq(IRQ_TIMER4, &s3c2410_timer_irq);
}
structsys_timers3c24xx_timer= {
.init= s3c2410_timer_init,
.offset= s3c2410_gettimeoffset,
.resume= s3c2410_timer_setup
};
arm上的IRQ0不是RTC输入的
rtc仅仅作为arm soc的片内器件
此外arm如s3c2410还有5组PIT,一般是拿这些PIT当做jiffies时钟中断
且在arm下再把这个jiffies相关的时钟中断叫做IRQ0就不合适了,编号可能不再是0了
cat /proc/interrupts 可见
以下代码使用的是IRQ_TIMER4中断作为ticks中断,即jiffies时钟中断
正规术语我讲不清楚,就是这个意思了
定时器timer4被编程控制,作为ticks中断,而不是RTC
static irqreturn_ts3c2410_timer_interrupt(int irq, void *dev_id)
{
timer_tick();
return IRQ_HANDLED;
}
static structirqactions3c2410_timer_irq = {
.name= "S3C2410 Timer Tick",
.flags= IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL,
.handler= s3c2410_timer_interrupt,
};
static void __init s3c2410_timer_init(void)
{
s3c2410_timer_resources();
s3c2410_timer_setup();
setup_irq(IRQ_TIMER4, &s3c2410_timer_irq);
}
structsys_timers3c24xx_timer= {
.init= s3c2410_timer_init,
.offset= s3c2410_gettimeoffset,
.resume= s3c2410_timer_setup
};
|
关于你的问题最直接的回答,可参照
http://www.xijiaopen.com.cn/article/4895.htm
|
换句话说,内核需要时钟来定时对进程进行调度,比如时间片轮转。这是最直接与时间相关的。当然还有其它与时间有关的。比如块设备有一个进程kblockd,定时将i/O从队列请求里,要求驱动进行处理……………………
|
mark
太短了 接着mark
太短了 接着mark
|
没有时钟,CPU就不能分时,进程就不能调度,系统就会失去知觉。
|
再具体一点,去看《操作系统设计与实现》minix作者写的书。