低功耗相关寄存器

← 低功耗知识地图 | ← 主页


Cortex-M 内核寄存器

SCB→SCR:系统控制寄存器

地址:0xE000ED10。控制处理器执行 WFI/WFE 时采用哪种睡眠行为。

位CMSIS 名称作用
2SCB_SCR_SLEEPONEXIT_MskSLEEPONEXIT=1:从中断处理函数返回后直接进入睡眠;适合中断驱动系统,普通 RTOS 通常保持 0
1SCB_SCR_SLEEPDEEP_MskSLEEPDEEP=1:WFI/WFE 进入芯片定义的深度睡眠,如 Stop/Standby;为 0 时进入 Sleep
4SCB_SCR_SEVONPEND_MskSEVONPEND=1:使能的中断变为 pending 时产生 Event,可唤醒 WFE

WIC:唤醒中断控制器

WIC(Wake-up Interrupt Controller)是 Cortex-M 芯片在深度睡眠期间用于筛选唤醒中断的低功耗硬件。 WIC的体积非常小,是可选的中断检测电路,他通过一个特殊的接口同Cortex-M处理器中的NVIC相连,而且还和电源管理单元(PMU)等设备相关的电源控制系统相连 WIC中没有可编程寄存器,中断屏蔽信息是在刚要进入深度休眠模式前由NVIC送到WIC的 进入深睡后,内核和部分 NVIC 电路可以关闭(因为WIC是异步的),WIC 仍监视被允许的中断;发生唤醒事件后,WIC 触发内核恢复。

  • WIC 不是所有 Cortex-M 芯片都实现,是否存在、能监视哪些中断由芯片实现决定。
  • WIC 通常没有可移植的 CMSIS 寄存器接口,不能把它当作 NVIC->ISER 一样直接配置。
  • 软件仍需配置 NVIC 使能、EXTI/RTC/LPTIM 标志和芯片 PWR 唤醒源;WIC 只负责深睡期间的硬件唤醒路径。