Перейти к основному содержимому

Начало работы с WiringRP

Загрузка

Библиотека WiringPI доступна для загрузки из репозитория GitFlic. Для загрузки библиотеки выполните следующие команды в консоли RepkaOS:

# для установки СУВ Git
sudo apt-get install git

# для загрузки библиотеки из репозитория на локальный диск
# перед загрузкой перейдите в каталог, который вы планируете использовать для хранения проектов
git clone https://gitflic.ru/project/repka_pi/wiring-repka.git

После загрузки, в текущем каталоге появится папка wiring-repka содержащая следующие каталоги:

  1. driver - содержит исходные коды драйвера repka_gpio.

  2. example - содержит исходные коды примеров использования библиотеки.

  3. utility - содержит собранный драйвер repka_gpio.ko и скрипт для его ручной установки и настройки прав доступа к используемым библиотекой драйверам устройств.

  4. 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.

  1. Создайте папку для своего проекта на одном уровне с папкой wiring-repka.
mkdir myProject
  1. Скопируйте файл шаблона template.c или template_adv.c из каталога wiring-repka/examples, переименуйте его в myApp.c.

  2. Создайте в папке 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)
  1. Напишите следующий код в файл 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();
  1. Соберите проект с помощью команд:
mkdir build
cd build
cmake ..
  1. Запустите файл myProject из каталога build.
chmod +x myProject
./myProject