1. Что такое RepkaPi.GPIO SysFS?
Это программная библиотека, созданная как совместимая по API замена популярной RPi.GPIO
, но адаптированная специально для архитектуры и особенностей Repka Pi. Её ключевая особенность, отраженная в названии, — это работа через стандартный интерфейс ядра Linux — sysfs
.
В отличие от методов, использующих прямой доступ к памяти (/dev/mem
), подход sysfs
обеспечивает:
- Безопасность и стабильность: Все операции проходят через проверенные и надежные механизмы ядра Linux, что исключает риск случайного повреждения системы из-за ошибки в коде.
- Совместимость: Гарантирует работу на различных версиях ядер Linux, которые поддерживают данный интерфейс.
- Работу без прав
root
: При правильной настройке правилudev
(описанной в разделе "Установка"), библиотека позволяет управлять GPIO от имени обычного пользователя.
2. Ключевые особенности и архитектура
Изучив структуру библиотеки, можно выделить несколько фундаментальных принципов, заложенных в её основу:
2.1. Совместимый API
Для тех, кто имеет опыт работы с Raspberry Pi, переход на Repka Pi будет максимально простым. Названия основных функций (setup
, output
, input
, add_event_detect
) и констант (HIGH
, LOW
, BOARD
, BCM
) унаследованы от RPi.GPIO
.
2.2. Автоматическое определение платы
Библиотека способна самостоятельно определить модель вашей платы (Repka Pi 3 или Repka Pi 4) и автоматически подгрузить корректную карту расположения пинов.
2.3. Гибкая система нумерации
Поддерживается несколько режимов адресации контактов для максимального удобства:
BOARD
: Нумерация по физическому расположению пина на гребенке. Наиболее удобен для новичков.BCM
/SOC
: Нумерация по системному номеру GPIO, который используется вsysfs
.SUNXI
: Адресация по именам портов процессора Allwinner (например, "PL10"). Удобен для разработчиков, работающих с документацией на SoC.
2.4. Продвинутая обработка событий
Механизм прерываний реализован не через примитивный опрос, а с помощью эффективного системного вызова epoll
, что позволяет создавать по-настоящему реактивные программы, не нагружающие процессор.
3. Для кого эта документация?
Данное руководство предназначено как для начинающих пользователей, которые хотят сделать первые шаги в мире электроники с Repka Pi, так и для опытных разработчиков, желающих понять внутреннее устройство и все возможности библиотеки.
В следующих главах мы пошагово рассмотрим установку, научимся управлять пинами в разных режимах, разберем системы нумерации, освоим работу с прерываниями для создания интерактивных проектов и изучим API библиотеки для написания чистого и эффективного кода.