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

Примеры

Начинайте с готовых примеров. Обычно разработка прошивки SF32 идёт быстрее, если адаптировать работающий пример для нужной платы, а не создавать каждую подсистему с нуля.

Самый маленький пример не всегда лучший. Выберите тот, в котором уже реализована наиболее сложная часть продукта: профиль Bluetooth, дисплейная панель, аудиотракт, файловая система, OTA, USB, режим энергопотребления или AI-ускоритель.

Категории примеров

Таблица: категории примеров и отправные точки
Категория С чего начать
Первый запуск example/get-started/hello_world/rtt/project
Мигающий светодиод / GPIO example/get-started/blink/rtt или примеры GPIO для HAL и RT-Device.
Bluetooth Примеры BLE, Classic BT, LE Audio, пропускной способности, маяков, OTA и профилей. Начните с карты задач Примеры Bluetooth SDK.
Графика Демонстрации LVGL, интеграция с инструментами дизайна, виджеты, сжатые ресурсы, анимация/медиа и примеры для конкретных дисплеев. Начните с карты задач Примеры LVGL для SiFli-SDK.
Аудио Воспроизведение, запись, захват PDM, кодеки, Opus, MP3, микширование и USB-аудио, если оно поддерживается. Начните с карты задач Аудиопримеры SDK.
Низкое энергопотребление Примеры состояний PM, GPIO, процессора, Bluetooth, дисплея, UI и сценариев для носимых устройств. Начните с карты задач Примеры энергосбережения в SDK.
Хранение данных Примеры файловых систем, Flash, SD и разметки разделов.
USB Примеры устройства и хоста CherryUSB.
ИИ Примеры NNACC HAL и RT-Device.

Типовые отправные точки для примеров SDK

После выбора нужной категории используйте эту таблицу. Пути приведены как типовые и могут меняться между выпусками SDK; перед сборкой проверьте версию SDK, целевую плату и конфигурацию.

Таблица: типовые отправные точки для примеров SF32 SDK
Цель разработки Типовой пример SDK Что проверить в первую очередь Продолжить с
Вход или выход GPIO example/hal/gpio, example/rt_device/gpio Правильность настройки мультиплексирования вывода, полярности и прерываний на реальной плате. Знакомство с периферией
Консоль и проверка системы example/system/finsh Работа последовательной консоли, журналов и базовой диагностики во время выполнения. Знакомство с периферией
ADC, PWM или RTC example/hal/adc, example/rt_device/pwm, example/rt_device/rtc Конфигурация выводов, тактирования и периферии для конкретной платы. Знакомство с периферией
Датчик с I2C example/hal/i2c/master, example/rt_device/i2c/eeprom Электрическое подключение, адресация на шине и надёжность повторных передач. Объединение подсистем
LVGL и локальный дисплей example/multimedia/lvgl/lvgl_v8_examples Инициализация панели, формат пикселей и стабильный путь обновления дисплея (flush) до создания сложных экранов. Обзор графики, Контроллер дисплея
Сервис BLE-периферии example/ble/peripheral, example/ble/hrpc Рекламные пакеты, подключение, одна характеристика GATT и повторное подключение. Обзор Bluetooth
Локальное воспроизведение аудио example/multimedia/audio/local_music, mp3_sd_player Аудиотракт кодека и платы, стабильность буфера и освобождение ресурсов после воспроизведения. Обзор аудио
Хранение данных во флеш-памяти example/storage/littlefs/nor, example/storage/flashdb Монтирование, чтение и запись, восстановление после сброса или заполнения накопителя. Объединение подсистем
Низкое энергопотребление example/pm/classical, example/pm/raise_wrist Ток, измеренный в каждом обозначенном состоянии, и правильная работа источников пробуждения. Обзор энергосберегающего проектирования
BLE OTA example/ble/peripheral_with_ota Восстановление после прерванного обновления и откат на целевой аппаратуре. Проверка готовности изделия
Диагностика во время выполнения example/system/cpu_usage_profiler, example/system/coredump Воспроизводимая трассировка загрузки CPU или запись дампа при сбое до оптимизации. Проверка готовности изделия

Как выбрать пример

Выбирайте в следующем порядке:

  1. Подберите плату.
  2. Подберите фреймворк.
  3. Подберите пример для самой сложной периферии.
  4. Подберите необходимое промежуточное ПО.
  5. Учтите ограничения по энергопотреблению и памяти.

Например, для продукта с Bluetooth-аудио лучше взять пример, близкий к аудио- и Bluetooth-функциям, а не простой hello_world, даже если последний легче понять.

Порядок адаптации

  1. Соберите и прошейте пример без изменений.
  2. Сохраните успешную команду сборки, имя платы, команду прошивки, последовательный порт и журнал.
  3. Внесите одно изменение для продукта.
  4. Повторно соберите и протестируйте.
  5. Сделайте commit или зафиксируйте изменение до добавления следующей подсистемы.

В первый час такой порядок медленнее, а после первой серьёзной ошибки — значительно быстрее.

Какие данные сохранять

Для каждого примера, который становится основой продукта, фиксируйте:

  • Ветку SDK или версию пакета.
  • Имя платы или FQBN.
  • Обязательные параметры конфигурации.
  • Требуемые выводы и периферию.
  • Ожидаемый вывод последовательного порта.
  • Известные ограничения.
  • Объём используемой памяти, если он известен.
  • Команду восстановления.

Правило выбора примера

Выберите пример, соответствующий наиболее ограниченному компоненту продукта:

  • Для продуктов Bluetooth начните с примера ближайшего профиля.
  • Для устройств с дисплеем начните с примера дисплейной системы и LVGL.
  • Для устройств с питанием от аккумулятора начните с примера низкого энергопотребления.
  • Для продуктов с OTA начните с процесса обновления и разметки разделов.

Затем добавляйте остальные подсистемы по одной.

Рекомендуемый порядок изучения

Если вы только начинаете работу с SDK, пройдите раздел Знакомство с периферией. Когда отдельная периферия заработает стабильно, переходите к разделу Объединение подсистем. Раздел Проверка готовности изделия пригодится для измерения энергопотребления, работы с OTA, запуска пользовательского дисплея, анализа сбоев, нескольких подключений Bluetooth и разработки собственных драйверов. В обзорах тем объясняются архитектура и компромиссы, связанные с этими примерами.

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