La mayoría de las bibliotecas, en varios idiomas, interactuar con los pasadores a través de GPIO /sys/class/gpio/export
, /sys/class/gpio/import
, /sys/class/gpio/gpio10/value
, etc. Sin embargo, los documentos del núcleo de Linux claramente estatales que es la forma heredada de hacer las cosas.
¿Cuál es la forma no tradicional de hacer las cosas?
Si entiendo correctamente en el espacio del kernel, usaría estas funciones o controladores de kernel estándar para tareas comunes de GPIO.
¿Qué usaría para el espacio de usuario? ¿Existe una interfaz Sysfs para el no legado?
PD: Sé que los documentos del kernel indican que la interfaz heredada basada en enteros, aunque se considera obsoleta, todavía se puede usar por razones de compatibilidad. Sin embargo, no estoy interesado en usar ese código heredado.
/sys/class/gpio/export
que acceden directamente al hardware, aunque PUEDEN usar los servicios del kernel. Ciertamente, WiringPi y AFAIK pigpiod acceden directamente a los registros de SoC.Respuestas:
sysfs
ha quedado en desuso y ha sido reemplazado porlibgpiod
.https://www.beyondlogic.org/an-introduction-to-chardev-gpio-and-libgpiod-on-the-raspberry-pi/
Las interacciones son con
/dev/gpiochipx
más que/sys/class/gpio
.La única mejora obvia (para mí) es que los eventos GPIO ahora tienen una marca de tiempo.
fuente