summaryrefslogtreecommitdiffstats
path: root/doc/user
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2007-12-04 22:18:30 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2007-12-04 22:18:30 +0000
commit66c50e281a052374d1b7b2761a75f51d6d129be2 (patch)
tree7ac4d4169366fc55a554ae1891b647347b3eaa0d /doc/user
parent2007-12-04 Joel Sherrill <joel.sherrill@oarcorp.com> (diff)
downloadrtems-66c50e281a052374d1b7b2761a75f51d6d129be2.tar.bz2
2007-12-04 Joel Sherrill <joel.sherrill@OARcorp.com>
* cpu_supplement/arm.t, cpu_supplement/i386.t, cpu_supplement/m68k.t, cpu_supplement/mips.t, cpu_supplement/powerpc.t, cpu_supplement/sh.t, cpu_supplement/sparc.t, cpu_supplement/tic4x.t, porting/cpuinit.t, user/conf.t, user/init.t: Move interrupt_stack_size field from CPU Table to Configuration Table. Eliminate CPU Table from all ports. Delete references to CPU Table in all forms.
Diffstat (limited to 'doc/user')
-rw-r--r--doc/user/conf.t25
-rw-r--r--doc/user/init.t103
2 files changed, 30 insertions, 98 deletions
diff --git a/doc/user/conf.t b/doc/user/conf.t
index e2df439307..bff67ca27d 100644
--- a/doc/user/conf.t
+++ b/doc/user/conf.t
@@ -11,7 +11,6 @@
@c CONFIGURE_NEWLIB_EXTENSION - probably not needed
@c CONFIGURE_MALLOC_REGION - probably not needed
@c CONFIGURE_LIBIO_SEMAPHORES - implicitly discussed.
-@c CONFIGURE_INTERRUPT_STACK_MEMORY
@c CONFIGURE_GNAT_RTEMS
@c CONFIGURE_GNAT_MUTEXES
@c CONFIGURE_GNAT_KEYS
@@ -201,13 +200,13 @@ This section defines the general system configuration parameters supported by
if the application is providing their own complete set of configuration
tables.
-@findex CONFIGURE_INTERRUPT_STACK_MEMORY
-@item @code{CONFIGURE_INTERRUPT_STACK_MEMORY} is set to the
+@findex CONFIGURE_INTERRUPT_STACK_SIZE
+@item @code{CONFIGURE_INTERRUPT_STACK_SIZE} is set to the
size of the interrupt stack. The interrupt stack size is
usually set by the BSP but since this memory is allocated
from the RTEMS Ram Workspace, it must be accounted for. The
default for this field is RTEMS_MINIMUM_STACK_SIZE. [NOTE:
-At this time, changing this constant does NOT change the
+In some BSPs, changing this constant does NOT change the
size of the interrupt stack, only the amount of memory
reserved for it.]
@@ -227,6 +226,12 @@ of time between clock ticks. By default, this is set to
of the timeslice quantum in ticks for each task. By
default, this is 50.
+@fnindex CONFIGURE_INTERRUPT_STACK_SIZE
+@item @code{CONFIGURE_INTERRUPT_STACK_SIZE} is set to the
+desired stack size for the interrupt. If not specified,
+the interrupt stack will be of minimum size. The default
+value is @code{RTEMS_MINIMUM_STACK_SIZE}.
+
@findex CONFIGURE_TASK_STACK_ALLOCATOR
@item @code{CONFIGURE_TASK_STACK_ALLOCATOR}
may point to a user provided routine to allocate task stacks.
@@ -788,6 +793,7 @@ typedef struct @{
uint32_t ticks_per_timeslice;
void (*idle_task)( void );
uint32_t idle_task_stack_size;
+ uint32_t interrupt_stack_size;
void * (*stack_allocate_hook)( uint32_t );
void (*stack_free_hook)( void * );
boolean do_zero_of_workspace;
@@ -857,12 +863,21 @@ corresponds to the setting of the macro @code{CONFIGURE_IDLE_TASK_BODY}.
@item idle_task_stack_size
is the size of the RTEMS idle task stack in bytes.
If this number is less than MINIMUM_STACK_SIZE, then the
-idle task's stack will be MINIMUM_STACK_SIZE in byte.
+idle task's stack will be MINIMUM_STACK_SIZE in bytes.
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_IDLE_TASK_STACK_SIZE}.
+@item interrupt_stack_size
+is the size of the RTEMS interrupt stack in bytes.
+If this number is less than MINIMUM_STACK_SIZE, then the
+interrupt stack will be MINIMUM_STACK_SIZE in bytes.
+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_INTERRUPT_STACK_SIZE}.
+
@item stack_allocate_hook
may point to a user provided routine to allocate task stacks.
The default is to allocate task stacks from the RTEMS Workspace.
diff --git a/doc/user/init.t b/doc/user/init.t
index f5bfd3840a..375cc6ea0f 100644
--- a/doc/user/init.t
+++ b/doc/user/init.t
@@ -19,7 +19,6 @@ also initializes the interprocessor communications layer. The
directives provided by the initialization manager are:
@itemize @bullet
-@item @code{@value{DIRPREFIX}initialize_executive} - Initialize RTEMS
@item @code{@value{DIRPREFIX}initialize_executive_early} - Initialize RTEMS and do NOT Start Multitasking
@item @code{@value{DIRPREFIX}initialize_executive_late} - Complete Initialization and Start Multitasking
@item @code{@value{DIRPREFIX}shutdown_executive} - Shutdown RTEMS
@@ -124,14 +123,11 @@ created or started successfully.
@subsection Initializing RTEMS
-The @code{@value{DIRPREFIX}initialize_executive}
-directive is called by the
-board support package at the completion of its initialization
+The Initializatiton Manager directives are called by the
+board support package framework as part of its initialization
sequence. RTEMS assumes that the board support package
-successfully completed its initialization activities. The
-@code{@value{DIRPREFIX}initialize_executive}
-directive completes the initialization
-sequence by performing the following actions:
+successfully completed its initialization activities. These
+directives initialize RTEMS by performing the following actions:
@itemize @bullet
@item Initializing internal RTEMS variables;
@@ -144,36 +140,21 @@ sequence by performing the following actions:
This directive MUST be called before any other RTEMS
directives. The effect of calling any RTEMS directives before
-@code{@value{DIRPREFIX}initialize_executive}
+@code{@value{DIRPREFIX}initialize_executive_early}
is unpredictable. Many of RTEMS actions
during initialization are based upon the contents of the
-Configuration Table and CPU Dependent Information Table. For
-more information regarding the format and contents of these
-tables, please refer to the chapter Configuring a System.
+Configuration Table. For more information regarding the format
+and contents of this table, please refer to the chapter
+Configuring a System.
The final step in the initialization sequence is the
initiation of multitasking. When the scheduler and dispatcher
are enabled, the highest priority, ready task will be dispatched
to run. Control will not be returned to the board support
package after multitasking is enabled until
-@code{@value{DIRPREFIX}shutdown_executive}
+@code{@value{DIRPREFIX}shutdown_executive_late}
the directive is called.
-The @code{@value{DIRPREFIX}initialize_executive}
-directive provides a
-conceptually simple way to initialize RTEMS. However, in
-certain cases, this mechanism cannot be used. The
-@code{@value{DIRPREFIX}initialize_executive_early}
-and @code{@value{DIRPREFIX}initialize_executive_late}
-directives are provided as an alternative mechanism for
-initializing RTEMS. The
-@code{@value{DIRPREFIX}initialize_executive_early} directive
-returns to the caller BEFORE initiating multitasking. The
-@code{@value{DIRPREFIX}initialize_executive_late}
-directive is invoked to start
-multitasking. It is critical that only one of the RTEMS
-initialization sequences be used in an application.
-
@subsection Shutting Down RTEMS
The @code{@value{DIRPREFIX}shutdown_executive} directive is invoked by the
@@ -190,69 +171,6 @@ directives and describes the calling sequence, related
constants, usage, and status codes.
@page
-@subsection INITIALIZE_EXECUTIVE - Initialize RTEMS
-
-@cindex initialize RTEMS
-
-@subheading CALLING SEQUENCE:
-
-@ifset is-C
-@findex rtems_initialize_executive
-@example
-void rtems_initialize_executive(
- rtems_configuration_table *configuration_table,
- rtems_cpu_table *cpu_table
-);
-@end example
-@end ifset
-
-@ifset is-Ada
-@example
-NOT SUPPORTED FROM Ada BINDING
-@end example
-@end ifset
-
-@subheading DIRECTIVE STATUS CODES:
-
-NONE
-
-@subheading DESCRIPTION:
-
-This directive is called when the board support
-package has completed its initialization to allow RTEMS to
-initialize the application environment based upon the
-information in the Configuration Table, CPU Dependent
-Information Table, User Initialization Tasks Table, Device
-Driver Table, User Extension Table, Multiprocessor Configuration
-Table, and the Multiprocessor Communications Interface (MPCI)
-Table. This directive starts multitasking and does not return
-to the caller until the @code{@value{DIRPREFIX}shutdown_executive}
-directive is invoked.
-
-@subheading NOTES:
-
-This directive MUST be the first RTEMS directive
-called and it DOES NOT RETURN to the caller until the
-@code{@value{DIRPREFIX}shutdown_executive}
-is invoked.
-
-This directive causes all nodes in the system to
-verify that certain configuration parameters are the same as
-those of the local node. If an inconsistency is detected, then
-a fatal error is generated.
-
-The application must use only one of the two
-initialization sequences:
-@code{@value{DIRPREFIX}initialize_executive} or
-@code{@value{DIRPREFIX}initialize_executive_early} and
-@code{@value{DIRPREFIX}initialize_executive_late}. The
-@code{@value{DIRPREFIX}initialize_executive}
-directive is logically equivalent to invoking
-@code{@value{DIRPREFIX}initialize_executive_early} and
-@code{@value{DIRPREFIX}initialize_executive_late}
-with no intervening actions.
-
-@page
@subsection INITIALIZE_EXECUTIVE_EARLY - Initialize RTEMS and do NOT Start Multitasking
@cindex initialize RTEMS
@@ -263,8 +181,7 @@ with no intervening actions.
@findex rtems_initialize_executive_early
@example
rtems_interrupt_level rtems_initialize_executive_early(
- rtems_configuration_table *configuration_table,
- rtems_cpu_table *cpu_table
+ rtems_configuration_table *configuration_table
);
@end example
@end ifset