2020-09-24 02:21 AM
Hi!
I'm trying to share one UART in both cores of the dual-core STM32H745. I'm using the HAL library.
I've achieved to transmit (in polling mode) from the two cores using a semaphore to manage access to the UART.
However, I can't receive using interrupt on both cores. I have manually activated the interrupt in HAL_UART_MspInit, but it still doesn't work. The CM7 core receives the data but the CM4 not.
I would like to receive data through the same UART in both cores. Is it possible to do what I am trying? Or I would have to pass the data myself from CM7 to CM4? Is it possible to do it on other peripherals like SPI?
Thanks for your help.
2020-09-24 02:59 AM
Traditionally, the architecture to use in these cases is to use a server:
The server manages the device and makes the data available to the various applications.
In your case, for example, the reception interrupt puts the data in a buffer and signals the applications that have registered (with a semaphore for each application, or a software interrupt for each core, ...)
So you have to design a mechanism to pass the data yourself to CM7 and CM4.