Робоча група Rust Embedded, створена для розробки технологій підвищення якості та безпеки додатків, прошивок та драйверів до вбудованих систем, представила перший випуск фреймворку embedded-hal, що надає набір програмних інтерфейсів для взаємодії з периферією, що зазвичай застосовується з мікроконтролерами (наприклад, надаються типажі для роботи з C). Напрацювання проекту написані мовою Rust та розповсюджуються під ліцензією Apache 2.0.
Пакет підходить для написання мовою 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.
Джерело: opennet.ru
