From 9aa1b6f9929be286eaf5b6cb3a392f45542ce787 Mon Sep 17 00:00:00 2001 From: Diego Ismirlian Date: Wed, 2 Oct 2019 18:37:02 -0300 Subject: RTT/SystemView bindings: avoid race condition on ISR exit --- os/various/segger_bindings/SYSTEMVIEW/SEGGER_SYSVIEW_ChibiOS.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/os/various/segger_bindings/SYSTEMVIEW/SEGGER_SYSVIEW_ChibiOS.h b/os/various/segger_bindings/SYSTEMVIEW/SEGGER_SYSVIEW_ChibiOS.h index c3e0384..be73a4f 100644 --- a/os/various/segger_bindings/SYSTEMVIEW/SEGGER_SYSVIEW_ChibiOS.h +++ b/os/various/segger_bindings/SYSTEMVIEW/SEGGER_SYSVIEW_ChibiOS.h @@ -266,11 +266,14 @@ void SYSVIEW_ChibiOS_Start(U32 SysFreq, U32 CPUFreq, const char *isr_description #define CH_CFG_IRQ_EPILOGUE_HOOK() { \ _CH_CFG_IRQ_EPILOGUE_HOOK(); \ + port_lock_from_isr(); \ + _dbg_enter_lock(); \ if (_isr_is_tail() && chSchIsPreemptionRequired()) { \ SEGGER_SYSVIEW_RecordExitISRToScheduler(); \ } else { \ SEGGER_SYSVIEW_RecordExitISR(); \ } \ + _dbg_leave_lock(); \ } #define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ -- cgit v1.2.3