Apache Mynewt es un sistema operativo modular en tiempo real para dispositivos conectados del Internet de las cosas (IoT) [ 2 ] que deben operar durante largos períodos de tiempo bajo restricciones de energía, memoria y almacenamiento. Es software libre y de código abierto que se encuentra en desarrollo bajo la Apache Software Foundation [ 3 ] , con código fuente distribuido bajo la Licencia Apache 2.0 , una licencia permisiva que facilita la adopción comercial del software de código abierto [ 4 ] .
Descripción general
Apache Mynewt es un sistema operativo en tiempo real con un amplio conjunto de bibliotecas diseñado para facilitar la creación de prototipos, el despliegue y la gestión de dispositivos IoT basados en microcontroladores de 32 bits . [ 5 ] Es altamente componible, lo que permite crear aplicaciones de sistemas embebidos (por ejemplo, cerraduras, dispositivos médicos, IoT industrial) en diferentes tipos de microcontroladores. El nombre Mynewt es un juego de palabras con el término inglés minute , que significa muy pequeño: el núcleo tiene un tamaño de tan solo 6 KB.
El sistema operativo está diseñado para la conectividad y viene con una implementación completa de la pila Bluetooth de bajo consumo 4.2. Con la adición de BLE (que admite todas las funciones de seguridad compatibles con Bluetooth 4.2, excepto la privacidad) y varias utilidades como el sistema de archivos predeterminado, la consola, el intérprete de comandos, los registros, las estadísticas, etc., el tamaño de la imagen es de aproximadamente 96 KB para el SoC Bluetooth Nordic nRF51822. [ 6 ] Esta métrica de tamaño no incluye la imagen del cargador de arranque .
Características principales
El sistema operativo principal admite: [3]
- Multihilo preventivo
- Programación sin temporizador basada en prioridades
- Temporizadores programables
- Hora del sistema
- Semáforos
- Mutex
- Colas de eventos
- Gestión de memoria (asignación): dinámica (montón) y pool
- Temporizador de vigilancia de software multietapa
- Memoria o búferes de datos , para almacenar los datos de los paquetes a medida que se mueven hacia arriba y hacia abajo en la pila de protocolos de red.
Otras características y utilidades incluyen:
- Capa de abstracción de hardware con soporte para tiempo de CPU , convertidor analógico-digital (ADC), convertidor digital-analógico (DAC), entrada/salida de propósito general (GPIO), circuito interintegrado ( I2C ), modulación por ancho de pulso (PWM), puerto serie , bus de interfaz periférica serie (SPI), receptor/transmisor asíncrono universal (UART).
- Sistema de archivos flash Newtron (nffs) con mínimo uso de RAM y características de confiabilidad.
- Abstracción del sistema de archivos para permitir que el código del cliente elija sistemas de archivos alternativos.
- Acceso a la consola y paquete de shell
- Cargador de arranque seguro y organizador (administrador) de imágenes que incluye verificación de integridad de la imagen mediante SHA-256 y verificación opcional de firma digital de las imágenes antes de ejecutarlas.
- Utilidades de prueba para crear pruebas de regresión
- Estadísticas y registros para todos los paquetes principales.
- Bibliotecas de codificación y decodificación de JSON (JavaScript Object Notation )
- Intérprete de Lua
Bluetooth de baja energía
La primera pila de red disponible en Mynewt es Bluetooth de baja energía [ 7 ] y se llama NimBLE. Cumple con la especificación principal de Bluetooth 5.0. [ 8 ]
NimBLE incluye tanto el host como el controlador. El acceso al código fuente del controlador permite una alta capacidad de configuración del rendimiento BLE. Por ejemplo, el rendimiento BLE se puede ajustar modificando los intervalos de conexión, el tamaño de los paquetes de datos, el tamaño de la cola de paquetes, etc. De forma similar, se puede configurar un caso de uso que requiera un gran número de conexiones simultáneas, siempre que se asigne suficiente RAM. El paquete incluye aplicaciones de ejemplo que demuestran cómo utilizar los servicios disponibles.
Placas compatibles
El sistema operativo está diseñado para su uso multiplataforma en sistemas embebidos (dispositivos) y microcontroladores. Incluye paquetes de soporte de placa para los siguientes, a partir de julio de 2023. : [ 9 ]
- nRF52 DK de Nordic Semiconductor (Cortex-M4)
- Plataforma de balizas con sensores RuuviTag (basada en Nordic nRF52832)
- nRF51 DK de Nordic Semiconductor (Cortex-M0)
- VBLUno51 del laboratorio VNG IoT (basado en el SoC Nordic nRF51822)
- VBLUno52 del laboratorio VNG IoT (basado en el SoC Nordic nRF52832, Cortex-M4)
- BLE Nano de RedBear (basado en el SoC Nordic nRF51822)
- BLE Nano2 y Blend2 de RedBear (basados en el SoC Nordic nRF52832)
- BMD-300-EVAL-ES de Rigado (Cortex-M4)
- BMD-200 de Rigado (Cortex-M0)
- Adafruit Feather nRF52 Pro
- STM32F4DISCOVERY de ST Micro (Cortex-M4)
- STM32-E407 de Olimex (Cortex-M4)
- Arduino Zero (Cortex-M0)
- Arduino Zero Pro (Cortex-M0)
- Arduino M0 Pro (Cortex-M0)
- Arduino MKR1000 (Cortex-M0)
- Arduino Primo NRF52 (Cortex-M4)
- NÚCLEO-F401RE (Corteza-M4)
- NÚCLEO-F767ZI (Corteza-M7)
- Kit de desarrollo para la serie STM32F7 (Cortex-M7)
- FRDM-K64F de NXP (Cortex-M4)
- BBC micro:bit (Nordic nrf51822; Cortex-M0)
- SiFive HiFive1 (Arquitectura del conjunto de instrucciones RISC-V)
- Módulo BLE NINA-B1 de u-blox (Cortex-M4)
- Pulsador 6LoWPAN de MikroElectronika (microcontrolador PIC32MX470)
- chipKIT Wi-FIRE (microcontrolador PIC32MZ)
- Módulo Creator Ci40 (CPU interAptiv MIPS dual)
- Placa EE-02 con chip Semtech Sx1276 de Telenor (Cortex-M4)
- DA1469x Pro DK de Dialog Semiconductor (Cortex-M33)
Gestión de paquetes
El proyecto incluye Newt Tool, un gestor de paquetes de código fuente inteligente basado en interfaz de línea de comandos (CLI) para el desarrollo de sistemas embebidos. Además, permite crear compilaciones con paquetes y opciones de compilador específicos, generar imágenes y sus firmas digitales, y finalmente descargar y depurar el firmware en diferentes plataformas.
Véase también
Referencias
- ↑ "Descargar - Apache Mynewt" . mynewt.apache.org . Apache Software Foundation . Consultado el 7 de octubre de 2023 .
- ↑ "Arduino y Runtime colaboran para introducir Apache Mynewt (en fase de incubación) en el ecosistema de Arduino" . globenewswire.com (Comunicado de prensa). 20 de mayo de 2016. Consultado el 24 de mayo de 2016 .
- ↑ "Estado de incubación de Mynewt – Incubadora Apache" . incubator.apache.org . Consultado el 24 de mayo de 2016 .
- ↑ "El sistema operativo en tiempo real Apache Mynewt aborda las limitaciones de energía, memoria y almacenamiento de IoT" . www.infoq.com . Consultado el 28 de junio de 2016 .
- ↑ "Open RTOS apunta a la red de cosas" . www.eetimes.com . Consultado el 24 de mayo de 2016 .
- ↑ "nRF51822" . Archivado del original el 17 de mayo de 2016. Consultado el 24 de mayo de 2016 .
- ↑ "Apache Mynewt encuentra un lugar en las últimas placas de desarrollo de Arduino Srl" . www.linuxtoday.com . Archivado del original el 28 de mayo de 2016. Consultado el 24 de mayo de 2016 .
- ↑
- ↑ "Obtener ayuda" . GitHub .
Enlaces externos
- Sitio web oficial
- Sistemas operativos integrados
- Sistemas operativos de software libre
- Internet de las cosas
- Sistemas operativos en tiempo real
- Software libre programado en C
- Software gratuito programado en Go.
- Software que utiliza la licencia Apache.