source: rtems/doc/common/wksheets.t @ 0660b4f8

4.104.114.84.95
Last change on this file since 0660b4f8 was 0660b4f8, checked in by Joel Sherrill <joel.sherrill@…>, on 11/16/99 at 19:50:56

Changed copyright date to 1999.

  • Property mode set to 100644
File size: 15.3 KB
Line 
1@c ******   This comment is here to remind you not to edit the wksheets.t
2@c ******   in any directory but common.
3@c
4@c Figures ...
5@c   RTEMS RAM Workspace Worksheet
6@c   RTEMS Code Space Worksheet
7@c
8@c  COPYRIGHT (c) 1988-1999.
9@c  On-Line Applications Research Corporation (OAR).
10@c  All rights reserved.
11@c
12@c  $Id$
13@c
14
15@chapter Memory Requirements
16
17@section Introduction
18
19Memory is typically a limited resource in real-time
20embedded systems, therefore, RTEMS can be configured  to utilize
21the minimum amount of memory while meeting all of the
22applications requirements.  Worksheets are provided which allow
23the RTEMS application developer to determine the amount of RTEMS
24code and RAM workspace which is required by the particular
25configuration.  Also provided are the minimum code space,
26maximum code space,  and the constant data space required by
27RTEMS.
28
29@section Data Space Requirements
30
31RTEMS requires a small amount of memory for its
32private variables.  This data area must be in RAM and is
33separate from the RTEMS RAM Workspace.  The following
34illustrates the data space required for all configurations of
35RTEMS:
36
37@itemize @bullet
38@item Data Space: RTEMS_DATA_SPACE
39@end itemize
40
41@section Minimum and Maximum Code Space Requirements
42
43A maximum configuration of RTEMS includes the core
44and all managers, including the multiprocessing manager.
45Conversely, a minimum configuration of RTEMS includes only the
46core and the following managers: initialization, task, interrupt
47and fatal error.  The following illustrates the code space
48required by these configurations of RTEMS:
49
50@itemize @bullet
51@item Minimum Configuration: RTEMS_MINIMUM_CONFIGURATION
52@item Maximum Configuration: RTEMS_MAXIMUM_CONFIGURATION
53@end itemize
54
55@section RTEMS Code Space Worksheet
56
57The RTEMS Code Space Worksheet is a tool provided to
58aid the RTEMS application designer to accurately calculate the
59memory required by the RTEMS run-time environment.  RTEMS allows
60the custom configuration of the executive by optionally
61excluding managers which are not required by a particular
62application.  This worksheet provides the included and excluded
63size of each manager in tabular form allowing for the quick
64calculation of any custom configuration of RTEMS.  The RTEMS
65Code Space Worksheet is below:
66
67@ifset use-ascii
68@page
69@end ifset
70@ifset use-tex
71@page
72@end ifset
73
74@page
75@center @b{RTEMS Code Space Worksheet}
76@sp 1
77
78@ifset use-ascii
79
80The following is a list of the components of the RTEMS code space.  The first
81number in parentheses is the size when the component is included,
82while the second number indicates its size when not included.  If the second
83number is "NA", then the component must always be included.
84
85@itemize @bullet
86@item Core (RTEMS_CORE_CODE_SIZE, NA)
87@item Initialization (RTEMS_INITIALIZATION_CODE_SIZE, NA)
88@item Task (RTEMS_TASK_CODE_SIZE, NA)
89@item Interrupt (RTEMS_INTERRUPT_CODE_SIZE, NA)
90@item Clock (RTEMS_CLOCK_CODE_SIZE, NA)
91@item Timer (RTEMS_TIMER_CODE_SIZE, RTEMS_TIMER_CODE_OPTSIZE)
92@item Semaphore (RTEMS_SEMAPHORE_CODE_SIZE, RTEMS_SEMAPHORE_CODE_OPTSIZE)
93@item Message (RTEMS_MESSAGE_CODE_SIZE, RTEMS_MESSAGE_CODE_OPTSIZE)
94@item Event (RTEMS_EVENT_CODE_SIZE, RTEMS_EVENT_CODE_OPTSIZE)
95@item Signal (RTEMS_SIGNAL_CODE_SIZE, RTEMS_SIGNAL_CODE_OPTSIZE)
96@item Partition (RTEMS_PARTITION_CODE_SIZE, RTEMS_PARTITION_CODE_OPTSIZE)
97@item Region (RTEMS_REGION_CODE_SIZE, RTEMS_REGION_CODE_OPTSIZE)
98@item Dual Ported Memory (RTEMS_DPMEM_CODE_SIZE, RTEMS_DPMEM_CODE_OPTSIZE)
99@item I/O (RTEMS_IO_CODE_SIZE, RTEMS_IO_CODE_OPTSIZE)
100@item Fatal Error (RTEMS_FATAL_ERROR_CODE_SIZE, NA)
101@item Rate Monotonic (RTEMS_RATE_MONOTONIC_CODE_SIZE, RTEMS_RATE_MONOTONIC_CODE_OPTSIZE)
102@item Multiprocessing (RTEMS_MULTIPROCESSING_CODE_SIZE, RTEMS_MULTIPROCESSING_CODE_OPTSIZE)
103@end itemize
104@end ifset
105
106@ifset use-tex
107
108@tex
109\line{\hskip 0.50in\vbox{\offinterlineskip\halign{
110\vrule\strut#&
111\hbox to 2.25in{\enskip\hfil#\hfil}&
112\vrule#&
113\hbox to 1.00in{\enskip\hfil#\hfil}&
114\vrule#&
115\hbox to 1.00in{\enskip\hfil#\hfil}&
116\vrule#&
117\hbox to 1.25in{\enskip\hfil#\hfil}&
118\vrule#\cr
119\noalign{\hrule}
120&\bf Component && \bf Included && \bf Not Included && \bf Size &\cr\noalign{\hrule}
121&Core && RTEMS_CORE_CODE_SIZE && NA && &\cr\noalign{\hrule}
122&Initialization && RTEMS_INITIALIZATION_CODE_SIZE && NA && &\cr\noalign{\hrule}
123&Task && RTEMS_TASK_CODE_SIZE && NA && &\cr\noalign{\hrule}
124&Interrupt && RTEMS_INTERRUPT_CODE_SIZE && NA && &\cr\noalign{\hrule}
125&Clock && RTEMS_CLOCK_CODE_SIZE && NA && &\cr\noalign{\hrule}
126&Timer && RTEMS_TIMER_CODE_SIZE && RTEMS_TIMER_CODE_OPTSIZE && &\cr\noalign{\hrule}
127&Semaphore && RTEMS_SEMAPHORE_CODE_SIZE && RTEMS_SEMAPHORE_CODE_OPTSIZE && &\cr\noalign{\hrule}
128&Message && RTEMS_MESSAGE_CODE_SIZE && RTEMS_MESSAGE_CODE_OPTSIZE && &\cr\noalign{\hrule}
129&Event && RTEMS_EVENT_CODE_SIZE && RTEMS_EVENT_CODE_OPTSIZE && &\cr\noalign{\hrule}
130&Signal && RTEMS_SIGNAL_CODE_SIZE && RTEMS_SIGNAL_CODE_OPTSIZE && &\cr\noalign{\hrule}
131&Partition && RTEMS_PARTITION_CODE_SIZE && RTEMS_PARTITION_CODE_OPTSIZE && &\cr\noalign{\hrule}
132&Region && RTEMS_REGION_CODE_SIZE && RTEMS_REGION_CODE_OPTSIZE && &\cr\noalign{\hrule}
133&Dual Ported Memory && RTEMS_DPMEM_CODE_SIZE && RTEMS_DPMEM_CODE_OPTSIZE && &\cr\noalign{\hrule}
134&I/O && RTEMS_IO_CODE_SIZE && RTEMS_IO_CODE_OPTSIZE && &\cr\noalign{\hrule}
135&Fatal Error && RTEMS_FATAL_ERROR_CODE_SIZE && NA && &\cr\noalign{\hrule}
136&Rate Monotonic && RTEMS_RATE_MONOTONIC_CODE_SIZE && RTEMS_RATE_MONOTONIC_CODE_OPTSIZE && &\cr\noalign{\hrule}
137&Multiprocessing && RTEMS_MULTIPROCESSING_CODE_SIZE && RTEMS_MULTIPROCESSING_CODE_OPTSIZE && &\cr\noalign{\hrule}
138&\multispan 5 \bf\hfil Total Code Space Requirements\qquad\hfil&&&\cr\noalign{\hrule}
139}}\hfil}
140@end tex
141@end ifset
142
143@ifset use-html
144@html
145<CENTER>
146  <TABLE COLS=4 WIDTH="80%" BORDER=2>
147<TR><TD ALIGN=center><STRONG>Component</STRONG></TD>
148    <TD ALIGN=center><STRONG>Included</STRONG></TD>
149    <TD ALIGN=center><STRONG>Not Included</STRONG></TD>
150    <TD ALIGN=center><STRONG>Size</STRONG></TD></TR>
151<TR><TD ALIGN=center>Core</TD>
152    <TD ALIGN=center>RTEMS_CORE_CODE_SIZE</TD>
153    <TD ALIGN=center>NA</TD>
154     <TD><BR></TD></TR>
155<TR><TD ALIGN=center>Initialization</TD>
156    <TD ALIGN=center>RTEMS_INITIALIZATION_CODE_SIZE</TD>
157    <TD ALIGN=center>NA</TD>
158     <TD><BR></TD></TR>
159<TR><TD ALIGN=center>Task</TD>
160    <TD ALIGN=center>RTEMS_TASK_CODE_SIZE</TD>
161    <TD ALIGN=center>NA</TD>
162     <TD><BR></TD></TR>
163<TR><TD ALIGN=center>Interrupt</TD>
164    <TD ALIGN=center>RTEMS_INTERRUPT_CODE_SIZE</TD>
165    <TD ALIGN=center>NA</TD>
166     <TD><BR></TD></TR>
167<TR><TD ALIGN=center>Clock</TD>
168    <TD ALIGN=center>RTEMS_CLOCK_CODE_SIZE</TD>
169    <TD ALIGN=center>NA</TD>
170     <TD><BR></TD></TR>
171<TR><TD ALIGN=center>Timer</TD>
172    <TD ALIGN=center>RTEMS_TIMER_CODE_SIZE</TD>
173    <TD ALIGN=center>RTEMS_TIMER_CODE_OPTSIZE</TD>
174     <TD><BR></TD></TR>
175<TR><TD ALIGN=center>Semaphore</TD>
176    <TD ALIGN=center>RTEMS_SEMAPHORE_CODE_SIZE</TD>
177    <TD ALIGN=center>RTEMS_SEMAPHORE_CODE_OPTSIZE</TD>
178     <TD><BR></TD></TR>
179<TR><TD ALIGN=center>Message</TD>
180    <TD ALIGN=center>RTEMS_MESSAGE_CODE_SIZE</TD>
181    <TD ALIGN=center>RTEMS_MESSAGE_CODE_OPTSIZE</TD>
182     <TD><BR></TD></TR>
183<TR><TD ALIGN=center>Event</TD>
184    <TD ALIGN=center>RTEMS_EVENT_CODE_SIZE</TD>
185    <TD ALIGN=center>RTEMS_EVENT_CODE_OPTSIZE</TD>
186     <TD><BR></TD></TR>
187<TR><TD ALIGN=center>Signal</TD>
188    <TD ALIGN=center>RTEMS_SIGNAL_CODE_SIZE</TD>
189    <TD ALIGN=center>RTEMS_SIGNAL_CODE_OPTSIZE</TD>
190     <TD><BR></TD></TR>
191<TR><TD ALIGN=center>Partition</TD>
192    <TD ALIGN=center>RTEMS_PARTITION_CODE_SIZE</TD>
193    <TD ALIGN=center>RTEMS_PARTITION_CODE_OPTSIZE</TD>
194     <TD><BR></TD></TR>
195<TR><TD ALIGN=center>Region</TD>
196    <TD ALIGN=center>RTEMS_REGION_CODE_SIZE</TD>
197    <TD ALIGN=center>RTEMS_REGION_CODE_OPTSIZE</TD>
198     <TD><BR></TD></TR>
199<TR><TD ALIGN=center>Dual Ported Memory</TD>
200    <TD ALIGN=center>RTEMS_DPMEM_CODE_SIZE</TD>
201    <TD ALIGN=center>RTEMS_DPMEM_CODE_OPTSIZE</TD>
202     <TD><BR></TD></TR>
203<TR><TD ALIGN=center>I/O</TD>
204    <TD ALIGN=center>RTEMS_IO_CODE_SIZE</TD>
205    <TD ALIGN=center>RTEMS_IO_CODE_OPTSIZE</TD>
206     <TD><BR></TD></TR>
207<TR><TD ALIGN=center>Fatal Error</TD>
208    <TD ALIGN=center>RTEMS_FATAL_ERROR_CODE_SIZE</TD>
209    <TD ALIGN=center>NA</TD>
210     <TD><BR></TD></TR>
211<TR><TD ALIGN=center>Rate Monotonic</TD>
212    <TD ALIGN=center>RTEMS_RATE_MONOTONIC_CODE_SIZE</TD>
213    <TD ALIGN=center>RTEMS_RATE_MONOTONIC_CODE_OPTSIZE</TD>
214     <TD><BR></TD></TR>
215<TR><TD ALIGN=center>Multiprocessing</TD>
216    <TD ALIGN=center>RTEMS_MULTIPROCESSING_CODE_SIZE</TD>
217    <TD ALIGN=center>RTEMS_MULTIPROCESSING_CODE_OPTSIZE</TD>
218     <TD><BR></TD></TR>
219<TR><TD ALIGN=center COLSPAN=3>
220      <STRONG>Total Code Space Requirements</STRONG></TD>
221     <TD><BR></TD></TR>
222  </TABLE>
223</CENTER>
224@end html
225@end ifset
226
227@page
228
229@c ******   Next node is set by a sed script in the document Makefile.
230@c ******   This comment is here to remind you not to edit the wksheets.t
231@c ******   in any directory but common.
232
233@section RTEMS RAM Workspace Worksheet
234
235The RTEMS RAM Workspace Worksheet is a tool provided
236to aid the RTEMS application designer to accurately calculate
237the minimum memory block to be reserved for RTEMS use.  This
238worksheet provides equations for calculating the amount of
239memory required based upon the number of objects configured,
240whether for single or multiple processor versions of the
241executive.  This information is presented in tabular form, along
242with the fixed system requirements, allowing for quick
243calculation of any application defined configuration of RTEMS.
244The RTEMS RAM Workspace Worksheet is provided below:
245
246@ifset use-ascii
247@page
248@end ifset
249@ifset use-tex
250@sp 2
251@end ifset
252
253@center @b{RTEMS RAM Workspace Worksheet}
254@sp 2
255
256@ifset use-ascii
257The total RTEMS RAM Workspace required is the sum of the following:
258
259@itemize @bullet
260@item maximum_tasks * RTEMS_BYTES_PER_TASK
261@item maximum_timers * RTEMS_BYTES_PER_TIMER
262@item maximum_semaphores * RTEMS_BYTES_PER_SEMAPHORE
263@item maximum_message_queues * RTEMS_BYTES_PER_MESSAGE_QUEUE
264@item maximum_regions * RTEMS_BYTES_PER_REGION
265@item maximum_partitions * RTEMS_BYTES_PER_PARTITION
266@item maximum_ports * RTEMS_BYTES_PER_PORT
267@item maximum_periods * RTEMS_BYTES_PER_PERIOD
268@item maximum_extensions * RTEMS_BYTES_PER_EXTENSION
269@item Floating Point Tasks * RTEMS_BYTES_PER_FP_TASK
270@item Task Stacks
271@item maximum_nodes * RTEMS_BYTES_PER_NODE
272@item maximum_global_objects * RTEMS_BYTES_PER_GLOBAL_OBJECT
273@item maximum_proxies * RTEMS_BYTES_PER_PROXY
274@item Fixed System Requirements of RTEMS_BYTES_OF_FIXED_SYSTEM_REQUIREMENTS
275@end itemize
276@end ifset
277
278@ifset use-tex
279@tex
280\line{\hskip 0.75in\vbox{\offinterlineskip\halign{
281\vrule\strut#&
282\hbox to 3.0in{\enskip\hfil#\hfil}&
283\vrule#&
284\hbox to 0.75in{\enskip\hfil#\hfil}&
285\vrule#&
286\hbox to 1.25in{\enskip\hfil#\hfil}&
287\vrule#\cr
288\noalign{\hrule}
289& \bf Description && \bf Equation && \bf Bytes Required &\cr\noalign{\hrule}
290& maximum\_tasks &&  * RTEMS_BYTES_PER_TASK = &&&\cr\noalign{\hrule}
291& maximum\_timers &&  * RTEMS_BYTES_PER_TIMER = &&&\cr\noalign{\hrule}
292& maximum\_semaphores &&  * RTEMS_BYTES_PER_SEMAPHORE = &&&\cr\noalign{\hrule}
293& maximum\_message\_queues &&  * RTEMS_BYTES_PER_MESSAGE_QUEUE = &&&\cr\noalign{\hrule}
294& maximum\_regions &&  * RTEMS_BYTES_PER_REGION = &&&\cr\noalign{\hrule}
295& maximum\_partitions &&  * RTEMS_BYTES_PER_PARTITION = &&&\cr\noalign{\hrule}
296& maximum\_ports &&  * RTEMS_BYTES_PER_PORT = &&&\cr\noalign{\hrule}
297& maximum\_periods &&  * RTEMS_BYTES_PER_PERIOD = &&&\cr\noalign{\hrule}
298& maximum\_extensions &&  * RTEMS_BYTES_PER_EXTENSION = &&&\cr\noalign{\hrule}
299& Floating Point Tasks &&  * RTEMS_BYTES_PER_FP_TASK = &&&\cr\noalign{\hrule}
300& Task Stacks &&\hskip 2.3em=&&&\cr\noalign{\hrule}
301& Total Single Processor Requirements &&&&&\cr\noalign{\hrule}
302}}\hfil}
303
304\line{\hskip 0.75in\vbox{\offinterlineskip\halign{
305\vrule\strut#&
306\hbox to 3.0in{\enskip\hfil#\hfil}&
307\vrule#&
308\hbox to 0.75in{\enskip\hfil#\hfil}&
309\vrule#&
310\hbox to 1.25in{\enskip\hfil#\hfil}&
311\vrule#\cr
312\noalign{\hrule}
313& \bf Description && \bf Equation && \bf Bytes Required &\cr\noalign{\hrule}
314& maximum\_nodes &&  * RTEMS_BYTES_PER_NODE = &&&\cr\noalign{\hrule}
315& maximum\_global\_objects &&  * RTEMS_BYTES_PER_GLOBAL_OBJECT = &&&\cr\noalign{\hrule}
316& maximum\_proxies &&  * RTEMS_BYTES_PER_PROXY = &&&\cr\noalign{\hrule}
317}}\hfil}
318
319\line{\hskip 0.75in\vbox{\offinterlineskip\halign{
320\vrule\strut#&
321\hbox to 3.0in{\enskip\hfil#\hfil}&
322\vrule#&
323\hbox to 0.75in{\enskip\hfil#\hfil}&
324\vrule#&
325\hbox to 1.25in{\enskip\hfil#\hfil}&
326\vrule#\cr
327\noalign{\hrule}
328& Total Multiprocessing Requirements &&&&&\cr\noalign{\hrule}
329& Fixed System Requirements && RTEMS_BYTES_OF_FIXED_SYSTEM_REQUIREMENTS &&&\cr\noalign{\hrule}
330& Total Single Processor Requirements &&&&&\cr\noalign{\hrule}
331& Total Multiprocessing Requirements &&&&&\cr\noalign{\hrule}
332& Minimum Bytes for RTEMS Workspace &&&&&\cr\noalign{\hrule}
333}}\hfil}
334@end tex
335@end ifset
336
337@ifset use-html
338@html
339<CENTER>
340  <TABLE COLS=3 WIDTH="80%" BORDER=2>
341<TR><TD ALIGN=center><STRONG>Description</STRONG></TD>
342    <TD ALIGN=center><STRONG>Equation</STRONG></TD>
343    <TD ALIGN=center><STRONG>Bytes Required</STRONG></TD></TR>
344<TR><TD ALIGN=left>maximum_tasks</TD>
345    <TD ALIGN=right>* RTEMS_BYTES_PER_TASK =</TD>
346     <TD><BR></TD></TR>
347<TR><TD ALIGN=left>maximum_timers</TD>
348    <TD ALIGN=right>* RTEMS_BYTES_PER_TIMER =</TD>
349     <TD><BR></TD></TR>
350<TR><TD ALIGN=left>maximum_semaphores</TD>
351    <TD ALIGN=right>* RTEMS_BYTES_PER_SEMAPHORE =</TD>
352     <TD><BR></TD></TR>
353<TR><TD ALIGN=left>maximum_message_queues</TD>
354    <TD ALIGN=right>* RTEMS_BYTES_PER_MESSAGE_QUEUE =</TD>
355     <TD><BR></TD></TR>
356<TR><TD ALIGN=left>maximum_regions</TD>
357    <TD ALIGN=right>* RTEMS_BYTES_PER_REGION =</TD>
358     <TD><BR></TD></TR>
359<TR><TD ALIGN=left>maximum_partitions</TD>
360    <TD ALIGN=right>* RTEMS_BYTES_PER_PARTITION =</TD>
361     <TD><BR></TD></TR>
362<TR><TD ALIGN=left>maximum_ports</TD>
363    <TD ALIGN=right>* RTEMS_BYTES_PER_PORT =</TD>
364     <TD><BR></TD></TR>
365<TR><TD ALIGN=left>maximum_periods</TD>
366    <TD ALIGN=right>* RTEMS_BYTES_PER_PERIOD =</TD>
367     <TD><BR></TD></TR>
368<TR><TD ALIGN=left>maximum_extensions</TD>
369    <TD ALIGN=right>* RTEMS_BYTES_PER_EXTENSION =</TD>
370     <TD><BR></TD></TR>
371<TR><TD ALIGN=left>Floating Point Tasks</TD>
372    <TD ALIGN=right>* RTEMS_BYTES_PER_FP_TASK =</TD>
373     <TD><BR></TD></TR>
374<TR><TD ALIGN=left COLSPAN=2>Task Stacks</TD>
375     <TD><BR></TD></TR>
376<TR><TD ALIGN=left COLSPAN=2>
377      <STRONG>Total Single Processor Requirements</STRONG></TD>
378     <TD><BR></TD></TR>
379<TR></TR>
380<TR><TD ALIGN=center><STRONG>Description</STRONG></TD>
381    <TD ALIGN=center><STRONG>Equation</STRONG></TD>
382    <TD ALIGN=center><STRONG>Bytes Required</STRONG></TD></TR>
383<TR><TD ALIGN=left>maximum_nodes</TD>
384    <TD ALIGN=right>* RTEMS_BYTES_PER_NODE =</TD>
385     <TD><BR></TD></TR>
386<TR><TD ALIGN=left>maximum_global_objects</TD>
387    <TD ALIGN=right>* RTEMS_BYTES_PER_GLOBAL_OBJECT =</TD>
388     <TD><BR></TD></TR>
389<TR><TD ALIGN=left>maximum_proxies</TD>
390    <TD ALIGN=right>* RTEMS_BYTES_PER_PROXY =</TD>
391     <TD><BR></TD></TR>
392<TR><TD ALIGN=left COLSPAN=2>
393      <STRONG>Total Multiprocessing Requirements</STRONG></TD>
394     <TD><BR></TD></TR>
395<TR></TR>
396<TR><TD ALIGN=left COLSPAN=2>Fixed System Requirements</TD>
397    <TD ALIGN=center>RTEMS_BYTES_OF_FIXED_SYSTEM_REQUIREMENTS</TD></TR>
398<TR><TD ALIGN=left COLSPAN=2>Total Single Processor Requirements</TD>
399     <TD><BR></TD></TR>
400<TR><TD ALIGN=left COLSPAN=2>Total Multiprocessing Requirements</TD>
401     <TD><BR></TD></TR>
402<TR><TD ALIGN=left COLSPAN=2>
403      <STRONG>Minimum Bytes for RTEMS Workspace</STRONG></TD>
404     <TD><BR></TD></TR>
405  </TABLE>
406</CENTER>
407@end html
408@end ifset
409
Note: See TracBrowser for help on using the repository browser.