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传输

    异常处理。

                                                                    

  • 相关阅读:
    c#动态类型
    [转]鼠标和键盘模拟API
    c#各类型转byte[]或转回
    Unity3D发布安卓报错permisson denied的解决
    NuGet修改packages目录/迁移缓存文件夹
    数据结构:单向链表系列7--交换相邻两个节点2(交换链域/指针域)
    数据结构:单向链表系列6--交换相邻两个节点1(交换数据域)
    数据结构:单向链表系列5--在链表中查找元素
    数据结构:单向链表系列4--获取链表长度(迭代法和递归法)
    数据结构:单向链表系列3--删除节点
  • 原文地址:https://www.cnblogs.com/hcr1995/p/9975489.html
Copyright © 2011-2022 走看看