IssueNo:#I3IK07

Description:liteos_m scheduling optimization and low power design.
Sig:kernel
Feature or Bugfix:Feature
Binary Source:No

Change-Id: I56bb190c73c8d7497ddbf2ad49ad522143008117
This commit is contained in:
zhushengle 2021-04-14 17:27:42 +08:00
parent cd30e62998
commit 628cdcbea0
1 changed files with 4 additions and 2 deletions

View File

@ -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();