forked from Imagelibrary/rtems
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:
@@ -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>
|
||||
|
||||
* cpu_supplement/tic4x.t: Remove.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
@c
|
||||
@c COPYRIGHT (c) 1988-2002.
|
||||
@c COPYRIGHT (c) 1988-2008.
|
||||
@c On-Line Applications Research Corporation (OAR).
|
||||
@c All rights reserved.
|
||||
@c
|
||||
@@ -63,7 +63,7 @@ by the reset application initialization code. Because
|
||||
interrupts are enabled automatically by RTEMS as part of the
|
||||
@code{@value{DIRPREFIX}initialize_executive} directive,
|
||||
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
|
||||
must be accessible by RTEMS as it will be modified by the
|
||||
@code{@value{DIRPREFIX}interrupt_catch} directive.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@c COPYRIGHT (c) 1988-2002.
|
||||
@c COPYRIGHT (c) 1988-2008.
|
||||
@c On-Line Applications Research Corporation (OAR).
|
||||
@c All rights reserved.
|
||||
@c
|
||||
@@ -941,7 +941,7 @@ When using the @code{rtems/confdefs.h} mechanism for configuring
|
||||
an RTEMS application, the value for this field corresponds
|
||||
to the setting of the macro @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
|
||||
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
|
||||
to the setting of the macro @code{CONFIGURE_MAXIMUM_POSIX_THREADS}.
|
||||
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
|
||||
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
|
||||
satisfying even the most stringent memory constraints. As
|
||||
result, the size of the RTEMS executive is application
|
||||
dependent. A Memory Requirements worksheet is provided in the
|
||||
Applications Supplement document for a specific target
|
||||
processor. This worksheet can be used to calculate the memory
|
||||
requirements of a custom RTEMS run-time environment. To insure
|
||||
that enough memory is allocated for future versions of RTEMS,
|
||||
the application designer should round these memory requirements
|
||||
up. The following Classic API managers may be optionally excluded:
|
||||
dependent.
|
||||
|
||||
It is not necessary for RTEMS Application Developers to calculate
|
||||
the amount of memory required for the RTEMS Workspace. This
|
||||
is done automatically by @code{<rtems/confdefs.h>}.
|
||||
See @ref{Configuring a System Sizing the RTEMS RAM Workspace} for
|
||||
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
|
||||
@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
|
||||
linker being forced to pull large object files in their
|
||||
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
|
||||
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
|
||||
@code{@value{RPREFIX}INVALID_ADDRESS} error code.
|
||||
|
||||
A worksheet is provided in the @b{Memory Requirements}
|
||||
chapter of the Applications Supplement document for a specific
|
||||
target processor to assist the user in calculating the minimum
|
||||
size of the RTEMS RAM Workspace for each application. The value
|
||||
calculated with this worksheet is the minimum value that should
|
||||
be specified as the @code{work_space_size} parameter of the
|
||||
Configuration Table.
|
||||
The file @code{<rtems/confdefs.h>} will calculate the
|
||||
value that is specified as the @code{work_space_size}
|
||||
parameter of the Configuration Table. There are many
|
||||
parameters the application developer can specify to
|
||||
help @code{<rtems/confdefs.h>} in its calculations. Correctly
|
||||
specifying the application requirements via parameters
|
||||
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
|
||||
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
|
||||
suficient for a particular target processor and release of RTEMS,
|
||||
memory usage is subject to change across versions and target
|
||||
processors. The user is advised to allocate somewhat more memory than
|
||||
the worksheet recommends to insure compatibility with future releases
|
||||
for a specific target processor and other target processors. To avoid
|
||||
problems, the user should recalculate the memory requirements each
|
||||
processors. To avoid problems, the user should accurately
|
||||
specify each configuration parameter and allow
|
||||
@code{<rtems/confdefs.h>} to calculate the memory requirements.
|
||||
The memory requirements are likely to change each
|
||||
time one of the following events occurs:
|
||||
|
||||
@itemize @bullet
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
@c
|
||||
@c COPYRIGHT (c) 1988-2007.
|
||||
@c COPYRIGHT (c) 1988-2008.
|
||||
@c On-Line Applications Research Corporation (OAR).
|
||||
@c All rights reserved.
|
||||
@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
|
||||
initialization sequence. Since the initialization tasks are
|
||||
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
|
||||
execute. Although there is no upper limit on the number of
|
||||
initialization tasks, an application is required to define at
|
||||
@@ -58,7 +58,7 @@ initialization tasks.
|
||||
|
||||
The System Initialization Task is responsible for
|
||||
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
|
||||
initialized. After device initialization in a single processor
|
||||
system, this task will delete itself.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
@c
|
||||
@c COPYRIGHT (c) 1988-2007.
|
||||
@c COPYRIGHT (c) 1988-2008.
|
||||
@c On-Line Applications Research Corporation (OAR).
|
||||
@c All rights reserved.
|
||||
@c
|
||||
@@ -139,7 +139,7 @@ sections of code may be executed. When these sections are
|
||||
encountered, RTEMS disables all maskable interrupts before the
|
||||
execution of the section and restores them to the previous level
|
||||
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
|
||||
RTEMS is processor dependent and is detailed in the Timing
|
||||
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
|
||||
|
||||
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
|
||||
use system calls to synchronize itself with an application task.
|
||||
The synchronization may involve messages, events or signals
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
@c
|
||||
@c COPYRIGHT (c) 1988-2002.
|
||||
@c COPYRIGHT (c) 1988-2008.
|
||||
@c On-Line Applications Research Corporation (OAR).
|
||||
@c All rights reserved.
|
||||
@c
|
||||
@@ -329,33 +329,20 @@ microprocessor architecture.
|
||||
@section Memory Requirements
|
||||
|
||||
Since memory is a critical resource in many real-time
|
||||
embedded systems, RTEMS was specifically designed to allow
|
||||
unused managers to be excluded from the run-time environment.
|
||||
This allows the application designer the flexibility to tailor
|
||||
RTEMS to most efficiently meet system requirements while still
|
||||
satisfying even the most stringent memory constraints. As a
|
||||
result, the size of the RTEMS executive is application
|
||||
dependent. A worksheet is provided in the Memory Requirements
|
||||
chapter of the Applications Supplement document for a specific
|
||||
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:
|
||||
embedded systems, RTEMS was specifically designed to automatically
|
||||
leave out all services that are not required from the run-time
|
||||
environment. Features such as networking, various fileystems,
|
||||
and many other features are completely optionsl. This allows
|
||||
the application designer the flexibility to tailor RTEMS to most
|
||||
efficiently meet system requirements while still satisfying even
|
||||
the most stringent memory constraints. As a result, the size
|
||||
of the RTEMS executive is application dependent.
|
||||
|
||||
@itemize @bullet
|
||||
@item clock
|
||||
@item timer
|
||||
@item semaphore
|
||||
@item message
|
||||
@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 requires RAM to manage each instance of an RTEMS object
|
||||
that is created. Thus the more RTEMS objects an application
|
||||
needs, the more memory that must be reserved. See
|
||||
@ref{Configuring a System Determining Memory Requirements} for
|
||||
more details.
|
||||
|
||||
RTEMS utilizes memory for both code and data space.
|
||||
Although RTEMS' data space must be in RAM, its code space can be
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
@c
|
||||
@c COPYRIGHT (c) 1988-2007.
|
||||
@c COPYRIGHT (c) 1988-2008.
|
||||
@c On-Line Applications Research Corporation (OAR).
|
||||
@c All rights reserved.
|
||||
@c
|
||||
@@ -49,7 +49,7 @@ would be performed by the application code which invoked the
|
||||
The timer can be used to implement watchdog routines
|
||||
which only fire to denote that an application error has
|
||||
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
|
||||
timer service routine will fire to indicate that the application
|
||||
has failed to reach a reset point. This use of a timer is
|
||||
|
||||
Reference in New Issue
Block a user