Страница 1 из 1

Lazarus+Raspberry Pi+GPIO

СообщениеДобавлено: 09.04.2016 21:54:52
GAMER
Есть ли модули для работы с сабжем?
На Си есть такое: http://www.open.com.au/mikem/bcm2835/index.html

Re: Lazarus+Raspberry Pi+GPIO

СообщениеДобавлено: 09.04.2016 22:07:43
скалогрыз
скомпилить эту библиотеку да прилинковать к программе?
хедер всего один, да и он довольно скромен. h2pas без проблем его переварить должен.

Re: Lazarus+Raspberry Pi+GPIO

СообщениеДобавлено: 09.04.2016 23:13:04
GAMER
То есть ставлю эту библиотеку в систему, а потом использовать h2pas для линковки?

Re: Lazarus+Raspberry Pi+GPIO

СообщениеДобавлено: 09.04.2016 23:21:50
скалогрыз
GAMER писал(а):То есть ставлю эту библиотеку в систему, а потом использовать h2pas для линковки?

почти.

Если библиотека ставится, как динамическая, то да. Ещё проще если она уже доступна в каком-нибудь репозитирии.
Если библиотека не доступна как динамическая, то её предварительно нужно собрать для статической линковки (в .o или .a файл).

h2pas не занимается линковкой в принципе. Он просто преобразует c-хедер, в паскаль заголовок. Чтобы FPC его понимал.
Линковкой займётся сам компилятор (а точнее сборщик), либо уже система по время запуска программы (если библиотека будет доступна динамически).

Re: Lazarus+Raspberry Pi+GPIO

СообщениеДобавлено: 09.04.2016 23:25:25
GAMER
bcm2835 ставится стандартно. make -> make install
./configure make
sudo make check
sudo make install


Добавлено спустя 7 минут 52 секунды:
Нагуглил такое: http://wiki.freepascal.org/Lazarus_on_Raspberry_Pi#5._PiGpio_Low-level_native_pascal_unit_.28GPIO_control_instead_of_wiringPi_c_library.29 Нужно будет поиграться.

Re: Lazarus+Raspberry Pi+GPIO

СообщениеДобавлено: 10.04.2016 05:42:25
SSerge
http://www.meltonisl.com/software.html

в самом последнем квадратике нечто есть (не проверял).

Re: Lazarus+Raspberry Pi+GPIO

СообщениеДобавлено: 17.05.2016 18:27:12
GAMER
Из того, что увидел, все требует рутового доступа. А на Си работает под юзером. Жаль.

Re: Lazarus+Raspberry Pi+GPIO

СообщениеДобавлено: 17.05.2016 19:15:52
Дож
GAMER писал(а):Из того, что увидел, все требует рутового доступа. А на Си работает под юзером. Жаль.

Если доступ к GPIO юзеру не сконфигурирован, то логично, что он не сможет его использовать ни из Си, ни другими способами.

Re: Lazarus+Raspberry Pi+GPIO

СообщениеДобавлено: 17.05.2016 21:13:39
GAMER
Не так. Под одним и тем же пользователем софт, написаный на Си, работает, а написаный на Лазарусе/паскале - нет. Разная логика обращения к ресурсам.

Re: Lazarus+Raspberry Pi+GPIO

СообщениеДобавлено: 17.05.2016 21:22:07
Дож
А если похачить модуль PiGpio, заменив в нём
Код: Выделить всё
fd := fpopen('/dev/mem', O_RdWr or O_Sync); // Open the master /dev/memory device

на
Код: Выделить всё
fd := fpopen('/dev/gpiomem', O_RdWr or O_Sync); // Open the master /dev/memory device

то тоже не работает?

Re: Lazarus+Raspberry Pi+GPIO

СообщениеДобавлено: 18.05.2016 10:38:39
GAMER
Должно работать, проверю. В исходниках bcm2835.c алгоритм сам проверяет права и использует либо /dev/mem либо /dev/gpiomem. Сильно не копал.

Добавлено спустя 51 минуту 58 секунд:
А есть рабочий пример для Пи2? Те примеры, которые нарыл используют оригинальный PiGpio.pas.
Здесь более новый, модифицированый.
http://www.meltonisl.com/software.html

в самом последнем квадратике нечто есть (не проверял).


Но старые примеры не совсем подходят.

Добавлено спустя 2 часа 1 минуту 35 секунд:
Поставил http://www.afterwarp.net/products/pxl. Работает только на fpc 3.0.0 и новом Лазарусе. Нашел в сорсах /dev/mem и заменил на /dev/gpiomem. НЕ помогло, виснет все.