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 Chapter 3 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. We provide, without charge, everything necessary for basic
embedded applications development.
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:
including many of the popular variants of these architectures
and evaluation boards.
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.
To get the most out of eCos you
should visit the eCos open source
developers site: http://ecos.sourceware.org/.
The site is dedicated to the eCos
developer community and contains a rich set of resources
including news, FAQ, online documentation, installation guide,
discussion and announcement mailing lists, and runtime and
development tools downloads. The site also supports anonymous
CVS and WEBCVS access to provide direct access to the latest
eCos source base.
eCos is released as open source
software because we believe that this is the most effective
software development model, and that it provides the greatest
benefit to the embedded developer community as a whole. As part
of this endeavor, we seek the input and participation of
eCos developers in its continuing
evolution. Participation can take many forms including:
providing us with feedback on how eCos might be made more
useful to you - by taking part in the ongoing mailing list discussions
and by submitting problem reports covering bugs, documentation issues,
and missing features
contributing bug fixes and enhancement patches
contributing new code including device drivers, board
ports, libraries, and other runtime components
Our long term aim is to make eCos a
rich and ubiquitous standard infrastructure for the development of
deeply embedded applications. This will be achieved with the
assistance of the eCos developer community
cooperating to improve eCos for all. We
would like to take this opportunity to extend our thanks to the many
eCos developers who have already
contributed feedback, ideas, patches, and code that have augmented and
improved this release.
The eCos Maintainers