Il gruppo di lavoro Rust Embedded, creato per sviluppare tecnologie che migliorano la qualità e la sicurezza delle applicazioni, dei firmware e dei driver per sistemi embedded, ha presentato il primo rilascio del framework embedded-hal, che fornisce un insieme di interfacce software per interagire con le periferiche comunemente utilizzate con i microcontrollori (ad esempio, sono forniti tipi per lavorare con GPIO, UART, SPI e I2C). I contributi del progetto sono scritti in linguaggio Rust e distribuiti sotto licenza Apache 2.0.
Il pacchetto è adatto per scrivere driver generali in linguaggio Rust per vari sensori, schermi, attuatori e adattatori di rete, non legati a modelli specifici di microcontrollori, ossia un driver creato sulla base di embedded_hal può essere utilizzato con qualsiasi microcontrollore per il quale è fornita un'interfaccia HAL nel pacchetto. Il pacchetto include anche un sistema di gestione degli errori incorporato e flessibile: per ogni tipo di errore è previsto un tipo di dato Error, che supporta strumenti per il debug e il monitoraggio delle cause degli errori.
Embedded-hal 1.0 è stato segnato come il primo rilascio stabile del progetto, utilizzabile per la creazione di driver funzionanti. Il lavoro di stabilizzazione dell'API è proseguito dal 2020. Oltre a embedded-hal, sono stati stabiliti anche rilasci stabili di pacchetti ausiliari come embedded-hal-async, contenenti componenti per la creazione di gestori asincroni, e embedded-hal-nb, con implementazione della polling model. Sono stati inoltre proposti i pacchetti: embedded-hal-bus, con strumenti per lavorare con i bus SPI e I2C, embedded-can con supporto per il bus CAN (Controller Area Network) e embedded-io con implementazione di tipi per l'input/output basati su byte, utilizzabili con UART.
Fonte: opennet.ru
