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.

6678 SPI NorFlash BOOT不成功,怎么排查问题?

Hi,all:

自己做的单板,使用6678,现在调试Norflash boot功能,想要先实现单核点灯。

按照论坛里提供的方法,先利用工具链将.out文件转换成dat文件,然后用安装目录下的工程成功烧写了IBL到EEPROM,但是在利用安装目录下的工程烧写Norflash时却总是不成功,后来就利用cifae_KI_STK_Deyi中的SPI测试程序,修改了下,将dat文件烧写到Flash中,读出校验正确。

掉电重启单板,灯不闪烁。

仿真器connect到core0,发现停在了0x20B0A350,继续运行,从反汇编可以在这附近循环。

查看过内存,内存里面的数据完全不是烧写EEPROM或者Norflash两个工程的内存。

从现象判断,感觉像是代码还在BOOTROM里面。

请教下,TI工程师们,像这种问题,应该从哪些方面来进行排查,如何分析下BOOTROM的状态?

是否有相应的文档可供参考?

谢谢!

  • 另外,再补充一个问题:

    在使用工具链生成的小端dat文件,之前的大端simple.i2c.ccs文件,将这个ccs文件和out文件反汇编出来的结果进行对比,发现两个问题不是很清楚:

    在看文档时描述的是,dat文件是256个UINT32 boot参数表,紧接着是_c_int00地址,然后是各个段的大小、起始地址及内容。

    1.实际生成的dat文件中,在boot参数表和_c_int00地址还多了一个UINT32,不知道这个数是如何而来的?

    2.dat文件和out反汇编的内容进行比较,发现dat文件在后面的段内容中,会多出一个UINT32,大概数了下整个dat文件多了好几十个。

    按照我的理解,dat文件的段内容应该和反汇编的段内容完全一致才对,工具链不应该在段内容中间插入一个UINT32。

    不知道是我使用工具链有问题,还是工具链本身有这样的操作?

  • Hi vv ww:

    我感觉可能是你的 BootPin设置有问题。

    如果你是想用IBL(EEPROM二次引导)那就先修改IBL的参数,默认IBL是直接读取OUT文件的。

    如果你是想直接RBL-->SPI flash 的方式启动,那就按照工具链一步一步操作。


    两个启动方式的BootPin是不一样的~ 先查查这个吧~

x 出现错误。请重试或与管理员联系。