Part Number: TDA4VM
Other Parts Discussed in Thread: SYSBIOS
Hello TI,
We have a couple of questions about IPC on TDA4VM.
We are analyzing ipc example in file app_ipc_sysbios.c on location vision_apps/utils/ipc/src.
In the appIpcInit function for every processor which is enabled, the endpoint is created (create rpmessage tx handle).
After that, another endpoint was created (rpmessage rx handle).
1. This means that we have one endpoint for receiving messages from all cores and all other endpoints are for transmitting messages on one core. Is our understanding is correct?
2. We added new function in file app_ipc_sysbios.c. Function sending message from one core to another i.e. call function RPMessage_send.
(status = RPMessage_send(obj->rpmsg_tx_handle[dstProc], dstProc, obj->prm.tiovx_rpmsg_port_id, obj->rpmsg_tx_endpt[dstProc], (Ptr)buf, len);).
We call this function from main from core mcu2_0 to send message to core mcu2_1. We are able to receive message on mcu2_1 in this appIpcRpmsgRxTaskMain.
2a) What is the first parameter- handle (Handle of RPMessage Object) in function RPMessage_send? What does it mean?
2b) What is the difference between rx handle and tx handle when sending message to another core?
We replaced obj->rpmsg_tx_handle[dstProc] with obj->rpmsg_rx_handle and sending messages works.
status = RPMessage_send(obj->rpmsg_rx_handle, dstProc, obj->prm.tiovx_rpmsg_port_id, obj->rpmsg_tx_endpt[dstProc], (Ptr)buf, len);
3. Can we use obj->rpmsg_tx_handle[dstProc] for receiving messages?
4. Whether there is documentation for remote service example in vision_apps/utils/?
Best regards,
Marko.