Linux(ARM-S3C2410)内核滴答定时器驱动
时间:11-11
来源:互联网
点击:
/*============================================================*/
与硬件平台相关
/*============================================================*/
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);
...
}
/*=============================================================*/
与平台无关
/*=============================================================*/
4): kernel/timer.c
voiddo_timer(unsigned long ticks)
{
jiffies_64 += ticks; //为kernel的时钟滴答计数增加1,表明硬件产生了一次时钟中断
update_wall_time();
calc_global_load();
}
5): 所有的系统调度都依赖这个定时器.
与硬件平台相关
/*============================================================*/
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);
...
}
/*=============================================================*/
与平台无关
/*=============================================================*/
4): kernel/timer.c
voiddo_timer(unsigned long ticks)
{
jiffies_64 += ticks; //为kernel的时钟滴答计数增加1,表明硬件产生了一次时钟中断
update_wall_time();
calc_global_load();
}
5): 所有的系统调度都依赖这个定时器.
LinuxARMS3C2410定时器驱 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)