概述

电源管理架构低功耗模式 请参考 低功耗开发指南 相关章节

对 zephyr 支持情况

  1. 管理机制:

  1. 低功耗等级:

  • PM_STATE_SUSPEND_TO_IDLE:对应时钟门控 (Clock Gating)

  • PM_STATE_SUSPEND_TO_RAM0:对应电源门控 (Power Gating)

  • default:CPU idle(WFI)

  1. 唤醒源支持情况:

Device

State

BT_WAKE_HOST

YES

CAN

YES

SDIO_HOST

YES

RMII

YES

CAPTOUCH

YES

ADC

YES

RTC

YES

GPIO

YES

UART_LOG

YES

UART

YES

Timer

YES

IWDG

YES

SDIO_WIFI

NO

BT_SCB

NO

SDIO_BT

NO

AON_WAKEPIN

NO

AON_TIM

NO

PWR_DOWN

NO

USB

NO

BOR

NO

进入低功耗的策略

zephyr 支持两种进入低功耗的策略:Residency BasedApplication Defined,参考 Power Management Policies

我们基于 zephyr 提供的 Residency Based 策略加入了额外的检查逻辑,流程如下:

  • 首先检查 BT/WIFI 等模块允许进入低功耗

  • 然后将 expire ticks 与 dts 中预定义的 state 进行比较,驻留时间满足则进入选定的 state,例如如下 state 定义:

    power-states {
      pm_cg: pm_cg {
        compatible = "zephyr,power-state";
        power-state-name = "suspend-to-idle";
        min-residency-us = <3000>;
        exit-latency-us = <2000>;
      };
      pm_pg: pm_pg {
        compatible = "zephyr,power-state";
        power-state-name = "suspend-to-ram";
        min-residency-us = <5000>;
        exit-latency-us = <2500>;
      };
    };
    

    遍历所有 state,当空闲时间大于 min-residency-us + exit-latency-us 即选定该状态,直到不满足为止,详细参考 Residency Based Policy

休眠唤醒流程

下图中主要是示例了 AP(zephyr OS) 的 flow,AP 休眠前以及唤醒过程中和 NP 核如何协同工作请参考 低功耗开发指南