SSD_STR使用说明


1. 概述

STR全称是Suspend to RAM,指设备进入低功耗状态,仅保留RAM自刷新。所有的设备和系统状态都保存在RAM中,所有外设都被挂起。


2. 硬件相关

2.1. STR下确保事项

a. DDR Power/CPU Power/3.3V Power 正常供电

b. 外围设备耗电部分断开电源

c. 注意芯片GPIO默认的上下拉状态

d. 当SSD20X进入STR Mode,需要配置外部中断唤醒(按键/touch等)

e. STR待机的时候, GPIO会保持在待机前应用的设定状态。唤醒后(reset)GPIO才会恢复到默认, 直到跑code重新设定状态。


2.2. STR Mode公版功耗数据


3. 软件相关

3.1. APP启用STR

APP挂起:

执行 system("echo mem > /sys/power/state"); 挂起APP。

执行该指令前需要先退出所有MI模块,并将模块关联的gpio等拉低,如反初始化disp,Panel,卸载wifi ko,关闭屏背光等。

MI模块有新增API,在模块退出时需要释放模块资源时call对应的DeInitDev接口。如退出DISP模块时,呼叫 MI_DISP_DeInitDev()。

MI_S32 SSTAR_DestroyVdec2DispPipe(MI_S32 s32VdecChn, MI_S32 s32DivpChn)
{
    SSTAR_ModuleUnBind(E_MI_MODULE_ID_VDEC, 0, s32VdecChn, 0,
                    E_MI_MODULE_ID_DISP, 0, 0, 0); //DIVP->DISP
    SSTAR_DestroyVdecChannel(s32VdecChn);
    MI_DISP_DisableInputPort(0, 0);

    MI_VDEC_DeInitDev();
    MI_DISP_DeInitDev();

    return MI_SUCCESS;
}

3.2. APP恢复

通过外部中断唤醒,唤醒后APP需要重新打开屏背光,加载wifi,重新初始化Panel,disp。

外部中断设置:

公板在infinity2m.dtsi 中有设置GPIO来唤醒,可以将该GPIO设置成用户指定的其它GPIO,或是设置成触屏对应的中断脚。

APP demo可参考github.com/aaron201912/UuidSSDPlayer UuidSSDPlayer/stdc++/zk_full_str