summaryrefslogtreecommitdiffstats
path: root/doc/user/bsp.t
diff options
context:
space:
mode:
Diffstat (limited to 'doc/user/bsp.t')
-rw-r--r--doc/user/bsp.t33
1 files changed, 19 insertions, 14 deletions
diff --git a/doc/user/bsp.t b/doc/user/bsp.t
index dcef8a073e..06c81458f0 100644
--- a/doc/user/bsp.t
+++ b/doc/user/bsp.t
@@ -55,14 +55,16 @@ variety of processors and target platforms.
Normally, the application's initialization is
performed at two separate times: before the call to
-initialize_executive (reset application initialization) and
-after initialize_executive in the user's initialization tasks
+@code{@value{DIRPREFIX}initialize_executive}
+(reset application initialization) and
+after @code{@value{DIRPREFIX}initialize_executive}
+in the user's initialization tasks
(local and global application initialization). The order of the
startup procedure is as follows:
@enumerate
@item Reset application initialization.
-@item Call to initialize_executive
+@item Call to @code{@value{DIRPREFIX}initialize_executive}
@item Local and global application initialization.
@end enumerate
@@ -79,15 +81,17 @@ The processor's Interrupt Vector Table which will be
used by the application may need to be set to the required value
by the reset application initialization code. Because
interrupts are enabled automatically by RTEMS as part of the
-initialize_executive directive, the Interrupt Vector Table MUST
+@code{@value{DIRPREFIX}initialize_executive} directive,
+the Interrupt Vector Table MUST
be set before this directive is invoked to insure correct
interrupt vectoring. The processor's Interrupt Vector Table
must be accessible by RTEMS as it will be modified by the
-interrupt_catch directive. On some CPUs, RTEMS installs it's
+@code{@value{DIRPREFIX}interrupt_catch} directive.
+On some CPUs, RTEMS installs it's
own Interrupt Vector Table as part of initialization and thus
these requirements are met automatically. The reset code which
-is executed before the call to initialize_executive has the
-following requirements:
+is executed before the call to @code{@value{DIRPREFIX}initialize_executive}
+has the following requirements:
@itemize @bullet
@item Must not make any RTEMS directive calls.
@@ -98,7 +102,7 @@ state.
@item Must allocate a stack of at least @code{@value{RPREFIX}MINIMUM_STACK_SIZE}
bytes and initialize the stack pointer for the
-initialize_executive directive.
+@code{@value{DIRPREFIX}initialize_executive} directive.
@item Must initialize the processor's Interrupt Vector Table.
@@ -109,7 +113,7 @@ must allocate the interrupt stack and initialize the interrupt
stack pointer.
@end itemize
-The initialize_executive directive does not return to
+The @code{@value{DIRPREFIX}initialize_executive} directive does not return to
the initialization code, but causes the highest priority
initialization task to begin execution. Initialization tasks
are used to perform both local and global application
@@ -208,10 +212,10 @@ I/O Manager chapter.
@subsection Clock Tick Device Driver
Most RTEMS applications will include a clock tick
-device driver which invokes the clock_tick directive at regular
-intervals. The clock tick is necessary if the application is to
-utilize timeslicing, the clock manager, the timer manager, the
-rate monotonic manager, or the timeout option on blocking
+device driver which invokes the @code{@value{DIRPREFIX}clock_tick}
+directive at regular intervals. The clock tick is necessary if
+the application is to utilize timeslicing, the clock manager, the
+timer manager, the rate monotonic manager, or the timeout option on blocking
directives.
The clock tick is usually provided as an interrupt
@@ -226,7 +230,8 @@ accuracy of tick occurrences. The initial count can be based on
the microseconds_per_tick field in the RTEMS Configuration
Table. An alternate approach is to set the initial count for a
fixed time period (such as one millisecond) and have the ISR
-invoke clock_tick on the microseconds_per_tick boundaries.
+invoke @code{@value{DIRPREFIX}clock_tick}
+on the microseconds_per_tick boundaries.
Obviously, this can induce some error if the configured
microseconds_per_tick is not evenly divisible by the chosen
clock interrupt quantum.