首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

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

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

作者: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.
如需转载,请注明出处
记录学习中的点点滴滴,让每一天过的更加有意义!
返回列表