Разработчик | Совместный проект под управлением Arm |
---|---|
Написано в | С , С++ |
Рабочее состояние | Текущий |
Исходная модель | С открытым исходным кодом |
Первоначальный выпуск | 21 сентября 2009 г. ( 2009-09-21 ) |
Репозиторий | github.com/ARMbed |
Маркетинговая цель | Микроконтроллеры , Интернет вещей , Носимые устройства |
Платформы | 32-битный ARM Cortex-M |
Лицензия | Лицензия Apache 2.0 |
Официальный сайт | mbed.com |
Mbed — это платформа разработки и операционная система для подключенных к Интернету устройств ( устройств Интернета вещей ) на базе 32-битных микроконтроллеров ARM Cortex-M . Проект был совместно разработан Arm и ее технологическими партнерами. [1] По состоянию на июль 2024 года Mbed больше не разрабатывается Arm активно. [2]
Полная версия представляет собой операционную систему реального времени (RTOS), в то время как устройства с ограниченными ресурсами могут использовать подмножество, не являющееся RTOS. [3]
Платформа предлагает среду разработки, которая включает:
Основной способ разработки приложений Mbed — Arm Online Ide «Keil Studio Cloud», представляющая собой онлайн-IDE, которая использует облачные сервисы для сборки и компиляции приложений mbed. Приложения можно разрабатывать и с помощью других сред разработки, таких как Keil μVision, IAR Embedded Workbench, Arduino IDE и Eclipse с инструментами GCC ARM Embedded.
Mbed OS предоставляет программную платформу Mbed C/C++ и инструменты для создания микропрограмм микроконтроллеров, работающих на устройствах IoT. Она состоит из основных библиотек, которые предоставляют периферийные драйверы микроконтроллеров, сетевые возможности, RTOS и среду выполнения, инструменты сборки и тестовые и отладочные скрипты. Эти соединения могут быть защищены совместимыми библиотеками SSL/TLS, такими как Mbed TLS или wolfSSL , которые поддерживают mbed-rtos.
База данных компонентов содержит библиотеки драйверов для компонентов и служб, которые можно подключить к микроконтроллерам для создания конечного продукта.
Mbed OS, RTOS , основана на Keil RTX5. [4] [5] [6]
Ряд | Статус | Первый выпуск | Последний релиз | Описание |
---|---|---|---|---|
Mbed 2 («mbedlib» или «mbed SDK») | Устарело, но все еще поддерживается Keil Studio Cloud | Февраль 2013 г. | р163 [7] (Фев 2019) | Первоначальная серия релизов Mbed. Изначально она работала на плате Mbed NXP LPC1768, но вскоре была добавлена поддержка других плат от ряда производителей. Она не содержала ОС реального времени и полагалась на библиотеки сообщества для многих общих функций, таких как сетевое взаимодействие и потоки. [8] |
Mbed ОС 3 | Заброшенный | 15.09 (Сентябрь 2015 г.) [9] | 16.03 [10] (март 2016 г.) | Mbed 3.0 представляет собой существенную переработку исходной кодовой базы Mbed с целью добавления функций, важных для функциональности Интернета вещей (IoT), таких как беспроводные сети и шифрование TLS. [11] [8] Однако он основывался на написании событийно-управляемых программ и не поддерживал традиционную многопоточность, что ограничивало его внедрение. Mbed 3.0 представила новую систему сборки под названием Yotta. Это позволило разбить Mbed на большое количество отдельных модулей, каждый из которых имел свой собственный репозиторий. [12] [11] Однако Yotta не использовалась Mbed после серии релизов Mbed 3.x. |
Mbed ОС 5.x | Устарело, но все еще поддерживается Keil Studio Cloud | 5.1.0 (Август 2016) [13] | 5.15.9 (Май 2022) [14] | Mbed OS 5 объединила функциональность исходной кодовой базы Mbed 2, проекта mbed-rtos и Mbed OS 3.0 в единую кодовую базу, которая может поддерживать широкий спектр вариантов использования: от базовой функциональности микроконтроллера до беспроводной связи и расширенных функций IoT. [8] Mbed OS 5 снова использовала новую систему сборки "Mbed CLI". Однако она вернулась к монолитной структуре репозитория, в которой все драйверы и функциональность первой стороны были интегрированы в единый репозиторий Git. |
Mbed ОС 6.x | Заброшенный [2] | 6.0.0 (Июнь 2020 г.) [15] | 6.17.0 (Фев 2023) [16] | Mbed OS 6 была более постепенным изменением по сравнению с Mbed OS 5. Она реорганизовала и очистила кодовую базу несколькими способами, такими как отказ от старых API и перераспределение структуры каталогов для более логичной группировки кода. [17] Она также сократила список поддерживаемых плат, сосредоточив усилия на меньшем количестве целевых устройств, с которыми у ARM были активные отношения с производителем. [15] Mbed OS 6 по-прежнему поддерживает систему сборки Mbed CLI, но в более поздних версиях также была добавлена поддержка новой системы сборки, "Mbed CLI 2". [18] Эта система сборки использует модифицированные скрипты CMake для компиляции Mbed с оболочкой Python поверх для взаимодействия пользователей. Для поддержки своего компилятора ARM Clang в этой системе сборки ARM предоставила порт CMake для ARM Clang. [19] 9 июля 2024 года было объявлено [2] , что платформа и ОС Mbed завершат свою работу в июле 2026 года... и Arm уже прекратила активное обслуживание и CI в кодовой базе ОС Mbed. Не стоит ожидать каких-либо исправлений или улучшений до июля 2026 года. После июля 2026 года кодовая база будет архивирована в GitHub. |
Существуют различные аппаратные демонстрационные платы для платформы Mbed, первой из которых является оригинальная плата микроконтроллера Mbed. Плата микроконтроллера Mbed (продается как "mbed NXP LPC1768") представляет собой демонстрационную плату на основе микроконтроллера NXP , который имеет ядро ARM Cortex M3 , работающее на частоте 96 МГц, с 512 КБ флэш-памяти , 32 КБ ОЗУ, а также несколько интерфейсов, включая Ethernet , USB Device, CAN , SPI , I2C и другие интерфейсы ввода-вывода . [20] [21] Микроконтроллер Mbed получил первую премию в ежегодной категории EDN Innovation Awards' Software/Embedded Tools в 2010 году. [22]
Были выпущены различные версии платы с микроконтроллерами NXP LPC2368 ( ARM7TDMI-S ), NXP LPC1768 ( Cortex-M3 ), NXP LPC11U24 ( Cortex-M0 ) [23] .
Комплект разработки оборудования Mbed (HDK) предназначен для OEM-производителей и предоставляет информацию для создания собственного оборудования для поддержки Mbed OS. Он состоит из встроенного программного обеспечения интерфейса и схем, которые можно использовать для простого создания плат разработки, модулей OEM и перепрограммируемых продуктов, пригодных для производства.
Проект разрабатывается Arm совместно с другими крупными технологическими компаниями и сообществом разработчиков Mbed. Разработка и вклад происходят на разных уровнях:
Mbed OS поддерживает и поддерживала ряд различных инструментов разработки.
Приложения для платформы Mbed можно разрабатывать с помощью Mbed online IDE , бесплатного онлайн-редактора кода и компилятора. На локальном ПК необходимо установить только веб-браузер , поскольку проекты компилируются в облаке, т. е. на удаленном сервере, с использованием компилятора ARMCC C/C++. Mbed IDE предоставляет частные рабочие пространства с возможностью импорта, экспорта и совместного использования кода с распределенным контролем версий Mercurial , а также может использоваться для генерации документации кода. [24]
Mbed Online Compiler не включал в себя никаких функций отладки и полагался на цикл разработки, в котором пользователи загружали свой скомпилированный код в виде файла .bin, а затем вручную копировали его на плату Mbed (которая отображается как USB-флеш-накопитель).
Mbed Online Compiler был закрыт 1 марта 2023 года и заменен на Keil Studio Cloud. [25]
Чтобы удовлетворить потребность в автономной разработке Mbed OS, ARM предоставила Mbed CLI. Это пакет Python, который позволяет создавать, импортировать и компилировать программы Mbed OS из командной строки. Он также интегрируется с внешними репозиториями Git и с репозиторием библиотек Mbed, предлагая команды для загрузки и обновления библиотек из удаленных источников. [26]
Внутри Mbed CLI состоит из двух различных кодовых баз. Пакет pip mbed-cli, предлагающий команду mbed, действует как фронтенд, который принимает команды от пользователя и способен загружать Mbed OS и библиотеки. Для компиляции Mbed и программного обеспечения с его помощью фронтенд mbed-cli вызывает скрипты инструмента сборки внутри репозитория mbed-os. Эти скрипты отвечают за определение правильных параметров компиляции и выполнение компилятора и компоновщика.
После многих лет разработки поддержка сложных скриптов инструмента сборки стала значительной обузой для разработчиков Mbed OS. Это заставило их заморозить код инструмента сборки и вместо этого работать над созданием Mbed CLI 2. [27]
Mbed Studio — это настольная IDE, разработанная специально для работы с Mbed OS. Впервые выпущенная в феврале 2019 года, Mbed Studio предлагала более полнофункциональный опыт редактирования, чем онлайн-компилятор, включая интеллектуальную функциональность автодополнения кода и поддержку отладки. Как и онлайн-компилятор, она содержит встроенную поддержку создания новых проектов Mbed и объявления зависимостей от библиотек из репозиториев Git и репозитория библиотек Mbed.
Для своего компилятора C/C++ Mbed Studio использует Arm Compiler 6, специально лицензированный ARM для включения в IDE. Для функциональности отладки Mbed Studio использует программное обеспечение отладочного моста pyOCD и может отлаживать только те устройства, которые поддерживает pyOCD. Сама IDE основана на Eclipse Theia и была разработана для легкой адаптации к работе в веб-браузере — проект, который позже появился как Keil Studio Cloud. [28] Mbed Studio изначально поддерживала хост-платформы Windows и Mac, а затем была портирована для работы на Ubuntu Linux с выпуском 1.0 в июне 2020 года. [29]
Подобно Mbed Online Compiler, Keil Studio Cloud позволяет разрабатывать приложения Mbed OS без установки каких-либо инструментов разработки на локальной машине. Однако он поддерживает множество дополнительных функций, таких как улучшенная интеллектуальная функциональность завершения кода и встроенный контроль версий с использованием Git. В отличие от Online Compiler, Keil Studio Cloud способен загружать и отлаживать поддерживаемые платы Mbed непосредственно из браузера с помощью функциональности WebUSB . Это позволяет действительно одним щелчком мыши собирать и отлаживать опыт, сопоставимый с тем, что предлагают настольные IDE. Однако эта функциональность не поддерживает все платы Mbed или отладочные зонды. [25]