Die meisten Bibliotheken, in mehreren Sprachen, interagieren mit dem GPIO - Pins über /sys/class/gpio/export
, /sys/class/gpio/import
, /sys/class/gpio/gpio10/value
etc. Allerdings ist die Linux - Kernel - Dokumentation klar Zustand , dass das Erbe Weg , Dinge zu tun ist.
Was ist die nicht-legale Art, Dinge zu tun?
Wenn ich im Kernelraum richtig verstehe, würde ich diese Funktionen oder Standard-Kerneltreiber für allgemeine GPIO-Aufgaben verwenden.
Was würde ich für den Benutzerbereich verwenden? Gibt es eine Sysfs-Schnittstelle für Nicht-Legacy?
PS: Mir ist bekannt, dass in den Kernel-Dokumenten angegeben ist, dass die alte, auf Ganzzahlen basierende Schnittstelle, obwohl sie als veraltet angesehen wird, aus Kompatibilitätsgründen weiterhin verwendet werden kann. Ich bin jedoch nicht daran interessiert, diesen Legacy-Code zu verwenden.
/sys/class/gpio/export
sie direkt auf die Hardware zugreifen, obwohl sie Kerneldienste verwenden können. Natürlich greifen WiringPi und AFAIK Pigpiod direkt auf SoC-Register zu.Antworten:
sysfs
wurde veraltet und durch ersetztlibgpiod
.https://www.beyondlogic.org/an-introduction-to-chardev-gpio-and-libgpiod-on-the-raspberry-pi/
Die Interaktionen sind
/dev/gpiochipx
eher mit als/sys/class/gpio
.Die einzige offensichtliche Verbesserung (für mich) ist, dass GPIO-Ereignisse jetzt einen Zeitstempel haben.
quelle