# Changeset aa41429 in rtems for doc/develenv/direct.t

Ignore:
Timestamp:
Feb 18, 2003, 4:16:12 PM (18 years ago)
Branches:
4.10, 4.11, 4.8, 4.9, 5, master
Children:
64151bf
Parents:
b22fa3ab
Message:

2003-02-18 Joel Sherrill <joel@…>

• Makefile.am, develenv.texi: Relect generating .texi from .t's.
• direct.t, sample.t, utils.t: New files.
• direct.texi, sample.texi, utils.texi: Removed. Now generated from corresponding .t files which are in the process of being updated. This commit is a anspshot of the update effort.
File:
1 moved

### Legend:

Unmodified
 rb22fa3ab @c @ifinfo @node Directory Structure, Directory Structure Suites, Introduction, Top @end ifinfo @chapter Directory Structure @ifinfo @menu * Directory Structure Suites:: @end menu @end ifinfo The RTEMS directory structure is designed to meet @item isolate processor and target dependent code, while allowing as much common source code as possible to be shared across multiple processors and targets. across multiple processors and target boards. @item allow multiple RTEMS users to perform simultaneous The resulting directory structure has processor and target dependent source files isolated from generic files.  When RTEMS is built, object directories and an install point will be automatically created based upon the target BSP selected.  The placement of object files based upon the selected BSP name insures that object files are not mixed across CPUs or targets. This in combination with the make files allows the specific 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 memory.  It is impossible to achieve this degree of flexibility without providing source code. @ifinfo @node Directory Structure Suites, C Suites, Directory Structure, Directory Structure @end ifinfo @section Suites @ifinfo @menu * C Suites:: * Executive Source Directory:: * Support Library Source Directory:: * Test Suite Source Directory:: @end menu @end ifinfo @c @c  Directory Organization @c @section Directory Organization The RTEMS source tree is organized based on the following four variables: following variables: @itemize @bullet @item language, @item target processor, @item target board, and @item compiler vendor (Ada only). @item functionality, @item target processor family, @item target processor model, @item peripherals, and @item target board. @end itemize The language may be either C or Ada and there is currently nothing shared between the source trees for these two implementations of RTEMS.  The user generally selects the subdirectory for the implementation they are using and ignores that for the other implementation.  The only exceptions to this normally occurs when comparing the source code for the two implementations or when porting both to a new CPU or target board.  The following shows the top level RTEMS directory structure which includes directories for each language implementation and a language independent source documentation directory.  The source documentation directory is currently not supported. @c @c  Tree 1 - Top Level @c @ifset use-ascii @example @group RTEMS | +-----------------------+-----------------------+ |                                               | c                                              doc @end group @end example @end ifset 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 @code{$@{RTEMS_ROOT@}} in this discussion. @c @c Top Level Tree @c @c @ifset use-ascii @example @group rtems-VERSION | +--------+----+----+----+--+-----+---+------+-----+ | | | | | | | | | aclocal automake c contrib cpukit doc make scripts tools @end group @end example @c @end ifset @ifset use-tex @sp 1 @tex {\parskip=0pt\offinterlineskip% \hskip 15.0em \hskip 1.25em\hbox to 3.00em{\hss{RTEMS}\hss}% \vrule width0em height1.972ex depth0.812ex\par\penalty10000 \hskip 15.0em \hskip 2.75em\vrule width.04em% \vrule width0em height1.500ex depth0.500ex\par\penalty10000 \hskip 15.0em \hskip 0.25em\vrule width2.50em height-0.407ex depth0.500ex% \vrule width.04em\vrule width2.50em height-0.407ex depth0.500ex% \vrule width0em height1.500ex depth0.500ex\par\penalty10000 \hskip 15.0em \hskip 0.25em\vrule width.04em% \hskip 4.92em\vrule width.04em% \vrule width0em height1.500ex depth0.500ex\par\penalty10000 \hskip 15.0em \hskip 0.00em\hbox to 0.50em{\hss{c}\hss}% \hskip 1.50em\hbox to 1.50em{\hss{ }\hss}% \hskip 1.00em\hbox to 1.50em{\hss{doc}\hss}% \vrule width0em height1.972ex depth0.812ex\par} @end tex @end ifset @c @c for now continue to use the ascii @c @end ifset @ifset use-html @example @group RTEMS | +-----------------------+-----------------------+ | | c doc @end group @end example @html @end html @end ifset Each of the following sections will describe the contents of the directories in the RTEMS source tree. @ifinfo @node C Suites, Executive Source Directory, Directory Structure Suites, Directory Structure Suites @end ifinfo @subsection C Suites The following table lists the suites currently included with the C implementation of RTEMS and the directory in which they may be located: @ifset use-texinfo-tables @table @code @item Support Libraries (BSPs, C library, CPU support)$RTEMS_ROOT/c/src/lib @item Single Processor Tests $RTEMS_ROOT/c/src/tests/sptests @item Timing Tests$RTEMS_ROOT/c/src/tests/tmtests @item Multiprocessor Tests $RTEMS_ROOT/c/src/tests/mptests @item Sample Applications$RTEMS_ROOT/c/src/tests/samples @item RTEMS Build Tools $RTEMS_SRC_BASE/c/build_tools @item Make Support$RTEMS_ROOT/c/make @item $@{RTEMS_ROOT@}/aclocal/ This directory contains the custom M4 macros which are available to the various GNU autoconf @code{configure.ac} scripts throughout the RTEMS source tree. GNU autoconf interprets @code{configure.ac} files to produce the @code{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. @item$@{RTEMS_ROOT@}/automake/ This directory contains the custom GNU automake fragments which are used to support the various @code{Makefile.am} files throughout the RTEMS source tree.  The contents of this directory will not be discussed further in this document. @item $@{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 @ref{Directory Structure c/ Directory} section. @item$@{RTEMS_ROOT@}/contrib/ This directory contains contributed support software.  Currently this directory contains the RPM specifications for cross-compilers hosted on GNU/Linux that target Cygwin and Solaris.  The cross-compilers produced using these specifications are then used in a Canadian cross build procedure to produce the Cygwin and Solaris hosted RTEMS toolsets on a GNU/Linux host.  This directory will not be discussed further in this document. @item $@{RTEMS_ROOT@}/cpukit/ This directory is the root for all of the "multilib'able" portions of RTEMS. This is a GNU way of saying the the contents of this directory can be compiled like the C Library (@code{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 @ref{Directory Structure CPUKit Directory} section. @item$@{RTEMS_ROOT@}/doc/ This directory is the root for all RTEMS documentation. The source for RTEMS is written in GNU TeXinfo and used to produce HTML, PDF, and "info" files. The RTEMS documentation is configured, built, and installed separately from the RTEMS executive and tests. The contents of this directory will be discussed in the @ref{Directory Structure Documentation Directory} section. @item $@{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 @code{custom/} subdirectory. Each ".cfg" file in this directory is associated with a specific BSP and describes the CPU model, compiler flags, and procedure to a produce an executable for the target board. These files are described in detail in the @b{RTEMS BSP and Device Driver Development Guide} and will not be discussed further in this document. @item$@{RTEMS_ROOT@}/scripts/ This directory contains the 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 including @code{binutils/}, @code{gcc3newlib/}, and @code{gdb/}.  This directory is configured, built, and installed separately from the RTEMS executive and tests.  This directory will not be discussed further in this document. @item $@{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. @end table @end ifset @ifclear use-texinfo-tables @html @end html @end ifclear The top level directory structure for the C implementation of RTEMS is as follows: @c @c Tree 2 - Top C Level @c @c c/ Directions @c @subsection c/ Directory The @code{$@{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: @table @code @item $@{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 various Test Suites as well as CPU model and BSP dependent libraries. The contents of this directory are discussed in the @ref{Directory Structure c/src/ Directory} section. @item$@{RTEMS_ROOT@}/c/make/ This directory is used to generate the file @code{target.cfg} which is 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. @end table @c @c c/src/ Directory @c @subsubsection 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 directorie and a description of each. @table @code @item $@{RTEMS_ROOT@}/c/src/ada-tests/ This directory contains the test suite for the Ada language bindings to the Classic API. @item$@{RTEMS_ROOT@}/c/src/lib/ @item $@{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, and real-time clocks. @item$@{RTEMS_ROOT@}/c/src/libmisc/ This directory contains support facilities which are RTEMS specific but otherwise unclassified.  In general, they do not adhere to a standard API. Among the support facilities in this directory are a @code{/dev/null} device driver, the Stack Overflow Checker, a mini-shell, the CPU and rate monotonic period usage monitoring libraries, and a utility to "dump a buffer" in a nicely formatted way similar to many ROM monitors. @item $@{RTEMS_ROOT@}/c/src/libnetworking/ This directory contains the networking components which might be tailored based upon the particular BSP. This includes the RTEMS telnetd, httpd, and ftpd servers. @item$@{RTEMS_ROOT@}/c/src/librdbg/ This directory contains the Ethernet-based remote debugging stub.  This software must be built to be intimately aware of a particular CPU model. @item $@{RTEMS_ROOT@}/c/src/librtems++/ @item$@{RTEMS_ROOT@}/c/src/make/ @item $@{RTEMS_ROOT@}/c/src/optman/ @item$@{RTEMS_ROOT@}/c/src/tests/ This directory contains the test suites for the various RTEMS APIs and support libraries.  This contents of this directory are discussed in the @ref{Directory Structure Test Suites} section. @item $@{RTEMS_ROOT@}/c/src/wrapup/ @end table @c @c Test Suites @c @lowersections @subsubsection Test Suites The following table lists the test suites currently included with the RTEMS and the directory in which they may be located: @table @code @item @{RTEMS_ROOT@}c/src/tests/itrontests ITRON API Tests @item @{RTEMS_ROOT@}c/src/tests/libtests Support Library Tests @item @{RTEMS_ROOT@}c/src/tests/mptests Classic API Multiprocessor Tests @item @{RTEMS_ROOT@}c/src/tests/psxtests POSIX API Tests @item @{RTEMS_ROOT@}c/src/tests/samples Sample Applications @item @{RTEMS_ROOT@}c/src/tests/sptests Classic API Single Processor Tests @item @{RTEMS_ROOT@}c/src/tests/support Test Support Software @item @{RTEMS_ROOT@}c/src/tests/tmitrontests ITRON API Timing Tests @item @{RTEMS_ROOT@}c/src/tests/tmtests Classic API Timing Tests @item @{RTEMS_ROOT@}c/src/tests/tools XXX @end table @raisesections @c @c CPUKit Directory @c @subsection CPUKit Directory The @code{cpukit/} directory structure is as follows: @c @c CPUKit Tree @c @example @group C | +----------+-----------+----------+ | | | | build_tools make src update_tools @end group @end example @end ifset @ifset use-tex @sp 1 @tex {\parskip=0pt\offinterlineskip% \hskip 08.0em \hskip 13.00em\hbox to 0.50em{\hss{C}\hss}% \vrule width0em height1.972ex depth0.812ex\par\penalty10000 \hskip 08.0em \hskip 13.25em\vrule width.04em% \vrule width0em height1.500ex depth0.500ex\par\penalty10000 \hskip 08.0em \hskip 1.75em\vrule width11.50em height-0.407ex depth0.500ex% \vrule width.04em\vrule width11.50em height-0.407ex depth0.500ex% \vrule width0em height1.500ex depth0.500ex\par\penalty10000 \hskip 08.0em \hskip 1.75em\vrule width.04em% \hskip 5.71em\vrule width.04em% \hskip 5.71em\vrule width.04em% \hskip 5.71em\vrule width.04em% \hskip 5.71em\vrule width.04em% \vrule width0em height1.500ex depth0.500ex\par\penalty10000 \hskip 08.0em \hskip 0.00em\hbox to 3.50em{\hss{Modules}\hss}% \hskip 1.00em\hbox to 6.00em{\hss{build\_tools}\hss}% \hskip 1.75em\hbox to 2.00em{\hss{make}\hss}% \hskip 4.00em\hbox to 1.50em{\hss{src}\hss}% \hskip 1.75em\hbox to 6.50em{\hss{update\_tools}\hss}% \vrule width0em height1.972ex depth0.812ex\par} @end tex @end ifset @ifset use-html @example @group C | +----------+-----------+----------+ | | | | build_tools make src update_tools @end group @end example @html @end html @end ifset This directory contains the subdirectories which contain the entire C implementation of the RTEMS executive. The "build-tools" directory contains an assortment of support tools for the RTEMS development environment. Two subdirectories exist under "build-tools" which contain scripts (executables) and source for the support tools. The "make" directory contains configuration files and subdirectories which provide a robust host and cross-target makefile system supporting the building of the executive for numerous application environments. The "update_tools" directory contains utilities which aid in the updating from a previous version to the current version of the RTEMS executive. The "src" directory structure for the C implementation of RTEMS is as follows: @c @c Tree 3 - Top C src Level @c @ifset use-ascii @example @group C Source | +-----------------------+-----------------------+ | | | exec lib tests @end group @end example @end ifset @ifset use-tex @sp 1 @tex {\parskip=0pt\offinterlineskip% \hskip 15.0em \hskip 2.00em\hbox to 4.00em{\hss{C Source}\hss}% \vrule width0em height1.972ex depth0.812ex\par\penalty10000 \hskip 15.0em \hskip 4.00em\vrule width.04em% \vrule width0em height1.500ex depth0.500ex\par\penalty10000 \hskip 15.0em \hskip 1.00em\vrule width3.00em height-0.407ex depth0.500ex% \vrule width.04em\vrule width3.00em height-0.407ex depth0.500ex% \vrule width0em height1.500ex depth0.500ex\par\penalty10000 \hskip 15.0em \hskip 1.00em\vrule width.04em% \hskip 2.96em\vrule width.04em% \hskip 2.96em\vrule width.04em% \vrule width0em height1.500ex depth0.500ex\par\penalty10000 \hskip 15.0em \hskip 0.00em\hbox to 2.00em{\hss{exec}\hss}% \hskip 1.25em\hbox to 1.50em{\hss{lib}\hss}% \hskip 1.00em\hbox to 2.50em{\hss{tests}\hss}% \vrule width0em height1.972ex depth0.812ex\par} @end tex @end ifset @ifset use-html @example @group C Source | +-----------------------+-----------------------+ | | | exec lib tests @end group @end example @html @end html @end ifset This directory contains all source files that comprises the RTEMS executive, supported target board support packages, and the RTEMS Test Suite. @ifinfo @node Executive Source Directory, Support Library Source Directory, C Suites, Directory Structure Suites @end ifinfo @subsection Executive Source Directory The "exec" directory structure for the C implementation is as follows: @c @c Tree 4 - C Executive Tree @c @ifset use-ascii @example @group C Executive CPUKit | +-----------+----------+-----------+----------+ @end ifset @ifset use-tex @sp 1 @tex {\parskip=0pt\offinterlineskip% \hskip 10.0em \hskip 6.00em\hbox to 5.50em{\hss{C Executive}\hss}% \vrule width0em height1.972ex depth0.812ex\par\penalty10000 \hskip 10.0em \hskip 8.75em\vrule width.04em% \vrule width0em height1.500ex depth0.500ex\par\penalty10000 \hskip 10.0em \hskip 1.25em\vrule width7.50em height-0.407ex depth0.500ex% \vrule width.04em\vrule width7.50em height-0.407ex depth0.500ex% \vrule width0em height1.500ex depth0.500ex\par\penalty10000 \hskip 10.0em \hskip 1.25em\vrule width.04em% \hskip 3.71em\vrule width.04em% \hskip 3.71em\vrule width.04em% \hskip 3.71em\vrule width.04em% \hskip 3.71em\vrule width.04em% \vrule width0em height1.500ex depth0.500ex\par\penalty10000 \hskip 10.0em \hskip 0.00em\hbox to 2.50em{\hss{posix}\hss}% \hskip 1.25em\hbox to 2.50em{\hss{rtems}\hss}% \hskip 1.50em\hbox to 2.00em{\hss{sapi}\hss}% \hskip 1.50em\hbox to 2.50em{\hss{score}\hss}% \hskip 1.00em\hbox to 3.00em{\hss{wrapup}\hss}% \vrule width0em height1.972ex depth0.812ex\par} @end tex @end ifset @ifset use-html @example @group C Executive | +-----------+----------+-----------+----------+ | | | | | posix rtems sapi score wrapup @end group @end example @html @end html @end ifset This directory contains a set of subdirectories which contains the source files comprising the executive portion of the RTEMS development environment. At this point the API specific and "supercore" source code files are separated into distinct directory trees. The "rtems" and the "posix" subdirectories contain the C language source files for each the RTEMS development environment as well as portable support libraries such as support for the C Library and filesystems. The API specific and "SuperCore" (e.g. @code{score/} directory) source code files are separated into distinct directory trees. The @code{rtems/}, @code{posix/}, and @code{itron/} subdirectories contain the C language source files for each module comprising the respective API. Also included in this directory are the subdirectories "sapi" and "score" which are the supercore modules. Within the "score" directory the CPU directory are the subdirectories @code{sapi/} and @code{score/} which are the SuperCore modules. Within the @code{score/} directory the CPU dependent modules are found. The "cpu" directory contains a subdirectory for each The @code{score/cpu/} subdirectory contains a subdirectory for each target CPU supported by the @value{RELEASE} release of the RTEMS executive. Each processor directory contains the CPU dependent processors. @ifinfo @node Support Library Source Directory, Test Suite Source Directory, Executive Source Directory, Directory Structure Suites @end ifinfo @c @c @c @subsection Documentation Directory XXX @c @c @c @subsection Support Library Source Directory @end ifset @ifinfo @node Test Suite Source Directory, Sample Applications, Support Library Source Directory, Directory Structure Suites @end ifinfo @c @c @c @subsection Test Suite Source Directory Support Libraries (BSPs, C library, CPU support)$RTEMS_ROOT/c/src/lib
Single Processor Tests $RTEMS_ROOT/c/src/tests/sptests Timing Tests$RTEMS_ROOT/c/src/tests/tmtests
Multiprocessor Tests $RTEMS_ROOT/c/src/tests/mptests Sample Applications$RTEMS_ROOT/c/src/tests/samples
RTEMS Build Tools $RTEMS_SRC_BASE/c/build_tools Make Support$RTEMS_ROOT/c/make