mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-11-16 12:34:45 +00:00
2007-11-29 Glenn Humphrey <glenn.humphrey@OARcorp.com>
* develenv/direct.t, develenv/sample.t: Corrected various errors in the documentation.
This commit is contained in:
@@ -1,3 +1,8 @@
|
||||
2007-11-29 Glenn Humphrey <glenn.humphrey@OARcorp.com>
|
||||
|
||||
* develenv/direct.t, develenv/sample.t: Corrected various errors in the
|
||||
documentation.
|
||||
|
||||
2007-11-28 Glenn Humphrey <glenn.humphrey@OARcorp.com>
|
||||
|
||||
* user/barrier.t, user/clock.t, user/concepts.t, user/conf.t,
|
||||
|
||||
@@ -127,7 +127,7 @@ 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
|
||||
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
|
||||
@@ -151,14 +151,14 @@ 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.
|
||||
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. This
|
||||
various RTEMS APIs and support libraries. The
|
||||
contents of this directory are discussed in the
|
||||
@ref{Directory Structure testsuites/ Test Suites} section.
|
||||
|
||||
@@ -197,13 +197,6 @@ 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.
|
||||
|
||||
@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
|
||||
@@ -215,9 +208,18 @@ 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.
|
||||
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.
|
||||
@@ -226,8 +228,13 @@ RTEMS Classic API.
|
||||
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}
|
||||
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.
|
||||
@@ -249,7 +256,7 @@ 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.
|
||||
controllers, shared memory and real-time clocks.
|
||||
|
||||
@item $@{RTEMS_ROOT@}/c/src/librtems++/
|
||||
This directory contains C++ classes which map to the RTEMS
|
||||
@@ -261,6 +268,11 @@ 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
|
||||
@@ -268,6 +280,11 @@ 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
|
||||
@@ -294,16 +311,12 @@ processor family.
|
||||
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 breaking down into specific target board
|
||||
environments. The "shmdr" subdirectory provides the
|
||||
implementation of a shared memory driver which supports the
|
||||
multiprocessing portion of the executive. In addition, two
|
||||
starting point subdirectories are provided for reference. The
|
||||
"no_cpu" subdirectory provides a template BSP which can be used
|
||||
to develop a specific BSP for an unsupported target board. The
|
||||
"stubdr" subdirectory provides stubbed out BSPs. These files
|
||||
may aid in preliminary testing of the RTEMS development
|
||||
environment that has been built for no particular target in mind.
|
||||
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.
|
||||
@@ -484,7 +497,7 @@ processors.
|
||||
This directory contains the port of the Simple HTTPD
|
||||
web server to RTEMS.
|
||||
|
||||
@item $@{RTEMS_ROOT@}/cpukit/telnet/
|
||||
@item $@{RTEMS_ROOT@}/cpukit/telnetd/
|
||||
This directory contains the RTEMS telnetd server.
|
||||
|
||||
@item $@{RTEMS_ROOT@}/cpukit/wrapup/
|
||||
@@ -546,7 +559,7 @@ using the RTEMS executive. They are discussed in
|
||||
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 the entire
|
||||
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
|
||||
@@ -599,10 +612,6 @@ and PostScript.
|
||||
|
||||
@table @code
|
||||
|
||||
@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.
|
||||
|
||||
@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
|
||||
@@ -677,14 +686,6 @@ 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/rgdb_specs/
|
||||
This directory contains the source code for the
|
||||
@cite{RTEMS Remote Debugger Server Specifications}.
|
||||
|
||||
@item $@{RTEMS_ROOT@}/doc/rtems_gdb/
|
||||
This directory contains the source code for the
|
||||
@cite{RTEMS/GDB User's Guide}.
|
||||
|
||||
@item $@{RTEMS_ROOT@}/doc/started/
|
||||
This directory contains the source code for the
|
||||
@cite{Getting Started with RTEMS for C/C++ Users} manual.
|
||||
@@ -701,4 +702,8 @@ 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
|
||||
|
||||
@@ -20,16 +20,14 @@ developed board support packages and device drivers as they
|
||||
exercise a critical subset of RTEMS functionality that is often
|
||||
broken in new BSPs.
|
||||
|
||||
Each of the following sample applications will be listed in
|
||||
more detail in the following sections:
|
||||
Some of the following sample applications will be covered in
|
||||
more detail in subsequent sections:
|
||||
|
||||
@table @b
|
||||
@item Hello World
|
||||
The RTEMS Hello World test is provided in
|
||||
the subdirectory @code{$@{RTEMS_ROOT@}/testsuites/samples/hello/}.
|
||||
This test is helpful when testing new
|
||||
versions of RTEMS, BSPs, or modifications to any portion of the
|
||||
RTEMS development environment.
|
||||
This test is helpful when testing new RTEMS development environment.
|
||||
|
||||
@item Clock Tick
|
||||
The @code{$@{RTEMS_ROOT@}/testsuites/samples/ticker/}
|
||||
@@ -46,28 +44,39 @@ A simple two node multiprocessor test capable of testing an newly
|
||||
developed MPCI layer is provided in
|
||||
@code{$@{RTEMS_ROOT@}/testsuites/samples/base_mp/}.
|
||||
|
||||
@item Capture
|
||||
The RTEMS Capture test is provided in
|
||||
the subdirectory @code{$@{RTEMS_ROOT@}/testsuites/samples/capture/}.
|
||||
This is an interactive test which demonstrates the capabilities
|
||||
of the RTEMS Capture Engine. It includes a few test threads
|
||||
which generate interesting execution patterns. Look at the
|
||||
file @code{$@{RTEMS_ROOT@}/testsuites/samples/capture/capture.scn}
|
||||
for a sample session.
|
||||
|
||||
@item Constructor/Destructor C++ Test
|
||||
The @code{$@{RTEMS_ROOT@}/testsuites/samples/cdtest/}
|
||||
subdirectory provides a simple C++ application using
|
||||
constructors and destructors. It is only built when
|
||||
C++ is enabled.
|
||||
C++ is enabled and its primary purpose is to demonstrate
|
||||
that global constructors and destructors work. Since this
|
||||
requires that the linker script for your BSP be correct, this is
|
||||
an important test.
|
||||
|
||||
@item File IO
|
||||
The RTEMS File IO test is provided in
|
||||
the subdirectory @code{$@{RTEMS_ROOT@}/testsuites/samples/fileio/}.
|
||||
This is an interactive test which allows the user to interact with
|
||||
an ATA/IDE device. It will read the partition table and allow the
|
||||
user to dynamically mount one of the FAT32 partitions it finds.
|
||||
Commands are also provided to write and read files on the disk.
|
||||
|
||||
@item Paranoia Floating Point Test
|
||||
The directory @code{$@{RTEMS_ROOT@}/testsuites/samples/paranoia/}
|
||||
contains the public domain floating point and math library test.
|
||||
|
||||
@item Minimum Size Test
|
||||
The directory
|
||||
@code{$@{RTEMS_ROOT@}/testsuites/samples/minimum/}
|
||||
contains a simple RTEMS program that results in a non-functional
|
||||
executable. It is intended to show the size of a minimum footprint
|
||||
application based upon the current RTEMS configuration.
|
||||
|
||||
@item Unlimited Object Allocation
|
||||
The @code{$@{RTEMS_ROOT@}/testsuites/samples/unlimited/}
|
||||
directory contains a sample test that demonstrates the use of the
|
||||
@i{unlimited} object allocation configuration option to RTEMS.
|
||||
@item IO Stream
|
||||
The RTEMS IO Stream test is provided in
|
||||
the subdirectory @code{$@{RTEMS_ROOT@}/testsuites/samples/iostream/}.
|
||||
This test is a simple C++ application which demonstrates that
|
||||
C++ iostreams are functional. This requires that the RTEMS C++
|
||||
run-time support is functioning properly. This test is only
|
||||
build when C++ is enabled.
|
||||
|
||||
@item Network Loopback Test
|
||||
The @code{$@{RTEMS_ROOT@}/testsuites/samples/loopback/}
|
||||
@@ -76,12 +85,46 @@ sockets and the loopback network device. It does not require
|
||||
the presence of network hardware in order to run.
|
||||
It is only built if RTEMS was configured with networking enabled.
|
||||
|
||||
@item Minimum Size Test
|
||||
The directory
|
||||
@code{$@{RTEMS_ROOT@}/testsuites/samples/minimum/}
|
||||
contains a simple RTEMS program that results in a non-functional
|
||||
executable. It is intended to show the size of a minimum footprint
|
||||
application based upon the current RTEMS configuration.
|
||||
|
||||
@item Nanoseconds
|
||||
The RTEMS Nanoseconds test is provided in
|
||||
the subdirectory @code{$@{RTEMS_ROOT@}/testsuites/samples/nsecs/}.
|
||||
This test demonstrates that the BSP has support for nanosecond
|
||||
timestamp granularity. It prints the time of day and uptime multiple
|
||||
times as quickly as possible. It should be possible from the output
|
||||
to determine if your BSP has nanosecond accurate clock support
|
||||
and it is functional.
|
||||
|
||||
@item Paranoia Floating Point Test
|
||||
The directory @code{$@{RTEMS_ROOT@}/testsuites/samples/paranoia/}
|
||||
contains the public domain floating point and math library test.
|
||||
|
||||
@item Point-to-Point Protocol Daemon
|
||||
The RTEMS Point-to-Point Protocol Daemon test is provided in
|
||||
the subdirectory @code{$@{RTEMS_ROOT@}/testsuites/samples/pppd/}.
|
||||
This test primarily serves as the baseline for a user application
|
||||
using the PPP protocol.
|
||||
|
||||
@item Unlimited Object Allocation
|
||||
The @code{$@{RTEMS_ROOT@}/testsuites/samples/unlimited/}
|
||||
directory contains a sample test that demonstrates the use of the
|
||||
@i{unlimited} object allocation configuration option to RTEMS.
|
||||
|
||||
@end table
|
||||
|
||||
The sample tests are written using the Classic API so the reader
|
||||
should be familiar with the terms used and
|
||||
material presented in the @b{RTEMS Applications Users Guide}.
|
||||
|
||||
@c
|
||||
@c
|
||||
@c
|
||||
@section Hello World
|
||||
|
||||
This sample application is in the following directory:
|
||||
@@ -94,7 +137,7 @@ It provides a rudimentary test of the BSP start up
|
||||
code and the console output routine. The C version of this
|
||||
sample application uses the printf function from the RTEMS
|
||||
Standard C Library to output messages. The Ada version of this
|
||||
sample use the TEXT_IO package to output the hello messages.
|
||||
sample uses the TEXT_IO package to output the hello messages.
|
||||
The following messages are printed:
|
||||
|
||||
@example
|
||||
@@ -110,6 +153,9 @@ single initialization task. If the above messages are not
|
||||
printed correctly, then either the BSP start up code or the
|
||||
console output routine is not operating properly.
|
||||
|
||||
@c
|
||||
@c
|
||||
@c
|
||||
@section Clock Tick
|
||||
|
||||
This sample application is in the following directory:
|
||||
@@ -157,6 +203,9 @@ task, TA3, every fifteen seconds. If the time printed does not
|
||||
match the above output, then the clock device driver is not
|
||||
operating properly.
|
||||
|
||||
@c
|
||||
@c
|
||||
@c
|
||||
@section Base Single Processor Application
|
||||
|
||||
This sample application is in the following directory:
|
||||
@@ -184,6 +233,9 @@ The first two messages are printed from the
|
||||
application's single initialization task. The final messages
|
||||
are printed from the single application task.
|
||||
|
||||
@c
|
||||
@c
|
||||
@c
|
||||
@section Base Multiple Processor Application
|
||||
|
||||
This sample application is in the following directory:
|
||||
@@ -233,6 +285,9 @@ Configuration Table. This file is not shared because the node
|
||||
number field in the RTEMS Multiprocessor Configuration Table
|
||||
must be unique on each node.
|
||||
|
||||
@c
|
||||
@c
|
||||
@c
|
||||
@section Constructor/Destructor C++ Application
|
||||
|
||||
This sample application is in the following directory:
|
||||
@@ -279,6 +334,9 @@ Hey I'M in base class constructor number 1 for 0x400010cc.
|
||||
@end group
|
||||
@end example
|
||||
|
||||
@c
|
||||
@c
|
||||
@c
|
||||
@section Minimum Size Test
|
||||
|
||||
This sample application is in the following directory:
|
||||
@@ -295,6 +353,84 @@ consists of hardware and RTEMS initialization, basic
|
||||
infrastructure such as malloc(), and RTEMS and
|
||||
hardware shutdown support.
|
||||
|
||||
@c
|
||||
@c
|
||||
@c
|
||||
@section Nanosecond Granularity Application
|
||||
|
||||
This sample application is in the following directory:
|
||||
|
||||
@example
|
||||
$@{RTEMS_ROOT@}/testsuites/samples/nsecs/
|
||||
@end example
|
||||
|
||||
This sample application exercises the Clock Driver
|
||||
for this BSP and demonstrates its ability to generate
|
||||
accurate timestamps. This application does this by
|
||||
exercising the time subsystem in three ways:
|
||||
|
||||
@itemize @bullet
|
||||
@item Obtain Time of Day Twice Back to Back
|
||||
@item Obtain System Up Time Twice Back to Back
|
||||
@item Use System Up Time to Measure Loops
|
||||
@end itemize
|
||||
|
||||
The following is an example of what the output of this
|
||||
test may appear like:
|
||||
|
||||
@example
|
||||
*** NANOSECOND CLOCK TEST ***
|
||||
10 iterations of getting TOD
|
||||
Start: Sat Mar 24 11:15:00 2007:540000
|
||||
Stop : Sat Mar 24 11:15:00 2007:549000 --> 0:9000
|
||||
Start: Sat Mar 24 11:15:00 2007:3974000
|
||||
Stop : Sat Mar 24 11:15:00 2007:3983000 --> 0:9000
|
||||
Start: Sat Mar 24 11:15:00 2007:7510000
|
||||
Stop : Sat Mar 24 11:15:00 2007:7519000 --> 0:9000
|
||||
Start: Sat Mar 24 11:15:00 2007:11054000
|
||||
Stop : Sat Mar 24 11:15:00 2007:11063000 --> 0:9000
|
||||
Start: Sat Mar 24 11:15:00 2007:14638000
|
||||
Stop : Sat Mar 24 11:15:00 2007:14647000 --> 0:9000
|
||||
Start: Sat Mar 24 11:15:00 2007:18301000
|
||||
Stop : Sat Mar 24 11:15:00 2007:18310000 --> 0:9000
|
||||
Start: Sat Mar 24 11:15:00 2007:21901000
|
||||
Stop : Sat Mar 24 11:15:00 2007:21910000 --> 0:9000
|
||||
Start: Sat Mar 24 11:15:00 2007:25526000
|
||||
Stop : Sat Mar 24 11:15:00 2007:25535000 --> 0:9000
|
||||
Start: Sat Mar 24 11:15:00 2007:29196000
|
||||
Stop : Sat Mar 24 11:15:00 2007:29206000 --> 0:10000
|
||||
Start: Sat Mar 24 11:15:00 2007:32826000
|
||||
Stop : Sat Mar 24 11:15:00 2007:32835000 --> 0:9000
|
||||
|
||||
10 iterations of getting Uptime
|
||||
0:38977000 0:38986000 --> 0:9000
|
||||
0:40324000 0:40332000 --> 0:8000
|
||||
0:41636000 0:41645000 --> 0:9000
|
||||
0:42949000 0:42958000 --> 0:9000
|
||||
0:44295000 0:44304000 --> 0:9000
|
||||
0:45608000 0:45617000 --> 0:9000
|
||||
0:46921000 0:46930000 --> 0:9000
|
||||
0:48282000 0:48291000 --> 0:9000
|
||||
0:49595000 0:49603000 --> 0:8000
|
||||
0:50908000 0:50917000 --> 0:9000
|
||||
|
||||
10 iterations of getting Uptime with different loop values
|
||||
loop of 10000 0:119488000 0:119704000 --> 0:216000
|
||||
loop of 20000 0:124028000 0:124463000 --> 0:435000
|
||||
loop of 30000 0:128567000 0:129220000 --> 0:653000
|
||||
loop of 40000 0:133097000 0:133964000 --> 0:867000
|
||||
loop of 50000 0:137643000 0:138728000 --> 0:1085000
|
||||
loop of 60000 0:142265000 0:143572000 --> 0:1307000
|
||||
loop of 70000 0:146894000 0:148416000 --> 0:1522000
|
||||
loop of 80000 0:151519000 0:153260000 --> 0:1741000
|
||||
loop of 90000 0:156145000 0:158099000 --> 0:1954000
|
||||
loop of 100000 0:160770000 0:162942000 --> 0:2172000
|
||||
*** END OF NANOSECOND CLOCK TEST ***
|
||||
@end example
|
||||
|
||||
@c
|
||||
@c
|
||||
@c
|
||||
@section Paranoia Floating Point Application
|
||||
|
||||
This sample application is in the following directory:
|
||||
@@ -313,6 +449,9 @@ to run. Problems which commonly prevent this test from
|
||||
executing to completion include stack overflow and FPU exception
|
||||
handlers not installed.
|
||||
|
||||
@c
|
||||
@c
|
||||
@c
|
||||
@section Network Loopback Test
|
||||
|
||||
This sample application is in the following directory:
|
||||
|
||||
Reference in New Issue
Block a user