Embedded-hal, фреймворк для создания универсальных контроллеров на Rust

Феррис Раст

Феррис неофициальный талисман Rust

Недавно рабочая группа Ржавчина встроенная, создан для разработки технологий повышения качества и безопасности приложений, прошивок и драйверов для встраиваемых систем, представила первую версию встроенной платформы hal 1.0.

Embedded-хаОн позиционирует себя как рамку который служит основой создать экосистему драйверов, полностью независимых от платформыЭто означает, что драйверы можно повторно использовать на разных микроконтроллерах без значительных модификаций.

О встроенном хале

Эль Пакет подходит для написания универсальных драйверов на Rust для различных датчиков, дисплеев, накопителей и сетевых адаптеров которые не привязаны к конкретным моделям микроконтроллеров, то есть драйвер, созданный на основе Embedded_hal, может использоваться с любым микроконтроллером, для которого в пакете предусмотрен слой HAL.

Эль Пакет также предоставляет гибкую встроенную систему обработки ошибок- Для каждого типа ошибок существует свой тип ошибок, который поддерживает инструменты для отладки и отслеживания причин ошибок.

в основные задачи Embedded-hal выделяются следующие:

  • Никаких подробностей, специфичных для устройства: ни журнал, ни блоки журналов, т. е. в API не должны появляться специфичные для устройства значения.
  • Он должен быть универсальным внутри устройства и между устройствами. API для использования интерфейса должен быть одинаковым, независимо от используемой реализации.
  • По возможности его не следует привязывать к конкретной асинхронной модели.
  • Он должен быть минимальным и, следовательно, простым в реализации, но при этом легко компонуемым.
  • Служить основой для создания экосистемы платформонезависимых драйверов. Здесь контроллер означает, что он позволяет целевой платформе взаимодействовать с внешним устройством, таким как цифровой датчик или беспроводной приемопередатчик.
  • Методы свойств должны быть безошибочными, чтобы их можно было использовать в любой возможной ситуации.

Что нового в Embedded-hal 1.0?

Embedded-hal 1.0 представляет собой кульминацию усилий с 2020 года.чтобы гарантировать стабильность и надежность. Теперь, когда доступна версия 1.0, все включенные функции уровня аппаратной абстракции (HAL) считаются стабильными, что закладывает прочную основу для будущих улучшений и расширений.

Встроенный-Hal 1.0 Представлен как первая стабильная версия проекта. а вместе с ними также сформированы стабильные версии дополнительных пакетов, таких как Embedded-hal-async, облегчающий создание асинхронных драйверов, и Embedded-hal-nb, реализующий модель опроса состояний в режиме опроса.

Наряду с этими пакетами предлагаются дополнительные инструменты, такие как hal-bus, предназначенный для работы с шинами SPI и I2C, CAN с поддержкой шины CAN (сеть контроллеров) и IO, который обеспечивает реализацию типов для ориентированных на ввод/вывод данных. байт, идеально подходит для использования с UART и другими периферийными устройствами.

Помимо этого, также выделяется следующее:

Ориентируйтесь на водителей: В ответ на отзывы пользователей и меняющиеся требования в Embedded-hal 1.0 особое внимание уделяется разработке универсальных драйверов, упрощению API и устранению сложностей взаимодействия.

Асинхронная поддержка: Заметным дополнением является библиотека Embedded-hal-async, которая предлагает асинхронные версии признаков. Воспользовавшись поддержкой асинхронных функций Rust 1.75 в стабильной версии Rust, разработчики теперь могут использовать асинхронные функции, не прибегая к динамическому выделению памяти или динамической диспетчеризации. Это улучшение упрощает разработку и соответствует современным практикам Rust.

Совместное использование шины SPI: Функция SpiDevice обеспечивает поддержку совместного использования шины SPI между несколькими устройствами, каждое из которых отличается своим отдельным контактом CS. Это обеспечивает бесперебойную связь между контроллерами и несвязанными устройствами на одной шине, повышая гибкость и эффективность использования ресурсов.

Обработка ошибок: Универсальные драйверы выигрывают от расширенных возможностей обработки ошибок с требованием, чтобы драйверы реализовали признак «Ошибка», который позволяет проверять и классифицировать ошибки. Этот стандартизированный подход обеспечивает надежную обработку ошибок в различных реализациях HAL.

Интеграция встроенного ввода-вывода: Проект Embedded-Hal включает библиотеки Embedded-IO, которые предоставляют функции для байт-ориентированных потоков ввода-вывода. Благодаря переносу функций UART на встроенный ввод-вывод разработчики могут рассчитывать на унифицированный и упрощенный подход к последовательной связи.

Выпуск Embedded-Hal 1.0 знаменует собой значительный прогресс в экосистеме Rust. Напоследок тем, кому интересно узнать больше о разработках проекта, следует знать, что они распространяются под лицензией Apache 2.0.

источник: https://blog.rust-embedded.org


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.