本文主要是介绍RTOS流和消息缓冲器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
RTOS流和消息缓冲器
[ 任务间通信和同步 ]
可从FreeRTOS V10.0.0获得 |
介绍
流缓冲区是 RTOS任务 的RTOS任务,并且是任务通信原语的中断。与大多数其他FreeRTOS通信原语不同的是,它们针对单读卡器单写入器方案进行了优化,例如将数据从中断服务例程传递到任务,或从双核CPU上的一个微控制器核心传递到另一个微控制器核心。数据通过复制传递 - 数据由发送方复制到缓冲区中,并通过读取方式从缓冲区中传出。流缓冲区传递连续的字节流。消息缓冲区传递可变大小但离散的消息。消息缓冲区使用流缓冲区进行数据传输。
重要提示:在FreeRTOS对象中,流缓冲区实现(消息缓冲区实现,因为消息缓冲区建立在流缓冲区之上)是唯一的,假定只有一个任务或中断将写入缓冲区(作者),并且只有一个任务或中断将从缓冲区(读取器)读取。作者和读者是不同的任务或中断是安全的,但与其他FreeRTOS对象不同,具有多个不同的作者或多个不同的读者是不安全的。如果要存在多个不同的作者,那么应用程序编写者必须将每个调用放到写API函数(如 xStreamBufferSend()),并使用0的发送块时间。同样,如果要存在多个不同的阅读器,则应用程序编写者必须将每个调用放置在关键部分内的读取API函数(如xStreamBufferReceive()),并使用接收块时间为0。
进一步阅读
以下几页更详细地描述了流缓冲区和消息缓冲区,并提供了它们分别用于实现对任务和处理器核到处理器核通信的中断的示例。更多关于Stream Buffers的信息...
关于Message Buffers的更多信息...
这篇关于RTOS流和消息缓冲器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!