网站开发语言总结,产品毕业设计代做网站,wordpress存放图片的,郑州医院排名第一妇科六、FreeRTOS的列表和列表项 文章目录 六、FreeRTOS的列表和列表项列表相关结构体列表项相关结构体迷你列表项列表相关API函数介绍初始化列表vListInitialise()函数vListInitialiseItem()函数vListInsert()函数 vListInsertEnd()函数 uxListRemove() 列表就是一个双向链表…六、FreeRTOS的列表和列表项 文章目录 六、FreeRTOS的列表和列表项列表相关结构体列表项相关结构体迷你列表项列表相关API函数介绍初始化列表vListInitialise()函数vListInitialiseItem()函数vListInsert()函数 vListInsertEnd()函数 uxListRemove() 列表就是一个双向链表用来存放FreeRTOS中的任务列表项 列表相当于链表列表项相当于节点FreeRTOS 中的列表是一个双向环形链表列表的特点列表项间的地址非连续的列表项的数目是由后期添加的个数决定的数组的特点数组成员地址是连续的数组在最初确定了成员数量后期无法改变在OS中任务的数量是不确定的并且任务状态是会发生改变的所以非常适用列表(链表)这种数据结构 列表相关结构体
typedef struct xLIST
{listFIRST_LIST_INTEGRITY_CHECK_VALUE /* 校验值 */volatile UBaseType_t uxNumberOfItems; /* 列表中的列表项数量 */ListItem_t * configLIST_VOLATILE pxIndex /* 用于遍历列表项的指针 */MiniListItem_t xListEnd /* 末尾列表项 */listSECOND_LIST_INTEGRITY_CHECK_VALUE /* 校验值 */
} List_t; 在该结构体中 包含了两个宏这两个宏是确定的已知常量 FreeRTOS通过检查这两个常量的值来判断列表的数据在程序运行过程中是否遭到破坏 该功能一般用于调试 默认是不开启的成员uxNumberOfItems用于记录列表中列表项的个数不包含 xListEnd成员 pxIndex 用于指向列表中的某个列表项一般用于遍历列表中的所有列表项成员变量 xListEnd 是一个迷你列表项排在最末尾 列表项相关结构体
struct xLIST_ITEM
{listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE /* 用于检测列表项的数据完整性 */configLIST_VOLATILE TickType_t xItemValue /* 列表项的值 */struct xLIST_ITEM * configLIST_VOLATILE pxNext /* 下一个列表项 */struct xLIST_ITEM * configLIST_VOLATILE pxPrevious /* 上一个列表项 */void * pvOwner /* 列表项的拥有者 */struct xLIST * configLIST_VOLATILE pxContainer; /* 列表项所在列表 */listSECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE /* 用于检测列表项的数据完整性 */
};
typedef struct xLIST_ITEM ListItem_t; 成员变量 xItemValue 为列表项的值这个值多用于按升序对列表中的列表项进行排序 成员变量 pxNext 和 pxPrevious 分别用于指向列表中列表项的下一个列表项和上一个列表项 成员变量 pxOwner 用于指向包含列表项的对象通常是任务控制块 成员变量 pxContainer 用于指向列表项所在列表。 迷你列表项
struct xMINI_LIST_ITEM
{listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE /* 用于检测数据完整性 */configLIST_VOLATILE TickType_t xItemValue; /* 列表项的值 */struct xLIST_ITEM * configLIST_VOLATILE pxNext; /* 上一个列表项 */struct xLIST_ITEM * configLIST_VOLATILE pxPrevious; /* 下一个列表项 */
};
typedef struct xMINI_LIST_ITEM MiniListItem_t; 成员变量 xItemValue 为列表项的值这个值多用于按升序对列表中的列表项进行排序成员变量 pxNext 和 pxPrevious 分别用于指向列表中列表项的下一个列表项和上一个列表项迷你列表项只用于标记列表的末尾和挂载其他插入列表中的列表项因此不需要成员变量 pxOwner 和 pxContainer以节省内存开销 列表相关API函数介绍
函数描述vListInitialise()初始化列表vListInitialiseItem()初始化列表项vListInsertEnd()列表末尾插入列表项vListInsert()列表插入列表项uxListRemove()列表移除列表项
初始化列表vListInitialise() 函数vListInitialiseItem() 函数vListInsert() 此函数用于将待插入列表的列表项按照列表项值升序进行排序有序地插入到列表中 函数vListInsert()是将待插入列表的列表项按照列表项值升序进行排序有序地插入到列表中
函数 vListInsertEnd() 此函数用于将待插入列表的列表项插入到列表 pxIndex 指针指向的列表项前面是一种无序的插入方法 函数vListInsertEnd()是将待插入的列表项插入到列表 pxIndex 指针指向的列表项前面;它是一种无序的插入方法 函数 uxListRemove()