ArduinoCore-sam icon indicating copy to clipboard operation
ArduinoCore-sam copied to clipboard

Make USART IRQ handler WEAK

Open NitrofMtl opened this issue 5 months ago • 0 comments

Description: This patch modifies the predefined USART IRQ handlers in the Arduino Due core to be declared attribute((weak)).

Motivation:

  • Allows libraries, such as 'DUERS485DMA', to override the default USART interrupt handlers.

  • Necessary for DMA-based RS485 implementations that require custom IRQ handling without modifying the core itself.

Changes:

  • All predefined USARTx_Handler() functions are now weak.

  • Existing functionality remains unchanged if no library overrides the handler.

  • No effect on boards or configurations that do not use these handlers.

Impact:

  • Compatible with existing sketches using standard Serial objects.

  • Enables advanced libraries to implement DMA or custom serial processing.

Notes:

  • Only the weak attribute is added; the logic inside the handlers is untouched.

  • Users may override handlers selectively (only the USARTs they use).

NitrofMtl avatar Aug 20 '25 00:08 NitrofMtl