FreeRTOS源码阅读笔记2--list.c

list.c中主要完成列表数据结构的操作,有列表和列表项的初始化、列表的插入和移除。

2.1列表初始化vListInitialise()

2.1.1函数原型

void vListInitialise( List_t * const pxList )

  • pxList:列表指针,指向要初始化的列表。

2.1.2函数框架

简单来说,列表的初始化就是链表根节点的初始化,如图所示:

2.2列表项初始化vListInitialiseItem()

2.2.1函数原型

void vListInitialiseItem( ListItem_t * const pxItem )

  • pxItem:列表项指针。

2.2.2函数框架

使列表项pxItem->pxContainer=NULL,表示列表项没有所属的列表。

2.3列表项插入列表末尾vListInsertEnd()

2.3.1函数原型

void vListInsertEnd( List_t * const pxList, ListItem_t * const pxNewListItem )

  • pxList:列表指针;
  • pxNewListItem:要插入的新列表项指针。

2.3.2函数框架

2.4列表项插入列表vListInsert()

2.4.1函数原型

void vListInsert( List_t * const pxList, ListItem_t * const pxNewListItem )

  • pxList:列表指针;
  • pxNewListItem:要插入的新列表项指针。

2.4.2函数框架

vListInsert()与vListInsertEnd()不同之处在于,可以根据列表项中的value值大小,先和根节点(value值最大)开始比,再由value值小到大找,找到比新列表项value值大的第一个列表项,然后把新列表项插入到它的前面。

2.5列表项移除列表uxListRemove()

2.5.1函数原型

UBaseType_t uxListRemove( ListItem_t * const pxItemToRemove )

  • pxItemToRemove:列表项指针,指向要移除的列表项;
  • 返回值:被移除列表项所属的列表中列表项的数量。

2.5.2函数框架

相关推荐
an12321217 小时前
ARM嵌入式学习笔记:SPI通信协议详解
arm开发·笔记·学习
Because_of_Her110 小时前
dfs-洪水填充技巧
笔记·算法·深度优先·洪水填充
xzal1210 小时前
GESP Python笔记
笔记·python·算法
周玉奎先生10 小时前
CGM系列水泥基灌浆料型号参数解析及安庆重点工程应用匹配
经验分享·笔记·零售
海海不掉头发10 小时前
软件项目管理学习笔记-从软件危机到敏捷与DevOps
笔记·学习·devops
M78佐菲13 小时前
ARM学习笔记(12)
linux·arm开发·笔记·嵌入式硬件·学习
奇思妙想聪明勤奋的小羊13 小时前
ai-agent-book第五章:Coding Agent 与通用 Agent 学习笔记
人工智能·笔记·学习
优化Henry14 小时前
BBU与RRU光链路详解:从双纤一收一发到单纤双向
网络·笔记·学习·5g·tdd
yi01114 小时前
DAY17: LeetCode 139|单词拆分:从“把单词删掉”到用 DP 记录合法切口
人工智能·笔记·python·算法·leetcode·动态规划
sunoo-22915 小时前
【嵌入式 ARM 学习第十二天】SPI 裸机驱动 + I2C 触摸屏驱动 + 三大串行协议深度对比
arm开发·笔记·vscode·学习·imx6ull