From 29a5006df94e9b7f7d329177aef93629d491166b Mon Sep 17 00:00:00 2001 From: Chris <52449218+shadow578@users.noreply.github.com> Date: Thu, 18 Jul 2024 04:03:35 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=A7=91=E2=80=8D=F0=9F=92=BB=20Update=20HC?= =?UTF-8?q?32=20CRITICAL=5FSECTION=20macros=20(#27283)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #27282 --- Marlin/src/HAL/HC32/HAL.h | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/Marlin/src/HAL/HC32/HAL.h b/Marlin/src/HAL/HC32/HAL.h index 4f565935595..8111e1b57ee 100644 --- a/Marlin/src/HAL/HC32/HAL.h +++ b/Marlin/src/HAL/HC32/HAL.h @@ -114,22 +114,19 @@ // Misc. Functions // #ifndef analogInputToDigitalPin -#define analogInputToDigitalPin(p) pin_t(p) + #define analogInputToDigitalPin(p) pin_t(p) #endif -#define CRITICAL_SECTION_START \ - uint32_t primask = __get_PRIMASK(); \ - (void)__iCliRetVal() +#define CRITICAL_SECTION_START() \ + const bool irqon = !__get_PRIMASK(); \ + __disable_irq(); \ + __DSB(); +#define CRITICAL_SECTION_END() \ + __DSB(); \ + if (irqon) __enable_irq(); -#define CRITICAL_SECTION_END \ - if (!primask) \ - (void)__iSeiRetVal() - -// Disable interrupts -#define cli() noInterrupts() - -// Enable interrupts -#define sei() interrupts() +#define cli() __disable_irq() +#define sei() __enable_irq() // bss_end alias #define __bss_end __bss_end__