1.概述
- freertos中链表的实现在 list.c 和 list.h。
- 旨在通过学习freertos中的链表的数据结构,对freertos中的链表实现有一个整体的认识。
- freertos使用了三个数据结构来描述链表,分别是:List_t, MiniListItem_t,ListItem_t
- MiniListItem_t 是 List_t 的一部分,List_t 用来定义一个链表,如 就绪链表(pxReadyTasksLists), 就绪链表(pxReadyTasksLists) 作用是将已经定义好的任务以链表的形式串起来,供调度器调度。
RIVILEGED_DATA static List_t pxReadyTasksLists[ configMAX_PRIORITIES ]; /**< Prioritised ready tasks. */ - MiniListItem_t 叫做链表项,它通常被其他数据结构 包含,比如用来描述一个任务的 TCB 结构体,这样TCB结构体就可以借助 ListItem_t(链表项) 插入到合适的链表中了。
- List_t, MiniListItem_t,ListItem_t 最终结构如下图所示:

2. List_t 结构
typedef struct xLIST
{
listFIRST_LIST_INTEGRITY_CHECK_VALUE /**< Set to a known value if configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is set to 1. */
configLIST_VOLATILE UBaseType_t uxNumberOfItems;
ListItem_t * configLIST_VOLATILE pxIndex

最低0.47元/天 解锁文章
1002

被折叠的 条评论
为什么被折叠?



