FreeRTOS之列表与列表项
声明:本人按照正点原子的FreeRTOS例程进行学习的,欢迎各位大佬指责和批评,谢谢!
列表:比喻为挂袜子的晾衣架
- uxNumberOfItems 记录列表项的数量
- pxIndex 记录当前列表项的索引号
- xListEnd 表示列表的结束
列表项:比喻为袜子
- xItemValue 列表项的值
- pxNext 指向下一个列表项
- pxPrevious 指向上一个列表项
- pvOwner 记录当前列表归“谁”所有
- pvContainer 记录此列表项归“哪个”列表
迷你列表项
- xItemValue 列表项的值
- pxNext 指向下一个列表项
- pxPrevious 指向上一个列表项
以xStateListItem为例,当创建一个任务后,xStateListItem的pwOwner变量就指向这个任务的任务控制块,表示xStateListItem属于此任务。当任务就绪态后,xStateListItem的变量pvContainer就指向就绪列表,表示此列表项在就绪列表中。
通俗的讲:小王在上二年级,他的父亲是老王。小王是列表项老王是pvOwner属性值,二年级是pvContainer属性值
1、定义
- 定义列表: List_t TestList;
- 定义列表项: ListItem_t ListItem1;
2、初始化
- vListInitialise(&TestList); 初始化列表
- vListInitialiseItem(&ListItem1); 初始化列表项
- vListInsert(&TestList,&ListItem1); 添加列表项
- 1uxListRemove(&ListItem1); 删除列表项
- 1TestList.pxIndex = TestList.pxIndex ->pxNext;
- 1vListInsertEnd(&TestList,&ListItem1); 在末尾添加列表项
结束