文章目录
- Free RTOS List 学习
-
- 二、链表的操作
-
- 2.1 链表节点初始化函数在list.c中实现:
- 2.2 链表根节点的数据结构在list.h中定义;
- 2.3 链表根节点的初始化在list.c中实现:
- 2.4 将节点插入到链表的尾部:
- 2.5 将节点按照升序排列插入到链表:
- 2.6 将节点从链表删除
- 链表节点插入实验:
- 仿真结果:
Free RTOS List 学习
二、链表的操作
Free RTOS中,与链表相关的操作都在 list.h 和list.c 这两个文件中实现。
2.1 链表节点初始化函数在list.c中实现:
void vListInitialiseItem( ListItem_t * const pxItem );
2.2 链表根节点的数据结构在list.h中定义;
2.3 链表根节点的初始化在list.c中实现:
void vListInitialise( List_t * const pxList );
2.4 将节点插入到链表的尾部:
void vListInsertEnd( List_t * const pxList, ListItem_t * const pxNewListItem );
2.5 将节点按照升序排列插入到链表:
void vListInsert( List_t * const pxList, ListItem_t * const pxNewListItem );
2.6 将节点从链表删除
UBaseType_t uxListRemove( ListItem_t * const pxItemToRemove );
链表节点插入实验:
新建一个根节点和三个普通节点,然后将这三个普通节点按照节点
排序辅助值做升序排列插入到链表中。
/* 链表根节点初始化 */vListInitialise( &List_Test );/* 节点1初始化 */vListInitialiseItem( &List_Item1 );List_Item1.xItemValue = 1;/* 节点2初始化 */ vListInitialiseItem( &List_Item2 );List_Item2.xItemValue = 2;/* 节点3初始化 */vListInitialiseItem( &List_Item3 );List_Item3.xItemValue = 3;/* 将节点插入链表,按照升序排列 */vListInsert( &List_Test, &List_Item2 ); vListInsert( &List_Test, &List_Item1 );vListInsert( &List_Test, &List_Item3 );
仿真结果:
文章摘取自野火的课件,仅供个人学习记录。