搜索
bottom↓
回复: 7

请教 VDMA三帧缓存, PS端直接对DDR地址写图,只有第一帧被显示

[复制链接]

出0入91汤圆

发表于 2022-12-10 13:42:51 | 显示全部楼层 |阅读模式
本帖最后由 ackyee 于 2022-12-10 13:47 编辑

如题,不论PS 端 对 2 和3帧所在地址如何进行修改, 图像永远都显示第一个 缓存区的图片,有点纳闷

PS端可以  让图像跳下一帧的吗?

初始化的时候也 设置了三帧缓存了
                Xil_Out32((VDMA_BASEADDR + 0x030), 0x108B);// enable circular mode  使能循环模式
                Xil_Out32((VDMA_BASEADDR + 0x0AC), VIDEO_BASEADDR1);        // start address
                Xil_Out32((VDMA_BASEADDR + 0x0B0), VIDEO_BASEADDR0);        // start address
                Xil_Out32((VDMA_BASEADDR + 0x0B4), VIDEO_BASEADDR2);        // start address

                Xil_Out32((VDMA_BASEADDR + 0x0A8), (H_STRIDE*3));                // h offset (H_STRIDE* 3) bytes
                Xil_Out32((VDMA_BASEADDR + 0x0A4), (H_ACTIVE*3));                // h size (H_ACTIVE * 3) bytes
                Xil_Out32((VDMA_BASEADDR + 0x0A0), V_ACTIVE);                        // v size (V_ACTIVE)
                        /*****************从DDR读数据设置(MM2S)**********************/
                Xil_Out32((VDMA_BASEADDR + 0x000), 0x8B);                 // enable circular mode
                Xil_Out32((VDMA_BASEADDR + 0x05c), VIDEO_BASEADDR1);         // start address
                Xil_Out32((VDMA_BASEADDR + 0x060), VIDEO_BASEADDR0);         // start address
                Xil_Out32((VDMA_BASEADDR + 0x064), VIDEO_BASEADDR2);         // start address
                Xil_Out32((VDMA_BASEADDR + 0x058), (H_STRIDE*3));                 // h offset (H_STRIDE * 3) bytes
                Xil_Out32((VDMA_BASEADDR + 0x054), (H_ACTIVE*3));                 // h size (H_ACTIVE * 3) bytes
                Xil_Out32((VDMA_BASEADDR + 0x050),  V_ACTIVE);                         // v size (V_ACTIVE)

出0入442汤圆

发表于 2022-12-10 13:53:08 来自手机 | 显示全部楼层
你vdma要配置成3个buf,然后在中断里指向其它buf才行。它不会自动切换。

出0入91汤圆

 楼主| 发表于 2022-12-10 14:00:15 | 显示全部楼层
wye11083 发表于 2022-12-10 13:53
你vdma要配置成3个buf,然后在中断里指向其它buf才行。它不会自动切换。
(引用自2楼)

如果是 PL端直接读写  的话  就不需要 切换buf了对吧, VDMA 我已经配置成3个buf了

我刚百度了好久 都没找到指向buf 的命令,我再找找看。   我这种PS图像刷完  直接切换的应该不需要 额外中断了,直接刷完 切换就好,60hz情况下屏幕的撕裂应该还好

出0入442汤圆

发表于 2022-12-10 14:03:23 来自手机 | 显示全部楼层
ackyee 发表于 2022-12-10 14:00
如果是 PL端直接读写  的话  就不需要 切换buf了对吧, VDMA 我已经配置成3个buf了

我刚百度了好久 都没 ...

(引用自3楼)

必须要帧结束中断里切buf。vdma不支持自动增加,或者你找找有没有配置。另外注意vdma的帧序号好像是gray coding,不是0,1,2,0,1,2这种。

出0入91汤圆

 楼主| 发表于 2022-12-10 14:14:48 | 显示全部楼层
wye11083 发表于 2022-12-10 14:03
必须要帧结束中断里切buf。vdma不支持自动增加,或者你找找有没有配置。另外注意vdma的帧序号好像是gray  ...
(引用自4楼)

我刚刚查到你说的那种切换顺序 可以在VDMA 模块的 slave 那个选项里修改。   VDMA 的中断我查查怎么触发, 我好像 BLOCKDESIGN 里没有连接VDMA中断

出0入442汤圆

发表于 2022-12-10 14:27:03 来自手机 | 显示全部楼层
ackyee 发表于 2022-12-10 14:14
我刚刚查到你说的那种切换顺序 可以在VDMA 模块的 slave 那个选项里修改。   VDMA 的中断我查查怎么触发 ...
(引用自5楼)

输出还好。输入得手搓bd配置把status搞出来。。

出0入91汤圆

 楼主| 发表于 2022-12-10 16:46:22 | 显示全部楼层
本帖最后由 ackyee 于 2022-12-10 16:49 编辑
wye11083 发表于 2022-12-10 14:27
输出还好。输入得手搓bd配置把status搞出来。。
(引用自6楼)


还有一个问题  PS端朝DDR缓存区 写完整的 1080P 图片 需要3秒钟才能完成,这个速度正常吗  用的for 循环

出0入442汤圆

发表于 2022-12-10 18:02:38 来自手机 | 显示全部楼层
ackyee 发表于 2022-12-10 16:46
还有一个问题  PS端朝DDR缓存区 写完整的 1080P 图片 需要3秒钟才能完成,这个速度正常吗  用的for 循环 ...
(引用自7楼)

你用o2编译。。。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 17:56

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表