你的位置:EETOP 赛灵思(Xilinx) 社区 >> >> 全部 >> 详细内容

Zynq DMA第七篇:Adam Taylor 玩转MicroZed 系列29

发布者:jackzhang 时间:2014-07-09 10:05:45

作者:Steve Leibson, 赛灵思战略营销与业务规划总监

前期博客中介绍了 Direct Memory Access,本博客将主要介绍利用简单示例演示如何设置和使用DMA。要演示这个示例,我使用一个DMA控制器通道将一个内存位置转移到另一个存储器位置。

与我们在本博客系列中的方法一样:加上所生成的头文件作为BSP的一部分。这些头文件提供了宏和函数,我们可以用来驱动DMA 。我们将在这个示例中加入:

Xscugic.h和xil_exceptions.h允许使用中断控制器,同时 xdmaps.h可配置和使用DMA 。

使用xparamters.h提供的参数,可定义DMA和中断控制器的设备标识、将要使用的中断、以及将要传输的数据长度:

开发部分的下一个步骤是写入三个函数配置DMA ,配置中断控制器,并在完成DMA传输后中断服务程序。

在DMA配置函数内,我们利用xdmaps.h提供的指令结构,创建DMA命令。DMA指令包括通道控制、块描述符、用户定义的程序、生成程序的指针和传输结果。由于这个示例很简单,不需要使用所有组件,但我们需要按照如下指令配置DMA控制器:

接下来的步骤是初始化和配置DMA控制器,然后运行中断设置函数连接DMA中断与中断控制器:

完成上述操作后,在连接已实现的处理器并开始传输前,源存储器位置加入数据,目标位置清空数据,以跟踪向DMA进程函数调用的进程:

当附加源代码文件在MicroZed上运行后,在RS232监视器输出1中显示以下结果以报告运行状态。

学习DMA控制和基本示例后,我将在下一篇博客中会讲解如何查看MicroZed加载卡,以及如何使用模块系统当中的MicroZed。

原文链接:
http://forums.xilinx.com/t5/Xcell-Daily-Blog/Zynq-DMA-Part-Two-Adam-Tayl...

© Copyright 2014 Xilinx Inc.

最新课程

  • 深入浅出玩儿转FPGA

    本视频基于Xilinx公司的Artix-7FPGA器件以及各种丰富的入门和进阶外设,提供了一些典型的工程实例,帮助读者从FPGA基础知识、逻辑设计概念

  • 从零开始大战FPGA基础篇

    本课程为“从零开始大战FPGA”系列课程的基础篇。课程通俗易懂、逻辑性强、示例丰富,课程中尤其强调在设计过程中对“时序”和“逻辑”的把控,以及硬件描述语言与硬件电路相对应的“

  • Verilog基础及典型数字

    课程中首先会给大家讲解在企业中一般数字电路从算法到流片这整个过程中会涉及到哪些流程,都分别使用什么工具,以及其中每个流程都分别做了