Skip to main content
Associate II
September 6, 2024
Solved

Simple Multicore Core to Core Communication with STM32H7

  • September 6, 2024
  • 1 reply
  • 3410 views

Hello Team,

 

how can a simple core to core communication on the STM32H7 be implemented? We want to exchange 2kByte of data in bidirectional way between CM7 and CM4.

Best regards,

Jochen

Best answer by mƎALLEm

See this thread: https://community.st.com/t5/stm32cubeide-mcus/easiest-way-to-share-data-between-cores-in-stm32h745/td-p/576140

Or just create a shared memory region common to the two cores on each Core's linker. But you need to ensure at least two things:

- Synchronization of read and write operation between the two cores using HSEM to ensure the consistency of the data.

- Either to manage the data coherency from CM7 side when Cache is enabled or declare that region as Strongly-Ordered or Device (non cacheable) using MPU.

 

1 reply

mƎALLEm
Technical Moderator
September 6, 2024

Hello,

Please refer to the AN5617 STM32H745/755 and STM32H747/757 lines inter-processor communications 

See also this article.

You can use OpenAMP to exchange data between two cores. Please refer to these examples in STM32CUbeH7 on github:

https://github.com/STMicroelectronics/STM32CubeH7/tree/master/Projects/STM32H747I-EVAL/Applications/OpenAMP

Hope I answered your question.

 

 

To give better visibility on the answered topics, please click "Best answer" on the reply which solved your issue or answered your question.
JR1Author
Associate II
September 6, 2024

This example ist not working, we get compiler errors. Do you have a working example of the OpenAmp PingPong project?

mƎALLEm
Technical Moderator
September 6, 2024

@JR1 wrote:

This example ist not working, we get compiler errors. Do you have a working example of the OpenAmp PingPong project?


You need to give more details about that. What compiler you are using and what errors you are facing.

To give better visibility on the answered topics, please click "Best answer" on the reply which solved your issue or answered your question.