|
uclinux-2.4.24-uc0支持44B0X开发板----Timer5的设置问题
在include/asm-armnommu/arch-S3C44B0X/time.h头文件中,有setup_timer()函数,原先的代码如下:
/* TODO: THE, 2003-08-13, do timer setup like in eCos */
#define S3C44B0X_TIMER5_PRESCALER 16
extern __inline__ void setup_timer (void)
{
......
period = (CONFIG_ARM_CLK/S3C44B0X_TIMER5_PRESCALER)/HZ;
outl(period, S3C44B0X_TCNTB5);
tmod=0;
tmod |= S3C44B0X_TCON_T5_MAN_UPDATE;
outl(tmod, S3C44B0X_TCON);
/* initialize the timer period and prescaler */
outl((5-1) << 16, S3C44B0X_TCFG0);
outl((0x3 <<20), S3C44B0X_TCFG1); /* prescale */
......
}
可以看出,TCFG0应该是prescale,而TCFG1是mux divider,现在prescale = 4, mux divider = 16, 那么period不就应该是
((CONFIG_ARM_CLK / 4) /16) / HZ, 而现在只是(CONFIG_ARM_CLK / 16)/HZ。这对么?
所以我加上了除以4的代码。在60MHz的频率下,BogoMips = 37.37。 |
|