Gast
#2298253
Moin :-) Beim Betrieb des Xilinx Central DMA-Controllers ist mir ein seltsames Verhalten aufgefallen: Ich kopiere Bilder mit Hilfe des DMA-Controllers von einem Speicherbereich in einen anderen Speicherbereich. Diese Speicherbereiche liegen beide in demselben DDR-Speicher, welchen ich mit Hilfe des MPMC anspreche. Die Bilder werden dabei zeilenweise kopiert, ist dieser Vorgang beendet löst der DMA-Controller einen Interrupt aus. Durch diesen Interrupt wird ein Flag gesetzt, woraufhin die Software eine weitere Bildzeile kopieren soll. Da ich einige Fehler hatte, frage ich zu Debug- Zwecken das Statusregister des DMA-Controllers ab. Dabei tritt folgendes Phänomen: Obwohl der DMA-Controller mir ein Interrupt erzeugt, sagt das Statusregister der DMA wäre beschäftigt! Daraufhin habe ich natürlich das Datenblatt noch einmal gelesen. Dieses sagt, dass der Interrupt auslöst wenn ein Vorgang abgeschlossen ist, womit der DMA mit der Arbeit fertig wäre. Das Busy-Bit ist gesetzt, wenn der Vorgang noch nicht abgeschlossen ist. Einen Fehler gibt der DMA nicht aus. Den Interrupt-Handler, sowie die Initialisierung habe ich geprüft. Die Register des DMA-Controllers habe ich per XMD geprüft, auch keine Fehler zu erkennen. Die Hardware-Einstellungen beim DMA-Controller lauten folgend: - Slave und Master an unterschiedlichen PLB’s. - Das Busfrequenzverhältnis von Slave zu Master beträgt 1:2. - Der Master ist am MPMC angeschlossen und keine weiteren Slaves auf diesem PLB. - DMA-Einstellung: FIFO:8 ; Read & Write Burst: 1 (ja das kostet Performance, bei anderen Einstellungen bekomme ich Bildfehler, da er zu viel kopiert) Vielleicht hat ja jemand von Euch eine Idee, ich danke schon einmal im Vorraus.