[489740f] | 1 | .. comment SPDX-License-Identifier: CC-BY-SA-4.0 |
---|
| 2 | |
---|
[9b53679] | 3 | .. COMMENT: COPYRIGHT (c) 1989-2007. |
---|
| 4 | .. COMMENT: On-Line Applications Research Corporation (OAR). |
---|
| 5 | .. COMMENT: All rights reserved. |
---|
| 6 | |
---|
[c0d6eff6] | 7 | Directory Structure |
---|
| 8 | ################### |
---|
| 9 | |
---|
[9b53679] | 10 | The RTEMS directory structure is designed to meet the following requirements: |
---|
[c0d6eff6] | 11 | |
---|
| 12 | - encourage development of modular components. |
---|
| 13 | |
---|
[9b53679] | 14 | - isolate processor and target dependent code, while allowing as much common |
---|
| 15 | source code as possible to be shared across multiple processors and target |
---|
| 16 | boards. |
---|
| 17 | |
---|
| 18 | - allow multiple RTEMS users to perform simultaneous compilation of RTEMS and |
---|
| 19 | its support facilities for different processors and targets. |
---|
| 20 | |
---|
| 21 | The resulting directory structure has processor and board dependent source |
---|
| 22 | files isolated from generic files. When RTEMS is configured and built, object |
---|
| 23 | directories and an install point will be automatically created based upon the |
---|
| 24 | target CPU family and BSP selected. |
---|
| 25 | |
---|
| 26 | The placement of object files based upon the selected BSP name ensures that |
---|
| 27 | object files are not mixed across CPUs or targets. This in combination with |
---|
| 28 | the makefiles allows the specific compilation options to be tailored for a |
---|
| 29 | particular target board. For example, the efficiency of the memory subsystem |
---|
| 30 | for a particular target board may be sensitive to the alignment of data |
---|
| 31 | structures, while on another target board with the same processor memory may be |
---|
| 32 | very limited. For the first target, the options could specify very strict |
---|
| 33 | alignment requirements, while on the second the data structures could be |
---|
| 34 | *packed* to conserve memory. It is impossible to achieve this degree of |
---|
| 35 | flexibility without providing source code. |
---|
[c0d6eff6] | 36 | |
---|
| 37 | The RTEMS source tree is organized based on the following variables: |
---|
| 38 | |
---|
| 39 | - functionality, |
---|
| 40 | |
---|
| 41 | - target processor family, |
---|
| 42 | |
---|
| 43 | - target processor model, |
---|
| 44 | |
---|
| 45 | - peripherals, and |
---|
| 46 | |
---|
| 47 | - target board. |
---|
| 48 | |
---|
[9b53679] | 49 | Each of the following sections will describe the contents of the directories in |
---|
| 50 | the RTEMS source tree. The top of the tree will be referenced as |
---|
| 51 | ``${RTEMS_ROOT}`` in this discussion. |
---|
[c0d6eff6] | 52 | |
---|
[9b53679] | 53 | .. code-block:: c |
---|
[c0d6eff6] | 54 | |
---|
| 55 | rtems-VERSION |
---|
| 56 | | |
---|
| 57 | +--------+----+----+----+--+-----+---+-------+--------+ |
---|
| 58 | | | | | | | | | | |
---|
| 59 | aclocal automake c contrib cpukit doc make testsuites tools |
---|
| 60 | |
---|
| 61 | ``${RTEMS_ROOT}/aclocal/`` |
---|
[9b53679] | 62 | This directory contains the custom M4 macros which are available to the |
---|
| 63 | various GNU autoconf ``configure.ac`` scripts throughout the RTEMS source |
---|
| 64 | tree. GNU autoconf interprets ``configure.ac`` files to produce the |
---|
| 65 | ``configure`` files used to tailor RTEMS build for a particular host and |
---|
| 66 | target environment. The contents of this directory will not be discussed |
---|
| 67 | further in this document. |
---|
[c0d6eff6] | 68 | |
---|
| 69 | ``${RTEMS_ROOT}/automake/`` |
---|
[9b53679] | 70 | This directory contains the custom GNU automake fragments which are used to |
---|
| 71 | support the various ``Makefile.am`` files throughout the RTEMS source tree. |
---|
| 72 | The contents of this directory will not be discussed further in this |
---|
| 73 | document. |
---|
[c0d6eff6] | 74 | |
---|
| 75 | ``${RTEMS_ROOT}/c/`` |
---|
[9b53679] | 76 | This directory is the root of the portions of the RTEMS source tree which |
---|
| 77 | must be built tailored for a particular CPU model or BSP. The contents of |
---|
| 78 | this directory will be discussed in the `c/ Directory`_ section. |
---|
[c0d6eff6] | 79 | |
---|
| 80 | ``${RTEMS_ROOT}/contrib/`` |
---|
[9b53679] | 81 | This directory contains contributed support software. Currently this |
---|
| 82 | directory contains the RPM specifications for cross-compilers hosted on |
---|
| 83 | GNU/Linux that target various operating systems including MinGW, Cygwin, |
---|
| 84 | FreeBSD, and Solaris. The cross-compilers produced using these |
---|
| 85 | specifications are then used in a Canadian cross build procedure to produce |
---|
| 86 | the various RTEMS toolsets on a GNU/Linux host. This directory also |
---|
| 87 | contains RPM specifications for the prebuilt cross-compilation toolsets |
---|
| 88 | provided by the RTEMS project. There are separate subdirectories for each |
---|
| 89 | of the components in the RTEMS Cross Compilation Environment unde the |
---|
| 90 | ``contrib/crossrpms/`` directory. This directory is configured, built, and |
---|
| 91 | installed separately from the RTEMS executive and tests. This directory |
---|
| 92 | will not be discussed further in this document. |
---|
[c0d6eff6] | 93 | |
---|
| 94 | ``${RTEMS_ROOT}/cpukit/`` |
---|
[9b53679] | 95 | This directory is the root for all of the "multilib'able" portions of |
---|
| 96 | RTEMS. This is a GNU way of saying the contents of this directory can be |
---|
| 97 | compiled like the C Library (``libc.a``) and the functionality is neither |
---|
| 98 | CPU model nor BSP specific. The source code for most RTEMS services reside |
---|
| 99 | under this directory. The contents of this directory will be discussed in |
---|
| 100 | the `CPU Kit Directory`_ section. |
---|
[c0d6eff6] | 101 | |
---|
| 102 | ``${RTEMS_ROOT}/doc/`` |
---|
[9b53679] | 103 | This directory is the root for all RTEMS documentation. The source for |
---|
| 104 | RTEMS is written in GNU TeXinfo and used to produce HTML, PDF, and "info" |
---|
| 105 | files. The RTEMS documentation is configured, built, and installed |
---|
| 106 | separately from the RTEMS executive and tests. The contents of this |
---|
| 107 | directory will be discussed in the `Documentation Directory`_ section. |
---|
[c0d6eff6] | 108 | |
---|
| 109 | ``${RTEMS_ROOT}/make/`` |
---|
[9b53679] | 110 | This directory contains files which support the RTEMS Makefile's. From a |
---|
| 111 | user's perspective, the most important parts are found in the ``custom/`` |
---|
| 112 | subdirectory. Each ".cfg" file in this directory is associated with a |
---|
| 113 | specific BSP and describes the CPU model, compiler flags, and procedure to |
---|
| 114 | produce an executable for the target board. These files are described in |
---|
| 115 | detail in the*RTEMS BSP and Device Driver Development Guide* and will not |
---|
| 116 | be discussed further in this document. |
---|
[c0d6eff6] | 117 | |
---|
| 118 | ``${RTEMS_ROOT}/testsuites/`` |
---|
[9b53679] | 119 | This directory contains the test suites for the various RTEMS APIs and |
---|
| 120 | support libraries. The contents of this directory are discussed in the |
---|
| 121 | `testsuites/ Test Suites`_ section. |
---|
[c0d6eff6] | 122 | |
---|
| 123 | ``${RTEMS_ROOT}/tools/`` |
---|
[9b53679] | 124 | This directory contains RTEMS specific support utilities which execute on |
---|
| 125 | the development host. These utilities are divided into subdirectories |
---|
| 126 | based upon whether they are used in the process of building RTEMS and |
---|
| 127 | applications, are CPU specific, or are used to assist in updating the RTEMS |
---|
| 128 | source tree and applications. The support utilities used in the process of |
---|
| 129 | building RTEMS are described in `RTEMS Specific Utilities`_. These are the |
---|
| 130 | only components of this subtree that will be discussed in this document. |
---|
[c0d6eff6] | 131 | |
---|
| 132 | c/ Directory |
---|
| 133 | ============ |
---|
| 134 | |
---|
[9b53679] | 135 | The ``${RTEMS_ROOT}/c/`` directory was formerly the root directory of all RTEMS |
---|
| 136 | source code. At this time, it contains the root directory for only those RTEMS |
---|
| 137 | components which must be compiled or linked in a way that is specific to a |
---|
| 138 | particular CPU model or board. This directory contains the following |
---|
| 139 | subdirectories: |
---|
[c0d6eff6] | 140 | |
---|
| 141 | ``${RTEMS_ROOT}/c/src/`` |
---|
[9b53679] | 142 | This directory is logically the root for the RTEMS components which are CPU |
---|
| 143 | model or board dependent. Thus this directory is the root for the BSPs and |
---|
| 144 | the Ada Test Suites as well as CPU model and BSP dependent libraries. The |
---|
| 145 | contents of this directory are discussed in the `c/src/ Directory`_ |
---|
| 146 | section. |
---|
[c0d6eff6] | 147 | |
---|
| 148 | c/src/ Directory |
---|
| 149 | ---------------- |
---|
| 150 | |
---|
[9b53679] | 151 | As mentioned previously, this directory is logically the root for the RTEMS |
---|
| 152 | components which are CPU model or board dependent. The following is a list of |
---|
| 153 | the subdirectories in this directory and a description of each. |
---|
[c0d6eff6] | 154 | |
---|
| 155 | ``${RTEMS_ROOT}/c/src/aclocal/`` |
---|
[9b53679] | 156 | This directory contains the custom M4 macros which are available to the |
---|
| 157 | various GNU autoconf ``configure.ac`` scripts throughout this portion of |
---|
| 158 | the RTEMS source tree. GNU autoconf interprets``configure.ac`` files to |
---|
| 159 | produce the ``configure`` files used to tailor RTEMS build for a particular |
---|
| 160 | host and target environment. The contents of this directory will not be |
---|
| 161 | discussed further in this document. |
---|
[c0d6eff6] | 162 | |
---|
| 163 | ``${RTEMS_ROOT}/c/src/ada/`` |
---|
[9b53679] | 164 | This directory contains the Ada95 language bindings to the RTEMS Classic |
---|
| 165 | API. |
---|
[c0d6eff6] | 166 | |
---|
| 167 | ``${RTEMS_ROOT}/c/src/ada-tests/`` |
---|
[9b53679] | 168 | This directory contains the test suite for the Ada language bindings to the |
---|
| 169 | Classic API. |
---|
[c0d6eff6] | 170 | |
---|
| 171 | ``${RTEMS_ROOT}/c/src/automake/`` |
---|
[9b53679] | 172 | This directory contains files which are "Makefile fragments." They are |
---|
| 173 | included as required by the various ``Makefile.am`` files throughout this |
---|
| 174 | portion of the RTEMS source tree. |
---|
[c0d6eff6] | 175 | |
---|
| 176 | ``${RTEMS_ROOT}/c/src/lib/`` |
---|
[9b53679] | 177 | This directory contains the directories ``libbsp/`` and ``libcpu/`` which |
---|
| 178 | contain the source code for the Board Support Packages (BSPs) and CPU Model |
---|
| 179 | specific source code for RTEMS. The ``libbsp/`` is organized based upon |
---|
| 180 | the CPU family and boards BSPs. The contents of ``libbsp/`` are discussed |
---|
| 181 | briefly in `c/src/lib/libbsp BSP Directory`_ and presented in detail in |
---|
| 182 | the*RTEMS BSP and Device Driver Development Guide*. The ``libcpu/`` |
---|
| 183 | directory is also organized by CPU family with further divisions based upon |
---|
| 184 | CPU model and features that are shared across CPU models such as caching |
---|
| 185 | and DMA. |
---|
[c0d6eff6] | 186 | |
---|
| 187 | ``${RTEMS_ROOT}/c/src/libchip/`` |
---|
[9b53679] | 188 | This directory contains device drivers for various peripheral chips which |
---|
| 189 | are designed to be CPU and board dependent. This directory contains a |
---|
| 190 | variety of drivers for serial devices, network interface controllers, |
---|
| 191 | shared memory and real-time clocks. |
---|
[c0d6eff6] | 192 | |
---|
| 193 | ``${RTEMS_ROOT}/c/src/librtems++/`` |
---|
[9b53679] | 194 | This directory contains C++ classes which map to the RTEMS Classic API. |
---|
[c0d6eff6] | 195 | |
---|
| 196 | ``${RTEMS_ROOT}/c/src/make/`` |
---|
[9b53679] | 197 | This directory is used to generate the bulk of the supporting rules files |
---|
| 198 | which are installed as part of the Application Makefiles. This file |
---|
| 199 | contains settings for various Makefile variables to tailor them to the |
---|
| 200 | particular CPU model and BSP configured. |
---|
[c0d6eff6] | 201 | |
---|
| 202 | ``${RTEMS_ROOT}/c/src/nfsclient/`` |
---|
[9b53679] | 203 | This directory contains a Network File System (NFS) client for RTEMS. With |
---|
| 204 | this file system, a user's application can access files on a remote |
---|
| 205 | computer. |
---|
[c0d6eff6] | 206 | |
---|
| 207 | ``${RTEMS_ROOT}/c/src/optman/`` |
---|
[9b53679] | 208 | This directory contains stubs for the RTEMS Classic API Managers which are |
---|
| 209 | considered optional and whose use may be explicitly forbidden by an |
---|
| 210 | application. All of the directive implementations in this Optional |
---|
| 211 | Managers return ``E_NOTCONFIGURED``. |
---|
[c0d6eff6] | 212 | |
---|
| 213 | ``${RTEMS_ROOT}/c/src/support/`` |
---|
[9b53679] | 214 | This directory exists solely to generate the RTEMS version string which |
---|
| 215 | includes the RTEMS version, CPU architecture, CPU model, and BSP name. |
---|
[c0d6eff6] | 216 | |
---|
| 217 | ``${RTEMS_ROOT}/c/src/wrapup/`` |
---|
[9b53679] | 218 | This directory is responsible for taking the individual libraries and |
---|
| 219 | objects built in each of the components in the RTEMS source tree and |
---|
| 220 | bundling them together to form the single RTEMS library ``librtemsbsp.a``. |
---|
| 221 | This library contains all BSP and CPU model specific software. |
---|
[c0d6eff6] | 222 | |
---|
| 223 | c/src/lib/libbsp BSP Directory |
---|
| 224 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
---|
| 225 | |
---|
[9b53679] | 226 | The "libbsp" directory contains a directory for each CPU family supported by |
---|
| 227 | RTEMS. Beneath each CPU directory is a directory for each BSP for that |
---|
[c0d6eff6] | 228 | processor family. |
---|
| 229 | |
---|
[9b53679] | 230 | The "libbsp" directory provides all the BSPs provided with this release of the |
---|
| 231 | RTEMS executive. The subdirectories are divided, as discussed previously, |
---|
| 232 | based on specific processor family, then further broken down into specific |
---|
| 233 | target board environments. The "no_cpu" subdirectory provides a starting point |
---|
| 234 | template BSP which can be used to develop a specific BSP for an unsupported |
---|
| 235 | target board. The files in this subdirectory may aid in preliminary testing of |
---|
| 236 | the RTEMS development environment that has been built for no particular target |
---|
| 237 | in mind. |
---|
[c0d6eff6] | 238 | |
---|
[9b53679] | 239 | Below each CPU dependent directory is a directory for each target BSP supported |
---|
| 240 | in this release. |
---|
[c0d6eff6] | 241 | |
---|
[9b53679] | 242 | Each BSP provides the modules which comprise an RTEMS BSP. The modules are |
---|
| 243 | separated into the subdirectories "clock", "console", "include", "shmsupp", |
---|
| 244 | "startup", and "timer" as shown in the following figure: |
---|
[c0d6eff6] | 245 | |
---|
[9b53679] | 246 | .. code-block:: c |
---|
[c0d6eff6] | 247 | |
---|
| 248 | Each BSP |
---|
| 249 | | |
---|
| 250 | +-----------+----------+-----+-----+----------+----------+ |
---|
| 251 | | | | | | | |
---|
| 252 | clock console include shmsupp startup timer |
---|
| 253 | |
---|
| 254 | CPU Kit Directory |
---|
| 255 | ================= |
---|
| 256 | |
---|
[9b53679] | 257 | The @code{cpukit/} directory structure is as follows: |
---|
[c0d6eff6] | 258 | |
---|
[9b53679] | 259 | .. code-block:: c |
---|
[c0d6eff6] | 260 | |
---|
[9b53679] | 261 | cpukit |
---|
| 262 | | |
---|
| 263 | +-----------+----------+-----------+----------+ |
---|
| 264 | | | | | | |
---|
| 265 | posix rtems sapi score wrapup |
---|
[c0d6eff6] | 266 | |
---|
[9b53679] | 267 | The ``cpukit/`` directory contains a set of subdirectories which contains the |
---|
| 268 | source files comprising the executive portion of the RTEMS development |
---|
| 269 | environment as well as portable support libraries such as support for the C |
---|
| 270 | Library and filesystems. The API specific and "SuperCore" (e.g. ``score/`` |
---|
| 271 | directory) source code files are separated into distinct directory trees. |
---|
[c0d6eff6] | 272 | |
---|
[9b53679] | 273 | The following is a description of each of the subdirectories under ``cpukit/``: |
---|
[c0d6eff6] | 274 | |
---|
| 275 | ``${RTEMS_ROOT}/cpukit/aclocal/`` |
---|
[9b53679] | 276 | This directory contains the custom M4 macros which are available to the |
---|
| 277 | various GNU autoconf ``configure.ac`` scripts throughout the CPU Kit |
---|
| 278 | portion of the RTEMS source tree. GNU autoconf interprets ``configure.ac`` |
---|
| 279 | files to produce the ``configure`` files used to tailor RTEMS build for a |
---|
| 280 | particular host and target environment. The contents of this directory |
---|
| 281 | will not be discussed further in this document. |
---|
[c0d6eff6] | 282 | |
---|
| 283 | ``${RTEMS_ROOT}/cpukit/automake/`` |
---|
[9b53679] | 284 | This directory contains files which are "Makefile fragments." They are |
---|
| 285 | included as required by the various ``Makefile.am`` files throughout the |
---|
| 286 | CPU Kit portion of the RTEMS source tree. |
---|
[c0d6eff6] | 287 | |
---|
| 288 | ``${RTEMS_ROOT}/cpukit/ftpd/`` |
---|
| 289 | This directory contains the RTEMS ftpd server. |
---|
| 290 | |
---|
| 291 | ``${RTEMS_ROOT}/cpukit/httpd/`` |
---|
[9b53679] | 292 | This directory contains the port of the GoAhead web server to RTEMS. |
---|
[c0d6eff6] | 293 | |
---|
| 294 | ``${RTEMS_ROOT}/cpukit/include/`` |
---|
[9b53679] | 295 | This directory contains header files which are private to RTEMS and not |
---|
| 296 | considered to be owned by any other component in the CPU Kit. |
---|
[c0d6eff6] | 297 | |
---|
| 298 | ``${RTEMS_ROOT}/cpukit/libblock/`` |
---|
[9b53679] | 299 | This directory contains support code for using Block Devices such as hard |
---|
| 300 | drives, floppies, and CD-ROMs. It includes the generic IO primitives for |
---|
| 301 | block device drivers, disk caching support, and a RAM disk block device |
---|
| 302 | driver. |
---|
[c0d6eff6] | 303 | |
---|
| 304 | ``${RTEMS_ROOT}/cpukit/libcsupport/`` |
---|
[9b53679] | 305 | This directory contains the RTEMS specific support routines for the Newlib |
---|
| 306 | C Library. This includes what are referred to as system calls and found in |
---|
| 307 | section 2 of the traditional UNIX manual. In addition, it contains a |
---|
| 308 | thread-safe implementation of the Malloc family of routines as well as BSD |
---|
| 309 | and POSIX services not found in Newlib. |
---|
[c0d6eff6] | 310 | |
---|
| 311 | ``${RTEMS_ROOT}/cpukit/libfs/`` |
---|
[9b53679] | 312 | This directory contains the various non-networked filesystem |
---|
| 313 | implementations for RTEMS. It includes the In-Memory FileSystem (IMFS), |
---|
| 314 | the mini-IMFS, and FAT filesystems. |
---|
[c0d6eff6] | 315 | |
---|
| 316 | ``${RTEMS_ROOT}/cpukit/libi2c/`` |
---|
| 317 | This directory contains the RTEMS I2C framework. |
---|
| 318 | |
---|
| 319 | ``${RTEMS_ROOT}/cpukit/libmd/`` |
---|
[9b53679] | 320 | This directory contains a port of the standard MD5 checksum code. |
---|
[c0d6eff6] | 321 | |
---|
| 322 | ``${RTEMS_ROOT}/c/src/libmisc/`` |
---|
[9b53679] | 323 | This directory contains support facilities which are RTEMS specific but |
---|
| 324 | otherwise unclassified. In general, they do not adhere to a standard API. |
---|
| 325 | Among the support facilities in this directory are a ``/dev/null`` device |
---|
| 326 | driver, the Stack Overflow Checker, a mini-shell, the CPU and rate |
---|
| 327 | monotonic period usage monitoring libraries, and a utility to "dump a |
---|
| 328 | buffer" in a nicely formatted way similar to many ROM monitors. |
---|
[c0d6eff6] | 329 | |
---|
| 330 | ``${RTEMS_ROOT}/cpukit/libnetworking/`` |
---|
[9b53679] | 331 | This directory contains the port of the FreeBSD TCP/IP stack to RTEMS. |
---|
[c0d6eff6] | 332 | |
---|
| 333 | ``${RTEMS_ROOT}/cpukit/librpc/`` |
---|
[9b53679] | 334 | This directory contains the port of the FreeBSD RPC/XDR source to RTEMS. |
---|
[c0d6eff6] | 335 | |
---|
| 336 | ``${RTEMS_ROOT}/cpukit/libpci/`` |
---|
| 337 | This directory contains RTEMS PCI Library. |
---|
| 338 | |
---|
| 339 | ``${RTEMS_ROOT}/cpukit/posix/`` |
---|
[9b53679] | 340 | This directory contains the RTEMS implementation of the threading portions |
---|
| 341 | of the POSIX API. |
---|
[c0d6eff6] | 342 | |
---|
| 343 | ``${RTEMS_ROOT}/cpukit/pppd/`` |
---|
[9b53679] | 344 | This directory contains a port of the free implementation of the PPPD |
---|
| 345 | network protocol. |
---|
[c0d6eff6] | 346 | |
---|
| 347 | ``${RTEMS_ROOT}/cpukit/rtems/`` |
---|
[9b53679] | 348 | This directory contains the implementation of the Classic API. |
---|
[c0d6eff6] | 349 | |
---|
| 350 | ``${RTEMS_ROOT}/cpukit/sapi/`` |
---|
[9b53679] | 351 | This directory contains the implementation of RTEMS services which are |
---|
| 352 | required but beyond the realm of any standardization efforts. It includes |
---|
[c0d6eff6] | 353 | initialization, shutdown, and IO services. |
---|
| 354 | |
---|
| 355 | ``${RTEMS_ROOT}/cpukit/score/`` |
---|
[9b53679] | 356 | This directory contains the "SuperCore" of RTEMS. All APIs are implemented |
---|
| 357 | in terms of SuperCore services. For example, Classic API tasks and POSIX |
---|
| 358 | threads are all implemented in terms of SuperCore threads. This provides a |
---|
| 359 | common infrastructure and a high degree of interoperability between the |
---|
| 360 | APIs. For example, services from all APIs may be used by any task/thread |
---|
| 361 | independent of the API used to create it. Within the ``score/`` directory |
---|
| 362 | the CPU dependent modules are found. The ``score/cpu/`` subdirectory |
---|
| 363 | contains a subdirectory for each target CPU supported by this release of |
---|
| 364 | the RTEMS executive. Each processor directory contains the CPU dependent |
---|
| 365 | code necessary to host RTEMS. The ``no_cpu`` directory provides a starting |
---|
| 366 | point for developing a new port to an unsupported processor. The files |
---|
| 367 | contained within the ``no_cpu`` directory may also be used as a reference |
---|
| 368 | for the other ports to specific processors. |
---|
[c0d6eff6] | 369 | |
---|
| 370 | ``${RTEMS_ROOT}/cpukit/shttpd/`` |
---|
[9b53679] | 371 | This directory contains the port of the Simple HTTPD web server to RTEMS. |
---|
[c0d6eff6] | 372 | |
---|
| 373 | ``${RTEMS_ROOT}/cpukit/telnetd/`` |
---|
| 374 | This directory contains the RTEMS telnetd server. |
---|
| 375 | |
---|
| 376 | ``${RTEMS_ROOT}/cpukit/wrapup/`` |
---|
[9b53679] | 377 | This directory is responsible for taking the individual libraries and |
---|
| 378 | objects built in each of the components in the RTEMS CPU Kit source tree |
---|
| 379 | and bundling them together to form the single RTEMS library |
---|
| 380 | ``librtemscpu.a``. This library contains all BSP and CPU model specific |
---|
| 381 | software. |
---|
[c0d6eff6] | 382 | |
---|
| 383 | ``${RTEMS_ROOT}/cpukit/zlib/`` |
---|
[9b53679] | 384 | This directory contains a port of the GNU Zlib compression library to |
---|
| 385 | RTEMS. |
---|
[c0d6eff6] | 386 | |
---|
| 387 | testsuites/ Test Suites |
---|
| 388 | ======================= |
---|
| 389 | |
---|
[9b53679] | 390 | This directory provides all of the RTEMS Test Suite except those for the |
---|
| 391 | Classic API Ada95 binding This includes the single processor tests, |
---|
| 392 | multiprocessor tests, timing tests, library tests, and sample tests. |
---|
| 393 | Additionally, subdirectories for support functions and test related header |
---|
| 394 | files are provided. The following table lists the test suites currently |
---|
| 395 | included with the RTEMS and the directory in which they may be located: |
---|
[c0d6eff6] | 396 | |
---|
| 397 | ``${RTEMS_ROOT}/testsuites/libtests/`` |
---|
[9b53679] | 398 | This directory contains the test suite for the various RTEMS support |
---|
| 399 | components. |
---|
[c0d6eff6] | 400 | |
---|
| 401 | ``${RTEMS_ROOT}/testsuites/mptests/`` |
---|
[9b53679] | 402 | This directory contains the test suite for the multiprocessor support in |
---|
| 403 | the Classic API. The tests provided address two node configurations and |
---|
| 404 | provide coverage for the multiprocessor code found in RTEMS. |
---|
[c0d6eff6] | 405 | |
---|
| 406 | ``${RTEMS_ROOT}/testsuites/psxtests/`` |
---|
[9b53679] | 407 | This directory contains the test suite for the RTEMS POSIX API. |
---|
[c0d6eff6] | 408 | |
---|
| 409 | ``${RTEMS_ROOT}/testsuites/samples/`` |
---|
[9b53679] | 410 | This directory provides sample application tests which aid in the testing a |
---|
| 411 | newly built RTEMS environment, a new BSP, or as starting points for the |
---|
| 412 | development of an application using the RTEMS executive. They are |
---|
| 413 | discussed in `Sample Applications`_. |
---|
[c0d6eff6] | 414 | |
---|
| 415 | ``${RTEMS_ROOT}/testsuites/sptests/`` |
---|
[9b53679] | 416 | This directory contains the test suite for the RTEMS Classic API when |
---|
| 417 | executing on a single processor. The tests were originally designed to |
---|
| 418 | provide near complete test coverage for the entire executive code. With |
---|
| 419 | the addition of multiple APIs, this is no longer the case as some SuperCore |
---|
| 420 | functionality is not available through the Classic API. Thus some |
---|
| 421 | functionality in the SuperCore is only covered by tests in the POSIX API |
---|
| 422 | Test Suites. |
---|
[c0d6eff6] | 423 | |
---|
| 424 | ``${RTEMS_ROOT}/testsuites/support/`` |
---|
[9b53679] | 425 | This directory contains support software and header files for the various |
---|
| 426 | test suites. |
---|
[c0d6eff6] | 427 | |
---|
| 428 | ``${RTEMS_ROOT}/testsuites/tmtests/`` |
---|
[9b53679] | 429 | This directory contains the timing test suite for the RTEMS Classic API. |
---|
| 430 | This include tests that benchmark each directive in the Classic API as well |
---|
| 431 | as a set of critical SuperCore functions. These tests are important for |
---|
| 432 | helping to verify that RTEMS performs as expected on your target hardware. |
---|
| 433 | It is not uncommon to discover mistakes in board initialization such as |
---|
| 434 | caching being disabled as a side-effect of analyzing the results of these |
---|
| 435 | tests. |
---|
[c0d6eff6] | 436 | |
---|
| 437 | ``${RTEMS_ROOT}/testsuites/tools/`` |
---|
[9b53679] | 438 | This directory contains tools which execute on the development host and aid |
---|
| 439 | in executing and evaluating the results of the test suite. The tools |
---|
| 440 | ``difftest`` compares the output of one or more tests with the expected |
---|
| 441 | output. If you place the output of all the ``tmtests/`` in a single file, |
---|
| 442 | then the utility ``sorttimes`` will be able to produce a report organizing |
---|
| 443 | the execution times by manager. |
---|
[c0d6eff6] | 444 | |
---|
| 445 | Documentation Directory |
---|
| 446 | ======================= |
---|
| 447 | |
---|
[9b53679] | 448 | This directory contains the source code for all RTEMS documentation in |
---|
| 449 | ``TexInfo`` format as well as utilities used in the generation of the RTEMS |
---|
| 450 | documentation set. This source code is used to produce the RTEMS documentation |
---|
| 451 | in various formats including PDF, HTML, and PostScript. |
---|
[c0d6eff6] | 452 | |
---|
| 453 | ``${RTEMS_ROOT}/doc/ada_user/`` |
---|
[9b53679] | 454 | This directory contains the source code for the *RTEMS Applications Ada |
---|
| 455 | User's Guide* which documents the Ada95 binding to the Classic API. This |
---|
| 456 | manual is produced from from the same source base as the *RTEMS Application |
---|
[d389819] | 457 | C User's Guide*. |
---|
[c0d6eff6] | 458 | |
---|
| 459 | ``${RTEMS_ROOT}/doc/bsp_howto/`` |
---|
[9b53679] | 460 | This directory contains the source code for the*RTEMS BSP and Device Driver |
---|
| 461 | Development Guide*. |
---|
[c0d6eff6] | 462 | |
---|
| 463 | ``${RTEMS_ROOT}/doc/common/`` |
---|
[9b53679] | 464 | This directory contains the source code for the files which are shared |
---|
| 465 | across multiple manuals in the RTEMS Documentation Set. This includes the |
---|
| 466 | copyright page as well as the timing tables which can be filled in on a per |
---|
| 467 | BSP basis in the CPU supplements. |
---|
[c0d6eff6] | 468 | |
---|
| 469 | ``${RTEMS_ROOT}/doc/cpu_supplement/`` |
---|
[9b53679] | 470 | This directory contains the source code for the RTEMS CPU Supplement. |
---|
[c0d6eff6] | 471 | |
---|
| 472 | ``${RTEMS_ROOT}/doc/develenv/`` |
---|
[9b53679] | 473 | This directory contains the source code for the*RTEMS Development |
---|
| 474 | Environment Guide*. This is the document you are currently reading. |
---|
[c0d6eff6] | 475 | |
---|
| 476 | ``${RTEMS_ROOT}/doc/filesystem/`` |
---|
[9b53679] | 477 | This directory contains the source code for the*RTEMS Filesystem Design |
---|
| 478 | Guide*. This manual is a continuous work in process as it attempts to |
---|
| 479 | capture the design of the interface between system calls and filesystem |
---|
| 480 | implementations as well as the information required by those implementing |
---|
| 481 | filesystems. |
---|
[c0d6eff6] | 482 | |
---|
| 483 | ``${RTEMS_ROOT}/doc/images/`` |
---|
[9b53679] | 484 | This directory contains the source code for the graphics used in the HTML |
---|
| 485 | version of the RTEMS Documentation. |
---|
[c0d6eff6] | 486 | |
---|
| 487 | ``${RTEMS_ROOT}/doc/networking/`` |
---|
| 488 | This directory contains the source code for the*RTEMS Network Supplement*. |
---|
| 489 | |
---|
| 490 | ``${RTEMS_ROOT}/doc/new_chapters/`` |
---|
| 491 | This directory contains the source code for the new documentation |
---|
[9b53679] | 492 | components which have not yet been collected into a new manual or merged |
---|
| 493 | into an existing document. Currently, this primarily contains draft |
---|
| 494 | documentation for some portions of the facilities implemented in |
---|
| 495 | ``${RTEMS_ROOT}/c/src/libmisc/``. |
---|
[c0d6eff6] | 496 | |
---|
| 497 | ``${RTEMS_ROOT}/doc/porting/`` |
---|
| 498 | This directory contains the source code for the*RTEMS Porting Guide*. |
---|
| 499 | |
---|
| 500 | ``${RTEMS_ROOT}/doc/posix1003.1/`` |
---|
[9b53679] | 501 | This directory contains the source code for the*RTEMS POSIX 1003.1 |
---|
| 502 | Compliance Guide*. |
---|
[c0d6eff6] | 503 | |
---|
| 504 | ``${RTEMS_ROOT}/doc/posix_users/`` |
---|
[9b53679] | 505 | This directory contains the source code for the*RTEMS POSIX API User's |
---|
| 506 | Guide*. It is important to note that RTEMS' support for POSIX is a |
---|
| 507 | combination of functionality provided by RTEMS and the Newlib C Library so |
---|
| 508 | some functionality is documented by Newlib. |
---|
[c0d6eff6] | 509 | |
---|
| 510 | ``${RTEMS_ROOT}/doc/relnotes/`` |
---|
[9b53679] | 511 | This directory contains the source code for a formally release notes |
---|
| 512 | document. This has not been used for recent RTEMS releases. |
---|
[c0d6eff6] | 513 | |
---|
| 514 | ``${RTEMS_ROOT}/doc/started/`` |
---|
[9b53679] | 515 | This directory contains the source code for the*Getting Started with RTEMS |
---|
| 516 | for C/C++ Users* manual. |
---|
[c0d6eff6] | 517 | |
---|
| 518 | ``${RTEMS_ROOT}/doc/tools/`` |
---|
[9b53679] | 519 | This directory contains the source code for the tools used on the |
---|
| 520 | development host to assist in producing the RTEMS Documentation. The most |
---|
| 521 | important of these tools is ``bmenu`` which generates the hierarchical node |
---|
| 522 | linking commands based upon chapter, section, and subsection organization. |
---|
[c0d6eff6] | 523 | |
---|
| 524 | ``${RTEMS_ROOT}/doc/user/`` |
---|
[9b53679] | 525 | This directory contains the source code for the *RTEMS Applications C |
---|
| 526 | User's Guide* which documents the Classic API. |
---|