Пакет подходит для написания на языке Rust универсальных драйверов для различных датчиков, экранов, приводов и сетевых адаптеров, не привязанных к конкретным моделям микроконтроллеров, т.е. созданный на базе embedded_hal драйвер можно использовать с любыми микроконтроллерами, для которых в пакете предоставляется HAL-прослойка. Пакетом также предоставляется гибкая встроенная система обработки ошибок — для каждого типа ошибок предусмотрено наличие типажа Error, поддерживающего средства для отладки и отслеживания причин появления ошибок.
Embedded-hal 1.0 помечен как первый стабильный выпуск проекта, который можно использовать для создания рабочих драйверов. Работа по стабилизации API продолжалась с 2020 года. Помимо embedded-hal также сформированы первый стабильные выпуски вспомогательных пакетов embedded-hal-async с компонентами для создания асинхронных обработчиков и embedded-hal-nb с реализацией модели опроса состояния в режиме полинга (polling). Также предложены пакеты: embedded-hal-bus с инструментами для работы с шинами SPI и I2C, embedded-can с поддержкой шины CAN (Controller Area Network) и embedded-io с реализацией типажей для байто-ориентированного ввода/вывода, пригодного для использования с UART.
Источник: http://www.opennet.ru/opennews/art.shtml?num=60435