Большинство библиотек, на нескольких языках, взаимодействует с GPIO контактов через /sys/class/gpio/export
, /sys/class/gpio/import
, /sys/class/gpio/gpio10/value
и т.д. Однако Linux Kernel документы ясно состояние , что является наследие способом ведения дел.
Что такое нелегальный способ ведения дел?
Если я правильно понимаю в пространстве ядра, я бы использовал эти функции или стандартные драйверы ядра для общих задач GPIO.
Что бы я использовал для пространства пользователя? Есть ли интерфейс Sysfs для не унаследованного?
PS: Я знаю, что в документации ядра говорится, что устаревший целочисленный интерфейс, хотя и считается устаревшим, все еще можно использовать по соображениям совместимости. Однако я не заинтересован в использовании этого унаследованного кода.
/sys/class/gpio/export
прямой доступ к оборудованию, хотя МОГУТ использовать службы ядра. Конечно, WiringPi и AFAIK pigpiod имеют прямой доступ к регистрам SoC.Ответы:
sysfs
устарела и заменена наlibgpiod
.https://www.beyondlogic.org/an-introduction-to-chardev-gpio-and-libgpiod-on-the-raspberry-pi/
Взаимодействия с,
/dev/gpiochipx
а не/sys/class/gpio
.Единственное очевидное улучшение (для меня) состоит в том, что у событий GPIO теперь есть отметка времени.
источник