SiFli-SDK¶
Este guia orienta você desde uma placa de desenvolvimento SF32 recém-desembalada até a execução do exemplo hello_world via UART com o SiFli-SDK, o SDK oficial baseado em RT-Thread para dispositivos SF32.
Mesmo que pretenda usar Arduino, Zephyr ou MicroPython, vale a pena seguir este guia uma vez. Assim, você confirma que a placa, o cabo, a porta serial, o processo de gravação e a cadeia de ferramentas básica estão funcionando antes de adicionar outro framework.
O que você vai precisar¶
Hardware
- Uma placa de desenvolvimento SF32, como a SF32LB52-DevKit-LCD, ou outra placa identificada na família SF32.
- Um cabo USB Type-C de dados conectado à porta USB-to-UART da placa; não use um cabo exclusivo para carregamento nem uma porta secundária de função USB.
- Um computador com Windows, macOS ou Linux.
Software
- git
- Uma cadeia de ferramentas C/C++ configurada por meio do
uv(o instalador do SiFli-SDK baixa o compilador, o depurador e o ambiente Python) - O próprio repositório SiFli-SDK
Referências oficiais
- Guia de instalação do SiFli-SDK
- Placas compatíveis com o SiFli-SDK
- Repositório SiFli-SDK do OpenSiFli
- Versões publicadas do SiFli-SDK
Prefere usar uma IDE?
A SiFli também publica a extensão SiFli-SDK-CodeKit para VS Code, que reúne a configuração do SDK, a compilação e a gravação do firmware em etapas guiadas. Se preferir esse fluxo, consulte SiFli CodeKit.
Instale a cadeia de ferramentas¶
Para ter uma base reproduzível, use uma tag de versão publicada em vez de main. Na data desta revisão, a tag publicada mais recente é v2.5.1; consulte a lista oficial de versões antes de começar para verificar se há uma mais nova. A branch release/v2.5 recebe atualizações dessa série e pode mudar com o tempo.
Instale o uv, o gerenciador de pacotes e ambientes usado pelos scripts do SiFli-SDK:
Clone o SDK:
mkdir -p ~/OpenSiFli && cd ~/OpenSiFli
git clone --recursive -b v2.5.1 https://github.com/OpenSiFli/SiFli-SDK
Execute o instalador e, em seguida, carregue o ambiente do SDK no shell atual:
O SiFli-SDK inclui submódulos
A opção "Download ZIP" do GitHub não inclui os submódulos necessários. Use git clone --recursive. Se você já clonou o repositório sem os submódulos, execute git submodule update --init --recursive na raiz do SDK.
Você está trabalhando na China continental?
Antes da instalação, defina SIFLI_SDK_MIRROR_CHINA como 1 no shell: use export SIFLI_SDK_MIRROR_CHINA=1 no macOS/Linux ou $env:SIFLI_SDK_MIRROR_CHINA = "1" no PowerShell. Você também pode clonar o SDK pelo espelho do Gitee em vez do GitHub. Consulte o guia de instalação para mais informações.
install.sh / install.ps1 baixa as versões correspondentes do compilador e do depurador, além das dependências Python. Execute o instalador novamente quando a versão do SDK mudar. export.sh / export.ps1 ativa esse ambiente no terminal atual; execute o script sempre que abrir um novo terminal para compilar. No Windows, execute os scripts .ps1 no PowerShell.
Escolha o alvo da placa¶
O valor passado a scons --board é o nome do diretório da placa dentro de customer/boards. Escolha o alvo correspondente às configurações de memória e display da sua placa. Os nomes abaixo diferenciam maiúsculas de minúsculas.
Alvos de compilação para as placas de desenvolvimento do SiFli-SDK
| Placa de desenvolvimento | Alvos exatos 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 |
Em placas com dois núcleos, omitir o sufixo do núcleo seleciona a configuração HCPU. Quando necessário, especifique _hcpu; para compilar a configuração LCPU, acrescente _lcpu, como em scons --board=eh-lb551_lcpu. Se a configuração da sua placa não estiver na tabela, consulte a lista de placas compatíveis da SiFli, que é a referência mais atualizada.
Compile o exemplo "Hello World"¶
Com o ambiente carregado, compile o exemplo hello_world do RT-Thread para sua placa:
Substitua sf32lb52-lcd_n16r8 pelo nome da sua placa. Consulte a lista de placas compatíveis para ver os nomes disponíveis. -j8 compila com 8 tarefas em paralelo; ajuste esse número conforme o seu computador. Como o comando do exemplo omite o sufixo do núcleo, ele compila o HCPU e grava os binários em build_sf32lb52-lcd_n16r8_hcpu/. Se você especificar um destino com o sufixo _lcpu, o diretório de saída também terminará em _lcpu.
Precisa de configurações personalizadas?
No diretório do projeto, execute sdk.py menuconfig --board=<board_name> para abrir o menu interativo de configuração. Pressione Esc duas vezes e, quando solicitado, escolha salvar a configuração antes de sair.
Grave o firmware na placa¶
Mantenha a placa conectada por USB e execute o script de gravação gerado durante a compilação:
Quando o programa solicitar a porta serial, informe o caminho do dispositivo exibido pelo sistema operacional. No macOS, use /dev/cu.* (por exemplo, /dev/cu.usbserial-12345678), e não /dev/tty.*; no Linux, use o caminho correspondente, como /dev/ttyUSB0.
Tip
Se a ferramenta não entrar no modo de download UART, reinicie a placa imediatamente antes de iniciar a transferência. Se o problema persistir, siga as instruções de gravação específicas da placa.
Veja o programa em execução¶
Quando a gravação terminar, reinicie a placa ou aguarde a reinicialização automática. Abra um terminal serial usando a baud rate padrão da placa. Você deverá ver a saída de inicialização e a saída do exemplo hello_world pela UART.
Verifique o resultado¶
Você pode prosseguir quando:
- O projeto compilar sem erros.
- O script de download por UART for concluído.
- O console serial exibir uma saída de inicialização legível.
- O exemplo
hello_worldimprimir sua saída após a reinicialização.
Próximos passos¶
- Escolha seu chip: compare as séries LB52, LB55, LB56 e LB58 na visão geral da família SF32.
- Explore outros exemplos: além de
hello_world, o SDK inclui exemplos de BLE, Bluetooth clássico, gráficos com LVGL, áudio e modos de baixo consumo. - Prefere outro framework? Continue com Arduino, Zephyr ou MicroPython.
- Precisa de ajuda? Consulte as perguntas frequentes da SiFli para solucionar problemas comuns com a cadeia de ferramentas, J-Link e depuração.
Registre a configuração de referência¶
Para repetir a configuração, registre a tag ou branch do SDK, o target exato de scons --board, o sistema operacional do computador, a porta serial e o procedimento de download que funcionou com a sua placa. Ao atualizar o SDK ou trocar de placa, consulte novamente a lista oficial de placas compatíveis e as versões publicadas.
Última atualização: