【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设备。

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

相关推荐
FPGA-ADDA2 小时前
Xilinx Zynq UltraScale+ RFSoC XCZU47DR 开发板
fpga开发·fpga·rfsoc·xczu47dr
unicrom_深圳市由你创科技5 小时前
FPGA如何实现高速接口(PCIe/DDR4/QSFP28)?
fpga开发
发光的沙子5 小时前
FPGA----完美解决VFS: Cannot open root device “mmcblk0p2“ or unknown-block179,2)问题
fpga开发
S&Z34636 小时前
[SZ901]下载器常规功能及速度设置(53M MAX)
fpga开发·sz901
GateWorld16 小时前
FPGA内部模块详解之五FPGA的“对外窗口”——可编程输入输出单元(I/O Logic)
fpga开发·iologic
ZPC821020 小时前
FPGA IP核协议清单
fpga开发
fei_sun20 小时前
FPGA与CPU数据通信(待补充)
fpga开发
m0_5982500020 小时前
FPGA硬件设计-DDR4引脚分配设计规则
fpga开发
XMAIPC_Robot21 小时前
基于RK3588 ARM+FPGA的电火花数控系统设计与测试(三)
运维·arm开发·人工智能·fpga开发·边缘计算