【ZYNQ的DMA获取FPGA数据处理,零拷贝,DMA方式】

一、方案:

1、AXI-DMA模式1(直接寄存器模式,UIO + DMA双缓存):

【硬件】:PL侧的FPGA的AXI DMA的S2MM接口直接连接到PS侧的HP接口(FPGA数据直接进出DDR,不经过CPU的cache)或者ACP接口(FPGA数据通过SCU进入CPU的cache,硬件自动处理cache一致性问题,不需要软件处理cache一致性问题)。

【驱动】:直接使用UIO驱动模块(generic_uio),/dev/uio0来控制AXI-DMA开启;

dts中reserved-mem开辟dma的一段缓存dma_buff,用于数据接收;

【应用】:mmap(/dev/mem)映射ddr-dma区域;

中断或轮询方式,判断/dev/uio的数据状态(中断方式唤醒read阻塞)来读取传输数据,以及用户态控制DMA的开启。

【优势】:方便用户态快速开发。

2、AXI-DMA模式2(SG模式,自定义驱动和BD数据):

【硬件】:PL侧的FPGA的AXI DMA的S2MM接口直接连接到PS侧的ACP或者HP接口。

【驱动】:编写独立的驱动模块,实现功能:

1、SG模式(数据包长度不固定,链表方式管理内存块)或者非SG模式的DMA空间;

2、dma_alloc_coherent()分配一致性内存空间;

3、mmap()创建用户空间的内存映射;

4、数据状态的通知机制(poll 或者 FPGA硬件握手)

【应用】:mmap映射fd设备。

【优势】:方便驱动中进行复杂控制。

相关推荐
LCMICRO-1331084774617 分钟前
长芯微LPS6288完全P2P替代TPS61288,是一款具有 15A 开关电流的全集成同步升压转换器
stm32·单片机·嵌入式硬件·fpga开发·硬件工程·同步升压转换器
Soari3 小时前
FPGA开发:Vivado 打开工程的两种方式详解(.xpr vs Tcl)
fpga开发
星华云4 小时前
[FPGA] ISE DDS IP核简单记录使用
fpga开发
Kong_19946 小时前
芯片开发学习笔记·二十五——UCIe
fpga开发·芯片开发
发发就是发7 小时前
I2C适配器与算法:从一次诡异的时序问题说起
服务器·驱动开发·单片机·嵌入式硬件·算法·fpga开发
ALINX技术博客16 小时前
【黑金云课堂】FPGA技术教程FPGA基础:流水灯实验
fpga开发·fpga
化屾为海21 小时前
FPGA制造与测试全流程
fpga开发·制造
Aaron158821 小时前
RFSOC+VU13P+RK3588的核心优势与应用场景分析
嵌入式硬件·算法·matlab·fpga开发·信息与通信·信号处理·基带工程
Aaron15881 天前
8通道测向系统演示科研套件
人工智能·算法·fpga开发·硬件工程·信息与通信·信号处理·基带工程
数字芯片实验室1 天前
当FPGA开始支持“自然语言编程“,芯片定制的门槛要变了
fpga开发