mbed-os/rtos/rtx5/TARGET_CORTEX_M
Jaeden Amero 778d6822bf RTX5: uVisor: Switch threads very carefully
uVisor doesn't set the PSP of the target thread. The RTOS sets the PSP
of the target thread from the target thread's TCB. However, when
interrupts of higher priority than PendSV happen between the call to
uVisor to switch boxes, and the RTOS setting PSP, the uVisor vIRQ
interrupt handler will attempt to use an invalid PSP (the PSP from
before the box and thread switch). This leads to a crash. Make box and
thread switching atomic by disabling interrupts immediately before the
box switching until immediately after the new PSP is set.
2017-06-04 14:41:59 +01:00
..
TARGET_M0 Rename directories rtx->rtx4 rtx2->rtx5 2017-05-30 18:55:55 +01:00
TARGET_M0P Rename directories rtx->rtx4 rtx2->rtx5 2017-05-30 18:55:55 +01:00
TARGET_M3 RTX5: uVisor: Switch threads very carefully 2017-06-04 14:41:59 +01:00
TARGET_RTOS_M4_M7 RTX5: uVisor: Switch threads very carefully 2017-06-04 14:41:59 +01:00
TESTS/memory/heap_and_stack Rename directories rtx->rtx4 rtx2->rtx5 2017-05-30 18:55:55 +01:00
RTX_Config.c Rename directories rtx->rtx4 rtx2->rtx5 2017-05-30 18:55:55 +01:00
RTX_Config.h Rename directories rtx->rtx4 rtx2->rtx5 2017-05-30 18:55:55 +01:00
cmsis_os2.h Rename directories rtx->rtx4 rtx2->rtx5 2017-05-30 18:55:55 +01:00
core_cm.h Rename directories rtx->rtx4 rtx2->rtx5 2017-05-30 18:55:55 +01:00
rt_OsEventObserver.c Rename directories rtx->rtx4 rtx2->rtx5 2017-05-30 18:55:55 +01:00
rt_OsEventObserver.h Rename directories rtx->rtx4 rtx2->rtx5 2017-05-30 18:55:55 +01:00
rtx_delay.c Rename directories rtx->rtx4 rtx2->rtx5 2017-05-30 18:55:55 +01:00
rtx_evflags.c Rename directories rtx->rtx4 rtx2->rtx5 2017-05-30 18:55:55 +01:00
rtx_evr.c Rename directories rtx->rtx4 rtx2->rtx5 2017-05-30 18:55:55 +01:00
rtx_evr.h Rename directories rtx->rtx4 rtx2->rtx5 2017-05-30 18:55:55 +01:00
rtx_kernel.c Rename directories rtx->rtx4 rtx2->rtx5 2017-05-30 18:55:55 +01:00
rtx_lib.c Rename directories rtx->rtx4 rtx2->rtx5 2017-05-30 18:55:55 +01:00
rtx_lib.h Rename directories rtx->rtx4 rtx2->rtx5 2017-05-30 18:55:55 +01:00
rtx_memory.c Rename directories rtx->rtx4 rtx2->rtx5 2017-05-30 18:55:55 +01:00
rtx_mempool.c Rename directories rtx->rtx4 rtx2->rtx5 2017-05-30 18:55:55 +01:00
rtx_msgqueue.c Rename directories rtx->rtx4 rtx2->rtx5 2017-05-30 18:55:55 +01:00
rtx_mutex.c Rename directories rtx->rtx4 rtx2->rtx5 2017-05-30 18:55:55 +01:00
rtx_os.h Rename directories rtx->rtx4 rtx2->rtx5 2017-05-30 18:55:55 +01:00
rtx_semaphore.c Rename directories rtx->rtx4 rtx2->rtx5 2017-05-30 18:55:55 +01:00
rtx_system.c Rename directories rtx->rtx4 rtx2->rtx5 2017-05-30 18:55:55 +01:00
rtx_thread.c RTX5: uVisor: Switch threads very carefully 2017-06-04 14:41:59 +01:00
rtx_timer.c Rename directories rtx->rtx4 rtx2->rtx5 2017-05-30 18:55:55 +01:00