aboutsummaryrefslogtreecommitdiff
path: root/ports/stm32/mphalport.h
diff options
context:
space:
mode:
Diffstat (limited to 'ports/stm32/mphalport.h')
-rw-r--r--ports/stm32/mphalport.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/ports/stm32/mphalport.h b/ports/stm32/mphalport.h
index 511a76cd0..72413c04c 100644
--- a/ports/stm32/mphalport.h
+++ b/ports/stm32/mphalport.h
@@ -11,16 +11,26 @@ void mp_hal_set_interrupt_char(int c); // -1 to disable
#include "irq.h"
+#if __CORTEX_M == 0
+// Don't have raise_irq_pri on Cortex-M0 so keep IRQs enabled to have SysTick timing
+#define mp_hal_quiet_timing_enter() (1)
+#define mp_hal_quiet_timing_exit(irq_state) (void)(irq_state)
+#else
#define mp_hal_quiet_timing_enter() raise_irq_pri(1)
#define mp_hal_quiet_timing_exit(irq_state) restore_irq_pri(irq_state)
+#endif
#define mp_hal_delay_us_fast(us) mp_hal_delay_us(us)
void mp_hal_ticks_cpu_enable(void);
static inline mp_uint_t mp_hal_ticks_cpu(void) {
+ #if __CORTEX_M == 0
+ return 0;
+ #else
if (!(DWT->CTRL & DWT_CTRL_CYCCNTENA_Msk)) {
mp_hal_ticks_cpu_enable();
}
return DWT->CYCCNT;
+ #endif
}
// C-level pin HAL