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 для | Другой путь предпочтительнее для |
|---|---|
| Коротких скетчей и быстрых экспериментов с периферией. | Продукта с широкими, проверенными требованиями к возможностям SF32. |
| Команд, уже эффективно работающих с Arduino IDE или Arduino CLI. | Запуска собственной платы или детального управления Flash, питанием и middleware. |
| Демонстраций и ранних прототипов для оценки реализуемости. | Нативной конфигурации, драйверов и структуры RTOS в Zephyr. |
Идентификация платы¶
Текущий общедоступный пакет предназначен для SF32LB52 DevKit LCD. Сохраните эти значения в документации проекта и отчётах о проблемах: от них зависят сборка, загрузка скетча и привязка к плате.
| Параметр | Значение |
|---|---|
| Название в 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, начните с проверки по руководству первого запуска. Когда базовая конфигурация заработает, используйте таблицу ниже, чтобы сузить область поиска.
| Симптом после успешного первого запуска | Что проверить сначала |
|---|---|
Скетч запускается только после команды sketch. |
Убедитесь, что режим Debug выбран намеренно. |
| Не найдена функция или подсистема Zephyr. | Проверьте README ядра, экспортируемые загрузчиком функции и его конфигурацию. |
| Ошибка памяти или нестабильная работа. | Измерьте бюджет скетча, учтите динамическую загрузку и оболочку Zephyr; рассматривайте Static только при наличии плана восстановления. |
| Библиотека собирается, но аппаратура не работает. | Проверьте предположения о выводах платы и протестируйте минимальный пример для этой платы. |
| Не удаётся загрузить или восстановить прошивку. | Повторно выполните документированные шаги для Arduino, затем при необходимости используйте путь восстановления платы через SiFli-SDK. |
В полезный отчёт о проблеме включите версию пакета, версию IDE или CLI, операционную систему, FQBN, режим сборки, режим компоновки, ревизию платы, полный вывод загрузки и журнал последовательного порта.
Связанные страницы¶
Последнее обновление: