O grupo de trabalho Rust Embedded, criado para desenvolver tecnologias que melhoram a qualidade e a segurança de aplicativos, firmware e drivers para sistemas embarcados, apresentou a primeira versão do framework embedded-hal, que oferece um conjunto de interfaces de programação para interação com periféricos tipicamente usados com microcontroladores (por exemplo, são fornecidos tipos para trabalhar com GPIO, UART, SPI e I2C). O progresso do projeto foi desenvolvido na linguagem Rust e é distribuído sob a licença Apache 2.0.
O pacote é adequado para a escrita de drivers universais na linguagem Rust para vários sensores, displays, atuadores e adaptores de rede, não vinculados a modelos específicos de microcontroladores, ou seja, um driver criado com base no embedded-hal pode ser usado com qualquer microcontrolador para o qual o pacote fornece uma camada HAL. O pacote também inclui um sistema de tratamento de erros flexível — para cada tipo de erro existe um tipo Error, que suporta ferramentas para depuração e rastreamento de causas de erros.
Embedded-hal 1.0 é marcado como a primeira versão estável do projeto, que pode ser usada para criar drivers operacionais. O trabalho para estabilizar a API continuou desde 2020. Além do embedded-hal, também foram lançadas versões estáveis de pacotes auxiliares embedded-hal-async, com componentes para criar manipuladores assíncronos e embedded-hal-nb, com implementação do modelo de sondagem de estado em modo polling. Também são propostos pacotes: embedded-hal-bus, com ferramentas para trabalhar com barramentos SPI e I2C, embedded-can, com suporte ao barramento CAN (Controller Area Network), e embedded-io, com implementação de tipos para entrada/saída orientada a bytes, adequada para uso com UART.
Fonte: opennet.ru
