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的notify_multicore问题



在CCS5下创建工程时有个notify_multicore工程,这工程是8个核进行相互通信,但自己修改为0核与1核进行通信时,0核发的事件,1核接收不到。这是什么问题?

改的地方有.cfg文件下修改MultiProc.setConfig(null, nameList)为MultiProc.setConfig(null, ["CORE0","CORE1"]);并在main函数中0核注册1核的事件,1核注册0核的事件。就这几处动了。

  • 您好,

    需要改动以下几处:

    1. 在cfg文件中修改nameList = ["CORE0", "CORE1"];

    2. 在cfg文件中注释掉//Ipc.procSync = Ipc.ProcSync_ALL; 如果procSync配置为ProcSync_ALL则在IPC_start中会调用IPC_attach同步所有核,注释掉后default为ProcSync_PAIR ipc_start不会调用ipc_attach,所有此时需要在代码中由应用程序调用ipc_attach;

    3. 根据2,所有需要在ipc_start 后调用函数ipc_attach,如下:

       status = Ipc_start();

       if (status < 0) {

           System_abort("Ipc_start failed\n");

       }

      //增加的代码

       do {

           status = Ipc_attach(dstProc);

       } while (status < 0);

    关于上述信息,详请查看IPC user guide 3.2节关于ipc module的描述。

    另外在C:\ti\pdk_C6678_1_0_0_21\packages\ti\transport\ipc\examples\qmssIpcBenchmark下的例子是采用IPC+Qmss实现了两个核core0与core1的通信。