关于单片机:mrlibrary软件包FIFO队列

FIFO队列文档

先入先出环形缓冲区(First In First Out, FIFO)是一种循环缓冲区构造。它利用一个定长数组来循环存储数据,通过头指针和尾指针来示意队头和队尾,实现先入先出的缓冲机制。与一般先入先出队列相比,先入先出环形缓冲区通过循环利用数组空间来优化容量限度,防止了队列因为空或满而呈现的异常情况。当尾指针追上头指针时,示意队列已满,新入队元素会笼罩掉之前入队但未出队的元素。当头指针超过尾指针时,示意队列为空,会呈现读取有效数据的危险。
先入先出环形缓冲区空间利用率较高,工夫复杂度为O(1)。它通过数组和两个指针的设计奇妙实现了先入先出的数据结构,解决了一般队列的弊病。

初始化FIFO缓存

void fifo_init(fifo_t fifo, void *pool, size_t pool_size);
参数 形容
fifo FIFO句柄
pool 内存池
pool_size 内存池大小

重置FIFO缓存

void fifo_reset(fifo_t fifo);
参数 形容
fifo FIFO句柄

获取FIFO缓存的数据大小

size_t fifo_get_data_size(fifo_t fifo);
参数 形容
fifo FIFO句柄
返回
size 缓存的数据大小

从FIFO缓存读取数据

size_t fifo_read(fifo_t fifo, void *buffer, size_t size);
参数 形容
fifo FIFO句柄
buffer 要从FIFO缓存读取的数据缓冲区
size 读取大小
返回
size 理论读取的数据大小

向FIFO缓存写入数据

size_t fifo_write(fifo_t fifo, const void *buffer, size_t size);
参数 形容
fifo FIFO句柄
buffer 要写入FIFO缓存的数据缓冲区
size 写入大小
返回
size 理论写入的数据大小

强制向FIFO缓存写入数据

size_t fifo_write_force(fifo_t fifo, const void *buffer, size_t size);
参数 形容
fifo FIFO句柄
buffer 要写入FIFO缓存的数据缓冲区
size 写入大小
返回
size 理论写入的数据大小

———-

下载代码(门路:mr-library/ package / fifo)

———-

许可协定

遵循 Apache License 2.0 开源许可协定,可收费利用于商业产品,无需公开公有代码。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理