从零开始掌握FreeRTOS(2)链表之节点的定义

目录

节点

节点定义

节点实现

根节点

根节点定义

 精简节点定义

根节点实现


      在上篇文章,我们完成了 FreeRTOS 的移植。在 FreeRTOS 中,所有功能被划分为任务。而任务则需要挂载链表上面。在本章,我们将掌握链表的各种节点类型。

        在创建任务之前,我们需要先了解FreeRTOS的运转机制。FreeRTOS是一个多任务系统,由操作系统来管理执行每个任务。这些任务全都挂载到一个双向循环链表上。同时链表的每个节点都能挂载多个任务。

节点

节点定义

        在 FreeRTOS 中,关于链表的定义在 list.h 中实现。下面代码为链表节点的结构体定义。

PS:在 list.h 中,我的宏 configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES 设置为0,当其为0时,listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE 和 listSECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE 这两个宏不代表实际值,为提高可读性所以我在后续出现这两个宏的地方都将他们删去了。

struct xLIST_ITEM
{			
	configLIST_VOLATILE TickType_t xItemValue;			
	struct xLIST_ITEM * configLIST_VOLATILE pxNext;		
	struct xLIST_ITEM * configLIST_VOLATILE pxPrevious;	
	void * pvOwner;										
	void * configLIST_VOLATILE pvContainer;							
};
typedef struct xLIST_ITEM ListItem_t;	

co

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pQAQqa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值