From 2e3dc9fa5fa505a1850778d1ba1b5a2b128b373a Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Thu, 12 Dec 2019 17:03:28 -0600 Subject: develenv/directory.rst: Update directory structure description closes #3796. --- develenv/directory.rst | 189 ++++++++++--------------------------------------- 1 file changed, 38 insertions(+), 151 deletions(-) diff --git a/develenv/directory.rst b/develenv/directory.rst index 9ddc72c..0d7b36f 100644 --- a/develenv/directory.rst +++ b/develenv/directory.rst @@ -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. - -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 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +BSPs 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. -- cgit v1.2.3