LISA PM 双核组合唤醒示例

功能说明

本示例运行在 ARCS 双核模式下,用于观察三种低功耗唤醒源:

  • Wi-Fi PS LISTEN 唤醒;

  • GPIOB4 低电平唤醒;

  • AON Timer 周期唤醒,默认周期为 5100 ms。

AP 固件位于 remote/,负责启动 CP 并参与双核 PM 协同;CP 固件位于 src/,负责初始化 Wi-Fi、GPIOB4、AON Timer 和 lisa_pm。

三个唤醒源可在 src/main.c 文件首部独立开关,默认全部开启:

#define ENABLE_WIFI_PS_WAKEUP       1
#define ENABLE_GPIO_WAKEUP          1
#define ENABLE_AON_TIMER_WAKEUP     1

将对应宏改为 0 可以单独屏蔽该唤醒源,用于定位唤醒冲突。启动日志会打印最终生效的开关状态。

使用前配置

在 src/main.c 中设置待连接 AP 的凭据:

#define TARGET_WIFI_SSID    "YOUR_WIFI_SSID"
#define TARGET_WIFI_PWD     "YOUR_WIFI_PASSWORD"

示例源码默认不包含真实凭据。凭据为空时,程序会打印错误并无法完成 Wi-Fi 连接。

关键配置

配置

说明

CONFIG_LISA_PM=y

启用 LISA PM 框架和 HAL PM/VRTC

CONFIG_LISA_PM_CORE_PRIMARY=y

CP 作为 PM primary

CONFIG_LISA_PM_DUAL_CORE=y

AP/CP 以运行中的双核模式协同休眠

CONFIG_ARCS_HAL_IPC=y

启用 AP/CP PM 协同所需 IPC

CONFIG_LISA_GPIOB=y

提供 GPIOB4 唤醒设备

CONFIG_LISA_HWTIMER_ARCS_AON_TIMER=y

提供 AON Timer 设备

编译

./build.sh -C -S samples/subsys/lisa_pm/wifi_ps_gpio_aontimer -DBOARD=arcs_evb

产物:

build/arcs.bin
build/remote/ap.bin

AP 和 CP 固件必须一起烧录,烧录地址分别为 0x0 和 0x100000。

日志观察

启动时先确认唤醒源开关:

wake sources: wifi_ps=1 gpio_b4=1 aon_timer=1

唤醒后通过 CP 回调观察归一化原因:

CP after_wake cause=WIFI
CP after_wake cause=WIFI_DATA
CP after_wake cause=GPIO
CP after_wake cause=TIMER

WIFI_DATA 表示 Wi-Fi 唤醒后的首个数据包命中示例 matcher;GPIO 表示 GPIOB4 低电平触发;TIMER 表示 AON Timer/系统 Timer 触发。

注意事项

  1. GPIOB4 必须在进入休眠前保持高电平,拉低后才会触发低电平唤醒。

  2. AON Timer 通过 LISA PM/HAL VRTC 调度,不是独立于 PM 的普通运行期定时器。

  3. Wi-Fi PS 和 AON Timer 共用 HAL 的物理 PM TIMER/VRTC 调度资源。若同时开启后周期异常,请先分别关闭其中一个唤醒源进行隔离验证;该资源竞争需要 HAL/PM 层支持才能彻底解决。

  4. 本示例仅用于人工观察日志,不包含自动化测试数据;sample.yaml 仅执行 build_only。