Runtime Functionality
| Hardware Abstraction Layer (HAL) | |
| Common HAL | Functionality shared by all HALs including generic debugging and driver API. |
| Architecture HAL |
Functionality specific to the given architecture including exception/interrupt handlers, cache control, context switching code, and so forth. |
| Variant HAL | Processor family variant extensions to the standard architecture code |
| Auxiliary HAL | Functionality common between variants |
| Platform HAL | Functionality specific to a platform. Isolates platform porting code from rest of the system. |
| Real-time kernel | |
| Interrupt handling | Two stage ISR/DSR design.
Kernel never disables interrupts during normal operation, delivering best-in-class interrupt latencies. |
| Exception handling | Processor exception handling |
| Scheduling | Choice of real-time priority based round robin and bitmap schedulers.
Preemptive timeslice can be disabled for cooperative multithreading.
Additional schedulers can be added. |
| Thread support | Comprehensive thread management. Supports per-thread data. |
| Synchronization primitives |
Rich set of primitives includes mutexes, condition variables, binary & counting semaphores,
mail boxes, event flags, and spin locks |
| Timers, counters and alarms | Generic timer based functions |
| Memory allocation |
Choice of memory allocators: Fixed block, variable block, and dynamic heaps |
| SMP | Shared memory symmetric multi-processing support for selected architectures |
| Debug and instrumentation support | Tracing, profiling timers*, CPU performance monitoring, and so forth |
| Libraries | |
| ISO C and math libraries |
Standard C library based on the ISO 9899:1990 / ANSI C3.159-1989 (C-89) specification |
| C++/STL library* |
Standard C++ library based on the ISO 14822 specification |
| POSIX | POSIX (ISO/IEC 9945-1) standards based API.
Includes threads, signals, synchronization, timers, message queues, and file & device I/O. |
| µITRON |
Optional compatibility layer implements version 3.02 of this Japanese standard RTOS API |
| Networking | |
| Plug-in infrastructure |
Generic networking interface, supports the ability to add alternative networking stacks. Provides a standard BSD socket interface. |
| lwIP stack* |
Lightweight IP stack. Extremely small resource footprint, but fewer features than FreeBSD derived stack.
Functionality includes IP, TCP, UDP, ICMP, ARP, DHCP, SLIP and PPP protocols. Socket and native API support.
eCosPro version has been rigourously tested, stabilized, and further optimized for space and speed. |
| FreeBSD derived stack |
The default eCos stack implements comprehensive functionality including: IP, TCP, UDP, ICMP, ARP, IPv6,
BOOTP/DHCP clients, DNS client, TFTP/FTP clients, SNMP v3 client, embedded web servers,
SNTP, PPP***,
and Secure Shell (SSH)**. |
| File Systems | |
| Plug-in infrastructure |
Generic file system interface, with additional automounting and removable media support*.
Provides a standard fileio API interface for use with C/C++ and Posix. |
| RAM file system | Simple in-memory file system |
| ROM file system | Simple read only file system |
| FAT file system* | Supports FAT12/16/32 formats.
eCosCentric additions include long file names, multi-threaded access, internationalization,
and removable media support. Integration with the USBware host stack's mass storage class is fully supported.
Comprehensive testing with a wide range of removable flash and USB storage devices has been undertaken,
minimising any potential compatibility issues. |
| Journalling Flash File System (JFFS2)*
| High reliability file system for flash memory |
| Multimedia File System (MMFS)**
| High performance, high reliability, streaming multimedia file system |
| Linux ext2 | Read only support built in to RedBoot |
| Device support and device drivers | |
| I/O infrastructure | General purpose framework for device drivers, and the layering of drivers. |
| CAN**
| Controller Area Network device API and drivers |
| Ethernet | Standard drivers are compatible with RedBoot, BSD and lwIP stacks.
There are also lwIP specific drivers optimized for reduced resource usage. |
| Flash | Version 2 design allows the concurrent support of multiple flash devices and types.
Used by both RedBoot and eCos. |
| I2C*** | I2C hardware drivers and alternative generic GPIO based bit-banged driver. |
| IDE | Hard disk interface, with optional DMA support* |
| MMC, CompactFlash, and DataFlash | Removable flash card support |
| PCI | Supports PCI bus based devices |
| Serial I/O | RS232 based serial and tty devices |
| Serial EEPROM* | SPI and I2C connected memory access support |
| SPI*** | Serial peripheral interface. |
| USB** |
USBWare device, host and OTG stacks.
Comprehensive class support includes mass storage,HID, printer, and serial. |
| Wallclock | Real time clock (RTC) support |
| Watchdog | Simple portable API |
| Debug & test support | |
| gdb stubs | Basic target resident debug agent, supports serial and Ethernet communications |
| RedBoot* |
Bootloader with integrated debug agent.
Includes simple flash file management, file system support, scripting, reliable in-field system updates,
and more. Supports serial and Ethernet based communciations. |
| Hardware debug* |
JTAG/BDM based debugging. Eclipse and gdb based download and source level debugging support.
Ecoflash utility provides a generic and portable flash memory management tool. |
| Test code | Runtime tests covering the range of runtime functionality |
| Miscellaneous Features | |
| eCosPro-CPEG** |
Portable Embedded GUI Library with C based API |
| eCosPro-PEG+** |
Portable Embedded GUI Library with C++ based API |
| CANopen** |
CiA standards based CAN protocol stack for industrial automation |
| CEE-J Java JVM** |
Embedded Java virtual machine |
| eXtremeDB** |
In-memory Embedded Database |
| OS Changer** |
Application migration assistance tool |