Jump to content

Nucleus RTOS

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Dough34 (talk | contribs) at 17:46, 23 August 2017 (fix spacing). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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 supporting a wide range of 32 and 64bit embedded platforms. It 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 version 3.x which includes new features such as Power Management, Process Model, 64 bit support, Safety Certification, and support for complex heterogeneous 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 e.g. the wearable.  The Power Management Framework incorporates power aware device drivers to manage all facets of power changes which allow single API calls to program and change the power states for individual devices and the system at run-time. APIs are available to make dynamic changes to frequency or voltage, or place the device is sleep or deep sleep mode.

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

Supported Platforms

Nucleus RTOS support 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[3] which includes 32 bit MCUs, configurable devices and both 32bit and 64bit multi-core devices.

History

Nucleus 1.x was first released in 1993 by Accelerated technology naming the kernel as Nucleus PLUS. Nucleus PLUS soon became one of the most commonly used RTOS’s in the embedded market. Following its great success in the embedded industry ATI added support for the networking, graphics, and filesystems.  

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 which further proliferated it adoption. 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, and MCUs, DSPs, and FPGAs. For devices with limited memory resources, Nucleus RTOS can be scaled 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) where the later includes both unsupervised and supervised (uAMP and sAMP) support using Mentor Embedded Hypervisor. Other noticeable additions in Nucleus 3.x are:

  • Integrated power management support for both kernel and middle-ware components. Nucleus power management support is based on DVFS with additional features like tick suppression and hibernation.
  • Process Model for memory partitioning to support dynamic loading and unloading of application modules. These loadable processes are supported on both high end MPUs and low end MCUs with or without hardware memory management support.
  • Wireless and IoT protocols
  • Improved the driver interface to follow a single read/write/ioctl model of all kind of drivers
  • Safety Certification for Aerospace, medical, industrial and automotive
  • Support for ARM Trustzone
  • Mentor embedded multi-core framework for IPC and processor life cycle management in both supervised and unsupervised multi-core designs
  • Run-time tracing support using 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 is a collection of compilation tool-chain, debugger and analysis tools. The compiler tool-chain is based on GNU tool-chain while the debugger and IDE are based on Eclipse. Sourcery CodeBench has support for ARM, IA32, MIPS and PPC devices and for run-time debugging it supports all RTOS, Linux and bare-metal environments.

Nucleus 3.x also introduced a unified build and configuration system with which everything is configured through a single file and builds as a single library. Like menuconfig in Linux, a UI based configuration tool integrated with CodeBench is also available to graphically select/deselect different components and choose their individual settings as well.

Nucleus configuration system allows customization for users to add new tool-chains, architecture support and even build properties for their own systems.

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. Wireless and Security
  7. UI & Graphics

Kernel

  • Real time kernel with priority based pre-emptive scheduling
  • Monolithic based design with capabilities of being hybrid
  • Support for dynamic linking using downloadable modules
  • C++, POSIX and Micro ITRON interfaces
  • SMP/AMP(both supervised and unsupervised)
  • Support and run-time control for bound computation domain and affinities for tasks and interrupts
  • Support for 64bit architectures
  • Scale-able to fit memory constrained devices
  • Built-in power management framework
  • Source code is available to customers, making it easier to debug the system as compared to the other operating systems which are distributed as binaries only

 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.  Many devices that are very small or hidden from normal view do not require the ability to access files; these Nucleus applications often do not include a file system.  However for complex applications needing local storage and files, Nucleus can support a wide variety of file systems.  While Windows, Mac-OS, and Linux each commonly have a file system that identifies with the operating system, embedded operating systems such as Nucleus need to be able to support a wide variety of file systems that match a particular environment.

Multiple simultaneous file systems

  • File Allocation Table (FAT)
  • SAFE (high reliability power fail safe)
  • 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 though an API, similar in nature to the kernel API.  This is known as the Virtual file system Application Programming Interface, and it allows the programs running on Nucleus to access all of the above file systems and storage devices using the same functions calls regardless of the underlying storage format. 

Networking

Nucleus supports over 60 networking protocols including both IPv4 and IPv6 communication. Nucleus networking stack also supports POSIX interface and provides an easy to use socket based application interface. A brief list of the supported protocols include

Wireless and Security

Nucleus supports a wide variety of encryption options for secure communications.  Full support of OpenSSL and CyaSSL is used to provide security for SSH/SSL, WPA/WPA2, as well as key exchange, hash, and signature protocols. A number of WiFi and combo modules from different chip-makers like QCA, Broadcom, TI and CSR are supported

UI Graphics

Historically Nucleus has its own UI library and designer tool, Inflexion UI. Since Nucleus 3.x, it has started to support 3rd party leading UI libraries. For High end targets, Nucleus supports Qt UI framework and has optimized its use and debugging using its CodeBench and Tracing tools. For this Nucleus offers a separate add-on for Qt which includes both the run-time and tools support. It also support OpenGL and some GPUs on targets like AM335x and i.MX6 SabreLite. For Low end memory constrained targets it supports Embedded Wizard.

Nucleus for IoT

Like other embedded solutions Nucleus is also targeting IoT markets by adding and porting different protocols and IoT frameworks to Nucleus environment. Recent releases of Nucleus has support for protocols like HTTPS, CoAP, Mqtt and 6LowPAN.

Nucleus has also announced its support for Microsoft Azure cloud computing framework and porting of Eclipse IoT projects of Leshan, Hawkbit and Wakama to Nucleus. 

Nucleus for Industrial

Nucleus offers 3rd party industrial stacks readily ported and validated with Nucleus. These include the OPC-UA host and client and EtherNET/IP stacks from softing and EtherCAT from KoenigPa. Nucleus product packages include only the porting layer for these 3rd party software stacks while the actual source/libraries for these industrial stacks must be licensed from their actual developer company.

Nucleus and Multi-core

When executing on devices that contain multiple cores, Nucleus can run in asymmetric multiprocessing (AMP) mode or symmetric multiprocessing (SMP) mode.  Nucleus is also capable of running under the control of a hypervisor with maintains primary control of the underlying machine.

When operating in AMP mode, Nucleus can coexist with other instances of Nucleus running on the other processor cores, or with Linux and/or bare metal applications distributed on the other processors.  In this mode, each processor is running independently and each behaves as a separate system within the collection of processing cores.  In order to share memory and peripherals each operating system instance must be designed to cooperate with the other instances on the device.  Mentor supports the remoteproc method of managing the life cycle of each processor. SMP operation entails having a single operating system manage multiple cores simultaneously.  This is commonly how Windows, Mac-OS, and Linux manage PCs that have multi-core processors.  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 to form bound computation domains and control tasks and interrupt affinities.

Product Packages

Nucleus RTOS has two basic product packages

  • Source code version which has run-time pieces and build system. It supports multiple architectures and tool-sets and with provisioning of adding support for new architectures and tool-sets
  • ReadyStart which is the run-time and tools bundle. It has separate versions for ARM, MIPS and PPC and supports the CSGNU tools for those architectures. Nucleus ReadyStart adds specialized eclipse plugins to CodeBench which provide simplified build and configuration of Nucleus system and debugging aids like kernel awareness and tracing and profiling tools.

Some of run-time components like Qt, Wireless drivers and POSIX are not included in these standard product packages and provided as separate add-ons A new version of Nucleus with name Nucleus SafetyCert is introduced in 2015 which is specially tagged for safety and mixed critical devices. Nucleus SafetyCert contains the documents and artifacts required for regularity certifications of DO-178C, IEC 61508, IEC 62304 and ISO 26262.

Products using Nucleus RTOS

Mentor Graphics boasts Nucleus installment base of over 1.6 billion mobile devices,[4] as of mid-February, 2010 and 2.11 billion devices as of June 2010. According to a report[5] by an analyst firm, Nucleus has been shipped in over 2.84 billion devices as of the end of 2010.

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. ^ "Nucleus RTOS". www.mentor.com. Retrieved 2016-09-01.
  5. ^ "100 Million Club: Winners and losers in the OS Arena". 2011-04-03. Retrieved 2016-09-01.
  6. ^ Voica, Alexandru. "MIPS in space: Inside NASA's New Horizons mission to Pluto". Imagination.
  7. ^ "IVL Technologies". ivl.com.
  8. ^ "ASC". nsgdata.com.
  9. ^ "TI-Nspire Technical Details - ticalc.org". www.ticalc.org.
  10. ^ "Telephonics - Surveillance, Communications, Analysis and Integrated Solutions leader". www.telephonics.com.
  11. ^ "Control Systems for Home Automation, Campus & Building Control by Crestron Electronics". www.crestron.com.
  12. ^ "Soundweb London - BSS Networked Audio Systems". BSS Networked Audio Systems.
  13. ^ "Все о глазах и зрении - офтальмологический форум" (PDF). s75.siemens-club.org.
  14. ^ "The evolution of the Apple iPhone and its many CPU's – Even within a model - The CPU Shack Museum". cpushack.com.
  15. ^ http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140crt/140crt951.pdf

External links