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.

SPI FLASH启动问题

Other Parts Discussed in Thread: AM3358

各位好,

硬件环境:AM3358, MX25L12835E(SPI FLASH)

软件环境:AM335X_StarterWare_02_00_01_01, 没有OS

启动引脚配置:lcd_data[15:0] = 0100xxxxxx110111b, MMC0, SPI0, UART0, USB0

boot项目:x:\ti\AM335X_StarterWare_02_00_01_01\build\armv7a\cgt_ccs\am335x\evmAM335x\bootloader

现象:

1 通过sd卡启动,板子可以正常启动

2 通过自编程序,将spi boot项目生成的MLO文件,以及应用程序app文件,烧录到spi flash里面。
mlo从0x00地址开始存放,app从0x20000地址开始存放。
并且通过串口,将mlo和app从flash里面读出来,与源文件对比,确认,烧录成功到spi flash。
但是上电启动的时候,串口一直打印CCCC,没法从spi flash启动。

谢谢不吝指导!

  • 编译MLO时候CCS的配置有做修改么?

  • ccs配置和代码做了相应的修改,因为板子是根据evmskAM335x开发板做的,使用的是DDR3内存。

    所以,将宏evmAM335x改为evmskAm335x,使用evmskAM335x的配置。

    CCS配置如下,

    (1)

    将evmAM335x改为evmskAm335x;

    (2)

    link option,那里是ram_model;

    (3)

    platform链接库也改为evmskAM335x的;

    (4)启动时候的版本检查给注释了,

    (5)现在现象,

    在CCS软件上,调试启动该boot项目,可以成功执行,可以将flash里面的app加载到内存,运行起来,

    但是,直接上电,板子启动,就进入不了MLO,开始打印8个C,每隔5分钟,再打印8个C,

    谢谢了!

  • 关于SPI boot需要修改CCS编译选项,请参考:           

    Right click on the project (in project explorer) -> properties -> Build -> steps -> post-build steps-> update the mode “SPI” boot.

     

    "${CCS_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin.bat"  "../../../../../../../binary/armv7a/cgt_ccs/am335x/evmAM335x/bootloader/${ProjName}.out"  "../../../../../../../binary/armv7a/cgt_ccs/am335x/evmAM335x/bootloader/${ProjName}.bin"  "${CG_TOOL_ROOT}/bin/ofd470.exe"  "${CG_TOOL_ROOT}/bin/hex470.exe"  "${CCS_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin.exe" & "../../../../../../../tools/ti_image/tiimage.exe" "0x402F0400" "MMCSD" “SPI” "../../../../../../../binary/armv7a/cgt_ccs/am335x/evmAM335x/bootloader/${ProjName}.bin" "../../../../../../../binary/armv7a/cgt_ccs/am335x/evmAM335x/bootloader/${ProjName}_ti.bin"

  • Hi Jian, 

    谢谢周工拨冗回答!

    CCS编译选项,生成_ti.bin文件的命令参数,已经改为"SPI"了的。修改后是这样的,

    "${CCS_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin.bat"  "../../../../../../../binary/armv7a/cgt_ccs/am335x/evmAM335x/bootloader/${ConfigName}/${ProjName}.out"  "../../../../../../../binary/armv7a/cgt_ccs/am335x/evmAM335x/bootloader/${ConfigName}/${ProjName}.bin"  "${CG_TOOL_ROOT}/bin/armofd.exe"  "${CG_TOOL_ROOT}/bin/armhex.exe"  "${CCS_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin.exe" & "../../../../../../../tools/ti_image/tiimage.exe" "0x402F0400" "SPI" "../../../../../../../binary/armv7a/cgt_ccs/am335x/evmAM335x/bootloader/${ConfigName}/${ProjName}.bin" "../../../../../../../binary/armv7a/cgt_ccs/am335x/evmAM335x/bootloader/${ConfigName}/${ProjName}_ti.bin"

    tools下面没有提到的ofd470.exe,hex470.exe,好像现在版本的bin工具,都是用armofd.exe,armhex.exe。

    现在情况,就是将MLO, APP image烧录到spi flash了,但是上电启动的时候,一点启动反应都没有,只断续打印CCCC,而在CCS上面,仿真运行,是可以的。

    这个情况有点像这个帖子上面描述的,

    http://e2e.ti.com/support/embedded/starterware/f/790/t/615624,

    但是还是不知道问题卡在哪里?

    编译选项

    ${CCS_UTILS_DIR}/bin/gmake -j ${NUMBER_OF_PROCESSORS} -s -k

    这个应该没有影响吧?