
|
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
| 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
|