跳转到主要内容

VDMA调试总结

judy 提交于

本文转载自:<span id="profileBt"><a href="https://mp.weixin.qq.com/s/s7aH-LrJmjC6OAqm2JklnA"&gt; 硬码农二毛哥微信公众号</a></span>

本文介绍了VDMA调试常用方法和一些需要注意的问题。

<strong>XSCT调试</strong>
在使用Vitis调试VDMA过程中,可以通过XSCT查看寄存器状态。

<strong>打开VDMA</strong>
<center><img src="http://xilinx.eetrend.com/files/2022-06/%E5%8D%9A%E5%AE%A2/100561094-25…; alt=""></center>

<strong>查看S2MM_VDMASR寄存器</strong>
mwr 0x80040034 0xFFFFFFFF //写入0xFFFFFFFF,清除状态位
mrd 0x80040034 //读出寄存器数据
<center><img src="http://xilinx.eetrend.com/files/2022-06/%E5%8D%9A%E5%AE%A2/100561094-25…; alt=""></center>

<strong>DRE</strong>
通过Allow Unaligned Transfers使能Data Realignment Engine (DRE),不过不使能该功能,Start Address、Hszie和Stride必须是M_AXI_S2MM_DATA_WIDTH的倍数。

例如:memory map data width = 32, Start Address必须是 0x0, 0x4, 0x8, 0xC等,Horizontal Size 是0x4, 0x8, 0xC等, Stride是0x4, 0x8, 0xC 等。
<center><img src="http://xilinx.eetrend.com/files/2022-06/%E5%8D%9A%E5%AE%A2/100561094-25…; alt=""></center>

<strong>S2MM Horizontal Size</strong>
当设置S2MM Horizontal Size 时,HISZE不是行像元个数,而是指行像元字节数。当S2MM_VDMASR 寄存器bit7、bit11、bit8、bit15置位时,可能与HISZE和VSIZE设置异常有关。
<center><img src="http://xilinx.eetrend.com/files/2022-06/%E5%8D%9A%E5%AE%A2/100561094-25…; alt=""></center>

<strong>Frame Buffers大于16帧</strong>
当VDMA存储帧数大于16 时,需要同时设置S2MM_REG_INDEX和S2MM Start Addresses 寄存器。并且在IP中修改Frame Buffers值。
<center><img src="http://xilinx.eetrend.com/files/2022-06/%E5%8D%9A%E5%AE%A2/100561094-25…; alt=""></center>

如果使用Vitis中封装好的函数XAxiVdma_ChannelSetBufferAddr(XAxiVdma_Channel *Channel, UINTPTR *BufferAddrSet, int NumFrames)时,当NumFrames大于16时,会使用XAxiVdma_ChannelHiFrmAddrDisable自动将S2MM_REG_INDEX置1。

<strong>中断</strong>
当VDMA使用中断时,接收到帧同步信号后,产生中断,开始接收数据,而不是接收完一帧数据产生中断。进入中断后可以通过XAxiVdma_DmaSetBufferAddr函数设置当前帧存储位置。当进行写操作时,XAxiVdma_DmaSetBufferAddr会设置PARK_PTR_REG 寄存器的8-12位WrFrmPtrRef。WrFrmPtrRef可以设置成0-31。
<center><img src="http://xilinx.eetrend.com/files/2022-06/%E5%8D%9A%E5%AE%A2/100561094-25…; alt=""></center>

<strong>Memory</strong>
在VDMA调试过程中,常常通过Memory要查看内存中数据。
<center><img src="http://xilinx.eetrend.com/files/2022-06/%E5%8D%9A%E5%AE%A2/100561094-25…; alt=""></center>