From 2ba8875a0b268d572ef2a27584d3f845ec1391b0 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Wed, 26 Apr 2000 18:02:26 +0000 Subject: Patch rtemsdoc-4.5.0-rc-0.diff from Ralf Corsepius which contains the bulk of converting the documentation tree to automake and GNU conventions. Comments follow: This is the automake port of rtemsdoc. To apply: cvs co rtemsdoc cd rtemsdoc sh cvs-rm.sh patch -p0 < rtemsdoc-4.5.0-rc-0.diff sh cvs-add.sh [Attention: cvs-rm.sh and cvs-add.sh directly modify cvs] Known bugs: 1) src2html is not supported (yet? - Is this supposed to work?) 2) all *.pdf images now are generated on-the-fly, but not yet deleted during "make distclean" 3) All supplements, including the templated ones, get build and installed. 4) Building outside of the source tree is completely untested and very likely does not work. 5) Make [ps|pdf] are not (yet) supported, make [dvi|info] are supported by automake's default texinfo rules. Fixing 2, 3 and 5 is almost trivial and needs to be done. 4) is a matter of testing and tool-properties, for now it is simply untested. General issues: * gif vs jpg vs png. I would recommend to replace all images with pngs to avoid potential copyright issues (gif) or lack in quality (jpg, jpg is good for real world photographs, but extremely poor on artificial images, graphs). * pdf images do net get placed correctly in pdf-documents. * texinfo: We now use a local copy of texinfo-4.0's texinfo.tex in texinfo/texinfo.tex for generating infos. However pdftex's system-wide texinfo.tex and pdftexinfo.tex are used for generating *.dvi, *.ps, *.pdf. * .cvsignore files still missing. * I have renamed the supplements filename not to use c_, because automake seems to have problems with it. Notes: * Again, I recommend not to put any generated files into CVS. Here, this comprises some *texi, all *.pdf and many *.html pages. Ie. I recommend to run make maintainer-clean before checking in any files. * To get building started, this should be sufficient: ./bootstrap ./configure cd tools; make; cd .. make info * To make a public tarball: [cvs co ; ./bootstrap] ./configure cd tools; make; cd .. make info [make clean] make dist => This generates a rtems-.tar.gz in the toplevel directory. => Building the tools only is required after a "cvs co", but not in a distribution tarball. --- doc/supplements/sparc/Makefile | 163 ---- doc/supplements/sparc/Makefile.am | 116 +++ doc/supplements/sparc/sparc.texi | 4 +- doc/supplements/sparc/timeERC32_.t | 1454 ++++++++++++++++++++++++++++++++++++ 4 files changed, 1572 insertions(+), 165 deletions(-) delete mode 100644 doc/supplements/sparc/Makefile create mode 100644 doc/supplements/sparc/Makefile.am create mode 100644 doc/supplements/sparc/timeERC32_.t (limited to 'doc/supplements/sparc') diff --git a/doc/supplements/sparc/Makefile b/doc/supplements/sparc/Makefile deleted file mode 100644 index b390b92205..0000000000 --- a/doc/supplements/sparc/Makefile +++ /dev/null @@ -1,163 +0,0 @@ -# -# COPYRIGHT (c) 1988-1999. -# On-Line Applications Research Corporation (OAR). -# All rights reserved. -# -# $Id$ -# - -PROJECT=sparc - -include ../../Make.config - -REPLACE=../../tools/word-replace - -all: html info ps pdf - -dirs: - $(make-dirs) - -COMMON_FILES=../../common/cpright.texi ../../common/setup.texi - -GENERATED_FILES=\ - cpumodel.texi callconv.texi memmodel.texi intr.texi fatalerr.texi \ - bsp.texi cputable.texi timing.texi wksheets.texi timeERC32.texi - -FILES= $(PROJECT).texi \ - preface.texi \ - $(GENERATED_FILES) - -INFOFILES=$(wildcard $(PROJECT) $(PROJECT)-*) - -info: dirs c_sparc - cp c_$(PROJECT) c_$(PROJECT)-* $(INFO_INSTALL) - -c_sparc: $(FILES) - $(MAKEINFO) $(PROJECT).texi - -dvi: dirs $(PROJECT).dvi -ps: dirs $(PROJECT).ps -pdf: dirs $(PROJECT).pdf - -$(PROJECT).pdf: $(FILES) - $(TEXI2PDF) $(PROJECT).texi - cp $(PROJECT).pdf $(WWW_INSTALL)/$(PROJECT) - -$(PROJECT).ps: dirs $(PROJECT).dvi - dvips -o $(PROJECT).ps $(PROJECT).dvi - cp $(PROJECT).ps $(WWW_INSTALL)/$(PROJECT) - -$(PROJECT).dvi: $(FILES) - $(TEXI2DVI) $(PROJECT).texi - cp $(PROJECT).dvi $(WWW_INSTALL)/$(PROJECT) - -html: dirs $(FILES) - -mkdir -p $(WWW_INSTALL)/$(PROJECT) - $(TEXI2WWW) $(TEXI2WWW_ARGS) -dir $(WWW_INSTALL)/$(PROJECT) \ - $(PROJECT).texi - -clean: - rm -f *.o $(PROG) *.txt core $(PROJECT).pdf - rm -f *.dvi *.ps *.log *.aux *.cp *.fn *.ky *.pg *.toc *.tp *.vr $(BASE) - rm -f $(PROJECT) $(PROJECT)-* - rm -f c_$(PROJECT) c_$(PROJECT)-* - rm -f intr.t $(GENERATED_FILES) - rm -f wksheets.t wksheets_NOTIMES.t timing.t - rm -f timeERC32_.t timeERC32_.texi - rm -f *.fixed _* - -# -# Chapters which get automatic processing -# - -cpumodel.texi: cpumodel.t Makefile - $(BMENU) -p "Preface" \ - -u "Top" \ - -n "Calling Conventions" ${*}.t - -callconv.texi: callconv.t Makefile - $(BMENU) -p "CPU Model Dependent Features CPU Model Implementation Notes" \ - -u "Top" \ - -n "Memory Model" ${*}.t - -memmodel.texi: memmodel.t Makefile - $(BMENU) -p "Calling Conventions User-Provided Routines" \ - -u "Top" \ - -n "Interrupt Processing" ${*}.t - -# Interrupt Chapter: -# 1. Replace Times and Sizes -# 2. Build Node Structure -intr.t: intr_NOTIMES.t ERC32_TIMES - ${REPLACE} -p ERC32_TIMES intr_NOTIMES.t - mv intr_NOTIMES.t.fixed intr.t - -intr.texi: intr.t Makefile - $(BMENU) -p "Memory Model Flat Memory Model" \ - -u "Top" \ - -n "Default Fatal Error Processing" ${*}.t - -fatalerr.texi: fatalerr.t Makefile - $(BMENU) -p "Interrupt Processing Interrupt Stack" \ - -u "Top" \ - -n "Board Support Packages" ${*}.t - -bsp.texi: bsp.t Makefile - $(BMENU) -p "Default Fatal Error Processing Default Fatal Error Handler Operations" \ - -u "Top" \ - -n "Processor Dependent Information Table" ${*}.t - -cputable.texi: cputable.t Makefile - $(BMENU) -p "Board Support Packages Processor Initialization" \ - -u "Top" \ - -n "Memory Requirements" ${*}.t - - -# Worksheets Chapter: -# 1. Obtain the Shared File -# 2. Replace Times and Sizes -# 3. Build Node Structure - -wksheets_NOTIMES.t: ../../common/wksheets.t - cp ../../common/wksheets.t wksheets_NOTIMES.t - -wksheets.t: wksheets_NOTIMES.t ERC32_TIMES - ${REPLACE} -p ERC32_TIMES wksheets_NOTIMES.t - mv wksheets_NOTIMES.t.fixed wksheets.t - -wksheets.texi: wksheets.t Makefile - $(BMENU) -p "Processor Dependent Information Table CPU Dependent Information Table" \ - -u "Top" \ - -n "Timing Specification" ${*}.t - -# Timing Specification Chapter: -# 1. Copy the Shared File -# 3. Build Node Structure - -timing.t: ../../common/timing.t - cp ../../common/timing.t timing.t - -timing.texi: timing.t Makefile - $(BMENU) -p "Memory Requirements RTEMS RAM Workspace Worksheet" \ - -u "Top" \ - -n "ERC32 Timing Data" ${*}.t - -# Timing Data for ERC32 BSP Chapter: -# 1. Copy the Shared File -# 2. Replace Times and Sizes -# 3. Build Node Structure - -timeERC32_.t: ../../common/timetbl.t timeERC32.t - cat timeERC32.t ../../common/timetbl.t >timeERC32_.t - @echo >>timeERC32_.t - @echo "@tex" >>timeERC32_.t - @echo "\\global\\advance \\smallskipamount by 4pt" >>timeERC32_.t - @echo "@end tex" >>timeERC32_.t - ${REPLACE} -p ERC32_TIMES timeERC32_.t - mv timeERC32_.t.fixed timeERC32_.t - -timeERC32.texi: timeERC32_.t Makefile - $(BMENU) -p "Timing Specification Terminology" \ - -u "Top" \ - -n "Command and Variable Index" timeERC32_.t - mv timeERC32_.texi timeERC32.texi diff --git a/doc/supplements/sparc/Makefile.am b/doc/supplements/sparc/Makefile.am new file mode 100644 index 0000000000..2bfc18cff4 --- /dev/null +++ b/doc/supplements/sparc/Makefile.am @@ -0,0 +1,116 @@ +# +# COPYRIGHT (c) 1988-1999. +# On-Line Applications Research Corporation (OAR). +# All rights reserved. +# +# $Id$ +# + +AUTOMAKE_OPTIONS = foreign + +PROJECT=sparc + +include $(top_srcdir)/project.am +include $(top_srcdir)/supplements/supplement.am + +COMMON_FILES=$(top_srcdir)/common/cpright.texi $(top_builddir)/common/setup.texi + +GENERATED_FILES=\ + cpumodel.texi callconv.texi memmodel.texi intr.texi fatalerr.texi \ + bsp.texi cputable.texi timing.texi wksheets.texi timeERC32.texi + +FILES= preface.texi + +info_TEXINFOS = sparc.texi +sparc_TEXINFOS = $(FILES) $(COMMON_FILES) $(GENERATED_FILES) + +# +# Chapters which get automatic processing +# + +cpumodel.texi: cpumodel.t + $(BMENU) -p "Preface" \ + -u "Top" \ + -n "Calling Conventions" $< + +callconv.texi: callconv.t + $(BMENU) -p "CPU Model Dependent Features CPU Model Implementation Notes" \ + -u "Top" \ + -n "Memory Model" $< + +memmodel.texi: memmodel.t + $(BMENU) -p "Calling Conventions User-Provided Routines" \ + -u "Top" \ + -n "Interrupt Processing" $< + +# Interrupt Chapter: +# 1. Replace Times and Sizes +# 2. Build Node Structure +intr.texi: intr_NOTIMES.t ERC32_TIMES + ${REPLACE2} -p $(srcdir)/ERC32_TIMES $(srcdir)/intr_NOTIMES.t intr.t + $(BMENU) -p "Memory Model Flat Memory Model" \ + -u "Top" \ + -n "Default Fatal Error Processing" intr.t +CLEANFILES += intr.t + +fatalerr.texi: fatalerr.t + $(BMENU) -p "Interrupt Processing Interrupt Stack" \ + -u "Top" \ + -n "Board Support Packages" $< + +bsp.texi: bsp.t + $(BMENU) -p "Default Fatal Error Processing Default Fatal Error Handler Operations" \ + -u "Top" \ + -n "Processor Dependent Information Table" $< + +cputable.texi: cputable.t + $(BMENU) -p "Board Support Packages Processor Initialization" \ + -u "Top" \ + -n "Memory Requirements" $< + + +# Worksheets Chapter: +# 1. Obtain the Shared File +# 2. Replace Times and Sizes +# 3. Build Node Structure + +wksheets.texi: $(top_srcdir)/common/wksheets.t ERC32_TIMES + ${REPLACE2} -p $(srcdir)/ERC32_TIMES \ + $(top_srcdir)/common/wksheets.t wksheets.t + $(BMENU) -p "Processor Dependent Information Table CPU Dependent Information Table" \ + -u "Top" \ + -n "Timing Specification" wksheets.t +CLEANFILES += wksheets.t + +# Timing Specification Chapter: +# 1. Copy the Shared File +# 3. Build Node Structure +timing.texi: $(top_srcdir)/common/timing.t + cp $(top_srcdir)/common/timing.t timing.t + $(BMENU) -p "Memory Requirements RTEMS RAM Workspace Worksheet" \ + -u "Top" \ + -n "ERC32 Timing Data" timing.t +CLEANFILES += timing.t + + +# Timing Data for ERC32 BSP Chapter: +# 1. Copy the Shared File +# 2. Replace Times and Sizes +# 3. Build Node Structure + +timeERC32_.t: $(top_srcdir)/common/timetbl.t timeERC32.t + cat timeERC32.t $(top_srcdir)/common/timetbl.t >timeERC32_.t + @echo >>timeERC32_.t + @echo "@tex" >>timeERC32_.t + @echo "\\global\\advance \\smallskipamount by 4pt" >>timeERC32_.t + @echo "@end tex" >>timeERC32_.t + ${REPLACE} -p ERC32_TIMES timeERC32_.t + mv timeERC32_.t.fixed timeERC32_.t + +timeERC32.texi: timeERC32_.t + $(BMENU) -p "Timing Specification Terminology" \ + -u "Top" \ + -n "Command and Variable Index" timeERC32_.t + mv timeERC32_.texi timeERC32.texi + +EXTRA_DIST = ERC32_TIMES *.t diff --git a/doc/supplements/sparc/sparc.texi b/doc/supplements/sparc/sparc.texi index 98462acac4..0fece23906 100644 --- a/doc/supplements/sparc/sparc.texi +++ b/doc/supplements/sparc/sparc.texi @@ -1,6 +1,6 @@ \input texinfo @c -*-texinfo-*- @c %**start of header -@setfilename c_sparc +@setfilename sparc @syncodeindex vr fn @synindex ky cp @paragraphindent 0 @@ -75,7 +75,7 @@ END-INFO-DIR-ENTRY @include timeERC32.texi @ifinfo @node Top, Preface, (dir), (dir) -@top c_sparc +@top sparc This is the online version of the RTEMS SPARC Applications Supplement. diff --git a/doc/supplements/sparc/timeERC32_.t b/doc/supplements/sparc/timeERC32_.t new file mode 100644 index 0000000000..6fc2e1952f --- /dev/null +++ b/doc/supplements/sparc/timeERC32_.t @@ -0,0 +1,1454 @@ +@c +@c COPYRIGHT (c) 1988-1999. +@c On-Line Applications Research Corporation (OAR). +@c All rights reserved. +@c +@c $Id$ +@c + +@include ../../common/timemac.texi +@tex +\global\advance \smallskipamount by -4pt +@end tex + +@chapter ERC32 Timing Data + +@section Introduction + +The timing data for RTEMS on the ERC32 implementation +of the SPARC architecture is provided along with the target +dependent aspects concerning the gathering of the timing data. +The hardware platform used to gather the times is described to +give the reader a better understanding of each directive time +provided. Also, provided is a description of the interrupt +latency and the context switch times as they pertain to the +SPARC version of RTEMS. + +@section Hardware Platform + +All times reported in this chapter were measured +using the SPARC Instruction Simulator (SIS) developed by the +European Space Agency. SIS simulates the ERC32 -- a custom low +power implementation combining the Cypress 90C601 integer unit, +the Cypress 90C602 floating point unit, and a number of +peripherals such as counter timers, interrupt controller and a +memory controller. + +For the RTEMS tests, SIS is configured with the +following characteristics: + +@itemize @bullet +@item 15 Mhz clock speed + +@item 0 wait states for PROM accesses + +@item 0 wait states for RAM accesses +@end itemize + +The ERC32's General Purpose Timer was used to gather +all timing information. This timer was programmed to operate +with one microsecond accuracy. All sources of hardware +interrupts were disabled, although traps were enabled and the +interrupt level of the SPARC allows all interrupts. + +@section Interrupt Latency + +The maximum period with traps disabled or the +processor interrupt level set to it's highest value inside RTEMS +is less than TBD +microseconds including the instructions which +disable and re-enable interrupts. The time required for the +ERC32 to vector an interrupt and for the RTEMS entry overhead +before invoking the user's trap handler are a total of +8 +microseconds. These combine to yield a worst case interrupt +latency of less than TBD + +8 microseconds at +15.0 Mhz. +[NOTE: The maximum period with interrupts disabled was last +determined for Release 4.2.0-prerelease.] + +The maximum period with interrupts disabled within +RTEMS is hand-timed with some assistance from SIS. The maximum +period with interrupts disabled with RTEMS occurs during a +context switch when traps are disabled to flush all the register +windows to memory. The length of time spent flushing the +register windows varies based on the number of windows which +must be flushed. Based on the information reported by SIS, it +takes from 4.0 to 18.0 microseconds (37 to 122 instructions) to +flush the register windows. It takes approximately 41 CPU +cycles (2.73 microseconds) to flush each register window set to +memory. The register window flush operation is heavily memory +bound. + +[NOTE: All traps are disabled during the register +window flush thus disabling both software generate traps and +external interrupts. During a normal RTEMS critical section, +the processor interrupt level (pil) is raised to level 15 and +traps are left enabled. The longest path for a normal critical +section within RTEMS is less than 50 instructions.] + +The interrupt vector and entry overhead time was +generated on the SIS benchmark platform using the ERC32's +ability to forcibly generate an arbitrary interrupt as the +source of the "benchmark" interrupt. + +@section Context Switch + +The RTEMS processor context switch time is 10 +microseconds on the SIS benchmark platform when no floating +point context is saved or restored. Additional execution time +is required when a TASK_SWITCH user extension is configured. +The use of the TASK_SWITCH extension is application dependent. +Thus, its execution time is not considered part of the raw +context switch time. + +Since RTEMS was designed specifically for embedded +missile applications which are floating point intensive, the +executive is optimized to avoid unnecessarily saving and +restoring the state of the numeric coprocessor. The state of +the numeric coprocessor is only saved when an FLOATING_POINT +task is dispatched and that task was not the last task to +utilize the coprocessor. In a system with only one +FLOATING_POINT task, the state of the numeric coprocessor will +never be saved or restored. When the first FLOATING_POINT task +is dispatched, RTEMS does not need to save the current state of +the numeric coprocessor. + +The following table summarizes the context switch +times for the ERC32 benchmark platform: + +@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-1999. +@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}{21} +\rtemsdirective{Floating Point Contexts} +\rtemscase{restore first FP task}{26} +\rtemscase{save initialized, restore initialized}{24} +\rtemscase{save idle, restore initialized}{23} +\rtemscase{save idle, restore idle}{33} +\rtemsendtimetable +}}\hfil} +@end tex +@end ifset + +@ifset use-ascii +@ifinfo +@itemize @bullet +@item No Floating Point Contexts +@itemize - +@item only case: 21 +@end itemize +@item Floating Point Contexts +@itemize - +@item restore first FP task: 26 +@item save initialized, restore initialized: 24 +@item save idle, restore initialized: 23 +@item save idle, restore idle: 23 +@end itemize +@end itemize +@end ifinfo +@end ifset + +@ifset use-html +@html +
+ + + + + + + + + + + + +
No Floating Point Contexts21
Floating Point Contexts
restore first FP task
26
save initialized, restore initialized
24
save idle, restore initialized
23
save idle, restore idle
33
+
+@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}{59} +\rtemsonecase{TASK\_IDENT}{163} +\rtemsonecase{TASK\_START}{30} +\rtemsdirective{TASK\_RESTART} +\rtemscase{calling task}{64} +\rtemscase{suspended task -- returns to caller} + {36} +\rtemscase{blocked task -- returns to caller} + {47} +\rtemscase{ready task -- returns to caller} + {37} +\rtemscase{suspended task -- preempts caller} + {77} +\rtemscase{blocked task -- preempts caller} + {84} +\rtemscase{ready task -- preempts caller} + {75} +\rtemsdirective{TASK\_DELETE} +\rtemscase{calling task}{91} +\rtemscase{suspended task}{47} +\rtemscase{blocked task}{50} +\rtemscase{ready task}{51} +\rtemsdirective{TASK\_SUSPEND} +\rtemscase{calling task}{56} +\rtemscase{returns to caller}{16} +\rtemsdirective{TASK\_RESUME} +\rtemscase{task readied -- returns to caller} + {17} +\rtemscase{task readied -- preempts caller} + {52} +\rtemsdirective{TASK\_SET\_PRIORITY} +\rtemscase{obtain current priority} + {10} +\rtemscase{returns to caller}{25} +\rtemscase{preempts caller}{67} +\rtemsdirective{TASK\_MODE} +\rtemscase{obtain current mode}{5} +\rtemscase{no reschedule}{6} +\rtemscase{reschedule -- returns to caller} + {9} +\rtemscase{reschedule -- preempts caller} + {42} +\rtemsonecase{TASK\_GET\_NOTE}{10} +\rtemsonecase{TASK\_SET\_NOTE}{10} +\rtemsdirective{TASK\_WAKE\_AFTER} +\rtemscase{yield -- returns to caller} + {6} +\rtemscase{yield -- preempts caller} + {49} +\rtemsonecase{TASK\_WAKE\_WHEN}{75} +\rtemsendtimetable +}}\hfil} +@end tex +@end ifset + +@ifset use-ascii +@ifinfo +@itemize @bullet + +@item TASK_CREATE +@itemize - +@item only case: 59 +@end itemize + +@item TASK_IDENT +@itemize - +@item only case: 163 +@end itemize + +@item TASK_START +@itemize - +@item only case: 30 +@end itemize + +@item TASK_RESTART +@itemize - +@item calling task: 64 +@item suspended task -- returns to caller: 36 +@item blocked task -- returns to caller: 47 +@item ready task -- returns to caller: 37 +@item suspended task -- preempts caller: 77 +@item blocked task -- preempts caller: 84 +@item ready task -- preempts caller: 75 +@end itemize + +@item TASK_DELETE +@itemize - +@item calling task: 91 +@item suspended task: 47 +@item blocked task: 50 +@item ready task: 51 +@end itemize + +@item TASK_SUSPEND +@itemize - +@item calling task: 56 +@item returns to caller: 16 +@end itemize + +@item TASK_RESUME +@itemize - +@item task readied -- returns to caller: 17 +@item task readied -- preempts caller: 52 +@end itemize + +@item TASK_SET_PRIORITY +@itemize - +@item obtain current priority: 10 +@item returns to caller: 25 +@item preempts caller: 67 +@end itemize + +@item TASK_MODE +@itemize - +@item obtain current mode: 5 +@item no reschedule: 6 +@item reschedule -- returns to caller: 9 +@item reschedule -- preempts caller: 42 +@end itemize + +@item TASK_GET_NOTE +@itemize - +@item only case: 10 +@end itemize + +@item TASK_SET_NOTE +@itemize - +@item only case: 10 +@end itemize + +@item TASK_WAKE_AFTER +@itemize - +@item yield -- returns to caller: 6 +@item yield -- preempts caller: 49 +@end itemize + +@item TASK_WAKE_WHEN +@itemize - +@item only case: 75 +@end itemize + +@end itemize +@end ifinfo +@end ifset + +@ifset use-html +@html +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TASK_CREATE59
TASK_IDENT163
TASK_START30
TASK_RESTART
calling task
64
suspended task -- returns to caller
36
blocked task -- returns to caller
47
ready task -- returns to caller
37
suspended task -- preempts caller
77
blocked task -- preempts caller
84
ready task -- preempts caller
75
TASK_DELETE
calling task
91
suspended task
47
blocked task
50
ready task
51
TASK_SUSPEND
calling task
56
returns to caller
16
TASK_RESUME
task readied -- returns to caller
17
task readied -- preempts caller
52
TASK_SET_PRIORITY
obtain current priority
10
returns to caller
25
preempts caller
67
TASK_MODE
obtain current mode
5
no reschedule
6
reschedule -- returns to caller
9
reschedule -- preempts caller
42
TASK_GET_NOTE10
TASK_SET_NOTE10
TASK_WAKE_AFTER
yield -- returns to caller
6
yield -- preempts caller
49
TASK_WAKE_WHEN75
+
+@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}{7} +\rtemscase{returns to interrupted task} + {8} +\rtemscase{returns to preempting task} + {8} +\rtemsdirective{Interrupt Exit Overhead} +\rtemscase{returns to nested interrupt}{5} +\rtemscase{returns to interrupted task} + {7} +\rtemscase{returns to preempting task} + {14} +\rtemsendtimetable +}}\hfil} +@end tex +@end ifset + +@ifset use-ascii +@ifinfo +@itemize @bullet + +@item Interrupt Entry Overhead +@itemize - +@item returns to nested interrupt: 7 +@item returns to interrupted task: 8 +@item returns to preempting task: 8 +@end itemize + +@item Interrupt Exit Overhead +@itemize - +@item returns to nested interrupt: 5 +@item returns to interrupted task: 7 +@item returns to preempting task: 14 +@end itemize + +@end itemize +@end ifinfo +@end ifset + +@ifset use-html +@html +
+ + + + + + + + + + + + + + + +
Interrupt Entry Overhead
returns to nested interrupt
7
returns to interrupted task
8
returns to preempting task
8
Interrupt Exit Overhead
returns to nested interrupt
5
returns to interrupted task
7
returns to preempting task
14
+
+@end html +@end ifset + + +@section Clock Manager + +@ifset use-tex +@tex +\centerline{\vbox{\offinterlineskip\halign{ +\span\rtemstimetable +\rtemsonecase{CLOCK\_SET}{33} +\rtemsonecase{CLOCK\_GET}{4} +\rtemsonecase{CLOCK\_TICK}{6} +\rtemsendtimetable +}}\hfil} +@end tex +@end ifset + +@ifset use-ascii +@ifinfo +@itemize @bullet + +@item CLOCK_SET +@itemize - +@item only case: 33 +@end itemize + +@item CLOCK_GET +@itemize - +@item only case: 4 +@end itemize + +@item CLOCK_TICK +@itemize - +@item only case: 6 +@end itemize + +@end itemize +@end ifinfo +@end ifset + +@ifset use-html +@html +
+ + + + + + + +
CLOCK_SET33
CLOCK_GET4
CLOCK_TICK6
+
+@end html +@end ifset + +@section Timer Manager + +@ifset use-tex +@tex +\centerline{\vbox{\offinterlineskip\halign{ +\span\rtemstimetable +\rtemsonecase{TIMER\_CREATE}{11} +\rtemsonecase{TIMER\_IDENT}{159} +\rtemsdirective{TIMER\_DELETE} +\rtemscase{inactive}{15} +\rtemscase{active}{17} +\rtemsdirective{TIMER\_FIRE\_AFTER} +\rtemscase{inactive}{21} +\rtemscase{active}{23} +\rtemsdirective{TIMER\_FIRE\_WHEN} +\rtemscase{inactive}{34} +\rtemscase{active}{34} +\rtemsdirective{TIMER\_RESET} +\rtemscase{inactive}{20} +\rtemscase{active}{22} +\rtemsdirective{TIMER\_CANCEL} +\rtemscase{inactive}{10} +\rtemscase{active}{13} +\rtemsendtimetable +}}\hfil} +@end tex +@end ifset + +@ifset use-ascii +@ifinfo +@itemize @bullet + +@item TIMER_CREATE +@itemize - +@item only case: 11 +@end itemize + +@item TIMER_IDENT +@itemize - +@item only case: 159 +@end itemize + +@item TIMER_DELETE +@itemize - +@item inactive: 15 +@item active: 17 +@end itemize + +@item TIMER_FIRE_AFTER +@itemize - +@item inactive: 21 +@item active: 23 +@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 +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TIMER_CREATE11
TIMER_IDENT159
TIMER_DELETE
inactive
15
active
17
TIMER_FIRE_AFTER
inactive
21
active
23
TIMER_FIRE_WHEN
inactive
34
active
34
TIMER_RESET
inactive
20
active
22
TIMER_CANCEL
inactive
10
active
13
+
+@end html +@end ifset + +@page +@section Semaphore Manager + +@ifset use-tex +@tex +\centerline{\vbox{\offinterlineskip\halign{ +\span\rtemstimetable +\rtemsonecase{SEMAPHORE\_CREATE}{19} +\rtemsonecase{SEMAPHORE\_IDENT}{171} +\rtemsonecase{SEMAPHORE\_DELETE}{19} +\rtemsdirective{SEMAPHORE\_OBTAIN} +\rtemscase{available}{12} +\rtemscase{not available -- NO\_WAIT} + {12} +\rtemscase{not available -- caller blocks} + {67} +\rtemsdirective{SEMAPHORE\_RELEASE} +\rtemscase{no waiting tasks}{14} +\rtemscase{task readied -- returns to caller} + {23} +\rtemscase{task readied -- preempts caller} + {57} +\rtemsendtimetable +}}\hfil} +@end tex +@end ifset + +@ifset use-ascii +@ifinfo +@itemize @bullet + +@item SEMAPHORE_CREATE +@itemize - +@item only case: 19 +@end itemize + +@item SEMAPHORE_IDENT +@itemize - +@item only case: 171 +@end itemize + +@item SEMAPHORE_DELETE +@itemize - +@item only case: 19 +@end itemize + +@item SEMAPHORE_OBTAIN +@itemize - +@item available: 12 +@item not available -- NO_WAIT: 12 +@item not available -- caller blocks: 67 +@end itemize + +@item SEMAPHORE_RELEASE +@itemize - +@item no waiting tasks: 14 +@item task readied -- returns to caller: 23 +@item task readied -- preempts caller: 57 +@end itemize + +@end itemize +@end ifinfo +@end ifset + +@ifset use-html +@html +
+ + + + + + + + + + + + + + + + + + + + + +
SEMAPHORE_CREATE19
SEMAPHORE_IDENT171
SEMAPHORE_DELETE19
SEMAPHORE_OBTAIN
available
12
not available -- NO_WAIT
12
not available -- caller blocks
67
SEMAPHORE_RELEASE
no waiting tasks
14
task readied -- returns to caller
23
task readied -- preempts caller
57
+
+@end html +@end ifset + +@section Message Manager + +@ifset use-tex +@tex +\centerline{\vbox{\offinterlineskip\halign{ +\span\rtemstimetable +\rtemsonecase{MESSAGE\_QUEUE\_CREATE}{114} +\rtemsonecase{MESSAGE\_QUEUE\_IDENT}{159} +\rtemsonecase{MESSAGE\_QUEUE\_DELETE}{25} +\rtemsdirective{MESSAGE\_QUEUE\_SEND} +\rtemscase{no waiting tasks} + {36} +\rtemscase{task readied -- returns to caller} + {38} +\rtemscase{task readied -- preempts caller} + {76} +\rtemsdirective{MESSAGE\_QUEUE\_URGENT} +\rtemscase{no waiting tasks}{36} +\rtemscase{task readied -- returns to caller} + {38} +\rtemscase{task readied -- preempts caller} + {76} +\rtemsdirective{MESSAGE\_QUEUE\_BROADCAST} +\rtemscase{no waiting tasks}{15} +\rtemscase{task readied -- returns to caller} + {42} +\rtemscase{task readied -- preempts caller} + {83} +\rtemsdirective{MESSAGE\_QUEUE\_RECEIVE} +\rtemscase{available}{30} +\rtemscase{not available -- NO\_WAIT} + {13} +\rtemscase{not available -- caller blocks} + {67} +\rtemsdirective{MESSAGE\_QUEUE\_FLUSH} +\rtemscase{no messages flushed}{9} +\rtemscase{messages flushed}{13} +\rtemsendtimetable +}}\hfil} +@end tex +@end ifset + +@ifset use-ascii +@ifinfo +@itemize @bullet + +@item MESSAGE_QUEUE_CREATE +@itemize - +@item only case: 114 +@end itemize + +@item MESSAGE_QUEUE_IDENT +@itemize - +@item only case: 159 +@end itemize + +@item MESSAGE_QUEUE_DELETE +@itemize - +@item only case: 25 +@end itemize + +@item MESSAGE_QUEUE_SEND +@itemize - +@item no waiting tasks: 36 +@item task readied -- returns to caller: 38 +@item task readied -- preempts caller: 76 +@end itemize + +@item MESSAGE_QUEUE_URGENT +@itemize - +@item no waiting tasks: 36 +@item task readied -- returns to caller: 38 +@item task readied -- preempts caller: 76 +@end itemize + +@item MESSAGE_QUEUE_BROADCAST +@itemize - +@item no waiting tasks: 15 +@item task readied -- returns to caller: 42 +@item task readied -- preempts caller: 83 +@end itemize + +@item MESSAGE_QUEUE_RECEIVE +@itemize - +@item available: 30 +@item not available -- NO_WAIT: 13 +@item not available -- caller blocks: 67 +@end itemize + +@item MESSAGE_QUEUE_FLUSH +@itemize - +@item no messages flushed: 9 +@item messages flushed: 13 +@end itemize + +@end itemize +@end ifinfo +@end ifset + +@ifset use-html +@html +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MESSAGE_QUEUE_CREATE114
MESSAGE_QUEUE_IDENT159
MESSAGE_QUEUE_DELETE25
MESSAGE_QUEUE_SEND
no waiting tasks
36
task readied -- returns to caller
38
task readied -- preempts caller
76
MESSAGE_QUEUE_URGENT
no waiting tasks
36
task readied -- returns to caller
38
task readied -- preempts caller
76
MESSAGE_QUEUE_BROADCAST
no waiting tasks
15
task readied -- returns to caller
42
task readied -- preempts caller
83
MESSAGE_QUEUE_RECEIVE
available
30
not available -- NO_WAIT
13
not available -- caller blocks
67
MESSAGE_QUEUE_FLUSH
no messages flushed
9
messages flushed
13
+
+@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}{9} +\rtemscase{task readied -- returns to caller} + {22} +\rtemscase{task readied -- preempts caller} + {58} +\rtemsdirective{EVENT\_RECEIVE} +\rtemscase{obtain current events}{1} +\rtemscase{available}{10} +\rtemscase{not available -- NO\_WAIT}{9} +\rtemscase{not available -- caller blocks} + {60} +\rtemsendtimetable +}}\hfil} +@end tex +@end ifset + +@ifset use-ascii +@ifinfo +@itemize @bullet + +@item EVENT_SEND +@itemize - +@item no task readied: 9 +@item task readied -- returns to caller: 22 +@item task readied -- preempts caller: 58 +@end itemize + +@item EVENT_RECEIVE +@itemize - +@item obtain current events: 1 +@item available: 10 +@item not available -- NO_WAIT: 9 +@item not available -- caller blocks: 60 +@end itemize + +@end itemize +@end ifinfo +@end ifset + +@ifset use-html +@html +
+ + + + + + + + + + + + + + + + + + +
EVENT_SEND
no task readied
9
task readied -- returns to caller
22
task readied -- preempts caller
58
EVENT_RECEIVE
obtain current events
1
available
10
not available -- NO_WAIT
9
not available -- caller blocks
60
+
+@end html +@end ifset +@section Signal Manager + +@ifset use-tex +@tex +\centerline{\vbox{\offinterlineskip\halign{ +\span\rtemstimetable +\rtemsonecase{SIGNAL\_CATCH}{6} +\rtemsdirective{SIGNAL\_SEND} +\rtemscase{returns to caller}{14} +\rtemscase{signal to self}{22} +\rtemsdirective{EXIT ASR OVERHEAD} +\rtemscase{returns to calling task} + {27} +\rtemscase{returns to preempting task} + {56} +\rtemsendtimetable +}}\hfil} +@end tex +@end ifset + +@ifset use-ascii +@ifinfo +@itemize @bullet +@item SIGNAL_CATCH +@itemize - +@item only case: 6 +@end itemize + +@item SIGNAL_SEND +@itemize - +@item returns to caller: 14 +@item signal to self: 22 +@end itemize + +@item EXIT ASR OVERHEAD +@itemize - +@item returns to calling task: 27 +@item returns to preempting task: 56 +@end itemize + +@end itemize +@end ifinfo +@end ifset + +@ifset use-html +@html +
+ + + + + + + + + + + + + +
SIGNAL_CATCH6
SIGNAL_SEND
returns to caller
14
signal to self
22
EXIT ASR OVERHEAD
returns to calling task
+ 27
returns to preempting task
+ 56
+
+@end html +@end ifset + +@section Partition Manager + +@ifset use-tex +@tex +\centerline{\vbox{\offinterlineskip\halign{ +\span\rtemstimetable +\rtemsonecase{PARTITION\_CREATE}{34} +\rtemsonecase{PARTITION\_IDENT}{159} +\rtemsonecase{PARTITION\_DELETE}{14} +\rtemsdirective{PARTITION\_GET\_BUFFER} +\rtemscase{available}{12} +\rtemscase{not available}{10} +\rtemsonecase{PARTITION\_RETURN\_BUFFER} + {10} +\rtemsendtimetable +}}\hfil} +@end tex +@end ifset + +@ifset use-ascii +@ifinfo +@itemize @bullet + +@item PARTITION_CREATE +@itemize - +@item only case: 34 +@end itemize + +@item PARTITION_IDENT +@itemize - +@item only case: 159 +@end itemize + +@item PARTITION_DELETE +@itemize - +@item only case: 14 +@end itemize + +@item PARTITION_GET_BUFFER +@itemize - +@item available: 12 +@item not available: 10 +@end itemize + +@item PARTITION_RETURN_BUFFER +@itemize - +@item only case: 16 +@end itemize + +@end itemize +@end ifinfo +@end ifset + +@ifset use-html +@html +
+ + + + + + + + + + + + + + +
PARTITION_CREATE34
PARTITION_IDENT159
PARTITION_DELETE14
PARTITION_GET_BUFFER
available
12
not available
10
PARTITION_RETURN_BUFFER10
+
+@end html +@end ifset + +@page +@section Region Manager + +@ifset use-tex +@tex +\centerline{\vbox{\offinterlineskip\halign{ +\span\rtemstimetable +\rtemsonecase{REGION\_CREATE}{22} +\rtemsonecase{REGION\_IDENT}{162} +\rtemsonecase{REGION\_DELETE}{14} +\rtemsdirective{REGION\_GET\_SEGMENT} +\rtemscase{available}{19} +\rtemscase{not available -- NO\_WAIT} + {19} +\rtemscase{not available -- caller blocks} + {67} +\rtemsdirective{REGION\_RETURN\_SEGMENT} +\rtemscase{no waiting tasks}{17} +\rtemscase{task readied -- returns to caller} + {44} +\rtemscase{task readied -- preempts caller} + {77} +\rtemsendtimetable +}}\hfil} +@end tex +@end ifset + +@ifset use-ascii +@ifinfo +@itemize @bullet + +@item REGION_CREATE +@itemize - +@item only case: 22 +@end itemize + +@item REGION_IDENT +@itemize - +@item only case: 162 +@end itemize + +@item REGION_DELETE +@itemize - +@item only case: 14 +@end itemize + +@item REGION_GET_SEGMENT +@itemize - +@item available: 19 +@item not available -- NO_WAIT: 19 +@item not available -- caller blocks: 67 +@end itemize + +@item REGION_RETURN_SEGMENT +@itemize - +@item no waiting tasks: 17 +@item task readied -- returns to caller: 44 +@item task readied -- preempts caller: 77 +@end itemize + +@end itemize +@end ifinfo +@end ifset + +@ifset use-html +@html +
+ + + + + + + + + + + + + + + + + + + + + +
REGION_CREATE22
REGION_IDENT162
REGION_DELETE14
REGION_GET_SEGMENT
available
19
not available -- NO_WAIT
+ 19
not available -- caller blocks
+ 67
REGION_RETURN_SEGMENT
no waiting tasks
17
task readied -- returns to caller
+ 44
task readied -- preempts caller
+ 77
+
+@end html +@end ifset + +@section Dual-Ported Memory Manager + +@ifset use-tex +@tex +\centerline{\vbox{\offinterlineskip\halign{ +\span\rtemstimetable +\rtemsonecase{PORT\_CREATE}{14} +\rtemsonecase{PORT\_IDENT}{159} +\rtemsonecase{PORT\_DELETE}{13} +\rtemsonecase{PORT\_INTERNAL\_TO\_EXTERNAL} + {9} +\rtemsonecase{PORT\_EXTERNAL\_TO\_INTERNAL} + {9} +\rtemsendtimetable +}}\hfil} +@end tex +@end ifset + +@ifset use-ascii +@ifinfo +@itemize @bullet + +@item PORT_CREATE +@itemize - +@item only case: 14 +@end itemize + +@item PORT_IDENT +@itemize - +@item only case: 159 +@end itemize + +@item PORT_DELETE +@itemize - +@item only case: 13 +@end itemize + +@item PORT_INTERNAL_TO_EXTERNAL +@itemize - +@item only case: 9 +@end itemize + +@item PORT_EXTERNAL_TO_INTERNAL +@itemize - +@item only case: 9 +@end itemize + +@end itemize +@end ifinfo +@end ifset + +@ifset use-html +@html +
+ + + + + + + + + + + + +
PORT_CREATE14
PORT_IDENT159
PORT_DELETE13
PORT_INTERNAL_TO_EXTERNAL9
PORT_EXTERNAL_TO_INTERNAL9
+
+@end html +@end ifset + +@section I/O Manager + +@ifset use-tex +@tex +\centerline{\vbox{\offinterlineskip\halign{ +\span\rtemstimetable +\rtemsonecase{IO\_INITIALIZE}{2} +\rtemsonecase{IO\_OPEN}{1} +\rtemsonecase{IO\_CLOSE}{1} +\rtemsonecase{IO\_READ}{1} +\rtemsonecase{IO\_WRITE}{1} +\rtemsonecase{IO\_CONTROL}{1} +\rtemsendtimetable +}}\hfil} +@end tex +@end ifset + +@ifset use-ascii +@ifinfo +@itemize @bullet + +@item IO_INITIALIZE +@itemize - +@item only case: 2 +@end itemize + +@item IO_OPEN +@itemize - +@item only case: 1 +@end itemize + +@item IO_CLOSE +@itemize - +@item only case: 1 +@end itemize + +@item IO_READ +@itemize - +@item only case: 1 +@end itemize + +@item IO_WRITE +@itemize - +@item only case: 1 +@end itemize + +@item IO_CONTROL +@itemize - +@item only case: 1 +@end itemize + +@end itemize +@end ifinfo +@end ifset + +@ifset use-html +@html +
+ + + + + + + + + + + + + +
IO_INITIALIZE2
IO_OPEN1
IO_CLOSE1
IO_READ1
IO_WRITE1
IO_CONTROL1
+
+@end html +@end ifset + +@section Rate Monotonic Manager + +@ifset use-tex +@tex +\centerline{\vbox{\offinterlineskip\halign{ +\span\rtemstimetable +\rtemsonecase{RATE\_MONOTONIC\_CREATE}{12} +\rtemsonecase{RATE\_MONOTONIC\_IDENT}{159} +\rtemsonecase{RATE\_MONOTONIC\_CANCEL}{14} +\rtemsdirective{RATE\_MONOTONIC\_DELETE} +\rtemscase{active}{19} +\rtemscase{inactive}{16} +\rtemsdirective{RATE\_MONOTONIC\_PERIOD} +\rtemscase{initiate period -- returns to caller} + {20} +\rtemscase{conclude period -- caller blocks} + {55} +\rtemscase{obtain status}{9} +\rtemsendtimetable +}}\hfil} +@end tex +@end ifset + +@ifset use-ascii +@ifinfo +@itemize @bullet + +@item RATE_MONOTONIC_CREATE +@itemize - +@item only case: 12 +@end itemize + +@item RATE_MONOTONIC_IDENT +@itemize - +@item only case: 159 +@end itemize + +@item RATE_MONOTONIC_CANCEL +@itemize - +@item only case: 14 +@end itemize + +@item RATE_MONOTONIC_DELETE +@itemize - +@item active: 19 +@item inactive: 16 +@end itemize + +@item RATE_MONOTONIC_PERIOD +@itemize - +@item initiate period -- returns to caller: 20 +@item conclude period -- caller blocks: 55 +@item obtain status: 9 +@end itemize + +@end itemize +@end ifinfo +@end ifset + +@ifset use-html +@html +
+ + + + + + + + + + + + + + + + + + + +
RATE_MONOTONIC_CREATE12
RATE_MONOTONIC_IDENT159
RATE_MONOTONIC_CANCEL14
RATE_MONOTONIC_DELETE
active
19
inactive
16
RATE_MONOTONIC_PERIOD
initiate period -- returns to caller
+ 20
conclude period -- caller blocks
+ 55
obtain status
9
+
+@end html +@end ifset + +@tex +\global\advance \smallskipamount by 4pt +@end tex + +@tex +\global\advance \smallskipamount by 4pt +@end tex -- cgit v1.2.3