eCos is a
real time open source operating system targeted at
embedded systems and
microcontrollers. It is written in
C and
C++ and consists of various
packages, the most important being the HAL (Hardware
Abstraction Layer) and the
kernel. Other packages include libraries (
libc, math), hardware drivers (
ethernet,
USB,
WLAN) and network connectivity (TCP/IP stack). As eCos runs on very different
platforms, there is a complex
configuration system.
Configuration
Each
platform contains different
hardware. A recent system might be
32-bit and have built-in ethernet ports, an older one
8-bit and just a
serial port. To deal with this, there is an extensive
configuration file. When beginning to develop, a tool that comes with eCos sets up a
build tree that reflects the hardware you want to develop for. Then you can fine-tune. Don't need that hardware driver? Throw it out and save compilation time and executable size.
The HAL
The HAL serves as a
wrapper for the various
architectures and
platforms eCos runs on. This ensures the same application code can run on different platforms, even if the hardware access below it (e.g. programming a timer) works different on them.
The kernel
The kernel provides a broad functionality for
operating systems, e.g. threads,
timers,
alarms,
semaphores,
spinlocks. Of course you can only use what is available on your platform; you won't have timers on a platform without some hardware timer device. (Or if you disabled the use of timers in your configuration because you need them yourself.) It is possible not to use the kernel and write software that interfaces directly the HAL.
The eCos homepage:
http://ecos.sourceware.org