logo slogan

Segger embOS RTOS

embOS is a priority-controlled real time operating system, designed to be used as foundation for the development of embedded real-time applications. It is a zero interrupt latency*, high-performance RTOS that has been optimised for minimum memory consumption in both RAM and ROM, as well as high speed and versatility.

Throughout the development process of embOS, the limited resources of microcontrollers have always been kept in mind. The internal structure of embOS has been optimised in a variety of applications with different customers, to fit the needs of different industries. embOS is fully source-compatible on different platforms (8/16/32 bits), making it easy to port applications to different CPUs.

Its' highly modular structure ensures that only those functions that are needed are linked, keeping the ROM size very small. Tasks can easily be created and safely communicate with each other using a complete palette of communication mechanisms such as semaphores, mailboxes, and events. Interrupt Service Routines (ISRs) can also take advantage of these communication mechanisms.

* High priority interrupts are never disabled by embOS.

 

embOS features

 

  • Preemptive scheduling: Guarantees that of all tasks in READY state, the one with the highest priority executes, except for situations where priority inversion applies.

  • Round-robin scheduling for tasks with identical priorities.

  • Preemptions can be disabled for entire tasks or for sections of a program.

  • No configuration needed

  • Up to 255 priorities: Every task can have an individual priority => the response of tasks can be precisely defined according to the requirements of the application.

  • Unlimited number of tasks (limited only by available memory).

  • Unlimited number of semaphores (limited only by available memory).

  • Unlimited number of mailboxes (limited only by available memory).

  • Size and number of messages can be freely defined.

  • Unlimited number of software timers (limited only by available memory).

  • Time resolution tick can be freely selected (default is 1ms).

  • High resolution time measurement (more accurate than tick).

  • Power management: Unused CPU time can automatically be spent in halt mode, minimizing power consumption.

  • Full interrupt support: Most API functions can be used from within the Interrupt Service Routines (ISRs).

  • Zero interrupt latency time.

  • Nested interrupts are permitted.

  • Start application and projects (BSPs) for an easy start.

  • Debug build performs runtime checks, simplifying development.

  • High precision per task profiling.

  • Real time kernel viewer (embOSView) included.

  • Very fast and efficient, yet small code.

  • Minimum RAM usage.

  • Core written in assembly language.

  • All API functions can be called from C /C++/assembly.

  • Initializations of microcontroller hardware as sources.

  • BSP for any unsupported hardware with the same CPU can easily be written by user.

  •  

Technical info

  • kernel size (ROM) 1100 - 1600 byte*

  • kernel RAM usage 18 - 25 byte *

  • kernel CPU usage at 1 ms Interrupts with 10MHz M16C : less than .3%

  • RAM usage mailbox 9 - 15 byte *

  • RAM usage binary and counting semaphore 3 byte

  • RAM usage resource semaphore 4 - 5 byte *

  • RAM usage timer 9 - 11 byte *

  • RAM usage event 0

  • Basic time unit (One Tick) Default 1 ms, can be configured, Min. 100 µs (M16C@10MHz) *

  • task activation time independent of no. of tasks(e.g. typ. 12 us M16C@10MHz)

  • zero interrupt latency

  • No. of tasks : Unlimited (by available RAM only)

  • No. of mailboxes : Unlimited (by available RAM only)

  • No. of semaphores : Unlimited (by available RAM only)

  • No. of s/w timers : Unlimited (by available RAM only)

  • Max. no. of priorities : 255

  • Max. no. of tasks with identical priorities (Round robin scheduling) Unlimited

* Depends on CPU, compiler and library model used

 

Profiling using embOSView

embOSView is a very helpful tool for analysis of the running target application in real time. It displays the state of a running application using embOS. All communication is done from within the communication interrupt routines. This means that the communication is none intrusive if embOSView is not connected and minimum intrusive while embOSView is connected. In the profiling build, embOS collects precise timing information for every task, which enables embOSView to show the CPU load.

 

prifiler

 

 

CPU load

 

The following diagram illustrates the typical CPU load imposed by embOS for the supported Renesas CPUs M7700 (low end 16 bit), M16C/60 (medium 16 bit), M16C/80 (high end 16 bit) The data is based on typical clock frequencies for these CPUs and a system time tick of one ms (1000 System timer interrupts per second)

 

cpu load

 

 

Libraries and source code

 

embOS is available as library or source code; the source code version includes libraries and the source code of the libraries. Both versions come with ready to go start projects, BSPs and embOSView. Different builds of libraries are also included: Release/stack check build, typically used in the release build of the application program; Debug/profiling build typically used in the development phase. The libraries offer the full functionality of embOS including all supported memory models of the compiler, the debug libraries and the source code for idle task and hardware initialization. However, the libraries do not allow source-level debugging of the library routines and the kernel. The full source version provides the ultimate options: embOS can be recompiled for different data sizes; different compile options give full control of the generated code, making it possible to optimise the system for versatility or minimum memory requirements. The entire system can be debugged and modified.

 

 

Supported CPUs

embOS has been ported to a variety of CPUs and development environments. Segger constantly add new devices to the list. If your microcontroller is not supported yet, please contact us

Semiconductor

Core

Altera

NIOS/NIOS2

Analog Devices

ADuC702x (ARM7 TDMI)

Atmel

SAM7/SAM7X/SAM7S/AT91SAM9x/AVR/ATmega/AVR32

Freescale

Coldfire

FUJITSU

F2MC-16LX/FR30/FR50/FR60/FR70

Infineon

C16x

LuminaryMicro

CortexM3

Microchip

PIC24

National Semiconductor

CR16C

NEC

V850/V850E/V850ES/78K0/K0S/K0R/78K4

Renesas

R8C/M16C6x/M16C80/M32C/R32C/M7700/SH2/H8/H8S/H8SX

STMicroelectronics

ST7/ARM STR7xx/STR9xx/CortexM3/

Texas Instruments

MSP430x/MSP430

TOSHIBA

TLCS900

 

PLEASE NOTE THERE ARE DEMO VERSIONS AVAILIBLE FOR MOST TARGET COMPILER COMBINATIONS

 

 

Simulation

 

embOS simulation visualizes and simulates your target hardware and allows you to write and test your application program without need of a functioning hardware. It compiles the same "C" source on a Windows PC using a native compiler. Therefore the entire application development of the simulation is identical to the one on your target system; all functions will behave in the same way.


The software includes a ready to go sample start workspace and project for Visual Studio which can be used as a good starting point for all of your applications.

 

embOS Simulation contains additional functions to visualize and simulate a hardware device. This may be used to simulate and visualize hardware ports, LEDs or displays which would normally be controlled with functions running on your real hardware.

 

embOS-Trace video with J-Link streaming by Percepio

(see tracealyzer page )

 

Percepio embOS-Trace gives an unprecedented level of insight into the run-time world of SEGGER embOS applications. This allows you to solve complex software problems in a fraction of the time otherwise needed, develop more robust designs to prevent future problems and find new ways to improve your software’s performance.(see tracealyzer page )

Using Tracealyzer with emBOS pdf

 

 

Embos Trace Demo Project PDF

 

Percepio TraceDemo for STM3240G-Eval