cancel
Showing results for 
Search instead for 
Did you mean: 

Problem with IPC on STM32H747I-DISCO

Nikbia
Associate II

Good morning everyone, I have been trying for two days now to perform a communication between the two cores of STM32H747I-DISCO. Being my first time to try my hand at dual core Processors I decided to start from tutorials:
- https://www.youtube.com/watch?v=MLcULDnF5ic
- https://www.youtube.com/watch?v=miUzjoe3rAo&t=561s (Also the precendent videos

Although I followed these tutorials step by step (without even changing the names to the variables) I could not get it to work at all.

I then also tried with the "PingPong" example directly from STMCubeIDE but with both RTOS and bareMetal versions it didn't work...

The only thing I can think of is that maybe I need to move some jumpers on the board or something....


Thanks in advance to everyone

P.S.
FW H7 Version 1.12.1
STMCubeIDE Version 1.18.0
STMCubeMX Version 6.13.0

Translated with DeepL.com (free version)

1 ACCEPTED SOLUTION

Accepted Solutions
KORKAD
ST Employee

Hello @Nikbia,

Please check the OpenAMP applications available in the STM32CubeH7 firmware package. Below is the link to download the package: STM32CubeH7.

Two OpenAMP applications are available for the STM32H747I-DISCO board and run without any hardware configuration (located in Projects\STM32H747I-DISCO\Applications\OpenAMP).

Please refer to the readme.txt file available within each project for technical details.

With Regards,

Anis

 

 

View solution in original post

5 REPLIES 5
KORKAD
ST Employee

Hello @Nikbia,

Please check the OpenAMP applications available in the STM32CubeH7 firmware package. Below is the link to download the package: STM32CubeH7.

Two OpenAMP applications are available for the STM32H747I-DISCO board and run without any hardware configuration (located in Projects\STM32H747I-DISCO\Applications\OpenAMP).

Please refer to the readme.txt file available within each project for technical details.

With Regards,

Anis

 

 

Kenwang
Associate III

Hi @Nikbia ,

I think this video tutorial is very helpful for understanding how OpenAMP is used with FreeRTOS. I recommend checking it out:
The BEST OpenAMP project implementation on STM32H747 with TouchGFX analogy clock

After creating a new Workspace and a new project (As you said from the OpenAMP_PingPong example) It worked. 
Now I'm comparing the different tutorial on YT with the content of the example project but unluckly there's no .ioc file for the example...

Still I will try to create a running version using this example as reference and I will let you know.

Thanks for the invise. I looked it up but it doesn't do much different from the other videos and i thinks that the implementation with TouchGFX and also the RTC makes it even more confunsing (Due to it's "Special" Clock setup).

Anyways thank you for your help ;) .

Problem Found, after hours of trying and failing I could find that the error was always happeng by the function "OPENAMP_create_endpoint"...so I did some research and I found the following Forum (Also from ST):

https://community.st.com/t5/stm32cubemx-mcus/cubemx-6-14-generate-openamp-error-in-stm32h747-error/m-p/791109

Is in fact a problem of CubeIDE / CubeMX that generate a duplicate of "RPMSG_BUFFER_SIZE"
(Once "RPMSG_BUFFER_SIZE" and once "RPMSG_BUFFER_SIZE=512") 


SOLUTION:  
1) Go in the project setting of CM7 -> C/C++ Build -> Setting -> MCU/MPU GCC Compiler -> Preprocessor
2) Search for "RPMSG_BUFFER_SIZE" and remove it
3) Apply and Exit (when promted Rebuild the index)
4) Repeat for CM4
5) Build the project and load it on the board