13.3.2 任务控制块
任务控制块用来记录堆栈指针、任务的当前状态、任务的优先级等一些与任务运行管理有关的属性。FreeRTOS的任务控制块TCB_t的主要代码如下。

主要语句功能如下。
①*pxTopOfStack:任务的堆栈栈顶,在任务切换中使用。
②xStateListItem:标记任务状态的列表项,有Ready(就绪)、Blocked(阻塞)、Suspended(挂起)3种状态。
③xEventListItem:事件列表项。(https://www.daowen.com)
④uxPriority:任务优先级,其数值范围为0~(configMAX_PRIORITIES-1),数值大小在文件“FreeRTOSConfig.h”中设置;FreeRTOS规定优先级数值越低表示任务的优先级越低,0的优先级最低,configMAX_PRIORITIES-1的优先级最高。空闲任务的优先级最低,为0。当宏configUSE_TIME_SLICING设置为1的时候,多个任务可以共用一个优先级,数量不限。
⑤*pxStack:任务堆栈起始地址。
⑥pcTaskName:任务名称。
例如,xTaskCreate(Task1_led,"Task1",64,NULL,1,NULL)创建任务后的任务控制块结构如图13.8所示。

图13.8 任务控制块结构