Найти в Дзене

Куда перейти с Arduino? Вариант embox на STM32

#Переходимсардуино

Феномен успешности Arduino базируется на простоте: никто раньше не делал дешевую и простую плату, дополненную общедоступным программным обеспечением. Тут все звезды сошлись: развитие интернета, глобализация, популярность проектов с открытым исходным кодом.

Не принижая достоинств, Ардуино можно указать на ее недостатки:

  1. Простота, которая стала топорностью и сделала Ардуино вещью-в-себе
  2. Отсутствие внятной отладки, столь удобного инструмента
  3. Громоздкая структура библиотек, в хаосе которой иногда можно и запутаться

Ниже я приведу описание аналога Ардуино, который хорош именно структурной строгостью системы.

Хочу отметить, что все рассматривается с точки зрения установки на stm32f103

embox

Это конфигурируемая RTOS на базе Linux. Это операционная система минималистичного дизайна, которая способна запуститься даже на микроконтроллерах stm32f0. Ее структура и организация похожа на Linux, приложения, собранные для этой ОС, могут без изменений запуститься в Ubuntu, если написано с умом:)

Почему данная ОС может заинтересовать?

  • POSIX совместимость -- что вообще-то галочка для профессионалов, а не для краткого ознакомления.
  • В стартовом виде доступен терминал. Эта та вещь, которую лучше один раз самостоятельно попробовать, чем сто раз услышать. Ваш микроконтроллер будет ощущаться уже маленьким компьютером, а не маленькой безмолвной платкой. С помощью терминала можно запускать программы, управлять программами аналогично консольному терминалу Linux.
Приветственное окно embox
Приветственное окно embox
  • Доступны современные средства отладки через неплохой редактор Visual Studio Code. А это значит, что можно ткнуть в любое место вашего программного кода, и микроконтроллер послушно остановится, как только дойдет до этого набора команд. Эту остановку можно использовать как проверку алгоритма, так и для того, чтобы считать значения локальных и глобальных переменных.
Окно отладки
Окно отладки
  • Система сборки Mybuild. Функционально похожа на Make, Cmake. Представляет собой набор инструкций, какие файлы исходного кода и заголовков использовать, чтобы собрать конкретную прошивку. Это позволяет проворачивать различные трюки. Например, используя один и тот же набор файлов создавать прошивки для различных микроконтроллеров или программы для ОС: можно алгоритмы тестировать на ПК, а драйверы интерфейсы отдельно на МК, чем можно существенно сократить время разработки. Другой пример, создать два набор инструкций для рабочей версии программы и тестов. Еще пример, создать один драйвер UART, в котором менять код настройки регистров в зависимости от типа МК.
Инструмент Mybuild указывает настройки для сборки конкретного модуля и программный код, который нужно использовать для этого. Получается достаточно интересный подход
Инструмент Mybuild указывает настройки для сборки конкретного модуля и программный код, который нужно использовать для этого. Получается достаточно интересный подход

Встроенные драйверы и протоколы FAT, TCP и многие другие. Многие библиотеки Linux да и Arduino могут быть легко портированы.

  • Есть сообщество в Телеграмме, в котором обитают пользователи и разработчики системы, и у которых можно проконсультироваться по разным вопросам

Рассматривать недостатки нет смысла, так как они, в большинстве своем, лишь в отсутствии какой-либо функциональности, и их лучше будет представить в сравнении с другими ОС.

Небольшой видео с возможностями ОС из коробки