cancel
Showing results for 
Search instead for 
Did you mean: 

Is it possible to share UART interrupt in dual-core microcontrollers in both cores?

David Garcia
Associate II

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.

1 REPLY 1
Nikita91
Lead II

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.