linux zynq ps dma,Zynq PS DMA控制器应用笔记

本文详细介绍了Zynq-7000系列器件中采用的ARM PL-330 DMA控制器,包括其结构特点、编程模型以及初始化、启动/停止传输和异常处理的方法。内容涵盖DMA控制器的8个独立通道、访问互联结构,以及如何组织和执行DMA指令。通过实例展示了数据搬运的编程过程,强调了DMA控制器作为协处理器的角色和中断处理的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

b37df4572f12fdbd7ca48f63051ada36.png

Zynq-7000系列器件PS端的DMA控制器采用ARM的IP核DMA-330(PL-330)实现。有关DMA控制器的硬件细节及相关指令集、编程实例内容参考ARM官方文档:

DDI0424D:dma330_r1p2_trm.pdf

DAI0239A:dma330_example_programs.pdf

本文开发环境为Xilinx SDK2015.2,DMA库版本为dmaps_v2_1。

1 结构特点

DMA控制器具有以下的特点:

8个独立的通道,4个可用于PL—PS间数据管理,每个通道有1024Byte的MFIFO;

使用CPU_2x 时钟搬运数据,CPU_2x = (CPU frq/6)*2;

执行自定义内存区域内的DMA指令运行DMA;

AHB控制寄存器支持安全和非安全模式;

每个通道内置4字Cache;

可以访问SoC的以下映射物理地址:

DDR、OCM、PL、Linear QSPI Read、SMC和M_AXI_GP设备,访问设备的互联结构如图1所示。ef43fe8369fc843bf4446ac47687c0ee.png

图1 Zynq 访问互联结构图

从图1可以看出DMA控制器可以访问连接到Central Interconnect上的所有设备,并提供了四个通道的外设管理接口可用于控制PL的数据搬运。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值