Работна група Rust Embedded, основана за разработване на технологии за повишаване на качеството и безопасността на приложения, фърмуер и драйвери за вградени системи, представи първото издание на фреймворка embedded-hal, който предоставя набор от програмни интерфейси за взаимодействие с периферни устройства, обикновено използвани с микроконтролери (например, предоставят се типажи за работа с GPIO, UART, SPI и I2C). Разработките на проекта са написани на езика Rust и се разпространяват под лицензия Apache 2.0.
Пакетът е подходящ за писане на универсални драйвери на езика Rust за различни сензори, дисплеи, задвижвачи и мрежови адаптери, независимо от конкретните модели на микроконтролерите, т.е. драйвер, създаден на базата на embedded_hal, може да се използва с всякакви микроконтролери, за които в пакета е предоставена HAL-прослойка. Пакетът предоставя също и гъвкава вградена система за обработка на грешки - за всеки тип грешки е предвидено наличието на типаж Error, който поддържа средства за отстраняване на грешки и проследяване на причините за възникване на грешки.
Embedded-hal 1.0 е обявен за първото стабилно издание на проекта, което може да се използва за създаване на работещи драйвери. Работата по стабилизирането на API продължи от 2020 година. В допълнение към embedded-hal, също така са формулирани стабилни издания на помощни пакети embedded-hal-async с компоненти за създаване на асинхронни обработчици и embedded-hal-nb с реализация на модела за запитване на състоянието в режим на полинг. Също така са предложени пакети: embedded-hal-bus с инструменти за работа с шини SPI и I2C, embedded-can с поддръжка на шина CAN (Controller Area Network) и embedded-io с реализирани типажи за байт-ориентиран вход/изход, подходящи за използване с UART.
Източник: opennet.ru
