FreeRTOS学习笔记-基于stm32(5)列表和列表项

本文详细介绍了FreeRTOS中的列表结构、列表项、mini列表项以及相关的API函数,包括列表初始化、插入、删除等操作,通过实例展示了如何在FreeRTOS中使用这些数据结构进行任务管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、列表与列表项简介

        列表是FreeRTOS中的一种数据结构,类似双向循环链表。用来跟踪FreeRTOS中的任务。列表项就是存放在列表中的项目。

二、列表

列表结构体:

typedef struct xLIST
{
	listFIRST_LIST_INTEGRITY_CHECK_VALUE                //校验值
	configLIST_VOLATILE UBaseType_t uxNumberOfItems;    //列表中的列表项数量
	ListItem_t * configLIST_VOLATILE pxIndex;           //用于遍历列表项的指针
	MiniListItem_t xListEnd;                            //末尾列表项
	listSECOND_LIST_INTEGRITY_CHECK_VALUE               //校验值
} List_t;

①、首尾两个校验值是通过宏定义的已知常量,通过检测这两个值来判断列表的数据在运行过程中是否正确。该功能一般用于调试,默认关闭;

②、uxNumberOfItems 用于记录列表中列表项的个数;

③、pxIndex 用来指向列表中的某个列表项,一般用来遍历列表;

④、xListEnd 是末尾列表项

⑤、列表示意图:

                                        

三、列表项

struct xLIST_ITEM
{
	listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE             //校验项
	configLIST_VOLATILE TickType_t xItemValue;            //列表项的值
	struct xLIST_ITEM * configLIST_VOLATILE pxNext;       //下一个列表项
	struct xLIST_ITEM * configLIST_VOLATILE pxPrevious;   //上一个列表项
	void * pvOwner;                                       //列表项的拥有者
	void * configLIST_VOLATILE pvContainer;               //列表项所在的列表
	listSECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE            //校验项
typedef struct xLIST_ITEM ListItem_t;

①、首尾校验项默认关闭;

②、xItemValue 为列表项的一个值,用来对列表项进行排序;

③、pxNext、pxPrevious 前后指针;

④、pvOwner 用来指向任务控制块;

⑤、pvContainer 用来指向列表,例如就绪列表、阻塞列表、挂起列表;

⑥、列表项示意图:

                                    

四、mini列表项

struct xMINI_LIST_ITEM
{    
	listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE              //校验值
	configLIST_VOLATILE TickType_t xItemValue;             //列表项的值
	struct xLIST_ITEM * configLIST_VOLATILE pxNext;        //上一个列表
	struct xLIST_ITEM * configLIST_VOLATILE pxPrevious;    //下一个列表
};
typedef struct xMINI_LIST_ITEM MiniListItem_t;

与列表项类似,固定在列表项的结尾。

mini列表项示意图:

                                          

 五、列表与列表项相关API函数

1、列表初始化

void vListInitialise( List_t * const pxList )
{
//列表中只有 x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值