Загрузка #
Библиотека WiringPI доступна для загрузки из репозитория GitFlic. Для загрузки библиотеки выполните следующие команды в консоли RepkaOS:
# для установки СУВ Git
sudo apt-get install git
# для загрузки библиотеки из репозитория на локальный диск
# перед загрузкой перейдите в каталог, который вы планируете использовать для хранения проектов
git clone https://gitflic.ru/project/repka_pi/wiring-repka.git
После загрузки, в текущем каталоге появится папка wiring-repka
содержащая следующие каталоги:
-
driver
- содержит исходные коды драйвера repka_gpio. -
example
- содержит исходные коды примеров использования библиотеки. -
utility
- содержит собранный драйвер repka_gpio.ko и скрипт для его ручной установки и настройки прав доступа к используемым библиотекой драйверам устройств. -
wiringRP
- содержит исходные коды библиотеки wiringRP.
Сборка примеров wiringRP #
Для сборки примеров проекта используйте CMake.
cd wiring-repka
mkdir build
cd build
cmake ..
cmake --build .
После сборки проекта, примеры программ можно найти в папке ./bin
Загрузка драйвера repka_gpio.ko #
Данный драйвер используется wiringRP для управления контактами GPIO-разъема. Скомпилированная версия драйвера находится в каталоге wiring-repka/utility. Для работы с библиотекой без прав root-пользователя запустите скрипт bash:
cd wiring-repka/utility
chmod +x init_dev.sh
sudo ./init_dev.sh
Убедитесь, что в каталоге /dev
созданы файлы символьных устройств repka_gpio0
и repka_gpio1
.
При использовании учетной записи root, вместо вышеуказанных команд, нужно выполнить команду:
insmod repka_gpio.ko
к сведению
После завершения работы ОС драйвер repka_gpio.ko выгрузится автоматически. При запуске ОС автоматическая загрузка драйвера не осуществляется! Для работы с библиотекой WiringRP, после каждого старта необходимо выполнять загрузку драйвера ручную или настроить его автозапуск.
Автоматическая загрузка драйвера будет доступна позднее, после завершения процедуры его интеграции в RepkaOS.
Разработка программ #
Для написания собственных программ используйте шаблон template.c
или template_adv.c
из каталога examples
.
- Создайте папку для своего проекта на одном уровне с папкой wiring-repka.
mkdir myProject
-
Скопируйте файл шаблона
template.c
илиtemplate_adv.c
из каталогаwiring-repka/examples
, переименуйте его вmyApp.c
. -
Создайте в папке myProject файл
CMakeLists.txt
следующего содержания:
cmake_minimum_required(VERSION 3.16.0 FATAL_ERROR)
project("myProject")
add_subdirectory(../wiring-repka/wiringRP)
add_executable(myProject myApp.c)
target_link_libraries(myProject PRIVATE wiringrp)
- Напишите следующий код в файл
myApp.c
для управления напряжением на светодиоде, подключенном к контактуPA6
:
#include <stdlib.h>
#include "wiringRP.h"
// Глобальные переменные и константы
const int LED_1 = 6;
void setup() {
// Инициализация библиотек wiringRP
if(setupWiringRP(WRP_MODE_SUNXI) < 0)
exit(EXIT_FAILURE);
// Инициализация пользовательских объектов
pinMode(LED_1, OUTPUT);
}
void loop() {
// Основной цикл программы
digitalWrite(LED_1, HIGH); // устанавливаем высокое напряжение
delay(1000); // ждем 1 секунду
digitalWrite(LED_1, LOW); // выключаем светодиод
delay(500); // ждем 500 миллисекунд
}
ONDESTROY(){
// Освобождение занятых ресурсов, выключение напряжения на пинах
digitalWrite(LED_1, LOW); // отключаем напряжение на контакте
pinMode(LED_1, DISABLE); // деактивируем контакт
// Завершение работы библиотек
releaseWiringRP();
exit(0); // выход из программы
}
MAIN_WIRINGRP();
- Соберите проект с помощью команд:
mkdir build
cd build
cmake ..
- Запустите файл
myProject
из каталогаbuild
.
chmod +x myProject
./myProject