Exemplos¶
Comece pelos exemplos. Em geral, o firmware SF32 fica pronto mais rápido quando você adapta um exemplo funcional para a placa usada, em vez de criar cada subsistema do zero.
O melhor exemplo nem sempre é o menor. Escolha um que já inclua a parte mais complexa do produto: perfil Bluetooth, painel de display, rota de áudio, sistema de arquivos, OTA, USB, modo de baixo consumo ou acelerador de IA.
Áreas com exemplos¶
| Área | Comece por |
|---|---|
| Primeira execução | example/get-started/hello_world/rtt/project |
| Blink / GPIO | example/get-started/blink/rtt ou exemplos de GPIO para HAL e RT-Device. |
| Bluetooth | Exemplos de BLE, Bluetooth clássico, LE Audio, taxa de transferência de dados, beacon, OTA e perfis. Comece pelo mapa de tarefas dos exemplos do SDK Bluetooth. |
| Gráficos | Demos LVGL, integração com ferramentas de design, widgets, recursos comprimidos, animação/mídia e exemplos específicos para cada display. Comece pelo mapa de tarefas dos exemplos de LVGL do SDK. |
| Áudio | Reprodução, gravação, captura PDM, codec, Opus, MP3, mixagem e áudio USB quando houver suporte. Comece pelo mapa de tarefas dos exemplos de áudio do SDK. |
| Baixo consumo | Estados de gerenciamento de energia (PM), GPIO, processador, Bluetooth, display, interface do usuário e cenários de dispositivos vestíveis. Comece pelo mapa de tarefas dos exemplos de baixo consumo do SDK. |
| Armazenamento | Exemplos de sistema de arquivos, Flash, SD e partições. |
| USB | Exemplos CherryUSB de dispositivo e host. |
| IA | Exemplos de HAL NNACC e RT-Device. |
Pontos de partida representativos do SDK¶
Use esta tabela depois de escolher a área pertinente. Os caminhos são representativos e podem mudar entre versões do SDK; antes de compilar, confirme o SDK, a placa de destino e a configuração selecionados.
| Objetivo de desenvolvimento | Exemplo representativo do SDK | O que validar primeiro | Continue com |
|---|---|---|---|
| Entrada ou saída GPIO | example/hal/gpio, example/rt_device/gpio |
Multiplexação do pino, polaridade e comportamento das interrupções na placa real. | Primeiros passos com periféricos |
| Console e inspeção do sistema | example/system/finsh |
Console serial, logs e inspeção básica durante a execução. | Primeiros passos com periféricos |
| ADC, PWM ou RTC | example/hal/adc, example/rt_device/pwm, example/rt_device/rtc |
Configuração de pinos, clock e periféricos específica da placa. | Primeiros passos com periféricos |
| Sensor I2C | example/hal/i2c/master, example/rt_device/i2c/eeprom |
Conexões elétricas, endereçamento do barramento e confiabilidade de transferências repetidas. | Integração de subsistemas |
| LVGL e display local | example/multimedia/lvgl/lvgl_v8_examples |
Inicialização do painel, formato de pixel e um caminho de flush estável antes de criar telas complexas. | Visão geral de gráficos, Controlador de display |
| Serviço periférico BLE | example/ble/peripheral, example/ble/hrpc |
Anúncio BLE, conexão, uma característica GATT e comportamento de reconexão. | Visão geral do Bluetooth |
| Reprodução local de áudio | example/multimedia/audio/local_music, mp3_sd_player |
Caminho de áudio do codec e da placa, estabilidade do buffer e liberação de recursos após a reprodução. | Visão geral de áudio |
| Armazenamento em Flash | example/storage/littlefs/nor, example/storage/flashdb |
Montagem, leitura e gravação, e recuperação após reset ou quando o armazenamento fica cheio. | Integração de subsistemas |
| Comportamento de baixo consumo | example/pm/classical, example/pm/raise_wrist |
Corrente medida em estados identificados e funcionamento correto das fontes de despertar. | Visão geral do projeto de baixo consumo de energia |
| OTA por BLE | example/ble/peripheral_with_ota |
Recuperação após interrupção da atualização e reversão para a versão anterior no hardware de destino. | Validação de produto |
| Diagnóstico em tempo de execução | example/system/cpu_usage_profiler, example/system/coredump |
Um rastreamento reproduzível de CPU ou um relatório de falha antes de iniciar a otimização. | Validação de produto |
Como escolher um exemplo¶
Siga esta ordem:
- Escolha a placa correspondente.
- Escolha o framework correspondente.
- Escolha o exemplo que cobre o periférico mais complexo.
- Escolha o middleware necessário.
- Escolha o exemplo que atenda às restrições de energia ou de memória.
Por exemplo, um produto de áudio Bluetooth deve começar por um exemplo de áudio/Bluetooth próximo do caso de uso, e não por um hello_world simples, mesmo que este seja mais fácil de entender.
Fluxo de adaptação¶
- Compile e grave o exemplo sem modificações.
- Salve o comando de compilação que funcionou, o nome da placa, o comando de gravação, a porta serial e o log.
- Faça uma alteração do produto por vez.
- Compile novamente e teste.
- Faça commit ou registre a alteração antes de adicionar outro subsistema.
Esse fluxo consome mais tempo na primeira hora, mas poupa muito tempo quando ocorre o primeiro problema sério.
Evidências a manter¶
Para cada exemplo que se tornar a base de um produto, registre:
- Branch ou versão do pacote do SDK.
- Nome da placa ou FQBN.
- Opções de configuração necessárias.
- Pinos e periféricos necessários.
- Saída serial esperada.
- Limitações conhecidas.
- Uso de memória, se disponível.
- Comando de recuperação.
Critério para escolher exemplos¶
Escolha o exemplo que corresponda à parte do produto com mais restrições:
- Para produtos Bluetooth, comece pelo perfil mais próximo.
- Para produtos com display, comece pelo fluxo de display e LVGL.
- Para produtos alimentados por bateria, comece por um exemplo de baixo consumo.
- Para produtos com OTA, comece pelo fluxo de atualização e pelo layout das partições.
Depois, adicione os outros subsistemas um de cada vez.
Roteiro de aprendizado sugerido¶
Se você está começando a usar o SDK, comece pelos Primeiros passos com periféricos. Quando um periférico funcionar de forma estável, passe para a Integração de subsistemas. Use a Validação de produto para medir o consumo, trabalhar com OTA, fazer o bring-up de um display personalizado, analisar falhas, lidar com várias conexões Bluetooth e desenvolver drivers próprios. As visões gerais dos tópicos explicam a arquitetura e os trade-offs envolvidos nesses exemplos.
Última atualização: