Artikel-ID: 000086331 Inhaltstyp: Fehlerbehebung Letzte Überprüfung: 26.09.2014

Muss ich vor der Ausgabe von DMASEV an die CPU eine Speicherbarriereanweisung einfügen?

Umgebung

    Intel® Quartus® II Anmeldungs-Edition
    DMA
BUILT IN - ARTICLE INTRO SECOND COMPONENT
Beschreibung

Die Empfehlung von ARM und Altera besteht darin, vor der Ausgabe einer DMASEV-Anweisung an die CPU eine Speicherbarriere-Anweisung einzufügen, um zu vermeiden, dass ein DMA-Controller einen Interrupt signalisiert, bevor die AXI-Übertragung abgeschlossen ist.

Lösung

Der HWlibs DMA-Treiber alt_dma.c wird mit einer Memory Barrier Instruction aktualisiert, die wie unten gezeigt vor der DMASEV-Anweisung hinzugefügt wurde.


wenn (send_evt)
{
if (status == ALT_E_SUCCESS)
{
status = alt_dma_program_DMAWMB(Programm);
}
if (status == ALT_E_SUCCESS)
{
dwordf("DMA[M->M]: Hinzufügen von Ereignis ...\n");
status = alt_dma_program_DMASEV (Programm, evt);
}
}

Die aktualisierte Version des HWlibs DMA-Treibers wird voraussichtlich in der nächsten Version von SoC EDS verfügbar sein.

Zugehörige Produkte

Dieser Artikel bezieht sich auf 1 Produkte

Intel® programmierbare Geräte

1

Der Inhalt dieser Seite ist eine Kombination aus menschlicher und computerbasierter Übersetzung des originalen, englischsprachigen Inhalts. Dieser Inhalt wird zum besseren Verständnis und nur zur allgemeinen Information bereitgestellt und sollte nicht als vollständig oder fehlerfrei betrachtet werden. Sollte es Widersprüche zwischen der englischsprachigen Version dieser Seite und der Übersetzung geben, gilt die englische Version. Englische Version dieser Seite anzeigen.