freertos: fix calling first task hook

This commit is contained in:
Ivan Grokhotkov 2016-10-28 13:41:07 +08:00
parent 4d8ad3c877
commit a038a2b533

View File

@ -1018,6 +1018,11 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB, TaskFunction_t pxTaskCode
if( uxCurrentNumberOfTasks == ( UBaseType_t ) 1 ) if( uxCurrentNumberOfTasks == ( UBaseType_t ) 1 )
{ {
#if portFIRST_TASK_HOOK
if ( xPortGetCoreID() == 0 ) {
vPortFirstTaskHook(pxTaskCode);
}
#endif /* configFIRST_TASK_HOOK */
/* This is the first task to be created so do the preliminary /* This is the first task to be created so do the preliminary
initialisation required. We will not recover if this call initialisation required. We will not recover if this call
fails, but we will report the failure. */ fails, but we will report the failure. */
@ -1044,12 +1049,6 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB, TaskFunction_t pxTaskCode
/* Schedule if nothing is scheduled yet, or overwrite a task of lower prio. */ /* Schedule if nothing is scheduled yet, or overwrite a task of lower prio. */
if ( pxCurrentTCB[i] == NULL || pxCurrentTCB[i]->uxPriority <= pxNewTCB->uxPriority ) if ( pxCurrentTCB[i] == NULL || pxCurrentTCB[i]->uxPriority <= pxNewTCB->uxPriority )
{ {
#if portFIRST_TASK_HOOK
if ( i == 0) {
vPortFirstTaskHook(pxTaskCode);
}
#endif /* configFIRST_TASK_HOOK */
pxCurrentTCB[i] = pxNewTCB; pxCurrentTCB[i] = pxNewTCB;
break; break;
} }