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.

TMS320F28386D: Issue with IPC CM to C28x bidirectional message queue communication: memory mapping

Part Number: TMS320F28386D
Other Parts Discussed in Thread: SYSCONFIG

Tool/software:

Hi I am testing the ipc between C28x and CM based on the example ipc_ex2_msgqueue_c28x1 and ipc_ex2_msgqueue_cm

When I define the buffer on message ram section, it doesn't work if the compiler change the position of the ipc.c buffers

Following is the memory map of a NOT WORKING example:

Here is a WORKING example 

If the compiler put first the PUT buffer, at the beginning of "MSGRAM_CPU_TO_CM", it will work. 

This is valid for both, the cm and cpu, the put/get buffer need to be at the begining of the section. How can I force the compiler to put first the put/get buffer of the driverlib? ipc.c

Is this a bug in the driverlib or did I missed something in my build configurations? I think the driverlib should avoid using the sections name and fix the memory or I have to create a new section for my variables. 

Now it depends on the compiler if my code works or not. 

I think you can replicate the behavior changing the readData[10] to readData[200] in ipc_ex2_msgqueue_c28x1.c, which will put first readData in the memory. The example will block when reading.

How should we fix this? Thank you in advance