From 628cdcbea072c2d22b4f191c3b7524b320a0a9ba Mon Sep 17 00:00:00 2001 From: zhushengle Date: Wed, 14 Apr 2021 17:27:42 +0800 Subject: [PATCH] IssueNo:#I3IK07 Description:liteos_m scheduling optimization and low power design. Sig:kernel Feature or Bugfix:Feature Binary Source:No Change-Id: I56bb190c73c8d7497ddbf2ad49ad522143008117 --- kernel/src/los_sched.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/kernel/src/los_sched.c b/kernel/src/los_sched.c index a6c43597..3e27e99b 100644 --- a/kernel/src/los_sched.c +++ b/kernel/src/los_sched.c @@ -445,6 +445,7 @@ VOID OsSchedStart(VOID) g_losTask.newTask = newTask; g_losTask.runTask = g_losTask.newTask; + g_taskScheduled = 1; newTask->startTime = OsGetCurrSchedTimeCycle(); OsSchedTaskDeQueue(newTask); @@ -453,7 +454,6 @@ VOID OsSchedStart(VOID) OsSchedSetNextExpireTime(newTask->startTime, newTask->taskID, newTask->startTime + newTask->timeSlice); PRINTK("Entering scheduler\n"); - g_taskScheduled = 1; } BOOL OsSchedTaskSwitch(VOID) @@ -501,6 +501,8 @@ VOID LOS_SchedTickHandler(VOID) UINT64 currTime; BOOL needSched = FALSE; + LOS_ASSERT(g_taskScheduled); + UINT32 intSave = LOS_IntLock(); if (g_schedResponseID == OS_INVALID) { @@ -512,7 +514,7 @@ VOID LOS_SchedTickHandler(VOID) } g_schedResponseTime = OS_SCHED_MAX_RESPONSE_TIME; - if (g_taskScheduled && needSched && LOS_CHECK_SCHEDULE) { + if (needSched && LOS_CHECK_SCHEDULE) { HalTaskSchedule(); } else { currTime = OsGetCurrSchedTimeCycle();