嵌入式开发学习日志46——FreeRTOS之列表与列表项

在FreeRTOS中大量应用到了列表以及列表项的相关内容,因此想要深入了解FreeRTOS,掌握列表以及列表项是必不可少的一步。

列表以及列表项其实都算作FreeRTOS的一种数据结构,用来专门跟踪任务。

与列表有关的内容都放在了list.c和list.h文件中,而一般的列表结构包含三个内容:Uxnumberofitems,用来表示列表项的数量;pxindex,一般指向的是列表的头部,也可用来进行对列表的遍历操作,每调用一次该变量就会指向下一个列表项;xlistend,指向列表的结尾。

列表项就是存放在列表中的项目,可以分为普通列表项以及迷你列表项。

普通列表项中有两个可以视作指针的重要成员,一个是pvcontainer,这是决定列表项属于哪个列表的;另一个就是pvowner,它决定了列表属于哪个任务控制块。当然,除了这两个成员外,普通列表项还有其他成员,例如记录列表项值的xItemValue,以及指向上一个和下一个列表项的pxPrevious和pxNext。

而迷你列表项就要简单多了,它除去了pvcontainer以及pvowner,保留了其他成员。从作用上看,其实迷你和普通列表项并没有太大区别,但是由于有时候并不需要列表项的所有功能,为了节省足够的空间,就会使用迷你列表项。

而至于列表以及列表项的初始化以及插入等操作,这一部分的源码是十分复杂的,有兴趣的读者可以自行去查阅,就当看小说了,在这里就不多赘述。

而在初步了解完任务和列表之后,下一章就要进行两者的创建与相互关联了。

相关推荐
@小匠6 小时前
Read Frog:一款开源的 AI 驱动浏览器语言学习扩展
人工智能·学习
炽烈小老头12 小时前
【 每天学习一点算法 2026/04/12】x 的平方根
学习·算法
阿杰学AI13 小时前
AI核心知识115—大语言模型之 自监督学习(简洁且通俗易懂版)
人工智能·学习·ai·语言模型·aigc·监督学习·自监督学习
九英里路14 小时前
OS学习之路——动静态库制作与原理
linux·学习·操作系统·unix·进程·编译·动静态库
red_redemption14 小时前
自由学习记录(160)
学习
南無忘码至尊14 小时前
Unity学习90天-第2天-认识Unity生命周期函数并用 Update 控制物体移动,FixedUpdate 控制物理
学习·unity·游戏引擎
报错小能手15 小时前
ios开发方向——swift错误处理:do/try/catch、Result、throws
开发语言·学习·ios·swift
LX5677715 小时前
传统销售如何系统学习成为AI智能销售顾问?认证指南
人工智能·学习
做cv的小昊15 小时前
【TJU】应用统计学——第五周作业(3.1 假设检验的基本思想、3.2 单个正态总体参数的假设检验)
学习·线性代数·机器学习·数学建模·矩阵·概率论·tju
格鸰爱童话16 小时前
向AI学习项目技能(六)
java·人工智能·spring boot·python·学习