[S32R294] Is there any official inter-process communication's example on SDK?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

[S32R294] Is there any official inter-process communication's example on SDK?

Jump to solution
698 Views
Gordon_Yang
Contributor III

Because I would like to use IPC on s32r294 between Z4 and two Z7s, is there any official inter-process communication's example on SDK for this?

Or any other chipsets' example could be found? Thanks.

0 Kudos
1 Solution
676 Views
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi Gordon,

there's no such example but you can take a look at this thread:

https://community.nxp.com/t5/MPC5xxx/MPC5748G-dual-core-projects-only-work-when-using-the-first-and/...

You can see there how to create shared segment in the linker files. Just make sure that the segment is initialized due to ECC by startup files. Startup files use symbols from linker file to know the start address and size of RAM. Each core then initializes own RAM area. You can change the symbols in linker file for boot core to initialize also this shared segment.

Next point - I recommend to configure shared RAM as cache inhibited. This can be done by SMPU. You can find SW example for SMPU here:

c:\NXP\S32DS_Power_v2.1\S32DS\software\S32_SDK_S32R294_RTM_1.0.0\examples\S32R294\driver_examples\system\smpu_protection\

And if it is necessary to ensure data coherency, you can use semaphores:

c:\NXP\S32DS_Power_v2.1\S32DS\software\S32_SDK_S32R294_RTM_1.0.0\examples\S32R294\driver_examples\system\sema42_multicore\

Regards,

Lukas

 

View solution in original post

2 Replies
677 Views
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi Gordon,

there's no such example but you can take a look at this thread:

https://community.nxp.com/t5/MPC5xxx/MPC5748G-dual-core-projects-only-work-when-using-the-first-and/...

You can see there how to create shared segment in the linker files. Just make sure that the segment is initialized due to ECC by startup files. Startup files use symbols from linker file to know the start address and size of RAM. Each core then initializes own RAM area. You can change the symbols in linker file for boot core to initialize also this shared segment.

Next point - I recommend to configure shared RAM as cache inhibited. This can be done by SMPU. You can find SW example for SMPU here:

c:\NXP\S32DS_Power_v2.1\S32DS\software\S32_SDK_S32R294_RTM_1.0.0\examples\S32R294\driver_examples\system\smpu_protection\

And if it is necessary to ensure data coherency, you can use semaphores:

c:\NXP\S32DS_Power_v2.1\S32DS\software\S32_SDK_S32R294_RTM_1.0.0\examples\S32R294\driver_examples\system\sema42_multicore\

Regards,

Lukas

 

666 Views
Gordon_Yang
Contributor III

Hi Lukas,

Thanks for your suggestion.

 

Sincerely,

Gordon.

 

0 Kudos