El grupo de trabajo de Rust Embedded, creado para desarrollar tecnologías que mejoren la calidad y seguridad de aplicaciones, firmware y controladores para sistemas embebidos, presentó la primera versión del marco embedded-hal, que proporciona un conjunto de interfaces de programación para interactuar con la periferia, comúnmente utilizada con microcontroladores (por ejemplo, se proporcionan tipos para trabajar con GPIO, UART, SPI e I2C). Los desarrollos del proyecto están escritos en Rust y se distribuyen bajo la licencia Apache 2.0.
El paquete es adecuado para escribir controladores universales en Rust para varios sensores, pantallas, actuadores y adaptadores de red, que no están ligados a modelos específicos de microcontroladores, es decir, un controlador creado sobre la base de embedded_hal se puede utilizar con cualquier microcontrolador para el cual se proporcione una capa HAL en el paquete. El paquete también ofrece un sistema flexible de manejo de errores incorporado; para cada tipo de error, se prevé la existencia de un tipo de Error, que admite herramientas para depuración y seguimiento de las causas de los errores.
Embedded-hal 1.0 está marcado como el primer lanzamiento estable del proyecto que se puede utilizar para crear controladores operativos. El trabajo para estabilizar la API continuó desde 2020. Además de embedded-hal, también se han formado lanzamientos estables de paquetes auxiliares: embedded-hal-async con componentes para crear manejadores asíncronos y embedded-hal-nb con la implementación de un modelo de sondeo de estado en modo polling. También se han propuesto paquetes: embedded-hal-bus con herramientas para trabajar con buses SPI e I2C, embedded-can con soporte para el bus CAN (Controller Area Network) y embedded-io con la implementación de tipos para entrada/salida orientada a bytes, adecuada para su uso con UART.
Fuente: opennet.ru
