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>
|
2007-12-10 Ralf Corsépius <ralf.corsepius@rtems.org>
|
||||||
|
|
||||||
* cpu_supplement/tic4x.t: Remove.
|
* cpu_supplement/tic4x.t: Remove.
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user