我们用的是APPRO的DM8127的IPNC.经查,原TPS659113的RTC时钟为RC时钟,每24小时会有约十分钟的误差。通过查寄存器DEVCTRL_REG其值为0X34.现在UBOOT中修改这个寄存器的值,无论是在配置中,还是在UBOOT最后端切换,UBOOT都无法执行下去,程序就定在那里。初始是在电源和时钟配置完成后,直接进行切换,发现死机。后根据一些单片机切换外部时钟的常识,对该时钟切换:即先掉时钟,用rtc_freeze函数,然后切换外部时钟。EXTERNEL_RTC_SOUCE.并延时等待相当长时间后,开启RTC时钟,RTC_RUN();结果发现仍然死机。代码如下:
rtc_freeze();
externel_rtc_clock();//zjq20140901
for (i = 0; i<0xffff; i++)
{
for(j = 0; j<0xfffff; j++){
}
// printf("%c",ti814x[i][j]);
// printf("\n");
}
rtc_run();
这些代码放在UBOOT那里,就死在那里,请问如何才能从RC切换到外部晶体而死机?
另:我在UBOOT正常启动的情况下,直接修改DEVCTRL_REG为0x14后,可以切换到外部晶体,且RTC时钟24小时为秒级误差。