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

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

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

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

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

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

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

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

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

相关推荐
通信小呆呆12 天前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
H__Rick12 天前
自动对焦学习-3
人工智能·学习·计算机视觉
Daisy Lee12 天前
量化学习-第1章-什么是量化金融
学习·金融·datawhale
Alsn8612 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
YM52e12 天前
买菜计算器小应用 - HarmonyOS ArkUI 开发实战-PC版本
学习·华为·harmonyos·鸿蒙·鸿蒙系统
小雨下雨的雨12 天前
HarmonyOS ArkUI训练营入门-组件掌握系列-Animation 动画效果实现-PC版本
学习·华为·harmonyos·鸿蒙
cqbzcsq12 天前
CellFlow虚拟细胞论文阅读
论文阅读·人工智能·笔记·学习·生物信息
YangYang9YangYan12 天前
2026初入职场学习数据分析的价值
学习·数据挖掘·数据分析
guslegend12 天前
理论学习:什么是 Coding Agent?
学习
自传.12 天前
尚硅谷 Vibe Coding|第三章(1) Claude Code深度使用与进阶技巧 学习笔记
笔记·学习·尚硅谷·vibecoding