Cortex-M系列MCU能否在配置了中断但已禁用的低功耗模式(睡眠或深度睡眠或其他MCU特定模式)下唤醒?
进入低功耗模式的机制是执行WFI指令。
我从STM和瑞萨采用的MCU,如果中断配置正确,即使通过cpsid指令禁用所有中断,也会通过中断从低功耗模式唤醒。
我试图确定这是我所期望的所有基于Cortex M系列的MCU,还是仅针对某些MCU供应商。
答案 0 :(得分:0)
只要您使用PRIMASK
禁用所有中断,每个ARM Cortex-M都会以这种方式工作。这是CMSIS的__disable_irq()
。根据文档,使用BASEPRI
提高优先级不会导致优先级不足的中断唤醒芯片。
请参阅此处 - http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0552a/BABFEFIG.html
操作
WFI是一个提示指令,暂停执行,直到发生以下事件之一:
- 发生非屏蔽中断
- 由PRIMASK屏蔽的中断正在等待
- 调试条目请求。