diff options
author | Joel Sherrill <joel@rtems.org> | 2016-11-15 10:37:59 -0600 |
---|---|---|
committer | Joel Sherrill <joel@rtems.org> | 2017-01-11 12:13:21 -0600 |
commit | 48a7fa31f918a6fc88719b3c9393a9ba2829f42a (patch) | |
tree | 10bf638de133099fcabe5fe713ca98a546a27ab2 /doc/develenv/direct.t | |
parent | Remove obsolete __RTEMS_HAVE_SYS_CPUSET_H__ (diff) | |
download | rtems-48a7fa31f918a6fc88719b3c9393a9ba2829f42a.tar.bz2 |
Remove texinfo format documentation. Replaced by Sphinx formatted documentation.
closes #2812.
Diffstat (limited to 'doc/develenv/direct.t')
-rw-r--r-- | doc/develenv/direct.t | 689 |
1 files changed, 0 insertions, 689 deletions
diff --git a/doc/develenv/direct.t b/doc/develenv/direct.t deleted file mode 100644 index 9950b69274..0000000000 --- a/doc/develenv/direct.t +++ /dev/null @@ -1,689 +0,0 @@ -@c -@c COPYRIGHT (c) 1989-2010. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. - -@chapter Directory Structure - -The RTEMS directory structure is designed to meet -the following requirements: - -@itemize @bullet -@item encourage development of modular components. - -@item isolate processor and target dependent code, while -allowing as much common source code as possible to be shared -across multiple processors and target boards. - -@item allow multiple RTEMS users to perform simultaneous -compilation of RTEMS and its support facilities for different -processors and targets. -@end itemize - -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 @i{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: - -@itemize @bullet - -@item functionality, -@item target processor family, -@item target processor model, -@item peripherals, and -@item target board. - -@end itemize - -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 testsuites tools -@end group -@end example -@c @end ifset - -@ifset use-tex -@end ifset - -@ifset use-html -@html -@end html -@end ifset - -@table @code -@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 various operating systems -including MinGW, Cygwin, FreeBSD, and Solaris. The -cross-compilers produced using these specifications are then -used in a Canadian cross build procedure to produce the various -RTEMS toolsets on a GNU/Linux host. - -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 @code{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. - - -@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 -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 CPU Kit 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 -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@}/testsuites/ -This directory contains the test suites for the -various RTEMS APIs and support libraries. The -contents of this directory are discussed in the -@ref{Directory Structure testsuites/ Test Suites} section. - -@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 - - - -@c -@c c/ Directions -@c -@section 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 Ada 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. -@end table - -@c -@c c/src/ Directory -@c -@subsection 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. - -@table @code -@item $@{RTEMS_ROOT@}/c/src/aclocal/ -This directory contains the custom M4 macros which are available to -the various GNU autoconf @code{configure.ac} scripts throughout -this portion of 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@}/c/src/ada/ -This directory contains the Ada95 language bindings to the -RTEMS Classic API. - -@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/automake/ -This directory contains files which are "Makefile fragments." -They are included as required by the various @code{Makefile.am} -files throughout this portion of the RTEMS source tree. - -@item $@{RTEMS_ROOT@}/c/src/lib/ -This directory contains the directories @code{libbsp/} -and @code{libcpu/} which contain the source code for -the Board Support Packages (BSPs) and CPU Model -specific source code for RTEMS. - -The @code{libbsp/} is organized based upon the CPU -family and boards BSPs. The contents of @code{libbsp/} -are discussed briefly in -@ref{Directory Structure c/src/lib/libbsp BSP Directory} -and presented in detail in the -@b{RTEMS BSP and Device Driver Development Guide}. - -The @code{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. - -@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, shared memory and real-time clocks. - -@item $@{RTEMS_ROOT@}/c/src/librtems++/ -This directory contains C++ classes which map to the RTEMS -Classic API. - -@item $@{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. - -@item $@{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. - -@item $@{RTEMS_ROOT@}/c/src/optman/ -This directory contains stubs for the RTEMS Classic API -Managers which are considered optional and whose use -may be explicitly forbidden by an application. All of the -directive implementations in this Optional Managers -return @code{E_NOTCONFIGURED}. - -@item $@{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. - -@item $@{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 @code{librtemsbsp.a}. This -library contains all BSP and CPU model specific software. - -@end table - -@c -@c c/src/lib/libbsp BSP Directory -@c - -@subsubsection c/src/lib/libbsp BSP Directory - -The "libbsp" 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. - -@c -@c Tree 7 - C BSP Library -@c - -The "libbsp" directory provides all the BSPs provided with this -release of the RTEMS executive. 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. - -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: - -@c -@c Tree 8 - Each BSP -@c - -@c @ifset use-ascii -@example -@group - Each BSP - | - +-----------+----------+-----+-----+----------+----------+ - | | | | | | -clock console include shmsupp startup timer -@end group -@end example -@c @end ifset - -@c -@c CPU Kit Directory -@c -@section CPU Kit Directory - -@c The @code{cpukit/} directory structure is as follows: - -@c -@c CPU Kit Tree -@c - -@c @ifset use-ascii -@c @example -@c @group -@c cpukit -@c | -@c +-----------+----------+-----------+----------+ -@c | | | | | -@c posix rtems sapi score wrapup -@c @end group -@c @end example -@c @end ifset - -The @code{cpukit/} directory contains a set of subdirectories which -contains the source files comprising the executive portion of -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 following is a description of each of the subdirectories -under @code{cpukit/}: - -@table @code - -@item $@{RTEMS_ROOT@}/cpukit/aclocal/ -This directory contains the custom M4 macros which are available to -the various GNU autoconf @code{configure.ac} scripts throughout -the CPU Kit portion of 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@}/cpukit/automake/ -This directory contains files which are "Makefile fragments." -They are included as required by the various @code{Makefile.am} -files throughout the CPU Kit portion of the RTEMS source tree. - -@item $@{RTEMS_ROOT@}/cpukit/ftpd/ -This directory contains the RTEMS ftpd server. - -@item $@{RTEMS_ROOT@}/cpukit/httpd/ -This directory contains the port of the GoAhead -web server to RTEMS. - -@item $@{RTEMS_ROOT@}/cpukit/include/ -This directory contains header files which are private to -RTEMS and not considered to be owned by any other component -in the CPU Kit. - -@item $@{RTEMS_ROOT@}/cpukit/libblock/ -This directory contains support code for using -Block Devices such as hard drives, floppies, and -CD-ROMs. It includes the generic IO primitives -for block device drivers, disk caching support, -and a RAM disk block device driver. - -@item $@{RTEMS_ROOT@}/cpukit/libcsupport/ -This directory contains the RTEMS specific support routines -for the Newlib C Library. This includes what are referred -to as system calls and found in section 2 of the traditional -UNIX manual. In addition, it contains a thread-safe -implementation of the Malloc family of routines as well -as BSD and POSIX services not found in Newlib. - -@item $@{RTEMS_ROOT@}/cpukit/libfs/ -This directory contains the various non-networked -filesystem implementations for RTEMS. It includes -the In-Memory FileSystem (IMFS), the mini-IMFS, -and FAT filesystems. - -@item $@{RTEMS_ROOT@}/cpukit/libi2c/ -This directory contains the RTEMS I2C framework. - -@item $@{RTEMS_ROOT@}/cpukit/libmd/ -This directory contains a port of the standard MD5 -checksum code. - -@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@}/cpukit/libnetworking/ -This directory contains the port of the FreeBSD -TCP/IP stack to RTEMS. - -@item $@{RTEMS_ROOT@}/cpukit/librpc/ -This directory contains the port of the FreeBSD -RPC/XDR source to RTEMS. - -@item $@{RTEMS_ROOT@}/cpukit/libpci/ -This directory contains RTEMS PCI Library. - -@item $@{RTEMS_ROOT@}/cpukit/posix/ -This directory contains the RTEMS implementation -of the threading portions of the POSIX API. - -@item $@{RTEMS_ROOT@}/cpukit/pppd/ -This directory contains a port of the free implementation -of the PPPD network protocol. - -@item $@{RTEMS_ROOT@}/cpukit/rtems/ -This directory contains the implementation of the -Classic API. - -@item $@{RTEMS_ROOT@}/cpukit/sapi/ -This directory contains the implementation of RTEMS -services which are required but beyond the realm -of any standardization efforts. It includes -initialization, shutdown, and IO services. - -@item $@{RTEMS_ROOT@}/cpukit/score/ -This directory contains the "SuperCore" of RTEMS. -All APIs are implemented in terms of SuperCore services. -For example, Classic API tasks and POSIX threads -are all implemented in terms of SuperCore threads. -This provides a common infrastructure and a high degree -of interoperability between the APIs. For example, -services from all APIs may be used by any task/thread -independent of the API used to create it. - -Within the @code{score/} directory the CPU dependent modules are found. -The @code{score/cpu/} subdirectory contains a subdirectory for each -target CPU supported by this release of the RTEMS -executive. Each processor directory contains the CPU dependent -code necessary to host RTEMS. The @code{no_cpu} directory provides a -starting point for developing a new port to an unsupported -processor. The files contained within the @code{no_cpu} directory -may also be used as a reference for the other ports to specific -processors. - -@item $@{RTEMS_ROOT@}/cpukit/shttpd/ -This directory contains the port of the Simple HTTPD -web server to RTEMS. - -@item $@{RTEMS_ROOT@}/cpukit/telnetd/ -This directory contains the RTEMS telnetd server. - -@item $@{RTEMS_ROOT@}/cpukit/wrapup/ -This directory is responsible for taking the individual -libraries and objects built in each of the components -in the RTEMS CPU Kit source tree and bundling them -together to form the single RTEMS library @code{librtemscpu.a}. This -library contains all BSP and CPU model specific software. - -@item $@{RTEMS_ROOT@}/cpukit/zlib/ -This directory contains a port of the GNU Zlib compression -library to RTEMS. - -@end table - -@c -@c testsuites/ Test Suites -@c -@section testsuites/ Test Suites - -This directory provides all of the RTEMS Test Suite -except those for the Classic API Ada95 binding -This includes the single processor tests, multiprocessor tests, -timing tests, library tests, and sample tests. Additionally, -subdirectories for support functions and test related header -files are provided. 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@}/testsuites/libtests/ -This directory contains the test suite for the -various RTEMS support components. - -@item $@{RTEMS_ROOT@}/testsuites/mptests/ -This directory contains the test suite for the -multiprocessor support in the Classic API. -The tests provided address two node configurations -and provide coverage for the multiprocessor code found -in RTEMS. - -@item $@{RTEMS_ROOT@}/testsuites/psxtests/ -This directory contains the test suite for the -RTEMS POSIX API. - -@item $@{RTEMS_ROOT@}/testsuites/samples/ -This directory provides sample application tests -which aid in the testing a newly built RTEMS environment, a new -BSP, or as starting points for the development of an application -using the RTEMS executive. They are discussed in -@ref{Sample Applications}. - -@item $@{RTEMS_ROOT@}/testsuites/sptests/ -This directory contains the test suite for the RTEMS -Classic API when executing on a single processor. -The tests were originally designed to provide -near complete test coverage for the entire -executive code. With the addition of multiple APIs, -this is no longer the case as some SuperCore functionality -is not available through the Classic API. Thus -some functionality in the SuperCore is only covered -by tests in the POSIX API Test Suites. - -@item $@{RTEMS_ROOT@}/testsuites/support/ -This directory contains support software and header files -for the various test suites. - -@item $@{RTEMS_ROOT@}/testsuites/tmtests/ -This directory contains the timing test suite for -the RTEMS Classic API. This include tests that -benchmark each directive in the Classic API -as well as a set of critical SuperCore functions. -These tests are important for helping to verify -that RTEMS performs as expected on your target hardware. -It is not uncommon to discover mistakes in board -initialization such as caching being disabled as -a side-effect of analyzing the results of these tests. - -@item $@{RTEMS_ROOT@}/testsuites/tools/ -This directory contains tools which execute on -the development host and aid in executing and -evaluating the results of the test suite. The -tools @code{difftest} compares the output of one -or more tests with the expected output. If you -place the output of all the @code{tmtests/} in -a single file, then the utility @code{sorttimes} -will be able to produce a report organizing the -execution times by manager. - -@end table - - -@c -@c Documentation Directory -@c -@section Documentation Directory - -This directory contains the source code for all RTEMS documentation -in @code{TexInfo} format as well as utilities used in the generation -of the RTEMS documentation set. This source code is used to produce -the RTEMS documentation in various formats including PDF, HTML, -and PostScript. - -@table @code - -@item $@{RTEMS_ROOT@}/doc/ada_user/ -This directory contains the source code for the @cite{RTEMS -Applications Ada User's Guide} which documents the Ada95 -binding to the Classic API. This manual is produced from -from the same source base as the @cite{RTEMS Application -C User's Guide}. - -@item $@{RTEMS_ROOT@}/doc/bsp_howto/ -This directory contains the source code for the -@cite{RTEMS BSP and Device Driver Development Guide}. - -@item $@{RTEMS_ROOT@}/doc/common/ -This directory contains the source code for the files which -are shared across multiple manuals in the RTEMS Documentation Set. -This includes the copyright page as well as the timing -tables which can be filled in on a per BSP basis in the -CPU supplements. - -@item $@{RTEMS_ROOT@}/doc/cpu_supplement/ -This directory contains the source code for the -RTEMS CPU Supplement. - -@item $@{RTEMS_ROOT@}/doc/develenv/ -This directory contains the source code for the -@cite{RTEMS Development Environment Guide}. This is -the document you are currently reading. - -@item $@{RTEMS_ROOT@}/doc/filesystem/ -This directory contains the source code for the -@cite{RTEMS Filesystem Design Guide}. This manual -is a continuous work in process as it attempts to -capture the design of the interface between system -calls and filesystem implementations as well as the -information required by those implementing filesystems. - -@item $@{RTEMS_ROOT@}/doc/images/ -This directory contains the source code for the graphics -used in the HTML version of the RTEMS Documentation. - -@item $@{RTEMS_ROOT@}/doc/networking/ -This directory contains the source code for the -@cite{RTEMS Network Supplement}. - -@item $@{RTEMS_ROOT@}/doc/new_chapters/ -This directory contains the source code for the new documentation -components which have not yet been collected into a new manual or -merged into an existing document. Currently, this primarily -contains draft documentation for some portions of -the facilities implemented in @code{$@{RTEMS_ROOT@}/c/src/libmisc/}. - -@item $@{RTEMS_ROOT@}/doc/porting/ -This directory contains the source code for the -@cite{RTEMS Porting Guide}. - -@item $@{RTEMS_ROOT@}/doc/posix1003.1/ -This directory contains the source code for the -@cite{RTEMS POSIX 1003.1 Compliance Guide}. - -@item $@{RTEMS_ROOT@}/doc/posix_users/ -This directory contains the source code for the -@cite{RTEMS POSIX API User's Guide}. It is important to -note that RTEMS' support for POSIX is a combination of -functionality provided by RTEMS and the Newlib C Library -so some functionality is documented by Newlib. - -@item $@{RTEMS_ROOT@}/doc/relnotes/ -This directory contains the source code for a formally -release notes document. This has not been used for -recent RTEMS releases. - -@item $@{RTEMS_ROOT@}/doc/started/ -This directory contains the source code for the -@cite{Getting Started with RTEMS for C/C++ Users} manual. - -@item $@{RTEMS_ROOT@}/doc/tools/ -This directory contains the source code for the tools -used on the development host to assist in producing the -RTEMS Documentation. The most important of these tools -is @code{bmenu} which generates the hierarchical node -linking commands based upon chapter, section, and -subsection organization. - -@item $@{RTEMS_ROOT@}/doc/user/ -This directory contains the source code for the @cite{RTEMS -Applications C User's Guide} which documents the Classic API. - -@end table |