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

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

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

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

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

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

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

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

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

相关推荐
吃好睡好便好2 小时前
在Matlab中绘制横直方图
开发语言·学习·算法·matlab
nashane2 小时前
HarmonyOS 6学习:CapsLock键失效诊断与长截图完整实现指南
学习·华为·harmonyos
xian_wwq4 小时前
【学习笔记】AGC协调控制系统概述
笔记·学习
憧憬成为java架构高手的小白5 小时前
docker学习笔记(基于b站多个视频学习)【未完结】
笔记·学习
辰海Coding5 小时前
MiniSpring框架学习-完成的 IoC 容器
java·spring boot·学习·架构
闫记康6 小时前
Linux学习day5
linux·chrome·学习
一楼的猫7 小时前
从工具链视角对比:番茄作家助手 vs 第三方写作辅助方案
java·服务器·开发语言·前端·学习·chatgpt·ai写作
他们叫我阿冠7 小时前
实习前自我培训-Day1学习
学习
Upsy-Daisy7 小时前
AI Agent 项目学习笔记(七):RAG 高级扩展——过滤检索、PgVector 与云知识库
人工智能·笔记·学习
柿柿快乐8 小时前
Redis 入门第一课:全局命令、内部编码与单线程模型
redis·学习·缓存·基础教学