STM32F10xxx20xxx21xxxL1xxxx Cortex-M3程序设计手册 阅读笔记二(5):Cortex-M3处理器能量管理

Stm32和Cortex-M3处理器睡眠模式降低能量损耗:

       睡眠模式停止处理器时钟,所有其它系统和外设时钟保持运行。

       深度睡眠模式停止了大部分stm32系统和外设时钟。在产品级别,可能相应的为停止模式和待机模式。

       进入睡眠模式:

等待中断指令,可以引起快速进入睡眠模式。当处理器执行一个等待中断指令后,停止执行指令并且进入睡眠模式。

等待事件指令,如果一位时间寄存器的值有条件,则它引起进入睡眠模式。当处理器执行等待事件指令,它检查一位事件寄存器,如果寄存器是0,处理器停止执行指令进入睡眠模式;如果寄存器是1,处理器清除寄存器为0并且继续执行指令并不进入睡眠模式。

睡眠离开 如果SCR寄存器的SLEEPONEXIT位设置为1,当处理器完成一个异常处理的执行,它返回线程模式且快速进入睡眠模式,使用这个机制应用在只需要处理器在异常出现运行的场景。

从睡眠模式中唤醒:

从等待中断和睡眠离开中唤醒,通常,处理器只有在它检测到一个足够优先级异常引起异常进入时唤醒。一些嵌入式系统不得不执行系统恢复任务在处理器唤醒后和执行中断处理前。为了达到这个目的,设置PRIMASK位为1和FAULTMASK为0.如果一个使能且有一个比当前异常较高的优先级中断到达,处理器唤醒但不中断处理直到处理器设置PRIMSAK为0。

从等待事件中唤醒,如果处理器检测到足够优先级的异常引起异常进入或者检测到外部事件信号,处理器唤醒。此外,如果SCR寄存器的SEVONPEND位置1,任何暂停的中断触发一个事件且唤醒处理器,即使这个中断被失能或者没有足够优先级引起异常进入。

外部事件输入,处理器提供外部事件输入信号,这个信号可以被高达16个外部输入线产生,被PVD,实时时钟警告,或者USB唤醒事件,配置通过外部中断/事件控制器。这个信号何以唤醒处理器从等待事件,或设置内部等待事件事件寄存器为1表明处理不需要进入睡眠模式在下一个等待事件指令。

能量管理编程提示,ANSI C不能直接声称等待中断、等待事件指令。CMSIS为那些指令提供了内部函数。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值