Мбед

Аппаратная платформа и операционная система
Операционная система
Мбед
РазработчикСовместный проект под управлением 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 OS: основная операционная система, предлагающая стандартизированные API и поддерживающая языки программирования C/C++.
  • Mbed Studio: IDE (интегрированная среда разработки), предоставляющая инструменты отладки и редакторы кода.
  • Mbed CLI: инструменты командной строки.

Разработка программного обеспечения

Приложения

Основной способ разработки приложений Mbed — Arm Online Ide «Keil Studio Cloud», представляющая собой онлайн-IDE, которая использует облачные сервисы для сборки и компиляции приложений mbed. Приложения можно разрабатывать и с помощью других сред разработки, таких как Keil μVision, IAR Embedded Workbench, Arduino IDE и Eclipse с инструментами GCC ARM Embedded.

ОС Mbed

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 Cloud5.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 NXP LPC1768

Существуют различные аппаратные демонстрационные платы для платформы 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] .

HDK

Комплект разработки оборудования Mbed (HDK) предназначен для OEM-производителей и предоставляет информацию для создания собственного оборудования для поддержки Mbed OS. Он состоит из встроенного программного обеспечения интерфейса и схем, которые можно использовать для простого создания плат разработки, модулей OEM и перепрограммируемых продуктов, пригодных для производства.

Разработка проекта

Проект разрабатывается Arm совместно с другими крупными технологическими компаниями и сообществом разработчиков Mbed. Разработка и вклад происходят на разных уровнях:

  • Основная платформа — основная программная платформа, разработанная основными участниками и компаниями-партнерами, управляемая и поддерживаемая командой Mbed. Эта основная платформа разработана в соответствии с лицензией Apache License 2.0 через соглашение участника . Она включает в себя все основные общие программные компоненты, предоставляемые платформой, а также порты HAL, которые позволяют Mbed прозрачно работать на микроконтроллерах разных производителей, и порты инструментальных цепочек, которые позволяют разрабатывать с использованием различных встроенных инструментальных цепочек.
  • Component Database – Компоненты библиотеки, разработанные компаниями и более широким сообществом, для поддержки периферийных компонентов, датчиков, радио, протоколов и API облачных сервисов, необходимых для создания конечных устройств. Они предоставляются в соответствии с Apache License 2.0 (рекомендуется) или другими лицензиями, выбранными создателями, и поддерживаются этими отдельными компаниями и членами сообщества разработчиков

Инструменты разработки

Mbed OS поддерживает и поддерживала ряд различных инструментов разработки.

Mbed Online Compiler (устарел с 2022 г.)

Приложения для платформы 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-интерфейс командной строки

Чтобы удовлетворить потребность в автономной разработке 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

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]

Облако студии Keil

Подобно Mbed Online Compiler, Keil Studio Cloud позволяет разрабатывать приложения Mbed OS без установки каких-либо инструментов разработки на локальной машине. Однако он поддерживает множество дополнительных функций, таких как улучшенная интеллектуальная функциональность завершения кода и встроенный контроль версий с использованием Git. В отличие от Online Compiler, Keil Studio Cloud способен загружать и отлаживать поддерживаемые платы Mbed непосредственно из браузера с помощью функциональности WebUSB . Это позволяет действительно одним щелчком мыши собирать и отлаживать опыт, сопоставимый с тем, что предлагают настольные IDE. Однако эта функциональность не поддерживает все платы Mbed или отладочные зонды. [25]

Ссылки

  1. ^ "Arm Keil Studio Cloud User Guide". Служба документации Arm . Получено 2023-01-09 .
  2. ^ abc "Важное обновление Mbed" . Получено 2024-07-16 .
  3. ^ "Введение - Введение в Mbed OS 6 | Документация Mbed OS 6". os.mbed.com . Получено 2024-03-15 .
  4. ^ "Главная страница". arm-software.github.io . Получено 2021-04-05 .
  5. ^ "Keil RTX5". www2.keil.com . Получено 2021-04-05 .
  6. ^ "Архитектура - Введение в Mbed OS 6 | Документация Mbed OS 6". os.mbed.com . Получено 2021-04-05 .
  7. ^ "mbed-dev - исходные коды библиотеки mbed. Заменяет mbed-src. | Mbed". os.mbed.com . Получено 2023-08-08 .
  8. ^ abc "Представляем mbed OS 5 | Mbed". os.mbed.com . Получено 2023-08-08 .
  9. ^ "mbed OS 15.09 | mbed". 2016-06-10. Архивировано из оригинала 2016-06-10 . Получено 2024-07-01 .
  10. ^ "Releases | mbed". 2016-06-10. Архивировано из оригинала 2016-06-10 . Получено 2023-08-08 .
  11. ^ ab "Объявляем о наших планах относительно mbed v3.0 | Mbed". os.mbed.com . Получено 2023-08-08 .
  12. ^ ARM Mbed OS 3, Arm Mbed, 2018-09-24 , получено 2023-08-08
  13. ^ "Выпуск mbed-os-5.1.0 · ARMmbed/mbed-os". GitHub . Получено 2024-07-01 .
  14. ^ "Выпуск mbed-os-5.15.9 · ARMmbed/mbed-os". GitHub . Получено 2023-08-08 .
  15. ^ ab "Arm Mbed OS 6.0 выпущена сегодня | Mbed". os.mbed.com . Получено 2023-08-08 .
  16. ^ "Выпуск mbed-os-6.17.0 · ARMmbed/mbed-os". GitHub . Получено 2023-08-08 .
  17. ^ "Новая структура каталогов Mbed OS | Mbed". os.mbed.com . Получено 2023-08-08 .
  18. ^ "Представляем новые инструменты Mbed | Mbed". os.mbed.com . Получено 2023-08-08 .
  19. ^ "mbed-os/tools/cmake/README.md в mbed-os-6.15.0 · ARMmbed/mbed-os". GitHub . Получено 2023-08-08 .
  20. ^ mbed LPC1768 | Mbed.com
  21. ^ "Обзор на devmonkey.edn.com". Архивировано из оригинала 2018-04-01 . Получено 2014-12-13 .
  22. ^ Пресс-релиз ARM
  23. ^ Анонс mbed Cortex M0 LPC11U24
  24. ^ "Компилятор mbed - Справочник | Mbed". os.mbed.com . Получено 2023-08-08 .
  25. ^ ab "Введение в Keil Studio Cloud и прекращение поддержки Mbed Online Compiler | Mbed". os.mbed.com . Получено 08.08.2023 .
  26. ^ "Mbed CLI 1 - Инструменты сборки | Документация Mbed OS 6". os.mbed.com . Получено 2024-07-01 .
  27. ^ "Представляем новые инструменты Mbed | Mbed". os.mbed.com . Получено 2024-07-01 .
  28. ^ "Mbed Studio Public Beta | Mbed". os.mbed.com . Получено 2024-07-01 .
  29. ^ "Mbed Studio 1.0 выпущена | Mbed". os.mbed.com . Получено 2024-07-01 .
  • Официальный сайт
Взято с "https://en.wikipedia.org/w/index.php?title=Mbed&oldid=1247316608"