|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
请教powerpc高手,我在初始化GTM(全局定时器)时出错,初始化代码如下
/* Init Global Timer1 */
GTM_regs = ioremap(GTM_BASE,GTM_REGS_RANGE);
if(GTM_regs == NULL)
{
printk(KERN_ALERT"ioremap error.\n");
iounmap((void *)GTM_regs);
}
else
printk(KERN_INFO"GTM_regs = 0x%.8lx \n",(unsigned long)GTM_regs);
GTM_Write_U8 (GTM_regs,GTCFR1,0x02); /* Reset GTM1 */
GTM_Write_U8 (GTM_regs,GTCFR2,0x46);
GTM_Write_U16(GTM_regs,GTPSR1,39);
GTM_Write_U16(GTM_regs,GTMDR1,0x3800+249); /* Prescale = 40*250 = 10000 */
GTM_Write_U16(GTM_regs,GTEVR1,0xc000); /* Clear the previous events */
GTM_Write_U16(GTM_regs,GTRFR1,33333); /* 1s/(3ns*10000) = 33333 */
GTM_Write_U8 (GTM_regs,GTCFR1,0x82); /* Enable GTM1 */
该初始化过程有什么问题吗?老是不对,中间几个寄存器的读回值都不对。是不是初始化的顺序有问题?
望高手不吝赐教,或者贴一段正确的定时器初始化代码,小弟在网上实在找不到。 |
|