睡眠唤醒过程介绍
睡眠流程
睡眠流程是指无操作一段时间后,MCU进入低功耗状态的过程。
低功耗状态的分类
低功耗状态包括standby 和deepsleep两种,对比如下:
deepsleep:
CPU 停在 WFI 指令,系统中高速时钟关闭,CPU相关的外围设备停止工作,但是不掉电,系统的供电切换到RET_LDO。
可以由低功耗定时器(LPTIM),RTC,BLE MAC(LCPU Only),Mailbox(其他CPU),或者特定的唤醒pin来唤醒。唤醒时间增加到100us-1ms。唤醒之后继续在WFI之后的指令运行。
standby:
CPU进入待机(standby)模式,系统中高速时钟关闭,CPU相关的外围设备掉电,RAM除了系统配置的部分,都停止供电,PIN的状态保持,系统的供电切换到RET_LDO。
可以由低功耗定时器,RTC,BLE MAC(LCPU Only),Mailbox(其他CPU),或者特定的唤醒pin来唤醒。唤醒时间1ms-2ms。
唤醒之后,系统会重新启动,根据AON寄存器中的低功耗模式指示,软件判断系统从standby模式启动,以便与冷启动区别。
一般而言:52X采用deepsleep的方式;56x采用standby方式;
睡眠过程
睡眠过程大致包括两个阶段:gui处理 和 rtos pm组件处理; gui处理过程如下:

rtos pm组件处理过程如下:

唤醒流程
唤醒流程是指从睡眠状态恢复到正常运行状态的过程; 每次唤醒都是从sifli_sleep()执行,并运行完注册resume后,开始执行唤醒源相关的代码; 按键唤醒的流程从pin中断开始执行,到出现界面流程如下:
