OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [rtems-20020807/] [doc/] [supplements/] [arm/] [bsp.t] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1026 ivang
@c
2
@c  COPYRIGHT (c) 1988-2002.
3
@c  On-Line Applications Research Corporation (OAR).
4
@c  All rights reserved.
5
@c
6
@c  bsp.t,v 1.1 2002/07/30 21:43:53 joel Exp
7
@c
8
 
9
@chapter Board Support Packages
10
 
11
@section Introduction
12
 
13
An RTEMS Board Support Package (BSP) must be designed
14
to support a particular processor and target board combination.
15
This chapter presents a discussion of XXX specific BSP
16
issues.   For more information on developing a BSP, refer to the
17
chapter titled Board Support Packages in the RTEMS
18
Applications User's Guide.
19
 
20
@section System Reset
21
 
22
An RTEMS based application is initiated or
23
re-initiated when the XXX processor is reset.  When the
24
XXX is reset, the processor performs the following actions:
25
 
26
@itemize @bullet
27
@item The tracing bits of the status register are cleared to
28
disable tracing.
29
 
30
@item The supervisor interrupt state is entered by setting the
31
supervisor (S) bit and clearing the master/interrupt (M) bit of
32
the status register.
33
 
34
@item The interrupt mask of the status register is set to
35
level 7 to effectively disable all maskable interrupts.
36
 
37
@item The vector base register (VBR) is set to zero.
38
 
39
@item The cache control register (CACR) is set to zero to
40
disable and freeze the processor cache.
41
 
42
@item The interrupt stack pointer (ISP) is set to the value
43
stored at vector 0 (bytes 0-3) of the exception vector table
44
(EVT).
45
 
46
@item The program counter (PC) is set to the value stored at
47
vector 1 (bytes 4-7) of the EVT.
48
 
49
@item The processor begins execution at the address stored in
50
the PC.
51
@end itemize
52
 
53
@section Processor Initialization
54
 
55
The address of the application's initialization code
56
should be stored in the first vector of the EVT which will allow
57
the immediate vectoring to the application code.  If the
58
application requires that the VBR be some value besides zero,
59
then it should be set to the required value at this point.  All
60
tasks share the same XXX's VBR value.  Because interrupts
61
are enabled automatically by RTEMS as part of the initialize
62
executive directive, the VBR MUST be set before this directive
63
is invoked to insure correct interrupt vectoring.  If processor
64
caching is to be utilized, then it should be enabled during the
65
reset application initialization code.
66
 
67
In addition to the requirements described in the
68
Board Support Packages chapter of the Applications User's
69
Manual for the reset code which is executed before the call to
70
initialize executive, the XXX version has the following
71
specific requirements:
72
 
73
@itemize @bullet
74
@item Must leave the S bit of the status register set so that
75
the XXX remains in the supervisor state.
76
 
77
@item Must set the M bit of the status register to remove the
78
XXX from the interrupt state.
79
 
80
@item Must set the master stack pointer (MSP) such that a
81
minimum stack size of MINIMUM_STACK_SIZE bytes is provided for
82
the initialize executive directive.
83
 
84
@item Must initialize the XXX's vector table.
85
@end itemize
86
 
87
Note that the BSP is not responsible for allocating
88
or installing the interrupt stack.  RTEMS does this
89
automatically as part of initialization.  If the BSP does not
90
install an interrupt stack and -- for whatever reason -- an
91
interrupt occurs before initialize_executive is invoked, then
92
the results are unpredictable.
93
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.