Примеры¶
Начинайте с готовых примеров. Обычно разработка прошивки 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, целевую плату и конфигурацию.
| Цель разработки | Типовой пример 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 или запись дампа при сбое до оптимизации. | Проверка готовности изделия |
Как выбрать пример¶
Выбирайте в следующем порядке:
- Подберите плату.
- Подберите фреймворк.
- Подберите пример для самой сложной периферии.
- Подберите необходимое промежуточное ПО.
- Учтите ограничения по энергопотреблению и памяти.
Например, для продукта с Bluetooth-аудио лучше взять пример, близкий к аудио- и Bluetooth-функциям, а не простой hello_world, даже если последний легче понять.
Порядок адаптации¶
- Соберите и прошейте пример без изменений.
- Сохраните успешную команду сборки, имя платы, команду прошивки, последовательный порт и журнал.
- Внесите одно изменение для продукта.
- Повторно соберите и протестируйте.
- Сделайте commit или зафиксируйте изменение до добавления следующей подсистемы.
В первый час такой порядок медленнее, а после первой серьёзной ошибки — значительно быстрее.
Какие данные сохранять¶
Для каждого примера, который становится основой продукта, фиксируйте:
- Ветку SDK или версию пакета.
- Имя платы или FQBN.
- Обязательные параметры конфигурации.
- Требуемые выводы и периферию.
- Ожидаемый вывод последовательного порта.
- Известные ограничения.
- Объём используемой памяти, если он известен.
- Команду восстановления.
Правило выбора примера¶
Выберите пример, соответствующий наиболее ограниченному компоненту продукта:
- Для продуктов Bluetooth начните с примера ближайшего профиля.
- Для устройств с дисплеем начните с примера дисплейной системы и LVGL.
- Для устройств с питанием от аккумулятора начните с примера низкого энергопотребления.
- Для продуктов с OTA начните с процесса обновления и разметки разделов.
Затем добавляйте остальные подсистемы по одной.
Рекомендуемый порядок изучения¶
Если вы только начинаете работу с SDK, пройдите раздел Знакомство с периферией. Когда отдельная периферия заработает стабильно, переходите к разделу Объединение подсистем. Раздел Проверка готовности изделия пригодится для измерения энергопотребления, работы с OTA, запуска пользовательского дисплея, анализа сбоев, нескольких подключений Bluetooth и разработки собственных драйверов. В обзорах тем объясняются архитектура и компромиссы, связанные с этими примерами.
Последнее обновление: