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

    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 eine Diskrepanz zwischen der englischsprachigen Version dieser Seite und der Übersetzung auftreten, gilt die englische Version. Englische Version dieser Seite anzeigen.