不同以往的处理器,Cortex-M3对电源管理的重视,已经上升到处理器内核的水平上。它提供了两种睡眠模式:立即睡眠和深度睡眠。在睡眠时,可以停止系统时针,但可以让FCLK继续走,以允许处理器能被systick异常唤醒。对系统控制寄存器进行写操作,可以控制Cortex-M3系统功耗的状态。下面列出了系统控制寄存器的详细说明;
系统控制寄存器(地址0xE000DD10)
位段 名称 描述
Bit4 SEVONPEND 发生异常悬起时请发送事件,用于在一个新的中断悬起时
从WFE指令处唤醒。不管这个中断的优先级是否比当前的
的高,都唤醒。如果没有WFE导致睡眠,则下次用WFE时
将立即唤醒
Bit3 保留 -
Bit2 SLEEPDEEP 当进入睡眠模式时,使能外部的SLEEPDEEP信号,以允许
停止系统时钟
B it1 SLEEPONEXIT 激活“SleepOnExit”功能
Bit0 保留 -
处理器具有以下信号以指示处理器进入睡眠的具体时间
SLEEPING:该信号在立即睡眠或“退出睡眠”模式下有效,表示处理器时钟可以停止运行,在接收到一个新的中断后NVIC会使信号变无效,使内核退出睡眠。
SLEEPDEEP:当系统控制寄存器的SLEEPDEEP位置位时,此信号在立即睡眠或“退出时睡眠”模式下有效。该信号被传送给时钟管理器,并可以用来门控处理器和包含锁相环(PLL)的系统元件以节省功耗。在接收到新的中断时,嵌套向量中断控制器将SLEEPDEEP信号变无效,并在时钟管理器显示时钟稳定时让内核退出睡眠。 |