The Embedded Configurable Operating System (eCos) software is a set of tools and a run-time environment for developing embedded applications. eCos is a configurable, open source system that allows you to build a run-time system that closely matches the needs of your application.
eCos is aimed at embedded software developers using architectures with tight memory requirements, who want a portable framework for developing their applications.
This chapter outlines the features of eCos version 1.3.1. The initial release version was 1.3, and additional 1.3 releases will incorporate an additional number, represented in this manual by "x". Please note the exact version number of the version that you are using, because it is incorporated in certain file paths.
If you want to start programming eCos immediately, see Part II: Installation Guide and Part III: Programming Tutorial .
The eCos HAL has now been ported to numerous architectures, and to one synthetic target, Linux i386. Notes on porting the HAL to new platforms are provided in the eCos Reference Manual , part: The eCos Hardware Abstraction Layer , section: Kernel porting notes .
The kernel provides, among other features, multi-threading, a choice of schedulers, a full set of synchronization primitives, memory allocation primitives, and thread manipulation functions (see the eCos Reference Manual for the full kernel API).
The eCos kernel and other components can be configured in great detail at compile time, avoiding the addition of unwanted code to the library to be linked with your application code. There is no performance penalty for configuration.
eCos is organized as a component architecture, with a language to describe the constraints between components and individual configuration options. These constraints are necessary to resolve inconsistent configurations, such as disabling the code which handles the real-time clock, while enabling per-thread timers.
The designer of a component or general-purpose library should write configurable code using a component definition language ( CDL ). Once that has been done there is no additional burden on the end user (i.e. an embedded systems programmer), who will be able to use eCos' graphical Configuration Tool to configure the kernel and basic libraries without needing to understand how the configuration infrastructure works.
A tutorial on how to configure eCos is located in Configuring and Building eCos from Source . The eCos User's Guide has complete information on running the Configuration Tool and CDL.
eCos' configurability is the key to simulating different operating systems by using compatibility layers on top of eCos' kernel, because the semantics of basic kernel functions can be configured to match the semantics of other operating systems.
The specification for the µ ITRON operating system has been implemented on top of eCos. µ ITRON is configured by selecting appropriate options in the kernel (a real-time clock, the mlqueue scheduler, and no timeslicing); and writing a thin layer to map the µ ITRON system calls.
The µ ITRON port implements the complete µ ITRON 3.02 "Standard functionality" (level S) specification, as well as some of the "Extended" (level E) functions. The µ ITRON implementation is described in more detail in the eCos Reference Manual .
eCos provides serial device drivers for all supported eCos platforms, with the exception of the i386 Linux synthetic target and most simulator platforms. The serial drivers provide an API (documented in the eCos Reference Manual ) to control serial ports directly. The standard I/O library can be configured to use them as a transport layer.
Test suites are included for every portion of eCos shipped in this release; these are brief programs that test the behavior of most system calls and libraries in eCos. Test Suites describes how to build and run these test suites.
The last chapters in Part III: Programming Tutorial give examples that guide you through running eCos applications, starting from a "Hello world" program and then moving on to more complex programs that use additional kernel features.
Red Hat's GNUPro Toolkit, which includes the GCC and G++ compilers and the GDB debugger, is needed to build eCos applications. It is bundled with the CDROM distribution of the eCos Developer's Kit, and is also available on the net at http://sourceware.cygnus.com/ecos/ .
Online HTML versions of the full GNUPro documentation are included with eCos, as well as a specific GNUPro tools reference guide for your hardware architecture, customized for use with eCos. The full GNUPro documentation can also be found on the web at http://www.redhat.com/support/manuals/gnupro.html
The Linux synthetic i386 target is an exception, as there is (currently) no GNUPro manual. However, the GNUPro source archive contains documentation for the tools. This documentation is usually also included as part of a default Red Hat Linux installation, accessible with the info program.
Overview of the Release