清單作用:用于追蹤freeRTOS的任務
清單:
定義方法:List_t ****;
清單的成員變量:(不包括清單的完整性檢測)
uxNumbersOfItems //用于記錄清單項的數量
pxIndex //用于記錄目前清單項的索引号用于周遊清單
xListEnd //清單中最後一個清單項
清單項:
定義方法:ListItem_t ***;
清單項成員變量:(不包括清單項完整性的檢測變量)
xItem value //清單項的值
pxNext //指向下一個清單項
pxPrevious //指向上一個清單項
pvOwner //清單項的所有者(通常為人物控制塊)
pvContainer //記錄清單項歸屬于哪一個清單
迷你清單項成員變量:(不包括清單項完整性檢測的成員變量)
xItem value //清單項的值
pxNext //指向下一個清單項
pxPrevious //指向上一個清單項
清單和清單項初始化用到的函數:
void vListInitialise( List_t * const pxList ) //清單初始化 、參數為清單
void vListInitialiseItem( ListItem_t * const pxItem ) //清單項初始化、參數為清單項
清單項的插入相關函數:
void vListInsert( List_t * const pxList, ListItem_t * const pxNewListItem ) //參數一:被插入的清單 參數二:插入的清單項
注意:插入的位置由清單項中的值按照升序的方式排列
eg:
第一步:插入值為40的清單項

第二步:插入值為60的清單項
第三步:插入值為50的清單項
可以看到插入的位置由值的大小升序排列而成。
清單項末尾插入
void vListInsertEnd( List_t * const pxList, ListItem_t * const pxNewListItem ) //參數一:要插入的清單 參數二:要插入的清單項
末尾插入與普通插入的不同之處:
預設清單:
插入值為50的清單項:
可以看到列項直接插入到清單的末尾,而不需要進行升序排序。
清單項删除:
UBaseType_t uxListRemove( ListItem_t * const pxItemToRemove ) //參數為需要删除的清單項 傳回值删除後剩下的清單項