Содержание
- Настройка уже существующего проекта для удаленной отладки
- Видео-инструкции для настройки расширения и удаленного устройства
- Сторонние bash-скрипты для установки пакетов/библиотек
- Управление контактами GPIO
- Управление файлами наложения устройств (Device Tree overlays)
- Как работает расширение
- Об дистрибутиве Armbian
- Конфигурацию Launch для удаленной отладки можно добавлять проектам вне создания самого проекта из шаблона расширения. Для добавления Launch необходимо открыть проект и нажать на кнопку Add Launch:
- Выбрать устройство для удаленной отладки:
- Выбрать шаблон проекта из которого будут взяты Launch и Tasks:
- Выбрать проект:
- Создана конфигурация Launch для запуска приложения:
- Далее переходим в Activity Bar
Run and Debug
, выбираем добавленный Launch и запускаем приложение:
Для упрощения настройки расширения и удаленного устройства были созданы видео-ролики (YouTube):
- Step 1. Configuring SSH access;
- Step 2. Adding a device;
- Step 3. Installing packages;
- Step 4. Creating a .NET console application and remote debugging;
- Step 5. Using GPIO. Blink.
.NET SDK, .NET Runtimes, .NET Debugger (vsdbg), Libgpiod, Docker, загружаются с официальных сайтов разработчиков пакетов, за исключением библиотеки Libgpiod. Скрипт для установки данной библиотеки загружается с ресурса GitHub — devdotnetorg/docker-libgpiod. Далее, загруженный скрипт скачивает исходный текст библиотеки с официального репозитория Libgpiod и выполняется компиляция библиотеки.
GPIO (general-purpose input/output) — интерфейс ввода/вывода общего назначения. GPIO подключены напрямую к «процессору» SoC (System-on-a-Chip — Система на кристалле). Большинство одноплатных компьютеров, кроме обычных двунаправленных Input/Output портов, имеют один или более интерфейсов: UART, SPI, I²C/TWI, PWM (ШИМ), но не имеют ADC (АЦП). GPIO — порты обычно могут быть сконфигурированны на ввод или вывод (Input/Output), состояние по умолчанию обычно INPUT. К портам GPIO подключаются: светодиоды, кнопки, реле, температурные и другие датчики, различные периферийные устройства.
Для программирования GPIO существует несколько способов обращения:
- Посредством файл-устройства (sysfs) GPIO;
- Через прямое обращение к регистрам чипа;
- Используя уже готовые библиотеки (libgpiod).
Расширение предусматривает работу с GPIO, используя библиотеку Libgpiod. Что такое GPIO и как управлять контактами, используя библиотеку Libgpiod, в публикациях:
- Работа с GPIO на примере Banana Pi BPI-M64. Часть 1. Интерфейс sysfs LED и DS18B20;
- Работа с GPIO в Linux. Часть 6. Библиотека Libgpiod;
- Управляем контактами GPIO из C# .NET 5 в Linux на одноплатном компьютере Banana Pi M64 (ARM64) и Cubietruck (ARM32);
- .NET IoT. Часть 2. Мигаем светодиодом (LED) используя библиотеку Libgpiod.
Device Tree overlays используются для включения/выключения таких устройства как I2C, SPI, PWM, и т. д. Доступна удаленная загрузка файлов *.DTS
и включение/выключение «слоев». Более подробно в публикации Работа с GPIO. Часть 2. Device Tree overlays. Работа с DTS поддерживается только в дистрибутиве Armbian. Для поддержки других дистрибутивов необходима реализация адаптера по интерфейсу IDtoAdapter.ts. Пример реализации для Armbian — IoTDTOArmbianAdapter.ts.
Принцип работы расширения и внутренний механизм раскрывается в публикациях:
- Удаленная отладка приложения на .NET 5.0 в Visual Studio Code для ARM на примере Banana Pi BPI-M64 и Cubietruck (Armbian, Linux);
- Простая разработка IoT приложений на C# для Raspberry Pi и других одноплатников, на Linux.
Armbian это самый популярный дистрибутив для одноплатных компьютеров на архитектуре ARM и RISC-V. Более подробно об Armbian можно ознакомится на странице Armbian — Linux дистрибутив для отладочных плат на ARM.