在CCS5下创建工程时有个notify_multicore工程,这工程是8个核进行相互通信,但自己修改为0核与1核进行通信时,0核发的事件,1核接收不到。这是什么问题?
改的地方有.cfg文件下修改MultiProc.setConfig(null, nameList)为MultiProc.setConfig(null, ["CORE0","CORE1"]);并在main函数中0核注册1核的事件,1核注册0核的事件。就这几处动了。
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.
在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的通信。