Hardware Reference
In-Depth Information
or higher. A basic hardware abstraction layer (HAL) is defined to facilitate porting
to other architectures. Such a layer can be implemented using the services of another
operating system that acts as a virtual processor. An implementation of MaRTE OS is
also available on the Linux operating system, which is useful for testing, development,
and teaching purposes.
The development environment is based on the GNU compilers GNAT and gcc , as well
as on their associated utilities, such as the gdb debugger. When developing embedded
applications, a cross development environment is used with the development tools
hosted in a Linux system. The executable images can be uploaded to the target via an
Ethernet link, and cross debugging is possible through a serial line. It is also possible
to write the executable image to a bootable device such as a flash memory, for isolated
execution in the target. MaRTE OS has been used to develop industrial embedded
systems and is also an excellent tool for educational activities related to real-time
embedded systems programming.
SUPPORTED FUNCTIONALITY
MaRTE OS is an implementation of the POSIX.13 minimal real-time system profile,
and as such it provides to C/C++ applications the services defined in the standard,
which can be grouped as follows:
Concurrency services supporting the management of threads.
Scheduling with real-time policies based on preemptive fixed priorities and sup-
porting variants such as FIFO within priorities, round robin within priorities, or
the Sporadic Server.
Synchronization through counting semaphores, mutexes, and condition variables.
Mutexes have support for real-time mutual exclusion through the priority inheri-
tance or priority ceiling protocols.
Signals, as an asynchronous notification mechanism.
Time management through clocks and timers. A monotonic clock that cannot
have backward jumps is provided for real-time applications. Timers can be cre-
ated to measure the passage of an absolute or relative time and will generate a
signal to notify the application about their expiration.
Execution-time clocks and timers are used to monitor tasks' execution time and
enforce time bounds under resource reservations.
Search WWH ::




Custom Search