Mbed es una plataforma de desarrollo y un sistema operativo para dispositivos conectados a Internet ( dispositivos de Internet de las cosas ) basados 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 desarrollará 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 el IDE en línea de Arm "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 C/C++ de Mbed y las herramientas para crear firmware de microcontroladores que se ejecutan en dispositivos IoT. Consta de las bibliotecas principales que proporcionan los controladores periféricos del microcontrolador, la red, el sistema operativo en tiempo real (RTOS) y el entorno de ejecución, las herramientas de compilación y los 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 , se basa en Keil RTX5. [4] [5] [6]
Existen varias placas de demostración de hardware para la plataforma Mbed, siendo la primera la placa de 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 , que funciona 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 herramientas integradas/software 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 Mbed (HDK) está diseñado para fabricantes de equipos originales (OEM ) y proporciona información para crear hardware personalizado compatible con el sistema operativo Mbed. Consiste en un 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 está siendo desarrollado por Arm en colaboración con otras importantes empresas tecnológicas y la comunidad de desarrolladores de Mbed. El desarrollo y las contribuciones se realizan en diferentes niveles:
Mbed OS admite y ha admitido varias herramientas de desarrollo diferentes.
Las aplicaciones para la plataforma Mbed se pueden desarrollar utilizando el IDE en línea Mbed , un editor y compilador de código en línea gratuito. Solo se necesita instalar un navegador web en la PC local, ya que los proyectos se compilan en la nube, es decir, en un servidor remoto, utilizando el compilador ARMCC C/C++. El IDE Mbed proporciona espacios de trabajo privados con capacidad para importar, exportar y compartir código con el control de versiones Mercurial distribuido , y también se puede utilizar para la generación de documentación de código. [24]
Mbed Online Compiler no incluía ninguna funcionalidad de depuración y dependía de un ciclo de desarrollo en el que los usuarios descargaban su código compilado como un archivo .bin y luego lo copiaban manualmente a 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 offline de Mbed OS, ARM puso a disposición la CLI de Mbed. Se trata de 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]
En el interior, Mbed CLI consta de dos bases de código diferentes. El paquete pip mbed-cli, que ofrece el comando mbed, actúa como una interfaz que acepta comandos del usuario y es capaz de descargar Mbed OS y bibliotecas. 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 enlazador.
Después de años de desarrollo, el mantenimiento de los complejos scripts de la herramienta 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 en la creación de Mbed CLI 2. [27]
Mbed Studio es un IDE de escritorio diseñado específicamente para funcionar con el sistema operativo Mbed. 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 de código inteligente y soporte de depuración. Al igual que el compilador en línea, contiene soporte integrado para crear nuevos proyectos Mbed y declarar dependencias en bibliotecas de repositorios de Git y el repositorio de bibliotecas de Mbed.
Para su compilador C/C++, Mbed Studio utiliza Arm Compiler 6, especialmente autorizado por ARM para su inclusión en el IDE. Para la funcionalidad de depuración, Mbed Studio utiliza el software de puente de depuración pyOCD y solo puede depurar los dispositivos que admite pyOCD. El IDE en sí se basa 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 portado para ejecutarse en Ubuntu Linux con su lanzamiento 1.0 en junio de 2020. [29]
Al igual que Mbed Online Compiler, Keil Studio Cloud permite el desarrollo de aplicaciones Mbed OS sin necesidad de instalar ninguna herramienta de desarrollo en la máquina local. Sin embargo, admite muchas funciones adicionales, como la funcionalidad mejorada de finalización inteligente de código y el control de versiones integrado mediante Git. A diferencia de Online Compiler, Keil Studio Cloud es capaz de descargar y depurar placas Mbed compatibles directamente desde el navegador mediante la funcionalidad WebUSB . Esto permite una experiencia de compilación y depuración verdaderamente 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 las sondas de depuración. [25]