我在DSP6678 0核、1核、2核运行了三个程序,其中0核和1核、0核和2核之间有数据传输,1核和2核无数据传输。
现在遇到的问题是,停止1核会影响到0核和2核的通信,程序阻塞。然而停止2核程序,不会影响0核和1核的程序通信。
备注
1:核间同步方式为Ipc.procSync = Ipc.ProcSync_NONE
2:核间传递数据,使用MessageQ
3:程序阻塞在了MessageQ_open处
我测试了单0核和2核通信是OK。有了1核,然后停止1核,会不会影响0核和2核之间的连接断开,导致0核和2核失去通信?
Nancy Wang:
三个核的连接部分怎么配置的?是能否贴出相关代码?核1是怎么停止的?
user5865338:
回复 Nancy Wang:
// 打开远程消息队列 do { printf("componentID=%d—-coreID= %d\n",componentID,coreID); status = MessageQ_open(targetQueueName, &remoteQueueId);///根据消息队列名字,打开队列,获得队列的地址 printf("status :%d\n",status); if (status < 0) { cout<<"MessageQ open : "<<coreID<<" faild!"<<endl; break; } } while (status < 0);
代码如上,我判断MessageQ_open()的返回转态,但是现在程序阻塞住了 ,MessageQ_open()一直不返回?请问有知道这个是什么原因吗