====== std.hardware.gpio_barriers ====== Zwei **Speicherbarrieren** für ARM64 — der Teil des GPIO-Zugriffs, den man am leichtesten vergisst und der die schwersten Fehler verursacht. ''GpioMemBarrier'' setzt ein ''DMB SY'': alle vorherigen Speicherzugriffe sind abgeschlossen, bevor die folgenden beginnen. Ohne diese Barriere darf die CPU Schreibzugriffe auf verschiedene Peripherieadressen **umordnen** — ein Pin wird dann in der falschen Reihenfolge geschaltet, und das Ergebnis hängt von Takt und Cache-Zustand ab. ''GpioInstBarrier'' setzt ein ''ISB SY'' und verwirft die Befehlspipeline. Nötig, nachdem sich die Bedeutung von Speicher geändert hat — etwa direkt nach dem Einblenden des Peripheriebereichs. Faustregel aus dem BCM2711-Handbuch: **eine Barriere vor dem ersten und nach dem letzten Zugriff** auf einen Peripherieblock. [[lyx_-_programmiersprache:units:hardware:gpio|std.hardware.gpio — Übersicht]] · [[lyx_-_programmiersprache:guides:gpio|GPIO-Guide]] · [[lyx_-_programmiersprache:units|Standard Library]] ---- ===== Schnittstelle ===== ^ Signatur ^ | ''GpioMemBarrier()'' | | ''GpioInstBarrier()'' | Quelle: ''std/hardware/gpio_barriers.lyx'' · geprüft mit ''lyxc 1.0.21A'' · Stand 2026-08-12 ---- Letzte Aktualisierung: 2026-08-16 (Dateistand)