RTEMS Development Environment Guide
The RTEMS directory structure is designed to meet the following requirements:
The resulting directory structure has processor and board dependent source files isolated from generic files. When RTEMS is configured and built, object directories and an install point will be automatically created based upon the target CPU family and BSP selected.
The placement of object files based upon the selected BSP name ensures that object files are not mixed across CPUs or targets. This in combination with the makefiles allows the specific compilation options to be tailored for a particular target board. For example, the efficiency of the memory subsystem for a particular target board may be sensitive to the alignment of data structures, while on another target board with the same processor memory may be very limited. For the first target, the options could specify very strict alignment requirements, while on the second the data structures could be packed to conserve memory. It is impossible to achieve this degree of flexibility without providing source code.
The RTEMS source tree is organized based on the following variables:
Each of the following sections will describe the
contents of the directories in the RTEMS source
tree. The top of the tree will be referenced
as ${RTEMS_ROOT}
in this discussion.
rtems-VERSION | +--------+----+----+----+--+-----+---+-------+--------+ | | | | | | | | | aclocal automake c contrib cpukit doc make testsuites tools
${RTEMS_ROOT}/aclocal/
configure.ac
scripts throughout
the RTEMS source tree. GNU autoconf interprets configure.ac
files to produce the configure
files used to tailor
RTEMS build for a particular host and target environment. The
contents of this directory will not be discussed further in this
document.
${RTEMS_ROOT}/automake/
Makefile.am
files throughout the RTEMS source tree. The
contents of this directory will not be discussed
further in this document.
${RTEMS_ROOT}/c/
${RTEMS_ROOT}/contrib/
This directory also contains RPM specifications for the
prebuilt cross-compilation toolsets provided by the
RTEMS project. There are separate subdirectories
for each of the components in the RTEMS Cross Compilation
Environment unde the contrib/crossrpms/
directory.
This directory is configured, built, and installed separately
from the RTEMS executive and tests. This directory will not
be discussed further in this document.
${RTEMS_ROOT}/cpukit/
libc.a
) and the functionality is
neither CPU model nor BSP specific. The source code
for most RTEMS services reside under this directory.
The contents of this directory will be discussed
in the Directory Structure CPU Kit Directory section.
${RTEMS_ROOT}/doc/
${RTEMS_ROOT}/make/
custom/
subdirectory. Each ".cfg" file in this directory
is associated with a specific BSP and describes
the CPU model, compiler flags, and procedure to
produce an executable for the target board.
These files are described in detail in the
RTEMS BSP and Device Driver Development Guide
and will not be discussed further in this document.
${RTEMS_ROOT}/testsuites/
${RTEMS_ROOT}/tools/
RTEMS Development Environment Guide
Copyright © 1988-2008 OAR Corporation