2008-04-16 Joel Sherrill <joel.sherrill@OARcorp.com>

* user/bsp.t, user/conf.t, user/init.t, user/intr.t, user/overview.t,
	user/timer.t: Correct default values. Make it clear that confdefs.h
	calculates the memory required for you.
This commit is contained in:
Joel Sherrill
2008-04-16 18:30:13 +00:00
parent 48776cdbb0
commit 7d032fc6bc
7 changed files with 66 additions and 59 deletions

View File

@@ -1,3 +1,9 @@
2008-04-16 Joel Sherrill <joel.sherrill@OARcorp.com>
* user/bsp.t, user/conf.t, user/init.t, user/intr.t, user/overview.t,
user/timer.t: Correct default values. Make it clear that confdefs.h
calculates the memory required for you.
2007-12-10 Ralf Corsépius <ralf.corsepius@rtems.org> 2007-12-10 Ralf Corsépius <ralf.corsepius@rtems.org>
* cpu_supplement/tic4x.t: Remove. * cpu_supplement/tic4x.t: Remove.

View File

@@ -1,5 +1,5 @@
@c @c
@c COPYRIGHT (c) 1988-2002. @c COPYRIGHT (c) 1988-2008.
@c On-Line Applications Research Corporation (OAR). @c On-Line Applications Research Corporation (OAR).
@c All rights reserved. @c All rights reserved.
@c @c
@@ -63,7 +63,7 @@ by the reset application initialization code. Because
interrupts are enabled automatically by RTEMS as part of the interrupts are enabled automatically by RTEMS as part of the
@code{@value{DIRPREFIX}initialize_executive} directive, @code{@value{DIRPREFIX}initialize_executive} directive,
the Interrupt Vector Table MUST the Interrupt Vector Table MUST
be set before this directive is invoked to insure correct be set before this directive is invoked to ensure correct
interrupt vectoring. The processor's Interrupt Vector Table interrupt vectoring. The processor's Interrupt Vector Table
must be accessible by RTEMS as it will be modified by the must be accessible by RTEMS as it will be modified by the
@code{@value{DIRPREFIX}interrupt_catch} directive. @code{@value{DIRPREFIX}interrupt_catch} directive.

View File

@@ -1,4 +1,4 @@
@c COPYRIGHT (c) 1988-2002. @c COPYRIGHT (c) 1988-2008.
@c On-Line Applications Research Corporation (OAR). @c On-Line Applications Research Corporation (OAR).
@c All rights reserved. @c All rights reserved.
@c @c
@@ -941,7 +941,7 @@ When using the @code{rtems/confdefs.h} mechanism for configuring
an RTEMS application, the value for this field corresponds an RTEMS application, the value for this field corresponds
to the setting of the macro @code{CONFIGURE_MAXIMUM_TASKS}. to the setting of the macro @code{CONFIGURE_MAXIMUM_TASKS}.
If not defined by the application, then the @code{CONFIGURE_MAXIMUM_TASKS} If not defined by the application, then the @code{CONFIGURE_MAXIMUM_TASKS}
macro defaults to 10. macro defaults to 0.
@item maximum_timers @item maximum_timers
is the maximum number of timers is the maximum number of timers
@@ -1104,7 +1104,7 @@ When using the @code{rtems/confdefs.h} mechanism for configuring
an RTEMS application, the value for this field corresponds an RTEMS application, the value for this field corresponds
to the setting of the macro @code{CONFIGURE_MAXIMUM_POSIX_THREADS}. to the setting of the macro @code{CONFIGURE_MAXIMUM_POSIX_THREADS}.
If not defined by the application, then the If not defined by the application, then the
@code{CONFIGURE_MAXIMUM_POSIX_THREADS} macro defaults to 10. @code{CONFIGURE_MAXIMUM_POSIX_THREADS} macro defaults to 0.
@item maximum_mutexes @item maximum_mutexes
is the maximum number of mutexes that can be concurrently is the maximum number of mutexes that can be concurrently
@@ -1678,13 +1678,23 @@ This allows the application designer the flexibility to tailor
RTEMS to most efficiently meet system requirements while still RTEMS to most efficiently meet system requirements while still
satisfying even the most stringent memory constraints. As satisfying even the most stringent memory constraints. As
result, the size of the RTEMS executive is application result, the size of the RTEMS executive is application
dependent. A Memory Requirements worksheet is provided in the dependent.
Applications Supplement document for a specific target
processor. This worksheet can be used to calculate the memory It is not necessary for RTEMS Application Developers to calculate
requirements of a custom RTEMS run-time environment. To insure the amount of memory required for the RTEMS Workspace. This
that enough memory is allocated for future versions of RTEMS, is done automatically by @code{<rtems/confdefs.h>}.
the application designer should round these memory requirements See @ref{Configuring a System Sizing the RTEMS RAM Workspace} for
up. The following Classic API managers may be optionally excluded: more details on how
this works. In the event, you are interested in the memory required
for an instance of a particular RTEMS object, please run the test
@code{spsize} on your target board.
RTEMS is built to be a library and any routines that you do not
directly or indirectly require in your application will @b{NOT}
be included in your executable image. However, some managers
may be explicitly excluded and no attempt to create these instances
of these objects will succeed even if they are configured.
The following Classic API managers may be optionally excluded:
@itemize @bullet @itemize @bullet
@item signal @item signal
@@ -1705,7 +1715,10 @@ RTEMS is implemented in such a way that there is a single
entry point per source file. This avoids having the entry point per source file. This avoids having the
linker being forced to pull large object files in their linker being forced to pull large object files in their
entirety into an application when the application references entirety into an application when the application references
a single symbol. a single symbol. In the event you discover an RTEMS method
that is included in your executable but never entered, please
let us know. It might be an opportunity to break a dependency
and shrink many RTEMS applications.
RTEMS based applications must somehow provide memory RTEMS based applications must somehow provide memory
for RTEMS' code and data space. Although RTEMS' data space must for RTEMS' code and data space. Although RTEMS' data space must
@@ -1757,13 +1770,14 @@ the workspace area will result in the
directive being invoked with the directive being invoked with the
@code{@value{RPREFIX}INVALID_ADDRESS} error code. @code{@value{RPREFIX}INVALID_ADDRESS} error code.
A worksheet is provided in the @b{Memory Requirements} The file @code{<rtems/confdefs.h>} will calculate the
chapter of the Applications Supplement document for a specific value that is specified as the @code{work_space_size}
target processor to assist the user in calculating the minimum parameter of the Configuration Table. There are many
size of the RTEMS RAM Workspace for each application. The value parameters the application developer can specify to
calculated with this worksheet is the minimum value that should help @code{<rtems/confdefs.h>} in its calculations. Correctly
be specified as the @code{work_space_size} parameter of the specifying the application requirements via parameters
Configuration Table. such as @code{CONFIGURE_EXTRA_TASK_STACKS} and
@code{CONFIGURE_MAXIMUM_TASKS} is critical.
The allocation of objects can operate in two modes. The default mode The allocation of objects can operate in two modes. The default mode
has an object number ceiling. No more than the specified number of has an object number ceiling. No more than the specified number of
@@ -1792,10 +1806,10 @@ The user is cautioned that future versions of RTEMS may not have the
same memory requirements per object. Although the value calculated is same memory requirements per object. Although the value calculated is
suficient for a particular target processor and release of RTEMS, suficient for a particular target processor and release of RTEMS,
memory usage is subject to change across versions and target memory usage is subject to change across versions and target
processors. The user is advised to allocate somewhat more memory than processors. To avoid problems, the user should accurately
the worksheet recommends to insure compatibility with future releases specify each configuration parameter and allow
for a specific target processor and other target processors. To avoid @code{<rtems/confdefs.h>} to calculate the memory requirements.
problems, the user should recalculate the memory requirements each The memory requirements are likely to change each
time one of the following events occurs: time one of the following events occurs:
@itemize @bullet @itemize @bullet

View File

@@ -1,5 +1,5 @@
@c @c
@c COPYRIGHT (c) 1988-2007. @c COPYRIGHT (c) 1988-2008.
@c On-Line Applications Research Corporation (OAR). @c On-Line Applications Research Corporation (OAR).
@c All rights reserved. @c All rights reserved.
@c @c
@@ -38,7 +38,7 @@ they are defined in the User Initialization Tasks Table and
automatically created and started by RTEMS as part of its automatically created and started by RTEMS as part of its
initialization sequence. Since the initialization tasks are initialization sequence. Since the initialization tasks are
scheduled using the same algorithm as all other RTEMS tasks, scheduled using the same algorithm as all other RTEMS tasks,
they must be configured at a priority and mode which will insure they must be configured at a priority and mode which will ensure
that they will complete execution before other application tasks that they will complete execution before other application tasks
execute. Although there is no upper limit on the number of execute. Although there is no upper limit on the number of
initialization tasks, an application is required to define at initialization tasks, an application is required to define at
@@ -58,7 +58,7 @@ initialization tasks.
The System Initialization Task is responsible for The System Initialization Task is responsible for
initializing all device drivers. As a result, this task has a initializing all device drivers. As a result, this task has a
higher priority than all other tasks to insure that no higher priority than all other tasks to ensure that no
application tasks executes until all device drivers are application tasks executes until all device drivers are
initialized. After device initialization in a single processor initialized. After device initialization in a single processor
system, this task will delete itself. system, this task will delete itself.

View File

@@ -1,5 +1,5 @@
@c @c
@c COPYRIGHT (c) 1988-2007. @c COPYRIGHT (c) 1988-2008.
@c On-Line Applications Research Corporation (OAR). @c On-Line Applications Research Corporation (OAR).
@c All rights reserved. @c All rights reserved.
@c @c
@@ -139,7 +139,7 @@ sections of code may be executed. When these sections are
encountered, RTEMS disables all maskable interrupts before the encountered, RTEMS disables all maskable interrupts before the
execution of the section and restores them to the previous level execution of the section and restores them to the previous level
upon completion of the section. RTEMS has been optimized to upon completion of the section. RTEMS has been optimized to
insure that interrupts are disabled for a minimum length of ensure that interrupts are disabled for a minimum length of
time. The maximum length of time interrupts are disabled by time. The maximum length of time interrupts are disabled by
RTEMS is processor dependent and is detailed in the Timing RTEMS is processor dependent and is detailed in the Timing
Specification chapter of the Applications Supplement document Specification chapter of the Applications Supplement document
@@ -167,7 +167,7 @@ contents of the specified vector in the RTEMS' Vector Table.
@subsection Directives Allowed from an ISR @subsection Directives Allowed from an ISR
Using the interrupt manager insures that RTEMS knows Using the interrupt manager ensures that RTEMS knows
when a directive is being called from an ISR. The ISR may then when a directive is being called from an ISR. The ISR may then
use system calls to synchronize itself with an application task. use system calls to synchronize itself with an application task.
The synchronization may involve messages, events or signals The synchronization may involve messages, events or signals

View File

@@ -1,5 +1,5 @@
@c @c
@c COPYRIGHT (c) 1988-2002. @c COPYRIGHT (c) 1988-2008.
@c On-Line Applications Research Corporation (OAR). @c On-Line Applications Research Corporation (OAR).
@c All rights reserved. @c All rights reserved.
@c @c
@@ -329,33 +329,20 @@ microprocessor architecture.
@section Memory Requirements @section Memory Requirements
Since memory is a critical resource in many real-time Since memory is a critical resource in many real-time
embedded systems, RTEMS was specifically designed to allow embedded systems, RTEMS was specifically designed to automatically
unused managers to be excluded from the run-time environment. leave out all services that are not required from the run-time
This allows the application designer the flexibility to tailor environment. Features such as networking, various fileystems,
RTEMS to most efficiently meet system requirements while still and many other features are completely optionsl. This allows
satisfying even the most stringent memory constraints. As a the application designer the flexibility to tailor RTEMS to most
result, the size of the RTEMS executive is application efficiently meet system requirements while still satisfying even
dependent. A worksheet is provided in the Memory Requirements the most stringent memory constraints. As a result, the size
chapter of the Applications Supplement document for a specific of the RTEMS executive is application dependent.
target processor. The worksheet is used to calculate the memory
requirements of a custom RTEMS run-time environment. The
following managers may be optionally excluded:
@itemize @bullet RTEMS requires RAM to manage each instance of an RTEMS object
@item clock that is created. Thus the more RTEMS objects an application
@item timer needs, the more memory that must be reserved. See
@item semaphore @ref{Configuring a System Determining Memory Requirements} for
@item message more details.
@item event
@item signal
@item partition
@item region
@item dual ported memory
@item I/O
@item rate monotonic
@item fatal error
@item multiprocessing
@end itemize
RTEMS utilizes memory for both code and data space. RTEMS utilizes memory for both code and data space.
Although RTEMS' data space must be in RAM, its code space can be Although RTEMS' data space must be in RAM, its code space can be

View File

@@ -1,5 +1,5 @@
@c @c
@c COPYRIGHT (c) 1988-2007. @c COPYRIGHT (c) 1988-2008.
@c On-Line Applications Research Corporation (OAR). @c On-Line Applications Research Corporation (OAR).
@c All rights reserved. @c All rights reserved.
@c @c
@@ -49,7 +49,7 @@ would be performed by the application code which invoked the
The timer can be used to implement watchdog routines The timer can be used to implement watchdog routines
which only fire to denote that an application error has which only fire to denote that an application error has
occurred. The timer is reset at specific points in the occurred. The timer is reset at specific points in the
application to insure that the watchdog does not fire. Thus, if application to ensure that the watchdog does not fire. Thus, if
the application does not reset the watchdog timer, then the the application does not reset the watchdog timer, then the
timer service routine will fire to indicate that the application timer service routine will fire to indicate that the application
has failed to reach a reset point. This use of a timer is has failed to reach a reset point. This use of a timer is