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
- Guía de instalación de SiFli-SDK
- Placas compatibles con SiFli-SDK
- Repositorio de SiFli-SDK en OpenSiFli
- Versiones publicadas de SiFli-SDK
¿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:
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:
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_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 |
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:
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:
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.
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_worldmuestra 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: