mirror of
https://git.rtems.org/rtems-docs/
synced 2025-06-01 01:13:37 +08:00
develenv/directory.rst: Update directory structure description
closes #3796.
This commit is contained in:
parent
9316722c2b
commit
2e3dc9fa5f
@ -52,28 +52,15 @@ the RTEMS source tree. The top of the tree will be referenced as
|
||||
|
||||
rtems-VERSION
|
||||
|
|
||||
+--------+----+----+----+--+-----+---+-------+--------+
|
||||
| | | | | | | | |
|
||||
aclocal automake c contrib cpukit doc make testsuites tools
|
||||
|
||||
``${RTEMS_ROOT}/aclocal/``
|
||||
This directory contains the custom M4 macros which are available to the
|
||||
various GNU autoconf ``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/``
|
||||
This directory contains the custom GNU automake fragments which are used to
|
||||
support the various ``Makefile.am`` files throughout the RTEMS source tree.
|
||||
The contents of this directory will not be discussed further in this
|
||||
document.
|
||||
+----+----+----+--+-----+---+-------+--------+
|
||||
| | | | | | | |
|
||||
c contrib cpukit doc make testsuites tools
|
||||
|
||||
``${RTEMS_ROOT}/c/``
|
||||
This directory is the root of the portions of the RTEMS source tree which
|
||||
must be built tailored for a particular CPU model or BSP. The contents of
|
||||
this directory will be discussed in the `c/ Directory`_ section.
|
||||
Historically, this directory was the root of the portions of the
|
||||
RTEMS source tree which must be built tailored for a particular CPU
|
||||
model or BSP. In the current source, only the build support files for
|
||||
the autoconf/automake based build system remain in this subdirectory.
|
||||
|
||||
``${RTEMS_ROOT}/cpukit/``
|
||||
This directory is the root for all of the "multilib'able" portions of
|
||||
@ -83,137 +70,49 @@ the RTEMS source tree. The top of the tree will be referenced as
|
||||
under this directory. The contents of this directory will be discussed in
|
||||
the `CPU Kit Directory`_ section.
|
||||
|
||||
``${RTEMS_ROOT}/bsps``
|
||||
This directory is the root for all of the BSP specific source in
|
||||
RTEMS. The contents of this directory are discussed in the `BSPs
|
||||
Directory`_ section.
|
||||
|
||||
``${RTEMS_ROOT}/make/``
|
||||
This directory contains files which support the RTEMS Makefile's. From a
|
||||
user's perspective, the most important parts are found in the ``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 Driver Guide* and will not
|
||||
be discussed further in this document.
|
||||
This directory contains files which support RTEMS Makefile's. From a
|
||||
user's perspective, the most important part is the BSP specific
|
||||
information found in the ``config`` subdirectory of each BSP.
|
||||
Each ".cfg" file is associated with a specific BSP
|
||||
and describes the CPU model, and compiler flags used to produce
|
||||
an executable for the target board. These files are described in
|
||||
detail in the *RTEMS BSP and Driver Guide* and will not be discussed
|
||||
further in this document.
|
||||
|
||||
``${RTEMS_ROOT}/testsuites/``
|
||||
This directory contains the test suites for the various RTEMS APIs and
|
||||
support libraries. The contents of this directory are discussed in the
|
||||
`testsuites/ Test Suites`_ section.
|
||||
|
||||
``${RTEMS_ROOT}/tools/``
|
||||
This directory contains RTEMS specific support utilities which execute on
|
||||
the development host. These utilities are divided into subdirectories
|
||||
based upon whether they are used in the process of building RTEMS and
|
||||
applications, are CPU specific, or are used to assist in updating the RTEMS
|
||||
source tree and applications. The support utilities used in the process of
|
||||
building RTEMS are described in :ref:`rtems-specific-utilities`.
|
||||
These are the only components of this subtree that will be discussed
|
||||
in this document.
|
||||
BSPs Directory
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
c/ Directory
|
||||
============
|
||||
|
||||
The ``${RTEMS_ROOT}/c/`` directory was formerly the root directory of all RTEMS
|
||||
source code. At this time, it contains the root directory for only those RTEMS
|
||||
components which must be compiled or linked in a way that is specific to a
|
||||
particular CPU model or board. This directory contains the following
|
||||
subdirectories:
|
||||
|
||||
``${RTEMS_ROOT}/c/src/``
|
||||
This directory is logically the root for the RTEMS components which are CPU
|
||||
model or board dependent. Thus this directory is the root for the BSPs and
|
||||
the Ada Test Suites as well as CPU model and BSP dependent libraries. The
|
||||
contents of this directory are discussed in the `c/src/ Directory`_
|
||||
section.
|
||||
|
||||
c/src/ Directory
|
||||
----------------
|
||||
|
||||
As mentioned previously, this directory is logically the root for the RTEMS
|
||||
components which are CPU model or board dependent. The following is a list of
|
||||
the subdirectories in this directory and a description of each.
|
||||
|
||||
``${RTEMS_ROOT}/c/src/aclocal/``
|
||||
This directory contains the custom M4 macros which are available to the
|
||||
various GNU autoconf ``configure.ac`` scripts throughout this portion of
|
||||
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}/c/src/ada/``
|
||||
This directory contains the Ada95 language bindings to the RTEMS Classic
|
||||
API.
|
||||
|
||||
``${RTEMS_ROOT}/c/src/ada-tests/``
|
||||
This directory contains the test suite for the Ada language bindings to the
|
||||
Classic API.
|
||||
|
||||
``${RTEMS_ROOT}/c/src/automake/``
|
||||
This directory contains files which are "Makefile fragments." They are
|
||||
included as required by the various ``Makefile.am`` files throughout this
|
||||
portion of the RTEMS source tree.
|
||||
|
||||
``${RTEMS_ROOT}/c/src/lib/``
|
||||
This directory contains the directories ``libbsp/`` and ``libcpu/`` which
|
||||
contain the source code for the Board Support Packages (BSPs) and CPU Model
|
||||
specific source code for RTEMS. The ``libbsp/`` is organized based upon
|
||||
the CPU family and boards BSPs. The contents of ``libbsp/`` are discussed
|
||||
briefly in `c/src/lib/libbsp BSP Directory`_ and presented in detail in
|
||||
the *RTEMS BSP and Driver Guide*. The ``libcpu/``
|
||||
directory is also organized by CPU family with further divisions based upon
|
||||
CPU model and features that are shared across CPU models such as caching
|
||||
and DMA.
|
||||
|
||||
``${RTEMS_ROOT}/c/src/libchip/``
|
||||
This directory contains device drivers for various peripheral chips which
|
||||
are designed to be CPU and board dependent. This directory contains a
|
||||
variety of drivers for serial devices, network interface controllers,
|
||||
shared memory and real-time clocks.
|
||||
|
||||
``${RTEMS_ROOT}/c/src/librtems++/``
|
||||
This directory contains C++ classes which map to the RTEMS Classic API.
|
||||
|
||||
``${RTEMS_ROOT}/c/src/make/``
|
||||
This directory is used to generate the bulk of the supporting rules files
|
||||
which are installed as part of the Application Makefiles. This file
|
||||
contains settings for various Makefile variables to tailor them to the
|
||||
particular CPU model and BSP configured.
|
||||
|
||||
``${RTEMS_ROOT}/c/src/nfsclient/``
|
||||
This directory contains a Network File System (NFS) client for RTEMS. With
|
||||
this file system, a user's application can access files on a remote
|
||||
computer.
|
||||
|
||||
``${RTEMS_ROOT}/c/src/support/``
|
||||
This directory exists solely to generate the RTEMS version string which
|
||||
includes the RTEMS version, CPU architecture, CPU model, and BSP name.
|
||||
|
||||
``${RTEMS_ROOT}/c/src/wrapup/``
|
||||
This directory is responsible for taking the individual libraries and
|
||||
objects built in each of the components in the RTEMS source tree and
|
||||
bundling them together to form the single RTEMS library ``librtemsbsp.a``.
|
||||
This library contains all BSP and CPU model specific software.
|
||||
|
||||
c/src/lib/libbsp BSP Directory
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The "libbsp" directory contains a directory for each CPU family supported by
|
||||
The "bsps" directory contains a directory for each CPU family supported by
|
||||
RTEMS. Beneath each CPU directory is a directory for each BSP for that
|
||||
processor family.
|
||||
|
||||
The "libbsp" directory provides all the BSPs provided with this release of the
|
||||
RTEMS executive. The subdirectories are divided, as discussed previously,
|
||||
The "bsps" directory provides all the BSPs provided with this release
|
||||
of RTEMS. The subdirectories are divided, as discussed previously,
|
||||
based on specific processor family, then further broken down into specific
|
||||
target board environments. The "no_cpu" subdirectory provides a starting point
|
||||
template BSP which can be used to develop a specific BSP for an unsupported
|
||||
target board. The files in this subdirectory may aid in preliminary testing of
|
||||
the RTEMS development environment that has been built for no particular target
|
||||
in mind.
|
||||
target board environments. The "no_cpu" subdirectory provides a starting
|
||||
point template BSP which can be used to develop a specific BSP for an
|
||||
unsupported target board. The files in this subdirectory may aid in
|
||||
preliminary testing of the RTEMS development environment that has been
|
||||
built for no particular target in mind.
|
||||
|
||||
Below each CPU dependent directory is a directory for each target BSP supported
|
||||
in this release.
|
||||
|
||||
Each BSP provides the modules which comprise an RTEMS BSP. The modules are
|
||||
separated into the subdirectories "clock", "console", "include", "shmsupp",
|
||||
"startup", and "timer" as shown in the following figure:
|
||||
separated into various subdirectories such as "clock", "console",
|
||||
"include", "shmsupp", "startup", and "timer" as shown in the following
|
||||
figure:
|
||||
|
||||
.. code-block:: c
|
||||
|
||||
@ -226,15 +125,16 @@ separated into the subdirectories "clock", "console", "include", "shmsupp",
|
||||
CPU Kit Directory
|
||||
=================
|
||||
|
||||
The @code{cpukit/} directory structure is as follows:
|
||||
The @code{cpukit/} directory contains many subdirectories with the
|
||||
most important ones being shown in the structure below:
|
||||
|
||||
.. code-block:: c
|
||||
|
||||
cpukit
|
||||
|
|
||||
+-----------+----------+-----------+----------+
|
||||
| | | | |
|
||||
posix rtems sapi score wrapup
|
||||
+-----------+----------+-----------+
|
||||
| | | |
|
||||
posix rtems sapi score
|
||||
|
||||
The ``cpukit/`` directory contains a set of subdirectories which contains the
|
||||
source files comprising the executive portion of the RTEMS development
|
||||
@ -244,19 +144,6 @@ directory) source code files are separated into distinct directory trees.
|
||||
|
||||
The following is a description of each of the subdirectories under ``cpukit/``:
|
||||
|
||||
``${RTEMS_ROOT}/cpukit/aclocal/``
|
||||
This directory contains the custom M4 macros which are available to the
|
||||
various GNU autoconf ``configure.ac`` scripts throughout the CPU Kit
|
||||
portion of 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}/cpukit/automake/``
|
||||
This directory contains files which are "Makefile fragments." They are
|
||||
included as required by the various ``Makefile.am`` files throughout the
|
||||
CPU Kit portion of the RTEMS source tree.
|
||||
|
||||
``${RTEMS_ROOT}/cpukit/ftpd/``
|
||||
This directory contains the RTEMS ftpd server.
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user