代码在BBB上可正常通过串口启动。在我自己的板上启动不了。
我自己的板子是AM3352 800MHZ MAX,DDR2+外部晶振24MHZ,初始化的时候去掉了TPS的控制。bootloader启动后,通过xmodem下载完程序,无法正常跳转到DDR中执行。
比较怀疑是PLL配置的问题,但是配置看起来并没有超过800MHZ,请问还有可能是什么问题导致的。
void BlPlatformConfig(void)
{
#if 0
BoardInfoInit();
deviceVersion = DeviceVersionGet();
ConfigVddOpVoltage();
oppMaxIdx = BootMaxOppGet();
SetVdd1OpVoltage(oppTable[oppMaxIdx].pmicVolt);
#endif
HWREG(SOC_WDT_1_REGS + WDT_WSPR) = 0xAAAAu;
while(HWREG(SOC_WDT_1_REGS + WDT_WWPS) != 0x00);
HWREG(SOC_WDT_1_REGS + WDT_WSPR) = 0x5555u;
while(HWREG(SOC_WDT_1_REGS + WDT_WWPS) != 0x00);
/* Configure DDR frequency */
#ifdef DDR3
freqMultDDR = DDRPLL_M_DDR3;
#elif defined DDR2
freqMultDDR = DDRPLL_M_DDR2;
#else
#error DDR VERSION NO DEFINED!!
#endif
/* Set the PLL0 to generate 300MHz for ARM */
PLLInit();
/* Enable the control module */
HWREG(SOC_CM_WKUP_REGS + CM_WKUP_CONTROL_CLKCTRL) =
CM_WKUP_CONTROL_CLKCTRL_MODULEMODE_ENABLE;
/* EMIF Initialization */
EMIFInit();
/* DDR Initialization */
#ifdef DDR3
DDR3Init();
#elif defined DDR2
DDR2Init();
#else
#error DDR VERSION NO DEFINED!!
#endif
/* UART Initialization */
UARTSetup();
}