Segger Logo Embedded Software Solutions
Software productsHardware productsDownloadsPricesCustomersOur PartnersSitemapForumAbout us
embOS - Real time operating system
| General Info | Supported CPUs | Frame Program | Sample Program | Context switiching time | Interrupt latency | embOS Simulation | embOS IAR Plugin |

embOS is a priority-controlled multitasking system, designed to be used as an embedded operating system for the development of real time applications for a variety of microcontrollers.
It is a high-performance tool that has been optimized for minimum memory consumption in both RAM and ROM, as well as high speed and versatility.

Features

Throughout the development process of embOS, the limited resources of microcontrollers have always been kept in mind. The internal structure of the realtime operating system (RTOS) has been optimized in a variety of applications with different customers, over a period of more than 5 years, to fit the needs of the industry.

Fully source-compatible RTOS are available for a variety of microcontrollers, making it well worth the time and effort to learn how to structure realtime programs with real time-operating systems.

embOS is highly modular. This means that only those functions that are needed are linked, keeping the ROM size very small. The minimum memory consumption is little more than 1 kb of ROM and about 30 bytes of RAM (plus memory for stacks). A couple of files are supplied in source code form to make sure that you do not lose any flexibility by using embOS and that you can customize the system to fully fit your needs.

The tasks that are created by the programmer can easily and safely communicate with each other using a complete palette of communication mechanisms such as semaphores, mailboxes and events.

Some features of embOS include:

  • 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.
  • 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 the amount of available memory).
  • Unlimited number of semaphores (limited only by the amount of available memory).
  • 2 types of semaphores: resource and counting.
  • Unlimited number of mailboxes (limited only by the amount of available memory).
  • Size and number of messages can be freely defined when initializing mailboxes.
  • Unlimited number of software timers (limited only by the amount of available memory).
  • 8-bit events for every task.
  • Time resolution can be freely selected (default is 1ms).
  • Easily accessible time variable.
  • Power management:
    Unused calculation time can automatically be spent in halt mode.
  • Power-consumption is minimized.
  • Full interrupt support:
    Interrupts can call any function except those that require waiting for data, as well as create, delete or change the priority of a task. Interrupts can wake up or suspend tasks and directly communicate with tasks using all available communication instances (mailboxes, semaphores, events).
  • Very short interrupt disable-time => short interrupt latency time.
  • Nested interrupts are permitted.
  • embOS has its own interrupt stack (usage optional).
  • Frame application for an easy start.
  • Debug version performs run time checks, simplifying development.
  • Profiling and stack check may be implemented by choosing specified libraries.
  • Monitoring during run time via UART available (embOSView).
  • Very fast, efficient yet small code.
  • Minimum RAM usage.
  • Core written in assembly language.
  • Interfaces "C" and/or assembly.
  • Initialization of microcontroller hardware as sources.

Supported CPUs

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

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

Copyright SEGGER Microcontroller GmbH & Co.KG. All rights reserved.
For more information, please visit our web site www.segger.com or contact us at info@segger.com
Last update: December 7, 2007