This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Starterware bootloader 串口启动失败

Other Parts Discussed in Thread: AM3352

代码在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();
}