Search
   
   

Runtime Functionality

eCos

eCos has been designed to support deeply embedded applications with critical real-time performance requirements. It provides a highly optimized kernel that implements preemptive real-time scheduling policies, a rich set of synchronization primitives, and low latency interrupt handling. Higher layers provide the functionality required for general embedded application support including memory management, language support libraries, compatibility APIs, device management, networking, file systems, and so forth.

The configuration technology at the heart of eCos provides inherent scalability and flexibility. eCos can scale from core functionality measured in kilobytes, to systems with more sophisticated requirements that may require several hundred kilobytes of memory.


Runtime Functionality
Hardware Abstraction Layer (HAL)
Common HALFunctionality 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 HALProcessor family variant extensions to the standard architecture code
Auxiliary HALFunctionality common between variants
Platform HALFunctionality specific to a platform. Isolates platform porting code from rest of the system.
Real-time kernel
Interrupt handlingTwo stage ISR/DSR design. Kernel never disables interrupts during normal operation, delivering best-in-class interrupt latencies.
Exception handlingProcessor exception handling
SchedulingChoice of real-time priority based round robin and bitmap schedulers. Preemptive timeslice can be disabled for cooperative multithreading. Additional schedulers can be added.
Thread supportComprehensive 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 alarmsGeneric timer based functions
Memory allocation Choice of memory allocators: Fixed block, variable block, and dynamic heaps
SMPShared memory symmetric multi-processing support for selected architectures
Debug and instrumentation supportTracing, 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
POSIXPOSIX (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 systemSimple in-memory file system
ROM file systemSimple 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 ext2Read only support built in to RedBoot
Device support and device drivers
I/O infrastructureGeneral purpose framework for device drivers, and the layering of drivers.
CAN** Controller Area Network device API and drivers
EthernetStandard drivers are compatible with RedBoot, BSD and lwIP stacks. There are also lwIP specific drivers optimized for reduced resource usage.
FlashVersion 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.
IDEHard disk interface, with optional DMA support*
MMC, CompactFlash, and DataFlashRemovable flash card support
PCISupports PCI bus based devices
Serial I/ORS232 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.
WallclockReal time clock (RTC) support
WatchdogSimple portable API
Debug & test support
gdb stubsBasic 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 codeRuntime 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

* Additional or enhanced functionality only available in eCosPro Developer's Kits
** Optional add-on to eCosPro Developer's Kits
*** Previously only available in the eCosPro Developer's Kit. Infrastructure elements now contributed to eCos project by eCosCentric.

In-depth technical descriptions of the runtime functionality are available in the online eCos documentation. eCos also includes a range of host based tools supporting the development of eCos-based embedded applications.

   
         
 
  Copyright © 2003-2008 eCosCentric Limited Privacy & Legal Statements