当前位置: 首页 > news >正文

FreeRTOS列表和列表项

 一:列表与列表项定义

FreeRTOS列表和列表项是FreeRTOS的一个数据结构,类似于链表。

FreeRTOS大量使用了列表和列表项,它是FreeRTOS中的基石,方便我们学习FreeRTOS的源码和原理。

列表被用于跟踪FreeRTOS的任务,列表结构为List,再文件list.h中定义

二.列表项初始化

三.列表项相关API函数

四.列表实验

1.建立列表任务

我使用的是动态任务

2.新建列表和列表项

列表初始化

在list.c中找到初始化列表函数,void vListInitialise( List_t * const pxList );添加到列表任务中

去list.h中找列表结构体,将List_t复制,去,main中建立结构体

将新建的结构体名添加到void vListInitialise( List_t * const pxList );参数中

建立列表项

去初始化列表项(相当于节点),也在list.c中找到函数void vListInitialiseItem( ListItem_t * const pxItem ),在main中建立三个列表项

列表项也需要去定义,在list.h中,复制到main中建立

建立后参数放到相应函数中

打印地址看关系

 列表项连起来之后是一个环形列表,排序是根据器直径,所以要去赋值。此时还没有建立起来,先把其地址打出来看看

此时没有建立列表,所以ListItem1、2、3地址是和索引地址不一样的

插入列表项

插入函数在list.c    void vListInsert( List_t * const pxList,ListItem_t * const pxNewListItem )

第一个参数列表 ,第二个参数新的列表项

两个参数共同决定往哪个列表里插入哪个列表项

插入之后的关系图

打印相关地址看关系

列表项的索引TestList->pxIndex 没有改动是指向迷你列表项的

由图知道,插入列表项一后迷你列表项的下一个地址是列表项1,列表项1的下一个地址是迷你列表项。列表项1的前一个是迷你列表项,迷你列表项的前一个是列表项1.由此可以知道他们是环状的,两个人手拉手。

把列表项二插入也还是环形

接着我们插入;列表三后关系图与前面有所不同,这里列表项二在最后,是因为排列是根据大小值来的,不是根据名字的一二三

删除列表项

函数在list.c中   UBaseType_t uxListRemove( ListItem_t * const pxItemToRemove ),参数是指针

只用填删除的列表项地址,用法和插入一样

从尾部插入列表项

 如图,正常插入是插到ListItem2的后面,尾部插入也就是直接插到迷你列表的后面。这需要我们改变索引地址pxIndex,没改变的情况下是指向迷你列表。     TestList.pxIndex=TestList.pxIndex->pxNext;// 索引等于当前索引的下一个

相关文章:

  • flink 写入es的依赖导入问题(踩坑记录)
  • 高并发下保证接口幂等性
  • vscode终端不识别npm 无法解析npm
  • 微信小程序登陆之反向代理
  • llama-factory 微调 Qwen2.5-3B-Instruct
  • python3使用lxml解析xml时踩坑记录
  • 基于STC89C51的太阳自动跟踪系统的设计与实现—单片机控制步进电机实现太阳跟踪控制(仿真+程序+原理图+PCB+文档)
  • 解决stm32引脚如果选择输入模式
  • 响应压缩导致的接口请求response没有响应体问题排查
  • 群晖 DS923 + 功能简介
  • macOS使用brew切换Python版本【超详细图解】
  • 蓝牙音频软件开发--杰理可视化SDK系列学习笔记汇总(持续更新)
  • 求职招聘网站源码,找工作招工系统,支持H5和各种小程序
  • TypeScript 生成指定范围内的随机数,并支持控制小数点后的位数
  • wsl2配置xv6全解(包括22.04Jammy)
  • 针对 pdf.mjs 文件因 MIME 类型错误导致的 Failed to load module script 问题解决方案
  • 【python】OpenCV—Hand Landmarks Detection
  • Siddon算法的公式和参数详细说明
  • 乐维网管平台核心功能解析(三)——告警关联资产
  • [vue]属性绑定
  • 公元1058年:柳永词为什么时好时坏?
  • 中哥两国元首共同见证签署《中华人民共和国政府与哥伦比亚共和国政府关于共同推进丝绸之路经济带和21世纪海上丝绸之路建设的合作规划》
  • 重庆发布经济犯罪案件接报警电子地图,企业可查询导航属地经侦服务点
  • 美英贸易协议|不,这不是一份重大贸易协议
  • 欧阳娜娜携家人回江西探亲,受聘为江西吉安文化旅游大使
  • 湖南湘西州副州长刘冬生主动交代问题,接受审查调查