Mynewt OS is a modular real-time operating system for connected Internet of things (IoT) [1] devices that must operate for long times under power, memory, and storage constraints. It is free and open source software incubating under the Apache Software Foundation , [2] with source code distributed under the Apache License 2.0 , a permissive license that is conducive to commercial adoption of open-source software . [3]

Overview

Apache Mynewt is a real-time operating system with a rich set of libraries Intended to make prototyping, Deploying, and Managing 32-bit microcontroller based IoT devices easy. [4] It is highly composable, to allow building embedded system applications (eg, locks, medical devices, industrial IoT) across different types of microcontrollers. The name Mynewt is wordplay on the English word min , meaning very small: the kernel is only 6 KB in size.

The OS is designed for connectivity, and comes with a full implementation of the Bluetooth low energy 4.2 stack. With the addition of BLE (supporting all Bluetooth 4.2 compliant security features and privacy) and various utilities such as the default file system, console, shell, logs, stats, etc., the KB for the Nordic nRF51822 Bluetooth SoC . [5] This size metric excludes the boot loader image.

Core features

The core operating system supports: [3]

  • Preemptive multithreading
  • Tickless priority based scheduling
  • Programmable timers
  • System time
  • semaphores
  • mutexes
  • Event queues
  • Memory management (allocation): dynamic (heap) and pool
  • Multi-stage software watchdog timer
  • Memory or data buffers , to hold buffer data as it moves up and down the networking protocol stack

Other features and utilities include:

  • Hardware abstraction layer with carrier for CPU time , analog-to-digital converter (ADC), digital-to-analog converter (DAC), general-purpose input / output (GPIO), Inter-Integrated Circuit ( I²C ), pulse-width Modulation(PWM), serial port , serial peripheral interface bus (SPI), universal asynchronous receiver / transmitter (UART).
  • Newtron flash file system (nffs) for minimal RAM usage and reliability
  • File system abstraction to allow client to choose alternate file systems
  • Console access and shell package
  • Secure boot loader and image organizer that includes the option to verify digital signatures of images before running them
  • Test utilities to build regression testing
  • Statistics and logs for all major packages
  • JavaScript Object Notation ( JSON ) encoder and decoder libraries
  • Lua interpreter

Bluetooth low energy

The first network stack available in Mynewt is Bluetooth low energy [6] and is called NimBLE. It complies with Bluetooth Core Specification 4.2. [7]

NimBLE includes both the host and controller components. Access to the controller source code makes the BLE performance highly configurable. For example, the BLE throughput can be adjusted by changing the connection intervals, data packet size, packet queue size etc. A RAM allocated. RAM allocated. RAM allocated. Example applications that are included in the package.

Supported boards

The operating system is designed for cross-platform use in embedded systems and microcontrollers. It includes support for the following, as of March 2017 :

  • NRF52832 Bluetooth SoC from Nordic Semiconductor
  • NRF51822 / nRF51422 Bluetooth SoC from Nordic Semiconductor
  • STM32F3DISCOVERY with STM32 F3xx series Cortex-M4 from ST
  • STM32-E407 for STM32F407ZGT6 Cortex M4 from ST
  • Arduino Zero and Zero Pro
  • Arduino M0 Pro with ATSAMD21G18 Cortex M0
  • Arduino 101 , Bluetooth controller only
  • Arduino Primo , Bluetooth controller and host

Package management

The project includes the Newt Tool which is a command-line interface (CLI) based on the smart source package . Also, it allows compiling options, generating images and their digital signatures, and finally downloading and debugging the firmware on different targets.

See also

  • Free and open source software portal

External links

  • Official website , Apache
  • Apache Mynewt source code mirror

References

  1. Jump up^ “Arduino and Runtime Collaborate to Introduce Apache Mynewt (incubating) to Arduino Ecosystem” . Globenewswire.com . Retrieved 2016-05-24 .
  2. Jump up^ “Mynewt Incubation Status – Apache Incubator” . Incubator.apache.org . Retrieved 2016-05-24 .
  3. Jump up^ “Apache Mynewt RTOS Addresses IoT Power, Memory, Storage Constraints” . Www.infoq.com . Retrieved 2016-06-28 .
  4. Jump up^ “Open RTOS Targets Net of Things” . Www.eetimes.com . Retrieved 2016-05-24 .
  5. Jump up^ nRF51822
  6. Jump up^ “Apache Mynewt finds a home on Arduino Srl’s latest SBCs” . Www.linuxtoday.com . Retrieved 2016-05-24 .
  7. Jump up^ Bluetooth Core Specification 4.2

Leave a Reply

Your email address will not be published. Required fields are marked *