关于在百度百科上等待的说明:
待机是指将当前正在运行的数据保存在内存中,机器只向内存供电,不为硬盘、屏幕、CPU等部件供电。 数据存储在高速内存中,可加快进入待机状态或唤醒的速度。
对手机来说,待机是指除了DDR保持低频刷新,保持DDR中的数据外,还会关闭其他外设,CPU内核也会进入低功耗模式。
停下工作,等待外部事件苏醒。
arm core要进入待机,需要依赖两个arm命令:等待间隔(WFI )和等待事件(wfe )。
这两个命令都可以将cpu core置于低功耗模式,但也有细微的区别。
具体来看一下arm的说明吧。
Wait for Event WFE :
iftheeventregisteriscurrentlyset,wfe(waitforevent ) clearsitandreturnsimmediately.iftheeventregisterisnotset,theproceseset
An IRQ interrupt,unless masked by the CPSR I Bit
An FIQ interrupt,unless masked by the CPSR F Bit
adebugentryrequestmadetotheprocessorandebugisenabled
aneventissignaledbyanotherprocessorusingsendevent。
another mp11 cpureturnfromexception。
Wait for Interrupt WFI :
wfi(waitforinterrupt ) makestheprocessorsuspendexecution (clockisstopped ) untiloneofthefollowingeventstakeplace 360
an IRQ互联网
an fiq互联网
adebugentryrequestmadetotheprocessor。
对于WFI,当您运行WFI命令时,ARM core会立即进入低功耗标准状态,直到出现WFI Wakeup events。
另一方面,WFE略有不同。 执行WFE命令后,根据Event Register(1个单位寄存器,每个PE一个)的状态,如果eventregister为1,则该命令清除并执行完成) standby Event Register为0时,与WFI一样,进入低功率标准状态,直到发生WFE Wakeup events。
另一方面,在系统待机时,运行task freeze,执行所有device suspend,然后运行WFI命令进入待机状态并等待外围中断唤醒。