尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

每日学习 freertos队列集的概念

每日学习 freertos队列集的概念 队列集就是说,这个队列是一个集合,里面的数据存入的是别的队列的句柄,那么是怎么实现的呢比如现在有三个队列:队列 A队列 B队列集 S在写入队列A或者队列B的时候,顺便把要写入的队列的句柄放入到队列集中FreeRTOS 队列集(Queue Set)核心概念队列集是 FreeRTOS 提供的多队列 / 同步对象聚合等待机制,核心作用是让单个任务高效等待任意一个队列(或信号量、互斥量等)就绪,而非轮询多个队列或创建多个任务分别等待,大幅降低系统复杂度和 CPU 开销。一、为什么需要队列集?没有队列集时,任务等待多个队列的痛点:轮询方式:任务循环检查每个队列是否就绪,浪费 CPU 资源,且存在等待延迟;多任务方式:为每个队列创建一个任务,任务间需额外同步(如信号量),增加内存占用和调度开销。队列集完美解决上述问题:任务只需等待 “队列集”,集合中任意一个队列就绪时,任务立即被唤醒,并能精准知道哪个队列就绪。二、核心特性特性说明支持的对象类型普通队列、消息队列、二进制信号量、计数信号量(互斥量不建议加入,因优先级继承可能异常)、消息缓冲区 / 流缓冲区数据存储逻辑队列集不存储队列数据,仅记录 “哪个队列就绪”,数据仍保存在原队列中;任务被唤醒后,需从原队列读取数据独占性一个队列只能加入一个队列集,不能同时
返回列表