Académique Documents
Professionnel Documents
Culture Documents
Configurability
The eCos architecture, is build with the component framework
that makes up the eCos system.
The eCos component framework has been designed to control
components to minimize memory use, allow users to control
timing behavior to meet real-time requirements, and use usual
programming languages (e.g., C, C++, and assembly language.
eCos can be scaled from a few hundred bytes up to hundreds of
kilobytes when features such as networking stacks are included
and third-party contributions such as Web servers are used.
Developers are able to select components that satisfy basic
application needs, and configure that particular component for
the specific implementation requirements for the application.
Configurability
eCos offers the developer options such as the ability to
select the number of priority levels and whether time slicing
is used.
Any code unnecessary to meeting the developers
requirements is eliminated in the final image of the
application.
The eCos framework encourages the users to extend the
features and functionality of the core eCos components.
Architecture overview
eCos is designed as a configurable component architecture
consisting of several key software components such as the
kernel and the HAL.
The fundamental goal is to allow construction of a complete
embedded system from these reusable software components.
This allows you to select different configuration options within
the software component, or remove unused components
altogether, in order to create a system that specifically matches
the requirements of your application.
By creating an eCos image that closely matches your system
requirements, the size of the software is compact, only
including used components.
eCos Components
HAL
The first component in the eCos system architecture is the hardware
abstraction layer, which can be broken down into three sub-modules.
The first HAL sub-module defines the architecture:
Each processor family supported by eCos is said to be a different
architecture.
Each architecture sub-module contains the code necessary for CPU
startup, interrupt delivery, context switching, etc for architecture of that
processor family.
eCos Components
Second HAL sub-module defines the variant:
A variant is a specific processor within a processor family.
An example of an eCos feature at this level is support for an on-chip
peripheral like a memory management unit (MMU).
eCos Components
The eCos kernel consists of a scheduler and mechanisms for thread
synchronization, exception handling, interrupt handling, and timers.
Scheduler:
The scheduler is the heart of the kernel and contains two modes of
operation: bitmap and multi-level queue scheduling.
Only one scheduler can be supported at a time.
The bitmap scheduler represents each thread, which must have a unique
priority, with a bit in a bitmap.
The multi-level queue implements a number of thread priorities, where
threads of the same priority can be time sliced.
eCos Components
Thread synchronization:
It is accomplished through the use of mutexes and semaphores.
These can be combined with event flags and message queues for thread
communication.
Exception handlers:
These are are routines for handling machine exceptions raised by
hardware and software.
Interrupt handlers:
These process events caused by external devices.
eCos provides a generalized scheme of utilizing an interrupt service
routine (ISR) and a deferred service routine to maintain low interrupt
latency.
eCos Components
Timer:
Timer-related elements of the kernel include counters,
clocks, and alarms.
Drivers
The driver component provides different means for I/O, including
simple serial ports and Ethernet devices.
Typical drivers included for specific platforms are Ethernet, flash,
PCMCIA, and serial.
Development tools
The GNU development tools provide the build and debug capabilities
and binary utilities support.
eCos Components
Third-party support:
Along with the core functionality, additional features are
available that greatly extend the capabilities of eCos for different
applications.
POSIX 1003.1-EL/IX compatibility.
uITRON 3.0 compatibility.
RedBoot ROM monitor.
File system.
Networking.
Web server.
PCI library.
USB slave support.
ITRON3.0-specification kernel
Extended synchronization and communication
Two advanced task-independent synchronization and
communication functions, namely, message buffer and rendezvous.
Interrupt management
Function for defining a handler for external interrupts.
Function for disabling and enabling external interrupts.
Memory pool management
Functions for software management of memory pools and
memory block allocation.
Time management
Functions for system clock setting and reference.
Task delay function.
Timer handler functions, for time-triggered starting.
ITRON3.0-specification kernel
System management
Functions for setting and referencing the system environment as
a whole.
Network support
Management and support functions for a loosely coupled
network
Rom Monitor:
A ROM monitor is a program, typically residing in
ROM or flash memory, which provides debug functionality.
The ROM monitor is used to load an application
program into memory for debugging.
What is Bootstrap
The bootstrap is a short program loaded by the BIOS upon system startup.
The BIOS has no information about the environment required by the
operating system and therefore can do nothing to initialize the system
This is where the bootstrap program comes into play
Operating system specific bootstraps either load the operating system itself
or load a more advanced initialization program.
It is the bootstraps responsibility to load an appropriate operating
environment.
File System
eCos provides three different file system implementations:
ROM, RAM, and JFFS2.
Both the ROM and RAM file system use the POSIX File I/O
Compatibility Layer
The Journalling Flash File System version 2 (JFFS2) is a logstructured file system intended for embedded systems
containing flash memory devices.
Networking support
Internet connectivity for embedded devices is quickly
becoming a standard requirement.
From Internet Appliances to remote sensor controllers, the
ability to send and receive data over the Internet, is
becoming standard.
The core to this connectivity is the network stack.
This diagram shows a general architecture diagram of the
some of the protocols supported by the eCos Networking
package.
Networking Support
PCI Library
The eCos PCI library package contains a main source file pci.c
ahigh-level PCI library API functions.
The high-level API routines are used by applications to control
the devices on the PCI bus.
USB Support
The current version of the USB specification is 2.0. USB
supports four different types of communication.
Control Transfers: All devices must respond to certain
standard control messages.
Interrupt Transfers: limited-latency transfer to or from a
device.
Isochronous Transfers: intended for multimedia devices
with large amounts of data that is continuously exchanged.
USB support
Bulk Transfers: Typically consists of larger amounts of data.