Библиотека wiringRP для Repka Pi
Библиотека функций WiringRP для Repka Pi предоставляет программный интерфейс для управления внешними устройствами, подключаемыми к контактам GPIO-разъёма.
Список каталогов:
-
driver - содержит исходные коды модуля ядра repka_gpio.
-
examples - содержит исходные коды примеров использования библиотеки.
-
wiringRP - содержит исходные коды библиотеки WiringRP.
Для сборки проекта используйте CMake.
Важно! Для сборки ядра для RepkaOS с RT патчем (ядро 6.1.11-rt7) необходимо обновить ядро ОС с помощью утилиты repka-config (обязательно используйте последнюю версию утилиты!).
-
Загрузите утилиту https://download.repka-pi.ru/repka-tools/repka-config/.
-
Скопируйте загруженный файл repka-config.sh в каталог
/boot. -
Разрешите ОС выполнять скрипт
sudo chmod +x /boot/repka-config. -
Запустите утилиту
repka-config. -
Зайдите в пункт
System Options->S1 Select-kernel->ok-> выберите пунктKernel-3 6.1.11-rt7-sunxi (с патчем PREEMPT_RT)->Выбрать / Select -
Дождитесь установки пакетов, перезагрузите устройство по соответствующему запросу.
Общие действия для всех сборок RepkaOS:
-
Установите пакеты
sudo apt install cmake gdb(если ранее не устанавливали их). -
Создайте папку для проектов, например
mkdir ~\projects && cd ~\projects. -
Клонируйте проект WiringRP из репозитория
git clone https://gitflic.ru/project/repka_pi/wiring-repka.git. -
Перейдите в папку проекта
cd ./wiring-repka -
Создайте каталог для сборки проекта
mkdir build && cd build. -
Соберите проект и скомпилируйте его
cmake .. && cmake --build .. -
Результаты сборки сохраняются в каталогах:
-
binисполняемые файлы примеров; -
driverмодуль ядра repka_gpio.ko; -
libбиблиотека libwiringrp.a для статической линковки.
-
Примечания:
-
WiringRP предоставляет доступ к контактам GPIO, в том числе используемым как входы/выходы контроллеров периферийных устройств с учетом текущей версии распиновки.
-
Для включения модуля ядра repka_gpio.ko необходимо использовать следующие команды, находясь в папке проекта (например в
~\projects\wiring-repka):
insmod build/driver/repka_gpio.ko
- Проверить, что модуль ядра загрузился можно командой
lsmod | grep repka_gpio. В случае успешной загрузки модуля ядра Вы увидите следующее:
root@Repka-Pi:~/projects/wiring-repka/# lsmod | grep repka_gpio
repka_gpio 12288 0
- После загрузки модуля ядра необходимо установить права доступа для символьных устройств, используемых библиотекой WiringRP.
- Для Repka Pi 3:
# Символьные устройства, созданные модулем ядра repka_gpio, и периферийные интерфейсы Repka Pi 3.
for dev in \
/dev/repka_gpio* \
/dev/gpiochip* \
/dev/ttyS{0,2,3} \
/dev/i2c-{1,2} \
/dev/spidev{0.0,1.0}
do
if [ -c "$dev" ]; then
sudo chmod 666 "$dev"
fi
done
- Для Repka Pi 4:
# Символьные устройства, созданные модулем ядра repka_gpio, и периферийные интерфейсы Repka Pi 4.
for dev in \
/dev/repka_gpio* \
/dev/gpiochip* \
/dev/ttyS{0,2,3} \
/dev/i2c-{1,2,3} \
/dev/spidev0.0
do
if [ -c "$dev" ]; then
sudo chmod 666 "$dev"
fi
done
- Для Repka Pi 5:
# Символьные устройства, созданные модулем ядра repka_gpio, и периферийные интерфейсы Repka Pi 5.
for dev in \
/dev/repka_gpio* \
/dev/repka_pmu{1,2} \
/dev/repka_bus \
/dev/repka_vccio{1_4,3_5,2,6} \
/dev/repka_emmc \
/dev/gpiochip* \
/dev/ttyS{0,1} \
/dev/i2c-{2,4,5,7,8} \
/dev/spidev{0.0,0.1,3.0}
do
if [ -c "$dev" ]; then
sudo chmod 666 "$dev"
fi
done