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

FreeRTOS学习——FreeRTOS队列(下)之队列创建

本篇文章记录我学习FreeRTOS队列创建的知识。主要分享队列创建需要使用的初始化函数、队列复位函数。

需要进一步了解FreeRTOS队列的相关知识,读者可以参考以下文章:

FreeRTOS学习——FreeRTOS队列(上)_freertos 单元素队列-CSDN博客

FreeRTOS学习——FreeR TOS队列——队列创建(中)-CSDN博客

一、队列初始化函数

队列初始化函数prvInitialiseNewQueue()用于队列的初始化,此函数在文件queue.c中有定义,函数代码如下:

(1)、队列结构体中的成员变量pcHead指向队列存储区中首地址。
(2)、初始化队列结构体中的成员变量
uxQueueLength和uxItemSize,这两个成员变量保存队列的最大队列项目和每个队列项大小。
(3)、调用函数xQueueGenericReset()复位队列。PS:发一句牢骚,绕来绕去的,函数调了一个又一个的。

二、队列复位函数

队列初始化函数 prvInitialiseNewQueue()中调用了函数xQueueGenericReset()来复位队列,函数xQueueGenericReset()代码如下:

(1)、初始化队列中的相关成员变量。
(2)、根据参数xNewQueue确定要复位的队列是否是新创建的队列,如果不是的话还需要做其他的处理
(3)、初始化队列中的列表xTasksWaitingToSend和 xTasksWaitingToReceive。

至此,队列创建成功,比如我们创建一个有4个队列项,每个队列项长度为32个字节的队列TestQueue,创建成功的队列如下:

http://www.lryc.cn/news/351248.html

相关文章:

  • js实现鼠标拖拽多选功能
  • postgres_exporter 监控pg坑一:备库无延迟但是监控告警备库延迟
  • vue打包部署到springboot,通过tomcat运行
  • 如何有效防止数据丢失
  • linux命令中arj使用
  • UE5中搭建一个简单的海岛
  • 爬虫学习--12.MySQL数据库的基本操作(下)
  • js的算法-选择排序(简单选择排序)
  • Mac虚拟机工具 CrossOver 24.0.0 Beta3 Mac中文版
  • 路由聚合和VRRP技术
  • 【原创教程】三菱FX3U系列培训专题课教案
  • 清空了电脑回收站,之前的文件还能否恢复?
  • 设计模式——职责链(责任链)模式
  • 功耗相关总结
  • 17款奔驰GLS450升级头等舱行政独立四座马鞍是什么样体验
  • 浏览器的下载行为基本原理
  • 浅谈微服务的自动化部署
  • 【C语言】8.C语言操作符详解(1)
  • Buzz库网络爬虫实例:快速爬取百度搜索实时热点
  • SQL注入:pikachu靶场中的SQL注入通关
  • springsecurity入门登录授权
  • 医学科技查新中对查新点的撰写方法!附案例讲解!
  • 2024最新流媒体在线音乐系统网站源码| 音乐社区 | 多语言 | 开心版
  • 回溯算法05(leetcode491/46/47)
  • Transformer,革命性的深度学习架构
  • 实验五:实现循环双链表各种基本运算的算法
  • ElasticSearch IK分词器的安装、词典扩展与停用
  • 代码随想录训练营总结
  • 深度学习-转置卷积
  • Unity性能优化工具介绍