diff --git a/Linux/Linux SBC - Hardware.md b/Linux/Linux SBC - Hardware.md index 6248f78..250e6d9 100644 --- a/Linux/Linux SBC - Hardware.md +++ b/Linux/Linux SBC - Hardware.md @@ -9,8 +9,8 @@ https://devdotnet.org/post/rabota-s-gpio-v-linux-chast-6-biblioteka-libgpiod/ Способы управления: 1. Userspace driver -прямое управление -2. Libgpiod - управление через библиотеку -3. +2. Libgpiod - управление через библиотеку (API для Python и C/C++) +3. Python library #### User Space Прямой доступ к регистрам, минуя медленные системные вызовы. Посредством открытия `/dev/mem` и мапирование базового адреса GPIO. @@ -19,7 +19,8 @@ https://devdotnet.org/post/rabota-s-gpio-v-linux-chast-6-biblioteka-libgpiod/ 2. Нет контроля конкуренции (может управлять несколько процессов) 3. Можно сломать драйвер 4. Нет безопасности - + +Пример работы с GPIO ```cpp title:userspace_gpio_control.cpp #include // вывод сообщений @@ -94,6 +95,8 @@ GPIO_BASE – смещение в файле (физический адрес). } ``` +--- + #### libgpiod - library control Library General Purpose Input/Output device - Библиотека и набор утилит в Linux для управления пинами GPIO (ввод/вывод общего назначения) через символьные устройства (`/dev/gpiochip*`) или контроллеры GPIO Состав библиотеки: @@ -114,11 +117,8 @@ pkg-config --cflags --libs libgpiod ``` bash g++ -o gpio_control gpio_control.cpp -lgpiod ``` -`` - 3. Компиляция: - - 4. API для Python и C/C++ - + +Пример работы с GPIO ``` cpp title:libgpiod_control.cpp ``` @@ -127,21 +127,26 @@ g++ -o gpio_control gpio_control.cpp -lgpiod `/sys/bus/i2c/devices/` По умолчанию шина отключена. Включить можно следующими способами: -1. `sudo raspi-config` -2. Корректировкой `/boot/firmware/config.txt` +``` bash +sudo raspi-config +``` +Или от корректировкой `/boot/firmware/config.txt` 1. Необходимо раскомментировать параметр `dtparam=i2c_arm=on` + Затем в устройство должно появиться в `/dev` как `i2c-1` +Набор утилит для работы с шиной i2c: `i2c-tools` +Состав библиотеки: +- -Для работы с шиной и периферией есть библиотека `i2c-tools` ## SPI - +E Команды для работы: -`cat /proc/device-tree/model` - модель платы для которой device tree создан -`ls /proc/device-tree/` - дерево устройств, которое kernel получил от GPU -`ls /sys/bus/platform/devices` - вывод устройств, которые kernel создал на основе DT -`lsmod` - просмотр загруженных модулей св +```bash + +``` + ## Commands Система: