FreeRTOS 源码注释(prvInitialiseTaskLists)

/* 初始化所有内核链表. 在第一个用户任务建立时,被xTaskGenericCreate 调用 */
static void prvInitialiseTaskLists( void )
{
unsigned portBASE_TYPE uxPriority;

    for( uxPriority = ( unsigned portBASE_TYPE ) 0U; uxPriority < configMAX_PRIORITIES; uxPriority++ )
    {
        vListInitialise( ( xList * ) &( pxReadyTasksLists[ uxPriority ] ) );/*初始化所有的就绪链表*/
    }
  /* 所有的链表在使用前都要初始化 */
    vListInitialise( ( xList * ) &xDelayedTaskList1 );
    vListInitialise( ( xList * ) &xDelayedTaskList2 );
    vListInitialise( ( xList * ) &xPendingReadyList );

    #if ( INCLUDE_vTaskDelete == 1 )
    {
        vListInitialise( ( xList * ) &xTasksWaitingTermination );
    }
    #endif

    #if ( INCLUDE_vTaskSuspend == 1 )
    {
        vListInitialise( ( xList * ) &xSuspendedTaskList );
    }
    #endif

    /* 准备好等待链表 */
    pxDelayedTaskList = &xDelayedTaskList1;
    pxOverflowDelayedTaskList = &xDelayedTaskList2;
}

你可能感兴趣的:(include,任务)