Обработка GPIO в Linux

У меня есть вопрос о ядре Linux и GPIO. Я знаю, что в Linux все является файлом, поэтому, когда я делаю что-то вроде

echo 30 > /sys/class/gpio/export

а также

echo 1 > /sys/class/gpio/gpio30/value

что на самом деле происходит? Я имею в виду, как sysfs справляется с этим? Вызывает ли он системные вызовы, реализованные в gpiolib?


person b0b0b    schedule 23.10.2013    source источник
comment
Посмотрите этот ответ, чтобы узнать, как правильно использовать sysfs и GPIO: и уведомление о пространстве пользователя"> stackoverflow.com/questions/19257624/   -  person Peter L.    schedule 24.10.2013


Ответы (1)


gpiolib регистрирует атрибут value следующим образом:

 static const DEVICE_ATTR(value, 0644, gpio_value_show, gpio_value_store);

Он создает атрибут устройства с именем value с разрешением 644; при чтении он вызывает gpio_value_show, при записи вызывает gpio_value_store

Что делает sysfs, так это перенаправляет read и write на соответствующую функцию атрибута sysfs.

person Federico    schedule 24.10.2013