Nucleus RTOS: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
mNo edit summary
mNo edit summary
Line 27: Line 27:
== Supported Platforms ==
== Supported Platforms ==


Nucleus RTOS supports a long list of embedded platforms including the most common [[ARMv7]] Cortex A, R and M devices . Recent releases include support for [[ARMv8]] 64bit devices. A complete list of supported devices is available at the official website<ref>{{Cite web|url=https://www.mentor.com/embedded-software/nucleus/processor-support|title=Nucleus RTOS Supported Processors|website=www.mentor.com|language=en|access-date=2017-08-22}}</ref> includes 32 bit MCUs and MPUs, configurable devices and 32bit and 64bit multi-core devices.
Nucleus RTOS supports a long list of embedded processors including leading [[ARMv7]] Cortex A, R and M devices . Recent releases include support for [[ARMv8]] 64bit devices. A complete list of supported devices is available at the official website<ref>{{Cite web|url=https://www.mentor.com/embedded-software/nucleus/processor-support|title=Nucleus RTOS Supported Processors|website=www.mentor.com|language=en|access-date=2017-08-22}}</ref> includes 32 bit MCUs and MPUs, configurable devices and 32bit and 64bit multi-core devices.


== History ==
== History ==

Revision as of 17:36, 24 August 2017

Nucleus RTOS
DeveloperMentor Graphics Corp. A Siemens Business
Written inC
OS familyReal-time operating systems
Working stateCurrent
Source modelClosed source
Latest release3.x / May 15, 2017 (2017-05-15) version 2017.02
Marketing targetembedded systems and IoT
Available inC
PlatformsARM, NXP, MIPS, TI, PowerPC, Altera Nios II, Xilinx MicroBlaze, Renasas SuperH, Infineon, Atmel AT91SAM and others [1]
Kernel typeReal-time kernel Monolithic kernel with hybrid support
LicenseProprietary
Official websiteNucleus RTOS

Nucleus RTOS is a real-time operating system (RTOS) offered by the Embedded Software Division of Mentor Graphics a Siemens Business supporting a wide range of 32 and 64bit embedded platforms. Nucleus RTOS was first released in 1993 and to date is estimated to be deployed in over 4 billion devices worldwide.[2] The Nucleus RTOS is designed for real-time embedded systems for use in medical, industrial, consumer, aerospace, and IoT applications. The latest version of Nucleus RTOS is v3.x which includes new features such as Power Management, Process Model, 64 bit support, Safety Certification, and support for complex heterogeneous multicore SOCs.

Nucleus is the industry’s first RTOS with an integrated Power Management Framework that facilitates user access to the rich low power features in today’s modern SOCs in order to develop devices that meet low power requirements.  The Power Management Framework incorporates power aware device drivers with a device manager to manage all facets of power state changes through single API calls to control the power states for individual devices and/or the system. APIs are available for dynamic changes to frequency or voltage, and to place the device is sleep or deep sleep modes.

Nucleus Process Model adds space domain partitioning for task and module isolation on SOCs with either a Memory Management Unit (MMU) or Memory Protection Unit (MPU), such as those based on ARMv7/8 Cortex-A/R/M cores.

Supported Platforms

Nucleus RTOS supports a long list of embedded processors including leading ARMv7 Cortex A, R and M devices . Recent releases include support for ARMv8 64bit devices. A complete list of supported devices is available at the official website[3] includes 32 bit MCUs and MPUs, configurable devices and 32bit and 64bit multi-core devices.

History

Nucleus 1.x was first released in 1993 by Accelerated technology as Nucleus PLUS. Nucleus PLUS soon became one of the most commonly used RTOS’s in the embedded market. Following its early success in the embedded industry ATI added support for networking, graphics, and file systems which accelerated adoption.  

Mentor Graphics acquired Accelerated technology in March 2002 which was soon followed by the second generation of Nucleus RTOS. Nucleus 2.x was released in 2003 improving the portability of the Nucleus RTOS across different architectures and tool-sets. New components like IPv6, Flash file system and USB 2.0 were added to supported middle-wares. Mentor replaced the legacy Codelab debugger with EDGE development tools which included compiler tools, debugger, simulator and profiler.

Mentor Graphics introduced the 3rd generation of Nucleus RTOS in 2010. Nucleus 3.x was targeted for both high-end MPUs, MCUs, DSPs, and FPGAs. For devices with limited memory resources, Nucleus RTOS was designed to scale down to a memory footprint as small as <10 KBs for both code and data.

Nucleus 3.x introduced support for symmetric multiprocessing (SMP) and asymmetric multiprocessing (AMP) both unsupervised uAMP and supervised sAMP support using Mentor Embedded Hypervisor. Other additions in Nucleus 3.x are:

  • Integrated power management support for both kernel and middle-ware components. Nucleus power management includes support for DVFS, tick suppression and sleep modes including hibernation.
  • Process Model for memory partitioning to support dynamic loading and unloading of application modules. Loadable processes are supported on both high end MPUs and low end MCUs with or without hardware memory management support.
  • Wireless Support
  • IoT protocols
  • Safety Certification for Aerospace, medical, industrial and automotive
  • Support for ARM Trustzone
  • Mentor embedded multi-core framework for IPC and processor life cycle management for AMP designs (both supervised sAMP and unsupervised uAMP)
  • Run-time tracing support with host side analysis tools

In addition to the  new features in version 3.x Nucleus moved from an ala carte business model to a single unified package.

Mentor acquired CodeSourcery in Dec 2010 to replace the EDGE development tools with the Sourcery CodeBench. Sourcery CodeBench comprises compilation tool-chain, debugger and trace analysis tools. The compiler tool-chain is based on GNU tool-chain while the debugger and IDE are based on Eclipse. Sourcery CodeBench supports ARM, IA32, MIPS and PPC architectures with built-in workflows and OS awareness for Nucleus RTOS and Mentor Embedded Linux.

Nucleus 3.x introduced a unified build and configuration system with which the Kernel is configured through a single file and builds as a single library. Like menuconfig in Linux, a UI based configuration tool integrated with CodeBench provides the user with graphically selectable components to customize the kernel at build time. The Nucleus configuration system allows for user customization to integrate new tool-chains, architecture support and build properties.

Major Components

Nucleus RTOS components can be divided into two main categories of run-time and tools. Run-time component includes

  1. Kernel
  2. Services
  3. Connectivity
  4. File System
  5. Networking
  6. IoT Framework
  7. Wireless
  8. Security
  9. UI & Graphics

Kernel

  • Real time kernel with priority based pre-emptive scheduling
  • Monolithic based design
  • Support for dynamic linking using loadable modules
  • C++, POSIX and Micro ITRON interfaces
  • SMP/AMP(both supervised and unsupervised)
  • SMP support and run-time control for bound computation domain and affinities to processor cores for tasks and interrupts
  • Support for 64bit architectures
  • Scale-able to fit memory constrained devices
  • Built-in power management framework
  • Shipped in source code

 Services

  • Run-level initialization and registry
  • POSIX (Kernel, Networking and File System)
  • Shell and Tracing
  • Debug Agent
  • C++
  • Power Management Services

Connectivity

Nucleus supports the ability to connect to other devices through commonly known methods such as USB, Bluetooth, WiFi and Ethernet.  In addition, due to its characteristic of residing in embedded devices in industrial and commercial applications, it also supports connections such as PCIe and CAN.  A condensed list of connectivity options includes:

File System

Unlike Windows and Unix-like operating systems, Nucleus does not require a file system for its function.  However for complex applications requiring local storage and files, Nucleus can support a wide variety of file systems including FAT, SAFE (fault tolerant), and LWEXT.

Multiple simultaneous file systems

  • File Allocation Table (FAT)
  • SAFE (high reliability power fail safe)
  • LWEXT
  • Install-able third-party file systems

Multiple media support

  • CD-ROM
  • Hard drive
  • RAM disk
  • NOR and NAND flash
  • USB drive
  • SD MMC

Nucleus provides support for different file systems and storage media though a virtual file system Application Programming Interface (API) that allows access to the supported file systems and storage devices using the same functions calls regardless of the underlying storage format. 

Networking

The Nucleus Networking stack is a dual IPv4 and IPv6 stack that supports over 60 networking protocols. Nucleus networking stack supports POSIX and provides an easy to use socket based application interface. A brief list of the supported protocols include

Security

Nucleus supports a wide variety of encryption options for secure communications to protect data at rest or in transit.  Nucleus ships with OpenSSL and an OpenSSL like package "CyaSSL" that is a fraction of the size of OpenSSL for designs requiring encryption but limited by memory capacity. Security Protocols to protect data in Transit include IPsec/IKE, SSH/SSL/TLS/DTLS. Encryption includes DES, 3DES, AES, SHA-256. Public key algorithms include RSA. Support includes X.509, RADIUS and 802.1X.

Wireless

A number of WiFi modules from different chip-makers like QCA, Broadcom, TI and CSR are supported


UI Graphics

Nucleus 3.x supports OpenGL and leading 3rd party UI libraries. Nucleus supports the Qt UI framework which has been optimized for code size and integrated into CodeBench for debugging and tracing. Other UIs supported include Embedded Wizard and Socionext CGI Studio.

IoT

Recent releases of Nucleus include support for HTTPS, CoAP, Mqtt and 6LowPAN.

Nucleus has also announced support for Microsoft Azure cloud computing framework. 

Industrial

Nucleus has been integrated with 3rd party industrial stacks from industry leaders. Industrial stack support includes OPC-UA host and client and EtherNET/IP from softing and EtherCAT from KoenigPa.

Multi-core

Nucleus supports asymmetric multiprocessing (AMP) mode and symmetric multiprocessing (SMP) mode for leading 32 and 64 bit heterogeneous multicore SoCs.  Nucleus is also capable of running as a GOS with Mentor Embedded Hypervisor.

When operating in AMP mode, Nucleus RTOS can coexist with other instances of Nucleus, Linux and/or bare metal applications distributed on the other processors.  In this mode, each processor is running independently and behaves as a separate system within the SoC.  Mentor Embedded Multicore Framework provides interprocess communication between operating systems on the various cores, and processor life cycle management. SMP operation entails having a instantiation of Nucleus RTOS manage multiple cores simultaneously.  Nucleus can distribute its operations across all cores on a multi-core device, or any subset of cores. For this purpose Nucleus offers run-time API support for bound computation domain, and control tasks and interrupt affinities for core assignment.

Product Packages

Nucleus RTOS has two basic product packages

  • Nucleus ReadyStart Edition ReadyStart which includes the run-time, middleware, BSP in source code and the IDE, debugger, compilation tools, trace bundle in a single package. Nucleus Ready Start comes in versions packaged for ARM, MIPS and PPC. Nucleus ReadyStart adds specialized eclipse plugins to CodeBench to provide simplified build and configuration workflows and debugging enhancements including kernel awareness, loadable module support, tracing and profiling tools.
  • Nucleus Source Code Edition which contains the run-time designed to support unique architectures and/or different tool chains

Safety Certification

Nucleus SafetyCert Nucleus SafetyCert has been certified for the highest levels of safety for [DO-178C]], IEC 61508, IEC 62304 and ISO 26262.

Example devices using Nucleus products are as follows:

References

  1. ^ "Nucleus OS Supported Processors". www.mentor.com.
  2. ^ RTOS, Mentor Nucleus. "Mentor Nucleus RTOS reaches 2.11 Billion Devices Worldwide". Microcontroller.com.
  3. ^ "Nucleus RTOS Supported Processors". www.mentor.com. Retrieved 2017-08-22.
  4. ^ Voica, Alexandru. "MIPS in space: Inside NASA's New Horizons mission to Pluto". Imagination.
  5. ^ "IVL Technologies". ivl.com.
  6. ^ "ASC". nsgdata.com.
  7. ^ "TI-Nspire Technical Details - ticalc.org". www.ticalc.org.
  8. ^ "Telephonics - Surveillance, Communications, Analysis and Integrated Solutions leader". www.telephonics.com.
  9. ^ "Control Systems for Home Automation, Campus & Building Control by Crestron Electronics". www.crestron.com.
  10. ^ "Soundweb London - BSS Networked Audio Systems". BSS Networked Audio Systems.
  11. ^ "Все о глазах и зрении - офтальмологический форум" (PDF). s75.siemens-club.org.
  12. ^ "The evolution of the Apple iPhone and its many CPU's – Even within a model - The CPU Shack Museum". cpushack.com.
  13. ^ http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140crt/140crt951.pdf

External links