AXI-DMA的SG模式,s2mm_d_​tready在一次DMA传输结束之后还会​拉高4个周期
时间:10-02
整理:3721RD
点击:
AXI-DMA在SG模式下,s2mm_d_tready在设定的一次DMA传输结束之后还会拉高4个周期,这样会导致最后一次传输的超时中断上报不了。
这里的一次DMA传输结束是指当前指针已经到达尾指针,DMA已经进入IDLE状态了。按照我的理解,DMA进入IDLE状态之后,应该就阻塞下游逻辑上传数据的,但是实际测试的,DMA进入IDLE状态之后始终需要再传4个周期的数据,s2mm_d_tready才会拉滴阻塞下游逻辑。
而AXI-DMA的超时中断计数器是在一帧开始传输时复位,一帧传输结束之后计数器才开始跳转,如果还多4个周期,就会导致最后还会上传一帧的开始4个数据,而没有帧结束,超时计数器就不会跳转,不会上传超时中断。
有人遇到过同样的问题吗?怎么解决的。
这个AXI-DMA的核用的相当蛋疼,我尝试过修改它的选项,取消里面所有可能的FIFO的使用,还是没有效果...
找不到方向了,本来打算从源码里面找原因的,无奈源码关于s2mm_d_tready的条件分支太多,实在是蛋疼,试过2次之后就放弃了
这里的一次DMA传输结束是指当前指针已经到达尾指针,DMA已经进入IDLE状态了。按照我的理解,DMA进入IDLE状态之后,应该就阻塞下游逻辑上传数据的,但是实际测试的,DMA进入IDLE状态之后始终需要再传4个周期的数据,s2mm_d_tready才会拉滴阻塞下游逻辑。
而AXI-DMA的超时中断计数器是在一帧开始传输时复位,一帧传输结束之后计数器才开始跳转,如果还多4个周期,就会导致最后还会上传一帧的开始4个数据,而没有帧结束,超时计数器就不会跳转,不会上传超时中断。
有人遇到过同样的问题吗?怎么解决的。
这个AXI-DMA的核用的相当蛋疼,我尝试过修改它的选项,取消里面所有可能的FIFO的使用,还是没有效果...
找不到方向了,本来打算从源码里面找原因的,无奈源码关于s2mm_d_tready的条件分支太多,实在是蛋疼,试过2次之后就放弃了
没有人用过吗?
好吧 ,刚看到另外一个帖子,也是你的,axi-dma,交流一下 ,QQ349818889
小编你好,我最近也在看这块。不过是刚开始。能不能请你回答个小白的问题。我看到axi dma核好像说是可以连接axi4-stream和axi4总线的。我的需求是,现在master部分需要用的是axi4-stream 总线,而slave 部分是axi4总线。于是我想找个类似于桥的ip 核。最后看大dma 好像是可以的。请问,我的方向对吗?其次,请问小编,你也在做axi4总线吗?希望今后多交流。
目前我的水平好像,不能回答你的问题,先抱歉啦!
