Part Number: PHYTC-3P-KIT-AM64
Hello experts,
I'm trying to execute a data transfer from A53 core to R5F core (using IPC) and then from R5F to a peripheral using SPI. To do so, I've combined two examples IPC_rpmsg and mcspi_performance_32_bit. But After syncing both the cores using IpcNotify_syncAll, if I execute RPMessage_recv and mcspi_low_latency_transfer_32bit, only IPC gets executed but I don't see any output from SPI in the peripheral (logic analyzer).
Structure of a part of the code running in A53 core:
IpcNotify_syncAll(SystemP_WAIT_FOREVER);
ClockP_usleep(500 * 1000); // Delay for log flush
while(1)
{
print_msgBuf
print_newLine
// Send the row to R5F core
status = RPMessage_send(msgBuf, msgSize, gRemoteCoreId, REMOTE_SERVICE_END_PT, RPMessage_getLocalEndPt(&gAckReplyMsgObject), SystemP_WAIT_FOREVER);
DebugP_assert(status == SystemP_SUCCESS);
}
Structure of a part of the code running in R5F core:
IpcNotify_syncAll(SystemP_WAIT_FOREVER);
DebugP_log("[IPC RPMSG ECHO] Remote Core waiting for messages from main core ... !!!\r\n");
while(1)
{
status = RPMessage_recv(&gRecvMsgObject, msgBuf, &MsgSize, &remoteCoreId, &remoteCoreEndPt, SystemP_WAIT_FOREVER);
DebugP_assert(status == SystemP_SUCCESS);
print_msgBuf
// IpcNotify_syncAll(SystemP_WAIT_FOREVER);
mcspi_low_latency_transfer_32bit(baseAddr0, chNum0, &gMcspiTxBuffer[0], dataLength0, bufWidthShift0);
}
Important: The above code script just shows the flow of calling the IPC and MCSPI functions. For simplicity, I've not shown some initialization of the variables and have used some symbolic functions here such as print_msgBuf. Just to check the functionality of the program, IPC data msgBuf and SPI data gMcspiTxBuffer are different here.
Any help would be greatly appreciated.
Thanks in advance!


