1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/cpu/cortexm_common
Koen Zandberg eec7aa2e42
cortexm_common: disable IRQ during thread_sched_idle
A race condition is present where an IRQ is serviced between the
priority increase of the PENDSV and the sleep. When the IRQ
is serviced before the WFI sleep, the core will sleep until the next
IRQ and the thread activated by the IRQ will not be scheduled until
a new IRQ triggers.

This commit wraps an IRQ disable and restore around the priority
modification and sleep to prevent interrupts from being serviced until
the WFI call returns.
2020-07-16 11:11:15 +02:00
..
include cpu: Rename CPU_ARCH to CPU_CORE 2020-06-16 12:05:40 +02:00
ldscripts cpu/sam0_common: hook up low power RAM as extra heap 2020-02-20 17:11:25 +01:00
periph cpu: cortexm: provide periph_pm for all cortexm 2017-11-06 12:01:19 +01:00
cortexm_init.c cpu: Rename CPU_ARCH to CPU_CORE 2020-06-16 12:05:40 +02:00
Kconfig cpu/cortexm: implement sched_arch_idle() and disable idle thread 2020-06-25 16:02:28 +02:00
Makefile cpu/cortexm_common: Drop LTO workaround for Cortex M thread_arch.c 2020-07-15 10:37:15 +02:00
Makefile.dep cpu/cortexm: Add 'cortexm_fpu' as a DEFAULT_MODULE if possible 2020-04-01 09:46:29 +02:00
Makefile.features cpu/cortexm: implement sched_arch_idle() and disable idle thread 2020-06-25 16:02:28 +02:00
Makefile.include cpu: Rename CPU_ARCH to CPU_CORE 2020-06-16 12:05:40 +02:00
mpu.c cpu: Rename CPU_ARCH to CPU_CORE 2020-06-16 12:05:40 +02:00
panic.c cpu*: fix doxygen grouping 2018-06-11 19:12:02 +02:00
thread_arch.c cortexm_common: disable IRQ during thread_sched_idle 2020-07-16 11:11:15 +02:00
vectors_cortexm.c cpu: Rename CPU_ARCH to CPU_CORE 2020-06-16 12:05:40 +02:00