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

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. It includes 32-bit MCUs and MPUs, configurable devices, and 32-bit and 64-bit multi-core processors.

History 
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
Nucleus RTOS components include:
 Kernel
 Services
 Connectivity
 File system
 Networking
 IoT Framework
 Wireless
 Security
 UI & graphics

Kernel 
 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 
 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 various interfaces including:
 USB 2.0 and 3.0
 USB Host, Function, and On-The-Go (OTG) stacks
 Bluetooth with many advanced profiles enabled (A2DP, AVRCP, HFP, HSP, etc.)
 Peripheral Component Interconnect (PCI), PCI-X and PCIe
 Controller Area Network (CAN) and CANopen
 Secure Digital (SDIO)
 SPI, QSPI
 Inter-Integrated Circuit (I²C)

File system 
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 
 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 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 
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 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 (PPPoE)
 File Transfer Protocol (FTP), Telnet, Secure Shell (SSH)
 Simple Network Management Protocol (SNMP), Network Time Protocol (NTP)
 Hypertext Transfer Protocol (HTTP) and HTTPS
 JSON-XML, WebSockets

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 wolfSSL (formerly CyaSSL) that is far smaller than OpenSSL for designs needing encryption but limited in 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 cryptography algorithms include RSA. Support includes X.509, RADIUS, and 802.1X.

Wireless 
Several Wi-Fi modules from different chip-makers like QCA, Broadcom, TI, and CSR are supported: 
 IEEE 802.11 a/b/g/n
 IEEE 802.15.4
 Bluetooth, Bluetooth LE

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, Constrained Application Protocol (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 Unified Architecture (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 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 
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
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 
Example devices using Nucleus products include:

 New Horizons, interplanetary space probe
 Honeywell for Critical Terrain Awareness Technology in the aviation industry
 IVL Technologies' On-Key Karaoke Handheld Player uses Nucleus PLUS
 Logitech uses it in its Pocket Video Portable Digital Video Cameras
 SK Telecom's first commercialization of code-division multiple access (CDMA) technology in Korea
 Mediatek Dual SIM Dual processor based chipsets found on most Chinese phones
 NEC High Definition Mobile Handset
 ASC's RBOX Multi-Service Aggregator Family uses Nucleus PLUS
 TI-Nspire series handheld calculators use Nucleus as the basis of their operating system
 Telephonics uses it in the USAF C-130 Avionics Modernization Program, SDI System, and the 767 Tanker Program, Aviation Communication System
 Garmin International to develop the CNX80 navigational Global Positioning System (GPS) for general aviation
 A large number of Motorola, Samsung, LG, Siemens/Benq, Sagem and NEC mobile phones
 The S-Class UI on LG Arena, New Chocolate etc.
 Intellon Home Plug AV
 Crestron Electronics on their older 2-series control system processors
 BSS Audio in their Soundweb London range.
 Later versions of Creative ZEN product line
 The Infineon S-Gold2 chipset used in Siemens phones: S75, E71, M81, etc.
 The Infineon S-Gold2 baseband chip used in Apple's iPhone
 The Metrotech i5000 Utility Locating Receiver
 The Creative Zen Vision line
 Intel Active Management Technology, vPro embedded controller
 Tandberg MXP video & telephony appliances
 Datex-Ohmeda Avance anesthesia system
 Zoll Medical Corporation defibrillators
 Samsung bada platform based devices
 Mindray early patient monitor, ultrasound device, and hematology analyzer

See also
 Comparison of real-time operating systems

References

External links
 

ARM operating systems
Embedded operating systems
Microkernel-based operating systems
Microkernels
MIPS operating systems
Proprietary operating systems
Real-time operating systems