新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Linux(ARM-S3C2410)內(nèi)核滴答定時(shí)器驅(qū)動(dòng)

Linux(ARM-S3C2410)內(nèi)核滴答定時(shí)器驅(qū)動(dòng)

作者: 時(shí)間:2016-11-11 來(lái)源:網(wǎng)絡(luò) 收藏
/*============================================================*/
與硬件平臺(tái)相關(guān)
/*============================================================*/

1):arch/arm/plat-s3c24xx/time.c
static void__init s3c2410_timer_init (void)
{
s3c2410_timer_setup();
setup_irq(IRQ_TIMER4, &s3c2410_timer_irq);
}



2): arch/arm/plat-s3c24xx/time.c
static irqreturn_t s3c2410_timer_interrupt(int irq, void *dev_id)
{
timer_tick();
return IRQ_HANDLED;
}


3): arch/arm/kernel/time.c
void timer_tick(void)
{
...
do_timer(1);
...
}
/*=============================================================*/
與平臺(tái)無(wú)關(guān)
/*=============================================================*/
4): kernel/timer.c
voiddo_timer(unsigned long ticks)
{
jiffies_64 += ticks; //為kernel的時(shí)鐘滴答計(jì)數(shù)增加1,表明硬件產(chǎn)生了一次時(shí)鐘中斷
update_wall_time();
calc_global_load();
}

5): 所有的系統(tǒng)調(diào)度都依賴(lài)這個(gè)定時(shí)器.


評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉