流缓冲区传递连续的字节流。 消息缓冲区传递 大小可变但离散的消息。 消息 缓冲区使用流缓冲区进行数据传输。
重要提示 : 在 FreeRTOS 对象中独一无二的是, 流缓冲区 实现(消息缓冲区实现也是如此,因为消息缓冲区 构建在流缓冲区之上)假定只有一个任务或 中断会写入缓冲区(写入者), 并且只有一个任务或中断将从缓冲区读取(读取者)。 写入者和读取者可以是不同的任务或中断,这样是安全的, 但不同于 其他 FreeRTOS 对象,具有多个写入者或读取者 并不安全。 如果有多个不同的写入者, 则应用程序编写者必须将每个 写入 API 函数的调用(如 xStreamBufferSend())放在一个临界区中, 并以 “0” 为发送阻塞时间。 同样, 如果存在多个不同的读取者,那么应用程序编写者必须将 每个读取 API 函数的调用(如 xStreamBufferReceive()) 放在临界区中,并使用接收阻塞时间为 0。
有关流缓冲区的更多信息...... 有关消息缓冲区的更多信息...... 使用消息缓冲区进行内核到内核通信的博客......