FreeRTOS——队列集

一、队列集 

        一个队列只允许任务间传递的消息为 同一种数据类型 ,如果需要在任务间 传递不同数据类型的消息 时,那么就可以使用队列集 
作用:用于对多个队列或信号量进行“监听”(接收或获取),其中 不管哪一个消息到来 ,都可让任务 退出阻塞状态
例如:
接收任务A( )
{等待接收队列; 获取信号量 ;
}
接收任务B( )
{等待队列集中消息;if(队列还是信号量) ;… …
}

        当任务A既要接收队列信号,又要获取信号量时,如果队列为空,则任务阻塞,即使拥有信号量,也无法获取到;如果成功获取队列中的数据,而未获取到信号量时,依然会被阻塞

        而使用队列集的任务B,不论哪一个消息的到来,都可以使任务退出阻塞状态

二、队列集的相关API函数

函数

描述

xQueueCreateSet()

创建队列集

xQueueAddToSet()

队列添加到队列集中

xQueueRemoveFromSet()

从队列集中移除队列

xQueueSelectFromSet()

获取队列集中有有效消息的队列

xQueueSelectFromSetFromISR()

在中断中获取队列集中有有效消息的队列

2.1 创建队列集 

使用条件:configUSE_QUEUE_SETS 设置为 1

 2.2 添加至队列集

加入队列集的队列,不能含有有效消息,即队列为空 

2.3  从队列中移出

移出队列集的队列,不能含有有效消息,即队列为空 

 2.4 获取有有效消息的队列

三、队列集使用流程

 1、启用队列集功能需要将宏configUSE_QUEUE_SETS 配置为 1

2、创建队列集

3、创建队列或信号量

4、往队列集中添加队列或信号量

5、往队列发送信息或释放信号量

6、获取队列集的消息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/41927.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js 使用 lodash-es 检测某个值是否是函数

import { isFunction } from lodash-eslet isA isFunction(() > {}) console.log(isA) //true https://www.lodashjs.com/docs/lodash.isFunction#_isfunctionvalue https://lodash.com/docs/4.17.15#isFunction 人工智能学习网站 https://chat.xutongbao.top

JSP WEB开发(一) JSP语言基础

目录 JSP JSP简介: JSP页面 JSP运行原理 JSP脚本元素 JAVA程序片 局部变量 全局变量和方法的声明 全局变量 方法的声明 程序片执行特点 synchronized关键字 表达式 JSP指令标记 page指令 include指令 JSP动作标记 JSP动作元素include和include指令的…

AcWing 1550:完全二叉搜索树

【题目来源】https://www.acwing.com/problem/content/1552/【题目描述】二叉搜索树 (BST) 递归定义为具有以下属性的二叉树: (1)若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值 (2)若它的右…

大数据平台之数据同步

数据同步也成为CDC (Chanage Data Capture) 。Change Data Capture (CDC) 是一种用于跟踪和捕获数据库中数据变更的技术,它可以在数据发生变化时实时地将这些变更捕获并传递到下游系统。以下是一些常用的开源 CDC 方案: 1. Flink CDC Flink CDC 是基于 …

76 4G模组 境外拨号入网注意

1 引言 最近朋友把国内的设备拿到新加坡了,然后发现原本国内可以使用的设备无法在异国他乡联网,所以就叫我来看看,发现是附网返回状态、入网APN发生了改变导致的。另外,如果在境外使用国产4G模组拨号入网,也需要关注4G…

Windows安装超好用的截图工具——Snipaste

1、下载 官网:https://zh.snipaste.com/ 2、安装 (1)解压下载的压缩包 (2)选中Snipaste.exe文件,右键发送到 -- > 桌面快捷方式 (3)双击桌面Snipaste图标,桌面右下…

linux 服务器数据备份 和 mysql 数据迁移

查看域名ip 查看程序所处文件位置 list open files 1、 lsof -i :port 查看端口获取进程 pid 2、lsof -i pid 1、scp 下载服务器文件到本地 security copy protocol 2、导出服务器 mysql 数据库(表)到本地 mysqldump是MySQL自带的一个实用程序&…

云计算【第一阶段(24)】Linux文件系统与日志分析

一、文件与存储系统的inode与block 1.1、硬盘存储 最小存储单位:扇区(sector) 每个扇区大小:512字节 1.2、文件存取 最小存取单位:块(block)连续八个扇区组成:块(block) 每个块大小:4K文件数据:实际数据…

Java面试八股之如何提高MySQL的insert性能

如何提高MySQL的insert性能 提高MySQL的INSERT性能可以通过多种策略实现,以下是一些常见的优化技巧: 批量插入: 而不是逐条插入,可以使用单个INSERT语句插入多行数据。例如: INSERT INTO table_name (col1, col2) V…

Docker:一、安装与卸载、配置阿里云加速器(Ubuntu)

目录 🍁安装docker🌲1、环境准备🌲2、安装docker Engine🧊1、卸载旧版、任何冲突的包🧊2、使用存储库安装🧊3、安装 Docker 包。🧊4、查询是否安装成功🧊5、运行hello-world镜像&…

柯桥小语种学校成人生活口语学习|西班牙语中H为什么不发音…

01 H en el alfabeto espaol 西语字母表中的h 字母H是唯一一个在标准西班牙语中不再代表任何音素的字母。尽管在它单独出现时被叫做HACHE,但在大多数单词拼写中,它只是一个没有声音对应关系的字母,因此RAE称其为“无声的H”(hac…

机器学习——无监督学习(k-means算法)

1、K-Means聚类算法 K表示超参数个数,如分成几个类别,K值就取多少。若无需求,可使用网格搜索找到最佳的K。 步骤: 1、随机设置K个特征空间内的点作为初始聚类中心; 2、对于其他每个点计算到K个中心的距离,…

荞面打造的甜蜜魔法:甜甜圈

食家巷荞面甜甜圈是一款具有特色的美食。它以荞面为主要原料,相较于普通面粉,荞面具有更高的营养价值,富含膳食纤维、维生素和矿物质。荞面甜甜圈的口感可能会更加扎实和有嚼劲,同时带着荞面特有的谷物香气。在制作过程中&#xf…

SpringBoot+OSS实现文件上传

创建spring boot项目 pom依赖 <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.17.4</version></dependency><dependency><groupId>javax.xml.bind</groupI…

SpringBoot项目练习

文章目录 SpringBootVue后台管理系统所需软件下载、安装、版本查询Vue搭建一个简单的Vue项目 Spring项目1项目架构 SpringBootVue后台管理系统 学习视频&#xff1a; https://www.bilibili.com/video/BV1U44y1W77D/?spm_id_from333.337.search-card.all.click&vd_sourcec…

Pytorch(笔记7损失函数类型)

前言 损失函数&#xff08;Loss Function&#xff09;&#xff1a;是定义在单个样本上的&#xff0c;是指一个样本的误差&#xff0c;度量模型一次预测的好坏。 代价函数&#xff08;Cost Function&#xff09;成本函数经验风险&#xff1a;是定义在整个训练集上的&#xff0c…

集成学习(三)GBDT 梯度提升树

前面学习了&#xff1a;集成学习&#xff08;二&#xff09;Boosting-CSDN博客 梯度提升树&#xff1a;GBDT-Gradient Boosting Decision Tree 一、介绍 作为当代众多经典算法的基础&#xff0c;GBDT的求解过程可谓十分精妙&#xff0c;它不仅开创性地舍弃了使用原始标签进行…

virtualbox窗口和win10窗口的切换

1、问题&#xff1a; 从windows切换到虚拟机可以用快捷键 ALTTAB&#xff0c;但是从虚拟机到windows使用 ALTTAB 无法成功切换 2、解决方法&#xff1a; 按下图操作 按上面步骤设置之后&#xff0c;每次要从虚拟机窗口切换到windows窗口 只需要先按 CtrlAlt 跳出虚拟机窗口&…

【已解决】“import ... =“ 只能在 TypeScript 文件中使用

现象 在使用 import 语法的时候&#xff0c;代码报红&#xff0c;提示&#xff1a;“import ... “ 只能在 TypeScript 文件中使用 原因 代码被 VSCode 解析成 TypeScript 语法 解决方案&#xff1a; 关闭 JavaScript 的验证启用即可。 mac 快捷方式&#xff1a;comman s…

微机原理与单片机 知识体系梳理

单片机笔记分享 我个人感觉单片机要记的东西很多&#xff0c;也很琐碎&#xff0c;特别是一些位、寄存器以及相关作用等&#xff0c;非常难以记忆。因此复习时将知识点整理在了一起做成思维导图&#xff0c;希望对大家有所帮助。内容不是很多&#xff0c;可能有些没覆盖全&…