Начало работы с 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


383 просмотров0 комментариев

Комментарии (0)

Для участия в обсуждении Вы должны быть авторизованным пользователем
Разделы

Навигация

ВойтиРегистрация