embOS & embOS-Safe are Segger’s Real-Time Operating Systems (RTOS)
|
From battery-powered, single-chip products to high-end systems: The embOS RTOS is used in different target markets including industrial controls, IoT (Internet of Things), networking, consumer electronics, safety critical devices, automotive to medical devices and avionic. This makes it the market-leading RTOS in the embedded industry.
Using SEGGER’s innovative Cycle-based Scheduling, embOS-Ultra is the first choice for applications requiring ultra low power or extremely high precision. Its time resolution is based on the CPU cycle and provides the highest precision possible. Removing iterative scheduler calls from the kernel reduces the energy consumption significantly.
embOS-MPU uses the hardware’s memory protection unit and additional implemented software mechanisms to prevent one task from affecting the entire system. This guarantees that even if a bug occurs in one task, all other tasks and the operating system itself continue their execution, enhancing both the stability and safety of embedded applications.
TÜV Süd Germany has certified the RTOS embOS according to IEC 61508 SIL 3 and IEC 62304 Class C. embOS-Safe provides a pre-certified component which simplifies any certification process on the customer side. As a result, embOS-Safe is perfectly suited for being the fundamental component of safety products.
embOS also comes with a Certified version for functional safety applications:
embOS RTOS (real-time operating system) has been certified in accordance with TÜV SÜD Germany. Certification is compliant with IEC 61508 SIL 3 and IEC 62304 Class C.
embOS Features
* Depends on CPU, compiler and library model used
The kernel is written in “C” and assembly language. It is very efficient and can be ported to any processor for which an ANSI compliant “C”-compiler exists. These are basically all 8, 16 and 32-bit processors. However, one certain restriction applies: There is very little sense in having a real-time operating system for a processor that has a stack-area which is too limited to hold multiple stacks, because in this case the stack would have to be copied every time a task is activated or deactivated thereby limiting the real-time capabilities of the system. This is only the case for very few older, low-end 8-bit processors. We are working on supporting the entire range of 8- and 16- bit as well as certain 32-bit Microcontrollers. If you are interested in a particular processor, please do not hesitate to contact us.
embOS since version 3.06 includes API call trace even in the free full functional trial version.
For various processors the current embOS version is available as full functional trial version and can be downloaded here. All trial versions contain a complete ready to go start project, the users manual and embOSView tool which can also be downloaded separately from our download page.
All new versions of embOS support API- and user-function call trace that can be displayed via embOSView.
Of course there are some limitations for the trial version: The maximum number of tasks is limited to 3. You are not allowed to use this version in a product. Customer support is not included.
An embOS trial version for each listed processor can be downloaded here.
The following processors and compiler are currently supported by embOS:
Core | Chip Manufacturer | “C”-compiler | Supported CPUs | Supported memory models |
---|---|---|---|---|
ARM 7/9/11 Cortex-A5/A8/A9 |
Various | IAR Systems | ARM7TDMI, ARM710T, ARM720T, ARM7EJ-S, ARM9TDMI, ARM920T, ARM922T, ARM940T, ARM926EJ-S, XScale, Cortex-A5, Cortex-A8, Cortex-A9 | All |
ARM 7/9/11 Cortex-A5/A8/A9 |
Various | Atollic TrueStudio | ARM7TDMI, ARM710T, ARM720T, ARM7EJ-S, ARM9TDMI, ARM920T, ARM922T, ARM940T, ARM926EJ-S, XScale, Cortex-A5, Cortex-A8, Cortex-A9 | All |
ARM 7/9/11 Cortex-A5/A8/A9 |
Various | emIDE | ARM7TDMI, ARM710T, ARM720T, ARM7EJ-S, ARM9TDMI, ARM920T, ARM922T, ARM940T, ARM926EJ-S, XScale, Cortex-A5, Cortex-A8, Cortex-A9 | All |
ARM 7/9/11 Cortex-A5/A8/A9 |
Various | GNU | ARM7TDMI, ARM710T, ARM720T, ARM7EJ-S, ARM9TDMI, ARM920T, ARM922T, ARM940T, ARM926EJ-S, XScale, Cortex-A5, Cortex-A8, Cortex-A9 | All |
ARM 7/9/11 Cortex-A5/A8/A9 |
Various | Rowley | ARM7TDMI, ARM710T, ARM720T, ARM7EJ-S, ARM9TDMI, ARM920T, ARM922T, ARM940T, ARM926EJ-S, XScale, Cortex-A5, Cortex-A8, Cortex-A9 | All |
ARM 7/9/11 | Various | KEIL MDK | ARM7TDMI, ARM710T, ARM720T, ARM7EJ-S, ARM9TDMI, ARM920T, ARM922T, ARM940T, ARM926EJ-S, XScale | All |
ARM 7/9/11 | Various | ARM ADS 1.2 toolkit | ARM7TDMI, ARM710T, ARM720T, ARM7EJ-S, ARM9TDMI, ARM920T, ARM922T, ARM940T, ARM926EJ-S, XScale | All |
ARM 7/9/11 | Various | ARM RVDS 3.0 | ARM7TDMI, ARM710T, ARM720T, ARM7EJ-S, ARM9TDMI, ARM920T, ARM922T, ARM940T, ARM926EJ-S, XScale | All |
ARM Cortex-A5/A8/A9 |
Various | CodeSourcery | Cortex-A5, Cortex-A8, Cortex-A9 | All |
ARM Cortex M | ATMEL | Atmel Studio | Cortex-M0, Cortex-M1, Cortex-M3, Cortex-M4, Cortex-M4F, Cortex-M7 | All |
ARM Cortex M | Various | Atollic TrueStudio | Cortex-M0, Cortex-M1, Cortex-M3, Cortex-M4, Cortex-M4F, Cortex-M7 | All |
ARM Cortex M | Various | CodeSourcery | Cortex-M0, Cortex-M1, Cortex-M3, Cortex-M4, Cortex-M4F, Cortex-M7 | All |
ARM Cortex M | Cypress | Cypress PSoC5 | Cortex-M0, Cortex-M1, Cortex-M3, Cortex-M4, Cortex-M4F, Cortex-M7 | All |
ARM Cortex M | Various | ARM DS-5 | Cortex-M0, Cortex-M1, Cortex-M3, Cortex-M4, Cortex-M4F, Cortex-M7 | All |
ARM Cortex M | Various | emIDE | Cortex-M0, Cortex-M1, Cortex-M3, Cortex-M4, Cortex-M4F, Cortex-M7 | All |
ARM Cortex M | Various | IAR Systems | Cortex-M0, Cortex-M1, Cortex-M3, Cortex-M4, Cortex-M4F, Cortex-M7 | All |
ARM Cortex M | Various | KEIL MDK | Cortex-M0, Cortex-M1, Cortex-M3, Cortex-M4, Cortex-M4F, Cortex-M7 | All |
ARM Cortex M | Various | Rowley | Cortex-M0, Cortex-M1, Cortex-M3, Cortex-M4, Cortex-M4F, Cortex-M7 | All |
ARM Cortex M | Various | TICC | Cortex-M0, Cortex-M1, Cortex-M3, Cortex-M4, Cortex-M4F, Cortex-M7 | All |
ARM Cortex M | Various | GNU | Cortex-M0, Cortex-M1, Cortex-M3, Cortex-M4, Cortex-M4F, Cortex-M7 | All |
AVR | ATMEL | IAR Systems | ATMEGA103, ATMEGA64, ATMEGA128, ATMEGA2561 | Small data, small and large code |
AVR32 UC | ATMEL | AVR32 Studio / GNU | AVR32UC3A, AVR32UC3B, AVR32UC3A3 | All |
AVR32 UC | ATMEL | IAR Systems | AVR32UC3A, AVR32UC3B, AVR32UC3A3 | |
AVR32 AP | ATMEL | AVR32 Studio / GNU | AT32AP7000 | All |
C16x | Infineon | KEIL | C166, XC166 | All except TINY |
Coldfire V1 | Freescale | Metrowerks CodeWarrior | V1 Core | All (Near, Far) |
Coldfire | Freescale | Metrowerks CodeWarrior | V2, V3, V4 core | All (Near, Far) |
Coldfire V1/V2/V3 | Freescale | IAR Systems | V1, V2, V3, V4 core | All (Near, Far) |
CR16C | National Semiconductor | IAR | CR16C | Medium / Large / Indexed / Non indexed |
F2MC-16LX, F2MC-16FX |
Spansion | Spansion | F2MC-16LX, F2MC-16FX | All (Small, Medium, Compact, Large) |
FR30 / FR50 / FR70 | Spansion | Spansion | FR30, FR50, FR70 | All |
H8 / H8S | RENESAS | IAR Systems | H8, H8S | All (Small, Large, Huge) |
H8 / H8S / H8SX | RENESAS | HEW | H8, H8S, H8SX | All |
HCS12 | Freescale | CodeWarrior | HCS12, HCS12X | Small, Banked |
M16C/R8C | RENESAS | IAR Systems, compiler for M16C | M16C62, M16C62P, R8C1B, … | All (Near, Far, Huge) |
M16C6X | RENESAS | HEW | M16C62, M16C62P | All |
M16C/R8C | RENESAS | Tasking | M16C62, M16C62P, R8C1B, … | All (Small, Medium, Large) |
M32C & M16C80 | RENESAS | IAR Systems | M32C, MC80 | All (Near, Far, Huge) |
M32C & M16C80 | RENESAS | Renesas NC308 ver. 540 and HEW 4 | M32C, MC80 | All (Near, Far) |
MSP430 & MSP430x | Texas Instruments | IAR Systems | MSP430Fxxx, MSP430X | All, except medium data model for MSP430x |
MSP430 | Texas Instruments | Rowley | MSP430Fxxx | All |
MSP430 & MSP430x | Texas Instruments | TI Code Composer | MSP430Fxxx, MSP430X | All |
NIOS 2 | ALTERA | GNU | NIOS 2 | All |
PIC18 | Microchip | Microchip | PIC18F87xx | All |
PIC24F/PIC24H, PIC30F/dsPIC33F |
Microchip | Microchip | PIC24F, PIC24H, PIC30, dsPIC33 | All |
PIC32 | Microchip | Microchip | PIC32MX360F, PIC32MX795F, … | All |
PowerPC | Freescale | CodeWarrior | MPC5645S | All |
R32C | RENESAS | HEW | R32C | All |
R32C | RENESAS | IAR Systems, compiler for R32C | R32C | All |
R8C | RENESAS | HEW | R8C23, R8C1B, … | All |
RL78 | RENESAS | IAR | RL78/G13, … | All |
RX | RENESAS | CCRX (Renesas) | RX111, RX210, RX610, RX62N, RX630, RX63N | All |
RX | RENESAS | KPIT GNU | RX111, RX210, RX610, RX62N, RX630, RX63N | All |
RX | RENESAS | IAR | RX111, RX210, RX610, RX62N, RX630, RX63N | All |
SH2 | RENESAS | HEW | SH27086 | All |
SH2A | RENESAS | IAR | SH2A7203, SH7216, SH2A7264, SH2A7286, SH2A7670 | All |
SH2A | RENESAS | HEW | SH2A7203, SH7216, SH2A7264, SH2A7286, SH2A7670 | All |
SH2A | RENESAS | GNU | SH2A7203, SH7216, SH2A7264, SH2A7286, SH2A7670 | All |
SO8 | Freescale | CodeWarrior | SO8MP, SO8QE, SO8GB, … | All |
ST7 | ST Microelectronics | COSMIC CXST7 | ST7 | long stack |
STM8 | ST Microelectronics | IAR | STM8-A, STM8-S | All code models, medium data model |
TLCS900 | TOSHIBA | TOSHIBA CC900 | CC900 | All |
V850 / V850E / V850ES | NEC | IAR Systems | V850, V850E, V850ES | All |
V850 / V850E / V850ES | NEC | GREEN HILLS | V850, V850E, V850ES | All |
V850 | NEC | NEC | V850, V850E, V850ES | All |
Z180 | ZILOG | IAR Systems | Z180 | Small, Banked |
64180 | HITACHI | IAR Systems | HD64180 | Small, Banked |
78K0/K0S/K0R | NEC | IAR Systems | 78K0, K0S, K0R | Small, near, far |
78K4 | NEC | IAR Systems | 78K4 | Large |
8051 | Silicon Labs | IAR Systems | 8051 | Large |
We need a documentation of the CPU/MPU and an overview on all members of that series that shall be supported, an ANSI-compliant “C”-compiler and – preferably – an emulator. The following steps are taken and – if necessary – repeated:
Since the system is based on a proven “C”-code, the system is reliable when it has undergone the final testing. This final testing is designed to capture all problems that can possibly occur when porting the system to a new target !
We are porting our OS to more and more targets.
If you are interested in a particular target, please let us know !