题记:知其然且知其所以然
理解 FreeRTOS 中的代码,不仅要了解它们的结构和用途,还要理解这些设计选择背后的原因。我个人就自己的学习中的问题表达一下自己的想法,请各位大神批评指正。
1、链表、节点介绍
链表就像一个圆形的衣架,衣架上面有很多钩子。每一个钩子代表一个节点。这些钩子本身不带有其他东西,但是每个钩子都可以挂载数据。FreeRTOS 中的列表(list)是一个双向链表:每个节点包含两个指针:一个指向前一个节点,一个指向下一个节点。这种结构提供了双向的遍历能力,使得可以在链表中进行双向的操作。
在这里笔者不对数据结构链表做过多的详细介绍,主要是针对FreeRTOS的代码,我们的目的就是读懂代码。本次学习过程基于野火FreeRTOS的教程。
2、LIST和LIST_ITEM
对应关系:
LIST(列表) | FreeRTOS中是双向链表,用于管理多个列表项。 |
---|---|
LIST_ITEM(列表项) | 代表链表中的一个节点,包含任务的相关信息(如优先级、延时时间等) |
后面这左边和右边等