首页 > 其他 > 详细

FreeRTOS学习笔记2:列表

时间:2020-02-19 21:54:13      阅读:95      评论:0      收藏:0      [点我收藏+]

list.h

列表结构List_t


列表:主要看三个
xLIST:
1、5检查列表完整性的。但是需要开启。默认不开启

2:记录列表中列表项的 数量:
3:记录当前列表项 索引号;
4:列表中的最后一个 列表项。//用来表示列表结束 变量类型是mini

列表项:主要看五个
1、7检查列表完整性。默认不开启

2:xItemVlaue 列表项的值,列表根据这个值连接起来,这个值决定顺序
3:指向列表项结构体的 指针(后)
4:指向列表项结构体的 指针(前)//相当于双向链表
5:空指针 pvOwner 描述 此列表项归谁拥有,通常是 任务控制块 (任务控制块中会有列表项属性)
//任务控制块中有两个成员state、event,的变量类型是 列表项
6:列表指针 pvContainer 描述此列表项归哪个列表。 //5+6 确定列表项的定位


在任务控制块中会有两个列表项
状态列表项和事件列表项//xStateListItem xEventListItem
创建了任务后,该xStateListItem 列表项的 pvOwner会指向这个任务控制块。
任务就绪态之后,xStateListItem 列表项的 pvContainer 会指向 就绪列表。

这两个列表项 用于 将某个任务放到某个列表中。//个人理解:这个列表项 = 一种任务属性 属于 属性列表
//如就绪列表、延时列表、阻塞列表、挂起列表等

当前任务,处于某种状态,就会将这个 列表项添加到对应的列表中去
如果这任务是在等待某个状态,就把这个任务,加到事件列表中去。

迷你列表项:
前面一样,没有56
它的意义:不需要全功能,不浪费内存。列表中的最后一个列表项:xListEnd,其类型为mini类型

 

 

API 函数
列表初始化:
列表项初始化
列表项插入
列表项末位插入
列表项删除
列表的遍历

遍历:freertos 提供了一个函数可以遍历列表
每调用一次这个函数,列表的pxIndex就不会指向下一个列表项。
并返回pxOwner 的变量值

 

vTaskList
该函数将统计到的信息放入一个表格:
创建任务名字,
任务状态:B 阻塞态 R 就绪态 S 挂起态 D 删除态
任务优先级
任务堆栈的“高水位线”:即堆栈历史最小剩余大小
任务编号:唯一

需要提供一个内存去保存。参数就是内存(*pcWriteBuffer)

配置:
使用这个功能,需将config的两个宏定义为1

 

FreeRTOS学习笔记2:列表

原文:https://www.cnblogs.com/yyyyloveu/p/12332935.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!