13.1.1 列表
更新于 2026年10月10日
版权声明
13.1.1 列表
1.列表的数据结构
列表是FreeRTOS的数据结构,在概念上与链表类似,可以用列表来跟踪FreeRTOS中的任务运行状态。在“list.h”文件中定义了一个List_t结构体表示列表,其定义如下。

各语句功能如下。
①和⑤用来检查列表完整性。
②uxNumberOfItems:用来记录列表中列表项的数量。
③pxIndex:用来记录当前列表项的索引号,用于遍历列表。
④xListEnd:用来表示列表结束,并指向迷你列表项。
列表结构示意图如图13.1所示。
一个任务通常有4种状态,即运行态、阻塞态、就绪态和挂起态。4个状态也就形成了4个列表,每个列表中存放着不同状态的任务。不同列表之间的切换就构成了一个任务在不同状态之间的切换,同一个列表内的不同列表项的排列,就构成了同一种状态中不同优先级的任务之间的排列顺序,即谁先运行、谁后运行。(https://www.daowen.com)

图13.1 列表结构示意图
2.FreeRTOS中重要的列表
在“task.c”文件中定义了几个重要的全局性列表,其定义如下。

各列表的功能如下。
①pxReadyTasksLists[configMAX_PRIORITIES]:基于优先级的就绪任务列表。
②pxDelayedTaskList:任务阻塞列表。
③xPendingReadyList:任务挂起列表。