1、列表和列表项
1)列表和链表类似,头指针指向链表的第一个节点,然后第一个节点中的指针指向下一个节点,然后依次指到最后一个节点,这样就构成了一条链表,列表项类似循环双链表。
列表:
列表项:
2、列表项的应用
任务创建时,会返回任务句柄,也就是任务控制块,其中两个成员变量: StateListItem 和 xEventListItem,这两个分别是状态列表项和事件列表项。
创建任务时初始化列表项,列表项的插入根据 xItemValue 的值按照升序的方式排列:
vListInitialiseItem( &( pxNewTCB->xStateListItem ) );
vListInitialiseItem( &( pxNewTCB->xEventListItem ) );
用例:
当使用延时函数时,若时延未到,将任务状态列表项插入延时列表:
/* The wake time has not overflowed, so the current block list
is used. */
vListInsert( pxDelayedTaskList, &( pxCurrentTCB->xStateListItem ) );