低消費電力モード
マイコンの眠りの階段。一段下りるごとに電流は減るが、起き上がる道のりは長くなる。
Cortex-M では WFI 命令を実行すると、割り込みが来るまでコアのクロックが止まる。SLEEPDEEP ビットを立てれば、周辺回路の大半も落ちる。ベンダーはその上に独自のレベルを積む。STM32 なら Sleep、Stop、Standby で、Stop は RAM を保ったままメイン発振器を止め、Standby はリアルタイムクロックと少数のバックアップレジスタ以外をほぼ失う。電流はミリアンペアからマイクロアンペア以下にまで落ちる。
代償は復帰時に来る。最深レベルからの復帰は実質リセットなので、プログラムはスタートアップコードをもう一度通り、バックアップレジスタを見て「これは普通の電源投入ではない」と自分で判断しなければならない。デバッガの接続も切れがちで、スリープ処理のバグはそれだけで一つのジャンルになっている。