Работа с GPIO: различия между версиями

Нет описания правки
Строка 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 свободен!


==Работа из userspace== <!--T:6-->


===Интерфейс sysfs в Linux === <!--T:6-->
===Интерфейс sysfs в Linux === <!--T:6-->
wb_editors
556

правок