本期主题
#中断休眠唤醒
#不执行中断的休眠唤醒
#退出中断自动休眠特性
更多信息咨询请联系angel.qi:13827489351(微信与手机号码同步)
中断休眠唤醒
休眠遇上中断,便得以结束这无尽的等待
在HC32系列MCU中:
如果执行WFI进入休眠模式,那么任意一个被NVIC响应的外设中断(休眠模式可支持的模块)都能够将系统从(深度)休眠模式唤醒。
一般情况下,如果没有使用任何休眠特性,唤醒后可以继续执行线程——如:main(),可等待再次休眠。
不执行中断的休眠唤醒
一如轻轻地呼唤,而后悄然离去
WFI的操作还有一个特殊用途,在WFI休眠期间,如果[PRIMASK]屏蔽了某中断并且该中断的优先级大于当前优先级,那么该中断仍然可以唤醒处理器,只是在[PRIMASK]清除之前,处理器不会执行该中断的处理
利用该特性,处理器可以再次执行中断服务程序前进行系统任务管理(如:休眠前关闭某些外设时钟,并在唤醒后进入中断服务程序前恢复外设时钟)。
退出中断自动休眠特性
天空没有鸟的痕迹,但我已飞过
退出休眠特性是Cortex-M0+处理器低功耗特性之一。
当[SLEEP-ON-EXIT]被使能时,如果处理器从异常退出时没有其他异常需要执行,则自动再次进入休眠模式。
该特性可以减少处理器的活动周期以及压栈和出栈过程带来的功耗,超低功耗应用中可根据应用情况,使用该方式来降低产品整个生命周期的功耗,还可提高休眠唤醒的响应速度。
Tips
在HC32系列MCU的(超)低功耗应用中,如果希望在保持良好的静态休眠功耗的同时获得更好的动态功耗,可根据产品应用特点,灵活选用上述中断休眠特性或将上述几种特性动态组合应用,适合的才是最好的!!!
|