就绪列表顾名思义:一个个需要在操作系统里面运行的好多任务,我们需要给这些任务分配好,先运行那个,也就是事情的轻重缓急呗。
具体步骤很简单:先初始化一个链表,吧这个链表起个名字叫做就绪列表,那么初始化该链表也就是就绪列表的初始化,
参考代码如下:
#define configMAX_PRIORITIES ( 5 )
List_t pxReadyTasksLists[ configMAX_PRIORITIES ];
/* 初始化任务相关的列表 */
void prvInitialiseTaskLists( void )
{
UBaseType_t uxPriority;
for( uxPriority = ( UBaseType_t ) 0U; uxPriority < ( UBaseType_t ) configMAX_PRIORITIES; uxPriority++ )
{
vListInitialise( &( pxReadyTasksLists[ uxPriority ] ) );
}
}
void vListInitialise( List_t * const pxList )
{
/* 将链表索引指针指向最后一个节点 */
pxList->pxIndex = ( ListItem_t * ) &( pxList->xListEnd );
/* 将链表最后一个节点的辅助排序的值设置为最大,确保该节点就是链表的最后节点 */
pxList->xListEnd.xItemValue = portMAX_DELAY;
/* 将最后一个节点的pxNext和pxPrevious指针均指向节点自身,表示链表为空 */
pxList->xListEnd.pxNext = ( ListItem_t * ) &( pxLi