diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1997-05-27 12:40:11 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1997-05-27 12:40:11 +0000 |
commit | ae68ff085724dd35d60151bd153e80b8b0776873 (patch) | |
tree | 2f1535a0497f5b872a4744ae13c9264b77e89c11 /doc/common/wksheets.t | |
parent | This commit was generated by cvs2svn to compensate for changes in r832, (diff) | |
download | rtems-ae68ff085724dd35d60151bd153e80b8b0776873.tar.bz2 |
Initial revision
Diffstat (limited to '')
-rw-r--r-- | doc/common/wksheets.t | 424 |
1 files changed, 424 insertions, 0 deletions
diff --git a/doc/common/wksheets.t b/doc/common/wksheets.t new file mode 100644 index 0000000000..8f2334dd93 --- /dev/null +++ b/doc/common/wksheets.t @@ -0,0 +1,424 @@ +@c +@c Figures ... +@c RTEMS RAM Workspace Worksheet +@c RTEMS Code Space Worksheet +@c + +@ifinfo +@node Memory Requirements, Memory Requirements Introduction, WORKSHEETS_PREVIOUS_LINK, Top +@end ifinfo +@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 + +@ifinfo +@node Memory Requirements Introduction, Memory Requirements Data Space Requirements, Memory Requirements, Memory Requirements +@end ifinfo +@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. + +@ifinfo +@node Memory Requirements Data Space Requirements, Memory Requirements Minimum and Maximum Code Space Requirements, Memory Requirements Introduction, Memory Requirements +@end ifinfo +@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: RTEMS_DATA_SPACE +@end itemize + +@ifinfo +@node Memory Requirements Minimum and Maximum Code Space Requirements, Memory Requirements RTEMS Code Space Worksheet, Memory Requirements Data Space Requirements, Memory Requirements +@end ifinfo +@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: RTEMS_MINIMUM_CONFIGURATION +@item Maximum Configuration: RTEMS_MAXIMUM_CONFIGURATION +@end itemize + +@ifinfo +@node Memory Requirements RTEMS Code Space Worksheet, Memory Requirements RTEMS RAM Workspace Worksheet, Memory Requirements Minimum and Maximum Code Space Requirements, Memory Requirements +@end ifinfo +@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 (RTEMS_CORE_CODE_SIZE, NA) +@item Initialization (RTEMS_INITIALIZATION_CODE_SIZE, NA) +@item Task (RTEMS_TASK_CODE_SIZE, NA) +@item Interrupt (RTEMS_INTERRUPT_CODE_SIZE, NA) +@item Clock (RTEMS_CLOCK_CODE_SIZE, NA) +@item Timer (RTEMS_TIMER_CODE_SIZE, RTEMS_TIMER_CODE_OPTSIZE) +@item Semaphore (RTEMS_SEMAPHORE_CODE_SIZE, RTEMS_SEMAPHORE_CODE_OPTSIZE) +@item Message (RTEMS_MESSAGE_CODE_SIZE, RTEMS_MESSAGE_CODE_OPTSIZE) +@item Event (RTEMS_EVENT_CODE_SIZE, RTEMS_EVENT_CODE_OPTSIZE) +@item Signal (RTEMS_SIGNAL_CODE_SIZE, RTEMS_SIGNAL_CODE_OPTSIZE) +@item Partition (RTEMS_PARTITION_CODE_SIZE, RTEMS_PARTITION_CODE_OPTSIZE) +@item Region (RTEMS_REGION_CODE_SIZE, RTEMS_REGION_CODE_OPTSIZE) +@item Dual Ported Memory (RTEMS_DPMEM_CODE_SIZE, RTEMS_DPMEM_CODE_OPTSIZE) +@item I/O (RTEMS_IO_CODE_SIZE, RTEMS_IO_CODE_OPTSIZE) +@item Fatal Error (RTEMS_FATAL_ERROR_CODE_SIZE, NA) +@item Rate Monotonic (RTEMS_RATE_MONOTONIC_CODE_SIZE, RTEMS_RATE_MONOTONIC_CODE_OPTSIZE) +@item Multiprocessing (RTEMS_MULTIPROCESSING_CODE_SIZE, RTEMS_MULTIPROCESSING_CODE_OPTSIZE) +@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 && RTEMS_CORE_CODE_SIZE && NA && &\cr\noalign{\hrule} +&Initialization && RTEMS_INITIALIZATION_CODE_SIZE && NA && &\cr\noalign{\hrule} +&Task && RTEMS_TASK_CODE_SIZE && NA && &\cr\noalign{\hrule} +&Interrupt && RTEMS_INTERRUPT_CODE_SIZE && NA && &\cr\noalign{\hrule} +&Clock && RTEMS_CLOCK_CODE_SIZE && NA && &\cr\noalign{\hrule} +&Timer && RTEMS_TIMER_CODE_SIZE && RTEMS_TIMER_CODE_OPTSIZE && &\cr\noalign{\hrule} +&Semaphore && RTEMS_SEMAPHORE_CODE_SIZE && RTEMS_SEMAPHORE_CODE_OPTSIZE && &\cr\noalign{\hrule} +&Message && RTEMS_MESSAGE_CODE_SIZE && RTEMS_MESSAGE_CODE_OPTSIZE && &\cr\noalign{\hrule} +&Event && RTEMS_EVENT_CODE_SIZE && RTEMS_EVENT_CODE_OPTSIZE && &\cr\noalign{\hrule} +&Signal && RTEMS_SIGNAL_CODE_SIZE && RTEMS_SIGNAL_CODE_OPTSIZE && &\cr\noalign{\hrule} +&Partition && RTEMS_PARTITION_CODE_SIZE && RTEMS_PARTITION_CODE_OPTSIZE && &\cr\noalign{\hrule} +&Region && RTEMS_REGION_CODE_SIZE && RTEMS_REGION_CODE_OPTSIZE && &\cr\noalign{\hrule} +&Dual Ported Memory && RTEMS_DPMEM_CODE_SIZE && RTEMS_DPMEM_CODE_OPTSIZE && &\cr\noalign{\hrule} +&I/O && RTEMS_IO_CODE_SIZE && RTEMS_IO_CODE_OPTSIZE && &\cr\noalign{\hrule} +&Fatal Error && RTEMS_FATAL_ERROR_CODE_SIZE && NA && &\cr\noalign{\hrule} +&Rate Monotonic && RTEMS_RATE_MONOTONIC_CODE_SIZE && RTEMS_RATE_MONOTONIC_CODE_OPTSIZE && &\cr\noalign{\hrule} +&Multiprocessing && RTEMS_MULTIPROCESSING_CODE_SIZE && RTEMS_MULTIPROCESSING_CODE_OPTSIZE && &\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>RTEMS_CORE_CODE_SIZE</TD> + <TD ALIGN=center>NA</TD> + <TD><BR></TD></TR> +<TR><TD ALIGN=center>Initialization</TD> + <TD ALIGN=center>RTEMS_INITIALIZATION_CODE_SIZE</TD> + <TD ALIGN=center>NA</TD> + <TD><BR></TD></TR> +<TR><TD ALIGN=center>Task</TD> + <TD ALIGN=center>RTEMS_TASK_CODE_SIZE</TD> + <TD ALIGN=center>NA</TD> + <TD><BR></TD></TR> +<TR><TD ALIGN=center>Interrupt</TD> + <TD ALIGN=center>RTEMS_INTERRUPT_CODE_SIZE</TD> + <TD ALIGN=center>NA</TD> + <TD><BR></TD></TR> +<TR><TD ALIGN=center>Clock</TD> + <TD ALIGN=center>RTEMS_CLOCK_CODE_SIZE</TD> + <TD ALIGN=center>NA</TD> + <TD><BR></TD></TR> +<TR><TD ALIGN=center>Timer</TD> + <TD ALIGN=center>RTEMS_TIMER_CODE_SIZE</TD> + <TD ALIGN=center>RTEMS_TIMER_CODE_OPTSIZE</TD> + <TD><BR></TD></TR> +<TR><TD ALIGN=center>Semaphore</TD> + <TD ALIGN=center>RTEMS_SEMAPHORE_CODE_SIZE</TD> + <TD ALIGN=center>RTEMS_SEMAPHORE_CODE_OPTSIZE</TD> + <TD><BR></TD></TR> +<TR><TD ALIGN=center>Message</TD> + <TD ALIGN=center>RTEMS_MESSAGE_CODE_SIZE</TD> + <TD ALIGN=center>RTEMS_MESSAGE_CODE_OPTSIZE</TD> + <TD><BR></TD></TR> +<TR><TD ALIGN=center>Event</TD> + <TD ALIGN=center>RTEMS_EVENT_CODE_SIZE</TD> + <TD ALIGN=center>RTEMS_EVENT_CODE_OPTSIZE</TD> + <TD><BR></TD></TR> +<TR><TD ALIGN=center>Signal</TD> + <TD ALIGN=center>RTEMS_SIGNAL_CODE_SIZE</TD> + <TD ALIGN=center>RTEMS_SIGNAL_CODE_OPTSIZE</TD> + <TD><BR></TD></TR> +<TR><TD ALIGN=center>Partition</TD> + <TD ALIGN=center>RTEMS_PARTITION_CODE_SIZE</TD> + <TD ALIGN=center>RTEMS_PARTITION_CODE_OPTSIZE</TD> + <TD><BR></TD></TR> +<TR><TD ALIGN=center>Region</TD> + <TD ALIGN=center>RTEMS_REGION_CODE_SIZE</TD> + <TD ALIGN=center>RTEMS_REGION_CODE_OPTSIZE</TD> + <TD><BR></TD></TR> +<TR><TD ALIGN=center>Dual Ported Memory</TD> + <TD ALIGN=center>RTEMS_DPMEM_CODE_SIZE</TD> + <TD ALIGN=center>RTEMS_DPMEM_CODE_OPTSIZE</TD> + <TD><BR></TD></TR> +<TR><TD ALIGN=center>I/O</TD> + <TD ALIGN=center>RTEMS_IO_CODE_SIZE</TD> + <TD ALIGN=center>RTEMS_IO_CODE_OPTSIZE</TD> + <TD><BR></TD></TR> +<TR><TD ALIGN=center>Fatal Error</TD> + <TD ALIGN=center>RTEMS_FATAL_ERROR_CODE_SIZE</TD> + <TD ALIGN=center>NA</TD> + <TD><BR></TD></TR> +<TR><TD ALIGN=center>Rate Monotonic</TD> + <TD ALIGN=center>RTEMS_RATE_MONOTONIC_CODE_SIZE</TD> + <TD ALIGN=center>RTEMS_RATE_MONOTONIC_CODE_OPTSIZE</TD> + <TD><BR></TD></TR> +<TR><TD ALIGN=center>Multiprocessing</TD> + <TD ALIGN=center>RTEMS_MULTIPROCESSING_CODE_SIZE</TD> + <TD ALIGN=center>RTEMS_MULTIPROCESSING_CODE_OPTSIZE</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 + +@ifinfo +@node Memory Requirements RTEMS RAM Workspace Worksheet, WORKSHEETS_NEXT_LINK, Memory Requirements RTEMS Code Space Worksheet, Memory Requirements +@end ifinfo +@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 * RTEMS_BYTES_PER_TASK +@item maximum_timers * RTEMS_BYTES_PER_TIMER +@item maximum_semaphores * RTEMS_BYTES_PER_SEMAPHORE +@item maximum_message_queues * RTEMS_BYTES_PER_MESSAGE_QUEUE +@item maximum_regions * RTEMS_BYTES_PER_REGION +@item maximum_partitions * RTEMS_BYTES_PER_PARTITION +@item maximum_ports * RTEMS_BYTES_PER_PORT +@item maximum_periods * RTEMS_BYTES_PER_PERIOD +@item maximum_extensions * RTEMS_BYTES_PER_EXTENSION +@item Floating Point Tasks * RTEMS_BYTES_PER_FP_TASK +@item Task Stacks +@item maximum_nodes * RTEMS_BYTES_PER_NODE +@item maximum_global_objects * RTEMS_BYTES_PER_GLOBAL_OBJECT +@item maximum_proxies * RTEMS_BYTES_PER_PROXY +@item Fixed System Requirements of RTEMS_BYTES_OF_FIXED_SYSTEM_REQUIREMENTS +@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 && * RTEMS_BYTES_PER_TASK = &&&\cr\noalign{\hrule} +& maximum\_timers && * RTEMS_BYTES_PER_TIMER = &&&\cr\noalign{\hrule} +& maximum\_semaphores && * RTEMS_BYTES_PER_SEMAPHORE = &&&\cr\noalign{\hrule} +& maximum\_message\_queues && * RTEMS_BYTES_PER_MESSAGE_QUEUE = &&&\cr\noalign{\hrule} +& maximum\_regions && * RTEMS_BYTES_PER_REGION = &&&\cr\noalign{\hrule} +& maximum\_partitions && * RTEMS_BYTES_PER_PARTITION = &&&\cr\noalign{\hrule} +& maximum\_ports && * RTEMS_BYTES_PER_PORT = &&&\cr\noalign{\hrule} +& maximum\_periods && * RTEMS_BYTES_PER_PERIOD = &&&\cr\noalign{\hrule} +& maximum\_extensions && * RTEMS_BYTES_PER_EXTENSION = &&&\cr\noalign{\hrule} +& Floating Point Tasks && * RTEMS_BYTES_PER_FP_TASK = &&&\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 && * RTEMS_BYTES_PER_NODE = &&&\cr\noalign{\hrule} +& maximum\_global\_objects && * RTEMS_BYTES_PER_GLOBAL_OBJECT = &&&\cr\noalign{\hrule} +& maximum\_proxies && * RTEMS_BYTES_PER_PROXY = &&&\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 && RTEMS_BYTES_OF_FIXED_SYSTEM_REQUIREMENTS &&&\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>* RTEMS_BYTES_PER_TASK =</TD> + <TD><BR></TD></TR> +<TR><TD ALIGN=left>maximum_timers</TD> + <TD ALIGN=right>* RTEMS_BYTES_PER_TIMER =</TD> + <TD><BR></TD></TR> +<TR><TD ALIGN=left>maximum_semaphores</TD> + <TD ALIGN=right>* RTEMS_BYTES_PER_SEMAPHORE =</TD> + <TD><BR></TD></TR> +<TR><TD ALIGN=left>maximum_message_queues</TD> + <TD ALIGN=right>* RTEMS_BYTES_PER_MESSAGE_QUEUE =</TD> + <TD><BR></TD></TR> +<TR><TD ALIGN=left>maximum_regions</TD> + <TD ALIGN=right>* RTEMS_BYTES_PER_REGION =</TD> + <TD><BR></TD></TR> +<TR><TD ALIGN=left>maximum_partitions</TD> + <TD ALIGN=right>* RTEMS_BYTES_PER_PARTITION =</TD> + <TD><BR></TD></TR> +<TR><TD ALIGN=left>maximum_ports</TD> + <TD ALIGN=right>* RTEMS_BYTES_PER_PORT =</TD> + <TD><BR></TD></TR> +<TR><TD ALIGN=left>maximum_periods</TD> + <TD ALIGN=right>* RTEMS_BYTES_PER_PERIOD =</TD> + <TD><BR></TD></TR> +<TR><TD ALIGN=left>maximum_extensions</TD> + <TD ALIGN=right>* RTEMS_BYTES_PER_EXTENSION =</TD> + <TD><BR></TD></TR> +<TR><TD ALIGN=left>Floating Point Tasks</TD> + <TD ALIGN=right>* RTEMS_BYTES_PER_FP_TASK =</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>* RTEMS_BYTES_PER_NODE =</TD> + <TD><BR></TD></TR> +<TR><TD ALIGN=left>maximum_global_objects</TD> + <TD ALIGN=right>* RTEMS_BYTES_PER_GLOBAL_OBJECT =</TD> + <TD><BR></TD></TR> +<TR><TD ALIGN=left>maximum_proxies</TD> + <TD ALIGN=right>* RTEMS_BYTES_PER_PROXY =</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>RTEMS_BYTES_OF_FIXED_SYSTEM_REQUIREMENTS</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 + |