FreeRTOS学习笔记2:列表
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:列表的更多相关文章
- python学习笔记整理——列表
Python 文档学习笔记 数据结构--列表 列表的方法 添加 list.append(x) 添加元素 添加一个元素到列表的末尾:相当于a[len(a):] = [x] list.extend(L) ...
- python3.4学习笔记(十一) 列表、数组实例
python3.4学习笔记(十一) 列表.数组实例 #python列表,数组类型要相同,python不需要指定数据类型,可以把各种类型打包进去#python列表可以包含整数,浮点数,字符串,对象#创建 ...
- FreeRTOS学习笔记——FreeRTOS 任务基础知识
RTOS 系统的核心就是任务管理,FreeRTOS 也不例外,而且大多数学习RTOS 系统的工程师或者学生主要就是为了使用RTOS 的多任务处理功能,初步上手RTOS 系统首先必须掌握的也是任务的创建 ...
- FreeRTOS学习笔记——任务间使用队列同步数据
1.前言 在嵌入式操作系统中队列是任务间数据交换的常用手段,队列是生产者消费者模型的重要组成部分.FreeRTOS的队列简单易用,下面结合一个具体例子说明FreeRTOS中的队列如何使用. 2.参考代 ...
- HTML5学习笔记<四>: 列表, 块和布局
HTML列表 列表标签 标签 描述 <ol> 定义有序列表. <ul> 定义无序列表. <li> 定义列表项. <dl> 定义定义列表. <dt& ...
- FREERTOS学习笔记
2012-02-25 21:43:40 为提升自己对实时操作系统(RTOS)的认识,我学习了freeRTOS. 理解了OS任务的状态.优先级的概念.信号量的概念.互斥的概念.队列.内存管理.这都是和R ...
- python学习笔记-列表和字典
由于最近在看深度学习的代码,看到需要建立字典和列表来存储什么东西的时候,就想要去把字典和列表好好的了解清楚,其应用范围,差别,等等东西 首先我们来介绍,在python中存在如下的数据结构:列表list ...
- Perl 学习笔记-列表和数组
笔记来自<<Perl语言入门第5版>> 1. Perl中列表指标量的有序集合,数组则是存储列表的变量, 这两个术语经常混用,不过更精确地说,列表指数据,而数组指变量.数组的表示 ...
- FreeRTOS学习笔记4:时间管理
绝对时间:abs Time相对时间:百分比% time IDLE是空闲任务. RUN_Time_State:port...()初始化一个外设提供时基单元 //具体初始化要自己操作这个定时器的分辨率高于 ...
随机推荐
- java - 锁的种类及详解
锁类型 锁根据其特性能够划分出各种各样的锁类型,该文主要介绍以下锁的作用及特性 乐观锁/悲观锁 独享锁/共享锁 互斥锁/读写锁 可重入锁 公平锁/非公平锁 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁 ...
- [P5555] 秩序魔咒 - 回文自动机,DFS
#include <bits/stdc++.h> #define Sigma 30 #define MAXN 500010 #define int long long using name ...
- python笔记-01
Python环境安装 1.Windows下一键环境安装包 2.Python2.X与Python3.X 什么是代码? 代码是现实世界事物在计算机世界中的映射 什么是写代码? 写代码是将现实世界中的事物用 ...
- C++记录(二)
1.算术移位和逻辑移位. 逻辑移位是只补0,算术移位是看符号,负数补1,正数补0(讨论的是右移的情况下). 负数左移右边一样补0.如果遇到位运算的相关题目需要对int变量进行左移而且不知道正负,那么先 ...
- Docker学习笔记三
4.Docker数据管理 4.1.数据卷 数据卷是一个可供容器使用的特殊目录,它将主机操作系统目录直接映射进容器,类似与Linux的mount行为. 特性: 数据卷可以在容器之间共事和重用,容器间传递 ...
- Jmeter-几种脚本录制方式
一.使用代理服务器进行录制 1.创建线程组 2.创建http代理服务器 分组解释 不对样本分组:所有请求全部罗列 在组件添加分隔:加入一个虚拟的以分割线命名的动作 每个组放入一个新的控制器:执行时按控 ...
- AcWing 1022. 宠物小精灵之收服 二维费用背包
#include<iostream> using namespace std ; ; int f[N][N]; int V1,V2,n; int main() { cin>>V ...
- centos7安装谷歌浏览器
1. 安装: 考虑到国内无法访问Google,所以需要自己配置yum源: 1.在目录 /etc/yum.repos.d/ 下新建google-chrome.repo文件,命令如下: 1.cd /ect ...
- SSM-整合简单配置
首先说明Spring和Mybatis的版本: Spring:3.2.4 Mybatis:3.3.0 使用了C3P0连接池和Log4J日志,下面是jar包总览: 然后是项目目录总览: 为了能够让项目跑一 ...
- codeblocks汉化
1.- 汉化包 腾讯微云 2.首先打开codeblocks安装文件夹,如:D:\CodeBlocks\share\CodeBlocks\locale\zh_CN,注意:zh_CN文件夹需自行创建 3. ...