Good evening,
i am analyzing ipcf for s32k324 in the managed case as shown in the attached image.
I instantiated a buffer of 10 values on core0 and tried to send it to core1. By varying the size parameter i did not notice any changes, in the sense that with any size value set other than zero you send the entire buffer to core1.
I wanted to ask what is the meaning of the size parameter in the shm_tx function because seems to don’t have any control on parameter “size”.
The current SW we are developing is based on RTD 3.0.0,S32K3xx_AMMCLIB_v1.1.34, IPCF S32K3xx 4.0.0
thanks in advance for any help and information.
Hi @michelet1,
It is a zero copy mechanism.
When we send a message, we basically provide the other core with a pointer to the buffer and the size of it.
The size is then an argument in the callback.
When CM7_0 sends data it performs the following:
Once CM7_1 receives the callback, it does the following:
BR, Daniel
hi,
thanks for your reply.
i just have a doubt.
if core0 acquire a buffer of 10 items and send it but specifies a size=2,
on core1 should receive only 2 items and not all 10 items, am i right?
why do i find the entire buffer on core1 for any size value i specify?
thanks again for the availability
Michele
Hi Michele,
Because it does not send anything.
The other core is notified that there are data in a buffer of a certain size defined by ipc_shm_tx(size).
BR, Daniel
Hi,
thanks for the answer.
i'm still not clear about the meaning of the size parameter? shouldn't it indicate how much buffer data i want to send from one core to another?
let's make a practical example:
if i have a buff[10] and specify size=2 as the ipc_shm_tx() parameter on core0, on core1 the notify should go off and only read buf[0] and buf[1], is this reasoning correct?
thanks again for your availability
Michele
Yes, core_1 is notified to read just buf[0] and buf[1].
Regards,
Daniel