diff options
Diffstat (limited to 'ports/stm32/mphalport.h')
| -rw-r--r-- | ports/stm32/mphalport.h | 10 |
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 |
