zoukankan      html  css  js  c++  java
  • 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传输

    异常处理。

                                                                    

  • 相关阅读:
    Visual Studio 2010 Preview (cont.)
    Office VBA 进阶(开篇)
    Two cool debugger tips that I learnt today
    Send GMail
    Google Email Uploader
    看看.NET 4.0 都有些什么?
    XML Serializer in .NET
    Timeloc: 一个Adobe AIR程序
    SDC task library 一个MSBuild Task的有益补充。
    不考虑促销活动的百货业态供应商结算设计
  • 原文地址:https://www.cnblogs.com/hcr1995/p/9975489.html
Copyright © 2011-2022 走看看