Ir para o conteúdo

Rust

O trabalho da OpenSiFli com Rust está no repositório OpenSiFli/sifli-rs, que reúne HAL, PAC, crates para tabelas Flash, exemplos e notas sobre gravação e depuração.

Os mantenedores descrevem o projeto como ainda em desenvolvimento e não pronto para produção. Considere Rust no SF32 uma via de exploração, a menos que sua equipe possa trabalhar próxima ao hardware e esteja preparada para contribuir com correções ao projeto upstream.

Para configurar a toolchain inicial, compilar o Blinky sem modificações e configurar o runner de gravação, consulte Primeiros passos com Rust. Use esta página para avaliar o suporte atual e decidir se vale avançar com Rust além dessa base.

Crates mencionadas pela OpenSiFli

Tabela: Crates mencionadas pela OpenSiFli
Crate Finalidade
sifli-hal Camada de abstração de hardware.
sifli-pac Crate de acesso a periféricos.
sifli-flash-table Suporte a tabelas Flash.

Quando Rust faz sentido

Rust pode ser uma boa escolha se você quiser:

  • Experimentar Rust para sistemas embarcados.
  • Aplicar tipagem forte ao código de firmware de baixo nível.
  • Evoluir em direção a futuros drivers no estilo embedded-hal.
  • Contribuir para o ecossistema Rust de SF32.

Por enquanto, use o SiFli-SDK para firmware de produção.

Pontos de controle de avaliação

Antes de iniciar a adaptação para um produto, confirme que a configuração de referência para os primeiros passos funciona na placa de destino. Em seguida, valide separadamente cada periférico, layout Flash, caminho de depuração e recurso de execução necessário. Registre, para cada resultado, o commit upstream, o target Rust, a configuração do Cargo, a revisão da placa e o procedimento de recuperação.

O repositório usa sifli-hal, sifli-pac, ferramentas para tabelas Flash e exemplos assíncronos no estilo Embassy. Portanto, o sucesso da aplicação também depende da interação entre esses componentes, não apenas de uma crate compilar. Ao investigar uma lacuna, mantenha o caso de reprodução o menor possível.

Checklist de riscos

  • A crate oferece suporte ao chip exato?
  • A HAL cobre o periférico necessário?
  • O layout Flash é compatível com a placa?
  • O fluxo de depuração está documentado para a sonda ou ferramenta utilizada?
  • É possível recuperar a mesma placa com o SiFli-SDK ou o sftool?
  • A equipe está preparada para contribuir com correções?

Quando é adequado / inadequado

Tabela: Cenários adequados e inadequados para Rust
Adequado Inadequado
Experimentos e exploração de drivers. Projetos com cronograma de produção que exigem suporte do fornecedor.
Equipes que já usam Rust embarcado. Produtos que precisam agora de stacks completos de Bluetooth, display e áudio.
Contribuir para a maturidade da HAL/PAC. Protótipos pontuais em que Arduino ou exemplos do SDK permitem avançar mais rápido.

Última atualização: