FreeRTOS队列

Posted jasontian996

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FreeRTOS队列相关的知识,希望对你有一定的参考价值。

队列基础知识

队列用于任务与任务、任务与中断之间的通信;

队列中可以存储有限的、大小固定的数据项目,队列所能保存的最大数据项目的数量叫做队列的长度,创建队列的时候会指定数据项目的大小和队列的长度;

队列采用先进先出(FIFO)的存储缓冲机制,也可以使用后进先出(LIFO)的存储缓冲机制;

将消息发送到队列中有两种数据的传递方式:值传递和引用传递(即传递的是消息指针),两种方式的区别如下:

  • 值传递方式:虽然会导致数据拷贝,浪费一点时间,但是一旦将消息发送到队列中,原始的数据缓冲区就可以删除或者覆写,这些缓冲区可以被重复使用;
  • 引用传递方式:节省时间,因为不进行数据拷贝,在一些消息数据太大的情况下就可以直接发送消息缓冲区的地址指针,比如网络应用环境下,数据量较大,拷贝数据不太现实,但是采用该方式对于消息的内容就必须一致保持有效,比如局部变量可能会被随时删除掉,就不能用来传递消息;

队列不属于某个特定的任务,任何任务都可以向队列中发送消息,或者从队列中提取消息;

以上是关于FreeRTOS队列的主要内容,如果未能解决你的问题,请参考以下文章

FreeRTOS系列第18篇---FreeRTOS队列API函数

FreeRTOS学习笔记 ——消息队列

FreeRTOS学习笔记 ——消息队列

FreeRTOS学习笔记 ——消息队列

freeRTOS学习--队列

FreeRTOS 消息队列