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.

单核驱动多核中的Ipc_start()问题



各位大牛,我在使用6678做core0驱动core1~7的测试,工程会用到MessageQ,同一个镜像文件。

采用仿真器直接下载out文件到8个核中,测试OK。

当采用core0驱动其他几个核时,程序停留在Ipc_attach()处,或者在Sharedmemory处,也就是说Ipc_start()没有通过。

我的text段和data段放在SL2中,stack放在L2中;

Ipc.procSync = Ipc.ProcSync_ALL;

查看了资料,发现在设置Ipc.procSync = Ipc.ProcSync_ALL;的条件下,要求 all IPC processors on a device start up at the same time;但采用单核触发多核时,各个核是不可能同时启动的。于是在ipc_start()前采用全局flag同步,仍然不能解决。

更改设置为Ipc.procSync = Ipc.ProcSync_NONE; 问题依旧。

请大家给予指点。多谢。

CCS 5.1

MCSDK:2_00_05_17

BIOS:6_32_05_54

  • 核0驱动多核时,通过仿真器只向core0中加载out文件,其他核处于断开状态。

    求答复。

  • 加载的过程,一般是等多个core的程序都加载完毕后,首先会触发core0执行,然后由core0驱动其他core执行。你这边可以把多核同步的IPC_start操作放在core0驱动其他核起来之后再进行多核同步的过程。

  • Andy Yin1,你好。感谢你的答复。

    多核同步确实可以放在各个核启动起来后再进行同步操作,我也会继续测试。

    我之所以让核0来驱动多核是为NAND启动做的测试。按道理来讲:程序采用仿真器load的方式(load8个核)可以调试通过,那么采用NAND boot的方式也应该没有问题(Ipc_start()放在main中)。我再调试看看。

    还请大家多提意见