QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2660|回复: 0

2.4.24-uc0内核移植到44B0X问题集3

[复制链接]
发表于 2004-10-20 12:37:33 | 显示全部楼层 |阅读模式
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。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-5 21:36 , Processed in 0.039981 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表