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.
Yes, not using an interrupt controller to handle interrupts in early versions will result in an issue.
Glad that you solved the issue.