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

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

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

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

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

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

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

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

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

相关推荐
敬往事一杯酒哈12 分钟前
海康 AGV 导航读码器学习
学习
qq_284274052 小时前
机械原理笔记:平面机构自由度计算(复合铰链、局部自由度、虚约束)与四杆机构入门(含考点)
笔记·学习·平面·自动化·制造
qq_284274053 小时前
数控铣床与加工中心笔记:铣刀与刀柄系统、G54试切对刀、镜像加工指令、孔加工工艺(钻扩铰镗)与固定循环G73/G83/G81/G76/G87/G84
笔记·学习·自动化·制造
Titan20244 小时前
MySQL访问个人学习笔记
笔记·学习·mysql
小雪崩5 小时前
嵌入式学习 day64:字符设备驱动
学习
个 人 练 习 生5 小时前
C++ string 类模拟实现:从底层理解字符串(上)
开发语言·c++·经验分享·学习·程序人生
坤坤子吖5 小时前
C++智能指针:RAII、shared_ptr与内存泄漏
开发语言·c++·笔记·学习
词却7 小时前
OpenCV学习:MediaPipe 人脸网格检测
opencv·学习
李日华大战鸡红7 小时前
FOC SVPWM过调制(学习记录)
stm32·单片机·学习
AI职业加油站8 小时前
AI 校招现状:大模型应用工程师证书,助力简历能力证明
大数据·运维·人工智能·学习·职场发展