diff options
-rw-r--r-- | doc/ChangeLog | 10 | ||||
-rw-r--r-- | doc/FAQ/.cvsignore | 23 | ||||
-rw-r--r-- | doc/FAQ/FAQ.texi | 117 | ||||
-rw-r--r-- | doc/FAQ/Makefile.am | 82 | ||||
-rw-r--r-- | doc/FAQ/basic.t | 196 | ||||
-rw-r--r-- | doc/FAQ/bsp.t | 35 | ||||
-rw-r--r-- | doc/FAQ/build45.t | 419 | ||||
-rw-r--r-- | doc/FAQ/concepts.t | 19 | ||||
-rw-r--r-- | doc/FAQ/debug.t | 158 | ||||
-rw-r--r-- | doc/FAQ/endoftime.t | 111 | ||||
-rw-r--r-- | doc/FAQ/entry | 60 | ||||
-rw-r--r-- | doc/FAQ/freesw.t | 169 | ||||
-rw-r--r-- | doc/FAQ/hwdebugaids.t | 110 | ||||
-rw-r--r-- | doc/FAQ/projects.t | 113 | ||||
-rw-r--r-- | doc/FAQ/stamp-vti | 4 | ||||
-rw-r--r-- | doc/FAQ/tools.t | 71 | ||||
-rw-r--r-- | doc/FAQ/version.texi | 4 | ||||
-rw-r--r-- | doc/Makefile.am | 7 | ||||
-rw-r--r-- | doc/common/timemac.texi | 36 | ||||
-rw-r--r-- | doc/common/timetbl.t | 1330 | ||||
-rw-r--r-- | doc/common/timing.t | 396 | ||||
-rw-r--r-- | doc/configure.ac | 1 | ||||
-rw-r--r-- | doc/index.html.in | 124 |
23 files changed, 26 insertions, 3569 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog index df17b1c2d2..5b27896ad4 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,5 +1,15 @@ 2006-08-23 Joel Sherrill <joel@OARcorp.com> + * Makefile.am, configure.ac, index.html.in: FAQ should now be + completely in the Wiki. + * FAQ/.cvsignore, FAQ/FAQ.texi, FAQ/Makefile.am, FAQ/basic.t, + FAQ/bsp.t, FAQ/build45.t, FAQ/concepts.t, FAQ/debug.t, + FAQ/endoftime.t, FAQ/entry, FAQ/freesw.t, FAQ/hwdebugaids.t, + FAQ/projects.t, FAQ/stamp-vti, FAQ/tools.t, FAQ/version.texi, + common/timemac.texi, common/timetbl.t, common/timing.t: Removed. + +2006-08-23 Joel Sherrill <joel@OARcorp.com> + * Makefile.am, configure.ac, FAQ/stamp-vti, FAQ/version.texi, common/cpright.texi: Merging CPU Supplements into a single document. As part of this removed the obsolete and impossible to maintain size diff --git a/doc/FAQ/.cvsignore b/doc/FAQ/.cvsignore deleted file mode 100644 index 949b876b32..0000000000 --- a/doc/FAQ/.cvsignore +++ /dev/null @@ -1,23 +0,0 @@ -embeddedinfo.texi -FAQ -FAQ.aux -FAQ.cp -FAQ.dvi -FAQ.fn -FAQ*.html -FAQ.ky -FAQ.log -FAQ.pdf -FAQ.pg -FAQ.ps -FAQ.toc -FAQ.tp -FAQ.vr -index.html -Makefile -Makefile.in -mdate-sh -rtems_footer.html -rtems_header.html -stamp-vti -version.texi diff --git a/doc/FAQ/FAQ.texi b/doc/FAQ/FAQ.texi deleted file mode 100644 index 3fe6996529..0000000000 --- a/doc/FAQ/FAQ.texi +++ /dev/null @@ -1,117 +0,0 @@ -\input texinfo @c -*-texinfo-*- -@c %**start of header -@setfilename FAQ.info -@setcontentsaftertitlepage -@syncodeindex vr fn -@synindex ky cp -@paragraphindent 0 -@c %**end of header - -@c -@c COPYRIGHT (c) 1988-2002. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@c -@c Master file for the RTEMS FAQ -@c - -@include version.texi -@include common/setup.texi -@include common/rtems.texi - -@ifset use-ascii -@dircategory RTEMS On-Line Manual -@direntry -* RTEMS FAQ: (FAQ). Frequently Asked Questions. -@end direntry -@end ifset - -@c -@c Title Page Stuff -@c - -@c -@c I don't really like having a short title page. --joel -@c -@c @shorttitlepage RTEMS Frequently Asked Questions - -@setchapternewpage odd -@settitle RTEMS Frequently Asked Questions -@titlepage -@finalout - -@title RTEMS Frequently Asked Questions -@subtitle Edition @value{EDITION}, for @value{VERSION} -@sp 1 -@subtitle @value{UPDATED} -@author On-Line Applications Research Corporation -@page -@include common/cpright.texi -@end titlepage - -@c This prevents a black box from being printed on "overflow" lines. -@c The alternative is to rework a sentence to avoid this problem. - -@include basic.texi -@include tools.texi -@include concepts.texi -@include build45.texi -@include bsp.texi -@include debug.texi -@include freesw.texi -@include hwdebugaids.texi -@include projects.texi -@include endoftime.texi - -@ifinfo -@node Top, Basic Information, (dir), (dir) -@top FAQ - -This document is the RTEMS FAQ. FAQ is an acronym for Frequently -Asked Questions and we sincerely hope that this contains the answers -to some of the questions most frequently asked about RTEMS. - -Common questions have been divided into the following categories. - - -@menu -* Basic Information:: -* General Development Tool Hints:: -* RTEMS Concepts:: -* Building RTEMS:: -* BSP Questions:: -* Debugging Hints:: -* Free Software that Works with RTEMS:: -* Hardware to Ease Debugging:: -* RTEMS Projects:: -* Date/Time Issues in Systems Using RTEMS:: -@end menu - -@c * Command and Variable Index:: -@c * Concept Index:: -@end ifinfo -@c -@c -@c Need to copy the emacs stuff and "trailer stuff" (index, toc) into here -@c - -@c @node Command and Variable Index, Concept Index, Installing GCC AND NEWLIB, Top -@c @unnumbered Command and Variable Index - -@c There are currently no Command and Variable Index entries. - -@c @printindex fn - -@c @node Concept Index, , Command and Variable Index, Top -@c @unnumbered Concept Index - -@c There are currently no Concept Index entries. -@c @printindex cp - -@contents -@bye - diff --git a/doc/FAQ/Makefile.am b/doc/FAQ/Makefile.am deleted file mode 100644 index 74ee479d3d..0000000000 --- a/doc/FAQ/Makefile.am +++ /dev/null @@ -1,82 +0,0 @@ -# -# COPYRIGHT (c) 1988-2002. -# On-Line Applications Research Corporation (OAR). -# All rights reserved. -# -# $Id$ -# - -PROJECT = FAQ -EDITION = 1 - -include $(top_srcdir)/project.am -include $(top_srcdir)/main.am - -GENERATED_FILES = basic.texi tools.texi concepts.texi build45.texi bsp.texi \ - debug.texi freesw.texi hwdebugaids.texi projects.texi endoftime.texi - -COMMON_FILES += $(top_srcdir)/common/cpright.texi - -FILES = - -info_TEXINFOS = FAQ.texi -FAQ_TEXINFOS = $(FILES) $(COMMON_FILES) $(GENERATED_FILES) - -# -# Process Automatically Generated Files -# - -basic.texi: basic.t - $(BMENU2) -c -p "Top" \ - -u "Top" \ - -n "" < $< > $@ - -tools.texi: tools.t - $(BMENU2) -c -p "Top" \ - -u "Top" \ - -n "" < $< > $@ - -concepts.texi: concepts.t - $(BMENU2) -c -p "" \ - -u "Top" \ - -n "" < $< > $@ - -build45.texi: build45.t - $(BMENU2) -c -p "" \ - -u "Top" \ - -n "" < $< > $@ - -bsp.texi: bsp.t - $(BMENU2) -c -p "" \ - -u "Top" \ - -n "" < $< > $@ - -debug.texi: debug.t - $(BMENU2) -c -p "" \ - -u "Top" \ - -n "" < $< > $@ - -freesw.texi: freesw.t - $(BMENU2) -c -p "" \ - -u "Top" \ - -n "" < $< > $@ - -hwdebugaids.texi: hwdebugaids.t - $(BMENU2) -c -p "" \ - -u "Top" \ - -n "" < $< > $@ - -projects.texi: projects.t - $(BMENU2) -c -p "" \ - -u "Top" \ - -n "" < $< > $@ - -endoftime.texi: endoftime.t - $(BMENU2) -c -p "" \ - -u "Top" \ - -n "" < $< > $@ - -CLEANFILES += FAQ.info FAQ.info-? - -EXTRA_DIST = entry basic.t bsp.t build45.t concepts.t debug.t endoftime.t \ - freesw.t hwdebugaids.t projects.t tools.t diff --git a/doc/FAQ/basic.t b/doc/FAQ/basic.t deleted file mode 100644 index 601765e624..0000000000 --- a/doc/FAQ/basic.t +++ /dev/null @@ -1,196 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-2002. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter Basic Information - -The questions in this category are basic questions about RTEMS. Where -did it come from, why is it, what is it, when should you use it, etc.? - -@section What does RTEMS stand for? - -RTEMS is an an acronym for the Real-Time Executive for Multiprocessor -Systems. - -Initially RTEMS stood for the Real-Time Executive for Missile Systems -but as it became clear that the application domains that could use -RTEMS extended far beyond missiles, the "M" changed to mean Military. -At one point, there were both Ada and C implementations of RTEMS. The -C version changed the "M" to mean Multiprocessor while the Ada version -remained with the "M" meaning Military. - -@section What is RTEMS? - -RTEMS is a real-time executive which provides a high performance -environment for embedded military applications including many -features. The following is just a short list of the features -available in RTEMS. If you are interested in something that -is not on this list, please contact the RTEMS Team. Features -are being added continuously. - -@itemize @bullet - -@item Standards Compliant -@itemize @bullet -@item POSIX 1003.1b API including threads -@item RTEID/ORKID based Classic API -@end itemize - -@item TCP/IP Stack -@itemize @bullet -@item high performance port of FreeBSD TCP/IP stack -@item UDP, TCP -@item ICMP, DHCP, RARP -@item TFTP -@item RPC -@item FTPD -@item HTTPD -@item CORBA -@end itemize - -@item Debugging -@itemize @bullet -@item GNU debugger (gdb) -@item DDD GUI interface to GDB -@item thread aware -@item debug over Ethernet -@item debug over Serial Port -@end itemize - -@item Filesystem Support -@itemize @bullet -@item In-Memory Filesystem (IMFS) -@item TFTP Client Filesystem -@end itemize - -@item Basic Kernel Features -@itemize @bullet -@item multitasking capabilities -@item homogeneous and heterogeneous multiprocessor systems -@item event-driven, priority-based, preemptive scheduling -@item optional rate monotonic scheduling -@item intertask communication and synchronization -@item priority inheritance -@item responsive interrupt management -@item dynamic memory allocation -@item high level of user configurability -@end itemize - -@end itemize - - -@section What standards does RTEMS support? - -The original "Classic" RTEMS API is based on the Real-Time Executive -Interface Definition (RTEID) and the Open Real-Time Kernel Interface -Definition (ORKID). RTEMS also includes support for POSIX threads -and real-time extensions. - -With the addition of file system infrastructure, RTEMS supports -about 70% of the POSIX 1003.1b-1996 standard. This standard -defines the programming interfaces of standard UNIX. This means -that much source code that works on UNIX, also works on RTEMS. - -@section What processors is RTEMS available for? - -RTEMS is available for the following processor families: - -@itemize @bullet -@item Motorola MC68xxx -@item Motorola MC683xx -@item Motorola ColdFire -@item ARM -@item Hitachi H8/300 -@item Hitachi SH -@item Intel i386 -@item MIPS -@item PowerPC -@item SPARC -@item Texas Instruments C3x/C4x -@item OpenCores OR32 -@end itemize - -In addition, there is a port to UNIX which can be used as a prototyping -and simulation environment. - -@section Executive vs. Kernel vs. Operating System (RTOS) - -The developers of RTEMS developers use the terms executive and kernel -interchangeably. In the embedded system community, the terms executive -or kernel are generally used to refer to small operating systems. -So we consider it proper to refer to RTEMS as an executive, a kernel, -or an operating system. - -@section Where/why was it developed? - -RTEMS was developed by On-Line Applications Research Corporation (OAR) -for the U.S. Army Missile Command prior to that organizations merger -with the Aviation Command that resulted in the new command, U. S. Army -Aviation and Missile command (AMCOM). The original goal of RTEMS was -to provide a portable, standards-based real-time executive for which -source code was available and royalties were paid. - -In other words, RTEMS was open source before open source was cool. - -Since the initial release to the world, the RTEMS Community has -grown enormously and contributed significantly to RTEMS. Important -additions such as the TCP/IP stack, FAT filesystem, multiple ports, -device drivers, and most BSPs have come from users like yourself. - -@section Are there no similar commercial products? - -Yes, but not all are based on standards and the open source philosophy. - -@section How can I get RTEMS? - -RTEMS is distributed from @uref{@value{RTEMSHTTPURL},@value{RTEMSHTTPURL}}. -This is a server dedicated to the RTEMS Project which was donated by and -hosted by @uref{http://www.oarcorp.com,OAR Corporation} to provide -a focal point for all RTEMS activities. Point your -favorite browser at the following URL and following the link: - -@uref{@value{RTEMSHTTPURL},@value{RTEMSHTTPURL}} - -But if you are already reading this, you probably already found it. :) - -@section What about support? - -RTEMS development and support services are available from a number -of firms. See -@uref{@value{RTEMSHTTPURL}/support.html,@value{RTEMSHTTPURL}/support.html} -for the current list of RTEMS service providers. - -Remember that RTEMS maintenance is funded by users. If you are -using RTEMS on a commercial project, please get support. - -@section Are there any mailing lists? - -The primary RTEMS mailing list is @code{@value{RTEMSUSERS}}. This -list is for general RTEMS discussions, questions, design help, advice, -etc.. Subscribe by sending an empty mail -message to @code{@value{RTEMSUSERSSUBSCRIBE}}. This -mailing list is archived at: - -@example -http://www.rtems.com/ml/rtems-users -@end example - -@section Are there any license restrictions? - -RTEMS is licensed under a modified version of the GNU General Public License -(GPL). The modification places no restrictions on the applications which -use RTEMS but protects the interests of those who work on RTEMS. - -The TCP/IP network stack included with RTEMS is a port of the FreeBSD -network stack and is licensed under different terms that also do not -place restrictions on the application. - -@section Are there any export restrictions? - -No. - - diff --git a/doc/FAQ/bsp.t b/doc/FAQ/bsp.t deleted file mode 100644 index f4305be9ba..0000000000 --- a/doc/FAQ/bsp.t +++ /dev/null @@ -1,35 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-2002. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter BSP Questions - -The items in this category provide answers to questions -commonly asked about BSPs. - -@section What is a BSP? - -BSP is an acronym for Board Support Package. - -A BSP is a collection of device drivers, startup code, linker scripts, -and compiler support files (specs files) that tailor RTEMS for a -particular target hardware environment. - -@section What has to be in a BSP? - -The basic set of items is the linker script, bsp_specs, and startup code. -If you want standard IO, then you need a console driver. This is needed -to run any of the RTEMS tests. If you want to measure passage of time, -you need a clock tick driver. This driver is needed for all RTEMS tests -EXCEPT hello world and the timing tests. The timer driver is a benchmark -timer and is needed for the tmtests (timing tests). Sometimes you will -see a shmsupp directory which is for shared memory multiprocessing -systems. The network driver and real-time clock drivers are optional -and not required by any RTEMS tests. - - - diff --git a/doc/FAQ/build45.t b/doc/FAQ/build45.t deleted file mode 100644 index 8eb4fd97ab..0000000000 --- a/doc/FAQ/build45.t +++ /dev/null @@ -1,419 +0,0 @@ -@c -@c $Id$ -@c - -@chapter Building RTEMS - -Building any package in a cross-compilation fashion can be difficult, -but configuring and building a real-time operating system that -supports many CPU families and target boards can be confusing. The -RTEMS development team has made every effort to make this process as -straight forward as possible but there are going to be questions. - -Moreover, between RTEMS 4.0 and 4.5, the configure and Makefile system in RTEMS -was changed to be more compatible with GNU standards. This transition -has lead to a number of subtle differences. - -This section of the FAQ tries to address the more frequently asked -questions about building RTEMS. Thanks to Ralf Corsepius for -compiling this section from excerpts from various postings to the -rtems-users mailing list. - -@section Required Tools - -@subsection Which tools are required to build RTEMS? - -@itemize @bullet - -@item A native C-Toolchain, gcc prefered -@item GNU-Bash and shell utils -@item GNU-make. -@item A target (typically cross) C- and (optional) C++-Toolchain. -@item autoconf/automake (optional, recommended) -@item Perl (optional, recommended, needed by automake and some tools within RTEMS) -@item GNU-m4 - -@end itemize - -@subsection Do I need autoconf and automake to build RTEMS? - -No, you don't. Or to be more accurate, you won't need them until you -modify something in RTEMS's Makefile.ams/configure.acs or start to develop -with RTEMS. - -I.e. you won't need them to get started, but you will need them when getting -serious. - -@subsection Do I need a native gcc on my host? - -No, you should be able to use any native, ansi-compliant C-compiler, but -using a native gcc is highly recommended. - -@subsection Can I use a non-gcc cross-toolchain? - -Generally speaking, it should be possible. -However, most RTEMS development has taken place using gcc, therefore -getting it working may not be easy. - -@subsection Do I need gcc-2.9x for cross compilation? - -[FIXME: Partially obsolete] - -Not necessarily, but gcc-2.9x is highly recommended, because most development -has taken place using gcc-2.9x and previous versions of gcc are not actively -supported in RTEMS anymore (@ref{Can I use a non-gcc cross-toolchain?}). - -@subsection Where to get autoconf automake ld gcc etc.? - -The sources of all gnutools are available at any -@uref{ftp://ftp.gnu.org,GNU} mirror. -Native Linux binaries should come with any Linux distribution. -Native Cygwin binaries should be available at @uref{http://www.cygwin.com}. - -GNU-Toolchain binaries (gcc, binutils etc.) for Linux and patches required -to build them from source are available from -@uref{@value{RTEMSFTPURL},the RTEMS ftp site}. - - -@section Issues when building RTEMS - -@subsection When running ./configure weird thing start to happen - -You are probably trying to build within the source-tree. -RTEMS requires a separate build directory. I.e. if the -sources are located at @code{/usr/local/src/rtems-@value{VERSION}}, -use something similar to this to configure RTEMS: - -@example -cd somewhere -mkdir build -cd build -/usr/local/src/rtems-@value{VERSION}/configure [options] -@end example - -@subsection When running bootstrap weird thing start to happen - -Many possibile causes: Most likely one of these: -@itemize @bullet -@item You are trying to build RTEMS with insufficient or incompatible -versions of autoconf and automake. -@item The autotools can't be found because your $PATH might not be set up -correctly (Cf. @ref{How to set up $PATH?}) -@item You have used configure-script options which interfer with RTEMS -configuration (Cf. @ref{configure --program-[prefix|suffix|transform-name]}) -@item You have tripped over a bug in RTEMS ;) -@end itemize - -@subsection configure xxx cannot create executables - -While running a configure script, you see a message like this: -@example -checking for m68k-rtems-gcc... (cached) m68k-rtems-gcc -checking for C compiler default output... configure: error: C compiler -cannot create executables -configure: error: /bin/sh '../../../../rtems-ss-@value{VERSION}/c/make/configure' -failed for c/make -@end example -This kind of error message typically indicates a broken toolchain, broken -toolchain installation or broken user environment. - -Examinating the @code{config.log} corresponding to the the failing -configure script should provide further information of what -actually goes wrong (In the example above: @code{<target>/c/<BSP>/make/config.log}) - -@subsection Why can I not build RTEMS inside of the source tree? - -The build-directory hierarchy is setup dynamically at configuration time. - -Configuring inside of the source tree would prevent being able to configure -for multiple targets simultaneously. - -Using a separate build-tree simplifies Makefiles and configure scripts -significantly. - -Adaptation to GNU/Cygnus conventions. - -@subsection Which environment variables to set? - -None. Unlike for previous releases, it is not recommended anymore to set any -RTEMS related environment variable (Exception: $PATH, cf. -@ref{How to set up $PATH?}). - - -@subsection Compiler /Assembler /Linker report errors - -If you see a bunch of the error messages related to invalid instructions -or similar, then probably your @code{$PATH} environment variable is not -set up correctly (cf. @ref{How to set up $PATH?}). Otherwise you might -have found a bug either in RTEMS or parts of the toolchain. - -@subsection How to set up $PATH? - -All target tools are supposed to be prefixed with a target-canonicalization -prefix, eg. i386-rtems-gcc, m68k-rtems-ld are target tools. - -Host tools are supposed not to be prefixed. -e.g.: cc, ld, gcc, autoconf, automake, aclocal etc. - -If using the pre-built tool binaries provided by the RTEMS project, -simply prepend @code{@value{RTEMSPREFIX}}/bin to @code{$PATH}. - -@subsection Can I build RTEMS Canadian Cross? - -RTEMS >= 4.6.0 configuration is prepared for building RTEMS Canadian Cross, -however building RTEMS Canadian Cross is known to be in its infancy, so -your mileage may vary (See @code{README.cdn-X} in the toplevel directory of -RTEMS's source tree for details.) - -@subsection Building RTEMS is slow - -RTEMS has become fairly large :). - -In comparison to building previous versions, building RTEMS is slow, - but that's the tradeoff to pay for simplier and safer configuration. - -If using Cygwin, remember that Cygwin is emulating one OS ontop of another - -- this necessarily must be significantly slower than using U*nix on the - same hardware. - -@subsection Building my pre-4.5.x BSPs does not work anymore - -See @ref{How to merge pre-RTEMS-4.5.0 BSPs into RTEMS-4.5.0?}. - -@subsection make debug_install / make profile_install - -[FIXME:Partially obsolete] - -These make targets are not supported anymore. Instead, use: - -@example -make VARIANT=DEBUG install -make VARIANT=PROFILE install -@end example - -@subsection make debug / make profile - -[FIXME:Partially obsolete] - -These make targets are not supported anymore. -Instead, use: - -@example -make VARIANT=DEBUG all -make VARIANT=PROFILE all -@end example - - -@subsection Building RTEMS does not honor XXX_FOR_TARGET - -RTEMS < 4.6.0 did not support passing flags from the environment. -If using RTEMS < 4.6.0, editing your BSP's @code{make/custom/mybsp.cfg} and -setting appropriate flags there is required. - -RTEMS >= 4.6.0 honors several XXX_FOR_TARGET environment variables. -Run @code{<path-to-rtems>/configure --help} for a full list of supported variables. - -@subsection Editing Makefile.in Makefile configure - -These files are generated by auto* tools, cf. -@ref{Editing auto* generated files}). - -@subsection Editing auto* generated files - -RTEMS uses automake, therefore @b{never}, @b{ever}, @b{ever} -edit Makefile.ins, Makefiles, configure or other auto* generated files. -Changes to them will be swapped away soon and will get lost. - -Instead edit the sources (eg.: Makefile.ams, configure.acs) auto* generated -files are generated from directly. - -If sending patches always send Makefile.ams and configure.acs. -Sending Makefile.ins, Makefiles and configure scripts is pretty much useless. -If sending larger patches, consider removing all auto* generated files -by running @code{bootstrap -c} (cf. See @ref{./bootstrap}) -before running diff to cut a patch. - -If you don't understand what this is all about, try start getting familiar -with auto* tools by reading autoconf.info and automake.info, or feel free -to ask for assistance on the RTEMS Mailing List -(See @ref{Are there any mailing lists?}. - -@section Host Operating Systems and RTEMS - -@subsection Can I use Windows or DOS? - - -No, plain DOS and plain Win will not work, but Cygwin should. -Other U*nix emulations, such as Mingw and DJGPP are not supported and very -likely will not work. -Cywin / WinNT is known to work, but at the time of writing this, there -seem to persist non-RTEMS related issues with Cygwin under Win9x which -seem to prevent success on those systems. - -@subsection Do I need Linux? - - -No, you should be able to build RTEMS on any U*ix OS and under Cygwin/NT -(cf. @ref{Can I use Windows or DOS?}). - -@subsection Which Linux distribution is recommended? - -None, any recent U*nix should work, i.e. -any recent Linux distribution should work, too. - -@section Development related questions - -@subsection How to merge pre-RTEMS-4.5.0 BSPs into RTEMS-4.5.0? - -[FIXME:Partially obsolete] - -The simple answer is that between 4.0 and 4.5.0, RTEMS has moved to automake -and greater compliance with GNU conventions. -In 4.0, there was a single configure script at the top of the tree. -Now RTEMS is configured more like other GNU tools -- as a collection of -configurable entities. - -Each BSP now has its own configure script. -I highly recommend you look at the Makefile.am's, configure.ac, of a similar -BSP. You might even want to consider running "bootstrap -c" from the top of -the tree and looking at what is left. bootstrap (cf. @ref{./bootstrap}) -generates/removes all automatically generated files. - -@subsection What is no_bsp / no_cpu? - -@code{no_bsp} is a fictional BSP for a fictional CPU of type -@code{no_cpu}. @code{no_cpu/no_bsp} support files in RTEMS can be used as -templates when implementing BSPs or porting RTEMS to new CPUs. - -@subsection What is the bare-BSP? - -At the time being RTEMS is build per BSP, with all support files being build -separately for each BSP. This can become unhandy when using several similar -but not identical boards (e.g. a PC with different peripherial cards plugged -in), because this in general requires to implement a BSP for each setup. -The bare BSP is a general, setup independent BSP which can be used when -keeping all BSP specific parts external from RTEMS. - -At present time the bare BSP is in its infancy. -It is known that it can be build for most CPUs RTEMS supports. -It is also known to work in individual cases, but your mileage may vary. - -@subsection What is the cpukit? - -[FIXME:To be extended] - -One major change having been introduced to RTEMS-4.6.0 is the cpukit, -located below the directory @code{cpukit/} in RTEMS's toplevel directory. - -@subsection Multilib vs. RTEMS CPU-variants - -The GNU toolchain applies a specific classification of similar CPUs into -CPU variants (eg. SH1, SH2 etc.) to provide better support for each CPU variant. - -RTEMS uses a different classification because it internally requires more -details about a specific CPU than the GNU toolchain's multilib classification -provides. - -@subsection Keeping auto* generated files in CVS - -When using CVS to archive source code, problems arise from keeping generated -files in CVS. In general, two possible solutions exist: - -@itemize @bullet - -@item Find a way to get correct timestamps after checking out the sources -from CVS. Some people try to achieve this by - -@itemize @bullet -@item carefully checking in files into CVS in appropriate order -@item applying scripts to fix timestamps accordingling (eg. by applying -@code{touch} and @code{find}). -@end itemize - -@item Not keeping generated files in CVS, but regenerate them after -having checked them out from CVS. - -@end itemize - -RTEMS favors the the latter variant, because it appears to be less error-prone -and easier to handle (cf. @ref{./bootstrap} for details). - -@subsection Importing RTEMS into CVS/RCS - -When importing RTEMS into CVS/RCS or similar, we recommend not to import -auto* generated files (cf. @ref{Keeping auto* generated files in CVS}). - -To remove them before importing, run - -@example -./bootstrap -c -@end example - -from the toplevel directory of the source tree (cf. @ref{./bootstrap}). - -@subsection ./bootstrap - - -@code{bootstrap} is a simple shell script which automatically generates all -auto* generated files within RTEMS's source tree (Other packages use the name -@code{autogen.sh} for similar scripts). You will need to have autoconf, -automake and further underlying packages installed to apply it. - -It typically should be applied when having: - -@itemize @bullet - -@item checked out RTEMS sources from a CVS repository which does -not contain generated files. - -@item added new automake / autoconf files to the source tree (eg. -having added a new BSP), and when not being sure about what needs to be -updated. - -@end itemize - -Once all autoconf/automake generated files are present, you will rarely -need to run @code{bootstrap}, because automake automatically updates -generated files when it detects some files need to be updated (Cf. -@ref{configure --enable-maintainer-mode}). - -@subsection configure --enable-maintainer-mode - -When working within the source-tree, consider to append -@code{--enable-maintainer-mode} to the options passed to configure RTEMS. - -@example -<path>/rtems-@value{VERSION}/configure <options> --enable-maintainer-mode -@end example - -This will enable the maintainer-mode in automake generated Makefiles, which -will let automake take care about dependencies between auto* generated -files. I.e. auto* generated files will get automatically updated. - -Configuring RTEMS in maintainer-mode will require to have autoconf, automake -and underlying tools installed (Cf. @ref{Required Tools}). - -@subsection configure --program-[prefix|suffix|transform-name] - -These are generic configure script options automatically added by autoconf. -RTEMS configuration does not support these, worse, they interfer with -RTEMS's configuration -- i.e. @b{do not use them}. - -@subsection configure.ac vs. configure.in - -autoconf < 2.50 used the name @code{configure.in} for it's input files. -autoconf >= 2.50 recommends using the name @code{configure.ac}, instead. - -RTEMS > 4.5.0 applies autoconf >= 2.50, therefore all former RTEMS's -@code{configure.in}'s have been renamed into @code{configure.ac} and -have been adapted to autoconf >= 2.50 demands. - -@subsection Reporting bugs - -Several possibilities (In decreasing preference): -@itemize @bullet -@item File a bug report at @uref{@value{RTEMSGNATS},RTEMS's GNATS} -@item Send an email to @uref{mailto:@value{RTEMSBUGS},@value{RTEMSBUGS}} -@item Report your problem to one of the RTEMS mailing lists -(Cf. @ref{Are there any mailing lists?}). -@end itemize diff --git a/doc/FAQ/concepts.t b/doc/FAQ/concepts.t deleted file mode 100644 index 87fa454ab0..0000000000 --- a/doc/FAQ/concepts.t +++ /dev/null @@ -1,19 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-2002. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter RTEMS Concepts - -The questions in this category are hints that help basic understanding. - -@section RTEMS Workspace versus Program Heap - -The RTEMS Workspace is used to allocate space for objects created -by RTEMS such as tasks, semaphores, message queues, etc.. It is -primarily used during system initialization although task stacks -and message buffer areas are also allocated from here. -@ref{How do I determine how much memory is left?}. diff --git a/doc/FAQ/debug.t b/doc/FAQ/debug.t deleted file mode 100644 index 08f3b991fc..0000000000 --- a/doc/FAQ/debug.t +++ /dev/null @@ -1,158 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-2002. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter Debugging Hints - -The questions in this category are hints that can ease debugging. - -@section Executable Size - -@subsection Why is my executable so big? - -There are two primary causes for this. The most common is that -you are doing an @code{ls -l} and looking at the actual file -size -- not the size of the code in the target image. This -file could be in an object format such as ELF or COFF and -contain debug information. If this is the case, it could -be an order of magnitude larger than the required code space. -Use the strip command in your cross toolset to remove debugging -information. - -The following example was done using the i386-rtems cross toolset -and the pc386 BSP. Notice that with symbolic information included -the file @code{hello.exe} is almost a megabyte and would barely fit -on a boot floppy. But there is actually only about 93K of code -and initialized data. The other 800K is symbolic information -which is not required to execute the application. - -@example -$ ls -l hello.exe --rwxrwxr-x 1 joel users 930515 May 2 09:50 hello.exe -$ i386-rtems-size hello.exe - text data bss dec hex filename - 88605 3591 11980 104176 196f0 hello.exe -$ i386-rtems-strip hello.exe -$ ls -l hello.exe --rwxrwxr-x 1 joel users 106732 May 2 10:02 hello.exe -$ i386-rtems-size hello.exe - text data bss dec hex filename - 88605 3591 11980 104176 196f0 hello.exe -@end example - -Another alternative is that the executable file is in an ASCII -format such as Motorola Srecords. In this case, there is -no debug information in the file but each byte in the target -image requires two bytes to represent. On top of that, there -is some overhead required to specify the addresses where the image -is to be placed in target memory as well as checksum information. -In this case, it is not uncommon to see executable files -that are between two and three times larger than the actual -space required in target memory. - -Remember, the debugging information is required to do symbolic -debugging with gdb. Normally gdb obtains its symbolic information -from the same file that it gets the executable image from. However, -gdb does not require that the executable image and symbolic -information be obtained from the same file. So you might -want to create a @code{hello_with_symbols.exe}, copy that -file to @code{hello_without_symbols.exe}, and strip -@code{hello_without_symbols.exe}. Then gdb would have to -be told to read symbol information from @code{hello_with_symbols.exe}. -The gdb command line option @code{-symbols} or command -@code{symbol-file} may be used to specify the file read -for symbolic information. - - -@section Malloc - -@subsection Is malloc reentrant? - -Yes. The RTEMS Malloc implementation is reentrant. It is -implemented as calls to the Region Manager in the Classic API. - -@subsection When is malloc initialized? - -During BSP initialization, the @code{bsp_libc_init} routine -is called. This routine initializes the heap as well as -the RTEMS system call layer (open, read, write, etc.) and -the RTEMS reentrancy support for the Cygnus newlib Standard C -Library. - -The @code{bsp_libc_init} routine is passed the size and starting -address of the memory area to be used for the program heap as well -as the amount of memory to ask @code{sbrk} for when the heap is -exhausted. For most BSPs, all memory available is placed in the -program heap thus it can not be extended dynamically by calls to -@code{sbrk}. - -@section How do I determine how much memory is left? - -First there are two types of memory: RTEMS Workspace and Program Heap. -The RTEMS Workspace is the memory used by RTEMS to allocate control -structures for system objects like tasks and semaphores, task -stacks, and some system data structures like the ready chains. -The Program Heap is where "malloc'ed" memory comes from. - -Both are essentially managed as heaps based on the Heap Manager -in the RTEMS SuperCore. The RTEMS Workspace uses the Heap Manager -directly while the Program Heap is actually based on an RTEMS Region -from the Classic API. RTEMS Regions are in turn based on the Heap -Manager in the SuperCore. - -@subsection How much memory is left in the RTEMS Workspace? - -An executive workspace overage can be fairly easily spotted with a -debugger. Look at _Workspace_Area. If first == last, then there is only -one free block of memory in the workspace (very likely if no task -deletions). Then do this: - -(gdb) p *(Heap_Block *)_Workspace_Area->first -$3 = @{back_flag = 1, front_flag = 68552, next = 0x1e260, previous = 0x1e25c@} - -In this case, I had 68552 bytes left in the workspace. - -@subsection How much memory is left in the Heap? - -The C heap is a region so this should work: - -(gdb) p *((Region_Control *)_Region_Information->local_table[1])->Memory->first -$9 = @{back_flag = 1, front_flag = 8058280, next = 0x7ea5b4, - previous = 0x7ea5b0@} - -In this case, the first block on the C Heap has 8,058,280 bytes left. - -@section How do I convert an executable to IEEE-695? - -This section is based on an email from Andrew Bythell -<abythell@@nortelnetworks.com> in July 1999. - -Using Objcopy to convert m68k-coff to IEEE did not work. The new IEEE -object could not be read by tools like the XRay BDM Debugger. - -The exact nature of this problem is beyond me, but I did narrow it down to a -problem with objcopy in binutils 2-9.1. To no surprise, others have -discovered this problem as well, as it has been fixed in later releases. - -I compiled a snapshot of the development sources from 07/26/99 and -everything now works as it should. The development sources are at -@uref{http://sourceware.cygnus.com/binutils} (thanks Ian!) - -Additional notes on converting an m68k-coff object for use with XRay (and -others): - -@enumerate - - -@item The m68k-coff object must be built with the -gstabs+ flag. The -g flag -alone didn't work for me. - -@item Run Objcopy with the --debugging flag to copy debugging information. - -@end enumerate - - diff --git a/doc/FAQ/endoftime.t b/doc/FAQ/endoftime.t deleted file mode 100644 index 9ba5436aef..0000000000 --- a/doc/FAQ/endoftime.t +++ /dev/null @@ -1,111 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-2002. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter Date/Time Issues in Systems Using RTEMS - -This section provides technical information regarding -date/time representation issues and RTEMS. The Y2K problem has -lead numerous people to ask these questions. The answer to -these questions are actually more complicated than most -people asking the question expect. RTEMS supports multiple -standards and each of these standards has its own epoch and -time representation. These standards include both programming -API and programming language standards. - -In addition to the issues inside RTEMS -itself, there is the complicating factor that the Board -Support Package or application itself may interface with hardware -or software that has its own set of date/time representation -issues. - -In conclusion, viewing date/time representation as "the Y2K problem" -is very short-sighted. Date/time representation should be viewed as -a systems level issue for the system you are building. Each software -and hardware component in the system as well as the systems being -connected to is a factor in the equation. - -@section Hardware Issues - -Numerous Real-Time Clock (RTC) controllers provide only a two-digit -Binary Coded Decimal (BCD) representation for the current year. Without -software correction, these chips are a classic example of the Y2K problem. -When the RTC rolls the year register over from 99 to 00, the device -has no idea whether the year is 1900 or 2000. It is the responsibility -of the device driver to recognize this condition and correct for it. -The most common technique used is to assume that all years prior -to either the existence of the board or RTEMS are past 2000. The -starting year (epoch) for RTEMS is 1988. Thus, - -@itemize @bullet -@item Chip year values 88-99 are interpreted as years 1988-2002. -@item Chip year values 00-87 are interpreted as years 2000-2087. -@end itemize - -Using this technique, a RTC using a -two-digit BCD representation of the current year will overflow on -January 1, 2088. - -@section RTEMS Specific Issues - -Internally, RTEMS uses an unsigned thirty-two bit integer to represent the -number of seconds since midnight January 1, 1988. This counter will -overflow on February 5, 2124. - -The time/date services in the Classic API will overflow when the -RTEMS internal date/time representation overflows. - -The POSIX API uses the type @i{time_t} to represent the number of -seconds since January 1, 1970. Many traditional UNIX systems as -well as RTEMS define @i{time_t} as a signed thirty-two bit integer. -This representation overflows on January 18, 2038. The solution -usually proposed is to define @i{time_t} as a sixty-four bit -integer. This solution is appropriate for for UNIX workstations -as many of them already support sixty-four bit integers natively. -At this time, this imposes a burden on embedded systems which are -still primarily using processors with native integers of thirty-two -bits or less. - -@section Language Specific Issues - -The Ada95 Language Reference Manual requires that the @i{Ada.Calendar} -package support years through the year 2099. However, just as the -hardware is layered on top of hardware and may inherit its limits, -the Ada tasking and run-time support is layered on top of an operating -system. Thus, if the operating system or underlying hardware fail -to correctly report dates after 2099, then it is possible for the -@i{Ada.Calendar} package to fail prior to 2099. - -@section Date/Time Conclusion - -Each embedded system could be impacted by a variety of date/time -representation issues. Even whether a particular date/time -representation issue impacts a system is questionable. A system -using only the RTEMS Classic API is not impacted by the -date/time representation issues in POSIX. A system not using -date/time at all is not impacted by any of these issues. Also -the planned end of life for a system may make these issues -moot. - -The following is a timeline of the date/time representation -issues presented in this section: - -@itemize @bullet - -@item 2000 - Two BCD Digit Real-Time Clock Rollover - -@item 2038 - POSIX @i{time_t} Rollover - -@item 2088 - Correction for Two BCD Digit Real-Time Clock Rollover - -@item 2099 - Ada95 @i{Ada.Calendar} Rollover - -@item 2124 - RTEMS Internal Seconds Counter Rollover - -@end itemize - - diff --git a/doc/FAQ/entry b/doc/FAQ/entry deleted file mode 100644 index 3c06c36097..0000000000 --- a/doc/FAQ/entry +++ /dev/null @@ -1,60 +0,0 @@ -# -# $Id$ -# - -This is the RTEMS entry in the Crossgcc FAQ at @uref{http://www.objsw.com}. -As of 8/19/99, it has been submitted twice and the FAQ not updated. - -RTEMS is a freely available, royalty free real-time executive with -multiprocessor capabilities. RTEMS' design provides performance and -capabilities are comparable to those of the best commercial executives. -The directive execution times and other critical performance measures such -as interrupt latency are best of class. RTEMS was developed by On-Line -Applications Research Corporation (OAR) under contract to the U.S. Army -Missile Command. - - -RTEMS includes support for multiple APIs. Currently RTEMS supports a -POSIX threads API, and an RTEID based API which is similar to pSOS+. -RTEMS includes a number of advanced real-time features including optional -rate monotonic scheduling support, binary semapahores with priority -inheritance, and watchdog timer functions. - -RTEMS includes a port of the FreeBSD TCP/IP stack that has high -performance on very modest hardware. A remote debug server is supported -on some targets that allows debugging across the network. - -RTEMS provides a rich run-time environment with a reentrant C library, -POSIX 1003.1b support, and file system support. It also includes optional -debug aids like stack overflow and heap integrity checking. - -RTEMS is built using GNU autoconf and can be built on any host supporting -the GNU tools including GNU/Linux, FreeBSD, NetBSD, Solaris, and MS-Windows -to name but a few. The current RTEMS release supports the following CPU -families: - - Motorola m680x0, m683xx, and ColdFire - Motorola and IBM PowerPC (4xx, 5xx, 6xx, 7xx, 8xx, and 84xx) - Hitachi SH-1, SH-2, SH-4 - Hitachi H8 - ARM - Intel i386, i486, and Pentium - SPARC - MIPS - Texas Instruments C3x/C4x - OpenCores OR32 - -There are over 35 Board Support Packages included with RTEMS including -BSPs for a standard PC as well as the SPARC, MIPS, PowerPC simulators -included with gdb. There are numerous BSPs for CPUs targetting the -embedded market such as the Motorola m683xx, ppc4xx, and mpc8xx series -which support the on-CPU peripherals. - -WWW: - -@uref{http://www.rtems.com} - -E-mail: - -@code{rtems-info@@OARcorp.com} - diff --git a/doc/FAQ/freesw.t b/doc/FAQ/freesw.t deleted file mode 100644 index acf580d328..0000000000 --- a/doc/FAQ/freesw.t +++ /dev/null @@ -1,169 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-2002. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter Free Software that Works with RTEMS - -This section describes other free software packages that are known to work -with RTEMS. - -@section Development Tools - -@subsection Basic Development Environment - -The standard RTEMS development environment consists of the following GNU -components: - -@itemize @bullet - -@item gcc -@item binutils -@item gdb - -@end itemize - -Although not from the Free Software Foundation, the Cygnus newlib C -library integrates well with the GNU tools and is a standard part of the -RTEMS development environment. - -@subsection GNU Ada - -For those interested in using the Ada95 programming language, the GNU Ada -compiler (GNAT) is available and has excellent support for RTEMS. - -@subsection DDD - Data Display Debugger - -By far the easiest way to use DDD if you are on a Redhat or SuSE Linux system -is to retrieve the RPM package for your OS version. In general, it is -easier to install a static binary since doing so avoids all problems -with dynamic library versions. - -Some versions of DDD have had trouble with Lesstif. If you -are using Lesstif, you will need version 0.88 or newer. It -is also available as an RPM at the popular sites. Another Motif -clone is Motive and versions 1.2 and newer known to work with DDD -on popular distributions of Linux including RedHat and Slackware. - -Installed as RPMs, DDD in conjunction with either Lesstif or Motive -should work out-of-the-box. - -User comments indicate that both Lesstif and DDD can be built -from scratch without any problems. Instructions on installing DDD -are at @uref{http://www.cs.tu-bs.de/softech/ddd/}. They -indicate that - -@itemize @bullet -LessTif should be used in (default) Motif 1.2 compatibility mode. - -The Motif 2.0 compatibility mode of LessTif is still incomplete. -@end itemize - -So configure lesstif with --enable-default-12. - -The configure script is broken (see www.lesstif.org --> known problems) -for 0.88.1. I didn't fix the script as they show, so I just have links -in /usr/local/lib (also shown). - -Watch out: Lesstif installs its libraries in /usr/local/Lesstif. You -will need to update /etc/ld.so.conf and regenerate the cache of shared -library paths to point to the Motif 1.2 library. - -The following notes are from an RTEMS user who uses DDD in conjunction -with Lesstif. Configure DDD "--with-motif-libraries=/usr/local/lib ---with-motif-includes=/usr/local/include" DDD needs gnuplot 3.7. -@uref{ftp://ftp.dartmouth.edu/pub/gnuplot/gnuplot-3.7.tar.gz}. Build and -install from scratch. - -DDD can be started from a script that specifies the cross debugger. -This simplifies the invocation. The following example shows what -a script doing this looks like. - -@example -#!/bin/bash -ddd --debugger m68k-elf-gdb $1 -@end example - -Under many flavors of UNIX, you will likely have to relax permissions. - -On Linux, to get gdb to use the serial ports while running as a -normal user, edit /etc/security/console.perms, and create a <serial> -class (call it whatever you want). - -@example -<serial>=/dev/ttyS* /dev/cua* -@end example - -Now enable the change of ownership of these devices when users log in -from the console: - -@example -<console> 0600 <serial> 0600 root -@end example - -Users report using minicom to communicate with the target to initiate a TFTP -download. They then suspend minicom, launch DDD, and begin debugging. - -The procedure should be the same on other platforms, modulo the choice -of terminal emulator program and the scheme used to access the serial -ports. From problem reports on the cygwin mailing list, it appears that -GDB has some problems communicating over serial lines on that platform. - -NOTE: GDB does not like getting lots of input from the program under test -over the serial line. Actually, it does not care, but it looses -characters. It would appear that flow control is not re-enabled when it -resumes program execution. At times, it looked like the test were -failing, but everything was OK. We modified the MVME167 serial driver to -send test output to another serial port. Using two serial ports is -usually the easiest way to get test output while retaining a reliable debug -connection regardless of the debugger/target combination. - -NOTE: Enabling gdb's remote cache might prevent this (Observed with SH1 -boards, but may also be valid for targets): -@example -gdb > set remotecache -@end example - -Information provided by Charles-Antoine Gauthier (charles.gauthier@@iit.nrc.ca) -Jiri Gaisler (jgais@@ws.estec.esa.nl) and Ralf Cors@'epius -(corsepiu@@faw.uni-ulm.de) - - -@section omniORB - -omniORB is a GPL'ed CORBA which has been ported to RTEMS. It is -available from -(@uref{http://www.uk.research.att.com/omniORB/omniORB.html,http://www.uk.research.att.com/omniORB/omniORB.html}) -. - -For information on the RTEMS port of omniORB to RTEMS, see the following -URL -(@uref{http://www.connecttel.com/corba/rtems_omni.html,http://www.connecttel.com/corba/rtems_omni.html}). - -C++ exceptions must work properly on your target for omniORB to work. - -The port of omniORB to RTEMS was done by Rosimildo DaSilva -<rdasilva@@connecttel.com>. - -@section TCL - -Tool Command Language. - -ditto - -@section ncurses - -Free version of curses. - -ditto - - -@section zlib - -Free compression/decompression library. - -ditto - diff --git a/doc/FAQ/hwdebugaids.t b/doc/FAQ/hwdebugaids.t deleted file mode 100644 index 5283e43251..0000000000 --- a/doc/FAQ/hwdebugaids.t +++ /dev/null @@ -1,110 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-2002. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter Hardware to Ease Debugging - -The items in this category provide information on various hardware -debugging assistants that are available. - -@section MC683xx BDM Support for GDB - -Eric Norum (eric@@skatter.usask.ca) has a driver for a parallel -port interface to a BDM module. This driver has a long history -and is based on a driver by Gunter Magin (magin@@skil.camelot.de) -which in turn was based on BD32 for DOS by Scott Howard. Eric Norum -and Chris Johns (ccj@@acm.org) have put together a package containing -everything you need to use this BDM driver including software, PCB layouts, -and machining drawings. From the README: - -"This package contains everything you need to be able to run GDB on -Linux and control a Motorola CPU32+ (68360) or Coldfire (5206, 5206e, or -5207) target through a standard PC parallel port." - -Information on this BDM driver is available at the following URL: - -@example -http://www.calm.hw.ac.uk/davidf/coldfire/gdb-bdm-linux.htm -@end example - -The package is officially hosted at Eric Norum's ftp site: - -@example -ftp://skatter.usask.ca/pub/eric/BDM-Linux-gdb/ -@end example - -Peter Shoebridge (peter@@zeecube.com) has ported the Linux -parallel port BDM driver from Eric Norum to Windows NT. It is -available at http://www.zeecube.com/bdm. - -The efi332 project has a home-built BDM module and gdb backend for -Linux. See http://efi332.eng.ohio-state.edu/efi332/hardware.html) -for details. The device driver and gdb backend are based on those -by Gunter Magin (magin@@skil.camelot.de) available from -ftp.lpr.e-technik.tu-muenchen.de. - -Pavel Pisa (pisa@@cmp.felk.cvut.cz) has one available at -http://cmp.felk.cvut.cz/~pisa/m683xx/bdm_driver.html. - -Huntsville Microsystems (HMI) has GDB support for their BDM module -available upon request. It is also available from their ftp site: -ftp://ftp.hmi.com/pub/gdb - -The Macraigor OCD BDM module has a driver for Linux -written by Gunter Magin (magin@@skil.camelot.de). -No URLs yet. - -Finally, there is a overview of BDM at the following URL: -http://cmp.felk.cvut.cz/~pisa/m683xx/bdm_driver.html. - -Information in this section from: - -@itemize @bullet -@item Brendan Simon <brendan@@dgs.monash.edu.au> -@item W Gerald Hicks <wghicks@@bellsouth.net> -@item Chris Johns <ccj@@acm.org> -@item Eric Norum <eric@@skatter.usask.ca> -@item Gunter Magin <magin@@skil.camelot.de> - -@end itemize - - -@section MPC8xx BDM Support for GDB - -@c "Adrian Bocaniciu" <a.bocaniciu@computer.org> has a driver -@c for NT and is willing to share it but he needs to be emailed -@c privately since he needs to explain somethings about it. -@c It has been used for over a year as of 08/18/99. - -Christian Haan <chn@@intego.de> has written a driver for FreeBSD -based for"a slightly changed ICD BDM module (because of changes -in the BDM interface on the PowerPC)" that "probably will work with -the PD module too." His work is based on the M68K BDM work by -Gunter Magin (Gunter.Magin@@skil.camelot.de) and -the PPC BDM for Linux work by Sergey Drazhnikov (swd@@agua.comptek.ru). -This is not yet publicly available. - -Sergey Drazhnikov (swd@@agua.comptek.ru) has written a PPC BDM driver for -Linux. Information is available at http://cyclone.parad.ru/ppcbdm. - -Huntsville Microsystems (HMI) has GDB support for their BDM module -available upon request. It is also available from their ftp site: -ftp://ftp.hmi.com/pub/gdb - -GDB includes support for a set of primitives to support the Macraigor -Wiggler (OCD BDM). Unfortunately, this requires the use of a -proprietary interface and is supported only on Windows. This forces -one to use CYGWIN. Reports are that this results in a slow -interface. Scott Howard (http://www.objsw.com) has announced -that support for the gdb+wiggler combination under DJGPP which should -run significantly faster. - -@itemize @bullet -@item Leon Pollak <leonp@@plris.com> -@item Christian Haan <chn@@intego.de> -@end itemize - diff --git a/doc/FAQ/projects.t b/doc/FAQ/projects.t deleted file mode 100644 index bf1abaa974..0000000000 --- a/doc/FAQ/projects.t +++ /dev/null @@ -1,113 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-2002. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter RTEMS Projects - -The questions in this category are regarding things that people -are working on or that the RTEMS community would like to see work on. - -There are multiple ways to support the RTEMS Project. Financial support -is always welcomed. This can be via sponsorship of a specific project -such as one of the ones listed here or via volunteering in some -capacity. - -@section Other Filesystems - -This is a list of the filesystems that would be nice to have support -for in RTEMS. For each filsystem, status and contact information is -provided for those who have expressed interest in helping out or are actively -working on it. - -@itemize @bullet -@item TFTP client - read only, no write capability -@itemize @bullet -@item No Contact -@end itemize - -@item DOS Filesystem - ??? -@itemize @bullet -@item Peter Shoebridge <peter@@zeecube.com> -@item Victor V. Vengerov <vvv@@tepkom.ru> -@end itemize - -@item CD-ROM Filesystem - ??? -@itemize @bullet -@item Peter Shoebridge <peter@@zeecube.com> -@end itemize - -@item Flash Filesystem(s) - ??? -@itemize @bullet -@item Rod Barman <rodb@@ieee.org> -@item Victor V. Vengerov <vvv@@tepkom.ru> -@end itemize - -@item Remote Host Filesystem - ??? -@itemize @bullet -@item Wayne Bullaughey <wayne@@wmi.com> -@end itemize - -@item NFS client - ??? -@itemize @bullet -@item No Contact -@end itemize - -@end itemize - -@section Java - -@subsection Kaffe - -This porting effort is underway and active. - -@itemize @bullet -@item Jiri Gaisler <jgais@@ws.estec.esa.nl> -@item Oscar Martinez de la Torre <omt@@wm.estec.esa.nl> -@end itemize - -NOTE: An older version of Kaffe was ported to a pre-4.0 version of RTEMS. -The network support in RTEMS was immature at that port and Kaffe had -portability problems. Together these resulted in an unclean port which -was never merged. - -@subsection GNU Java Compiler (gjc) - -This porting effort is underway and active. - -@itemize @bullet -@item Charles-Antoine Gauthier <charles.gauthier@@iit.nrc.ca> -@end itemize - -@section CORBA - -@subsection TAO - -This porting effort is pending testing. Erik ported the code but then -discovered that his target board did not have enough memory to run -any TAO tests. - -@itemize @bullet -@item Erik Ivanenko <erik.ivanenko@@utoronto.ca> -@end itemize - -@section APIs - -@subsection POSIX 1003.1b - -Support for POSIX 1003.1b is mature but there are a few remaining -items including a handful of services, performance tests, and -documentation. Please refer to the Status chapter of the -@i{POSIX API User's Guide} for more details. - -@subsection ITRON 3.0 - -Support for ITRON 3.0 is in its beginning stages. There are -numerous managers left to implement, both functional and -performance tests to write, and much documentation remaining. -Please refer to the Status chapter of the @i{ITRON 3.0 API User's Guide} -for specific details. - diff --git a/doc/FAQ/stamp-vti b/doc/FAQ/stamp-vti deleted file mode 100644 index e9b27c6743..0000000000 --- a/doc/FAQ/stamp-vti +++ /dev/null @@ -1,4 +0,0 @@ -@set UPDATED 5 March 2004 -@set UPDATED-MONTH March 2004 -@set EDITION 4.6.99.3 -@set VERSION 4.6.99.3 diff --git a/doc/FAQ/tools.t b/doc/FAQ/tools.t deleted file mode 100644 index 4af175bcc9..0000000000 --- a/doc/FAQ/tools.t +++ /dev/null @@ -1,71 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-2002. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter General Development Tool Hints - -The questions in this category are related to the GNU development tools -in a non-language specific way. - -@section What is GNU? - -Take a look at @uref{http://www.gnu.org,http://www.gnu.org} for information on the GNU Project. - -@section How do I generate a patch? - -The RTEMS patches to the development tools are generated using a -command like this - -@example -diff -N -P -r -c TOOL-original-image TOOL-with-changes >PATCHFILE -@end example - -where the options are: - -@itemize @bullet - -@item -N and -P take care of adding and removing files (be careful not to -include junk files like file.mybackup) - -@item -r tells diff to recurse through subdirectories - -@item -c is a context diff (easy to read for humans) - -@end itemize - -Please look at the generated PATCHFILE and make sure it does not -contain anything you did not intend to send to the maintainers. -It is easy to accidentally leave a backup file in the modified -source tree or have a spurious change that should not be -in the PATCHFILE. - -If you end up with the entire contents of a file in the patch -and can't figure out why, you may have different CR/LF scheme -in the two source files. The GNU open-source packages usually have -UNIX style CR/LF. If you edit on a Windows platform, the line -terminators may have been transformed by the editor into Windows -style. - -@section How do I apply a patch? - -Patches generated with the @code{diff} program are fed into the -@code{patch} program as follows: - -@example -patch -p1 <PATCHFILE -@end example - -where the options are: - -@itemize @bullet - -@item -pNUM tells @code{patch} to strip off NUM slashes from the -pathname. - -@end itemize - -If @code{patch} prompts for a file to patch, you may need to adjust NUM. diff --git a/doc/FAQ/version.texi b/doc/FAQ/version.texi deleted file mode 100644 index e9b27c6743..0000000000 --- a/doc/FAQ/version.texi +++ /dev/null @@ -1,4 +0,0 @@ -@set UPDATED 5 March 2004 -@set UPDATED-MONTH March 2004 -@set EDITION 4.6.99.3 -@set VERSION 4.6.99.3 diff --git a/doc/Makefile.am b/doc/Makefile.am index 412a1e976a..64b12c59f2 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -7,7 +7,7 @@ ACLOCAL_AMFLAGS = -I ../aclocal # NOTE: The order of the directories is essential. # + tools, common and images are shared across many documents -SUBDIRS = tools FAQ started user bsp_howto porting develenv posix_users \ +SUBDIRS = tools started user bsp_howto porting develenv posix_users \ posix1003.1 filesystem itron3.0 networking ada_user started_ada \ rtems_gdb rgdb_specs new_chapters relnotes cpu_supplement gnu_docs @@ -17,9 +17,8 @@ endif EXTRA_DIST = HELP.html rtems_header.html.in rtems_footer.html.in -EXTRA_DIST += common/cpright.texi common/setup.texi common/timemac.texi \ - common/timetbl.t common/treedef.tex common/wksheets.t common/timing.t \ - common/rtems.texi.in +EXTRA_DIST += common/cpright.texi common/setup.texi \ + common/treedef.tex common/rtems.texi.in html_imagesdir = $(htmldir)/images diff --git a/doc/common/timemac.texi b/doc/common/timemac.texi deleted file mode 100644 index 7c327a6075..0000000000 --- a/doc/common/timemac.texi +++ /dev/null @@ -1,36 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-2002. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c -@c -@c Macros to help with the tables in this file -@c - -@tex -\global\advance \smallskipamount by -4pt - -\global\def\rtemstimetable{ -\vrule\strut##& -\hbox to 3.0in{\enskip##\hfil}& -\hbox to 0.75in{\enskip##\hfil}& -\vrule##\cr -\noalign{\hrule} -} - -\global\def\rtemsendtimetable{} -\global\def\rtemsonecase#1#2{ -& \bf #1\hfil& #2 & \cr\noalign{\hrule} -} - -\global\def\rtemsdirective#1{ -& \bf #1 \hfil& & \cr\noalign{\hrule} -} - -\global\def\rtemscase#1#2{ -& \hskip 0.3in #1\hfil& #2 & \cr\noalign{\hrule} -} - -@end tex diff --git a/doc/common/timetbl.t b/doc/common/timetbl.t deleted file mode 100644 index 32df2a898c..0000000000 --- a/doc/common/timetbl.t +++ /dev/null @@ -1,1330 +0,0 @@ -@c ****** This comment is here to remind you not to edit the timetbl.t -@c ****** in any directory but common. -@c -@c Time Table Template -@c -@c COPYRIGHT (c) 1988-2002. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@ifset use-tex -@sp 1 -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{No Floating Point Contexts}{RTEMS_NO_FP_CONTEXTS} -\rtemsdirective{Floating Point Contexts} -\rtemscase{restore first FP task}{RTEMS_RESTORE_1ST_FP_TASK} -\rtemscase{save initialized, restore initialized}{RTEMS_SAVE_INIT_RESTORE_INIT} -\rtemscase{save idle, restore initialized}{RTEMS_SAVE_IDLE_RESTORE_INIT} -\rtemscase{save idle, restore idle}{RTEMS_SAVE_IDLE_RESTORE_IDLE} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet -@item No Floating Point Contexts -@itemize - -@item only case: RTEMS_NO_FP_CONTEXTS -@end itemize -@item Floating Point Contexts -@itemize - -@item restore first FP task: RTEMS_RESTORE_1ST_FP_TASK -@item save initialized, restore initialized: RTEMS_SAVE_INIT_RESTORE_INIT -@item save idle, restore initialized: RTEMS_SAVE_IDLE_RESTORE_INIT -@item save idle, restore idle: RTEMS_SAVE_IDLE_RESTORE_INIT -@end itemize -@end itemize -@end ifinfo -@end ifset - -@ifset use-html -@html -<CENTER> - <TABLE COLS=2 WIDTH="80%" BORDER=2> -<TR><TD ALIGN=left><STRONG>No Floating Point Contexts</STRONG></TD> - <TD ALIGN=center>RTEMS_NO_FP_CONTEXTS</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>Floating Point Contexts</TR> - <TR><TD ALIGN=left><dd>restore first FP task</TD> - <TD ALIGN=center>RTEMS_RESTORE_1ST_FP_TASK</TD> - <TR><TD ALIGN=left><dd>save initialized, restore initialized</TD> - <TD ALIGN=center>RTEMS_SAVE_INIT_RESTORE_INIT</TD> - <TR><TD ALIGN=left><dd>save idle, restore initialized</TD> - <TD ALIGN=center>RTEMS_SAVE_IDLE_RESTORE_INIT</TD> - <TR><TD ALIGN=left><dd>save idle, restore idle</TD> - <TD ALIGN=center>RTEMS_SAVE_IDLE_RESTORE_IDLE</TD> - </TABLE> -</CENTER> -@end html -@end ifset - -@section Directive Times - -This sections is divided into a number of -subsections, each of which contains a table listing the -execution times of that manager's directives. - -@page -@section Task Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{TASK\_CREATE}{RTEMS_TASK_CREATE_ONLY} -\rtemsonecase{TASK\_IDENT}{RTEMS_TASK_IDENT_ONLY} -\rtemsonecase{TASK\_START}{RTEMS_TASK_START_ONLY} -\rtemsdirective{TASK\_RESTART} -\rtemscase{calling task}{RTEMS_TASK_RESTART_CALLING_TASK} -\rtemscase{suspended task -- returns to caller} - {RTEMS_TASK_RESTART_SUSPENDED_RETURNS_TO_CALLER} -\rtemscase{blocked task -- returns to caller} - {RTEMS_TASK_RESTART_BLOCKED_RETURNS_TO_CALLER} -\rtemscase{ready task -- returns to caller} - {RTEMS_TASK_RESTART_READY_RETURNS_TO_CALLER} -\rtemscase{suspended task -- preempts caller} - {RTEMS_TASK_RESTART_SUSPENDED_PREEMPTS_CALLER} -\rtemscase{blocked task -- preempts caller} - {RTEMS_TASK_RESTART_BLOCKED_PREEMPTS_CALLER} -\rtemscase{ready task -- preempts caller} - {RTEMS_TASK_RESTART_READY_PREEMPTS_CALLER} -\rtemsdirective{TASK\_DELETE} -\rtemscase{calling task}{RTEMS_TASK_DELETE_CALLING_TASK} -\rtemscase{suspended task}{RTEMS_TASK_DELETE_SUSPENDED_TASK} -\rtemscase{blocked task}{RTEMS_TASK_DELETE_BLOCKED_TASK} -\rtemscase{ready task}{RTEMS_TASK_DELETE_READY_TASK} -\rtemsdirective{TASK\_SUSPEND} -\rtemscase{calling task}{RTEMS_TASK_SUSPEND_CALLING_TASK} -\rtemscase{returns to caller}{RTEMS_TASK_SUSPEND_RETURNS_TO_CALLER} -\rtemsdirective{TASK\_RESUME} -\rtemscase{task readied -- returns to caller} - {RTEMS_TASK_RESUME_TASK_READIED_RETURNS_TO_CALLER} -\rtemscase{task readied -- preempts caller} - {RTEMS_TASK_RESUME_TASK_READIED_PREEMPTS_CALLER} -\rtemsdirective{TASK\_SET\_PRIORITY} -\rtemscase{obtain current priority} - {RTEMS_TASK_SET_PRIORITY_OBTAIN_CURRENT_PRIORITY} -\rtemscase{returns to caller}{RTEMS_TASK_SET_PRIORITY_RETURNS_TO_CALLER} -\rtemscase{preempts caller}{RTEMS_TASK_SET_PRIORITY_PREEMPTS_CALLER} -\rtemsdirective{TASK\_MODE} -\rtemscase{obtain current mode}{RTEMS_TASK_MODE_OBTAIN_CURRENT_MODE} -\rtemscase{no reschedule}{RTEMS_TASK_MODE_NO_RESCHEDULE} -\rtemscase{reschedule -- returns to caller} - {RTEMS_TASK_MODE_RESCHEDULE_RETURNS_TO_CALLER} -\rtemscase{reschedule -- preempts caller} - {RTEMS_TASK_MODE_RESCHEDULE_PREEMPTS_CALLER} -\rtemsonecase{TASK\_GET\_NOTE}{RTEMS_TASK_GET_NOTE_ONLY} -\rtemsonecase{TASK\_SET\_NOTE}{RTEMS_TASK_SET_NOTE_ONLY} -\rtemsdirective{TASK\_WAKE\_AFTER} -\rtemscase{yield -- returns to caller} - {RTEMS_TASK_WAKE_AFTER_YIELD_RETURNS_TO_CALLER} -\rtemscase{yield -- preempts caller} - {RTEMS_TASK_WAKE_AFTER_YIELD_PREEMPTS_CALLER} -\rtemsonecase{TASK\_WAKE\_WHEN}{RTEMS_TASK_WAKE_WHEN_ONLY} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item TASK_CREATE -@itemize - -@item only case: RTEMS_TASK_CREATE_ONLY -@end itemize - -@item TASK_IDENT -@itemize - -@item only case: RTEMS_TASK_IDENT_ONLY -@end itemize - -@item TASK_START -@itemize - -@item only case: RTEMS_TASK_START_ONLY -@end itemize - -@item TASK_RESTART -@itemize - -@item calling task: RTEMS_TASK_RESTART_CALLING_TASK -@item suspended task -- returns to caller: RTEMS_TASK_RESTART_SUSPENDED_RETURNS_TO_CALLER -@item blocked task -- returns to caller: RTEMS_TASK_RESTART_BLOCKED_RETURNS_TO_CALLER -@item ready task -- returns to caller: RTEMS_TASK_RESTART_READY_RETURNS_TO_CALLER -@item suspended task -- preempts caller: RTEMS_TASK_RESTART_SUSPENDED_PREEMPTS_CALLER -@item blocked task -- preempts caller: RTEMS_TASK_RESTART_BLOCKED_PREEMPTS_CALLER -@item ready task -- preempts caller: RTEMS_TASK_RESTART_READY_PREEMPTS_CALLER -@end itemize - -@item TASK_DELETE -@itemize - -@item calling task: RTEMS_TASK_DELETE_CALLING_TASK -@item suspended task: RTEMS_TASK_DELETE_SUSPENDED_TASK -@item blocked task: RTEMS_TASK_DELETE_BLOCKED_TASK -@item ready task: RTEMS_TASK_DELETE_READY_TASK -@end itemize - -@item TASK_SUSPEND -@itemize - -@item calling task: RTEMS_TASK_SUSPEND_CALLING_TASK -@item returns to caller: RTEMS_TASK_SUSPEND_RETURNS_TO_CALLER -@end itemize - -@item TASK_RESUME -@itemize - -@item task readied -- returns to caller: RTEMS_TASK_RESUME_TASK_READIED_RETURNS_TO_CALLER -@item task readied -- preempts caller: RTEMS_TASK_RESUME_TASK_READIED_PREEMPTS_CALLER -@end itemize - -@item TASK_SET_PRIORITY -@itemize - -@item obtain current priority: RTEMS_TASK_SET_PRIORITY_OBTAIN_CURRENT_PRIORITY -@item returns to caller: RTEMS_TASK_SET_PRIORITY_RETURNS_TO_CALLER -@item preempts caller: RTEMS_TASK_SET_PRIORITY_PREEMPTS_CALLER -@end itemize - -@item TASK_MODE -@itemize - -@item obtain current mode: RTEMS_TASK_MODE_OBTAIN_CURRENT_MODE -@item no reschedule: RTEMS_TASK_MODE_NO_RESCHEDULE -@item reschedule -- returns to caller: RTEMS_TASK_MODE_RESCHEDULE_RETURNS_TO_CALLER -@item reschedule -- preempts caller: RTEMS_TASK_MODE_RESCHEDULE_PREEMPTS_CALLER -@end itemize - -@item TASK_GET_NOTE -@itemize - -@item only case: RTEMS_TASK_GET_NOTE_ONLY -@end itemize - -@item TASK_SET_NOTE -@itemize - -@item only case: RTEMS_TASK_SET_NOTE_ONLY -@end itemize - -@item TASK_WAKE_AFTER -@itemize - -@item yield -- returns to caller: RTEMS_TASK_WAKE_AFTER_YIELD_RETURNS_TO_CALLER -@item yield -- preempts caller: RTEMS_TASK_WAKE_AFTER_YIELD_PREEMPTS_CALLER -@end itemize - -@item TASK_WAKE_WHEN -@itemize - -@item only case: RTEMS_TASK_WAKE_WHEN_ONLY -@end itemize - -@end itemize -@end ifinfo -@end ifset - -@ifset use-html -@html -<CENTER> - <TABLE COLS=2 WIDTH="80%" BORDER=2> -<TR><TD ALIGN=left><STRONG>TASK_CREATE</STRONG></TD> - <TD ALIGN=center>RTEMS_TASK_CREATE_ONLY</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_IDENT</STRONG></TD> - <TD ALIGN=center>RTEMS_TASK_IDENT_ONLY</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_START</STRONG></TD> - <TD ALIGN=center>RTEMS_TASK_START_ONLY</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TASK_RESTART</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>calling task</TD> - <TD ALIGN=center>RTEMS_TASK_RESTART_CALLING_TASK</TD></TR> - <TR><TD ALIGN=left><dd>suspended task -- returns to caller</TD> - <TD ALIGN=center>RTEMS_TASK_RESTART_SUSPENDED_RETURNS_TO_CALLER</TD></TR> - <TR><TD ALIGN=left><dd>blocked task -- returns to caller</TD> - <TD ALIGN=center>RTEMS_TASK_RESTART_BLOCKED_RETURNS_TO_CALLER</TD></TR> - <TR><TD ALIGN=left><dd>ready task -- returns to caller</TD> - <TD ALIGN=center>RTEMS_TASK_RESTART_READY_RETURNS_TO_CALLER</TD></TR> - <TR><TD ALIGN=left><dd>suspended task -- preempts caller</TD> - <TD ALIGN=center>RTEMS_TASK_RESTART_SUSPENDED_PREEMPTS_CALLER</TD></TR> - <TR><TD ALIGN=left><dd>blocked task -- preempts caller</TD> - <TD ALIGN=center>RTEMS_TASK_RESTART_BLOCKED_PREEMPTS_CALLER</TD></TR> - <TR><TD ALIGN=left><dd>ready task -- preempts caller</TD> - <TD ALIGN=center>RTEMS_TASK_RESTART_READY_PREEMPTS_CALLER</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TASK_DELETE</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>calling task</TD> - <TD ALIGN=center>RTEMS_TASK_DELETE_CALLING_TASK</TD></TR> - <TR><TD ALIGN=left><dd>suspended task</TD> - <TD ALIGN=center>RTEMS_TASK_DELETE_SUSPENDED_TASK</TD></TR> - <TR><TD ALIGN=left><dd>blocked task</TD> - <TD ALIGN=center>RTEMS_TASK_DELETE_BLOCKED_TASK</TD></TR> - <TR><TD ALIGN=left><dd>ready task</TD> - <TD ALIGN=center>RTEMS_TASK_DELETE_READY_TASK</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TASK_SUSPEND</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>calling task</TD> - <TD ALIGN=center>RTEMS_TASK_SUSPEND_CALLING_TASK</TD></TR> - <TR><TD ALIGN=left><dd>returns to caller</TD> - <TD ALIGN=center>RTEMS_TASK_SUSPEND_RETURNS_TO_CALLER</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TASK_RESUME</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>RTEMS_TASK_RESUME_TASK_READIED_RETURNS_TO_CALLER</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>RTEMS_TASK_RESUME_TASK_READIED_PREEMPTS_CALLER</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TASK_SET_PRIORITY</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>obtain current priority</TD> - <TD ALIGN=center>RTEMS_TASK_SET_PRIORITY_OBTAIN_CURRENT_PRIORITY</TD></TR> - <TR><TD ALIGN=left><dd>returns to caller</TD> - <TD ALIGN=center>RTEMS_TASK_SET_PRIORITY_RETURNS_TO_CALLER</TD></TR> - <TR><TD ALIGN=left><dd>preempts caller</TD> - <TD ALIGN=center>RTEMS_TASK_SET_PRIORITY_PREEMPTS_CALLER</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TASK_MODE</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>obtain current mode</TD> - <TD ALIGN=center>RTEMS_TASK_MODE_OBTAIN_CURRENT_MODE</TD></TR> - <TR><TD ALIGN=left><dd>no reschedule</TD> - <TD ALIGN=center>RTEMS_TASK_MODE_NO_RESCHEDULE</TD></TR> - <TR><TD ALIGN=left><dd>reschedule -- returns to caller</TD> - <TD ALIGN=center>RTEMS_TASK_MODE_RESCHEDULE_RETURNS_TO_CALLER</TD></TR> - <TR><TD ALIGN=left><dd>reschedule -- preempts caller</TD> - <TD ALIGN=center>RTEMS_TASK_MODE_RESCHEDULE_PREEMPTS_CALLER</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_GET_NOTE</STRONG></TD> - <TD ALIGN=center>RTEMS_TASK_GET_NOTE_ONLY</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_SET_NOTE</STRONG></TD> - <TD ALIGN=center>RTEMS_TASK_SET_NOTE_ONLY</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TASK_WAKE_AFTER</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>yield -- returns to caller</TD> - <TD ALIGN=center>RTEMS_TASK_WAKE_AFTER_YIELD_RETURNS_TO_CALLER</TD></TR> - <TR><TD ALIGN=left><dd>yield -- preempts caller</TD> - <TD ALIGN=center>RTEMS_TASK_WAKE_AFTER_YIELD_PREEMPTS_CALLER</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_WAKE_WHEN</STRONG></TD> - <TD ALIGN=center>RTEMS_TASK_WAKE_WHEN_ONLY</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@page -@section Interrupt Manager - -It should be noted that the interrupt entry times -include vectoring the interrupt handler. - -@ifset use-tex -@sp 1 -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsdirective{Interrupt Entry Overhead} -\rtemscase{returns to nested interrupt}{RTEMS_INTR_ENTRY_RETURNS_TO_NESTED} -\rtemscase{returns to interrupted task} - {RTEMS_INTR_ENTRY_RETURNS_TO_INTERRUPTED_TASK} -\rtemscase{returns to preempting task} - {RTEMS_INTR_ENTRY_RETURNS_TO_PREEMPTING_TASK} -\rtemsdirective{Interrupt Exit Overhead} -\rtemscase{returns to nested interrupt}{RTEMS_INTR_EXIT_RETURNS_TO_NESTED} -\rtemscase{returns to interrupted task} - {RTEMS_INTR_EXIT_RETURNS_TO_INTERRUPTED_TASK} -\rtemscase{returns to preempting task} - {RTEMS_INTR_EXIT_RETURNS_TO_PREEMPTING_TASK} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item Interrupt Entry Overhead -@itemize - -@item returns to nested interrupt: RTEMS_INTR_ENTRY_RETURNS_TO_NESTED -@item returns to interrupted task: RTEMS_INTR_ENTRY_RETURNS_TO_INTERRUPTED_TASK -@item returns to preempting task: RTEMS_INTR_ENTRY_RETURNS_TO_PREEMPTING_TASK -@end itemize - -@item Interrupt Exit Overhead -@itemize - -@item returns to nested interrupt: RTEMS_INTR_EXIT_RETURNS_TO_NESTED -@item returns to interrupted task: RTEMS_INTR_EXIT_RETURNS_TO_INTERRUPTED_TASK -@item returns to preempting task: RTEMS_INTR_EXIT_RETURNS_TO_PREEMPTING_TASK -@end itemize - -@end itemize -@end ifinfo -@end ifset - -@ifset use-html -@html -<CENTER> - <TABLE COLS=2 WIDTH="80%" BORDER=2> -<TR><TD ALIGN=left COLSPAN=2><STRONG>Interrupt Entry Overhead</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>returns to nested interrupt</TD> - <TD ALIGN=center>RTEMS_INTR_ENTRY_RETURNS_TO_NESTED</TD></TR> - <TR><TD ALIGN=left><dd>returns to interrupted task</TD> - <TD ALIGN=center>RTEMS_INTR_ENTRY_RETURNS_TO_INTERRUPTED_TASK</TD></TR> - <TR><TD ALIGN=left><dd>returns to preempting task</TD> - <TD ALIGN=center>RTEMS_INTR_ENTRY_RETURNS_TO_PREEMPTING_TASK</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>Interrupt Exit Overhead</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>returns to nested interrupt</TD> - <TD ALIGN=center>RTEMS_INTR_EXIT_RETURNS_TO_NESTED</TD></TR> - <TR><TD ALIGN=left><dd>returns to interrupted task</TD> - <TD ALIGN=center>RTEMS_INTR_EXIT_RETURNS_TO_INTERRUPTED_TASK</TD></TR> - <TR><TD ALIGN=left><dd>returns to preempting task</TD> - <TD ALIGN=center>RTEMS_INTR_EXIT_RETURNS_TO_PREEMPTING_TASK</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - - -@section Clock Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{CLOCK\_SET}{RTEMS_CLOCK_SET_ONLY} -\rtemsonecase{CLOCK\_GET}{RTEMS_CLOCK_GET_ONLY} -\rtemsonecase{CLOCK\_TICK}{RTEMS_CLOCK_TICK_ONLY} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item CLOCK_SET -@itemize - -@item only case: RTEMS_CLOCK_SET_ONLY -@end itemize - -@item CLOCK_GET -@itemize - -@item only case: RTEMS_CLOCK_GET_ONLY -@end itemize - -@item CLOCK_TICK -@itemize - -@item only case: RTEMS_CLOCK_TICK_ONLY -@end itemize - -@end itemize -@end ifinfo -@end ifset - -@ifset use-html -@html -<CENTER> - <TABLE COLS=2 WIDTH="80%" BORDER=2> -<TR><TD ALIGN=left><STRONG>CLOCK_SET</STRONG></TD> - <TD ALIGN=center>RTEMS_CLOCK_SET_ONLY</TD></TR> -<TR><TD ALIGN=left><STRONG>CLOCK_GET</STRONG></TD> - <TD ALIGN=center>RTEMS_CLOCK_GET_ONLY</TD></TR> -<TR><TD ALIGN=left><STRONG>CLOCK_TICK</STRONG></TD> - <TD ALIGN=center>RTEMS_CLOCK_TICK_ONLY</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@section Timer Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{TIMER\_CREATE}{RTEMS_TIMER_CREATE_ONLY} -\rtemsonecase{TIMER\_IDENT}{RTEMS_TIMER_IDENT_ONLY} -\rtemsdirective{TIMER\_DELETE} -\rtemscase{inactive}{RTEMS_TIMER_DELETE_INACTIVE} -\rtemscase{active}{RTEMS_TIMER_DELETE_ACTIVE} -\rtemsdirective{TIMER\_FIRE\_AFTER} -\rtemscase{inactive}{RTEMS_TIMER_FIRE_AFTER_INACTIVE} -\rtemscase{active}{RTEMS_TIMER_FIRE_AFTER_ACTIVE} -\rtemsdirective{TIMER\_FIRE\_WHEN} -\rtemscase{inactive}{RTEMS_TIMER_FIRE_WHEN_INACTIVE} -\rtemscase{active}{RTEMS_TIMER_FIRE_WHEN_ACTIVE} -\rtemsdirective{TIMER\_RESET} -\rtemscase{inactive}{RTEMS_TIMER_RESET_INACTIVE} -\rtemscase{active}{RTEMS_TIMER_RESET_ACTIVE} -\rtemsdirective{TIMER\_CANCEL} -\rtemscase{inactive}{RTEMS_TIMER_CANCEL_INACTIVE} -\rtemscase{active}{RTEMS_TIMER_CANCEL_ACTIVE} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item TIMER_CREATE -@itemize - -@item only case: RTEMS_TIMER_CREATE_ONLY -@end itemize - -@item TIMER_IDENT -@itemize - -@item only case: RTEMS_TIMER_IDENT_ONLY -@end itemize - -@item TIMER_DELETE -@itemize - -@item inactive: RTEMS_TIMER_DELETE_INACTIVE -@item active: RTEMS_TIMER_DELETE_ACTIVE -@end itemize - -@item TIMER_FIRE_AFTER -@itemize - -@item inactive: RTEMS_TIMER_FIRE_AFTER_INACTIVE -@item active: RTEMS_TIMER_FIRE_AFTER_ACTIVE -@end itemize - -@item TIMER_FIRE_WHEN -@itemize - -@item inactive: TIMER_FIRE_WHEN_INACTIVE -@item active: TIMER_FIRE_WHEN_ACTIVE -@end itemize - -@item TIMER_RESET -@itemize - -@item inactive: TIMER_RESET_INACTIVE -@item active: TIMER_RESET_ACTIVE -@end itemize - -@item TIMER_CANCEL -@itemize - -@item inactive: TIMER_CANCEL_INACTIVE -@item active: TIMER_CANCEL_ACTIVE -@end itemize - -@end itemize -@end ifinfo -@end ifset - -@ifset use-html -@html -<CENTER> - <TABLE COLS=2 WIDTH="80%" BORDER=2> -<TR><TD ALIGN=left><STRONG>TIMER_CREATE</STRONG></TD> - <TD ALIGN=center>RTEMS_TIMER_CREATE_ONLY</TD></TR> -<TR><TD ALIGN=left><STRONG>TIMER_IDENT</STRONG></TD> - <TD ALIGN=center>RTEMS_TIMER_IDENT_ONLY</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_DELETE</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>RTEMS_TIMER_DELETE_INACTIVE</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>RTEMS_TIMER_DELETE_ACTIVE</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_FIRE_AFTER</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>RTEMS_TIMER_FIRE_AFTER_INACTIVE</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>RTEMS_TIMER_FIRE_AFTER_ACTIVE</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_FIRE_WHEN</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>RTEMS_TIMER_FIRE_WHEN_INACTIVE</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>RTEMS_TIMER_FIRE_WHEN_ACTIVE</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_RESET</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>RTEMS_TIMER_RESET_INACTIVE</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>RTEMS_TIMER_RESET_ACTIVE</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_CANCEL</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>RTEMS_TIMER_CANCEL_INACTIVE</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>RTEMS_TIMER_CANCEL_ACTIVE</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@page -@section Semaphore Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{SEMAPHORE\_CREATE}{RTEMS_SEMAPHORE_CREATE_ONLY} -\rtemsonecase{SEMAPHORE\_IDENT}{RTEMS_SEMAPHORE_IDENT_ONLY} -\rtemsonecase{SEMAPHORE\_DELETE}{RTEMS_SEMAPHORE_DELETE_ONLY} -\rtemsdirective{SEMAPHORE\_OBTAIN} -\rtemscase{available}{RTEMS_SEMAPHORE_OBTAIN_AVAILABLE} -\rtemscase{not available -- NO\_WAIT} - {RTEMS_SEMAPHORE_OBTAIN_NOT_AVAILABLE_NO_WAIT} -\rtemscase{not available -- caller blocks} - {RTEMS_SEMAPHORE_OBTAIN_NOT_AVAILABLE_CALLER_BLOCKS} -\rtemsdirective{SEMAPHORE\_RELEASE} -\rtemscase{no waiting tasks}{RTEMS_SEMAPHORE_RELEASE_NO_WAITING_TASKS} -\rtemscase{task readied -- returns to caller} - {RTEMS_SEMAPHORE_RELEASE_TASK_READIED_RETURNS_TO_CALLER} -\rtemscase{task readied -- preempts caller} - {RTEMS_SEMAPHORE_RELEASE_TASK_READIED_PREEMPTS_CALLER} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item SEMAPHORE_CREATE -@itemize - -@item only case: RTEMS_SEMAPHORE_CREATE_ONLY -@end itemize - -@item SEMAPHORE_IDENT -@itemize - -@item only case: RTEMS_SEMAPHORE_IDENT_ONLY -@end itemize - -@item SEMAPHORE_DELETE -@itemize - -@item only case: RTEMS_SEMAPHORE_DELETE_ONLY -@end itemize - -@item SEMAPHORE_OBTAIN -@itemize - -@item available: RTEMS_SEMAPHORE_OBTAIN_AVAILABLE -@item not available -- NO_WAIT: RTEMS_SEMAPHORE_OBTAIN_NOT_AVAILABLE_NO_WAIT -@item not available -- caller blocks: RTEMS_SEMAPHORE_OBTAIN_NOT_AVAILABLE_CALLER_BLOCKS -@end itemize - -@item SEMAPHORE_RELEASE -@itemize - -@item no waiting tasks: RTEMS_SEMAPHORE_RELEASE_NO_WAITING_TASKS -@item task readied -- returns to caller: RTEMS_SEMAPHORE_RELEASE_TASK_READIED_RETURNS_TO_CALLER -@item task readied -- preempts caller: RTEMS_SEMAPHORE_RELEASE_TASK_READIED_PREEMPTS_CALLER -@end itemize - -@end itemize -@end ifinfo -@end ifset - -@ifset use-html -@html -<CENTER> - <TABLE COLS=2 WIDTH="80%" BORDER=2> -<TR><TD ALIGN=left><STRONG>SEMAPHORE_CREATE</STRONG></TD> - <TD ALIGN=center>RTEMS_SEMAPHORE_CREATE_ONLY</TD></TR> -<TR><TD ALIGN=left><STRONG>SEMAPHORE_IDENT</STRONG></TD> - <TD ALIGN=center>RTEMS_SEMAPHORE_IDENT_ONLY</TD></TR> -<TR><TD ALIGN=left><STRONG>SEMAPHORE_DELETE</STRONG></TD> - <TD ALIGN=center>RTEMS_SEMAPHORE_DELETE_ONLY</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>SEMAPHORE_OBTAIN</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>available</TD> - <TD ALIGN=center>RTEMS_SEMAPHORE_OBTAIN_AVAILABLE</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center>RTEMS_SEMAPHORE_OBTAIN_NOT_AVAILABLE_NO_WAIT</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center>RTEMS_SEMAPHORE_OBTAIN_NOT_AVAILABLE_CALLER_BLOCKS</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>SEMAPHORE_RELEASE</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>no waiting tasks</TD> - <TD ALIGN=center>RTEMS_SEMAPHORE_RELEASE_NO_WAITING_TASKS</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>RTEMS_SEMAPHORE_RELEASE_TASK_READIED_RETURNS_TO_CALLER</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>RTEMS_SEMAPHORE_RELEASE_TASK_READIED_PREEMPTS_CALLER</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@section Message Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{MESSAGE\_QUEUE\_CREATE}{RTEMS_MESSAGE_QUEUE_CREATE_ONLY} -\rtemsonecase{MESSAGE\_QUEUE\_IDENT}{RTEMS_MESSAGE_QUEUE_IDENT_ONLY} -\rtemsonecase{MESSAGE\_QUEUE\_DELETE}{RTEMS_MESSAGE_QUEUE_DELETE_ONLY} -\rtemsdirective{MESSAGE\_QUEUE\_SEND} -\rtemscase{no waiting tasks} - {RTEMS_MESSAGE_QUEUE_SEND_NO_WAITING_TASKS} -\rtemscase{task readied -- returns to caller} - {RTEMS_MESSAGE_QUEUE_SEND_TASK_READIED_RETURNS_TO_CALLER} -\rtemscase{task readied -- preempts caller} - {RTEMS_MESSAGE_QUEUE_SEND_TASK_READIED_PREEMPTS_CALLER} -\rtemsdirective{MESSAGE\_QUEUE\_URGENT} -\rtemscase{no waiting tasks}{RTEMS_MESSAGE_QUEUE_URGENT_NO_WAITING_TASKS} -\rtemscase{task readied -- returns to caller} - {RTEMS_MESSAGE_QUEUE_URGENT_TASK_READIED_RETURNS_TO_CALLER} -\rtemscase{task readied -- preempts caller} - {RTEMS_MESSAGE_QUEUE_URGENT_TASK_READIED_PREEMPTS_CALLER} -\rtemsdirective{MESSAGE\_QUEUE\_BROADCAST} -\rtemscase{no waiting tasks}{RTEMS_MESSAGE_QUEUE_BROADCAST_NO_WAITING_TASKS} -\rtemscase{task readied -- returns to caller} - {RTEMS_MESSAGE_QUEUE_BROADCAST_TASK_READIED_RETURNS_TO_CALLER} -\rtemscase{task readied -- preempts caller} - {RTEMS_MESSAGE_QUEUE_BROADCAST_TASK_READIED_PREEMPTS_CALLER} -\rtemsdirective{MESSAGE\_QUEUE\_RECEIVE} -\rtemscase{available}{RTEMS_MESSAGE_QUEUE_RECEIVE_AVAILABLE} -\rtemscase{not available -- NO\_WAIT} - {RTEMS_MESSAGE_QUEUE_RECEIVE_NOT_AVAILABLE_NO_WAIT} -\rtemscase{not available -- caller blocks} - {RTEMS_MESSAGE_QUEUE_RECEIVE_NOT_AVAILABLE_CALLER_BLOCKS} -\rtemsdirective{MESSAGE\_QUEUE\_FLUSH} -\rtemscase{no messages flushed}{RTEMS_MESSAGE_QUEUE_FLUSH_NO_MESSAGES_FLUSHED} -\rtemscase{messages flushed}{RTEMS_MESSAGE_QUEUE_FLUSH_MESSAGES_FLUSHED} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item MESSAGE_QUEUE_CREATE -@itemize - -@item only case: RTEMS_MESSAGE_QUEUE_CREATE_ONLY -@end itemize - -@item MESSAGE_QUEUE_IDENT -@itemize - -@item only case: RTEMS_MESSAGE_QUEUE_IDENT_ONLY -@end itemize - -@item MESSAGE_QUEUE_DELETE -@itemize - -@item only case: RTEMS_MESSAGE_QUEUE_DELETE_ONLY -@end itemize - -@item MESSAGE_QUEUE_SEND -@itemize - -@item no waiting tasks: RTEMS_MESSAGE_QUEUE_SEND_NO_WAITING_TASKS -@item task readied -- returns to caller: RTEMS_MESSAGE_QUEUE_SEND_TASK_READIED_RETURNS_TO_CALLER -@item task readied -- preempts caller: RTEMS_MESSAGE_QUEUE_SEND_TASK_READIED_PREEMPTS_CALLER -@end itemize - -@item MESSAGE_QUEUE_URGENT -@itemize - -@item no waiting tasks: RTEMS_MESSAGE_QUEUE_URGENT_NO_WAITING_TASKS -@item task readied -- returns to caller: RTEMS_MESSAGE_QUEUE_URGENT_TASK_READIED_RETURNS_TO_CALLER -@item task readied -- preempts caller: RTEMS_MESSAGE_QUEUE_URGENT_TASK_READIED_PREEMPTS_CALLER -@end itemize - -@item MESSAGE_QUEUE_BROADCAST -@itemize - -@item no waiting tasks: RTEMS_MESSAGE_QUEUE_BROADCAST_NO_WAITING_TASKS -@item task readied -- returns to caller: RTEMS_MESSAGE_QUEUE_BROADCAST_TASK_READIED_RETURNS_TO_CALLER -@item task readied -- preempts caller: RTEMS_MESSAGE_QUEUE_BROADCAST_TASK_READIED_PREEMPTS_CALLER -@end itemize - -@item MESSAGE_QUEUE_RECEIVE -@itemize - -@item available: RTEMS_MESSAGE_QUEUE_RECEIVE_AVAILABLE -@item not available -- NO_WAIT: RTEMS_MESSAGE_QUEUE_RECEIVE_NOT_AVAILABLE_NO_WAIT -@item not available -- caller blocks: RTEMS_MESSAGE_QUEUE_RECEIVE_NOT_AVAILABLE_CALLER_BLOCKS -@end itemize - -@item MESSAGE_QUEUE_FLUSH -@itemize - -@item no messages flushed: RTEMS_MESSAGE_QUEUE_FLUSH_NO_MESSAGES_FLUSHED -@item messages flushed: RTEMS_MESSAGE_QUEUE_FLUSH_MESSAGES_FLUSHED -@end itemize - -@end itemize -@end ifinfo -@end ifset - -@ifset use-html -@html -<CENTER> - <TABLE COLS=2 WIDTH="80%" BORDER=2> -<TR><TD ALIGN=left><STRONG>MESSAGE_QUEUE_CREATE</STRONG></TD> - <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_CREATE_ONLY</TD></TR> -<TR><TD ALIGN=left><STRONG>MESSAGE_QUEUE_IDENT</STRONG></TD> - <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_IDENT_ONLY</TD></TR> -<TR><TD ALIGN=left><STRONG>MESSAGE_QUEUE_DELETE</STRONG></TD> - <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_DELETE_ONLY</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>MESSAGE_QUEUE_SEND</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>no waiting tasks</TD> - <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_SEND_NO_WAITING_TASKS</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_SEND_TASK_READIED_RETURNS_TO_CALLER</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_SEND_TASK_READIED_PREEMPTS_CALLER</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>MESSAGE_QUEUE_URGENT</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>no waiting tasks</TD> - <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_URGENT_NO_WAITING_TASKS</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_URGENT_TASK_READIED_RETURNS_TO_CALLER</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_URGENT_TASK_READIED_PREEMPTS_CALLER</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>MESSAGE_QUEUE_BROADCAST</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>no waiting tasks</TD> - <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_BROADCAST_NO_WAITING_TASKS</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_BROADCAST_TASK_READIED_RETURNS_TO_CALLER</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_BROADCAST_TASK_READIED_PREEMPTS_CALLER</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>MESSAGE_QUEUE_RECEIVE</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>available</TD> - <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_RECEIVE_AVAILABLE</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_RECEIVE_NOT_AVAILABLE_NO_WAIT</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_RECEIVE_NOT_AVAILABLE_CALLER_BLOCKS</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>MESSAGE_QUEUE_FLUSH</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>no messages flushed</TD> - <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_FLUSH_NO_MESSAGES_FLUSHED</TD></TR> - <TR><TD ALIGN=left><dd>messages flushed</TD> - <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_FLUSH_MESSAGES_FLUSHED</TD></TR> - - </TABLE> -</CENTER> -@end html -@end ifset - -@page -@section Event Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsdirective{EVENT\_SEND} -\rtemscase{no task readied}{RTEMS_EVENT_SEND_NO_TASK_READIED} -\rtemscase{task readied -- returns to caller} - {RTEMS_EVENT_SEND_TASK_READIED_RETURNS_TO_CALLER} -\rtemscase{task readied -- preempts caller} - {RTEMS_EVENT_SEND_TASK_READIED_PREEMPTS_CALLER} -\rtemsdirective{EVENT\_RECEIVE} -\rtemscase{obtain current events}{RTEMS_EVENT_RECEIVE_OBTAIN_CURRENT_EVENTS} -\rtemscase{available}{RTEMS_EVENT_RECEIVE_AVAILABLE} -\rtemscase{not available -- NO\_WAIT}{RTEMS_EVENT_RECEIVE_NOT_AVAILABLE_NO_WAIT} -\rtemscase{not available -- caller blocks} - {RTEMS_EVENT_RECEIVE_NOT_AVAILABLE_CALLER_BLOCKS} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item EVENT_SEND -@itemize - -@item no task readied: RTEMS_EVENT_SEND_NO_TASK_READIED -@item task readied -- returns to caller: RTEMS_EVENT_SEND_TASK_READIED_RETURNS_TO_CALLER -@item task readied -- preempts caller: RTEMS_EVENT_SEND_TASK_READIED_PREEMPTS_CALLER -@end itemize - -@item EVENT_RECEIVE -@itemize - -@item obtain current events: RTEMS_EVENT_RECEIVE_OBTAIN_CURRENT_EVENTS -@item available: RTEMS_EVENT_RECEIVE_AVAILABLE -@item not available -- NO_WAIT: RTEMS_EVENT_RECEIVE_NOT_AVAILABLE_NO_WAIT -@item not available -- caller blocks: RTEMS_EVENT_RECEIVE_NOT_AVAILABLE_CALLER_BLOCKS -@end itemize - -@end itemize -@end ifinfo -@end ifset - -@ifset use-html -@html -<CENTER> - <TABLE COLS=2 WIDTH="80%" BORDER=2> -<TR><TD ALIGN=left COLSPAN=2><STRONG>EVENT_SEND</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>no task readied</TD> - <TD ALIGN=center>RTEMS_EVENT_SEND_NO_TASK_READIED</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>RTEMS_EVENT_SEND_TASK_READIED_RETURNS_TO_CALLER</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>RTEMS_EVENT_SEND_TASK_READIED_PREEMPTS_CALLER</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>EVENT_RECEIVE</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>obtain current events</TD> - <TD ALIGN=center>RTEMS_EVENT_RECEIVE_OBTAIN_CURRENT_EVENTS</TD></TR> - <TR><TD ALIGN=left><dd>available</TD> - <TD ALIGN=center>RTEMS_EVENT_RECEIVE_AVAILABLE</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center>RTEMS_EVENT_RECEIVE_NOT_AVAILABLE_NO_WAIT</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center>RTEMS_EVENT_RECEIVE_NOT_AVAILABLE_CALLER_BLOCKS</TD></TR> - - </TABLE> -</CENTER> -@end html -@end ifset -@section Signal Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{SIGNAL\_CATCH}{RTEMS_SIGNAL_CATCH_ONLY} -\rtemsdirective{SIGNAL\_SEND} -\rtemscase{returns to caller}{RTEMS_SIGNAL_SEND_RETURNS_TO_CALLER} -\rtemscase{signal to self}{RTEMS_SIGNAL_SEND_SIGNAL_TO_SELF} -\rtemsdirective{EXIT ASR OVERHEAD} -\rtemscase{returns to calling task} - {RTEMS_SIGNAL_EXIT_ASR_OVERHEAD_RETURNS_TO_CALLING_TASK} -\rtemscase{returns to preempting task} - {RTEMS_SIGNAL_EXIT_ASR_OVERHEAD_RETURNS_TO_PREEMPTING_TASK} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet -@item SIGNAL_CATCH -@itemize - -@item only case: RTEMS_SIGNAL_CATCH_ONLY -@end itemize - -@item SIGNAL_SEND -@itemize - -@item returns to caller: RTEMS_SIGNAL_SEND_RETURNS_TO_CALLER -@item signal to self: RTEMS_SIGNAL_SEND_SIGNAL_TO_SELF -@end itemize - -@item EXIT ASR OVERHEAD -@itemize - -@item returns to calling task: RTEMS_SIGNAL_EXIT_ASR_OVERHEAD_RETURNS_TO_CALLING_TASK -@item returns to preempting task: RTEMS_SIGNAL_EXIT_ASR_OVERHEAD_RETURNS_TO_PREEMPTING_TASK -@end itemize - -@end itemize -@end ifinfo -@end ifset - -@ifset use-html -@html -<CENTER> - <TABLE COLS=2 WIDTH="80%" BORDER=2> -<TR><TD ALIGN=left><STRONG>SIGNAL_CATCH</STRONG></TD> - <TD ALIGN=center>RTEMS_SIGNAL_CATCH_ONLY</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>SIGNAL_SEND</TD></TR> - <TR><TD ALIGN=left><dd>returns to caller</TD> - <TD ALIGN=center>RTEMS_SIGNAL_SEND_RETURNS_TO_CALLER</TD></TR> - <TR><TD ALIGN=left><dd>signal to self</TD> - <TD ALIGN=center>RTEMS_SIGNAL_SEND_SIGNAL_TO_SELF</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>EXIT ASR OVERHEAD</TD></TR> - <TR><TD ALIGN=left><dd>returns to calling task</TD> - <TD ALIGN=center> - RTEMS_SIGNAL_EXIT_ASR_OVERHEAD_RETURNS_TO_CALLING_TASK</TD></TR> - <TR><TD ALIGN=left><dd>returns to preempting task</TD> - <TD ALIGN=center> - RTEMS_SIGNAL_EXIT_ASR_OVERHEAD_RETURNS_TO_PREEMPTING_TASK</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@section Partition Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{PARTITION\_CREATE}{RTEMS_PARTITION_CREATE_ONLY} -\rtemsonecase{PARTITION\_IDENT}{RTEMS_PARTITION_IDENT_ONLY} -\rtemsonecase{PARTITION\_DELETE}{RTEMS_PARTITION_DELETE_ONLY} -\rtemsdirective{PARTITION\_GET\_BUFFER} -\rtemscase{available}{RTEMS_PARTITION_GET_BUFFER_AVAILABLE} -\rtemscase{not available}{RTEMS_PARTITION_GET_BUFFER_NOT_AVAILABLE} -\rtemsonecase{PARTITION\_RETURN\_BUFFER} - {RTEMS_PARTITION_GET_BUFFER_NOT_AVAILABLE} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item PARTITION_CREATE -@itemize - -@item only case: RTEMS_PARTITION_CREATE_ONLY -@end itemize - -@item PARTITION_IDENT -@itemize - -@item only case: RTEMS_PARTITION_IDENT_ONLY -@end itemize - -@item PARTITION_DELETE -@itemize - -@item only case: RTEMS_PARTITION_DELETE_ONLY -@end itemize - -@item PARTITION_GET_BUFFER -@itemize - -@item available: RTEMS_PARTITION_GET_BUFFER_AVAILABLE -@item not available: RTEMS_PARTITION_GET_BUFFER_NOT_AVAILABLE -@end itemize - -@item PARTITION_RETURN_BUFFER -@itemize - -@item only case: RTEMS_PARTITION_RETURN_BUFFER_ONLY -@end itemize - -@end itemize -@end ifinfo -@end ifset - -@ifset use-html -@html -<CENTER> - <TABLE COLS=2 WIDTH="80%" BORDER=2> -<TR><TD ALIGN=left><STRONG>PARTITION_CREATE</STRONG></TD> - <TD ALIGN=center>RTEMS_PARTITION_CREATE_ONLY</TD></TR> -<TR><TD ALIGN=left><STRONG>PARTITION_IDENT</STRONG></TD> - <TD ALIGN=center>RTEMS_PARTITION_IDENT_ONLY</TD></TR> -<TR><TD ALIGN=left><STRONG>PARTITION_DELETE</STRONG></TD> - <TD ALIGN=center>RTEMS_PARTITION_DELETE_ONLY</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>PARTITION_GET_BUFFER</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>available</TD> - <TD ALIGN=center>RTEMS_PARTITION_GET_BUFFER_AVAILABLE</TD></TR> - <TR><TD ALIGN=left><dd>not available</TD> - <TD ALIGN=center>RTEMS_PARTITION_GET_BUFFER_NOT_AVAILABLE</TD></TR> - <TR><TD ALIGN=left><STRONG>PARTITION_RETURN_BUFFER</STRONG></TD> - <TD ALIGN=center>RTEMS_PARTITION_GET_BUFFER_NOT_AVAILABLE</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@page -@section Region Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{REGION\_CREATE}{RTEMS_REGION_CREATE_ONLY} -\rtemsonecase{REGION\_IDENT}{RTEMS_REGION_IDENT_ONLY} -\rtemsonecase{REGION\_DELETE}{RTEMS_REGION_DELETE_ONLY} -\rtemsdirective{REGION\_GET\_SEGMENT} -\rtemscase{available}{RTEMS_REGION_GET_SEGMENT_AVAILABLE} -\rtemscase{not available -- NO\_WAIT} - {RTEMS_REGION_GET_SEGMENT_NOT_AVAILABLE_NO_WAIT} -\rtemscase{not available -- caller blocks} - {RTEMS_REGION_GET_SEGMENT_NOT_AVAILABLE_CALLER_BLOCKS} -\rtemsdirective{REGION\_RETURN\_SEGMENT} -\rtemscase{no waiting tasks}{RTEMS_REGION_RETURN_SEGMENT_NO_WAITING_TASKS} -\rtemscase{task readied -- returns to caller} - {RTEMS_REGION_RETURN_SEGMENT_TASK_READIED_RETURNS_TO_CALLER} -\rtemscase{task readied -- preempts caller} - {RTEMS_REGION_RETURN_SEGMENT_TASK_READIED_PREEMPTS_CALLER} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item REGION_CREATE -@itemize - -@item only case: RTEMS_REGION_CREATE_ONLY -@end itemize - -@item REGION_IDENT -@itemize - -@item only case: RTEMS_REGION_IDENT_ONLY -@end itemize - -@item REGION_DELETE -@itemize - -@item only case: RTEMS_REGION_DELETE_ONLY -@end itemize - -@item REGION_GET_SEGMENT -@itemize - -@item available: RTEMS_REGION_GET_SEGMENT_AVAILABLE -@item not available -- NO_WAIT: RTEMS_REGION_GET_SEGMENT_NOT_AVAILABLE_NO_WAIT -@item not available -- caller blocks: RTEMS_REGION_GET_SEGMENT_NOT_AVAILABLE_CALLER_BLOCKS -@end itemize - -@item REGION_RETURN_SEGMENT -@itemize - -@item no waiting tasks: RTEMS_REGION_RETURN_SEGMENT_NO_WAITING_TASKS -@item task readied -- returns to caller: RTEMS_REGION_RETURN_SEGMENT_TASK_READIED_RETURNS_TO_CALLER -@item task readied -- preempts caller: RTEMS_REGION_RETURN_SEGMENT_TASK_READIED_PREEMPTS_CALLER -@end itemize - -@end itemize -@end ifinfo -@end ifset - -@ifset use-html -@html -<CENTER> - <TABLE COLS=2 WIDTH="80%" BORDER=2> -<TR><TD ALIGN=left><STRONG>REGION_CREATE</STRONG></TD> - <TD ALIGN=center>RTEMS_REGION_CREATE_ONLY</TD></TR> -<TR><TD ALIGN=left><STRONG>REGION_IDENT</STRONG></TD> - <TD ALIGN=center>RTEMS_REGION_IDENT_ONLY</TD></TR> -<TR><TD ALIGN=left><STRONG>REGION_DELETE</STRONG></TD> - <TD ALIGN=center>RTEMS_REGION_DELETE_ONLY</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>REGION_GET_SEGMENT</TD></TR> - <TR><TD ALIGN=left><dd>available</TD> - <TD ALIGN=center>RTEMS_REGION_GET_SEGMENT_AVAILABLE</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center> - RTEMS_REGION_GET_SEGMENT_NOT_AVAILABLE_NO_WAIT</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center> - RTEMS_REGION_GET_SEGMENT_NOT_AVAILABLE_CALLER_BLOCKS</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>REGION_RETURN_SEGMENT</TD></TR> - <TR><TD ALIGN=left><dd>no waiting tasks</TD> - <TD ALIGN=center>RTEMS_REGION_RETURN_SEGMENT_NO_WAITING_TASKS</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center> - RTEMS_REGION_RETURN_SEGMENT_TASK_READIED_RETURNS_TO_CALLER</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center> - RTEMS_REGION_RETURN_SEGMENT_TASK_READIED_PREEMPTS_CALLER</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@section Dual-Ported Memory Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{PORT\_CREATE}{RTEMS_PORT_CREATE_ONLY} -\rtemsonecase{PORT\_IDENT}{RTEMS_PORT_IDENT_ONLY} -\rtemsonecase{PORT\_DELETE}{RTEMS_PORT_DELETE_ONLY} -\rtemsonecase{PORT\_INTERNAL\_TO\_EXTERNAL} - {RTEMS_PORT_INTERNAL_TO_EXTERNAL_ONLY} -\rtemsonecase{PORT\_EXTERNAL\_TO\_INTERNAL} - {RTEMS_PORT_EXTERNAL_TO_INTERNAL_ONLY} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item PORT_CREATE -@itemize - -@item only case: RTEMS_PORT_CREATE_ONLY -@end itemize - -@item PORT_IDENT -@itemize - -@item only case: RTEMS_PORT_IDENT_ONLY -@end itemize - -@item PORT_DELETE -@itemize - -@item only case: RTEMS_PORT_DELETE_ONLY -@end itemize - -@item PORT_INTERNAL_TO_EXTERNAL -@itemize - -@item only case: RTEMS_PORT_INTERNAL_TO_EXTERNAL_ONLY -@end itemize - -@item PORT_EXTERNAL_TO_INTERNAL -@itemize - -@item only case: RTEMS_PORT_EXTERNAL_TO_INTERNAL_ONLY -@end itemize - -@end itemize -@end ifinfo -@end ifset - -@ifset use-html -@html -<CENTER> - <TABLE COLS=2 WIDTH="80%" BORDER=2> -<TR><TD ALIGN=left><STRONG>PORT_CREATE</STRONG></TD> - <TD ALIGN=center>RTEMS_PORT_CREATE_ONLY</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_IDENT</STRONG></TD> - <TD ALIGN=center>RTEMS_PORT_IDENT_ONLY</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_DELETE</STRONG></TD> - <TD ALIGN=center>RTEMS_PORT_DELETE_ONLY</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_INTERNAL_TO_EXTERNAL</STRONG></TD> - <TD ALIGN=center>RTEMS_PORT_INTERNAL_TO_EXTERNAL_ONLY</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_EXTERNAL_TO_INTERNAL</STRONG></TD> - <TD ALIGN=center>RTEMS_PORT_EXTERNAL_TO_INTERNAL_ONLY</TD></TR> - - </TABLE> -</CENTER> -@end html -@end ifset - -@section I/O Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{IO\_INITIALIZE}{RTEMS_IO_INITIALIZE_ONLY} -\rtemsonecase{IO\_OPEN}{RTEMS_IO_OPEN_ONLY} -\rtemsonecase{IO\_CLOSE}{RTEMS_IO_CLOSE_ONLY} -\rtemsonecase{IO\_READ}{RTEMS_IO_READ_ONLY} -\rtemsonecase{IO\_WRITE}{RTEMS_IO_WRITE_ONLY} -\rtemsonecase{IO\_CONTROL}{RTEMS_IO_CONTROL_ONLY} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item IO_INITIALIZE -@itemize - -@item only case: RTEMS_IO_INITIALIZE_ONLY -@end itemize - -@item IO_OPEN -@itemize - -@item only case: RTEMS_IO_OPEN_ONLY -@end itemize - -@item IO_CLOSE -@itemize - -@item only case: RTEMS_IO_CLOSE_ONLY -@end itemize - -@item IO_READ -@itemize - -@item only case: RTEMS_IO_READ_ONLY -@end itemize - -@item IO_WRITE -@itemize - -@item only case: RTEMS_IO_WRITE_ONLY -@end itemize - -@item IO_CONTROL -@itemize - -@item only case: RTEMS_IO_CONTROL_ONLY -@end itemize - -@end itemize -@end ifinfo -@end ifset - -@ifset use-html -@html -<CENTER> - <TABLE COLS=2 WIDTH="80%" BORDER=2> -<TR><TD ALIGN=left><STRONG>IO_INITIALIZE</STRONG></TD> - <TD ALIGN=center>RTEMS_IO_INITIALIZE_ONLY</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_OPEN</STRONG></TD> - <TD ALIGN=center>RTEMS_IO_OPEN_ONLY</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_CLOSE</STRONG></TD> - <TD ALIGN=center>RTEMS_IO_CLOSE_ONLY</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_READ</STRONG></TD> - <TD ALIGN=center>RTEMS_IO_READ_ONLY</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_WRITE</STRONG></TD> - <TD ALIGN=center>RTEMS_IO_WRITE_ONLY</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_CONTROL</STRONG></TD> - <TD ALIGN=center>RTEMS_IO_CONTROL_ONLY</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@section Rate Monotonic Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{RATE\_MONOTONIC\_CREATE}{RTEMS_RATE_MONOTONIC_CREATE_ONLY} -\rtemsonecase{RATE\_MONOTONIC\_IDENT}{RTEMS_RATE_MONOTONIC_IDENT_ONLY} -\rtemsonecase{RATE\_MONOTONIC\_CANCEL}{RTEMS_RATE_MONOTONIC_CANCEL_ONLY} -\rtemsdirective{RATE\_MONOTONIC\_DELETE} -\rtemscase{active}{RTEMS_RATE_MONOTONIC_DELETE_ACTIVE} -\rtemscase{inactive}{RTEMS_RATE_MONOTONIC_DELETE_INACTIVE} -\rtemsdirective{RATE\_MONOTONIC\_PERIOD} -\rtemscase{initiate period -- returns to caller} - {RTEMS_RATE_MONOTONIC_PERIOD_INITIATE_PERIOD_RETURNS_TO_CALLER} -\rtemscase{conclude period -- caller blocks} - {RTEMS_RATE_MONOTONIC_PERIOD_CONCLUDE_PERIOD_CALLER_BLOCKS} -\rtemscase{obtain status}{RTEMS_RATE_MONOTONIC_PERIOD_OBTAIN_STATUS} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item RATE_MONOTONIC_CREATE -@itemize - -@item only case: RTEMS_RATE_MONOTONIC_CREATE_ONLY -@end itemize - -@item RATE_MONOTONIC_IDENT -@itemize - -@item only case: RTEMS_RATE_MONOTONIC_IDENT_ONLY -@end itemize - -@item RATE_MONOTONIC_CANCEL -@itemize - -@item only case: RTEMS_RATE_MONOTONIC_CANCEL_ONLY -@end itemize - -@item RATE_MONOTONIC_DELETE -@itemize - -@item active: RTEMS_RATE_MONOTONIC_DELETE_ACTIVE -@item inactive: RTEMS_RATE_MONOTONIC_DELETE_INACTIVE -@end itemize - -@item RATE_MONOTONIC_PERIOD -@itemize - -@item initiate period -- returns to caller: RTEMS_RATE_MONOTONIC_PERIOD_INITIATE_PERIOD_RETURNS_TO_CALLER -@item conclude period -- caller blocks: RTEMS_RATE_MONOTONIC_PERIOD_CONCLUDE_PERIOD_CALLER_BLOCKS -@item obtain status: RTEMS_RATE_MONOTONIC_PERIOD_OBTAIN_STATUS -@end itemize - -@end itemize -@end ifinfo -@end ifset - -@ifset use-html -@html -<CENTER> - <TABLE COLS=2 WIDTH="80%" BORDER=2> -<TR><TD ALIGN=left><STRONG>RATE_MONOTONIC_CREATE</STRONG></TD> - <TD ALIGN=center>RTEMS_RATE_MONOTONIC_CREATE_ONLY</TD></TR> -<TR><TD ALIGN=left><STRONG>RATE_MONOTONIC_IDENT</STRONG></TD> - <TD ALIGN=center>RTEMS_RATE_MONOTONIC_IDENT_ONLY</TD></TR> -<TR><TD ALIGN=left><STRONG>RATE_MONOTONIC_CANCEL</STRONG></TD> - <TD ALIGN=center>RTEMS_RATE_MONOTONIC_CANCEL_ONLY</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>RATE_MONOTONIC_DELETE</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>RTEMS_RATE_MONOTONIC_DELETE_ACTIVE</TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>RTEMS_RATE_MONOTONIC_DELETE_INACTIVE</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>RATE_MONOTONIC_PERIOD</TD></TR> - <TR><TD ALIGN=left><dd>initiate period -- returns to caller</TD> - <TD ALIGN=center> - RTEMS_RATE_MONOTONIC_PERIOD_INITIATE_PERIOD_RETURNS_TO_CALLER</TD></TR> - <TR><TD ALIGN=left><dd>conclude period -- caller blocks</TD> - <TD ALIGN=center> - RTEMS_RATE_MONOTONIC_PERIOD_CONCLUDE_PERIOD_CALLER_BLOCKS</TD></TR> - <TR><TD ALIGN=left><dd>obtain status</TD> - <TD ALIGN=center>RTEMS_RATE_MONOTONIC_PERIOD_OBTAIN_STATUS</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@tex -\global\advance \smallskipamount by 4pt -@end tex diff --git a/doc/common/timing.t b/doc/common/timing.t deleted file mode 100644 index 7d9f9a415f..0000000000 --- a/doc/common/timing.t +++ /dev/null @@ -1,396 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-2002. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter Timing Specification - -@section Introduction - -This chapter provides information pertaining to the -measurement of the performance of RTEMS, the methods of -gathering the timing data, and the usefulness of the data. Also -discussed are other time critical aspects of RTEMS that affect -an applications design and ultimate throughput. These aspects -include determinancy, interrupt latency and context switch times. - -@section Philosophy - -Benchmarks are commonly used to evaluate the -performance of software and hardware. Benchmarks can be an -effective tool when comparing systems. Unfortunately, -benchmarks can also be manipulated to justify virtually any -claim. Benchmarks of real-time executives are difficult to -evaluate for a variety of reasons. Executives vary in the -robustness of features and options provided. Even when -executives compare favorably in functionality, it is quite -likely that different methodologies were used to obtain the -timing data. Another problem is that some executives provide -times for only a small subset of directives, This is typically -justified by claiming that these are the only time-critical -directives. The performance of some executives is also very -sensitive to the number of objects in the system. To obtain any -measure of usefulness, the performance information provided for -an executive should address each of these issues. - -When evaluating the performance of a real-time -executive, one typically considers the following areas: -determinancy, directive times, worst case interrupt latency, and -context switch time. Unfortunately, these areas do not have -standard measurement methodologies. This allows vendors to -manipulate the results such that their product is favorably -represented. We have attempted to provide useful and meaningful -timing information for RTEMS. To insure the usefulness of our -data, the methodology and definitions used to obtain and -describe the data are also documented. - -@subsection Determinancy - -The correctness of data in a real-time system must -always be judged by its timeliness. In many real-time systems, -obtaining the correct answer does not necessarily solve the -problem. For example, in a nuclear reactor it is not enough to -determine that the core is overheating. This situation must be -detected and acknowledged early enough that corrective action -can be taken and a meltdown avoided. - -Consequently, a system designer must be able to -predict the worst-case behavior of the application running under -the selected executive. In this light, it is important that a -real-time system perform consistently regardless of the number -of tasks, semaphores, or other resources allocated. An -important design goal of a real-time executive is that all -internal algorithms be fixed-cost. Unfortunately, this goal is -difficult to completely meet without sacrificing the robustness -of the executive's feature set. - -Many executives use the term deterministic to mean -that the execution times of their services can be predicted. -However, they often provide formulas to modify execution times -based upon the number of objects in the system. This usage is -in sharp contrast to the notion of deterministic meaning fixed -cost. - -Almost all RTEMS directives execute in a fixed amount -of time regardless of the number of objects present in the -system. The primary exception occurs when a task blocks while -acquiring a resource and specifies a non-zero timeout interval. - -Other exceptions are message queue broadcast, -obtaining a variable length memory block, object name to ID -translation, and deleting a resource upon which tasks are -waiting. In addition, the time required to service a clock tick -interrupt is based upon the number of timeouts and other -"events" which must be processed at that tick. This second -group is composed primarily of capabilities which are inherently -non-deterministic but are infrequently used in time critical -situations. The major exception is that of servicing a clock -tick. However, most applications have a very small number of -timeouts which expire at exactly the same millisecond (usually -none, but occasionally two or three). - -@subsection Interrupt Latency - -Interrupt latency is the delay between the CPU's -receipt of an interrupt request and the execution of the first -application-specific instruction in an interrupt service -routine. Interrupts are a critical component of most real-time -applications and it is critical that they be acted upon as -quickly as possible. - -Knowledge of the worst case interrupt latency of an -executive aids the application designer in determining the -maximum period of time between the generation of an interrupt -and an interrupt handler responding to that interrupt. The -interrupt latency of an system is the greater of the executive's -and the applications's interrupt latency. If the application -disables interrupts longer than the executive, then the -application's interrupt latency is the system's worst case -interrupt disable period. - -The worst case interrupt latency for a real-time -executive is based upon the following components: - -@itemize @bullet -@item the longest period of time interrupts are disabled -by the executive, - -@item the overhead required by the executive at the -beginning of each ISR, - -@item the time required for the CPU to vector the -interrupt, and - -@item for some microprocessors, the length of the longest -instruction. -@end itemize - -The first component is irrelevant if an interrupt -occurs when interrupts are enabled, although it must be included -in a worst case analysis. The third and fourth components are -particular to a CPU implementation and are not dependent on the -executive. The fourth component is ignored by this document -because most applications use only a subset of a -microprocessor's instruction set. Because of this the longest -instruction actually executed is application dependent. The -worst case interrupt latency of an executive is typically -defined as the sum of components (1) and (2). The second -component includes the time necessry for RTEMS to save registers -and vector to the user-defined handler. RTEMS includes the -third component, the time required for the CPU to vector the -interrupt, because it is a required part of any interrupt. - -Many executives report the maximum interrupt disable -period as their interrupt latency and ignore the other -components. This results in very low worst-case interrupt -latency times which are not indicative of actual application -performance. The definition used by RTEMS results in a higher -interrupt latency being reported, but accurately reflects the -longest delay between the CPU's receipt of an interrupt request -and the execution of the first application-specific instruction -in an interrupt service routine. - -The actual interrupt latency times are reported in -the Timing Data chapter of this supplement. - -@subsection Context Switch Time - -An RTEMS context switch is defined as the act of -taking the CPU from the currently executing task and giving it -to another task. This process involves the following components: - -@itemize @bullet -@item Saving the hardware state of the current task. - -@item Optionally, invoking the TASK_SWITCH user extension. - -@item Restoring the hardware state of the new task. -@end itemize - -RTEMS defines the hardware state of a task to include -the CPU's data registers, address registers, and, optionally, -floating point registers. - -Context switch time is often touted as a performance -measure of real-time executives. However, a context switch is -performed as part of a directive's actions and should be viewed -as such when designing an application. For example, if a task -is unable to acquire a semaphore and blocks, a context switch is -required to transfer control from the blocking task to a new -task. From the application's perspective, the context switch is -a direct result of not acquiring the semaphore. In this light, -the context switch time is no more relevant than the performance -of any other of the executive's subroutines which are not -directly accessible by the application. - -In spite of the inappropriateness of using the -context switch time as a performance metric, RTEMS context -switch times for floating point and non-floating points tasks -are provided for comparison purposes. Of the executives which -actually support floating point operations, many do not report -context switch times for floating point context switch time. -This results in a reported context switch time which is -meaningless for an application with floating point tasks. - -The actual context switch times are reported in the -Timing Data chapter of this supplement. - -@subsection Directive Times - -Directives are the application's interface to the -executive, and as such their execution times are critical in -determining the performance of the application. For example, an -application using a semaphore to protect a critical data -structure should be aware of the time required to acquire and -release a semaphore. In addition, the application designer can -utilize the directive execution times to evaluate the -performance of different synchronization and communication -mechanisms. - -The actual directive execution times are reported in -the Timing Data chapter of this supplement. - -@section Methodology - -@subsection Software Platform - -The RTEMS timing suite is written in C. The overhead -of passing arguments to RTEMS by C is not timed. The times -reported represent the amount of time from entering to exiting -RTEMS. - -The tests are based upon one of two execution models: -(1) single invocation times, and (2) average times of repeated -invocations. Single invocation times are provided for -directives which cannot easily be invoked multiple times in the -same scenario. For example, the times reported for entering and -exiting an interrupt service routine are single invocation -times. The second model is used for directives which can easily -be invoked multiple times in the same scenario. For example, -the times reported for semaphore obtain and semaphore release -are averages of multiple invocations. At least 100 invocations -are used to obtain the average. - -@subsection Hardware Platform - -Since RTEMS supports a variety of processors, the -hardware platform used to gather the benchmark times must also -vary. Therefore, for each processor supported the hardware -platform must be defined. Each definition will include a brief -description of the target hardware platform including the clock -speed, memory wait states encountered, and any other pertinent -information. This definition may be found in the processor -dependent timing data chapter within this supplement. - -@subsection What is measured? - -An effort was made to provide execution times for a -large portion of RTEMS. Times were provided for most directives -regardless of whether or not they are typically used in time -critical code. For example, execution times are provided for -all object create and delete directives, even though these are -typically part of application initialization. - -The times include all RTEMS actions necessary in a -particular scenario. For example, all times for blocking -directives include the context switch necessary to transfer -control to a new task. Under no circumstances is it necessary -to add context switch time to the reported times. - -The following list describes the objects created by -the timing suite: - -@itemize @bullet -@item All tasks are non-floating point. - -@item All tasks are created as local objects. - -@item No timeouts are used on blocking directives. - -@item All tasks wait for objects in FIFO order. - -@end itemize - -In addition, no user extensions are configured. - -@subsection What is not measured? - -The times presented in this document are not intended -to represent best or worst case times, nor are all directives -included. For example, no times are provided for the initialize -executive and fatal_error_occurred directives. Other than the -exceptions detailed in the Determinancy section, all directives -will execute in the fixed length of time given. - -Other than entering and exiting an interrupt service -routine, all directives were executed from tasks and not from -interrupt service routines. Directives invoked from ISRs, when -allowable, will execute in slightly less time than when invoked -from a task because rescheduling is delayed until the interrupt -exits. - -@subsection Terminology - -The following is a list of phrases which are used to -distinguish individual execution paths of the directives taken -during the RTEMS performance analysis: - -@table @b -@item another task -The directive was performed -on a task other than the calling task. - -@item available -A task attempted to obtain a resource and -immediately acquired it. - -@item blocked task -The task operated upon by the -directive was blocked waiting for a resource. - -@item caller blocks -The requested resoure was not -immediately available and the calling task chose to wait. - -@item calling task -The task invoking the directive. - -@item messages flushed -One or more messages was flushed -from the message queue. - -@item no messages flushed -No messages were flushed from -the message queue. - -@item not available -A task attempted to obtain a resource -and could not immediately acquire it. - -@item no reschedule -The directive did not require a -rescheduling operation. - -@item NO_WAIT -A resource was not available and the -calling task chose to return immediately via the NO_WAIT option -with an error. - -@item obtain current -The current value of something was -requested by the calling task. - -@item preempts caller -The release of a resource caused a -task of higher priority than the calling to be readied and it -became the executing task. - -@item ready task -The task operated upon by the directive -was in the ready state. - -@item reschedule -The actions of the directive -necessitated a rescheduling operation. - -@item returns to caller -The directive succeeded and -immediately returned to the calling task. - -@item returns to interrupted task -The instructions -executed immediately following this interrupt will be in the -interrupted task. - -@item returns to nested interrupt -The instructions -executed immediately following this interrupt will be in a -previously interrupted ISR. - -@item returns to preempting task -The instructions -executed immediately following this interrupt or signal handler -will be in a task other than the interrupted task. - -@item signal to self -The signal set was sent to the -calling task and signal processing was enabled. - -@item suspended task -The task operated upon by the -directive was in the suspended state. - -@item task readied -The release of a resource caused a -task of lower or equal priority to be readied and the calling -task remained the executing task. - -@item yield -The act of attempting to voluntarily release -the CPU. - -@end table - diff --git a/doc/configure.ac b/doc/configure.ac index e875e31a13..4cbae84527 100644 --- a/doc/configure.ac +++ b/doc/configure.ac @@ -177,7 +177,6 @@ _RTEMS_UPDATE_CONDITIONAL([common/rtems.sed],[common/rtems.sed~]) AC_CONFIG_FILES([ index.html -FAQ/Makefile develenv/Makefile user/Makefile bsp_howto/Makefile]) diff --git a/doc/index.html.in b/doc/index.html.in index e7384b34c3..3c052aa02f 100644 --- a/doc/index.html.in +++ b/doc/index.html.in @@ -7,15 +7,7 @@ <HR> <BODY> <MENU> - <LI> - <A HREF="../pdf/FAQ.pdf"> - <IMG SRC="images/pdf1.gif" HEIGHT=18 WIDTH=16></A> - <A HREF="../ps/FAQ.ps"> - <IMG SRC="images/ps.gif" HEIGHT=18 WIDTH=16></A> - <A HREF="../dvi/FAQ.dvi"> - <IMG SRC="images/dvi.gif" HEIGHT=18 WIDTH=16></A> - <A HREF="FAQ/index.html">RTEMS FAQ</A> - </LI> + <LI><A HREF="http://www.rtems.org/wiki">RTEMS Wiki</A></LI> <LI>C/C++ Manuals</LI> <MENU> <LI><A HREF="../pdf/started.pdf"> @@ -82,6 +74,16 @@ </MENU> <LI>Miscellaneous Manuals</LI> <MENU> + <LI><A HREF="../pdf/cpu_supplement.pdf"> + <IMG SRC="images/pdf1.gif" HEIGHT=18 WIDTH=16></A> + <A HREF="../ps/cpu_supplement.ps"> + <IMG SRC="images/ps.gif" HEIGHT=18 WIDTH=16></A> + <A HREF="../dvi/cpu_supplement.dvi"> + <IMG SRC="images/dvi.gif" HEIGHT=18 WIDTH=16></A> + <A HREF="cpu_supplement/index.html"> + RTEMS CPU Supplement</A> + </LI> + <LI><A HREF="../pdf/develenv.pdf"> <IMG SRC="images/pdf1.gif" HEIGHT=18 WIDTH=16></A> <A HREF="../ps/develenv.ps"> @@ -153,109 +155,9 @@ </LI> </MENU> - -<LI>CPU Supplements for Primary Ports - - <MENU> - - <LI><A HREF="HELP.html"> - <IMG SRC="images/pdf1.gif" HEIGHT=18 WIDTH=16></A> - <A HREF="HELP.html"> - <IMG SRC="images/ps.gif" HEIGHT=18 WIDTH=16></A> - <A HREF="HELP.html"> - <IMG SRC="images/dvi.gif" HEIGHT=18 WIDTH=16></A> - <A HREF="HELP.html"> - RTEMS Hitachi H8/300 Applications Supplement</A> - </LI> - - <LI><A HREF="../pdf/i386.pdf"> - <IMG SRC="images/pdf1.gif" HEIGHT=18 WIDTH=16></A> - <A HREF="../ps/i386.ps"> - <IMG SRC="images/ps.gif" HEIGHT=18 WIDTH=16></A> - <A HREF="../dvi/i386.dvi"> - <IMG SRC="images/dvi.gif" HEIGHT=18 WIDTH=16></A> - <A HREF="supplements/i386/index.html"> - RTEMS Intel i386 Applications Supplement</A> - </LI> - - <LI><A HREF="../pdf/m68k.pdf"> - <IMG SRC="images/pdf1.gif" HEIGHT=18 WIDTH=16></A> - <A HREF="../ps/m68k.ps"> - <IMG SRC="images/ps.gif" HEIGHT=18 WIDTH=16></A> - <A HREF="../dvi/m68k.dvi"> - <IMG SRC="images/dvi.gif" HEIGHT=18 WIDTH=16></A> - <A HREF="supplements/m68k/index.html"> - RTEMS Motorola MC68xxx Applications Supplement</A> - </LI> - - <LI><A HREF="../pdf/mips.pdf"> - <IMG SRC="images/pdf1.gif" HEIGHT=18 WIDTH=16></A> - <A HREF="../ps/mips.ps"> - <IMG SRC="images/ps.gif" HEIGHT=18 WIDTH=16></A> - <A HREF="../dvi/mips.dvi"> - <IMG SRC="images/dvi.gif" HEIGHT=18 WIDTH=16></A> - <A HREF="supplements/mips/index.html"> - RTEMS MIPS Applications Supplement</A> - </LI> - - <LI><A HREF="../pdf/powerpc.pdf"> - <IMG SRC="images/pdf1.gif" HEIGHT=18 WIDTH=16></A> - <A HREF="../ps/powerpc.ps"> - <IMG SRC="images/ps.gif" HEIGHT=18 WIDTH=16></A> - <A HREF="../dvi/powerpc.dvi"> - <IMG SRC="images/dvi.gif" HEIGHT=18 WIDTH=16></A> - <A HREF="supplements/powerpc/index.html"> - RTEMS PowerPC Applications Supplement</A> - </LI> - - <LI><A HREF="../pdf/sh.pdf"> - <IMG SRC="images/pdf1.gif" HEIGHT=18 WIDTH=16></A> - <A HREF="../ps/sh.ps"> - <IMG SRC="images/ps.gif" HEIGHT=18 WIDTH=16></A> - <A HREF="../dvi/sh.dvi"> - <IMG SRC="images/dvi.gif" HEIGHT=18 WIDTH=16></A> - <A HREF="supplements/sh/index.html"> - RTEMS Hitachi SH Applications Supplement</A> - </LI> - - <LI><A HREF="../pdf/sparc.pdf"> - <IMG SRC="images/pdf1.gif" HEIGHT=18 WIDTH=16></A> - <A HREF="../ps/sparc.ps"> - <IMG SRC="images/ps.gif" HEIGHT=18 WIDTH=16></A> - <A HREF="../dvi/sparc.dvi"> - <IMG SRC="images/dvi.gif" HEIGHT=18 WIDTH=16></A> - <A HREF="supplements/sparc/index.html"> - RTEMS SPARC Applications Supplement</A> - </LI> - - <LI><A HREF="HELP.html"> - <IMG SRC="images/pdf1.gif" HEIGHT=18 WIDTH=16></A> - <A HREF="HELP.html"> - <IMG SRC="images/ps.gif" HEIGHT=18 WIDTH=16></A> - <A HREF="HELP.html"> - <IMG SRC="images/dvi.gif" HEIGHT=18 WIDTH=16></A> - <A HREF="HELP.html"> - RTEMS UNIX Port Applications Supplement</A> - </LI> - - </MENU> - -<LI>CPU Supplements for Secondary Ports - - <MENU> - <LI><A HREF="../pdf/c4x.pdf"> - <IMG SRC="images/pdf1.gif" HEIGHT=18 WIDTH=16></A> - <A HREF="../ps/c4x.ps"> - <IMG SRC="images/ps.gif" HEIGHT=18 WIDTH=16></A> - <A HREF="../dvi/c4x.dvi"> - <IMG SRC="images/dvi.gif" HEIGHT=18 WIDTH=16></A> - <A HREF="supplements/c4x/index.html"> - RTEMS Texas Instruments C3x/C4x Applications Supplement</A> - </LI> - </MENU> -</LI> + </li> </MENU> <HR> -Copyright © 1988-2004 <A HREF="http://www.oarcorp.com" target="Text Frame">OAR Corporation</A> +Copyright © 1988-2006 <A HREF="http://www.oarcorp.com" target="Text Frame">OAR Corporation</A> </BODY></HTML> |