A maioria das bibliotecas, em vários idiomas, interagem com o GPIO pinos via /sys/class/gpio/export
, /sys/class/gpio/import
, /sys/class/gpio/gpio10/value
, etc. No entanto o kernel Linux docs claramente estado que é o modo legado de fazer as coisas.
Qual é a maneira não legada de fazer as coisas?
Se eu entendi corretamente no espaço do kernel, usaria essas funções ou drivers padrão do kernel para tarefas comuns do GPIO.
O que eu usaria para o espaço do usuário? Existe uma interface Sysfs para o não legado?
PS: Eu sei que os documentos do kernel afirmam que a interface baseada em números herdados, embora considerada obsoleta, ainda é utilizável por motivos de compatibilidade. No entanto, não estou interessado em usar esse código legado.
/sys/class/gpio/export
pois acessam o hardware diretamente, embora PODEM usar serviços de kernel. Certamente o período de pigmento WiringPi e AFAIK acessa diretamente os registros SoC.Respostas:
sysfs
foi descontinuado e foi substituído porlibgpiod
.https://www.beyondlogic.org/an-introduction-to-chardev-gpio-and-libgpiod-on-the-raspberry-pi/
As interações são com
/dev/gpiochipx
e não/sys/class/gpio
.A única melhoria óbvia (para mim) é que os eventos GPIO agora têm um carimbo de data / hora.
fonte