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.
Hello,
we are trying to communicate between EVE1 <-> EVE2 using Mailbox communication.
we have referred to the sample example which is given in the "ADAS_Superset28_ES1.0_NDA_EVE_Programmers_Guide_vE.pdf" document (Section 16.9: EVE to EVE mailbox communication) and also the DSP <-> EVE example source code which is in starterware folder of Processor Vision SDK.
.
Implemented bidirectional communication between EVE1 <-> EVE2 and EVE2 is able to receive the message from EVE1.
Problem here is EVE1 is unable to receive the acknowledgement message from EVE2.
Please find the EVE1 and EVE2 mailbox setup source code below.
EVE1 source code :
#define MAILBOX_LOCAL (LOCAL__MLB2)
#define MAILBOX_REMOTE (EVE2__MLB2)
#define LOCAL_MBID (EVE1_MBID)
/* Enable interrupt in EVE interrupt controller */
EVE_INTH_InterruptSetup(MLB2_INT,
(UWORD32)Mailbox_Intr_Handler,
INTH_DEFAULT_INTERRUPT_KIND,
INTH_INT8);
/* Actually set Enable bit in the interrupt controller */
EVE_INTH_InterruptEnable(MLB2_INT);
EVE_MBOX_IrqEnable(MAILBOX_LOCAL,
LOCAL_MBID, /* mailBoxId */
MBOX_USER_0, /* userId */
MBOX_INT_NEW_MSG_ONLY
); /* enableIrq */
/* Send message to EVE2 */
EVE_MBOX_Write(MAILBOX_REMOTE, EVE2_MBID, 0xABCDBABE);
/* Waiting for the acknowledgement message from EVE2 */
while (mailbox_intr_occurred != 1);
EVE2 source code:
#define MAILBOX_LOCAL (LOCAL__MLB2)
#define MAILBOX_REMOTE (EVE1__MLB2)
#define LOCAL_MBID (EVE2_MBID)
/* Enable interrupt in EVE interrupt controller */
EVE_INTH_InterruptSetup(MLB2_INT,
(UWORD32)Mailbox_Intr_Handler,
INTH_DEFAULT_INTERRUPT_KIND,
INTH_INT8);
/* Actually set Enable bit in the interrupt controller */
EVE_INTH_InterruptEnable(MLB2_INT);
EVE_MBOX_IrqEnable(MAILBOX_LOCAL,
LOCAL_MBID, /* mailBoxId */
MBOX_USER_0, /* userId */
MBOX_INT_NEW_MSG_ONLY
); /* enableIrq */
/* Wait for initial message from EVE1 */
while( mailbox_intr_occurred!=1 );
/* Send back acknowledgement to EVE1. */
EVE_MBOX_Write(MAILBOX_REMOTE, EVE1_MBID, 0x12345678);
Please do let us know if we are missing any steps to enable mailbox at EVE1, EVE2 and also share if there is any EVE to EVE communication examples/documents to refer.
Looking forward to your response.
Regards,
Manavi H V
Hi,
You can find IPC Lite under ~/pdk_xx_xx_xx_xx/packages/ti/drv/ipc_lite.
It is the light weight IPC via mailbox and it supports the communication among all available cores.
I suggest you just use this instead of building from scratch.
Regards,
Stanley
Hi Stanley,
Thank you for the suggestion. I will go through IPC Lite.
It will be very helpful if you give some suggestions to resolve the acknowledgment issue in mailbox communication.
We suspect that the linker file is an issue since we are using the same linker file for both cores.
I'm loading the EVE1 and EVE2 binary one after the other. Here when I load EVE2 binary, EVE1 is going to a suspended state.
where can I find the linker files for different cores of EVE?
Regards,
Manavi