Apache Mynewt
   HOME

TheInfoList



OR:

Apache Mynewt is a modular real-time operating system for connected
Internet of things The Internet of things (IoT) describes physical objects (or groups of such objects) with sensors, processing ability, software and other technologies that connect and exchange data with other devices and systems over the Internet or other comm ...
(IoT) devices that must operate for long times under power, memory, and storage constraints. It is
free and open-source software Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
incubating under the
Apache Software Foundation The Apache Software Foundation (ASF) is an American nonprofit corporation (classified as a 501(c)(3) organization in the United States) to support a number of open source software projects. The ASF was formed from a group of developers of the A ...
, with
source code In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the wo ...
distributed under the Apache License 2.0, a permissive license that is conducive to commercial adoption of
open-source software Open-source software (OSS) is computer software that is released under a license in which the copyright holder grants users the rights to use, study, change, and distribute the software and its source code to anyone and for any purpose. Op ...
.


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 A microcontroller (MCU for ''microcontroller unit'', often also MC, UC, or μC) is a small computer on a single VLSI integrated circuit (IC) chip. A microcontroller contains one or more CPUs (processor cores) along with memory and programmable i ...
based
IoT The Internet of things (IoT) describes physical objects (or groups of such objects) with sensors, processing ability, software and other technologies that connect and exchange data with other devices and systems over the Internet or other com ...
devices easy. It is highly composable, to allow building
embedded system An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is ''embedded'' as ...
applications (e.g., locks, medical devices, industrial IoT) across different types of microcontrollers. The name ''Mynewt'' is wordplay on the English word ''
minute The minute is a unit of time usually equal to (the first sexagesimal fraction) of an hour, or 60 seconds. In the UTC time standard, a minute on rare occasions has 61 seconds, a consequence of leap seconds (there is a provision to insert a nega ...
'', 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 Bluetooth Low Energy (Bluetooth LE, colloquially BLE, formerly marketed as Bluetooth Smart) is a wireless personal area network technology designed and marketed by the Bluetooth Special Interest Group (Bluetooth SIG) aimed at novel applications in ...
4.2 stack. With the addition of BLE (supporting all Bluetooth 4.2 compliant security features except privacy) and various utilities such as the default file system, console, shell, logs, stats, etc., the image size is approximately 96 KB for the Nordic nRF51822 Bluetooth SoC. This size metric excludes the boot loader image.


Core features

The core operating system supports: /sup> * Preemptive multithreading * Tickless priority based scheduling * Programmable
timers A timer is a specialized type of clock used for measuring specific time intervals. Timers can be categorized into two main types. The word "timer" is usually reserved for devices that counts down from a specified time interval, while devices th ...
* System time * Semaphores * Mutexes * Event queues * Memory management (allocation):
dynamic Dynamics (from Greek δυναμικός ''dynamikos'' "powerful", from δύναμις ''dynamis'' "power") or dynamic may refer to: Physics and engineering * Dynamics (mechanics) ** Aerodynamics, the study of the motion of air ** Analytical dynam ...
(heap) and pool * Multi-stage software watchdog timer * Memory or data buffers, to hold packet data as it moves up and down the
networking Network, networking and networked may refer to: Science and technology * Network theory, the study of graphs as a representation of relations between discrete objects * Network science, an academic field that studies complex networks Mathematics ...
protocol stack Other features and utilities include: *
Hardware abstraction Hardware abstractions are sets of routines in software that provide programs with access to hardware resources through programming interfaces. The programming interface allows all devices in a particular class ''C'' of hardware devices to be acce ...
layer with support for CPU time, analog-to-digital converter (ADC), digital-to-analog converter (DAC), general-purpose input/output (GPIO), Inter-Integrated Circuit ( I2C),
pulse-width modulation Pulse-width modulation (PWM), or pulse-duration modulation (PDM), is a method of reducing the average power delivered by an electrical signal, by effectively chopping it up into discrete parts. The average value of voltage (and current) fed ...
(PWM), serial port, Serial Peripheral Interface Bus (SPI), universal asynchronous receiver/transmitter (UART). * Newtron
flash file system A flash file system is a file system designed for storing files on flash memory–based storage devices. While flash file systems are closely related to file systems in general, they are optimized for the nature and characteristics of flash ...
(nffs) with minimal RAM usage and reliability features * File system abstraction to allow client code to choose alternate
file system In computing, file system or filesystem (often abbreviated to fs) is a method and data structure that the operating system uses to control how data is stored and retrieved. Without a file system, data placed in a storage medium would be one larg ...
s * Console access and shell package * Secure boot loader and image organizer (manager) that includes image integrity verification using SHA-256 and optional
digital signature A digital signature is a mathematical scheme for verifying the authenticity of digital messages or documents. A valid digital signature, where the prerequisites are satisfied, gives a recipient very high confidence that the message was created b ...
verification of images before running them * Test utilities to build regression testing * Statistics and logs for all major packages * JavaScript Object Notation (
JSON JSON (JavaScript Object Notation, pronounced ; also ) is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and arrays (or other ser ...
) encoder and decoder libraries * Lua interpreter


Bluetooth low energy

The first network stack available in Mynewt is Bluetooth low energy and is called NimBLE. It complies with Bluetooth Core Specification 4.2.Bluetooth Core Specification 4.2
/ref> 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 use case requiring a large number of concurrent connections can similarly be configured, provided there is adequate RAM allocated. Example applications that demonstrate how to use available services are included in the package.


Supported boards

The
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
is designed for
cross-platform In computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several computing platforms. Some cross-platform software r ...
use in
embedded system An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is ''embedded'' as ...
s (devices) and microcontrollers. It includes board support packages for the following, :
nRF52832
Bluetooth SoC from Nordic Semiconductor
nRF51822
nRF51422 Bluetooth SoC from Nordic Semiconductor

with
STM32 STM32 is a family of 32-bit microcontroller integrated circuits by STMicroelectronics. The STM32 chips are grouped into related series that are based around the same 32-bit ARM architecture, ARM processor core, such as the ARM Cortex-M#Cortex ...
F3xx series Cortex-M4 from ST
STM32-E407
fo

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 A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
(CLI) based smart source package manager system for embedded systems development. Also, it allows composing builds with specified packages and compiler options, generating images and their digital signatures, and finally downloading and debugging the firmware on different targets.


See also

*
Embedded operating system An embedded operating system is an operating system for embedded computer systems. Embedded operating systems are computer systems designed to increase functionality and reliability for achieving a specific task. Resource efficiency comes at the ...
* Comparison of real-time operating systems


References


External links

*
Apache Mynewt Source Repository
{{Real-time operating systems Embedded operating systems Free software operating systems Free software Internet of things Real-time operating systems Upcoming software