Signed-off-by: yangzelin <yangzelin@talkweb.com.cn>

fix: 解决关闭SWTMR模块后无法编译的问题

关闭SWTMR模块后, 屏蔽相关全局变量以及函数调用
This commit is contained in:
yangzelin 2022-04-28 09:49:15 +08:00
parent fcd677feba
commit 91743d3ea4
5 changed files with 30 additions and 2 deletions

View File

@ -56,7 +56,10 @@ typedef struct {
} SortLinkAttribute; } SortLinkAttribute;
extern SortLinkAttribute g_taskSortLink; extern SortLinkAttribute g_taskSortLink;
#if (LOSCFG_BASE_CORE_SWTMR == 1)
extern SortLinkAttribute g_swtmrSortLink; extern SortLinkAttribute g_swtmrSortLink;
#endif
#define OS_SORT_LINK_INVALID_TIME ((UINT64)-1) #define OS_SORT_LINK_INVALID_TIME ((UINT64)-1)
#define SET_SORTLIST_VALUE(sortList, value) (((SortLinkList *)(sortList))->responseTime = (value)) #define SET_SORTLIST_VALUE(sortList, value) (((SortLinkList *)(sortList))->responseTime = (value))
@ -98,7 +101,11 @@ STATIC INLINE UINT64 GetSortLinkNextExpireTime(SortLinkAttribute *sortHead, UINT
STATIC INLINE UINT64 OsGetNextExpireTime(UINT64 startTime, UINT32 tickPrecision) STATIC INLINE UINT64 OsGetNextExpireTime(UINT64 startTime, UINT32 tickPrecision)
{ {
UINT64 taskExpireTime = GetSortLinkNextExpireTime(&g_taskSortLink, startTime, tickPrecision); UINT64 taskExpireTime = GetSortLinkNextExpireTime(&g_taskSortLink, startTime, tickPrecision);
#if (LOSCFG_BASE_CORE_SWTMR == 1)
UINT64 swtmrExpireTime = GetSortLinkNextExpireTime(&g_swtmrSortLink, startTime, tickPrecision); UINT64 swtmrExpireTime = GetSortLinkNextExpireTime(&g_swtmrSortLink, startTime, tickPrecision);
#else
UINT64 swtmrExpireTime = taskExpireTime;
#endif
return (taskExpireTime < swtmrExpireTime) ? taskExpireTime : swtmrExpireTime; return (taskExpireTime < swtmrExpireTime) ? taskExpireTime : swtmrExpireTime;
} }

View File

@ -1584,7 +1584,9 @@ extern UINT32 g_idleTaskID;
* Software timer task ID. * Software timer task ID.
* *
*/ */
#if (LOSCFG_BASE_CORE_SWTMR == 1)
extern UINT32 g_swtmrTaskID; extern UINT32 g_swtmrTaskID;
#endif
/** /**
* @ingroup los_task * @ingroup los_task

View File

@ -509,7 +509,9 @@ VOID OsSchedStart(VOID)
OsTickSysTimerStartTimeSet(newTask->startTime); OsTickSysTimerStartTimeSet(newTask->startTime);
#if (LOSCFG_BASE_CORE_SWTMR == 1)
OsSwtmrResponseTimeReset(newTask->startTime); OsSwtmrResponseTimeReset(newTask->startTime);
#endif
/* Initialize the schedule timeline and enable scheduling */ /* Initialize the schedule timeline and enable scheduling */
g_taskScheduled = TRUE; g_taskScheduled = TRUE;

View File

@ -40,7 +40,10 @@ extern "C" {
#endif /* __cplusplus */ #endif /* __cplusplus */
SortLinkAttribute g_taskSortLink; SortLinkAttribute g_taskSortLink;
#if (LOSCFG_BASE_CORE_SWTMR == 1)
SortLinkAttribute g_swtmrSortLink; SortLinkAttribute g_swtmrSortLink;
#endif
UINT32 OsSortLinkInit(SortLinkAttribute *sortLinkHead) UINT32 OsSortLinkInit(SortLinkAttribute *sortLinkHead)
{ {
@ -85,8 +88,10 @@ VOID OsAdd2SortLink(SortLinkList *node, UINT64 startTime, UINT32 waitTicks, Sort
if (type == OS_SORT_LINK_TASK) { if (type == OS_SORT_LINK_TASK) {
sortLinkHead = &g_taskSortLink; sortLinkHead = &g_taskSortLink;
#if (LOSCFG_BASE_CORE_SWTMR == 1)
} else if (type == OS_SORT_LINK_SWTMR) { } else if (type == OS_SORT_LINK_SWTMR) {
sortLinkHead = &g_swtmrSortLink; sortLinkHead = &g_swtmrSortLink;
#endif
} else { } else {
LOS_Panic("Sort link type error : %u\n", type); LOS_Panic("Sort link type error : %u\n", type);
} }
@ -128,18 +133,22 @@ STATIC INLINE VOID SortLinkNodeTimeUpdate(SortLinkAttribute *sortLinkHead, UINT3
VOID OsSortLinkResponseTimeConvertFreq(UINT32 oldFreq) VOID OsSortLinkResponseTimeConvertFreq(UINT32 oldFreq)
{ {
SortLinkAttribute *taskHead = &g_taskSortLink; SortLinkAttribute *taskHead = &g_taskSortLink;
SortLinkAttribute *swtmrHead = &g_swtmrSortLink;
SortLinkNodeTimeUpdate(taskHead, oldFreq); SortLinkNodeTimeUpdate(taskHead, oldFreq);
#if (LOSCFG_BASE_CORE_SWTMR == 1)
SortLinkAttribute *swtmrHead = &g_swtmrSortLink;
SortLinkNodeTimeUpdate(swtmrHead, oldFreq); SortLinkNodeTimeUpdate(swtmrHead, oldFreq);
#endif
} }
SortLinkAttribute *OsGetSortLinkAttribute(SortLinkType type) SortLinkAttribute *OsGetSortLinkAttribute(SortLinkType type)
{ {
if (type == OS_SORT_LINK_TASK) { if (type == OS_SORT_LINK_TASK) {
return &g_taskSortLink; return &g_taskSortLink;
#if (LOSCFG_BASE_CORE_SWTMR == 1)
} else if (type == OS_SORT_LINK_SWTMR) { } else if (type == OS_SORT_LINK_SWTMR) {
return &g_swtmrSortLink; return &g_swtmrSortLink;
#endif
} }
PRINT_ERR("Invalid sort link type!\n"); PRINT_ERR("Invalid sort link type!\n");

View File

@ -102,7 +102,11 @@ LITE_OS_SEC_BSS LosTask g_losTask;
LITE_OS_SEC_BSS UINT16 g_losTaskLock; LITE_OS_SEC_BSS UINT16 g_losTaskLock;
LITE_OS_SEC_BSS UINT32 g_taskMaxNum; LITE_OS_SEC_BSS UINT32 g_taskMaxNum;
LITE_OS_SEC_BSS UINT32 g_idleTaskID; LITE_OS_SEC_BSS UINT32 g_idleTaskID;
#if (LOSCFG_BASE_CORE_SWTMR == 1)
LITE_OS_SEC_BSS UINT32 g_swtmrTaskID; LITE_OS_SEC_BSS UINT32 g_swtmrTaskID;
#endif
LITE_OS_SEC_DATA_INIT LOS_DL_LIST g_losFreeTask; LITE_OS_SEC_DATA_INIT LOS_DL_LIST g_losFreeTask;
LITE_OS_SEC_DATA_INIT LOS_DL_LIST g_taskRecycleList; LITE_OS_SEC_DATA_INIT LOS_DL_LIST g_taskRecycleList;
LITE_OS_SEC_BSS BOOL g_taskScheduled = FALSE; LITE_OS_SEC_BSS BOOL g_taskScheduled = FALSE;
@ -118,8 +122,10 @@ STATIC_INLINE UINT32 OsCheckTaskIDValid(UINT32 taskID)
UINT32 ret = LOS_OK; UINT32 ret = LOS_OK;
if (taskID == g_idleTaskID) { if (taskID == g_idleTaskID) {
ret = LOS_ERRNO_TSK_OPERATE_IDLE; ret = LOS_ERRNO_TSK_OPERATE_IDLE;
#if (LOSCFG_BASE_CORE_SWTMR == 1)
} else if (taskID == g_swtmrTaskID) { } else if (taskID == g_swtmrTaskID) {
ret = LOS_ERRNO_TSK_SUSPEND_SWTMR_NOT_ALLOWED; ret = LOS_ERRNO_TSK_SUSPEND_SWTMR_NOT_ALLOWED;
#endif
} else if (OS_TSK_GET_INDEX(taskID) >= g_taskMaxNum) { } else if (OS_TSK_GET_INDEX(taskID) >= g_taskMaxNum) {
ret = LOS_ERRNO_TSK_ID_INVALID; ret = LOS_ERRNO_TSK_ID_INVALID;
} }
@ -1212,9 +1218,11 @@ LITE_OS_SEC_TEXT_MINOR UINT32 LOS_TaskPriSet(UINT32 taskID, UINT16 taskPrio)
return LOS_ERRNO_TSK_OPERATE_IDLE; return LOS_ERRNO_TSK_OPERATE_IDLE;
} }
#if (LOSCFG_BASE_CORE_SWTMR == 1)
if (taskID == g_swtmrTaskID) { if (taskID == g_swtmrTaskID) {
return LOS_ERRNO_TSK_OPERATE_SWTMR; return LOS_ERRNO_TSK_OPERATE_SWTMR;
} }
#endif
if (OS_CHECK_TSK_PID_NOIDLE(taskID)) { if (OS_CHECK_TSK_PID_NOIDLE(taskID)) {
return LOS_ERRNO_TSK_ID_INVALID; return LOS_ERRNO_TSK_ID_INVALID;