zynq DMA控制器
Zynq-7000系列器件PS端的DMA控制器采用ARM的IP核DMA-330(PL-330)实现。
特点:
1.8个独立的通道,4个可用于PL—PS间数据管理,每个通道有1024Byte的MFIFO
2.使用CPU_2x 时钟搬运数据,CPU_2x = (CPU frq/6)*2
3.执行自定义内存区域内的DMA指令运行DMA
4. AHB控制寄存器支持安全和非安全模式
5.每个通道内置4字Cache
6. 可以访问SoC的以下映射物理地址:
DDR、OCM、PL、Linear QSPI Read、SMC和M_AXI_GP设备

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


DMA控制器由指令加速引擎,AXI Master数据接口,AXI APB寄存器访问接口以及可以连接到PL的外设请求接口,数据缓冲FIFO和控制及状态产生单元组成。
MA控制器通过DMA指令执行引擎执行自己的指令,并将执行状态通过APB总线和中断等形式反馈给CPU,达到数据搬运不占用CPU的目的。
MA控制器共有八个通道,其中四个通道负责互联到Central Interconnectcun存储单元上的数据搬运;四个数据通道为外设请求接口,可用于PL AXI互联接口的数据访问管理。
每个DMA通道都执行自己的指令,拥有自己的独立线程,通道间互不影响。指令执行引擎有自己独立的Cache。
DMAGO启动DMA
DMASEV事件信号
DMAKILL终止进程
1.编程启动DMA通道
2.将程序存储在系统内存中
使用DMAC上的一个APB接口编写DMAGO指令
3.DBGSTATUS寄存器以确保调试是空闲的,即DBGSTATUS位为0。
4.写dmac,DBGINST0寄存器
a. DMAGO的指令字节0编码。
b. DMAGO的指令字节1编码。
c.调试线程位到0。这将选择DMA管理器。参考调试指令-0
5.写DMAC DBGINST1指令
6,。写0给dmac DBGCMD寄存器

Programming Guide for DMA Controller



DMA控制器编程分为以下几个部分:
DMA控制器初始化
组织DMA引擎执行代码
启动或停止DMA传输
异常处理。

zynq DMA控制器的更多相关文章
- DMA控制器
DMA控制器依赖于平台硬件,这里只对i386的8237 DMA控制器做简单的说明,它有两个控制器,8个通道,具体说明如下: 控制器1: 通道0-3,字节操作, 端口为 00-1F 控制器2: 通道 4 ...
- 基本的DMA控制器
DMA的基本概念 直接内存访问(DMA)是一种完全由硬件执行I/O交换的工作方式.在这种方式中,DMA控制器从CPU完全接管对总线的控制,数据交换不经过CPU,而直接在内存和I/O设备之间进行 .DM ...
- STM32学习笔记——DMA控制器(向原子哥学习)
一.DMA简介 DMA,全称为:Direct Memory Access,即直接存储器访问,DMA 用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输.当 CPU 初始化这个传输动作,传输 ...
- 基于设备树的TQ2440 DMA学习(3)—— DMA控制器驱动
作者 彭东林pengdonglin137@163.com 平台 TQ2440Linux-4.9 概述 上一篇直接操作DMA控制器实现了一个mem2mem的DMA传输,但是这样不符合linux driv ...
- 2017.11.1 微型计算机原理与接口技术-----第七章 中断系统与8237A DMA控制器
第七章 微型计算机原理与接口技术-----中断系统与8237A DMA控制器 (1)数据传送的两种方式:中断方式和直接存储器存取方式(DMA):中断是微处理器与外部设备交换信息的一种方式:DMA是存储 ...
- ZYNQ DMA驱动及测试分析
之前没有接触过DMA驱动.不了解它的原理,稍作学习先总结下dma驱动步骤: 1. 申请DMA中断. 2. 申请内存空间作为src和dts的空间. 3. 注册设备注册节点 4. 将申请到的src和dst ...
- ZYNQ. DMA基本用法
DMA环路测试 vivadoblock zynq7 + dma +fifo sdk 中可以导入 demo demo 中 默认都是 一个字节8bit数据 的测试程序. 如果是其他长度的数据,不仅要修改数 ...
- 利用ZYNQ SOC快速打开算法验证通路(3)——PS端DMA缓存数据到PS端DDR
上篇该系列博文中讲述W5500接收到上位机传输的数据,此后需要将数据缓存起来.当数据量较大或者其他数据带宽较高的情况下,片上缓存(OCM)已无法满足需求,这时需要将大量数据保存在外挂的DDR SDRA ...
- ZYNQ基础知识一
参考:UG1181 Zynq-7000 Programable Soc Architrcture Porting Quick Start Guide ...
随机推荐
- Codeforces Round #545 (Div. 2)-Camp Schedule
题目要求,给定一个s序列,一个p序列,问能不能对s做相应的调整,使得s序列中,有尽可能多的p子串(可以重复) 最开始我拿到这个题目,也是一点头绪都没有,如何做调整呢? 首先考虑如何会有尽可能多的子串, ...
- 启用k8s metrics server监控
1.创建aggregator证书 方法一:直接使用二进制源码包安装 $ wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 $ chmod +x cfs ...
- 一入OI深似海 2 —— 初中三年,颓废PJ
初中,OI似乎没有真正进入我的生活. 三年PJ在我的生活中占比很少. 每天都是平淡无奇的文化课,晚上在写完作业之后还能休息一会儿. 每周六下午的OI课很短暂, 大部分时间我还是把我的重心放在学习上. ...
- 数据转换失败 java.math.BigDecimal cannot be cast to java.lang.String
从接口获取到数据,在转换的时候出现错误:java.math.BigDecimal cannot be cast to java.lang.String 因为一开始用的是使用关键字进行强制转换,后来发现 ...
- 原生js,从面向过程的方法到面向对象的方法,写个选项卡练练手
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- P2801 教主的魔法(分块入门)
两个月之前听yyr学长讲的分块,感觉是个很神奇的暴力,但到现在还是懵的一匹 #include<bits/stdc++.h> using namespace std; ; int belon ...
- MT 互联网 面试标准
能力模型 业务理解(每项2分) java知识(每项2分) 网络知识(每项1分) 设计模式(每项3分) 数据库知识(每项2分) 框架知识(每项1分) 数据结构与算法(每项1分) 架构知识(每项3分) 操 ...
- Spark-1(概念)
1. 什么是Spark? Apache Spark™是用于大规模数据处理的统一分析引擎. spark是一个实现快速通用的集群计算平台.它是由加州大学伯克利分校AMP实验室开发的通用内存并行计算框架,用 ...
- OpenStack视图
OpenStack视图 OpenStack视图是个全局资源的概念,统计了OpenStack所纳管资源的总量和使用量,因此OpenStack视图的资源通常又称为物理资源.OpenStack基于该资源使用 ...
- [HNOI2009]最小圈(分数规划+SPFA判负环)
题解:求环长比环边个数的最小值,即求min{Σw[i]/|S|},其中i∈S.这题一眼二分,然后可以把边的个数进行转化,假设存在Σw[i]/|S|<=k,则Σw[i]-k|S|<=0,即Σ ...