forked from Imagelibrary/rtems
2003-01-22 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* wksheets.texi: Remove from CVS. * timing.texi: Remove from CVS.
This commit is contained in:
@@ -1,3 +1,8 @@
|
||||
2003-01-22 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* wksheets.texi: Remove from CVS.
|
||||
* timing.texi: Remove from CVS.
|
||||
|
||||
2003-01-21 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* stamp-vti, version.texi: Regenerated.
|
||||
|
||||
@@ -1,460 +0,0 @@
|
||||
@c
|
||||
@c COPYRIGHT (c) 1988-2002.
|
||||
@c On-Line Applications Research Corporation (OAR).
|
||||
@c All rights reserved.
|
||||
@c
|
||||
@c $Id$
|
||||
@c
|
||||
|
||||
|
||||
@node Timing Specification, Timing Specification Introduction, Memory Requirements RTEMS RAM Workspace Worksheet, Top
|
||||
|
||||
@chapter Timing Specification
|
||||
@ifinfo
|
||||
@menu
|
||||
* Timing Specification Introduction::
|
||||
* Timing Specification Philosophy::
|
||||
* Timing Specification Methodology::
|
||||
@end menu
|
||||
@end ifinfo
|
||||
|
||||
|
||||
@node Timing Specification Introduction, Timing Specification Philosophy, Timing Specification, 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.
|
||||
|
||||
|
||||
@node Timing Specification Philosophy, Timing Specification Determinancy, Timing Specification Introduction, Timing Specification
|
||||
|
||||
@section Philosophy
|
||||
@ifinfo
|
||||
@menu
|
||||
* Timing Specification Determinancy::
|
||||
* Timing Specification Interrupt Latency::
|
||||
* Timing Specification Context Switch Time::
|
||||
* Timing Specification Directive Times::
|
||||
@end menu
|
||||
@end ifinfo
|
||||
|
||||
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.
|
||||
|
||||
|
||||
@node Timing Specification Determinancy, Timing Specification Interrupt Latency, Timing Specification Philosophy, Timing Specification Philosophy
|
||||
|
||||
@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).
|
||||
|
||||
|
||||
@node Timing Specification Interrupt Latency, Timing Specification Context Switch Time, Timing Specification Determinancy, Timing Specification Philosophy
|
||||
|
||||
@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.
|
||||
|
||||
|
||||
@node Timing Specification Context Switch Time, Timing Specification Directive Times, Timing Specification Interrupt Latency, Timing Specification Philosophy
|
||||
|
||||
@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.
|
||||
|
||||
|
||||
@node Timing Specification Directive Times, Timing Specification Methodology, Timing Specification Context Switch Time, Timing Specification Philosophy
|
||||
|
||||
@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.
|
||||
|
||||
|
||||
@node Timing Specification Methodology, Timing Specification Software Platform, Timing Specification Directive Times, Timing Specification
|
||||
|
||||
@section Methodology
|
||||
@ifinfo
|
||||
@menu
|
||||
* Timing Specification Software Platform::
|
||||
* Timing Specification Hardware Platform::
|
||||
* Timing Specification What is measured?::
|
||||
* Timing Specification What is not measured?::
|
||||
* Timing Specification Terminology::
|
||||
@end menu
|
||||
@end ifinfo
|
||||
|
||||
|
||||
@node Timing Specification Software Platform, Timing Specification Hardware Platform, Timing Specification Methodology, Timing Specification 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.
|
||||
|
||||
|
||||
@node Timing Specification Hardware Platform, Timing Specification What is measured?, Timing Specification Software Platform, Timing Specification Methodology
|
||||
|
||||
@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.
|
||||
|
||||
|
||||
@node Timing Specification What is measured?, Timing Specification What is not measured?, Timing Specification Hardware Platform, Timing Specification Methodology
|
||||
|
||||
@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.
|
||||
|
||||
|
||||
@node Timing Specification What is not measured?, Timing Specification Terminology, Timing Specification What is measured?, Timing Specification Methodology
|
||||
|
||||
@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.
|
||||
|
||||
|
||||
@node Timing Specification Terminology, MYBSP Timing Data, Timing Specification What is not measured?, Timing Specification Methodology
|
||||
|
||||
@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
|
||||
|
||||
|
||||
@@ -1,437 +0,0 @@
|
||||
@c ****** This comment is here to remind you not to edit the wksheets.t
|
||||
@c ****** in any directory but common.
|
||||
@c
|
||||
@c Figures ...
|
||||
@c RTEMS RAM Workspace Worksheet
|
||||
@c RTEMS Code Space Worksheet
|
||||
@c
|
||||
@c COPYRIGHT (c) 1988-2002.
|
||||
@c On-Line Applications Research Corporation (OAR).
|
||||
@c All rights reserved.
|
||||
@c
|
||||
@c $Id$
|
||||
@c
|
||||
|
||||
|
||||
@node Memory Requirements, Memory Requirements Introduction, Processor Dependent Information Table CPU Dependent Information Table, Top
|
||||
|
||||
@chapter Memory Requirements
|
||||
@ifinfo
|
||||
@menu
|
||||
* Memory Requirements Introduction::
|
||||
* Memory Requirements Data Space Requirements::
|
||||
* Memory Requirements Minimum and Maximum Code Space Requirements::
|
||||
* Memory Requirements RTEMS Code Space Worksheet::
|
||||
* Memory Requirements RTEMS RAM Workspace Worksheet::
|
||||
@end menu
|
||||
@end ifinfo
|
||||
|
||||
|
||||
@node Memory Requirements Introduction, Memory Requirements Data Space Requirements, Memory Requirements, Memory Requirements
|
||||
|
||||
@section Introduction
|
||||
|
||||
Memory is typically a limited resource in real-time
|
||||
embedded systems, therefore, RTEMS can be configured to utilize
|
||||
the minimum amount of memory while meeting all of the
|
||||
applications requirements. Worksheets are provided which allow
|
||||
the RTEMS application developer to determine the amount of RTEMS
|
||||
code and RAM workspace which is required by the particular
|
||||
configuration. Also provided are the minimum code space,
|
||||
maximum code space, and the constant data space required by
|
||||
RTEMS.
|
||||
|
||||
|
||||
@node Memory Requirements Data Space Requirements, Memory Requirements Minimum and Maximum Code Space Requirements, Memory Requirements Introduction, Memory Requirements
|
||||
|
||||
@section Data Space Requirements
|
||||
|
||||
RTEMS requires a small amount of memory for its
|
||||
private variables. This data area must be in RAM and is
|
||||
separate from the RTEMS RAM Workspace. The following
|
||||
illustrates the data space required for all configurations of
|
||||
RTEMS:
|
||||
|
||||
@itemize @bullet
|
||||
@item Data Space: na
|
||||
@end itemize
|
||||
|
||||
|
||||
@node Memory Requirements Minimum and Maximum Code Space Requirements, Memory Requirements RTEMS Code Space Worksheet, Memory Requirements Data Space Requirements, Memory Requirements
|
||||
|
||||
@section Minimum and Maximum Code Space Requirements
|
||||
|
||||
A maximum configuration of RTEMS includes the core
|
||||
and all managers, including the multiprocessing manager.
|
||||
Conversely, a minimum configuration of RTEMS includes only the
|
||||
core and the following managers: initialization, task, interrupt
|
||||
and fatal error. The following illustrates the code space
|
||||
required by these configurations of RTEMS:
|
||||
|
||||
@itemize @bullet
|
||||
@item Minimum Configuration: na
|
||||
@item Maximum Configuration: na
|
||||
@end itemize
|
||||
|
||||
|
||||
@node Memory Requirements RTEMS Code Space Worksheet, Memory Requirements RTEMS RAM Workspace Worksheet, Memory Requirements Minimum and Maximum Code Space Requirements, Memory Requirements
|
||||
|
||||
@section RTEMS Code Space Worksheet
|
||||
|
||||
The RTEMS Code Space Worksheet is a tool provided to
|
||||
aid the RTEMS application designer to accurately calculate the
|
||||
memory required by the RTEMS run-time environment. RTEMS allows
|
||||
the custom configuration of the executive by optionally
|
||||
excluding managers which are not required by a particular
|
||||
application. This worksheet provides the included and excluded
|
||||
size of each manager in tabular form allowing for the quick
|
||||
calculation of any custom configuration of RTEMS. The RTEMS
|
||||
Code Space Worksheet is below:
|
||||
|
||||
@ifset use-ascii
|
||||
@page
|
||||
@end ifset
|
||||
@ifset use-tex
|
||||
@page
|
||||
@end ifset
|
||||
|
||||
@page
|
||||
@center @b{RTEMS Code Space Worksheet}
|
||||
@sp 1
|
||||
|
||||
@ifset use-ascii
|
||||
|
||||
The following is a list of the components of the RTEMS code space. The first
|
||||
number in parentheses is the size when the component is included,
|
||||
while the second number indicates its size when not included. If the second
|
||||
number is "NA", then the component must always be included.
|
||||
|
||||
@itemize @bullet
|
||||
@item Core (na, NA)
|
||||
@item Initialization (na, NA)
|
||||
@item Task (na, NA)
|
||||
@item Interrupt (na, NA)
|
||||
@item Clock (na, NA)
|
||||
@item Timer (na, na)
|
||||
@item Semaphore (na, na)
|
||||
@item Message (na, na)
|
||||
@item Event (na, na)
|
||||
@item Signal (na, na)
|
||||
@item Partition (na, na)
|
||||
@item Region (na, na)
|
||||
@item Dual Ported Memory (na, na)
|
||||
@item I/O (na, na)
|
||||
@item Fatal Error (na, NA)
|
||||
@item Rate Monotonic (na, na)
|
||||
@item Multiprocessing (na, na)
|
||||
@end itemize
|
||||
@end ifset
|
||||
|
||||
@ifset use-tex
|
||||
|
||||
@tex
|
||||
\line{\hskip 0.50in\vbox{\offinterlineskip\halign{
|
||||
\vrule\strut#&
|
||||
\hbox to 2.25in{\enskip\hfil#\hfil}&
|
||||
\vrule#&
|
||||
\hbox to 1.00in{\enskip\hfil#\hfil}&
|
||||
\vrule#&
|
||||
\hbox to 1.00in{\enskip\hfil#\hfil}&
|
||||
\vrule#&
|
||||
\hbox to 1.25in{\enskip\hfil#\hfil}&
|
||||
\vrule#\cr
|
||||
\noalign{\hrule}
|
||||
&\bf Component && \bf Included && \bf Not Included && \bf Size &\cr\noalign{\hrule}
|
||||
&Core && na && NA && &\cr\noalign{\hrule}
|
||||
&Initialization && na && NA && &\cr\noalign{\hrule}
|
||||
&Task && na && NA && &\cr\noalign{\hrule}
|
||||
&Interrupt && na && NA && &\cr\noalign{\hrule}
|
||||
&Clock && na && NA && &\cr\noalign{\hrule}
|
||||
&Timer && na && na && &\cr\noalign{\hrule}
|
||||
&Semaphore && na && na && &\cr\noalign{\hrule}
|
||||
&Message && na && na && &\cr\noalign{\hrule}
|
||||
&Event && na && na && &\cr\noalign{\hrule}
|
||||
&Signal && na && na && &\cr\noalign{\hrule}
|
||||
&Partition && na && na && &\cr\noalign{\hrule}
|
||||
&Region && na && na && &\cr\noalign{\hrule}
|
||||
&Dual Ported Memory && na && na && &\cr\noalign{\hrule}
|
||||
&I/O && na && na && &\cr\noalign{\hrule}
|
||||
&Fatal Error && na && NA && &\cr\noalign{\hrule}
|
||||
&Rate Monotonic && na && na && &\cr\noalign{\hrule}
|
||||
&Multiprocessing && na && na && &\cr\noalign{\hrule}
|
||||
&\multispan 5 \bf\hfil Total Code Space Requirements\qquad\hfil&&&\cr\noalign{\hrule}
|
||||
}}\hfil}
|
||||
@end tex
|
||||
@end ifset
|
||||
|
||||
@ifset use-html
|
||||
@html
|
||||
<CENTER>
|
||||
<TABLE COLS=4 WIDTH="80%" BORDER=2>
|
||||
<TR><TD ALIGN=center><STRONG>Component</STRONG></TD>
|
||||
<TD ALIGN=center><STRONG>Included</STRONG></TD>
|
||||
<TD ALIGN=center><STRONG>Not Included</STRONG></TD>
|
||||
<TD ALIGN=center><STRONG>Size</STRONG></TD></TR>
|
||||
<TR><TD ALIGN=center>Core</TD>
|
||||
<TD ALIGN=center>na</TD>
|
||||
<TD ALIGN=center>NA</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=center>Initialization</TD>
|
||||
<TD ALIGN=center>na</TD>
|
||||
<TD ALIGN=center>NA</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=center>Task</TD>
|
||||
<TD ALIGN=center>na</TD>
|
||||
<TD ALIGN=center>NA</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=center>Interrupt</TD>
|
||||
<TD ALIGN=center>na</TD>
|
||||
<TD ALIGN=center>NA</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=center>Clock</TD>
|
||||
<TD ALIGN=center>na</TD>
|
||||
<TD ALIGN=center>NA</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=center>Timer</TD>
|
||||
<TD ALIGN=center>na</TD>
|
||||
<TD ALIGN=center>na</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=center>Semaphore</TD>
|
||||
<TD ALIGN=center>na</TD>
|
||||
<TD ALIGN=center>na</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=center>Message</TD>
|
||||
<TD ALIGN=center>na</TD>
|
||||
<TD ALIGN=center>na</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=center>Event</TD>
|
||||
<TD ALIGN=center>na</TD>
|
||||
<TD ALIGN=center>na</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=center>Signal</TD>
|
||||
<TD ALIGN=center>na</TD>
|
||||
<TD ALIGN=center>na</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=center>Partition</TD>
|
||||
<TD ALIGN=center>na</TD>
|
||||
<TD ALIGN=center>na</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=center>Region</TD>
|
||||
<TD ALIGN=center>na</TD>
|
||||
<TD ALIGN=center>na</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=center>Dual Ported Memory</TD>
|
||||
<TD ALIGN=center>na</TD>
|
||||
<TD ALIGN=center>na</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=center>I/O</TD>
|
||||
<TD ALIGN=center>na</TD>
|
||||
<TD ALIGN=center>na</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=center>Fatal Error</TD>
|
||||
<TD ALIGN=center>na</TD>
|
||||
<TD ALIGN=center>NA</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=center>Rate Monotonic</TD>
|
||||
<TD ALIGN=center>na</TD>
|
||||
<TD ALIGN=center>na</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=center>Multiprocessing</TD>
|
||||
<TD ALIGN=center>na</TD>
|
||||
<TD ALIGN=center>na</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=center COLSPAN=3>
|
||||
<STRONG>Total Code Space Requirements</STRONG></TD>
|
||||
<TD><BR></TD></TR>
|
||||
</TABLE>
|
||||
</CENTER>
|
||||
@end html
|
||||
@end ifset
|
||||
|
||||
@page
|
||||
|
||||
@c ****** Next node is set by a sed script in the document Makefile.
|
||||
@c ****** This comment is here to remind you not to edit the wksheets.t
|
||||
@c ****** in any directory but common.
|
||||
|
||||
|
||||
@node Memory Requirements RTEMS RAM Workspace Worksheet, Timing Specification, Memory Requirements RTEMS Code Space Worksheet, Memory Requirements
|
||||
|
||||
@section RTEMS RAM Workspace Worksheet
|
||||
|
||||
The RTEMS RAM Workspace Worksheet is a tool provided
|
||||
to aid the RTEMS application designer to accurately calculate
|
||||
the minimum memory block to be reserved for RTEMS use. This
|
||||
worksheet provides equations for calculating the amount of
|
||||
memory required based upon the number of objects configured,
|
||||
whether for single or multiple processor versions of the
|
||||
executive. This information is presented in tabular form, along
|
||||
with the fixed system requirements, allowing for quick
|
||||
calculation of any application defined configuration of RTEMS.
|
||||
The RTEMS RAM Workspace Worksheet is provided below:
|
||||
|
||||
@ifset use-ascii
|
||||
@page
|
||||
@end ifset
|
||||
@ifset use-tex
|
||||
@sp 2
|
||||
@end ifset
|
||||
|
||||
@center @b{RTEMS RAM Workspace Worksheet}
|
||||
@sp 2
|
||||
|
||||
@ifset use-ascii
|
||||
The total RTEMS RAM Workspace required is the sum of the following:
|
||||
|
||||
@itemize @bullet
|
||||
@item maximum_tasks * na
|
||||
@item maximum_timers * na
|
||||
@item maximum_semaphores * na
|
||||
@item maximum_message_queues * na
|
||||
@item maximum_regions * na
|
||||
@item maximum_partitions * na
|
||||
@item maximum_ports * na
|
||||
@item maximum_periods * na
|
||||
@item maximum_extensions * na
|
||||
@item Floating Point Tasks * na
|
||||
@item Task Stacks
|
||||
@item maximum_nodes * na
|
||||
@item maximum_global_objects * na
|
||||
@item maximum_proxies * na
|
||||
@item Fixed System Requirements of na
|
||||
@end itemize
|
||||
@end ifset
|
||||
|
||||
@ifset use-tex
|
||||
@tex
|
||||
\line{\hskip 0.75in\vbox{\offinterlineskip\halign{
|
||||
\vrule\strut#&
|
||||
\hbox to 3.0in{\enskip\hfil#\hfil}&
|
||||
\vrule#&
|
||||
\hbox to 0.75in{\enskip\hfil#\hfil}&
|
||||
\vrule#&
|
||||
\hbox to 1.25in{\enskip\hfil#\hfil}&
|
||||
\vrule#\cr
|
||||
\noalign{\hrule}
|
||||
& \bf Description && \bf Equation && \bf Bytes Required &\cr\noalign{\hrule}
|
||||
& maximum\_tasks && * na = &&&\cr\noalign{\hrule}
|
||||
& maximum\_timers && * na = &&&\cr\noalign{\hrule}
|
||||
& maximum\_semaphores && * na = &&&\cr\noalign{\hrule}
|
||||
& maximum\_message\_queues && * na = &&&\cr\noalign{\hrule}
|
||||
& maximum\_regions && * na = &&&\cr\noalign{\hrule}
|
||||
& maximum\_partitions && * na = &&&\cr\noalign{\hrule}
|
||||
& maximum\_ports && * na = &&&\cr\noalign{\hrule}
|
||||
& maximum\_periods && * na = &&&\cr\noalign{\hrule}
|
||||
& maximum\_extensions && * na = &&&\cr\noalign{\hrule}
|
||||
& Floating Point Tasks && * na = &&&\cr\noalign{\hrule}
|
||||
& Task Stacks &&\hskip 2.3em=&&&\cr\noalign{\hrule}
|
||||
& Total Single Processor Requirements &&&&&\cr\noalign{\hrule}
|
||||
}}\hfil}
|
||||
|
||||
\line{\hskip 0.75in\vbox{\offinterlineskip\halign{
|
||||
\vrule\strut#&
|
||||
\hbox to 3.0in{\enskip\hfil#\hfil}&
|
||||
\vrule#&
|
||||
\hbox to 0.75in{\enskip\hfil#\hfil}&
|
||||
\vrule#&
|
||||
\hbox to 1.25in{\enskip\hfil#\hfil}&
|
||||
\vrule#\cr
|
||||
\noalign{\hrule}
|
||||
& \bf Description && \bf Equation && \bf Bytes Required &\cr\noalign{\hrule}
|
||||
& maximum\_nodes && * na = &&&\cr\noalign{\hrule}
|
||||
& maximum\_global\_objects && * na = &&&\cr\noalign{\hrule}
|
||||
& maximum\_proxies && * na = &&&\cr\noalign{\hrule}
|
||||
}}\hfil}
|
||||
|
||||
\line{\hskip 0.75in\vbox{\offinterlineskip\halign{
|
||||
\vrule\strut#&
|
||||
\hbox to 3.0in{\enskip\hfil#\hfil}&
|
||||
\vrule#&
|
||||
\hbox to 0.75in{\enskip\hfil#\hfil}&
|
||||
\vrule#&
|
||||
\hbox to 1.25in{\enskip\hfil#\hfil}&
|
||||
\vrule#\cr
|
||||
\noalign{\hrule}
|
||||
& Total Multiprocessing Requirements &&&&&\cr\noalign{\hrule}
|
||||
& Fixed System Requirements && na &&&\cr\noalign{\hrule}
|
||||
& Total Single Processor Requirements &&&&&\cr\noalign{\hrule}
|
||||
& Total Multiprocessing Requirements &&&&&\cr\noalign{\hrule}
|
||||
& Minimum Bytes for RTEMS Workspace &&&&&\cr\noalign{\hrule}
|
||||
}}\hfil}
|
||||
@end tex
|
||||
@end ifset
|
||||
|
||||
@ifset use-html
|
||||
@html
|
||||
<CENTER>
|
||||
<TABLE COLS=3 WIDTH="80%" BORDER=2>
|
||||
<TR><TD ALIGN=center><STRONG>Description</STRONG></TD>
|
||||
<TD ALIGN=center><STRONG>Equation</STRONG></TD>
|
||||
<TD ALIGN=center><STRONG>Bytes Required</STRONG></TD></TR>
|
||||
<TR><TD ALIGN=left>maximum_tasks</TD>
|
||||
<TD ALIGN=right>* na =</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=left>maximum_timers</TD>
|
||||
<TD ALIGN=right>* na =</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=left>maximum_semaphores</TD>
|
||||
<TD ALIGN=right>* na =</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=left>maximum_message_queues</TD>
|
||||
<TD ALIGN=right>* na =</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=left>maximum_regions</TD>
|
||||
<TD ALIGN=right>* na =</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=left>maximum_partitions</TD>
|
||||
<TD ALIGN=right>* na =</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=left>maximum_ports</TD>
|
||||
<TD ALIGN=right>* na =</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=left>maximum_periods</TD>
|
||||
<TD ALIGN=right>* na =</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=left>maximum_extensions</TD>
|
||||
<TD ALIGN=right>* na =</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=left>Floating Point Tasks</TD>
|
||||
<TD ALIGN=right>* na =</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=left COLSPAN=2>Task Stacks</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=left COLSPAN=2>
|
||||
<STRONG>Total Single Processor Requirements</STRONG></TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR></TR>
|
||||
<TR><TD ALIGN=center><STRONG>Description</STRONG></TD>
|
||||
<TD ALIGN=center><STRONG>Equation</STRONG></TD>
|
||||
<TD ALIGN=center><STRONG>Bytes Required</STRONG></TD></TR>
|
||||
<TR><TD ALIGN=left>maximum_nodes</TD>
|
||||
<TD ALIGN=right>* na =</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=left>maximum_global_objects</TD>
|
||||
<TD ALIGN=right>* na =</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=left>maximum_proxies</TD>
|
||||
<TD ALIGN=right>* na =</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=left COLSPAN=2>
|
||||
<STRONG>Total Multiprocessing Requirements</STRONG></TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR></TR>
|
||||
<TR><TD ALIGN=left COLSPAN=2>Fixed System Requirements</TD>
|
||||
<TD ALIGN=center>na</TD></TR>
|
||||
<TR><TD ALIGN=left COLSPAN=2>Total Single Processor Requirements</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=left COLSPAN=2>Total Multiprocessing Requirements</TD>
|
||||
<TD><BR></TD></TR>
|
||||
<TR><TD ALIGN=left COLSPAN=2>
|
||||
<STRONG>Minimum Bytes for RTEMS Workspace</STRONG></TD>
|
||||
<TD><BR></TD></TR>
|
||||
</TABLE>
|
||||
</CENTER>
|
||||
@end html
|
||||
@end ifset
|
||||
|
||||
|
||||
Reference in New Issue
Block a user