Mbed es una plataforma de desarrollo y un sistema operativo para dispositivos conectados a Internet ( dispositivos de Internet de las cosas ) basado en microcontroladores ARM Cortex-M de 32 bits . El proyecto fue desarrollado en colaboración por Arm y sus socios tecnológicos. [1] A partir de julio de 2024, Arm ya no desarrolla activamente Mbed. [2]
La versión completa es un sistema operativo en tiempo real (RTOS), mientras que los dispositivos con recursos más limitados pueden optar por utilizar un subconjunto que no sea RTOS. [3]
La plataforma ofrece un entorno de desarrollo que incluye:
La forma principal de desarrollar aplicaciones Mbed es con Arm Online Ide "Keil Studio Cloud", que es un ide en línea que utiliza servicios en la nube para crear y compilar aplicaciones mbed. Las aplicaciones también se pueden desarrollar con otros entornos de desarrollo como Keil μVision, IAR Embedded Workbench, Arduino IDE y Eclipse con herramientas GCC ARM Embedded.
Mbed OS proporciona la plataforma de software Mbed C/C++ y herramientas para crear firmware de microcontrolador que se ejecuta en dispositivos IoT. Consta de bibliotecas centrales que proporcionan controladores periféricos del microcontrolador, redes, RTOS y entorno de ejecución, herramientas de compilación y scripts de prueba y depuración. Estas conexiones se pueden proteger mediante bibliotecas SSL/TLS compatibles , como Mbed TLS o wolfSSL , que admiten mbed-rtos.
Una base de datos de componentes proporciona bibliotecas de controladores para componentes y servicios que se pueden conectar a los microcontroladores para construir un producto final.
Mbed OS, el RTOS , está basado en Keil RTX5. [4] [5] [6]
Hay varias placas de demostración de hardware para la plataforma Mbed, siendo la primera la placa del microcontrolador Mbed original. La placa de microcontrolador Mbed (comercializada como "mbed NXP LPC1768") es una placa de demostración basada en un microcontrolador NXP , que tiene un núcleo ARM Cortex M3 , funcionando a 96 MHz, con 512 KB de flash , 32 KB de RAM, así como Varias interfaces que incluyen Ethernet , dispositivo USB , CAN , SPI , I2C y otras E/S . [20] [21] El microcontrolador Mbed recibió el primer premio en la categoría de software/herramientas integradas de los premios anuales EDN Innovation Awards en 2010. [22]
Se lanzaron varias versiones de la placa, con microcontroladores NXP LPC2368 ( ARM7TDMI-S ), NXP LPC1768 ( Cortex-M3 ), NXP LPC11U24 ( Cortex-M0 ) [23] .
El kit de desarrollo de hardware (HDK) de Mbed está diseñado para fabricantes de equipos originales y proporciona información para crear hardware personalizado que admita el sistema operativo Mbed. Consiste en firmware de interfaz y esquemas que se pueden utilizar para crear fácilmente placas de desarrollo, módulos OEM y productos reprogramables adecuados para la producción.
El proyecto es desarrollado por Arm junto con otras importantes empresas de tecnología y la comunidad de desarrolladores de Mbed. El desarrollo y las contribuciones ocurren en diferentes niveles:
Mbed OS admite y ha respaldado varias herramientas de desarrollo diferentes.
Las aplicaciones para la plataforma Mbed se podrían desarrollar utilizando el IDE en línea de Mbed , un compilador y editor de código en línea gratuito. Sólo es necesario instalar un navegador web en el PC local, ya que los proyectos se compilaron en la nube, es decir, en un servidor remoto, utilizando el compilador ARMCC C/C++. El IDE de Mbed proporcionó espacios de trabajo privados con la capacidad de importar, exportar y compartir código con control de versiones distribuido de Mercurial , y también podría usarse para la generación de documentación de código. [24]
Mbed Online Compiler no incluía ninguna funcionalidad de depuración y se basaba en un ciclo de desarrollo en el que los usuarios descargaban su código compilado como un archivo .bin y luego lo copiaban manualmente en una placa Mbed (que aparece como una unidad flash USB).
Mbed Online Compiler se cerró el 1 de marzo de 2023 y fue reemplazado por Keil Studio Cloud. [25]
Para satisfacer la necesidad de desarrollo fuera de línea de Mbed OS, ARM puso a disposición Mbed CLI. Este es un paquete de Python que permite crear, importar y compilar programas de Mbed OS desde la línea de comandos. También se integra con repositorios externos de Git y con el repositorio de bibliotecas de Mbed, ofreciendo comandos para descargar y actualizar bibliotecas desde fuentes remotas. [26]
Internamente, Mbed CLI consta de dos bases de código diferentes. El paquete mbed-cli pip, que ofrece el comando mbed, actúa como una interfaz que acepta comandos del usuario y es capaz de descargar el sistema operativo y las bibliotecas de Mbed. Para compilar Mbed y el software que lo utiliza, la interfaz mbed-cli llama a los scripts de la herramienta de compilación dentro del repositorio mbed-os. Estos scripts son responsables de determinar las opciones de compilación correctas y ejecutar el compilador y el vinculador.
Después de años de desarrollo, el mantenimiento de los complejos scripts de las herramientas de compilación se había convertido en una carga importante para los desarrolladores de Mbed OS. Esto los llevó a congelar el código de la herramienta de compilación y trabajar para crear Mbed CLI 2. [27]
Mbed Studio es un IDE de escritorio diseñado específicamente para funcionar con Mbed OS. Lanzado por primera vez en febrero de 2019, Mbed Studio ofrecía una experiencia de edición con más funciones que el compilador en línea, incluida la funcionalidad de finalización inteligente de código y soporte de depuración. Al igual que el compilador en línea, contiene soporte integrado para crear nuevos proyectos de Mbed y declarar dependencias en bibliotecas de los repositorios de Git y el repositorio de bibliotecas de Mbed.
Para su compilador C/C++, Mbed Studio utiliza Arm Compiler 6, con licencia especial de ARM para su inclusión en el IDE. Para la funcionalidad de depuración, Mbed Studio utiliza el software puente de depuración pyOCD y solo puede depurar los dispositivos compatibles con pyOCD. El IDE en sí está basado en Eclipse Theia y fue diseñado para adaptarse fácilmente para ejecutarse en un navegador web, un proyecto que luego surgió como Keil Studio Cloud. [28] Mbed Studio inicialmente admitía plataformas host Windows y Mac, y luego fue adaptado para ejecutarse en Ubuntu Linux con su versión 1.0 en junio de 2020. [29]
Similar a Mbed Online Compiler, Keil Studio Cloud permite el desarrollo de aplicaciones Mbed OS sin instalar ninguna herramienta de desarrollo en la máquina local. Sin embargo, admite muchas funciones adicionales, como una funcionalidad mejorada de finalización de código inteligente y control de versiones integrado mediante Git. A diferencia del compilador en línea, Keil Studio Cloud es capaz de descargar y depurar placas Mbed compatibles directamente desde el navegador mediante la funcionalidad WebUSB . Esto permite una verdadera experiencia de compilación y depuración con un solo clic comparable a la que ofrecen los IDE de escritorio. Sin embargo, esta funcionalidad no es compatible con todas las placas Mbed ni con todas las sondas de depuración. [25]