[ae68ff0] | 1 | @c |
---|
[6449498] | 2 | @c COPYRIGHT (c) 1988-2002. |
---|
[ae68ff0] | 3 | @c On-Line Applications Research Corporation (OAR). |
---|
| 4 | @c All rights reserved. |
---|
| 5 | @c |
---|
[139b2e4a] | 6 | @c $Id$ |
---|
| 7 | @c |
---|
[ae68ff0] | 8 | |
---|
| 9 | @chapter Directory Structure |
---|
| 10 | |
---|
| 11 | The RTEMS directory structure is designed to meet |
---|
| 12 | the following requirements: |
---|
| 13 | |
---|
| 14 | @itemize @bullet |
---|
| 15 | @item encourage development of modular components. |
---|
| 16 | |
---|
| 17 | @item isolate processor and target dependent code, while |
---|
| 18 | allowing as much common source code as possible to be shared |
---|
[aa41429] | 19 | across multiple processors and target boards. |
---|
[ae68ff0] | 20 | |
---|
| 21 | @item allow multiple RTEMS users to perform simultaneous |
---|
| 22 | compilation of RTEMS and its support facilities for different |
---|
| 23 | processors and targets. |
---|
| 24 | @end itemize |
---|
| 25 | |
---|
| 26 | The resulting directory structure has processor and |
---|
[aa41429] | 27 | board dependent source files isolated from generic files. When |
---|
| 28 | RTEMS is configured and built, object directories and |
---|
| 29 | an install point will be automatically created based upon |
---|
| 30 | the target CPU family and BSP selected. |
---|
| 31 | |
---|
| 32 | The placement of object files based upon the selected BSP name |
---|
| 33 | ensures that object files are not mixed across CPUs or targets. |
---|
| 34 | This in combination with the makefiles allows the specific |
---|
[ae68ff0] | 35 | compilation options to be tailored for a particular target |
---|
| 36 | board. For example, the efficiency of the memory subsystem for |
---|
| 37 | a particular target board may be sensitive to the alignment of |
---|
| 38 | data structures, while on another target board with the same |
---|
| 39 | processor memory may be very limited. For the first target, the |
---|
| 40 | options could specify very strict alignment requirements, while |
---|
| 41 | on the second the data structures could be "packed" to conserve |
---|
| 42 | memory. It is impossible to achieve this degree of flexibility |
---|
| 43 | without providing source code. |
---|
[aa41429] | 44 | |
---|
| 45 | @c |
---|
| 46 | @c Directory Organization |
---|
| 47 | @c |
---|
| 48 | @section Directory Organization |
---|
[ae68ff0] | 49 | |
---|
| 50 | The RTEMS source tree is organized based on the |
---|
[aa41429] | 51 | following variables: |
---|
[ae68ff0] | 52 | |
---|
| 53 | @itemize @bullet |
---|
| 54 | |
---|
[aa41429] | 55 | @item functionality, |
---|
| 56 | @item target processor family, |
---|
| 57 | @item target processor model, |
---|
| 58 | @item peripherals, and |
---|
| 59 | @item target board. |
---|
[ae68ff0] | 60 | |
---|
| 61 | @end itemize |
---|
| 62 | |
---|
[aa41429] | 63 | Each of the following sections will describe the |
---|
| 64 | contents of the directories in the RTEMS source |
---|
| 65 | tree. The top of the tree will be referenced |
---|
| 66 | as @code{$@{RTEMS_ROOT@}} in this discussion. |
---|
[ae68ff0] | 67 | |
---|
| 68 | @c |
---|
[aa41429] | 69 | @c Top Level Tree |
---|
[ae68ff0] | 70 | @c |
---|
| 71 | |
---|
[aa41429] | 72 | @c @ifset use-ascii |
---|
[ae68ff0] | 73 | @example |
---|
| 74 | @group |
---|
[aa41429] | 75 | rtems-VERSION |
---|
| 76 | | |
---|
| 77 | +--------+----+----+----+--+-----+---+------+-----+ |
---|
| 78 | | | | | | | | | | |
---|
| 79 | aclocal automake c contrib cpukit doc make scripts tools |
---|
[ae68ff0] | 80 | @end group |
---|
| 81 | @end example |
---|
[aa41429] | 82 | @c @end ifset |
---|
[ae68ff0] | 83 | |
---|
| 84 | @ifset use-tex |
---|
| 85 | @end ifset |
---|
| 86 | |
---|
| 87 | @ifset use-html |
---|
| 88 | @html |
---|
| 89 | @end html |
---|
| 90 | @end ifset |
---|
| 91 | |
---|
| 92 | @table @code |
---|
[aa41429] | 93 | @item $@{RTEMS_ROOT@}/aclocal/ |
---|
| 94 | This directory contains the custom M4 macros which are available to |
---|
| 95 | the various GNU autoconf @code{configure.ac} scripts throughout |
---|
| 96 | the RTEMS source tree. GNU autoconf interprets @code{configure.ac} |
---|
| 97 | files to produce the @code{configure} files used to tailor |
---|
| 98 | RTEMS build for a particular host and target environment. The |
---|
| 99 | contents of this directory will not be discussed further in this |
---|
| 100 | document. |
---|
| 101 | |
---|
| 102 | @item $@{RTEMS_ROOT@}/automake/ |
---|
| 103 | This directory contains the custom GNU automake fragments |
---|
| 104 | which are used to support the various @code{Makefile.am} |
---|
| 105 | files throughout the RTEMS source tree. The |
---|
| 106 | contents of this directory will not be discussed |
---|
| 107 | further in this document. |
---|
| 108 | |
---|
| 109 | @item $@{RTEMS_ROOT@}/c/ |
---|
| 110 | This directory is the root of the portions of the RTEMS source |
---|
| 111 | tree which must be built tailored for a particular CPU model |
---|
| 112 | or BSP. The contents of this directory will be discussed |
---|
| 113 | in the @ref{Directory Structure c/ Directory} section. |
---|
| 114 | |
---|
| 115 | @item $@{RTEMS_ROOT@}/contrib/ |
---|
| 116 | This directory contains contributed support software. Currently |
---|
| 117 | this directory contains the RPM specifications for cross-compilers |
---|
| 118 | hosted on GNU/Linux that target Cygwin and Solaris. The |
---|
| 119 | cross-compilers produced using these specifications are then |
---|
| 120 | used in a Canadian cross build procedure to produce the Cygwin |
---|
| 121 | and Solaris hosted RTEMS toolsets on a GNU/Linux host. This |
---|
| 122 | directory will not be discussed further in this document. |
---|
| 123 | |
---|
| 124 | @item $@{RTEMS_ROOT@}/cpukit/ |
---|
| 125 | This directory is the root for all of the "multilib'able" |
---|
| 126 | portions of RTEMS. This is a GNU way of saying the the |
---|
| 127 | contents of this directory can be compiled like the |
---|
| 128 | C Library (@code{libc.a}) and the functionality is |
---|
| 129 | neither CPU model nor BSP specific. The source code |
---|
| 130 | for most RTEMS services reside under this directory. |
---|
| 131 | The contents of this directory will be discussed |
---|
| 132 | in the @ref{Directory Structure CPUKit Directory} section. |
---|
| 133 | |
---|
| 134 | @item $@{RTEMS_ROOT@}/doc/ |
---|
| 135 | This directory is the root for all RTEMS documentation. |
---|
| 136 | The source for RTEMS is written in GNU TeXinfo and |
---|
| 137 | used to produce HTML, PDF, and "info" files. |
---|
| 138 | The RTEMS documentation is configured, built, |
---|
| 139 | and installed separately from the RTEMS executive and tests. |
---|
| 140 | The contents of this directory will be discussed |
---|
| 141 | in the @ref{Directory Structure Documentation Directory} section. |
---|
| 142 | |
---|
| 143 | @item $@{RTEMS_ROOT@}/make/ |
---|
| 144 | This directory contains files which support the |
---|
| 145 | RTEMS Makefile's. From a user's perspective, the |
---|
| 146 | most important parts are found in the @code{custom/} |
---|
| 147 | subdirectory. Each ".cfg" file in this directory |
---|
| 148 | is associated with a specific BSP and describes |
---|
| 149 | the CPU model, compiler flags, and procedure to |
---|
| 150 | a produce an executable for the target board. |
---|
| 151 | These files are described in detail in the |
---|
| 152 | @b{RTEMS BSP and Device Driver Development Guide} |
---|
| 153 | and will not be discussed further in this document. |
---|
| 154 | |
---|
| 155 | @item $@{RTEMS_ROOT@}/scripts/ |
---|
| 156 | This directory contains the RPM specifications for the |
---|
| 157 | prebuilt cross-compilation toolsets provided by the |
---|
| 158 | RTEMS project. There are separate subdirectories |
---|
| 159 | for each of the components in the RTEMS Cross Compilation |
---|
| 160 | Environment including @code{binutils/}, @code{gcc3newlib/}, |
---|
| 161 | and @code{gdb/}. This directory is configured, built, |
---|
| 162 | and installed separately from the RTEMS executive |
---|
| 163 | and tests. This directory will not be discussed further |
---|
| 164 | in this document. |
---|
| 165 | |
---|
| 166 | @item $@{RTEMS_ROOT@}/tools/ |
---|
| 167 | This directory contains RTEMS specific support utilities which |
---|
| 168 | execute on the development host. These utilities are divided |
---|
| 169 | into subdirectories based upon whether they are used in the process |
---|
| 170 | of building RTEMS and applications, are CPU specific, or are |
---|
| 171 | used to assist in updating the RTEMS source tree and applications. |
---|
| 172 | The support utilities used in the process of building RTEMS are |
---|
| 173 | described in @ref{RTEMS Specific Utilities}. These are the |
---|
| 174 | only components of this subtree that will be discussed in this |
---|
| 175 | document. |
---|
[ae68ff0] | 176 | |
---|
[aa41429] | 177 | @end table |
---|
[ae68ff0] | 178 | |
---|
| 179 | |
---|
| 180 | |
---|
[aa41429] | 181 | @c |
---|
| 182 | @c c/ Directions |
---|
| 183 | @c |
---|
| 184 | @subsection c/ Directory |
---|
[ae68ff0] | 185 | |
---|
[aa41429] | 186 | The @code{$@{RTEMS_ROOT@}/c/} directory was formerly |
---|
| 187 | the root directory of all RTEMS source code. At this time, it contains |
---|
| 188 | the root directory for only those RTEMS components |
---|
| 189 | which must be compiled or linked in a way that is specific to a |
---|
| 190 | particular CPU model or board. This directory contains the |
---|
| 191 | following subdirectories: |
---|
| 192 | |
---|
| 193 | @table @code |
---|
| 194 | @item $@{RTEMS_ROOT@}/c/src/ |
---|
| 195 | This directory is logically the root for the RTEMS components |
---|
| 196 | which are CPU model or board dependent. Thus this directory |
---|
| 197 | is the root for the BSPs and the various Test Suites as well |
---|
| 198 | as CPU model and BSP dependent libraries. The contents of |
---|
| 199 | this directory are discussed in the |
---|
| 200 | @ref{Directory Structure c/src/ Directory} section. |
---|
| 201 | |
---|
| 202 | @item $@{RTEMS_ROOT@}/c/make/ |
---|
| 203 | This directory is used to generate the file @code{target.cfg} |
---|
| 204 | which is installed as part of the Application Makefiles. This |
---|
| 205 | file contains settings for various Makefile variables to |
---|
| 206 | tailor them to the particular CPU model and BSP configured. |
---|
[ae68ff0] | 207 | |
---|
| 208 | @end table |
---|
| 209 | |
---|
[aa41429] | 210 | @c |
---|
| 211 | @c c/src/ Directory |
---|
| 212 | @c |
---|
| 213 | @subsubsection c/src/ Directory |
---|
[ae68ff0] | 214 | |
---|
[aa41429] | 215 | As mentioned previously, this directory is logically |
---|
| 216 | the root for the RTEMS components |
---|
| 217 | which are CPU model or board dependent. The |
---|
| 218 | following is a list of the subdirectories in this |
---|
| 219 | directorie and a description of each. |
---|
[ae68ff0] | 220 | |
---|
[aa41429] | 221 | @table @code |
---|
| 222 | @item $@{RTEMS_ROOT@}/c/src/ada-tests/ |
---|
| 223 | This directory contains the test suite for the Ada |
---|
| 224 | language bindings to the Classic API. |
---|
| 225 | |
---|
| 226 | @item $@{RTEMS_ROOT@}/c/src/lib/ |
---|
| 227 | |
---|
| 228 | @item $@{RTEMS_ROOT@}/c/src/libchip/ |
---|
| 229 | This directory contains device drivers for various |
---|
| 230 | peripheral chips which are designed to be CPU and |
---|
| 231 | board dependent. This directory contains a variety |
---|
| 232 | of drivers for serial devices, network interface |
---|
| 233 | controllers, and real-time clocks. |
---|
| 234 | |
---|
| 235 | @item $@{RTEMS_ROOT@}/c/src/libmisc/ |
---|
| 236 | This directory contains support facilities which |
---|
| 237 | are RTEMS specific but otherwise unclassified. In |
---|
| 238 | general, they do not adhere to a standard API. |
---|
| 239 | Among the support facilities in this directory are |
---|
| 240 | a @code{/dev/null} device driver, the Stack |
---|
| 241 | Overflow Checker, a mini-shell, the CPU and |
---|
| 242 | rate monotonic period usage monitoring libraries, |
---|
| 243 | and a utility to "dump a buffer" in a nicely |
---|
| 244 | formatted way similar to many ROM monitors. |
---|
| 245 | |
---|
| 246 | @item $@{RTEMS_ROOT@}/c/src/libnetworking/ |
---|
| 247 | This directory contains the networking components which |
---|
| 248 | might be tailored based upon the particular BSP. This |
---|
| 249 | includes the RTEMS telnetd, httpd, and ftpd servers. |
---|
| 250 | |
---|
| 251 | @item $@{RTEMS_ROOT@}/c/src/librdbg/ |
---|
| 252 | This directory contains the Ethernet-based remote debugging |
---|
| 253 | stub. This software must be built to be intimately aware |
---|
| 254 | of a particular CPU model. |
---|
| 255 | |
---|
| 256 | @item $@{RTEMS_ROOT@}/c/src/librtems++/ |
---|
| 257 | |
---|
| 258 | @item $@{RTEMS_ROOT@}/c/src/make/ |
---|
| 259 | |
---|
| 260 | @item $@{RTEMS_ROOT@}/c/src/optman/ |
---|
| 261 | |
---|
| 262 | @item $@{RTEMS_ROOT@}/c/src/tests/ |
---|
| 263 | This directory contains the test suites for the |
---|
| 264 | various RTEMS APIs and support libraries. This |
---|
| 265 | contents of this directory are discussed in the |
---|
| 266 | @ref{Directory Structure Test Suites} section. |
---|
| 267 | |
---|
| 268 | @item $@{RTEMS_ROOT@}/c/src/wrapup/ |
---|
| 269 | |
---|
| 270 | @end table |
---|
[ae68ff0] | 271 | |
---|
| 272 | @c |
---|
[aa41429] | 273 | @c Test Suites |
---|
[ae68ff0] | 274 | @c |
---|
[aa41429] | 275 | @lowersections |
---|
| 276 | @subsubsection Test Suites |
---|
[ae68ff0] | 277 | |
---|
[aa41429] | 278 | The following table lists the test suites currently included with the |
---|
| 279 | RTEMS and the directory in which they may be located: |
---|
[ae68ff0] | 280 | |
---|
[aa41429] | 281 | @table @code |
---|
[ae68ff0] | 282 | |
---|
[aa41429] | 283 | @item @{RTEMS_ROOT@}c/src/tests/itrontests |
---|
| 284 | ITRON API Tests |
---|
[ae68ff0] | 285 | |
---|
[aa41429] | 286 | @item @{RTEMS_ROOT@}c/src/tests/libtests |
---|
| 287 | Support Library Tests |
---|
[ae68ff0] | 288 | |
---|
[aa41429] | 289 | @item @{RTEMS_ROOT@}c/src/tests/mptests |
---|
| 290 | Classic API Multiprocessor Tests |
---|
[ae68ff0] | 291 | |
---|
[aa41429] | 292 | @item @{RTEMS_ROOT@}c/src/tests/psxtests |
---|
| 293 | POSIX API Tests |
---|
[ae68ff0] | 294 | |
---|
[aa41429] | 295 | @item @{RTEMS_ROOT@}c/src/tests/samples |
---|
| 296 | Sample Applications |
---|
[ae68ff0] | 297 | |
---|
[aa41429] | 298 | @item @{RTEMS_ROOT@}c/src/tests/sptests |
---|
| 299 | Classic API Single Processor Tests |
---|
[ae68ff0] | 300 | |
---|
[aa41429] | 301 | @item @{RTEMS_ROOT@}c/src/tests/support |
---|
| 302 | Test Support Software |
---|
[ae68ff0] | 303 | |
---|
[aa41429] | 304 | @item @{RTEMS_ROOT@}c/src/tests/tmitrontests |
---|
| 305 | ITRON API Timing Tests |
---|
| 306 | |
---|
| 307 | @item @{RTEMS_ROOT@}c/src/tests/tmtests |
---|
| 308 | Classic API Timing Tests |
---|
| 309 | |
---|
| 310 | @item @{RTEMS_ROOT@}c/src/tests/tools |
---|
| 311 | XXX |
---|
[ae68ff0] | 312 | |
---|
[aa41429] | 313 | @end table |
---|
[ae68ff0] | 314 | |
---|
[aa41429] | 315 | @raisesections |
---|
[ae68ff0] | 316 | |
---|
| 317 | |
---|
| 318 | @c |
---|
[aa41429] | 319 | @c CPUKit Directory |
---|
[ae68ff0] | 320 | @c |
---|
[aa41429] | 321 | @subsection CPUKit Directory |
---|
[ae68ff0] | 322 | |
---|
[aa41429] | 323 | The @code{cpukit/} directory structure is as follows: |
---|
[ae68ff0] | 324 | |
---|
[aa41429] | 325 | @c |
---|
| 326 | @c CPUKit Tree |
---|
| 327 | @c |
---|
[ae68ff0] | 328 | |
---|
[aa41429] | 329 | @ifset use-ascii |
---|
[059dbcf] | 330 | @example |
---|
| 331 | @group |
---|
[aa41429] | 332 | CPUKit |
---|
[ae68ff0] | 333 | | |
---|
| 334 | +-----------+----------+-----------+----------+ |
---|
| 335 | | | | | | |
---|
| 336 | posix rtems sapi score wrapup |
---|
[059dbcf] | 337 | @end group |
---|
| 338 | @end example |
---|
[ae68ff0] | 339 | @end ifset |
---|
| 340 | |
---|
| 341 | This directory contains a set of subdirectories which |
---|
| 342 | contains the source files comprising the executive portion of |
---|
[aa41429] | 343 | the RTEMS development environment as well as portable support |
---|
| 344 | libraries such as support for the C Library and filesystems. |
---|
| 345 | The API specific and "SuperCore" (e.g. @code{score/} directory) |
---|
| 346 | source code files are separated into |
---|
| 347 | distinct directory trees. The @code{rtems/}, @code{posix/}, and |
---|
| 348 | @code{itron/} subdirectories contain the C language source files for each |
---|
[ae68ff0] | 349 | module comprising the respective API. Also included in this |
---|
[aa41429] | 350 | directory are the subdirectories @code{sapi/} and @code{score/} which are |
---|
| 351 | the SuperCore modules. Within the @code{score/} directory the CPU |
---|
[ae68ff0] | 352 | dependent modules are found. |
---|
| 353 | |
---|
[aa41429] | 354 | The @code{score/cpu/} subdirectory contains a subdirectory for each |
---|
[db91520] | 355 | target CPU supported by the @value{RELEASE} release of the RTEMS |
---|
[ae68ff0] | 356 | executive. Each processor directory contains the CPU dependent |
---|
| 357 | code necessary to host RTEMS. The "no_cpu" directory provides a |
---|
| 358 | starting point for developing a new port to an unsupported |
---|
| 359 | processor. The files contained within the "no_cpu" directory |
---|
| 360 | may also be used as a reference for the other ports to specific |
---|
| 361 | processors. |
---|
| 362 | |
---|
[aa41429] | 363 | |
---|
| 364 | @c |
---|
| 365 | @c |
---|
| 366 | @c |
---|
| 367 | @subsection Documentation Directory |
---|
| 368 | |
---|
| 369 | XXX |
---|
| 370 | |
---|
| 371 | @c |
---|
| 372 | @c |
---|
| 373 | @c |
---|
[ae68ff0] | 374 | @subsection Support Library Source Directory |
---|
| 375 | |
---|
| 376 | The "lib" directory contains the support libraries and BSPS. |
---|
| 377 | Board support packages (BSPs), processor environment start up code, |
---|
[ebaeec1] | 378 | C library support, the FreeBSD TCP/IP stack, common BSP header files, |
---|
[ae68ff0] | 379 | and miscellaneous support functions are provided in the subdirectories. |
---|
| 380 | These are combined with the RTEMS executive object to form the single |
---|
| 381 | RTEMS library which installed. |
---|
| 382 | |
---|
| 383 | @c |
---|
| 384 | @c Tree 6 - Libraries |
---|
| 385 | @c |
---|
| 386 | |
---|
| 387 | |
---|
| 388 | The "libbsp" directory contains a directory for each CPU family supported |
---|
| 389 | by RTEMS. Beneath each CPU directory is a directory for each BSP for that |
---|
| 390 | processor family. |
---|
| 391 | |
---|
| 392 | @c |
---|
| 393 | @c Tree 7 - C BSP Library |
---|
| 394 | @c |
---|
| 395 | |
---|
[db91520] | 396 | The "libbsp" directory provides all the BSPs provided with this |
---|
[ae68ff0] | 397 | release of the RTEMS executive. The subdirectories are |
---|
| 398 | divided, as discussed previously, based on specific processor |
---|
| 399 | family, then further breaking down into specific target board |
---|
| 400 | environments. The "shmdr" subdirectory provides the |
---|
| 401 | implementation of a shared memory driver which supports the |
---|
| 402 | multiprocessing portion of the executive. In addition, two |
---|
| 403 | starting point subdirectories are provided for reference. The |
---|
| 404 | "no_cpu" subdirectory provides a template BSP which can be used |
---|
| 405 | to develop a specific BSP for an unsupported target board. The |
---|
| 406 | "stubdr" subdirectory provides stubbed out BSPs. These files |
---|
| 407 | may aid in preliminary testing of the RTEMS development |
---|
| 408 | environment that has been built for no particular target in mind. |
---|
| 409 | |
---|
| 410 | Below each CPU dependent directory is a directory for each target BSP |
---|
| 411 | supported in this release. |
---|
| 412 | |
---|
| 413 | Each BSP provides the modules which comprise an RTEMS BSP. The |
---|
| 414 | modules are separated into the subdirectories "clock", "console", |
---|
| 415 | "include", "shmsupp", "startup", and "timer" as shown in the following |
---|
| 416 | figure: |
---|
| 417 | |
---|
| 418 | @c |
---|
| 419 | @c Tree 8 - Each BSP |
---|
| 420 | @c |
---|
| 421 | |
---|
| 422 | @ifset use-ascii |
---|
| 423 | @example |
---|
| 424 | @group |
---|
| 425 | Each BSP |
---|
| 426 | | |
---|
| 427 | +-----------+----------+-----+-----+----------+----------+ |
---|
| 428 | | | | | | | |
---|
| 429 | clock console include shmsupp startup timer |
---|
| 430 | @end group |
---|
| 431 | @end example |
---|
| 432 | @end ifset |
---|
| 433 | |
---|
| 434 | @ifset use-tex |
---|
| 435 | @sp 1 |
---|
| 436 | |
---|
| 437 | @tex |
---|
| 438 | {\parskip=0pt\offinterlineskip% |
---|
| 439 | \hskip 10.0em |
---|
| 440 | \hskip 10.25em\hbox to 4.50em{\hss{Each BSP}\hss}% |
---|
| 441 | \vrule width0em height1.972ex depth0.812ex\par\penalty10000 |
---|
| 442 | \hskip 10.0em |
---|
| 443 | \hskip 12.50em\vrule width.04em% |
---|
| 444 | \vrule width0em height1.500ex depth0.500ex\par\penalty10000 |
---|
| 445 | \hskip 10.0em |
---|
| 446 | \hskip 1.25em\vrule width11.25em height-0.407ex depth0.500ex% |
---|
| 447 | \vrule width.04em\vrule width11.25em height-0.407ex depth0.500ex% |
---|
| 448 | \vrule width0em height1.500ex depth0.500ex\par\penalty10000 |
---|
| 449 | \hskip 10.0em |
---|
| 450 | \hskip 1.25em\vrule width.04em% |
---|
| 451 | \hskip 4.46em\vrule width.04em% |
---|
| 452 | \hskip 4.46em\vrule width.04em% |
---|
| 453 | \hskip 4.46em\vrule width.04em% |
---|
| 454 | \hskip 4.46em\vrule width.04em% |
---|
| 455 | \hskip 4.46em\vrule width.04em% |
---|
| 456 | \vrule width0em height1.500ex depth0.500ex\par\penalty10000 |
---|
| 457 | \hskip 10.0em |
---|
| 458 | \hskip 0.00em\hbox to 2.50em{\hss{clock}\hss}% |
---|
| 459 | \hskip 1.50em\hbox to 3.50em{\hss{console}\hss}% |
---|
| 460 | \hskip 1.00em\hbox to 3.50em{\hss{include}\hss}% |
---|
| 461 | \hskip 1.00em\hbox to 3.50em{\hss{shmsupp}\hss}% |
---|
| 462 | \hskip 1.00em\hbox to 3.50em{\hss{startup}\hss}% |
---|
| 463 | \hskip 1.50em\hbox to 2.50em{\hss{timer}\hss}% |
---|
| 464 | \vrule width0em height1.972ex depth0.812ex\par} |
---|
| 465 | @end tex |
---|
| 466 | @end ifset |
---|
| 467 | |
---|
| 468 | @ifset use-html |
---|
[059dbcf] | 469 | @example |
---|
| 470 | @group |
---|
[ae68ff0] | 471 | Each BSP |
---|
| 472 | | |
---|
| 473 | +-----------+----------+-----+-----+----------+----------+ |
---|
| 474 | | | | | | | |
---|
[ebaeec1] | 475 | clock console include ... startup timer |
---|
[059dbcf] | 476 | @end group |
---|
| 477 | @end example |
---|
[ae68ff0] | 478 | @html |
---|
| 479 | @end html |
---|
| 480 | @end ifset |
---|
| 481 | |
---|
[aa41429] | 482 | @c |
---|
| 483 | @c |
---|
| 484 | @c |
---|
[ae68ff0] | 485 | @subsection Test Suite Source Directory |
---|
| 486 | |
---|
| 487 | The "tests" directory structure for the C |
---|
| 488 | implementation is as follows: |
---|
| 489 | |
---|
| 490 | @c |
---|
| 491 | @c Tree 9 - C Tests |
---|
| 492 | @c |
---|
| 493 | |
---|
| 494 | @ifset use-ascii |
---|
| 495 | @example |
---|
| 496 | @group |
---|
| 497 | C Tests |
---|
| 498 | | |
---|
| 499 | +----------+---------+----------+---------+---------+---------+ |
---|
| 500 | | | | | | | | |
---|
[ebaeec1] | 501 | libtests sptests support tmtests mptests psxtest samples |
---|
[ae68ff0] | 502 | @end group |
---|
| 503 | @end example |
---|
| 504 | @end ifset |
---|
| 505 | |
---|
| 506 | @ifset use-tex |
---|
| 507 | @sp 1 |
---|
| 508 | |
---|
| 509 | @tex |
---|
| 510 | {\parskip=0pt\offinterlineskip% |
---|
| 511 | \hskip 05.0em |
---|
| 512 | \hskip 14.50em\hbox to 3.50em{\hss{C Tests}\hss}% |
---|
| 513 | \vrule width0em height1.972ex depth0.812ex\par\penalty10000 |
---|
| 514 | \hskip 05.0em |
---|
| 515 | \hskip 16.25em\vrule width.04em% |
---|
| 516 | \vrule width0em height1.500ex depth0.500ex\par\penalty10000 |
---|
| 517 | \hskip 05.0em |
---|
| 518 | \hskip 2.00em\vrule width14.25em height-0.407ex depth0.500ex% |
---|
| 519 | \vrule width.04em\vrule width14.25em height-0.407ex depth0.500ex% |
---|
| 520 | \vrule width0em height1.500ex depth0.500ex\par\penalty10000 |
---|
| 521 | \hskip 05.0em |
---|
| 522 | \hskip 2.00em\vrule width.04em% |
---|
| 523 | \hskip 4.71em\vrule width.04em% |
---|
| 524 | \hskip 4.71em\vrule width.04em% |
---|
| 525 | \hskip 4.71em\vrule width.04em% |
---|
| 526 | \hskip 4.71em\vrule width.04em% |
---|
| 527 | \hskip 4.71em\vrule width.04em% |
---|
| 528 | \hskip 4.71em\vrule width.04em% |
---|
| 529 | \vrule width0em height1.500ex depth0.500ex\par\penalty10000 |
---|
| 530 | \hskip 05.0em |
---|
| 531 | \hskip 0.00em\hbox to 4.00em{\hss{libtests}\hss}% |
---|
| 532 | \hskip 1.00em\hbox to 3.50em{\hss{sptests}\hss}% |
---|
| 533 | \hskip 1.25em\hbox to 3.50em{\hss{support}\hss}% |
---|
| 534 | \hskip 1.25em\hbox to 3.50em{\hss{tmtests}\hss}% |
---|
| 535 | \hskip 1.25em\hbox to 3.50em{\hss{mptests}\hss}% |
---|
| 536 | \hskip 1.75em\hbox to 2.50em{\hss{tools}\hss}% |
---|
| 537 | \hskip 1.75em\hbox to 3.50em{\hss{samples}\hss}% |
---|
| 538 | \vrule width0em height1.972ex depth0.812ex\par} |
---|
| 539 | @end tex |
---|
| 540 | @end ifset |
---|
| 541 | |
---|
| 542 | @ifset use-html |
---|
[059dbcf] | 543 | @example |
---|
| 544 | @group |
---|
[ae68ff0] | 545 | C Tests |
---|
| 546 | | |
---|
| 547 | +----------+---------+----------+---------+---------+---------+ |
---|
| 548 | | | | | | | | |
---|
| 549 | libtests sptests support tmtests mptests tools samples |
---|
[059dbcf] | 550 | @end group |
---|
| 551 | @end example |
---|
[ae68ff0] | 552 | @html |
---|
| 553 | @end html |
---|
| 554 | @end ifset |
---|
| 555 | |
---|
| 556 | This directory provides the entire RTEMS Test Suite |
---|
| 557 | which includes the single processor tests, multiprocessor tests, |
---|
| 558 | timing tests, library tests, and sample tests. Additionally, |
---|
| 559 | subdirectories for support functions and test related header |
---|
| 560 | files are provided. |
---|
| 561 | |
---|
| 562 | The "sptests" subdirectory consists of twenty-four |
---|
| 563 | tests designed to cover the entire executive code. The |
---|
| 564 | "spfatal" test will verify any code associated with the |
---|
| 565 | occurrence of a fatal error. Also provided is a test which |
---|
| 566 | will determine the size of the RTEMS executive. |
---|
| 567 | |
---|
| 568 | The multiprocessor test are provided in "mptests". |
---|
| 569 | Fourteen tests are provided in this subdirectory which address |
---|
| 570 | two node configurations and cover the multiprocessor code found |
---|
| 571 | in RTEMS. |
---|
| 572 | |
---|
| 573 | Tests that time each directive and a set of critical |
---|
| 574 | executive functions are provided in the "tmtests" subdirectory. |
---|
| 575 | Within this subdirectory thirty-one tests are provided along |
---|
| 576 | with a subdirectory to contain each targets timing results. |
---|
| 577 | |
---|
| 578 | The "samples" directory structure for the C |
---|
| 579 | implementation is as follows: |
---|
| 580 | |
---|
| 581 | @c |
---|
| 582 | @c Tree 10 - C Samples |
---|
| 583 | @c |
---|
| 584 | |
---|
| 585 | @ifset use-ascii |
---|
| 586 | @example |
---|
| 587 | @group |
---|
| 588 | C Samples |
---|
| 589 | | |
---|
| 590 | +-----------+----------+-----+-----+----------+----------+ |
---|
| 591 | | | | | | | |
---|
| 592 | base_mp base_sp cdtest hello paranoia ticker |
---|
| 593 | @end group |
---|
| 594 | @end example |
---|
| 595 | @end ifset |
---|
| 596 | |
---|
| 597 | @ifset use-tex |
---|
| 598 | @sp 1 |
---|
| 599 | |
---|
| 600 | @tex |
---|
| 601 | {\parskip=0pt\offinterlineskip% |
---|
| 602 | \hskip 05.0em |
---|
| 603 | \hskip 12.25em\hbox to 4.50em{\hss{C Samples}\hss}% |
---|
| 604 | \vrule width0em height1.972ex depth0.812ex\par\penalty10000 |
---|
| 605 | \hskip 05.0em |
---|
| 606 | \hskip 14.50em\vrule width.04em% |
---|
| 607 | \vrule width0em height1.500ex depth0.500ex\par\penalty10000 |
---|
| 608 | \hskip 05.0em |
---|
| 609 | \hskip 2.00em\vrule width12.50em height-0.407ex depth0.500ex% |
---|
| 610 | \vrule width.04em\vrule width12.50em height-0.407ex depth0.500ex% |
---|
| 611 | \vrule width0em height1.500ex depth0.500ex\par\penalty10000 |
---|
| 612 | \hskip 05.0em |
---|
| 613 | \hskip 2.00em\vrule width.04em% |
---|
| 614 | \hskip 4.96em\vrule width.04em% |
---|
| 615 | \hskip 4.96em\vrule width.04em% |
---|
| 616 | \hskip 4.96em\vrule width.04em% |
---|
| 617 | \hskip 4.96em\vrule width.04em% |
---|
| 618 | \hskip 4.96em\vrule width.04em% |
---|
| 619 | \vrule width0em height1.500ex depth0.500ex\par\penalty10000 |
---|
| 620 | \hskip 05.0em |
---|
| 621 | \hskip 0.00em\hbox to 4.00em{\hss{base\_mp}\hss}% |
---|
| 622 | \hskip 1.00em\hbox to 4.00em{\hss{base\_sp}\hss}% |
---|
| 623 | \hskip 1.50em\hbox to 3.00em{\hss{cdtest}\hss}% |
---|
| 624 | \hskip 2.25em\hbox to 2.50em{\hss{hello}\hss}% |
---|
| 625 | \hskip 1.75em\hbox to 4.00em{\hss{paranoia}\hss}% |
---|
| 626 | \hskip 1.50em\hbox to 3.00em{\hss{ticker}\hss}% |
---|
| 627 | \vrule width0em height1.972ex depth0.812ex\par} |
---|
| 628 | @end tex |
---|
| 629 | @end ifset |
---|
| 630 | |
---|
| 631 | @ifset use-html |
---|
[059dbcf] | 632 | @example |
---|
| 633 | @group |
---|
[ae68ff0] | 634 | C Samples |
---|
| 635 | | |
---|
| 636 | +-----------+----------+-----+-----+----------+----------+ |
---|
| 637 | | | | | | | |
---|
| 638 | base_mp base_sp cdtest hello paranoia ticker |
---|
[059dbcf] | 639 | @end group |
---|
| 640 | @end example |
---|
[ae68ff0] | 641 | @html |
---|
| 642 | @end html |
---|
| 643 | @end ifset |
---|
| 644 | |
---|
| 645 | This directory provides sample application tests |
---|
| 646 | which aid in the testing a newly built RTEMS environment, a new |
---|
| 647 | BSP, or as starting points for the development of an application |
---|
| 648 | using the RTEMS executive. A Hello World test is provided in |
---|
| 649 | the subdirectory "hello". This test is helpful when testing new |
---|
| 650 | versions of RTEMS, BSPs, or modifications to any portion of the |
---|
| 651 | RTEMS development environment. The "ticker" subdirectory |
---|
| 652 | provides a test for verification of clock chip device drivers of |
---|
| 653 | BSPs. A simple single processor test similar to those in the |
---|
| 654 | single processor test suite is provided in "base_sp". A simple |
---|
| 655 | two node multiprocessor test capable of testing an newly |
---|
| 656 | developed MPCI layer is provided in "base_mp". The "cdtest" |
---|
| 657 | subdirectory provides a simple C++ application using |
---|
| 658 | constructors and destructors. The final sample test is a |
---|
| 659 | public domain floating point and math library toolset test is |
---|
| 660 | provided in "paranoia". |
---|