一、低功耗状态表
模式 | hsi_on | hse_on | pll_on | lsi_on | ldo_hsi | ldo_pll | ldo_en | ldo_en_h | cpu_clk | 备注 |
run | ON/OFF | ON/OFF | ON/OFF | ON/OFF | ON | ON | ON | ON | ON | |
lprun | ON/OFF | ON/OFF | ON/OFF | ON/OFF | ON | ON | ON | OFF | ON | 注:和run模式相比只关掉了ldo_en_h,LDO驱动能力变弱 |
sleep | ON/OFF | ON/OFF | ON/OFF | ON/OFF | ON | ON | ON | ON | OFF | |
lpsleep | ON/OFF | ON/OFF | ON/OFF | ON/OFF | ON | ON | ON | OFF | OFF | 注:和sleep模式相比只关掉了ldo_en_h,LDO驱动能力变弱 |
stop | OFF | OFF | OFF | ON/OFF | ON | OFF | ON | OFF | OFF | 注:ldo_hsi开,hsi_on关,唤醒速度更快 |
deep_stop | OFF | OFF | OFF | ON/OFF | OFF | OFF | OFF | OFF | OFF | 注:core域regulator供电 |
standby | OFF | OFF | OFF | ON/OFF | OFF | OFF | OFF | OFF | OFF | 注:core域没电;如果lsi在进模式之前没有开,硬件会自动开 |
二、WFI和WFE
1.相同点:
都可以实现为standby(关闭clock、保持供电)、dormant、shutdown等等。
2.不同点:(进入和退出方式)
WFI:执行WFI指令后,ARM core会立即进入low-power standby state,直到有WFI Wakeup events发生。
WFE:执行WFE指令后,根据Event Register(一个单bit的寄存器,每个PE一个)的状态,有两种情况:如果Event Register为1,该指令会把它清零,然后执行完成(不会standby);如果Event Register为0,和WFI类似,进入low-power standby state,直到有WFE Wakeup events发生。