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.
过程描述:
程序采用北航樊文贵同学给出的工具链和src文件。
程序为主核启动后启动另外三个辅核,在主核实现函数MulticoreBoot()后进入led亮灯程序,点亮led0,进入辅核程序则点亮对应led灯。
分别将程序load入4个核运行则开发板4盏led灯闪烁。(说明程序正确且运行时互相独立)
将工具链中本来就有的.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启动后未能成功启动core1,magic地址我在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-3的main函数。
3.查看对应magic地址,对应magic地址所写入入口地址_c_int00与(1)中我想写入的相同。
我不知道是因为magic地址问题还是工具链的问题还是ipc没有发送成功问题导致了core0实现了boot而其他core没有实现。
新手学习,请大家多多指教!