2021-06-24 03:01 PM
Hello,
What is the best way to communicate between cores? I am working on a project in which I need to read data using one core and process this data using a second core. I am working with a STM32H745. The idea is that the M4 core is going to be used to read data from sensors and the M7 core will process this data and then send it to a PC using USART. I thought that one way of doing this would be to write the data to the flash memory of the MCU and then read it using the other core, but I haven't been able to get this to work. If someone know a better way to do this it would be extremely helpful if you could guide me on how to do this.
Thank you!
Solved! Go to Solution.
2021-06-28 03:41 AM
Hello @schumilop,
For dual core communication, I suggest to refer to the AN5557 (STM32H745/755 and STM32H747/757 lines dual-core architecture) and to the AN5617 (STM32H745/755 and STM32H747/757 lines inter-processor communications).
There are three possible solutions to be implemented with STM32H7 which are:
As example of sending the data between the two cores, you can use the FreeRTOS example present in the cube package under the ..\STM32Cube_FW_H7\Projects\STM32H745I-DISCO\Applications\FreeRTOS path.
This example shows how to use FreeRTOS's message buffers to pass data from one core to another.
When your question is answered, please close this topic by choosing Select as Best. This will help other users find that answer faster.
Chahinez
2021-06-24 03:42 PM
Store data using a pointer to a specific area of SRAM. Both cores can access SRAM1-3 and AXI SRAM. Note that you'll need to manage cache appropriately, or disable it.
2021-06-28 03:41 AM
Hello @schumilop,
For dual core communication, I suggest to refer to the AN5557 (STM32H745/755 and STM32H747/757 lines dual-core architecture) and to the AN5617 (STM32H745/755 and STM32H747/757 lines inter-processor communications).
There are three possible solutions to be implemented with STM32H7 which are:
As example of sending the data between the two cores, you can use the FreeRTOS example present in the cube package under the ..\STM32Cube_FW_H7\Projects\STM32H745I-DISCO\Applications\FreeRTOS path.
This example shows how to use FreeRTOS's message buffers to pass data from one core to another.
When your question is answered, please close this topic by choosing Select as Best. This will help other users find that answer faster.
Chahinez
2021-06-29 10:36 PM
It worked this way, I have used shared SRAM in my project for similar requirement. Just make sure shared portion of SRAM should not be mapped into start up file RAM addresses. Edit .ID files for this operation.