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.

Dose this inter-core communication exist?

A sender and a receiver share the ownership of a shared memory buffer.The data itself doesn't be transfered,but the ownership of the buffer changed from sender to receiver.The sender pass a pointer which point to the shared memory to the receiver,and then the recevier could use those data in the shared buffer.When the receiver finishs,ti will send notification to the sender to give the ownership back to the sender.

Does this inter-core communication exist?And how to implement? Hope for replies.

  • Hi,

    The application can use the Message Queue module (of the IPC product) for transferring data from one processor to another. The MessageQ module supports the structured sending and receiving of variable length messages. Here the data is not transferred but the message pointer is passed from one processor to another. The module provides APIs to Allocate message, Put the message which can be used by the sender to send the message. Also the the get and free APIs can be used on the Reader side to get the message and also to free up the memory allocated for the message. For more information please refer to the user guide provided with the IPC package.

    Regards,

    Nag 

  • Thanks for your reply,

    But I have tried this method,is there any other way?And the communication with MSGQ is synchronous or asynchronous?

  • Kaiqi Yang said:

    Thanks for your reply,

    But I have tried this method,is there any other way?And the communication with MSGQ is synchronous or asynchronous?

    The MSGQ communication is asynchronous. The writer can send (put) the message and return immediately without waiting for the reader to read the message.

    Is there any reason why you are not using the message queue module to transferring the data?

    The other way of transferring the data is allocate the buffer in the shared memory and send the buffer pointer using the Notify module. Through notify module, the sender can send this memory pointer through the pay load variable (32 bit). On the receiver side, the user should have registered for the notification on a particular event by prioviding a callback funtion. Once the sender sends the notification on that event, the notification is received on the other core and the callback function will be called along with the payload information. The user can translate the memory address to access the message from this core and access the information.

    Regards,

    Nag

  • Thank you so much!

    I will try Notify module.

     

    Regards,

    Unicage

  • Unicage,

    Thanks for your acknowledgment.

    Regards,

    Nag

    (If your question is answered, please click the  Verify Answer  button below)

  • Could you give me an example of Notify module to implement the inter-core communication?

     

    Regards,

    Uni

  • Uni,

    Which platform are you using?

    Please download the IPC package which supports the communication between processors in a multi-processor environment. Here is the link:

    http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/ipc/index.html

    The package also have the Notify sample applications which demonstrate the usage of Notify module for inter-core communication.

    Regards,

    Nag

    (If your question is answered, please click the  Verify Answer  button below)

  • Could you give me an example of inter-core communication using DMA transfer on C6474 or C6472?

    Regards,

    Uni