#Переходимсардуино
Феномен успешности Arduino базируется на простоте: никто раньше не делал дешевую и простую плату, дополненную общедоступным программным обеспечением. Тут все звезды сошлись: развитие интернета, глобализация, популярность проектов с открытым исходным кодом.
Не принижая достоинств, Ардуино можно указать на ее недостатки:
- Простота, которая стала топорностью и сделала Ардуино вещью-в-себе
- Отсутствие внятной отладки, столь удобного инструмента
- Громоздкая структура библиотек, в хаосе которой иногда можно и запутаться
Ниже я приведу описание аналога Ардуино, который хорош именно структурной строгостью системы.
Хочу отметить, что все рассматривается с точки зрения установки на stm32f103
embox
Это конфигурируемая RTOS на базе Linux. Это операционная система минималистичного дизайна, которая способна запуститься даже на микроконтроллерах stm32f0. Ее структура и организация похожа на Linux, приложения, собранные для этой ОС, могут без изменений запуститься в Ubuntu, если написано с умом:)
Почему данная ОС может заинтересовать?
- POSIX совместимость -- что вообще-то галочка для профессионалов, а не для краткого ознакомления.
- В стартовом виде доступен терминал. Эта та вещь, которую лучше один раз самостоятельно попробовать, чем сто раз услышать. Ваш микроконтроллер будет ощущаться уже маленьким компьютером, а не маленькой безмолвной платкой. С помощью терминала можно запускать программы, управлять программами аналогично консольному терминалу Linux.
- Доступны современные средства отладки через неплохой редактор Visual Studio Code. А это значит, что можно ткнуть в любое место вашего программного кода, и микроконтроллер послушно остановится, как только дойдет до этого набора команд. Эту остановку можно использовать как проверку алгоритма, так и для того, чтобы считать значения локальных и глобальных переменных.
- Система сборки Mybuild. Функционально похожа на Make, Cmake. Представляет собой набор инструкций, какие файлы исходного кода и заголовков использовать, чтобы собрать конкретную прошивку. Это позволяет проворачивать различные трюки. Например, используя один и тот же набор файлов создавать прошивки для различных микроконтроллеров или программы для ОС: можно алгоритмы тестировать на ПК, а драйверы интерфейсы отдельно на МК, чем можно существенно сократить время разработки. Другой пример, создать два набор инструкций для рабочей версии программы и тестов. Еще пример, создать один драйвер UART, в котором менять код настройки регистров в зависимости от типа МК.
Встроенные драйверы и протоколы FAT, TCP и многие другие. Многие библиотеки Linux да и Arduino могут быть легко портированы.
- Есть сообщество в Телеграмме, в котором обитают пользователи и разработчики системы, и у которых можно проконсультироваться по разным вопросам
Рассматривать недостатки нет смысла, так как они, в большинстве своем, лишь в отсутствии какой-либо функциональности, и их лучше будет представить в сравнении с другими ОС.
Небольшой видео с возможностями ОС из коробки