c语言实现axi通信,AXI DMA详解与应用篇 | 第二讲、AXI DMA工程搭建及SDK代码分析

本文转载自: 根究FPGA

在上一篇中着重讲解了DMA的含义和AXI_DMA_IP,本次的重点就是搭建一个AXI_DMA环路工程,并从C语言角度分析其SDK代码

一、AXI_DMA工程设计

在工程设计中,DMA一般与产生数据或需求数据的IP相连,该IP core可以是带有AXI_Stream接口的高速AD或DA IP核,实验中使用AXI-Stream Data Fifo IP核作为该类IP进行DMA环回实验:

c语言实现axi通信,AXI DMA详解与应用篇 | 第二讲、AXI DMA工程搭建及SDK代码分析_第1张图片

处理器通过M_AXI_GP0接口和AXI_DMA通信,以设置、启动和监控数据传输。数据传输通过S_AXI_HP0接口。

BD框图:

c语言实现axi通信,AXI DMA详解与应用篇 | 第二讲、AXI DMA工程搭建及SDK代码分析_第2张图片

核心部分为:

c语言实现axi通信,AXI DMA详解与应用篇 | 第二讲、AXI DMA工程搭建及SDK代码分析_第3张图片

在处理器中含有之前的:

c语言实现axi通信,AXI DMA详解与应用篇 | 第二讲、AXI DMA工程搭建及SDK代码分析_第4张图片

在处理器系统中,PL侧的DMA通过HP接口从DDR中读取数据,AXI DMA核作为AXIS Data FIFO和AXI4内存映射之间提供高宽带直接存储访问。

二、SDK代码分析

在工程设计中,PL侧配置好IP core之后生成含有配置参数的比特流文件,将其导出到SDK中,PS侧通过对PL侧配置参数的查询,执行IP核的配置。

注意:位于PL侧的属于PS的可配置模块的配置是由PL完成的,但是执行是由PS实现的!

代码分析:

#include "xaxidma.h"

#include "xparameters.h"

#include "xil_exception.h"

#include "xscugic.h"

/************************** Constant Definitions *****************************/

#def

你可能感兴趣的:(c语言实现axi通信)