fix: 优化低功耗流程

1.normal和其它模式分离,流程分层化,使得结构较为清晰
2.tick timer处理实现优化为注册对应机制则默认支持,不注册则不执行,简化使用逻辑
3.添加 pm测试用例
Close #I46VXK

Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I7810ce0ca12dce96972399adf88e8319bb487905
This commit is contained in:
zhushengle
2021-09-06 19:26:16 +08:00
parent 6e1bdfe1de
commit c6600d9ddd
11 changed files with 569 additions and 112 deletions

View File

@@ -1622,7 +1622,7 @@ extern UINT32 OsGetAllTskInfo(VOID);
extern VOID *OsTskUserStackInit(VOID* stackPtr, VOID* userSP, UINT32 userStackSize);
extern UINT32 OsPmEnterHandlerSet(VOID (*func)(BOOL));
extern UINT32 OsPmEnterHandlerSet(VOID (*func)(VOID));
#ifdef __cplusplus
#if __cplusplus

View File

@@ -101,7 +101,7 @@ LITE_OS_SEC_DATA_INIT LOS_DL_LIST g_losFreeTask;
LITE_OS_SEC_DATA_INIT LOS_DL_LIST g_taskRecyleList;
LITE_OS_SEC_BSS BOOL g_taskScheduled = FALSE;
STATIC VOID (*PmEnter)(BOOL isIdle) = NULL;
STATIC VOID (*PmEnter)(VOID) = NULL;
#if (LOSCFG_BASE_CORE_EXC_TSK_SWITCH == 1)
TaskSwitchInfo g_taskSwitchInfo;
@@ -142,7 +142,7 @@ STATIC VOID OsRecyleFinishedTask(VOID)
LOS_IntRestore(intSave);
}
UINT32 OsPmEnterHandlerSet(VOID (*func)(BOOL))
UINT32 OsPmEnterHandlerSet(VOID (*func)(VOID))
{
if (func == NULL) {
return LOS_NOK;
@@ -165,7 +165,7 @@ LITE_OS_SEC_TEXT VOID OsIdleTask(VOID)
OsRecyleFinishedTask();
if (PmEnter != NULL) {
PmEnter(TRUE);
PmEnter();
} else {
(VOID)HalEnterSleep();
}