Saltar a contenido

SiFli-SDK

Esta guía explica cómo pasar de una placa de desarrollo SF32 recién sacada de la caja a ejecutar el ejemplo hello_world por UART con SiFli-SDK, el SDK oficial basado en RT-Thread para dispositivos SF32.

Aunque tenga previsto usar Arduino, Zephyr o MicroPython, conviene completar esta guía una vez. Así podrá comprobar que la placa, el cable, el puerto serie, el proceso de grabación por UART y la cadena de herramientas básica funcionan antes de incorporar otro framework.

Qué necesitará

Hardware

  • Una placa de desarrollo SF32, como el SF32LB52-DevKit-LCD, u otra placa que identifique en la Familia SF32.
  • Un cable USB tipo C de datos conectado al puerto USB-to-UART de la placa; no utilice un cable solo de carga ni un puerto secundario de función USB.
  • Un ordenador con Windows, macOS o Linux.

Software

  • git
  • Una cadena de herramientas de C/C++ preparada con uv (el instalador de SiFli-SDK descarga el compilador, el depurador y el entorno de Python)
  • El propio repositorio de SiFli-SDK

Referencias oficiales

¿Prefiere un IDE?

SiFli también publica una extensión SiFli-SDK-CodeKit para VS Code que empaqueta la configuración, la compilación y el flujo de grabación del SDK en acciones guiadas. Consulte SiFli CodeKit si prefiere ese flujo de trabajo.

Instale la cadena de herramientas

Para partir de una base reproducible, utilice una etiqueta de versión publicada en lugar de main. En el momento de esta revisión, la etiqueta publicada más reciente es v2.5.1; consulte la lista oficial de versiones por si hubiera una más nueva. La rama release/v2.5 recibe actualizaciones de esa serie y puede cambiar con el tiempo.

Instale uv, el gestor de paquetes y entornos en el que se apoyan los scripts de SiFli-SDK:

curl -LsSf https://astral.sh/uv/install.sh | sh

Clone el SDK:

mkdir -p ~/OpenSiFli && cd ~/OpenSiFli
git clone --recursive -b v2.5.1 https://github.com/OpenSiFli/SiFli-SDK

Ejecute el instalador y luego cargue el entorno del SDK en su shell:

cd SiFli-SDK
./install.sh
. ./export.sh

Instale uv (PowerShell):

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Clone el SDK:

mkdir C:\OpenSiFli
cd C:\OpenSiFli
git clone --recursive -b v2.5.1 https://github.com/OpenSiFli/SiFli-SDK

Ejecute el instalador y luego cargue el entorno del SDK:

cd SiFli-SDK
.\install.ps1
.\export.ps1

SiFli-SDK contiene submódulos

La opción «Download ZIP» de GitHub no incluirá los submódulos necesarios. Utilice git clone --recursive. Si ya lo clonó sin submódulos, ejecute git submodule update --init --recursive desde la raíz del SDK.

¿Trabaja desde China continental?

Antes de instalar, configure SIFLI_SDK_MIRROR_CHINA con el valor 1 en la shell: utilice export SIFLI_SDK_MIRROR_CHINA=1 en macOS/Linux o $env:SIFLI_SDK_MIRROR_CHINA = "1" en PowerShell. También puede clonar desde el espejo de Gitee en lugar de GitHub. Consulte la guía de instalación para más detalles.

install.sh / install.ps1 descarga las versiones correspondientes del compilador y el depurador, además de las dependencias de Python. Vuelva a ejecutar el instalador cuando cambie la versión del SDK. export.sh / export.ps1 activa ese entorno en el terminal actual; ejecútelo cada vez que abra uno nuevo para compilar. En Windows, ejecute los scripts .ps1 desde PowerShell.

Elija el objetivo de placa

El valor que se pasa a scons --board es el nombre del directorio de la placa dentro de customer/boards. Elija el objetivo que coincida con la configuración de memoria y pantalla de su placa. Los nombres distinguen entre mayúsculas y minúsculas.

Objetivos de compilación de las placas de desarrollo de SiFli-SDK

Placa de desarrollo Objetivos exactos de scons --board
SF32LB52-DevKit-Core-3p3 sf32lb52-core_e8r16
sf32lb52-core_n16r16
SF32LB52-DevKit-LCD sf32lb52-lcd_52d
sf32lb52-lcd_n16r8
sf32lb52-lcd_a128r16
SF32LB52-DevKit-Nano sf32lb52-nano_n4
sf32lb52-nano_n16r16
sf32lb52-nano_a128r16
Huangshan-Pi (SF32LB52-LCHSPI-ULP) sf32lb52-lchspi-ulp
SF32LB56-DevKit-LCD sf32lb56-lcd_a128r12n1
sf32lb56-lcd_n16r12n1
SF32LB58-DevKit-LCD sf32lb58-lcd_a128r32n1_dsi
sf32lb58-lcd_a128r32n1_qspi
sf32lb58-lcd_n16r32n1_dpi
sf32lb58-lcd_n16r32n1_dsi
sf32lb58-lcd_n16r32n1_qspi
sf32lb58-lcd_n16r64n4

En una placa de doble núcleo, si omite el sufijo del núcleo se compila la configuración HCPU. Puede indicar _hcpu explícitamente o añadir _lcpu para compilar la configuración LCPU; por ejemplo, scons --board=eh-lb551_lcpu. Si su configuración no aparece en la tabla, consulte la lista oficial de placas compatibles, que contiene la información más reciente.

Compile el ejemplo «Hello World»

Con el entorno cargado, compile el ejemplo hello_world de RT-Thread para su placa:

cd example/get-started/hello_world/rtt/project
scons --board=sf32lb52-lcd_n16r8 -j8

Sustituya sf32lb52-lcd_n16r8 por el nombre de su placa. Consulte la lista de placas compatibles para ver los nombres disponibles. -j8 compila con 8 procesos en paralelo; ajuste ese número a su equipo. Como el comando del ejemplo omite el sufijo del núcleo, se compila HCPU y los binarios se guardan en build_sf32lb52-lcd_n16r8_hcpu/. Si indica explícitamente un destino con sufijo _lcpu, el directorio de salida también termina en _lcpu.

¿Necesita ajustes personalizados?

Ejecute sdk.py menuconfig --board=<board_name> desde el directorio del proyecto para abrir el menú de configuración interactivo. Pulse Esc dos veces y, cuando se le indique, elija guardar la configuración.

Grabe el firmware en la placa

Mantenga la placa conectada por USB y ejecute el script de grabación UART generado por la compilación:

./build_sf32lb52-lcd_n16r8_hcpu/uart_download.sh

Cuando se le pida el puerto serie, introduzca la ruta del dispositivo que muestra el sistema operativo. En macOS, utilice /dev/cu.* (por ejemplo, /dev/cu.usbserial-12345678), no /dev/tty.*; en Linux, utilice la ruta correspondiente, como /dev/ttyUSB0.

build_sf32lb52-lcd_n16r8_hcpu\uart_download.bat

Cuando se le pida please input serial port number, escriba solo el número de su puerto COM (por ejemplo, 19 para COM19) y pulse Intro.

Tip

Si la herramienta no consigue entrar en el modo de descarga UART, reinicie la placa justo antes de iniciar la transferencia. Si el problema persiste, siga las instrucciones de grabación específicas de la placa.

Véalo en funcionamiento

Una vez completada la grabación, reinicie la placa o deje que se reinicie automáticamente. Abra un terminal serie a la velocidad en baudios predeterminada de la placa. Debería ver la salida de arranque y la salida del ejemplo hello_world por UART.

Verifique que todo funciona

Puede continuar cuando se cumplan estas condiciones:

  • El proyecto compila sin errores.
  • El script de descarga por UART se completa.
  • La consola serie muestra una salida de arranque legible.
  • El ejemplo hello_world muestra su salida después del reinicio.

A dónde ir después

  • Elija su chip: compare las series LB52, LB55, LB56 y LB58 en la Familia SF32.
  • Explore más ejemplos: más allá de hello_world, el SDK incluye ejemplos de BLE, Bluetooth clásico, gráficos LVGL, audio y modos de bajo consumo.
  • ¿Prefiere otro framework? Continúe con Arduino, Zephyr o MicroPython.
  • ¿Necesita ayuda? Consulte las preguntas frecuentes de SiFli para resolver problemas habituales de la cadena de herramientas, J-Link y depuración.

Registre su configuración de referencia

Para poder repetir la configuración, anote la etiqueta o rama del SDK, el objetivo exacto de scons --board, el sistema operativo del equipo, el puerto serie y el procedimiento de descarga que funcionó con su placa. Al actualizar el SDK o cambiar de placa, vuelva a consultar la lista oficial de placas compatibles y las versiones publicadas.

Última actualización: