这段时间在写一个基于PCIE实现FPGA与上位机通信,利用多线程实现读写同步,本次使用到了KFIFO无锁队列,实现了kfifo的简单测试。
2022-12-14 16:14:27 7KB QT kfifo
1
模仿Linuxe内核kfifo实现的循环缓存
2022-12-08 10:58:38 4KB 循环缓存
1
STM32F103ZET6+FreeRTOS V8.2.3+kfifo(巧夺天工)+EasyFlash,移植 Linux 的 巧夺天工 的KFIFO 到FreeRTOS 环境, 移植 easyflash 到 FreeRTOS。
2022-04-28 13:44:29 4.02MB FreeRTOS STM32 KFIFO easyflash
1
该工具库代码符合MISRA-C2004规范,特别适用于资源紧张、无FPU的嵌入式平台,实现效率高,接口定义清晰,注释清晰,是可通用的工具库,包括如下: 1、atan2_tab.h atan2的查表法实现 2、convertor.h 支持整数、浮点与字节数组的互相转换,支持大小端设定 3、crc.h 包含crc16-ccitt和crc32的算法实现 4、fifo.h 参考linux kernel的kfifo的实现,无锁读写,效率高 5、math_fast.h 开根号sqrt的快速算法实现
1
最近项目中用到一个环形缓冲区(ringbuffer),代码是由linux内核的kfifo改过来的。缓冲区在文件系统中经常用到,通过缓冲区缓解cpu读写内存和读写磁盘的速度。例如一个进程A产生数据发给另外一个进程B,进程B需要对进程A传的数据进行处理并写入文件,如果B没有处理完,则A要延迟发送。为了保证进程A减少等待时间,可以在A和B之间采用一个缓冲区,A每次将数据存放在缓冲区中,B每次冲缓冲区中取。这是典型的生产者和消费者模型,缓冲区中数据满足FIFO特性,因此可以采用队列进行实现。Linux内核的kfifo正好是一个环形队列,可以用来当作环形缓冲区。生产者与消费者使用缓冲区如下图所示:环形
2021-12-18 15:36:45 94KB linux内核数据结构之kfifo
1
将 linux 内核的 kfifo 移植到应用层, 实现一种易使用, 高效率的 fifo 队列
2019-12-21 19:29:52 5KB linux kfifo fifo 应用层
1