Low-power modes
Лестница уровней сна микроконтроллера: каждая ступень вниз экономит ток и удлиняет путь обратно наверх.
В Cortex-M инструкция WFI останавливает тактирование ядра до прихода прерывания; если выставлен бит SLEEPDEEP, гаснет и большинство периферии. Производители надстраивают свои уровни. В STM32 они называются Sleep, Stop и Standby: Stop сохраняет RAM, но отключает главный генератор, Standby теряет почти всё, кроме часов реального времени и нескольких backup-регистров. Ток падает с миллиампер до долей микроампера.
Счёт приходит при пробуждении. С самого глубокого уровня это фактически сброс: программа снова проходит стартовый код и должна по backup-регистрам понять, что это не обычное включение питания. Отладчик к тому же склонен терять связь, из-за чего ошибки в коде сна — отдельный жанр.