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.

6678 多核程序运行,停止某个核,会影响其他核之间通信吗?



我在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核失去通信?

  • 三个核的连接部分怎么配置的?是能否贴出相关代码?核1是怎么停止的?
  • // 打开远程消息队列
    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()一直不返回?请问有知道这个是什么原因吗