bperez77 / xilinx_axidma

A zero-copy Linux driver and a userspace interface library for Xilinx's AXI DMA and VDMA IP blocks. These serve as bridges for communication between the processing system and FPGA programmable logic fabric, through one of the DMA ports on the Zynq processing system. Distributed under the MIT License.
MIT License
464 stars 227 forks source link

axidma_oneway_transfer() transfer issue #149

Open mahhww opened 1 year ago

mahhww commented 1 year ago

I used the method axidma_oneway_transfer() to individually write a 1024 bytes of data and then read a 1024 bytes of data, and the result is what I expected. But when I write a 1024 bytes data with this method and read the 512 bytes data twice, I can read the data out the first time but the DMAIntErr of the S2MM_DMASR Register will be set to 1 and I can't read the data the second time and I can't send the data again. When I write two 1024 bytes of data with this method and read 2048 bytes of data once more, I can see through the Direct Register Mode Register that S2MM_LENGTH is 1024, not 2048. here I can be sure that I am handing it the 2048 parameter and can catch this through vivado instruction signal, but when I read S2MM_LENGTH, it is 1024. This problem has been bothering me for a month now, I don't think the driver should have this problem. Thank you very much!

wangzhenhua92429 commented 1 year ago

你发给我的邮件已收到!                                ——王振华

nandy222 commented 7 months ago

I have the same problem. Have you solved it?

wangzhenhua92429 commented 7 months ago

你发给我的邮件已收到!                                ——王振华

mahhww commented 6 months ago

解决了,我的问题是设置的strm2mm数据位宽有问题。

mahhww commented 6 months ago

I have the same problem. Have you solved it?

解决了,我的问题是设置的strm2mm数据位宽有问题。