rookie
October 18, 2024, 8:31am
1
I am doing some basic tests in my zynq7020 board. The PYNQ image was maked from pynqv2.4. I failed to use DMA function. My test code is simple:
import numpy as np
import pynq. lib. dma
from pynq import MMIO
import Overlayfrom pynq
from pynq import Xlnk
from time import sleep
myproj = Overlay(“sys.bit”)
mydma = myproj.axi_dma_0
errors:
I have no idea for the errors. Am I forget init something?
Hi,
Did you check this DMA tutorial?
rookie
October 19, 2024, 6:16am
3
I have checked the tutorial and confirm that there are no problems with the DMA settings in vivado. Now, there are contradictory issues:
I can find the axi_dma_0 in ip_dict, but can not use it.
matthew
October 19, 2024, 10:29am
4
Is is displaying the dma when you try myproj?
rookie
October 19, 2024, 11:39am
5
Yes, the DMA information can be correctly printed by the command:
myproj.ip_dict[“axi_dma_0”]
Hi @rookie ,
Welcome to the PYNQ community.
This is a very strange error. Can you the latest version of PYNQ?
What Vivado version did you use to build the overlay?
Mario
rookie
October 21, 2024, 8:37am
7
Thank you for the attentions to this issue. I have solved the problem. The problem come from a direct connection of a DMA interrupt (s2mm_introut) to Zynq IP (IRQ_F2P) without using AXI interrupt controller. It makes pynq unable to recognize DMA correctly.
1 Like
Yes, not using an interrupt controller to handle interrupts in early versions will result in an issue.
Glad that you solved the issue.