Le groupe de travail Rust Embedded, créé pour développer des technologies visant à améliorer la qualité et la sécurité des applications, des firmware et des pilotes pour systèmes embarqués, a présenté la première version du cadre embedded-hal, fournissant un ensemble d'interfaces logicielles pour interagir avec les périphériques couramment utilisés avec des microcontrôleurs (par exemple, des types sont fournis pour travailler avec GPIO, UART, SPI et I2C). Les développements du projet sont écrits en Rust et sont distribués sous la licence Apache 2.0.
Le paquet est adapté pour écrire des pilotes génériques en Rust pour divers capteurs, écrans, actionneurs et adaptateurs réseau, sans être liés à des modèles spécifiques de microcontrôleurs, c'est-à-dire qu'un pilote basé sur embedded-hal peut être utilisé avec n'importe quel microcontrôleur pour lequel un HAL est fourni dans le paquet. Le paquet offre également un système de gestion des erreurs intégré flexible — pour chaque type d'erreur, un type Error est prévu, soutenant des outils pour le débogage et le suivi des causes d'erreurs.
Embedded-hal 1.0 est marqué comme la première version stable du projet, pouvant être utilisée pour créer des pilotes fonctionnels. Le travail de stabilisation de l'API a commencé en 2020. En plus de embedded-hal, des versions stables de paquets auxiliaires ont été formées : embedded-hal-async avec des composants pour créer des gestionnaires asynchrones et embedded-hal-nb avec une mise en œuvre du modèle de sondage d'état en mode polling. Des paquets ont également été proposés : embedded-hal-bus avec des outils pour travailler avec les bus SPI et I2C, embedded-can avec support pour le bus CAN (Controller Area Network) et embedded-io avec la mise en œuvre de types pour l'entrée/sortie orientée octets, adaptée à une utilisation avec UART.
Source : opennet.ru
