Chapter 2.  eCos Overview

eCos® is an open source, configurable, portable, and royalty-free embedded real-time operating system. The following text expands on these core aspects that define eCos.

eCos is provided as an open source runtime system supported by the GNU open source development tools. Developers have full and unfettered access to all aspects of the runtime system. No parts of it are proprietary or hidden, and you are at liberty to examine, add to, and modify the code as you deem necessary. These rights are granted to you and protected by the GNU Public License (GPL). An exception clause has been added to the eCos license which limits the circumstances in which the license applies to other code when used in conjunction with eCos. This exception grants you the right to freely develop and distribute applications based on eCos. You are not expected or required to make your embedded applications or any additional components that you develop freely available so long as they are not derived from eCos code. We of course welcome all contributions back to eCos such as board ports, device drivers and other components, as this helps the growth and development of eCos, and is of benefit to the entire eCos community. See Section 3.3, “ eCos Licence Overview” for more details.

One of the key technological innovations in eCos is the configuration system. The configuration system allows the application writer to impose their requirements on the run-time components, both in terms of their functionality and implementation, whereas traditionally the operating system has constrained the application's own implementation. Essentially, this enables eCos developers to create their own application-specific operating system and makes eCos suitable for a wide range of embedded uses. Configuration also ensures that the resource footprint of eCos is minimized as all unnecessary functionality and features are removed. The configuration system also presents eCos as a component architecture. This provides a standardized mechanism for component suppliers to extend the functionality of eCos and allows applications to be built from a wide set of optional configurable run-time components. Components can be provided from a variety of sources including: the standard eCos release; commercial third party developers or open source contributors.

The royalty-free nature of eCos means that you can develop and deploy your application using the standard eCos release without incurring any royalty charges. In addition, there are no up-front license charges for the eCos runtime source code and associated tools.

eCos is designed to be portable to a wide range of target architectures and target platforms including 16, 32, and 64 bit architectures, MPUs, MCUs and DSPs. The eCos kernel, libraries and runtime components are layered on the Hardware Abstraction Layer (HAL), and thus will run on any target once the HAL and relevant device drivers have been ported to the target's processor architecture and board. Currently eCos supports a large range of different target architectures:

  • ARM7, ARM9, Cortex-A5, Cortex-A9, Cortex-M3, Cortex-M4, Cortex-M7, Intel StrongARM and XScale.
  • Fujitsu FR-V
  • Hitachi SH2/3/4
  • Hitachi H8/300H
  • Intel x86
  • MIPS
  • Matsushita AM3x
  • Motorola PowerPC
  • Motorola 68k/Coldfire
  • NIOS II
  • NEC V850
  • Sun SPARC
  • SuperH
  • Tilera TILE-Gx

including many of the popular variants of these architectures and evaluation boards. For a current list of commercially supported hardware see the eCosPro CPU & Board Support pages.

eCos has been designed to support applications with real-time requirements, providing features such as full preemptability, minimal interrupt latencies, and all the necessary synchronization primitives, scheduling policies, and interrupt handling mechanisms needed for these type of applications. eCos also provides all the functionality required for general embedded application support including device drivers, memory management, exception handling, C, math libraries, etc. In addition to runtime support, the eCos system includes all the tools necessary to develop embedded applications, including eCos software configuration and build tools, and GNU based compilers, assemblers, linkers, debuggers, and simulators.

All eCosPro® Developer's Kits are backed by commercial support provided by members of the original team which developed eCos. Support is provided through the eCosPro issue management system.

The latest and most complete set of eCosPro documentation and installation guides may be found online at https://doc.ecoscentric.com/index.html.

In addition, you may wish to visit the eCos open source developers site: http://ecos.sourceware.org/. The site is dedicated to the eCos developer community and contains news, FAQ, discussion and announcement mailing lists, among other items.

eCos and eCosPro are released as open source software because the eCos maintainers and eCosCentric believe that this is the most effective software development model, and that it provides the greatest benefit to the embedded developers.