ARMv7-M4处理器系列文章-5低功耗模式

  • 概述

低功耗模式下,CPU可以节约系统功耗,低功耗模式分为两种:

  1. sleep模式:处理器时钟已暂停
  2. deep sleep模式:系统时钟已关闭,PLL关闭,flash存储器已关闭。

SCR寄存器的SLEEPDEEP位标识是sleep模式?还是deep sleep模式?

  • 进入sleep模式

本节主要聊一聊处理怎么进入Sleep模式:

  1. WFI:WFI指令可以是系统进入sleep模式,cpu停止指令执行。
  2. WFE:WFE指令可以使用系统进入sleep模式,但是进入sleep前需要检查event寄存器是否为0?0:处理器停止指令执行,进入sleep模式;1:清除该Bit位,继续执行指令,不进入sleep模式,如果event寄存器位1,则表明外部有event事件发生,或者处理器正在执行SEV指令。

退出Sleep模式,当处理器执行完所有的异常处理后,如果SCR寄存器中的SLEEPONEXIT=1,则处理器返回线程模式立刻进入sleep模式。

  • 唤醒sleep模式

处理器如何进入sleep模式,决定如何sleep的唤醒,

WFI或sleep-on-exit唤醒:通常地,如果一个发生的异常有足够的优先级,则可以唤醒处理器,继续执行恢复执行Task。

WFE唤醒:如果处理检测到异常优先级足够高,或者外部事件,或者多处理器系统中,其他处理器执行SEV指令。

  • WIC

WIC是处理器一个可选的外设,可以检测中断然后把处理器从deepsleep状态唤醒。WIC模块不可编程,完成是硬件信号处理。

当处理器进入deep sleep且WIC使能了,此时PMU可以掉电,sysytick也停止。此时如果WIC接收到中断,WIC话费几个指令周期唤醒处理器和恢复处理器状态。

ARMv7-M4处理器系列文章-5低功耗模式_第1张图片

具体操作步骤如下图:

 

ARMv7-M4处理器系列文章-5低功耗模式_第2张图片

总结:低功耗是兵家必争之地,各个厂商处理器关于低功耗设计略有不同,但是WFI和WFE通常是一样的。 

 

 

你可能感兴趣的:(Armv7-M4,arm)