ARMmbed / uvisor

DEPRECATED mbed OS uVisor -- device security layer for ARMv7M microcontrollers

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

mbed OS can't sleep when uVisor is enabled

Patater opened this issue · comments

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 Internal Ref: IOTSEC-326