FreeRTOS 中的链表和链表元素的定义

FPGA/ASIC技术

195人已加入

描述

FreeRTOS 内核中采用双向循环链表来进行任务调度,对任务总数没有限制,同一优先级的任务数也没有限制。相对于uC/OS-II 来说是一个大的优点。不过,有利必有弊。采用双向链表后代码相对来说要复杂一些。

FreeRTOS 中的链表和链表元素的定义如下:
typedef struct xLIST
{
volatile unsigned portBASE_TYPE uxNumberOfItems; // 链表中有多少元素
volatile xListItem * pxIndex;
volatile xMiniListItem xListEnd;
} xList;
struct xLIST_ITEM
{
portTickType xItemValue;
volatile struct xLIST_ITEM * pxNext;
volatile struct xLIST_ITEM * pxPrevious;
void * pvOwner;
void * pvContainer;
};typedef struct xLIST_ITEM xListItem;

先从链表元素开始分析,FreeRTOS 中的 xListItem 在其他代码中通常被称为 Node,也就是链表节点。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分