LINUX.ORG.RU

Опрос GPIO на компьютерах типа Raspberry, Banana, Orange ...

 ,


1

3

Добрый день всем! Занимаюсь написанием консольной программки, на С++, для опроса GPIO портов. Раньше программа писалась только для работы на Raspberry, для опросов GPIO можно было использовать библиотеку WiringPi, библиотеку от Broadcom или самый простой метод - опрос файлов через sysfs (/sys/class/gpio/gpioX/value). Теперь есть необходимость сделать ее более универсальной, чтобы эту самую программу можно было с легкостью использовать как на Raspberry так и на форках типа Banana, Ornage и т.д. Мне кажется, что самый простой и универсальный метод опроса - это опрос sysfs, тогда программе нужно просто будет указать с какими портами работать и все, нет необходимости подключать новые библиотеки и переписывать программу под них. Интересно послушать чужое мнение насчет такого подхода, возможно есть еще какие-то универсальные способы опроса более адекватные. Буду благодарен за любое мнение или совет.


Если нужна производительность, то программа должна только снаружи выглядеть универсально, а внутри использовать оптимальный способ доступа для каждой платформы. Вплоть до реализации всего функционала в заголовочных файлах. А если в консоли производительность/задержки не важны, то почему бы не сделать как проще.

gag ★★★★★
()
Последнее исправление: gag (всего исправлений: 1)

Почему не WiringPi? Он вроде везде есть.

/sys/class/gpio/gpioX/value

ls -l /sys/class/gpio/
total 0
--w------- 1 root root 4096 Jan  1  1970 export
lrwxrwxrwx 1 root root    0 Jan  1  1970 gpiochip0 -> ../../devices/platform/sunxi-pinctrl/gpio/gpiochip0
--w------- 1 root root 4096 Jan  1  1970 unexport


Универсально, да.

KillTheCat ★★★★★
()

куда уж универсальнее sysfs то.

а если нужно совсем быстро, то через память, но это не универсально.

anonymous
()

Мне кажется, что самый простой и универсальный метод опроса - это опрос sysfs

интерфейс к gpio через sysfs скоро отсохнет

https://www.spinics.net/lists/linux-gpio/msg13713.html

лучше ориентироваться на новый

https://www.kernel.org/doc/Documentation/ABI/testing/gpio-cdev

или по крайней мере не дёргаться пока он не появится

anonymous
()
Ответ на: комментарий от anonymous

или не дергаться пока 4.x ядро для allwinner не допилят)

zudwa
()
Ответ на: комментарий от zudwa

Сказав форки, я имел ввиду, что это как бы ответвления от Raspberry, так как мне кажется что Малина на этом рынке была первой, потом уже пошли разные бананы, апельсины.

Спасибо за советы друзья! Я посмотрел wiringPi, он действительно доступен для для каждой из мне необходимой платформы, а с учётом того что gpio в sysfs хотят прикрыть ( не знал про это) и с альтернативой sysfs ещё не определились, действительно лучше ориентироваться на wiringPi, пожалуй это самый простой и универсальный вариант на сегодня

VladV
() автор топика
Ответ на: комментарий от true_admin

Ну не сказал бы что это клоны. Клоны это, например, китайские Ардуино, они имеют тот же формфактор, те же характеристики, но дешевле.

VladV
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.