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.

c6678evml测试板Spi norflash boot主核boot成功,辅核boot失败

Other Parts Discussed in Thread: TMS320C6678

过程描述:

程序采用北航樊文贵同学给出的工具链和src文件。

程序为主核启动后启动另外三个辅核,在主核实现函数MulticoreBoot()后进入led亮灯程序,点亮led0,进入辅核程序则点亮对应led灯。

分别将程序load4个核运行则开发板4led灯闪烁。(说明程序正确且运行时互相独立)

将工具链中本来就有的.dat文件写入norflash再通过spi启动则四盏灯闪烁。(说明烧写工程和bootmode没有问题)

查看.map文件中的"_c_int00"  address: 0082d540,因此将MulticoreBoot()程序中对应代码段改为

 /*write Boot Magic add of other cores and send IPC interrupt*/

pBootMagicAddCore0 = (int*)0x1087FFFC;

 (*pBootMagicAddCore0)+= 0x1082d540;// translate to global address

for(i = 1;i < CORE_NUM_6678; i++)//write the other cores' boot magic address

{

*(pBootMagicAddCore0+ (0x01000000*i)/4 ) = (*pBootMagicAddCore0) + 0x01000000 * i;

}

IpcGr0  = (int*)0x02620240;

/*warning:when running on no-boot mode,core0~core7 must all be connected to the target*/

for(i = 1;i < CORE_NUM_6678;i++)//core0 sent ipc interrupt to

{

*(IpcGr0+i) = (*(IpcGr0+i)) | 0x00000001;

}

并将.out文件拷出到工具链中: TMS320C6678多核烧写研究v1,0\转换工具链\spi_boot_suit_v2.3.1_release\1_utilities\1.6678\multicore_boot_4cores,替换对应的sinple0-3,运行批处理文件:spiboot_multi_4cores得到.dat文件,将.dat文件烧写入norflash发现led0闪烁,led1-3不闪烁。

问题:

1.core0启动后未能成功启动core1magic地址我在core0处写入1082d500,在core1处写入1182d500,以此类推,这种写法是否正确。

2.利用ccs重新connect core1-3发现其运行位置为No source available for "0x1182d558",而为操作的core4-7则在No source available for "0x20b002c8",这是否说明已经发送了ipc指令然而却能没进入_c_int00导致未能进入core1-3main函数。

3.查看对应magic地址,对应magic地址所写入入口地址_c_int00与(1)中我想写入的相同。

 

我不知道是因为magic地址问题还是工具链的问题还是ipc没有发送成功问题导致了core0实现了boot而其他core没有实现。

新手学习,请大家多多指教!

TMS320C6678多核烧写研究v1,0.rar
  • 亮灯程序在附件中,大家可以可以试一下,norflash可以用官方tool给出的6678 norflash write工具也可以用上面帖子中的烧写程序,我试过效果一样,就是用官方的注意init ddr。

    各核程序.rar
  • 自顶一下,或者有谁有成功的测试脚本及程序也可以援助我一下,发给我,谢谢

  • 等了好久了,自己也尝试了一些方法,求大神和TI工作人员帮助解决下问题或者给个思路。

  • 是运行代码段的问题,在cmd文件中我设置了在公共的L2段下执行程序,后来改成核0在10800000,核1在11800000依次类推,就能够实现。

    很简单的一个问题,可能没有遇到过就显得很麻烦,开发经验不足卡了很久

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