La plupart des bibliothèques, en plusieurs langues, interagir avec les GPIO broches via /sys/class/gpio/export
, /sys/class/gpio/import
, /sys/class/gpio/gpio10/value
, etc. Cependant le noyau Linux docs indiquer clairement qui est la voie de l' héritage de faire les choses.
Quelle est la manière non traditionnelle de faire les choses?
Si je comprends bien dans l'espace du noyau, j'utiliserais ces fonctions ou les pilotes de noyau standard pour les tâches GPIO courantes.
Que devrais-je utiliser pour l'espace utilisateur? Existe-t-il une interface Sysfs pour les non hérités?
PS: Je sais que les documents du noyau indiquent que l'interface héritée basée sur des nombres entiers, bien que considérée comme obsolète, est toujours utilisable pour des raisons de compatibilité. Cependant, je ne suis pas intéressé à utiliser ce code hérité.
/sys/class/gpio/export
accès direct au matériel, bien qu'elles puissent utiliser les services du noyau. Certes, les pigpiodes WiringPi et AFAIK accèdent directement aux registres SoC.Réponses:
sysfs
a été déconseillé et remplacé parlibgpiod
.https://www.beyondlogic.org/an-introduction-to-chardev-gpio-and-libgpiod-on-the-raspberry-pi/
Les interactions sont avec
/dev/gpiochipx
plutôt que/sys/class/gpio
.La seule amélioration évidente (pour moi) est que les événements GPIO ont désormais un horodatage.
la source