diff --git a/kernel/include/los_sched.h b/kernel/include/los_sched.h index b514edb3..56955c3a 100644 --- a/kernel/include/los_sched.h +++ b/kernel/include/los_sched.h @@ -42,6 +42,8 @@ extern "C" { #endif /* __cplusplus */ #endif /* __cplusplus */ +#define OS_SCHED_MAX_RESPONSE_TIME (UINT64)(((UINT64)-1) - 1U) + extern UINT32 g_taskScheduled; typedef BOOL (*SchedScan)(VOID); diff --git a/kernel/src/los_sched.c b/kernel/src/los_sched.c index a7616fda..500abc6f 100644 --- a/kernel/src/los_sched.c +++ b/kernel/src/los_sched.c @@ -41,12 +41,10 @@ extern "C" { #endif /* __cplusplus */ #endif /* __cplusplus */ -#define OS_64BIT_MAX 0xFFFFFFFFFFFFFFFFULL #define OS_PRIORITY_QUEUE_NUM 32 #define PRIQUEUE_PRIOR0_BIT 0x80000000U #define OS_SCHED_TIME_SLICES ((LOSCFG_BASE_CORE_TIMESLICE_TIMEOUT * OS_SYS_NS_PER_US) / OS_NS_PER_CYCLE) #define OS_TIME_SLICE_MIN (INT32)((50 * OS_SYS_NS_PER_US) / OS_NS_PER_CYCLE) /* 50us */ -#define OS_SCHED_MAX_RESPONSE_TIME (UINT64)(OS_64BIT_MAX - 1U) #define OS_TICK_RESPONSE_TIME_MAX LOSCFG_BASE_CORE_TICK_RESPONSE_MAX #if (LOSCFG_BASE_CORE_TICK_RESPONSE_MAX == 0) #error "Must specify the maximum value that tick timer counter supports!" @@ -184,7 +182,7 @@ VOID OsSchedUpdateExpireTime(UINT64 startTime) INT32 timeSlice = (runTask->timeSlice <= OS_TIME_SLICE_MIN) ? OS_SCHED_TIME_SLICES : runTask->timeSlice; endTime = startTime + timeSlice; } else { - endTime = OS_SCHED_MAX_RESPONSE_TIME; + endTime = OS_SCHED_MAX_RESPONSE_TIME - OS_CYCLE_PER_TICK; } OsSchedSetNextExpireTime(startTime, runTask->taskID, endTime); } @@ -488,7 +486,7 @@ BOOL OsSchedTaskSwitch(VOID) if (newTask->taskID != g_idleTaskID) { endTime = newTask->startTime + newTask->timeSlice; } else { - endTime = OS_SCHED_MAX_RESPONSE_TIME; + endTime = OS_SCHED_MAX_RESPONSE_TIME - OS_CYCLE_PER_TICK; } OsSchedSetNextExpireTime(newTask->startTime, newTask->taskID, endTime); diff --git a/kernel/src/los_sortlink.c b/kernel/src/los_sortlink.c index 8c2a77eb..e1783063 100644 --- a/kernel/src/los_sortlink.c +++ b/kernel/src/los_sortlink.c @@ -92,7 +92,7 @@ STATIC INLINE UINT64 OsGetSortLinkNextExpireTime(SortLinkAttribute *sortHeader, LOS_DL_LIST *list = head->pstNext; if (LOS_ListEmpty(head)) { - return (UINT64)-1; + return OS_SCHED_MAX_RESPONSE_TIME - OS_CYCLE_PER_TICK; } do {