I made a edge detection accelerating IP in which includes a axivdma, and when I try to use it in the jupyter,some error occurred. I use the MM2SChannel.writeframe(frame) to input a png to vdma, and it noted me a error that “writeframe() missing 1 required positional argument: ‘frame’”, so should I add a argument for “self”? I wanna add the overlay.axi_vdma_0 as the first argument, but some wrong with the axi_vdma_0 as below shows:
BdbQuit Traceback (most recent call last)
in ()
----> 1 vdma = edge_detection.axi_vdma_0
/opt/python3.6/lib/python3.6/site-packages/pynq/overlay.py in getattr(self, key)
314 “”"
315 if self.is_loaded():
→ 316 return getattr(self._ip_map, key)
317 else:
318 raise RuntimeError(“Overlay not currently loaded”)
/opt/python3.6/lib/python3.6/site-packages/pynq/overlay.py in getattr(self, key)
516 elif key in self._description[‘ip’]:
517 ipdescription = self._description[‘ip’][key]
→ 518 driver = ipdescription’driver’
519 setattr(self, key, driver)
520 return driver
/opt/python3.6/lib/python3.6/site-packages/pynq/lib/video.py in init(self, description, framecount)
760
761 “”"
→ 762 super().init(description)
763 self.framecount = framecount
764 self.readchannel = AxiVDMA.S2MMChannel(self, self.s2mm_introut)
/opt/python3.6/lib/python3.6/site-packages/pynq/overlay.py in init(self, description)
466 self._gpio = {}
467 for interrupt, details in self._interrupts.items():
→ 468 setattr(self, interrupt, Interrupt(details[‘fullpath’]))
469 for gpio, entry in self._gpio.items():
470 gpio_number = GPIO.get_gpio_pin(entry[‘index’])
/opt/python3.6/lib/python3.6/site-packages/pynq/interrupt.py in init(self, pinname)
64 pdb.set_trace()
65
—> 66 parentname = PL.interrupt_pins[pinname][‘controller’]
67 self.number = PL.interrupt_pins[pinname][‘index’]
68 self.parent = weakref.ref(
/opt/python3.6/lib/python3.6/site-packages/pynq/interrupt.py in init(self, pinname)
64 pdb.set_trace()
65
—> 66 parentname = PL.interrupt_pins[pinname][‘controller’]
67 self.number = PL.interrupt_pins[pinname][‘index’]
68 self.parent = weakref.ref(
/opt/python3.6/lib/python3.6/bdb.py in trace_dispatch(self, frame, event, arg)
46 return # None
47 if event == ‘line’:
—> 48 return self.dispatch_line(frame)
49 if event == ‘call’:
50 return self.dispatch_call(frame, arg)
/opt/python3.6/lib/python3.6/bdb.py in dispatch_line(self, frame)
65 if self.stop_here(frame) or self.break_here(frame):
66 self.user_line(frame)
—> 67 if self.quitting: raise BdbQuit
68 return self.trace_dispatch
69
BdbQuit:
What should I do next? and if the way i try to use the axivdma is right, waiting for your reply.