Nucleus RTOS: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Jsr321 (talk | contribs)
m Corrected Official Website URL.
 
(40 intermediate revisions by 28 users not shown)
Line 1: Line 1:
{{Short description|Real-time operating system}}
{{Infobox OS
{{Infobox OS
| name = Nucleus RTOS
| name = Nucleus RTOS
| logo =
| logo =
| screenshot =
| screenshot =
| caption =
| caption =
| developer = [https://www.mentor.com/ Mentor Graphics Corp. A Siemens Business]
| developer = [[Mentor Graphics]] Corp., a [[Siemens]] Business
| programmed in = [[C (programming language)|C]]
| prog_language = C
| family = [[Real-time operating system]]s
| family = [[POSIX]], [[TRON project|TRON]]
| working_state = Current
| working state = Current
| source_model = [[Closed source]]
| source model = [[Closed source]]
| released = {{Start date and age|1993}}
| latest_release_version = 3.x
| latest release version = 3.x, 2017.02
| latest_release_date = {{release date |2017|05|15}} version 2017.02
| latest release date = {{Start date and age|2017|05|15}}
| marketing_target =[[embedded systems]] and [[IoT]]
| marketing target = [[Embedded system]]s, [[Internet of things|IoT]]
| language = C
| language = English
| supported_platforms = [[ARM architecture|ARM]], [[NXP]], [[MIPS architecture|MIPS]], [[Texas Instruments|TI]], [[PowerPC]], Altera [[Nios II]], Xilinx [[MicroBlaze]], Renasas [[SuperH]], [[Infineon]], [[Atmel AT91SAM]] and others <ref>{{cite web|url=http://www.mentor.com/products/embedded_software/cpu/|title=Nucleus OS Supported Processors|website=www.mentor.com}}</ref>
| supported platforms = [[ARM architecture|ARM]], [[NXP]], [[MIPS architecture|MIPS]], [[Texas Instruments|TI]], [[PowerPC]], Altera [[Nios II]], [[Xilinx]] [[MicroBlaze]], [[Renesas Electronics|Renesas]] [[SuperH]], [[Infineon]], [[Atmel AT91SAM]], [[RISC-V]], others<ref>{{cite web |url=http://www.mentor.com/products/embedded_software/cpu/ |title=Nucleus OS Supported Processors |website=www.mentor.com}}</ref>
| kernel_type = [[Real-time computing|Real-time kernel]] [[Monolithic kernel]] with hybrid support
| kernel type = [[Real-time operating system|Real-time]] [[Monolithic kernel|monolithic]] with hybrid support
| license = [[Proprietary software|Proprietary]]
| license = [[Proprietary software|Proprietary]]
| website = [http://www.mentor.com/embedded-software/nucleus/ Nucleus RTOS]
| website = {{URL|www.plm.automation.siemens.com/global/en/products/embedded/nucleus-rtos.html|Nucleus website}}
| style="width: 320px;"
}}
}}
'''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.<ref>{{cite web|url=http://www.microcontroller.com/news/Mentor_Nucleus_RTOS_Over_-2_Billion.asp|title=Mentor Nucleus RTOS reaches 2.11 Billion Devices Worldwide|first=Mentor Nucleus|last=RTOS|website=Microcontroller.com}}</ref> 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 RTOS''' is a [[real-time operating system]] (RTOS) produced by the Embedded Software Division of [[Mentor Graphics]], a [[Siemens]] Business, supporting [[32-bit computing|32-]] and [[64-bit computing|64-bit]] [[embedded system]] platforms. The [[operating system]] (OS) is designed for [[Real-time computing|real-time]] [[embedded system]]s for medical, industrial, consumer, aerospace, and [[Internet of things]] (IoT) uses. Nucleus was released first in 1993. The latest version is 3.x, and includes features such as [[power management]], process model, 64-bit support, safety certification, and support for [[heterogeneous computing]] multi-core [[system on a chip]] (SOCs) processors.


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.
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.


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


Nucleus supports many embedded processors including leading [[ARMv7]] Cortex A, R, and M devices. Recent releases support [[ARMv8]] 64-bit devices. The official website has a full list of supported devices.<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> It includes 32-bit MCUs and MPUs, configurable devices, and 32-bit and 64-bit [[multi-core processor]]s.
== 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<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 ==
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.  
Nucleus 1.x was released first in 1993 by Accelerated Technology (ATI) as Nucleus PLUS. It soon became one of the most commonly used RTOSs in the embedded market. Following its early success there, ATI added support for [[Computer network|networking]], [[Computer graphics|graphics]], and [[file system]]s, 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|USB 2.0]] were added. Mentor replaced the legacy Codelab debugger with EDGE development tools which included compiler tools, debugger, simulator and profiler.
Mentor Graphics [[Takeover|acquired]] ATI in March 2002, which was soon followed by the second generation of Nucleus RTOS. Version 2.x was released in 2003, improving its portability across different architectures and tool sets. New components like [[IPv6]], [[Flash memory]] file system and Universal Serial Bus ([[USB]]) 2.0 were added. Mentor replaced the legacy Codelab debugger with EDGE development tools which included [[compiler]] tools, [[debugger]], simulator, and [[Profiling (computer programming)|profiler]].


Mentor Graphics introduced the 3<sup>rd</sup> 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 <10 KBs for both code and data.
Mentor Graphics introduced the 3rd generation Nucleus in 2010. Version 3.x was intended for both high-end [[microprocessor]] units (MPUs), [[microcontroller]] units (MCUs), [[digital signal processor]]s (DSPs), and [[field-programmable gate array]]s (FPGAs). For devices with limited memory resources, Nucleus was designed to scale down to a memory size of <10 [[kilobyte]]s (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 (using Mentor Embedded [[Hypervisor]]). Other additions in Nucleus 3.x:
Nucleus 3.x introduced support for [[symmetric multiprocessing]] (SMP) and [[asymmetric multiprocessing]] (AMP) both unsupervised uAMP and supervised sAMP (using Mentor Embedded [[Hypervisor]]). Other additions in Nucleus 3.x:
* 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 (computing)|hibernation]].
* Integrated power management support for [[Kernel (operating system)|kernel]] and [[middleware]] components; includes support for DVFS, tick suppression, and sleep modes including [[Hibernation (computing)|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.
* 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
* Wireless support
* IoT protocols
* IoT protocols
* Safety Certification for Aerospace, medical, industrial and automotive
* Safety certification for aerospace, medical, industrial and automotive
* Support for ARM [[TrustZone|Trustzone]]
* 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)
* 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
* [[Runtime (program lifecycle phase)|Runtime]] 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.


In addition to the new features in version 3.x, Nucleus moved [[business model]] from ''a la carte'', to one unified package.
Mentor acquired CodeSourcery in Dec 2010 to replace the EDGE development tools with the Sourcery [https://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/overview 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.


Mentor acquired CodeSourcery in Dec 2010 to replace the EDGE development tools with the Sourcery [https://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/overview CodeBench]. Sourcery CodeBench comprises a compiler tool-chain, debugger, and trace analysis tools. The compiler tool-chain is based on GNU tool-chain. The debugger and [[integrated development environment]] (IDE) are based on [[Eclipse (software)|Eclipse]]. Sourcery CodeBench supports ARM, [[IA-32]], 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.


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 [[user interface]] (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==

==Major components==
Nucleus RTOS components include:
Nucleus RTOS components include:
# Kernel
# [[Kernel (operating system)|Kernel]]
# Services
# Services
# Connectivity
# Connectivity
# File System
# [[File system]]
# Networking
# [[Computer network|Networking]]
# IoT Framework
# IoT Framework
# Wireless
# [[Wireless]]
# Security
# Security
# UI & Graphics
# UI & graphics


=== Kernel ===
=== Kernel ===
* Real time kernel with priority based pre-emptive scheduling
* Real-time kernel with priority based pre-emptive scheduling
* Support for dynamic linking using loadable modules
* Support for dynamic linking using loadable modules
* [[C++]], [[POSIX]] and [[ITRON project|Micro ITRON]] interfaces
* Interfaces for [[C++]], ''Portable Operating System Interface'' ([[POSIX]]), and ''The Real-time Operating system Nucleus'' ([[TRON project|TRON]]) [[ITRON project|microITRON]]
* SMP/AMP (both supervised and unsupervised)
* SMP/AMP, supervised and unsupervised
* SMP support and run-time control for bound computation domain and affinities to processor cores for tasks and interrupts
* SMP support and runtime control for bound computation domain and affinities to processor cores for tasks and interrupts
* Support for 64 bit architectures
* Support for 64-bit architectures
* Scale-able to fit memory constrained devices
* Scalable to fit memory constrained devices
* Built-in power management framework
* Built-in power management framework
* Source code for all components
* [[Source code]] for all components


=== Services ===
=== Services ===
* Run-level initialization and registry
* Run-level initialization and registry
* POSIX (Kernel, Networking and File System)
* POSIX: kernel, networking, and file system
* Shell and Tracing
* Shell and tracing
* Debug Agent
* Debug agent
* C++
* C++
* Power Management Services
* Power management services


=== Connectivity ===
=== Connectivity ===
Nucleus supports the ability to connect to other devices through various interfaces including:
Nucleus supports the ability to connect to other devices through various interfaces including:
* [[USB|USB 2.0]] and [[USB 3.0]]
* [[USB]] 2.0 and 3.0
* USB Host, Function and [[USB On-The-Go|On-The-Go]] (OTG) stacks
* USB Host, Function, and [[USB On-The-Go|On-The-Go]] (OTG) stacks
* [[Bluetooth]] with many advanced profiles enabled ([[A2DP]], [[AVRCP]], [[Bluetooth profile#Hands-Free Profile .28HFP.29|HFP]], [[Bluetooth profile#Headset Profile .28HSP.29|HSP]], etc.)
* [[Bluetooth]] with many advanced profiles enabled ([[A2DP]], [[AVRCP]], [[Bluetooth profile#Hands-Free Profile .28HFP.29|HFP]], [[Bluetooth profile#Headset Profile .28HSP.29|HSP]], etc.)
* [[Peripheral Component Interconnect|PCI]], [[PCI-X]] and PCIe
* [[Peripheral Component Interconnect]] (PCI), [[PCI-X]] and PCIe
* [[Controller Area Network|CAN]] and [[CANopen]]
* [[Controller Area Network]] (CAN) and [[CANopen]]
* [[Secure Digital|SDIO]]
* [[Secure Digital]] (SDIO)
* SPI, QSPI
* SPI, QSPI
* [[I²C|I2C]]
* Inter-Integrated Circuit ([[I²C]])


=== File System ===
=== 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, Nucleus supports a wide variety of file systems including FAT, SAFE (fault tolerant), and LWEXT.
Unlike Windows and Unix-like operating systems, Nucleus does not need a [[file system]] to work. However, for complex uses needing local storage, Nucleus supports several file systems including FAT, SAFE (fault tolerant), and LWEXT.


==== Multiple simultaneous file systems ====
==== Multiple simultaneous file systems ====
Line 109: Line 109:
* USB drive
* USB drive
* SD MMC
* 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. 
Nucleus provides support for different file systems and storage media through 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 ===
=== 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
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:
* [[Internet protocol suite|UDP, TCP/IP]]
* [[Internet protocol suite]] (UDP, TCP/IP)
* [[Internet Control Message Protocol|ICMP]], [[Dynamic Host Configuration Protocol|DHCP]], [[Network address translation|NAT]]
* [[Internet Control Message Protocol]] (ICMP), [[Dynamic Host Configuration Protocol]] (DHCP), [[network address translation]] (NAT)
* [[Point-to-Point Protocol|PPP]] and [[Point-to-point protocol over Ethernet|PPoE]]
* [[Point-to-Point Protocol]] (PPP) and [[Point-to-Point Protocol over Ethernet]] (PPPoE)
* [[File Transfer Protocol|FTP]], [[Telnet]], [[Secure Shell|SSH]]
* [[File Transfer Protocol]] (FTP), [[Telnet]], [[Secure Shell]] (SSH)
* [[Simple Network Management Protocol|SNMP]], [[Network Time Protocol|SNTP]]
* [[Simple Network Management Protocol]] (SNMP), [[Network Time Protocol]] (NTP)
* [[Hypertext Transfer Protocol|HTTP]] and [[HTTPS]]
* [[Hypertext Transfer Protocol]] (HTTP) and [[HTTPS]]
* [[JSON]]/[[XML]], [[WebSocket|WebSockets]] 
* [[JSON]]-[[XML]], [[WebSocket]]s


=== Security ===
=== 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.
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 [[wolfSSL]] (formerly CyaSSL) that is far smaller than OpenSSL for designs needing encryption but limited in memory capacity.<ref>{{Cite web|url=https://www.wolfssl.com/docs/wolfssl-manual/ch5/|title=wolfSSL User Manual – Chapter 5: Portability – Documentation|language=en-US|access-date=2019-02-14}}</ref> Security protocols to protect data in transit include IPsec/IKE, SSH/SSL/TLS/DTLS. Encryption includes DES, 3DES, AES, SHA-256. [[Public-key cryptography]] algorithms include RSA. Support includes X.509, RADIUS, and 802.1X.
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 ===
=== Wireless ===
A number of WiFi modules from different chip-makers like QCA, Broadcom, TI and CSR are supported
Several [[Wi-Fi]] modules from different chip-makers like QCA, Broadcom, TI, and CSR are supported:
* [[IEEE 802.11|802.11 a/b/g/n]]
* [[IEEE 802.11]] a/b/g/n
* [[IEEE 802.15.4|802.15.4]]
* [[IEEE 802.15.4]]
* Bluetooth and Bluetooth LE
* Bluetooth, Bluetooth LE


=== UI graphics ===

Nucleus 3.x supports [[OpenGL]] and leading 3rd party UI libraries. Nucleus supports the [[Qt (software)|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]].
=== UI Graphics ===
Nucleus 3.x supports [[OpenGL]] and leading 3rd party UI libraries. Nucleus supports the [[Qt (software)|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 ===
=== IoT ===
Recent releases of Nucleus include support for HTTPS, [[Constrained Application Protocol|CoAP]], [[MQTT|MQTT]] and [[6LoWPAN|6LowPAN]].
Recent releases of Nucleus include support for HTTPS, [[Constrained Application Protocol]] (CoAP), [[MQTT]] and [[6LoWPAN]].


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


=== Industrial ===
=== Industrial ===
Nucleus has been integrated with 3<sup>rd</sup> party industrial stacks from industry leaders. Industrial stack support includes [[OPC Unified Architecture|OPC-UA]] host and client and [[EtherNet/IP|EtherNET/IP]] from [https://industrial.softing.com/en/products/software.html Softing] and [[EtherCAT]] from [https://koenig-pa.de/ KoenigPa].
Nucleus has been integrated with 3rd party industrial stacks from industry leaders. Industrial stack support includes [[OPC Unified Architecture]] (OPC UA) host and client and [[EtherNet/IP]] from [https://industrial.softing.com/en/products/software.html Softing] {{Webarchive|url=https://web.archive.org/web/20170822133733/https://industrial.softing.com/en/products/software.html |date=2017-08-22 }} and [[EtherCAT]] from [https://koenig-pa.de/ KoenigPa].


=== Multi-core ===
=== 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.
Nucleus supports [[asymmetric multiprocessing]] (AMP) mode and [[symmetric multiprocessing]] (SMP) mode for leading 32 and 64-bit heterogeneous multi-core 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 machine|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.
When operating in AMP mode, Nucleus RTOS can coexist with other instances of Nucleus, Linux, and/or [[bare machine]] (metal) programs 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 runtime API support for bound computation domain, and control tasks and interrupt affinities for core assignment.


=== Product Packages ===
=== Product packages ===
Nucleus RTOS as packaged as follows:
Nucleus RTOS is packaged as follows:
* Nucleus ReadyStart Edition [https://www.mentor.com/embedded-software/nucleus/readystart/ 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 ReadyStart Edition ReadyStart which includes the [[runtime system]], [[middleware]], BSP (all in source code) and the IDE, debugger, compiling 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
* Nucleus Source Code Edition contains the runtime system and middleware packaged to support unique architectures and/or different tool chains


=== Safety Certification===
=== Safety certification===
Nucleus SafetyCert [https://www.mentor.com/embedded-software/nucleus/safety Nucleus SafetyCert] has been certified for the highest levels of safety for [DO-178C]], [[IEC 61508]], [[IEC 62304]] and [[ISO 26262]].
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:
== Products using Nucleus RTOS ==
Example devices using Nucleus products include:


* [[New Horizons]], an interplanetary space probe<ref>{{cite web|last1=Voica|first1=Alexandru|title=MIPS in space: Inside NASA’s New Horizons mission to Pluto|url=http://blog.imgtec.com/mips-processors/mips-in-space-inside-nasa-new-horizons-mission-to-pluto|website=Imagination}}</ref>
* [[New Horizons]], interplanetary space probe<ref>{{cite web|last1=Voica|first1=Alexandru|title=MIPS in space: Inside NASA's New Horizons mission to Pluto|url=http://blog.imgtec.com/mips-processors/mips-in-space-inside-nasa-new-horizons-mission-to-pluto|website=Imagination|access-date=2015-10-16|archive-date=2015-10-17|archive-url=https://web.archive.org/web/20151017204133/http://blog.imgtec.com/mips-processors/mips-in-space-inside-nasa-new-horizons-mission-to-pluto|url-status=dead}}</ref>
* Nucleus RTOS used by [[Honeywell]] for Critical Terrain Awareness Technology in the Aviation Industry.{{Citation needed|date=October 2015}}
* [[Honeywell]] for Critical Terrain Awareness Technology in the aviation industry{{Citation needed|date=October 2015}}
* IVL Technologies' On-Key Karaoke [[Handheld]] Player Sings along with the Nucleus PLUS Kernel.<ref>{{cite web|url=http://www.ivl.com/|title=IVL Technologies|website=ivl.com}}</ref>
* IVL Technologies' On-Key Karaoke [[Mobile device|Handheld]] Player uses Nucleus PLUS<ref>{{cite web|url=http://www.ivl.com/|title=IVL Technologies|website=ivl.com}}</ref>
* [[Logitech]] uses Nucleus OS in its ''Pocket Video'' Portable Digital Video Cameras.{{Citation needed|date=October 2015}}
* [[Logitech]] uses it in its ''Pocket Video'' Portable Digital Video Cameras{{Citation needed|date=October 2015}}
* Nucleus RTOS used by [[SK Telecom]]'s first commercialization of [[CDMA]] technology in Korea.{{Citation needed|date=October 2015}}
* [[SK Telecom]]'s first commercialization of [[code-division multiple access]] (CDMA) technology in Korea{{Citation needed|date=October 2015}}
* Nucleus RTOS used in [[Mediatek]] Dual SIM Dual processor based chipsets found on most Chinese phones.{{Citation needed|date=October 2015}}
* [[Mediatek]] Dual SIM Dual processor based chipsets found on most Chinese phones{{Citation needed|date=October 2015}}
* Nucleus used in [[NEC]] High Definition [[Mobile phone|Mobile]] [[Handset]]{{Citation needed|date=October 2015}}
* [[NEC]] High Definition [[Mobile phone|Mobile]] [[Handset]]{{Citation needed|date=October 2015}}
* ASC's RBOX Multi-Service Aggregator Family uses Nucleus PLUS.<ref>{{cite web|url=http://www.nsgdata.com/asc/index.html/|title=ASC|website=nsgdata.com}}</ref>
* ASC's RBOX Multi-Service Aggregator Family uses Nucleus PLUS<ref>{{cite web|url=http://www.nsgdata.com/asc/index.html/|title=ASC|website=nsgdata.com|access-date=2006-06-17|archive-date=2006-06-15|archive-url=https://web.archive.org/web/20060615171322/http://www.nsgdata.com/asc/index.html|url-status=dead}}</ref>
* The [[TI-Nspire]] handheld calculators use Nucleus as the basis of their [[operating system]]<ref>{{cite web|url=http://www.ticalc.org/archives/news/articles/14/142/142696.html|title=TI-Nspire Technical Details - ticalc.org|website=www.ticalc.org}}</ref>
* [[TI-Nspire series]] handheld [[calculator]]s use Nucleus as the basis of their [[operating system]]<ref>{{cite web|url=http://www.ticalc.org/archives/news/articles/14/142/142696.html|title=TI-Nspire Technical Details - ticalc.org|website=www.ticalc.org}}</ref>
* Telephonics is using Nucleus in the SDI System for the USAF C-130 Avionics Modernization Program and the Aviation Communication System for the 767 Tanker Program.<ref>{{cite web|url=http://www.telephonics.com/|title=Telephonics - Surveillance, Communications, Analysis and Integrated Solutions leader|website=www.telephonics.com}}</ref>
* Telephonics uses it in the USAF C-130 Avionics Modernization Program, SDI System, and the 767 Tanker Program, Aviation Communication System<ref>{{cite web|url=http://www.telephonics.com/|title=Telephonics - Surveillance, Communications, Analysis and Integrated Solutions leader|website=www.telephonics.com}}</ref>
* [[Garmin International]] to develop the CNX80 navigational global positioning system ([[GPS]]) for general aviation.{{Citation needed|date=October 2015}}
* [[Garmin International]] to develop the CNX80 navigational [[Global Positioning System]] (GPS) for general aviation{{Citation needed|date=October 2015}}
* A large number of Motorola, Samsung, LG, Siemens/Benq, Sagem and NEC mobile phones.{{Citation needed|date=October 2015}}
* A large number of Motorola, Samsung, LG, Siemens/Benq, Sagem and NEC mobile phones{{Citation needed|date=October 2015}}
* The S-Class UI on LG Pop, Arena & etc. are running on Nucleus OS{{Citation needed|date=October 2015}}
* The S-Class UI on LG Arena, New Chocolate etc.{{Citation needed|date=October 2015}}
* Intellon Home Plug AV{{Citation needed|date=October 2015}}
* Intellon Home Plug AV{{Citation needed|date=October 2015}}
* Crestron Electronics on their older 2-series control system processors.<ref>{{cite web|url=http://www.crestron.com|title=Control Systems for Home Automation, Campus &amp; Building Control by Crestron Electronics|website=www.crestron.com}}</ref>
* Crestron Electronics on their older 2-series control system processors<ref>{{cite web|url=http://www.crestron.com|title=Control Systems for Home Automation, Campus & Building Control by Crestron Electronics|website=www.crestron.com}}</ref>
* [[BSS Audio]] in their [[Soundweb London]] range.<ref>{{cite web|url=http://www.soundweb-london.com|title=Soundweb London - BSS Networked Audio Systems|website=BSS Networked Audio Systems}}</ref>
* [[BSS Audio]] in their [[Soundweb London]] range.<ref>{{cite web|url=http://www.soundweb-london.com|title=Soundweb London - BSS Networked Audio Systems|website=BSS Networked Audio Systems}}</ref>
* Later versions of the [[Creative ZEN]] product line.{{Citation needed|date=October 2015}}
* Later versions of [[Creative ZEN]] product line{{Citation needed|date=October 2015}}
* The [[Infineon]] S-Gold2 chipset used in [[Siemens]] S75, E71, M81, etc. phones<ref>{{cite web|url=http://s75.siemens-club.org/files/TD_Repair_L2.5_S75_R1.0.pdf|title=Все о глазах и зрении - офтальмологический форум|website=s75.siemens-club.org}}</ref>
* The [[Infineon]] S-Gold2 chipset used in [[Siemens]] phones: S75, E71, M81, etc.<ref>{{cite web|url=http://s75.siemens-club.org/files/TD_Repair_L2.5_S75_R1.0.pdf|title=Все о глазах и зрении - офтальмологический форум|website=s75.siemens-club.org|access-date=2012-05-12|archive-date=2007-02-05|archive-url=https://web.archive.org/web/20070205031008/http://s75.siemens-club.org/files/TD_Repair_L2.5_S75_R1.0.pdf|url-status=dead}}</ref>
* The [[Infineon]] S-Gold2 baseband chip used in [[Apple Inc.|Apple's]] [[iPhone]]<ref>{{cite web|url=http://www.cpushack.com/2010/08/13/the-evolution-of-the-apple-iphone-and-its-many-cpus-even-within-a-model/|title=The evolution of the Apple iPhone and its many CPU’s – Even within a model - The CPU Shack Museum|website=cpushack.com}}</ref>
* The [[Infineon]] S-Gold2 baseband chip used in [[Apple Inc.|Apple's]] [[iPhone]]<ref>{{cite web|url=http://www.cpushack.com/2010/08/13/the-evolution-of-the-apple-iphone-and-its-many-cpus-even-within-a-model/|title=The evolution of the Apple iPhone and its many CPU's – Even within a model - The CPU Shack Museum|website=cpushack.com|date=13 August 2010 }}</ref>
* The Metrotech i5000 [[Utility location|Utility Locating]] Receiver.{{Citation needed|date=October 2015}}
* The Metrotech i5000 [[Utility location|Utility Locating]] Receiver{{Citation needed|date=October 2015}}
* The Creative Zen Vision line uses Nucleus as their operating system{{Citation needed|date=October 2015}}
* The Creative Zen Vision line{{Citation needed|date=October 2015}}
* Intel Active Management Technology/VPro embedded controller{{Citation needed|date=October 2015}}
* [[Intel Active Management Technology]], [[Intel vPro|vPro]] embedded controller{{Citation needed|date=October 2015}}
* [[Tandberg]] MXP Video & Telephony appliances<ref>http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140crt/140crt951.pdf</ref>
* [[Tandberg]] MXP video & telephony appliances<ref>http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140crt/140crt951.pdf {{Bare URL PDF|date=March 2022}}</ref>
* Datex-Ohmeda Avance anesthesia system{{Citation needed|date=October 2015}}
* Datex-Ohmeda Avance anesthesia system{{Citation needed|date=October 2015}}
* Zoll Medical Corporation's defibrillators{{Citation needed|date=October 2015}}
* Zoll Medical Corporation defibrillators{{Citation needed|date=October 2015}}
* Samsung ''[[bada]]'' platform based devices<ref>Samsung Electronics' strategy to compete in the 'bada' is..., Bloter, 2009.11.18, https://www.bloter.net/news/articleView.html?idxno=7334</ref>
* Samsung [[bada (operating system)|bada]] platform based devices{{Citation needed|date=September 2011}}
* Mindray's early Patient Monitor, ultrasound device and hematology analyzer products{{Citation needed|date=October 2015}}
* Mindray early patient monitor, ultrasound device, and hematology analyzer{{Citation needed|date=October 2015}}

==See also==
* [[Comparison of real-time operating systems]]


==References==
==References==
Line 191: Line 192:


==External links==
==External links==
* [http://www.mentor.com/embedded-software/nucleus/ Nucleus RTOS]
* {{Official website|plm.automation.siemens.com/global/en/products/embedded/nucleus-rtos.html}}


{{MicroKernel}}
{{Operating system}}
{{Real-time operating systems}}
{{Real-time operating systems}}
{{Microkernel}}
{{Operating system}}


{{DEFAULTSORT:Nucleus Rtos}}
{{DEFAULTSORT:Nucleus Rtos}}

Latest revision as of 19:26, 29 March 2024

Nucleus RTOS
DeveloperMentor Graphics Corp., a Siemens Business
Written inC
OS familyPOSIX, TRON
Working stateCurrent
Source modelClosed source
Initial release1993; 31 years ago (1993)
Latest release3.x, 2017.02 / May 15, 2017; 7 years ago (2017-05-15)
Marketing targetEmbedded systems, IoT
Available inEnglish
PlatformsARM, NXP, MIPS, TI, PowerPC, Altera Nios II, Xilinx MicroBlaze, Renesas SuperH, Infineon, Atmel AT91SAM, RISC-V, others[1]
Kernel typeReal-time monolithic with hybrid support
LicenseProprietary
Official websiteNucleus website

Nucleus RTOS is a real-time operating system (RTOS) produced by the Embedded Software Division of Mentor Graphics, a Siemens Business, supporting 32- and 64-bit embedded system platforms. The operating system (OS) is designed for real-time embedded systems for medical, industrial, consumer, aerospace, and Internet of things (IoT) uses. Nucleus was released first in 1993. The latest version is 3.x, and includes features such as power management, process model, 64-bit support, safety certification, and support for heterogeneous computing multi-core system on a chip (SOCs) processors.

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[edit]

Nucleus supports many embedded processors including leading ARMv7 Cortex A, R, and M devices. Recent releases support ARMv8 64-bit devices. The official website has a full list of supported devices.[2] It includes 32-bit MCUs and MPUs, configurable devices, and 32-bit and 64-bit multi-core processors.

History[edit]

Nucleus 1.x was released first in 1993 by Accelerated Technology (ATI) as Nucleus PLUS. It soon became one of the most commonly used RTOSs in the embedded market. Following its early success there, ATI added support for networking, graphics, and file systems, which accelerated adoption.

Mentor Graphics acquired ATI in March 2002, which was soon followed by the second generation of Nucleus RTOS. Version 2.x was released in 2003, improving its portability across different architectures and tool sets. New components like IPv6, Flash memory file system and Universal Serial Bus (USB) 2.0 were added. Mentor replaced the legacy Codelab debugger with EDGE development tools which included compiler tools, debugger, simulator, and profiler.

Mentor Graphics introduced the 3rd generation Nucleus in 2010. Version 3.x was intended for both high-end microprocessor units (MPUs), microcontroller units (MCUs), digital signal processors (DSPs), and field-programmable gate arrays (FPGAs). For devices with limited memory resources, Nucleus was designed to scale down to a memory size of <10 kilobytes (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 (using Mentor Embedded Hypervisor). Other additions in Nucleus 3.x:

  • Integrated power management support for kernel and middleware components; 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)
  • Runtime tracing support with host side analysis tools

In addition to the new features in version 3.x, Nucleus moved business model from a la carte, to one unified package.

Mentor acquired CodeSourcery in Dec 2010 to replace the EDGE development tools with the Sourcery CodeBench. Sourcery CodeBench comprises a compiler tool-chain, debugger, and trace analysis tools. The compiler tool-chain is based on GNU tool-chain. The debugger and integrated development environment (IDE) are based on Eclipse. Sourcery CodeBench supports ARM, IA-32, 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 user interface (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[edit]

Nucleus RTOS components include:

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

Kernel[edit]

  • Real-time kernel with priority based pre-emptive scheduling
  • Support for dynamic linking using loadable modules
  • Interfaces for C++, Portable Operating System Interface (POSIX), and The Real-time Operating system Nucleus (TRON) microITRON
  • SMP/AMP, supervised and unsupervised
  • SMP support and runtime control for bound computation domain and affinities to processor cores for tasks and interrupts
  • Support for 64-bit architectures
  • Scalable to fit memory constrained devices
  • Built-in power management framework
  • Source code for all components

Services[edit]

  • Run-level initialization and registry
  • POSIX: kernel, networking, and file system
  • Shell and tracing
  • Debug agent
  • C++
  • Power management services

Connectivity[edit]

Nucleus supports the ability to connect to other devices through various interfaces including:

File system[edit]

Unlike Windows and Unix-like operating systems, Nucleus does not need a file system to work. However, for complex uses needing local storage, Nucleus supports several file systems including FAT, SAFE (fault tolerant), and LWEXT.

Multiple simultaneous file systems[edit]

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

Multiple media support[edit]

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

Nucleus provides support for different file systems and storage media through 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[edit]

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[edit]

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 wolfSSL (formerly CyaSSL) that is far smaller than OpenSSL for designs needing encryption but limited in memory capacity.[3] Security protocols to protect data in transit include IPsec/IKE, SSH/SSL/TLS/DTLS. Encryption includes DES, 3DES, AES, SHA-256. Public-key cryptography algorithms include RSA. Support includes X.509, RADIUS, and 802.1X.

Wireless[edit]

Several Wi-Fi modules from different chip-makers like QCA, Broadcom, TI, and CSR are supported:

UI graphics[edit]

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[edit]

Recent releases of Nucleus include support for HTTPS, Constrained Application Protocol (CoAP), MQTT and 6LoWPAN.

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

Industrial[edit]

Nucleus has been integrated with 3rd party industrial stacks from industry leaders. Industrial stack support includes OPC Unified Architecture (OPC UA) host and client and EtherNet/IP from Softing Archived 2017-08-22 at the Wayback Machine and EtherCAT from KoenigPa.

Multi-core[edit]

Nucleus supports asymmetric multiprocessing (AMP) mode and symmetric multiprocessing (SMP) mode for leading 32 and 64-bit heterogeneous multi-core 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 machine (metal) programs 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 runtime API support for bound computation domain, and control tasks and interrupt affinities for core assignment.

Product packages[edit]

Nucleus RTOS is packaged as follows:

  • Nucleus ReadyStart Edition ReadyStart which includes the runtime system, middleware, BSP (all in source code) and the IDE, debugger, compiling 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 contains the runtime system and middleware packaged to support unique architectures and/or different tool chains

Safety certification[edit]

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

Products using Nucleus RTOS[edit]

Example devices using Nucleus products include:

See also[edit]

References[edit]

  1. ^ "Nucleus OS Supported Processors". www.mentor.com.
  2. ^ "Nucleus RTOS Supported Processors". www.mentor.com. Retrieved 2017-08-22.
  3. ^ "wolfSSL User Manual – Chapter 5: Portability – Documentation". Retrieved 2019-02-14.
  4. ^ Voica, Alexandru. "MIPS in space: Inside NASA's New Horizons mission to Pluto". Imagination. Archived from the original on 2015-10-17. Retrieved 2015-10-16.
  5. ^ "IVL Technologies". ivl.com.
  6. ^ "ASC". nsgdata.com. Archived from the original on 2006-06-15. Retrieved 2006-06-17.
  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. Archived from the original (PDF) on 2007-02-05. Retrieved 2012-05-12.
  12. ^ "The evolution of the Apple iPhone and its many CPU's – Even within a model - The CPU Shack Museum". cpushack.com. 13 August 2010.
  13. ^ http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140crt/140crt951.pdf [bare URL PDF]
  14. ^ Samsung Electronics' strategy to compete in the 'bada' is..., Bloter, 2009.11.18, https://www.bloter.net/news/articleView.html?idxno=7334

External links[edit]