AXI DMA简介与使用【ZYNQ】+【DMA】+【Vivado】

DMA:直接内存访问。

可以在不在CPU干涉的情况下进行数据的搬运。

PS端由集成DMAC的硬核。

DDR3---IO

          ---DDR3

          ---OCM

          ---PL

AXI DMA简介:

概述:

AXI DMA:AXI Direct Memory Access,直接内存访问

AXI DMA 为内存和AXI4-Stream外设之间提供了高带宽的直接内存访问

其可选的S/G功能可以将CPU数据搬运任务中解放出来

 

AXI4 Memory Map Read-------------AXI4 Stream Master,从存储器内(存储器映射)读数据到外部数据流

AXI4-Lite,对寄存器进行配置,或者读取寄存器状态

AXI DMA通过AXI4_Lite接口对寄存器做一些配置和获取(地址,传输长度等)

MM2S:MemoryMap to Stream 存储器映射(AXI4-Full)到AXI4-Stream

 S2MM: Stream to MemoryMap AXI4-Stream到存储器映射(AXI4-Full)

异步和同步模式,

 同步模式时,m_axi_sg_sclk,m_axi_mm2s,m_axi_s2mm_aclk,连在同一个时钟,s_axi_lite_aclk可以连在一个较低的时钟

AXI DMA编程顺序

Direct Register Mode(简单DMA)

此模式提供了在MM2S和S2MM通道上进行简单DMA传输的配置,只需要较少的FPGA资源,通过访问DMACR,源地址或者目的地址和长度寄存器发起DMA传输。

当传输完成后,如果使能了产生中断输出,那么DMASR寄存器相关联的通道位会有效。

DMA的MM2S(存储器映射到Stream)通道的启动顺序

1.开启/使能MM2S通道

2.如果需要的话,可以使能中断,

3.写一个有效的源地址到MM2S_SA寄存器

        如果没有使能DRE的功能,在指定起始地址时,需要注意字节地址对齐,哪些地址是对其或者不对齐的,取决于Stream流的数据位宽。

4.写传输的字节数到MM2S_LENGTH寄存器

一个长度为0的值是无效的,而一个非0值,将会决定存储器映射到Stream流的数据个数

需要注意的是,必须对最后一个配置MM2S_LENGTH寄存器,而其他寄存器的配置顺序没有要求。

S/G模式

        他把传输的基本参数,存储在内存中;

        这些参数被称为BD(Buffer Descriptor)

        在工作的时候,通过SG接口加载和更新BD中的状态。

 

 

 

 

 

 

  • 4
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值