STR配置说明


1.STR介绍

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


2. 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.APP恢复

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

外部中断设置:

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

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