embOS-MPU

embOS-Classic-MPU and embOS-Ultra-MPU

The high-precision, impressively energy-efficient RTOS

embOS-MPU offers memory protection on top of the proven RTOS (Real-Time Operating System). It significantly enhances both stability and safety for embedded applications, simplifying any certification process.

Overview

SEGGER's tried-and-tested real-time operating systems embOS-Classic and embOS-Ultra are also available with memory protection. Essential for embedded-system stability, safety, and security, memory protection ensures that bugs in a task do not corrupt an entire system. It also enhances fault tolerance and enables safer execution of critical functions.

embos mpu overview

Key features

Memory-protection technology uses a processor's memory protection unit (MPU) to isolate individual tasks from both one another and the operating system. Errors in a task are prevented from affecting an entire system, ensuring that safety-critical functions are executed reliably.

As a result, embedded systems are more stable, as unprivileged tasks have only controlled access to memory, peripherals, and operating-system objects.

memory protection
reli
impressive flexibility

Memory Protection

High Reliability

Impressive Flexibility

embOS-MPU ensures that unprivileged tasks operate within strictly defined boundaries for memory and resources, preventing these tasks from affecting other tasks or an operating system. All tasks are fully sandboxed.

Through the strict separation of privileged and unprivileged tasks, a system remains stable even in the event of failure. Critical functions can continue running independently.

Unprivileged tasks can be granted controlled access to memory regions, peripherals, and RTOS objects. This allows developers to define permissions precisely, ensuring both security and efficient resource utilization.

Use Cases

From battery-powered single-chip products to systems that demand ultra-fast responses, flexibility, and the ability to schedule multiple tasks, embOS-MPU provides a robust foundation for system security and efficiency. The range of potential application areas is diverse, and includes medical equipment, automation, avionics, and any other application area where safety is critical.

safety critical system
data integrity
stability consumer electronics

Reliability in Safety-Critical Systems

Data Integrity in Embedded Applications

Stability in Consumer Electronics

In safety-critical systems, such as those found in medical devices, automotive control units, and industrial automation, reliability is paramount. embOS-MPU enhances system integrity, ensuring that faults in one task do not compromise an entire system. This guarantees continued operation even in the presence of software errors.

IoT and connected devices, security is a top priority. embOS-MPU enforces strict memory access rules, protecting sensitive data and preventing unauthorized code execution. The result? Significantly reduced risk of a security breach.

Consumer Electronics, such as smart home devices, wearables, and infotainment systems, embOS-MPU enhances reliability by preventing faults in one task from affecting an entire system. This ensures smooth and uninterrupted device operation, even if individual tasks encounter issues.

How embOS-MPU Works

Memory protection is a mechanism for controlling memory-access rights. It is part of most modern processor architectures and operating systems, and it prevents possible bugs or even malware contained in a task from affecting an entire system. For memory protection to work, certain application tasks must be restricted from accessing key system components like memory, special function registers, and the operating system's control structures, which could affect other tasks or the operating system itself.

embos mpu function embOS-MPU

To enhance security, embOS-MPU applications consist of two parts: a privileged section, responsible for system initialization and driver management, and an unprivileged section, responsible for the main application. This division of labor minimizes the need for extensive verification. If can unprivileged task violates access restrictions or triggers a fault, embOS-MPU detects the violation; automatically terminates it; and, if needed, executes a call back function to handle the event.

Memory-protection technology is available for embOS-Classic and embOS-Ultra.

embos classic mpu
embos ultra mpu

embOS-Classic-MPU

embOS-Ultra-MPU

embOS-Classic enhanced with embOS-MPU technology combines proven real-time performance with robust memory protection. MPU technology allows embOS-Classic to maintain its efficient, priority-based task scheduling while also offering an extra layer of safety.

embOS-Ultra with embOS-MPU technology delivers high-precision real-time performance, while memory-protection technology ensures system stability and safety. Furthermore, Cycle-Resolution Timing enables precise task execution with minimal latency.

Note: Where functional-safety certification is required, SEGGER offers embOS-Safe.

Supported Cores and Compilers

embOS-MPU is available for the core and compiler combinations listed in the complete overview of embOS ports.

Complete overview of embOS ports

Chip VendorCoreCompiler / IDEembOSPart#
Simulationx86 / x86_64LinuxembOS-Classic Sim Linux1.40.x.35
Microsoft VisualStudioembOS-Classic Sim VisualStudio1.40.x.29
MinGW / GCCembOS-Classic Sim MinGW1.40.x.30
LinuxembOS-Classic MPU Sim Linux1.23.x.35
ARMARM7 / ARM9ARM ADS 1.2 toolkitembOS-Classic ARM ADS121.08.x.13
ARM RVDS 3.0embOS-Classic ARM RVDS301.08.x.16
GCCembOS-Classic ARM GCC1.08.x.25
IAR EWARMembOS-Classic ARM IAR1.08.x.01
Keil MDKembOS-Classic ARM Keil MDK1.08.x.08
Rowley CrossWorksembOS-Classic ARM Rowley1.08.x.14
SEGGER Embedded StudioembOS-Ultra ARM ES
embOS-Classic ARM ES
15.08.x.28
1.08.x.28
Cortex-A / Cortex-RGCCembOS-Classic ARM GCC
embOS-Classic ARM64 GCC
1.08.x.25
1.45.x.25
IAR EWARMembOS-Classic ARM IAR1.08.x.01
Keil MDKembOS-Classic ARM Keil MDK1.08.x.08
Rowley CrossWorksembOS-Classic ARM Rowley1.08.x.14
SEGGER Embedded StudioembOS-Ultra ARM ES
embOS-Classic ARM ES
15.08.x.28
1.08.x.28
Cortex-MARM DS-5embOS-Classic Cortex-M DS51.23.x.27
GCCembOS-Ultra Cortex-M GCC
embOS-Classic Cortex-M GCC
embOS-Classic-MPU Cortex-M GCC
15.23.x.25
1.23.x.25
1.73.x.25
IAR EWARMembOS-Ultra Cortex-M IAR
embOS-Classic Cortex-M IAR
embOS-Classic-MPU Cortex-M IAR
15.23.x.01
1.23.x.01
1.73.x.01
Keil MDKembOS-Classic Cortex-M Keil MDK1.23.x.08
Rowley CrossWorksembOS-Classic Cortex-M Rowley1.23.x.14
SEGGER Embedded StudioembOS-Ultra Cortex-M ES
embOS-Ultra-MPU Cortex-M ES
embOS-Classic Cortex-M ES
embOS-Classic-MPU Cortex-M ES
15.23.x.28
15.73.x.28
1.23.x.28
1.73.x.28
TI Code ComposerembOS-Classic Cortex-M TICC1.23.x.22
AllwinnerCortex-A / Cortex-RSEGGER Embedded StudioembOS-Ultra ARM ES15.08.x.28
Ambiq MicroCortex-MSEGGER Embedded StudioembOS-Ultra Cortex-M ES
embOS-Ultra-MPU Cortex-M ES
embOS-Classic Cortex-M ES
embOS-Classic-MPU Cortex-M ES
15.23.x.28
15.73.x.28
1.23.x.28
1.73.x.28
Cypress SemiconductorCortex-MSEGGER Embedded StudioembOS-Ultra Cortex-M ES
embOS-Ultra-MPU Cortex-M ES
embOS-Classic Cortex-M ES
embOS-Classic-MPU Cortex-M ES
15.23.x.28
15.73.x.28
1.23.x.28
1.73.x.28
F2MC-16LX/FXSoftuneembOS-Classic F2MC-16LX/FX Softune1.07.x.05
FR30/50/70SoftuneembOS-Classic FR30/50/70 Softune1.14.x.05
GigaDeviceCortex-MSEGGER Embedded StudioembOS-Ultra Cortex-M ES
embOS-Ultra-MPU Cortex-M ES
embOS-Classic Cortex-M ES
embOS-Classic-MPU Cortex-M ES
15.23.x.28
15.73.x.28
1.23.x.28
1.73.x.28
RISC-VSEGGER Embedded StudioembOS-Ultra RISC-V ES
embOS-Classic RISC-V ES
15.55.x.28
1.55.x.28
GCCembOS-Classic RISC-V GCC1.55.x.25
IARembOS-Classic RISC-V GCC1.55.x.01
IDTCortex-MSEGGER Embedded StudioembOS-Ultra Cortex-M ES
embOS-Ultra-MPU Cortex-M ES
embOS-Classic Cortex-M ES
embOS-Classic-MPU Cortex-M ES
15.23.x.28
15.73.x.28
1.23.x.28
1.73.x.28
InfineonC16xKeil MDKembOS-Classic C16x Keil MDK1.11.x.08
TaskingembOS-Classic C16x Tasking1.11.x.02
Cortex-MSEGGER Embedded StudioembOS-Ultra Cortex-M ES
embOS-Ultra-MPU Cortex-M ES
embOS-Classic Cortex-M ES
embOS-Classic-MPU Cortex-M ES
15.23.x.28
15.73.x.28
1.23.x.28
1.73.x.28
Intel FPGA (Altera)Cortex-A / Cortex-RSEGGER Embedded StudioembOS-Ultra ARM ES
embOS-Classic ARM ES
15.08.x.28
1.08.x.28
NIOS2Altera GCCembOS-Classic NIOS2 GNU1.16.x.11
Maxim IntegratedARM7 / ARM9SEGGER Embedded StudioembOS-Ultra ARM ES
embOS-Classic ARM ES
15.08.x.28
1.08.x.28
Cortex-MSEGGER Embedded StudioembOS-Ultra Cortex-M ES
embOS-Ultra-MPU Cortex-M ES
embOS-Classic Cortex-M ES
embOS-MPU Cortex-M ES
15.23.x.28
15.73.x.28
1.23.x.28
1.73.x.28
MicrochipAVR ATMega / ATXMegaIARembOS-Classic AVR IAR1.10.x.01
AVR32GNUembOS-Classic AVR32AP GNU1.28.x.11
GNUembOS-Classic AVR32UC GNU1.28.x.11
IARembOS-Classic AVR32UC IAR1.28.x.01
Cortex-A / Cortex-RSEGGER Embedded StudioembOS-Ultra ARM ES
embOS-Classic ARM ES
15.08.x.28
1.08.x.28
Cortex-MSEGGER Embedded StudioembOS-Ultra Cortex-M ES
embOS-Ultra-MPU Cortex-M ES
embOS-Classic Cortex-M ES
embOS-Classic-MPU Cortex-M ES
15.23.x.28
15.73.x.28
1.23.x.28
1.73.x.28
PIC18Microchip XC18embOS-Classic PIC18 MPLAB C181.29.x.18
PIC24/PIC30/dsPIC33Microchip XC16embOS-Classic PIC24 XC161.22.x.18
PIC32Microchip XC32embOS-Classic PIC32 XC321.25.x.18
Nordic SemiconductorCortex-MSEGGER Embedded StudioembOS-Ultra Cortex-M ES
embOS-Ultra-MPU Cortex-M ES
embOS-Classic Cortex-M ES
embOS-Classic-MPU Cortex-M ES
15.23.x.28
15.73.x.28
1.23.x.28
1.73.x.28
NuvotonCortex-MSEGGER Embedded StudioembOS-Ultra Cortex-M ES
embOS-Ultra-MPU Cortex-M ES
embOS-Classic Cortex-M ES
embOS-Classic-MPU Cortex-M ES
15.23.x.28
15.73.x.28
1.23.x.28
1.73.x.28
NXPColdFireCodeWarriorembOS-Classic ColdFire CodeWarrior1.21.x.1.7
CodeWarrior MCUembOS-Classic ColdFire CodeWarrior MCU1.21.x.33
CodeWarriorembOS-Classic ColdFireV1 CodeWarrior1.31.x.17
IARembOS-Classic ColdFire IAR1.21.x.01
Cortex-A / Cortex-RSEGGER Embedded StudioembOS-Ultra ARM ES
embOS-Classic ARM ES
15.08.x.28
1.08.x.28
Cortex-MSEGGER Embedded StudioembOS-Ultra Cortex-M ES
embOS-Ultra-MPU Cortex-M ES
embOS-Classic Cortex-M ES
embOS-Classic-MPU Cortex-M ES
15.23.x.28
15.73.x.28
1.23.x.28
1.73.x.28
HCS12CodeWarriorembOS-Classic HCS12 CodeWarrior1.37.x.17
PowerPCCodeWarriorembOS-Classic PowerPC CodeWarrior1.38.x.17
S12ZS12lisaembOS-Classic S12Z S12lisa1.44.x.31
SO8CodeWarriorembOS-Classic SO8 CodeWarrior1.33.x.1.7
OKI SemiconductorARM7 / ARM9SEGGER Embedded StudioembOS-Ultra ARM ES
embOS-Classic ARM ES
15.08.x.28
1.08.x.28
Renesas78K0IARembOS-Classic 78K0/K0S/K0R IAR1.02.x.01
78K4IARembOS-Classic 78K4 IAR1.02.x.01
Cortex-A / Cortex-RSEGGER Embedded StudioembOS-Ultra ARM ES
embOS-Classic ARM ES
15.08.x.28
1.08.x.28
Cortex-MSEGGER Embedded StudioembOS-Ultra Cortex-M ES
embOS-Ultra-MPU Cortex-M ES
embOS-Classic Cortex-M ES
embOS-Classic-MPU Cortex-M ES
15.23.x.28
15.73.x.28
1.23.x.28
1.73.x.28
H8/H8S/H8SXIARembOS-Classic H8/H8S IAR1.18.x.01
HEWembOS-Classic H8/H8S/H8SX HEW1.18.x.07
M16C/R8CHEWembOS-Classic R8C HEW1.20.x.07
GNUembOS-Classic M16C GNU1.05.x.11
NC30embOS-Classic M16C NC31.05.x.04
IARembOS-Classic M16C/R8C IAR1.05.x.01
TaskingembOS-Classic M16C/R8C Tasking1.05.x.02
M32C/M16C80NC308embOS-Classic M32C/M16C80 NC3081.06.x.04
IARembOS-Classic M32C/M16C80 IAR1.06.x.01
RASEGGER Embedded StudioembOS-Ultra Cortex-M ES
embOS-Ultra-MPU Cortex-M ES
embOS-Classic Cortex-M ES
embOS-Classic-MPU Cortex-M ES
15.23.x.28
15.73.x.28
1.23.x.28
1.73.x.28
RE01SEGGER Embedded StudioembOS-Classic Cortex-M ES
embOS-Ultra Cortex-M ES
1.23.x.28
15.23.x.28
RH850IARembOS-Classic RH850 IAR1.42.x.01
RL78CCRLembOS-Classic RL78 CCRL1.36.x.07
IARembOS-Classic RL78 IAR1.36.x.01
RXIARembOS-Classic RX IAR1.34.x.01
CCRXembOS-Classic RX CCRX1.34.x.07
GNUembOS-Classic RX GNU1.34.x.23
RZKPIT GNUembOS-Classic RZ KPIT GNU1.08.x.23
R32CIARembOS-Classic R32C IAR1.26.x.01
HEWembOS-Classic R32C HEW1.26.x.07
SH2HEWembOS-Classic SH2 HEW1.24.x.07
SH2AHEWembOS-Classic SH2A HEW1.27.x.07
HEW GNUembOS-Classic SH2A HEW GNU1.27.x.11
IARembOS-Classic SH2A IAR1.27.x.01
V850GreenHillsembOS-Classic V850 GreenHills1.03.x.03
IARembOS-Classic V850 IAR1.03.x.01
NECembOS-Classic V850 NEC1.03.x.19
Silicon Labs8051IARembOS-Classic 8051 IAR1.39.x.01
Cortex-MSEGGER Embedded StudioembOS-Ultra Cortex-M ES
embOS-Ultra-MPU Cortex-M ES
embOS-Classic Cortex-M ES
embOS-Classic-MPU Cortex-M ES
15.23.x.28
15.73.x.28
1.23.x.28
1.73.x.28
SiFiveRISC-VSEGGER Embedded StudioembOS-Ultra RISC-V ES
embOS-Classic RISC-V ES
15.55.x.28
1.55.x.28
GCCembOS-Classic RISC-V GCC1.55.x.25
IARembOS-Classic RISC-V IAR1.55.x.01
ST MicroelectronicsCortex-A / Cortex-RSEGGER Embedded StudioembOS-Ultra ARM ES
embOS-Classic ARM ES
15.08.x.28
1.08.x.28
Cortex-MSEGGER Embedded StudioembOS-Ultra Cortex-M ES
embOS-Ultra-MPU Cortex-M ES
embOS-Classic Cortex-M ES
embOS-Classic-MPU Cortex-M ES
15.23.x.28
15.73.x.28
1.23.x.28
1.73.x.28
STM8IARembOS-Classic STM8 IAR1.35.x.01
ST7CosmicembOS-Classic ST7 Cosmic1.12.x.09
SynopsysARC EM4MetaWareembOS-Classic ARC MetaWare1.47.x.33
Texas InstrumentsCortex-A / Cortex-RSEGGER Embedded StudioembOS-Ultra ARM ES
embOS-Classic ARM ES
15.08.x.28
1.08.x.28
Cortex-MSEGGER Embedded StudioembOS-Ultra Cortex-M ES
embOS-Ultra-MPU Cortex-M ES
embOS-Classic Cortex-M ES
embOS-Classic-MPU Cortex-M ES
15.23.x.28
15.73.x.28
1.23.x.28
1.73.x.28
CR16CIARembOS-Classic CR16C IAR1.19.x.01
MSP430GCCembOS-Classic MSP430 GCC1.15.x.25
IARembOS-Classic MSP430 IAR1.15.x.01
RowleyembOS-Classic MSP430 Rowley
1.15.x.14
TICCembOS-Classic MSP430 TICC1.15.x.22
ToshibaCortex-A / Cortex-RSEGGER Embedded StudioembOS-Ultra ARM ES
embOS-Classic ARM ES
15.08.x.28
1.08.x.28
Cortex-MSEGGER Embedded StudioembOS-Ultra Cortex-M ES
embOS-Ultra-MPU Cortex-M ES
embOS-Classic Cortex-M ES
embOS-Classic-MPU Cortex-M ES
15.23.x.28
15.73.x.28
1.23.x.28
1.73.x.28
TLCS-900ToshibaembOS-Classic TLCS-900 Toshiba1.13.x.12
XilinxCortex-A / Cortex-RSEGGER Embedded StudioembOS-Ultra ARM ES
embOS-Classic ARM ES
15.08.x.28
1.08.x.28

embOS-MPU Packages

embOS-MPU technology is available forembOS-Classic and embOS-Ultra. Both options can be delivered as an object-code or source-code package. The source-code package expands on the object-code package by including embOS source code. Using embOS source code enables the use of application-specific compiler options. Compile-time switches allows users to customize embOS by enabling only required functionalities. Adding embOS source code to a project provides additional insight when debugging at source level.

All embOS packages include the same ready-to-use board support packages for various devices and evaluation boards.

FeaturesObject CodeSource Code
embOS object code librarySupportedSupported
embOS source code libraryNot SupportedSupported
embOSView - Profiling PC toolSupportedSupported
embOS manualSupportedSupported
CPU - and compiler-specific manualSupportedSupported
Release notesSupportedSupported
embOS IDE pluginsSupportedSupported
SystemView instrumentationSupportedSupported
Device Supported
Board support packagesSupportedSupported
Updates and technical support
Features & maintenance updatesSupportedSupported
Technical supportSupportedSupported

Licensing

embOS-MPU is available under various Embedded Software License models and delivered in source code packages. With a wide range of licensing options, embOS-MPU can fulfill commercial requirements as well as technical requirements. All licenses are one-time payments. embOS-MPU is royalty-free and not subscription-based. This makes the software a part of the equipment expenses, keeping the costs static.

The embOS-MPU licenses include:

  • 6 months of updates and support by SEGGER's Embedded Experts