Hardware Independence and Portability

The EUROS system modules do not access the underlying hardware directly, but only through a standardized interface referred to as microcontroller abstraction layer (MCAL). EUROS supports also a powerful and universal MCAL-based complex device driver interface. The concept of using the MCAL as a dedicated software abstraction layer instead of interfacing directly the hardware provides the highest possible hardware-independence and device driver portability.
Future microcontroller technologies or new peripheral components can be easily absorbed through a MCAL adaptation, thus extending the lifetime of products based on EUROS.

Modular Structure

EUROS consists of a set of independent software components. This set up enables the implementation of custom-made system configurations by choosing only the needed software components for a certain application.


Since not all offered system object types and associated system services may be needed by an application, the object orientation enables the scalability of the system software: only those system objects types together with the associated API’s needed by an application are included in the final configuration.

Universal Operating System Platform

Based on its extremely real-time responsiveness, scalability and versatility EUROS can be used effectively as a system software basis for a very broad range of applications including automotive, telecommunications, consumer devices, defense, aerospace, fleet management, industrial automation, medical devices, point-of-sale systems, process control, security systems, test equipment, etc.

Cluster Organization Structure

The innovative EUROS cluster approach leads to such benefits like:
• Multiple objects can be accessed by a single system call
• Particularly short execution times when multiple objects are processing simultaneously
• A multiple wait operation is easy to implement by addressing all the objects in a cluster
• System requests with 'transmit' character may be turned into 'broadcast' ones
• A task can operate on an object cluster, without knowledge of the involved individual objects (anonymity)
• Extensions through adding more objects in a cluster can be made without having to change the task, which controls them.

Easy Customization

Due to its hardware-independence approach (MCAL) and the offered rich set of functionalities, it is an easy task to customize EUROS according to the individual application needs.

Efficient Multitasking

Multitasking is supported by exploiting the specific characteristics of the various microcontroller architectures.

Multicore/Multiprocessor Computing

EUROS supports systems based on many cores (tightly-coupled multiprocessing) as well system spared over several separate microcontrollers (loosely-coupled multiprocessing).

Comfortable Interrupt Processing

Within EUROS a set of functions covering all aspects of the interrupt processing is provided. In this manner the programmer is relieved from the implementation of interrupt-related operations.

Dynamic generation of system objects

The user may choose to install all system objects at the initialization time thus creating a static system. In addition, system objects may be installed also dynamically during the execution time, thus in contrast to the conventional operating systems also device drivers can be installed or exchanged at execution time.
Furthermore, the dynamic creation on an object allows also the control of its life-span.

Optimized Task Management

• Unrestricted number of tasks
• Priority-based scheduling (256 priority levels),      optionally combined with time slicing (round-robin) and combination of both.
• Dynamic priority change
• Deterministic behavior
• Extremely short task switch times

Run-time coordination with the operating system allowing:

• Synchronous system calls (the caller task waits for completion of the requested operation )
• Asynchronous system calls (the caller task continues its parallel execution with the option to be informed by EUROS regarding the completion of the requested operation by means of the private event flags or private signals
• CHECK-type system call, executed only if the available resources allow its immediate execution
• Multiple wait on different system objects is possible
• All system calls can be postponed executed (time delayed)

Comprehensive driver interface:

• All services of the I/O system and all coordination mechanisms are available for all drivers without additional effort from the driver programmer.
• Services such as task coordination, queue management and time-out handling are provided by the I/O system. Driver implementation is reduced to programming the device-dependent functions only.

Flexibility through dynamic linking and loading

Using dynamic linking provides essential advantages to the structure of an application:
• User application can be downloaded at runtime
• Individual parts of application modules can be replaced
• Device drivers can be dynamically loaded or replaced
• In order to exchange individual modules it is not necessary to stop the entire system, instead only the replaced module has to be restarted.
• By using dynamic linking even EUROS system components located in flash can be replaced, thus allowing a system update at run-time.
• In the debug phase, only the module to be tested has to be loaded into the memory
• Several non-simultaneously loaded modules can use the same memory

Test and debug support:

• EUROS version containing additional checks and outputs
• EUROS version with support for event tracing and visualization in the EUROScope debugger
• EUROS version with support for code coverage in the EUROScope debugger