Hi,
platform evm 6678,
IPC 1.22.05.27
sys/bios 6.31.04.27
ccs 5.01
C6678 device functional simulator, little endian
I am creating a messageQ for interprocessor communication among the two cores [CORE0, CORE1] of my evm6678 board.
I tried to use the MessageQ example program message_multicore.c (ipc directory/packages/ti/sdo/ipc/examples/multicore/c6678).
I made small modifications on the program in order to send an array of integers from Core0 to Core1. Therefore I edit the content of the message as shown below:
Typedef struct TstMsg
{
MessageQ_MsgHeader header;
int16_t *dataPtr;
}TstMsg;
TstMsg *msg;
Even though it seems like Core1 can get the message from Core0, array values that was attached to the message is not seemed to be modified. I fill the array with the int values. But Core1 still sees that array with zero values filled instead.
My suspicions about possibble problem :
1. cache_wb or cache_inv should be performed. Can i use this only by adding #include <ti/sysbios/hal/Cache to the program, or does there need to be something done on .cfg file of the project?
2. I have used "Generated Linker Command File". I think this is a default linker file generated by the compiler, do I need to make changes on that? I tried that but I could not locate the .cmd file for my project. Which memory should I put the Data, Code section on (L2SRAM, MSMCSRAM) for data sharing between cores?
3. Lastly, on one of the postings, I read that arbitration may be needed. I have no idea why and how can be used for my project.
What changes do i need to do on the messageq example in order to be able to send data from one core to another?
Is the MessageQ most appropriate method for data sharing between cores ?
Thanks.