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.


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 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:

Log in or register to write something here or to contact authors.