cortex-m处理器处于sleep mode或deep sleep mode时,处理器需要外部中断信号来唤醒,才能继续执行指令,在deep sleep mode下,处理器可能没有时钟,甚至已经被断电(具体行为取决于芯片设计者,arm并没有明确规定),并不能接收到外部中断信号,因此为了能够正确唤醒处理器,需要一个电路来接收外部中断信号,并通知片上PMU(Power Management Unit)给处理器提供时钟或电源,并在处理器可以接收中断后,将收到的中断信号送回给处理器,但这一功能是可选的。WIC就是实现这一功能的电路。下图是WIC在芯片中位置的一个示意图。
WIC在处理器休眠前,需要接收来自NVIC的中断屏蔽信息并加以保存,并在处理器处于休眠状态时不能断电,但是它不需要可编程寄存器,甚至可以在处理器休眠时不需要时钟,只要能根据中断屏蔽信息和收到的外部中断信号,及时通知PMU即可。下图是使用WIC时,处理器进入并退出休眠状态的工作流程图。
在某些芯片设计或某些处理器版本中可能并没有WIC,那么WIC的功能就取决于芯片设计者,一个可行的方案是直接把这一功能的子模块集成到PMU中。
下图是power on/off的典型sequence示意图,图中给出了时钟,ISO,RETAIN/RESTORE, power on/off的流程示意图。在power on sequence中,复位应该在power up到restore之间从低变高。
下图是一个详细的power sequence波形图。参考资料:The Definitive Guide to Arm Cortex-M3 and Cortex-M4 ProcessorsSystem-on-Chip Design with Arm® Cortex®-M Processors
Low Power Methodology Manual for Soc Design