Перейти к содержанию

Arduino

OpenSiFli/ArduinoCore-zephyr — ядро Arduino на базе Zephyr для SF32. Оно подходит для скетчей, экспериментов с периферией, демонстраций и ранних прототипов на SiFli SF32LB52 DevKit LCD.

Ядро в статусе beta

OpenSiFli присваивает этому ядру статус BETA. Возможны изменения функций, API, состава пакета, поведения загрузчика и выпусков. Прежде чем использовать эту платформу в продукте, проверьте актуальное поведение по README и разделу Releases проекта.

Первоначальную установку IDE, выбор платы и порта, установку загрузчика и проверку Blink описывает руководство Начало работы с Arduino. Эта страница поможет оценить, подходит ли Arduino, и сопровождать проект на Arduino после первого запуска.

Когда выбирать Arduino

Выбирайте Arduino, если быстрые итерации и привычная модель скетчей важнее полного доступа к возможностям SF32. Этот вариант подходит для проверки концепции, простых экспериментов с периферией, учебных и демонстрационных проектов, а также для команд с существующей кодовой базой Arduino.

Переходите на SiFli-SDK, если продукту нужна базовая прошивка для серийного изделия, настройка стека Bluetooth, ресурсоёмкая графика, оптимизация низкого энергопотребления, ввод платы в работу или промежуточное ПО производителя (middleware). Используйте Zephyr, если требуется прямой контроль над devicetree, Kconfig и структурой приложений Zephyr.

Таблица: применимость платформы Arduino
Выбирайте Arduino для Другой путь предпочтительнее для
Коротких скетчей и быстрых экспериментов с периферией. Продукта с широкими, проверенными требованиями к возможностям SF32.
Команд, уже эффективно работающих с Arduino IDE или Arduino CLI. Запуска собственной платы или детального управления Flash, питанием и middleware.
Демонстраций и ранних прототипов для оценки реализуемости. Нативной конфигурации, драйверов и структуры RTOS в Zephyr.

Идентификация платы

Текущий общедоступный пакет предназначен для SF32LB52 DevKit LCD. Сохраните эти значения в документации проекта и отчётах о проблемах: от них зависят сборка, загрузка скетча и привязка к плате.

Таблица: идентификаторы платы Arduino
Параметр Значение
Название в Boards Manager SiFli Serial Boards
Платформа Arduino sifli:sf32lb52
Плата SiFli SF32LB52 DevKit LCD
FQBN sifli:sf32lb52:sf32lb52devkitlcd
Цель Zephyr sf32lb52_devkit_lcd
Вариант sf32lb52_devkit_lcd_sf32lb525uc6
Инструмент загрузки sftool
LED_BUILTIN 13

Идентификатор платы SiFli или Zephyr с похожим названием нельзя использовать вместо этого FQBN. Выбранный идентификатор платы определяет параметры сборки и загрузки.

Модель сборки и загрузчика

ArduinoCore-zephyr объединяет Arduino API для скетчей, загрузчик Zephyr и конфигурацию конкретной платы. Два меню параметров влияют на запуск и компоновку, а не только на флаги компилятора.

Таблица: режимы сборки и параметры загрузчика
Параметр Поведение Значение для разработки
Режим сборки Standard Запускает скетч после загрузки. Используйте для обычной работы скетча.
Режим сборки Debug Оставляет оболочку Zephyr в ожидании команды sketch. Нужен только тогда, когда оболочка входит в процесс отладки.
Режим компоновки Dynamic Упаковывает скетч для обычного сценария с загрузчиком. Учитывайте загрузчик в бюджете времени выполнения и памяти.
Режим компоновки Static Использует статически скомпонованный образ. Подходит для диагностики, связанной с загрузчиком или если компромиссы этого режима понятны.

Начните с Standard и Dynamic. В режиме Debug загруженный скетч не запустится, пока в оболочке Zephyr не будет выполнена команда sketch. Это частая причина ситуации, когда загрузка выглядит успешной, но приложение не работает.

Загрузчик — отдельный артефакт платы. Burn Bootloader обычно выполняют при первом использовании, обновлении или восстановлении, а не при каждой загрузке скетча. Сохраняйте версию пакета Arduino и сведения об обновлениях загрузчика вместе: несовпадение версий и предположений впоследствии трудно диагностировать.

Границы интеграции

Рассматривайте ядро Arduino как интеграционный слой, а не замену базовой платформе Zephyr. Скетчу могут понадобиться символы или подсистемы Zephyr, которые загрузчик не экспортирует или не включает. Типичные симптомы — неопределённый символ Zephyr, отсутствующая подсистема или нехватка памяти из-за динамической загрузки и оболочки.

Прежде чем добавлять библиотеку или функцию в прототип продукта, проверьте следующее:

  • Точную версию пакета, FQBN, режим сборки и режим компоновки.
  • Ревизию целевой платы и процедуру загрузки через последовательный порт и восстановления.
  • Проверенный пример для нужной периферии или библиотеки.
  • Измеряемый бюджет RAM и Flash при предполагаемой конфигурации загрузчика.
  • Способ восстановления с помощью загрузчика Arduino или прошивки SiFli-SDK.

Не считайте библиотеку поддерживаемой только потому, что существует Arduino API или драйвер Zephyr с похожим названием. Проверьте на целевой аппаратуре полную комбинацию скетча, загрузчика, платы и пакета.

Диагностика и эскалация

Если плата не обнаруживается, не прошивается или не запускает Blink, начните с проверки по руководству первого запуска. Когда базовая конфигурация заработает, используйте таблицу ниже, чтобы сузить область поиска.

Таблица: первичная диагностика проблем Arduino
Симптом после успешного первого запуска Что проверить сначала
Скетч запускается только после команды sketch. Убедитесь, что режим Debug выбран намеренно.
Не найдена функция или подсистема Zephyr. Проверьте README ядра, экспортируемые загрузчиком функции и его конфигурацию.
Ошибка памяти или нестабильная работа. Измерьте бюджет скетча, учтите динамическую загрузку и оболочку Zephyr; рассматривайте Static только при наличии плана восстановления.
Библиотека собирается, но аппаратура не работает. Проверьте предположения о выводах платы и протестируйте минимальный пример для этой платы.
Не удаётся загрузить или восстановить прошивку. Повторно выполните документированные шаги для Arduino, затем при необходимости используйте путь восстановления платы через SiFli-SDK.

В полезный отчёт о проблеме включите версию пакета, версию IDE или CLI, операционную систему, FQBN, режим сборки, режим компоновки, ревизию платы, полный вывод загрузки и журнал последовательного порта.

Последнее обновление: