problem managed ipcf s32k3

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

problem managed ipcf s32k3

2,153 次查看
michelet1
Contributor II

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.

 

 

 

0 项奖励
回复
5 回复数

2,110 次查看
danielmartynek
NXP TechSupport
NXP TechSupport

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.

danielmartynek_0-1728566131108.png

 

When CM7_0 sends data it performs the following:

  • acquires a buffer
  • populates the buffer
  • sends a notification to CM7_1

Once CM7_1 receives the callback, it does the following:

  • calculates the pointer address
  • reads and use the data (no need to copy as the buffer is locked until it is released by the user)
  • releases the buffer (in order to be reused)

 

BR, Daniel

0 项奖励
回复

2,100 次查看
michelet1
Contributor II

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

0 项奖励
回复

2,083 次查看
danielmartynek
NXP TechSupport
NXP TechSupport

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

0 项奖励
回复

2,068 次查看
michelet1
Contributor II

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

0 项奖励
回复

2,048 次查看
danielmartynek
NXP TechSupport
NXP TechSupport

Yes, core_1 is notified to read just buf[0] and buf[1].

 

Regards,

Daniel

0 项奖励
回复