mbed OS can't sleep when uVisor is enabled
Patater opened this issue · comments
Jaeden Amero commented
The RTOS idle thread runs unprivileged. It'd be nice if it, through a register level gateway or vSleep API, could put the system to sleep.
Currently, the RTOS idle thread calls mbed OS sleep, which then calls hal_sleep
, which has hundreds of implementations that do any number of things that unprivileged code can't do (leading to halts). For example, writing to the SCB->SCR
register is a nono for unprivileged code (without the register level gateway), yet many implementations do this to control how deeply they want to sleep at various points throughout the program's execution.
ARM mbed CI commented
ARM Internal Ref: IOTSEC-326