Frage

Die DMA für STM32F4-Serie hat einige fortgeschrittene Funktionen, könnte ich hier um Klarstellung fragen?

    .
  • Concurrentstrom: Können zwei Streams Daten gleichzeitig übertragen? Da ist ein Byte-Transfer erlaubt. Wenn die Busbreite 32bit ist, ist 4 gleichzeitige Übertragung möglich. BTW, was ist die Breite des AHB-Busses für STM32?

  • FIFO-Modus: Wenn ein gleichzeitiges Getriebe nicht möglich ist, könnte mir das FIFO hier verwendet werden. Das FIFO würde dazu beitragen, Daten zu warten, die von Niedriggeschwindigkeits-Peripheriegeräten an DMA bereit sind, ohne den AHB-Bus zu besetzen. Wenn ein bestimmter Datenmenge bereit ist, wird der Datenkörper zusammen in den Speicher gesendet. Ist mein Verständnis richtig?

Vierworttiefe 32 First-in, First-Out-Speicherpuffer (FIFOs) pro Stream

was bedeutet das? Wie viele Daten können im FIFO gespeichert werden? 4 oder 4 * 32?

    .
  • Burst-Modus: Was macht eigentlich Burst-Modus? Im Datenblatt heißt es, dass 65535 Daten übertragen werden können. Was ist die Beziehung zwischen 65535 mit dem Burst-Modus?

  • Doppelpuffermodus:

Doppelpuffertyp-Transaktionen: Doppelpufferübertragungen mit zwei Speicherzeiger für den Speicher (während der DMA leset / schreiben
Von / bis zu einem Puffer kann die Anwendung auf / von den anderen schreiben / lesen Puffer). ----- aus dem Referenzhandbuch von STM32F4

Meine Frage ist: Während der DMA-Übertragung ist der AHB-Bus nicht für Cortex M4 verfügbar, wie kann die Anwendung aus dem anderen Puffer gelesen werden?

War es hilfreich?

Lösung

Nachdem ich einige Forschungen getan habe, fand ich hier, falls jemand es braucht.

    .
  • Gleichzeitiger Strom: nicht innerhalb einer DMA möglich. Es ist möglich, DMA1, DMA2 gleichzeitig zu haben. Z.B: F427 kann gleichzeitig tun:

      .
    • CPU-Zugriff auf Flash (Lesecode)
    • DMA1-Zugriff auf SRAM (um einen Puffer übertragen)
    • DMA2 Zugang zu SDRAM (ein weiterer Puffer)
  • FIFO wird verwendet, um Daten vorübergehend von einem niedrigen Geschwindigkeitsgerät zu speichern. Wenn ein bestimmter Datenmenge angesammelt wurde, könnte ein Burst gesendet werden, um die Ressource von AHB zu speichern. Da, wenn AHB von DMAC verwendet wird, kann es nicht vom Prozessor verwendet werden. FIFO hat 4 * 32-Bit-Größe. Es kann als 16 * 8-Bit (16 * 0NE-Byte) konfiguriert sein.

  • Burst-Modus: Ein Stück Daten wird kontinuierlich gesendet von, sagen FIFO zu, sagen Speicher. Die AHB wird nur besetzt, wenn der Burst gesendet wird. Der Burst-Modus wird verwendet, um die Ressource von AHB zu speichern. Es ist nicht mit der Begrenzung von 65535 Datengröße verbunden.
  • Doppelpuffer: Wie zuvor wird AHB nur belegt, wenn Daten übertragen werden. Der Prozessor kann daher immer noch Daten aus dem Speicher abrufen, wenn DMA das AHB nicht belegt.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top