SiFli-SDK¶
Это руководство поможет пройти путь от только что распакованной отладочной платы SF32 до запуска примера hello_world по UART с помощью SiFli-SDK — официального SDK для устройств SF32 на базе RT-Thread.
Даже если вы планируете использовать Arduino, Zephyr или MicroPython, сначала рекомендуется один раз пройти это руководство. Так вы проверите работу платы, кабеля, последовательного порта, процедуры прошивки и базового инструментария, прежде чем подключать другую платформу.
Что понадобится¶
Оборудование
- Отладочная плата SF32, например SF32LB52-DevKit-LCD, или другая плата из семейства SF32.
- Кабель USB Type-C с поддержкой передачи данных, подключённый к разъёму USB-to-UART на плате. Не используйте кабель только для зарядки или дополнительный USB-порт платы, предназначенный для другой функции.
- Компьютер под управлением Windows, macOS или Linux.
Программное обеспечение
- git
- Инструментарий C/C++, подготовленный с помощью
uv. Установщик SiFli-SDK автоматически загрузит компилятор, отладчик и среду Python. - Сам репозиторий SiFli-SDK.
Официальная документация
- Руководство по установке SiFli-SDK
- Список плат, поддерживаемых SiFli-SDK
- Репозиторий SiFli-SDK в OpenSiFli
- Опубликованные версии SiFli-SDK
Нужна IDE?
SiFli также выпускает расширение SiFli-SDK-CodeKit для VS Code. Оно помогает настроить SDK, собрать и прошить проект с помощью пошаговых команд. Если такой процесс вам удобнее, см. руководство SiFli CodeKit.
Установка инструментов¶
Чтобы получить воспроизводимую базовую конфигурацию, используйте опубликованный тег версии, а не main. На момент проверки последний опубликованный тег — v2.5.1; перед началом проверьте список официальных версий: возможно, появился более новый тег. В ветку release/v2.5 продолжают вносить изменения, поэтому её содержимое может меняться.
Установите uv — менеджер пакетов и виртуальных окружений, на котором основаны скрипты SiFli-SDK:
Клонируйте SDK:
mkdir -p ~/OpenSiFli && cd ~/OpenSiFli
git clone --recursive -b v2.5.1 https://github.com/OpenSiFli/SiFli-SDK
Запустите установщик, затем активируйте окружение SDK в текущей оболочке:
В SiFli-SDK используются подмодули Git
Архив, загруженный через функцию GitHub «Download ZIP», не содержит необходимые подмодули. Клонируйте репозиторий командой git clone --recursive. Если репозиторий уже клонирован без подмодулей, выполните git submodule update --init --recursive из корневого каталога SDK.
Работаете из материкового Китая?
Перед установкой задайте в оболочке значение 1 для SIFLI_SDK_MIRROR_CHINA: в macOS/Linux используйте export SIFLI_SDK_MIRROR_CHINA=1, а в PowerShell — $env:SIFLI_SDK_MIRROR_CHINA = "1". SDK также можно клонировать из зеркала Gitee, а не с GitHub. Подробности см. в руководстве по установке.
Скрипт install.sh или install.ps1 загружает подходящие версии компилятора, отладчика и зависимостей Python. Запускайте его повторно при смене версии SDK. Скрипт export.sh или export.ps1 активирует окружение SDK в текущем терминале; выполняйте его перед сборкой каждый раз, когда открываете новый терминал. В Windows запускайте .ps1-скрипты из PowerShell.
Выбор целевой платы¶
Значение параметра scons --board — это имя каталога платы в customer/boards. Выберите цель, соответствующую конфигурации памяти и дисплея на вашей плате: имена чувствительны к регистру.
Имена целей сборки для плат SiFli-SDK
| Отладочная плата | Точное имя цели scons --board |
|---|---|
| SF32LB52-DevKit-Core-3p3 | sf32lb52-core_e8r16sf32lb52-core_n16r16 |
| SF32LB52-DevKit-LCD | sf32lb52-lcd_52dsf32lb52-lcd_n16r8sf32lb52-lcd_a128r16 |
| SF32LB52-DevKit-Nano | sf32lb52-nano_n4sf32lb52-nano_n16r16sf32lb52-nano_a128r16 |
| Huangshan-Pi (SF32LB52-LCHSPI-ULP) | sf32lb52-lchspi-ulp |
| SF32LB56-DevKit-LCD | sf32lb56-lcd_a128r12n1sf32lb56-lcd_n16r12n1 |
| SF32LB58-DevKit-LCD | sf32lb58-lcd_a128r32n1_dsisf32lb58-lcd_a128r32n1_qspisf32lb58-lcd_n16r32n1_dpisf32lb58-lcd_n16r32n1_dsisf32lb58-lcd_n16r32n1_qspisf32lb58-lcd_n16r64n4 |
Для двухъядерной конфигурации платы отсутствие суффикса ядра означает сборку HCPU. При необходимости явно укажите _hcpu или добавьте _lcpu, чтобы собрать конфигурацию LCPU; например, scons --board=eh-lb551_lcpu. Если конфигурации вашей платы нет в этой таблице, сверьтесь с актуальным списком плат, поддерживаемых SiFli.
Сборка примера «Hello World»¶
После подключения окружения соберите пример RT-Thread hello_world для вашей платы:
Замените sf32lb52-lcd_n16r8 на имя вашей платы. Доступные имена см. в списке поддерживаемых плат. Параметр -j8 запускает 8 параллельных заданий сборки; при необходимости скорректируйте число с учётом возможностей компьютера. В команде примера суффикс ядра не указан, поэтому собирается HCPU, а бинарные файлы помещаются в каталог build_sf32lb52-lcd_n16r8_hcpu/. Если явно указать цель с суффиксом _lcpu, суффикс выходного каталога также будет _lcpu.
Нужны пользовательские настройки?
В каталоге проекта выполните sdk.py menuconfig --board=<board_name>, чтобы открыть интерактивное меню конфигурации. Дважды нажмите Esc, а затем при появлении запроса выберите сохранение конфигурации перед выходом.
Прошивка платы¶
Не отключая плату от USB, запустите скрипт загрузки, созданный в ходе сборки:
Когда программа запросит последовательный порт, укажите путь к устройству, который показывает операционная система. В macOS выбирайте /dev/cu.* (например, /dev/cu.usbserial-12345678), а не /dev/tty.*; в Linux укажите соответствующий путь, например /dev/ttyUSB0.
Tip
Если утилита не может перевести плату в режим загрузки по UART, сбросьте плату непосредственно перед началом передачи. Если проблема сохраняется, следуйте инструкции по прошивке для этой платы.
Проверка запуска¶
После завершения прошивки сбросьте плату или дождитесь её автоматического перезапуска. Откройте терминал последовательного порта и установите заданную для платы скорость передачи по умолчанию. В терминале должны появиться загрузочные сообщения и вывод примера hello_world по UART.
Проверка результата¶
Можно переходить дальше, если:
- Проект собирается без ошибок.
- Скрипт загрузки по UART завершается успешно.
- В консоли последовательного порта отображаются читаемые загрузочные сообщения.
- После сброса платы выводится сообщение примера
hello_world.
Что делать дальше¶
- Выбрать микросхему: сравните серии LB52, LB55, LB56 и LB58 в обзоре семейства SF32.
- Изучить другие примеры: помимо
hello_world, в SDK есть примеры для BLE, классического Bluetooth, графики LVGL, аудио и режимов энергосбережения. - Попробовать другую платформу: перейдите к руководствам по Arduino, Zephyr или MicroPython.
- Если возникла проблема: найдите решение типичных проблем с инструментарием, J-Link и отладкой в разделе часто задаваемых вопросов SiFli.
Зафиксируйте рабочую базовую конфигурацию¶
Чтобы настройку можно было повторить, запишите тег или ветку SDK, точное значение scons --board, ОС компьютера, последовательный порт и успешно использованный способ прошивки. При обновлении SDK или смене платы сверяйтесь с официальным списком поддерживаемых плат и опубликованными версиями.
Последнее обновление: