wb_editors
556
правок
Vdromanov (обсуждение | вклад) |
Vdromanov (обсуждение | вклад) |
||
Строка 13: | Строка 13: | ||
Соответствие между номерами GPIO в Linux и их местоположением и функцией можно найти в статье [[GPIO]]. | Соответствие между номерами GPIO в Linux и их местоположением и функцией можно найти в статье [[GPIO]]. | ||
==Работа из userspace== <!--T:6--> | |||
Перед началом работы из userspace, необходимо убедиться, в том, что нужный gpio не занят ядром. Для этого можно посмотреть на вывод команды | |||
<pre> | |||
cat /sys/kernel/debug/gpio | |||
</pre> | |||
В выводе команды видим примерно следующее: | |||
<pre> | |||
gpiochip0: GPIOs 0-31, parent: platform/209c000.gpio, 209c000.gpio: | |||
gpio-0 ( |sysfs ) in hi IRQ | |||
gpio-10 ( |? ) in lo | |||
gpio-11 ( |w1 ) in hi | |||
gpio-13 ( |w1 strong pullup ) out lo | |||
gpio-26 ( |sysfs ) out lo | |||
gpio-27 ( |sysfs ) out hi | |||
</pre> | |||
Видим, что gpio 0, 26 и 27 уже экспортированы в sysfs и доступны для управления. Gpio 11 и 13 заняты ядерным драйвером onewire и недоступны для использования. | |||
<!--T:7--> | |||
Если эти gpio нужны по каким-то причинам, то нужно остановить драйвер: | |||
<pre> | |||
lsmod | grep w1 # узнаем название драйвера | |||
rmmod w1_gpio # выгружаем драйвер, название которого узнали | |||
</pre> | |||
До следующей перезагрузки контроллера желаемый gpio свободен! | |||
===Интерфейс sysfs в Linux === <!--T:6--> | ===Интерфейс sysfs в Linux === <!--T:6--> |