本文介绍了VDMA调试常用方法和一些需要注意的问题。
XSCT调试
在使用Vitis调试VDMA过程中,可以通过XSCT查看寄存器状态。
打开VDMA
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sZko94fC-1654773003221)(./pic1./1.png)]](https://i-blog.csdnimg.cn/blog_migrate/ce4e83e147d38600e754ef7472979852.png)
查看S2MM_VDMASR寄存器
mwr 0x80040034 0xFFFFFFFF //写入0xFFFFFFFF,清除状态位
mrd 0x80040034 //读出寄存器数据
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6iEB0xVO-1654773003223)(./pic1/2.png)]](https://i-blog.csdnimg.cn/blog_migrate/4c8165ab565fa9dd18b7611407fd78f6.png)
DRE
通过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 等。

本文详细介绍了VDMA的调试过程,包括XSCT调试、Data Realignment Engine (DRE)的使用、S2MM Horizontal Size的设置、处理Frame Buffers大于16帧的情况,以及中断和内存检查的相关注意事项。在XSCT中通过查看寄存器状态来调试,DRE允许不按宽度对齐的数据传输。S2MM Horizontal Size的HISZE表示行像元字节数。当帧缓冲超过16帧,需要调整S2MM_REG_INDEX和Start Addresses。中断在帧同步信号后触发,可通过XAxiVdma_DmaSetBufferAddr设置内存地址。
最低0.47元/天 解锁文章
3127

被折叠的 条评论
为什么被折叠?



