Ejemplos¶
Empiece por los ejemplos. Normalmente, el firmware SF32 se desarrolla más rápido adaptando un ejemplo funcional para una placa que creando todos los subsistemas desde cero.
El mejor ejemplo no siempre es el más pequeño. Elija uno que ya incluya la parte más compleja del producto: perfil Bluetooth, pantalla, ruta de audio, sistema de archivos, OTA, USB, modo de bajo consumo o acelerador de IA.
Áreas con ejemplos¶
| Área | Empezar por |
|---|---|
| Primera ejecución | example/get-started/hello_world/rtt/project |
| Parpadeo / GPIO | example/get-started/blink/rtt o ejemplos de GPIO para HAL y RT-Device. |
| Bluetooth | Ejemplos BLE, Bluetooth clásico, LE Audio, rendimiento, balizas, OTA y perfiles. Empiece por el mapa de tareas de Ejemplos de SDK de Bluetooth. |
| Gráficos | Demos LVGL, integración con herramientas de diseño, widgets, recursos comprimidos, animación/multimedia y ejemplos específicos de pantalla. Empiece por el mapa de tareas de Ejemplos LVGL del SDK. |
| Audio | Reproducción, grabación, captura PDM, códec, Opus, MP3, mezcla y audio USB cuando esté admitido. Empiece por el mapa de tareas de Ejemplos de audio del SDK. |
| Bajo consumo | Estados de PM, GPIO, procesador, Bluetooth, pantalla, interfaz de usuario y escenarios de dispositivos vestibles. Empiece por el mapa de tareas de Ejemplos de bajo consumo del SDK. |
| Almacenamiento | Ejemplos de sistema de archivos, Flash, SD y particiones. |
| USB | Ejemplos de dispositivo y host CherryUSB. |
| IA | Ejemplos de NNACC HAL y RT-Device. |
Puntos de partida representativos del SDK¶
Use esta tabla después de elegir el área correspondiente. Las rutas son orientativas y pueden cambiar entre versiones del SDK; antes de compilar, verifique el SDK, la placa de destino y la configuración seleccionados.
| Objetivo de desarrollo | Ejemplo representativo del SDK | Qué comprobar primero | Continuar con |
|---|---|---|---|
| Entrada o salida GPIO | example/hal/gpio, example/rt_device/gpio |
Multiplexación del pin, polaridad y comportamiento de interrupción en la placa real. | Tutoriales para principiantes |
| Consola e inspección del sistema | example/system/finsh |
Consola serie, registros e inspección básica durante la ejecución. | Tutoriales para principiantes |
| ADC, PWM o RTC | example/hal/adc, example/rt_device/pwm, example/rt_device/rtc |
Configuración específica de pines, reloj y periféricos de la placa. | Tutoriales para principiantes |
| Sensor I2C | example/hal/i2c/master, example/rt_device/i2c/eeprom |
Conexión eléctrica, dirección del bus y fiabilidad de transferencias repetidas. | Tutoriales intermedios |
| LVGL y pantalla del dispositivo | example/multimedia/lvgl/lvgl_v8_examples |
Inicialización del panel, formato de píxel y estabilidad de la ruta de actualización de pantalla (flush) antes de crear interfaces complejas. | Introducción a gráficos, Controlador de pantalla |
| Servicio de periférico BLE | example/ble/peripheral, example/ble/hrpc |
Anuncios (advertising), conexión, una característica GATT y comportamiento de reconexión. | Resumen de Bluetooth |
| Reproducción de audio local | example/multimedia/audio/local_music, mp3_sd_player |
Ruta de códec/placa, estabilidad del búfer y limpieza tras la reproducción. | Resumen del audio local |
| Almacenamiento en Flash | example/storage/littlefs/nor, example/storage/flashdb |
Montaje, lectura/escritura y recuperación tras un reinicio o cuando se llena el almacenamiento. | Tutoriales intermedios |
| Comportamiento de bajo consumo | example/pm/classical, example/pm/raise_wrist |
Corriente medida en estados definidos y funcionamiento correcto de las fuentes de activación. | Introducción al bajo consumo |
| OTA por BLE | example/ble/peripheral_with_ota |
Recuperación ante interrupciones de actualización y rollback en el hardware de destino. | Tutoriales avanzados |
| Diagnóstico en tiempo de ejecución | example/system/cpu_usage_profiler, example/system/coredump |
Obtener una traza de CPU reproducible o capturar un fallo antes de optimizar. | Tutoriales avanzados |
Cómo elegir un ejemplo¶
Siga este orden:
- Elija la placa correspondiente.
- Elija el framework correspondiente.
- Elija el periférico más complejo.
- Elija el middleware correspondiente.
- Tenga en cuenta las restricciones de alimentación o memoria.
Por ejemplo, un producto de audio Bluetooth debería partir de un ejemplo de audio/Bluetooth y no de un hello_world básico, aunque este último sea más fácil de entender.
Flujo de adaptación¶
- Compile y grabe el ejemplo sin modificar.
- Guarde el comando de compilación que funcionó, el nombre de la placa, el comando de grabación, el puerto serie y el registro.
- Realice un único cambio para el producto.
- Vuelva a compilar y a probar.
- Haga un commit o registre el cambio antes de añadir otro subsistema.
Este flujo es más lento durante la primera hora y mucho más rápido después del primer fallo difícil.
Evidencias que conviene conservar¶
Para cada ejemplo que se convierta en la base del producto, registre:
- Rama o versión del paquete del SDK.
- Nombre de la placa o FQBN.
- Opciones de configuración necesarias.
- Pines y periféricos requeridos.
- Salida serie esperada.
- Limitaciones conocidas.
- Huella de memoria, si está disponible.
- Comando de recuperación.
Criterio para elegir un ejemplo¶
Elija el ejemplo que coincida con la parte más restringida del producto:
- Para productos Bluetooth, parta del perfil más cercano.
- Para productos con pantalla, parta de la ruta de pantalla y LVGL.
- Para productos alimentados por batería, parta de un ejemplo de bajo consumo.
- Para productos OTA, parta del flujo de actualización y del diseño de particiones.
Después, añada los demás subsistemas uno a uno.
Itinerario de aprendizaje sugerido¶
Si es la primera vez que usa el SDK, empiece con los tutoriales para principiantes. Cuando un periférico funcione de manera estable, continúe con los tutoriales intermedios. Use los tutoriales avanzados para medir el consumo, trabajar con OTA, poner en marcha pantallas personalizadas, analizar fallos, gestionar varias conexiones Bluetooth y desarrollar drivers propios. Las introducciones a cada tema explican la arquitectura y los compromisos de diseño que hay detrás de esos ejemplos.
Última actualización: