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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [rtems-20020807/] [doc/] [porting/] [cpumodels.t] - Blame information for rev 1771

Go to most recent revision | 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  cpumodels.t,v 1.6 2002/01/17 21:47:45 joel Exp
7
@c
8
 
9
@chapter CPU Model Variations
10
 
11
XXX enhance using portability presentation from CS595 class.  See
12
general/portability.ppt.
13
 
14
Since the text in the next section was written, RTEMS view of
15
portability has grown to distinguish totally portable, CPU
16
family dependent, CPU model dependent, peripheral chip dependent
17
and board dependent.  This text was part of a larger paper that
18
did not even cover portability completely as it existed when this
19
was written and certainly is out of date now. :)
20
 
21
 
22
@section Overview of RTEMS Portability
23
 
24
RTEMS was designed to be a highly portable, reusable software component.
25
This reflects the fundamental nature of embedded systems in which hardware
26
components, ranging from boards to peripherals to even the processor
27
itself, are selected specifically to meet the requirements of a particular
28
project.
29
 
30
@subsection Processor Families
31
 
32
Since there are a wide variety of embedded systems, there are a wide
33
variety of processors targeting embedded systems. RTEMS alleviates some of
34
the burden on the embedded systems programmer by providing a consistent,
35
high-performance environment regardless of the target processor.  RTEMS
36
has been ported to a variety of microprocessor families including:
37
 
38
@itemize @bullet
39
 
40
@item Motorola ColdFire
41
 
42
@item Motorola MC68xxx
43
 
44
@item Motorola MC683xx
45
 
46
@item Intel ix86 (i386 and above)
47
 
48
@item Intel i960
49
 
50
@item MIPS
51
 
52
@item PowerPC 4xx, 5xx, 6xx, 7xx, and 8xx
53
 
54
@item SPARC
55
 
56
@item Hewlett-Packard PA-RISC
57
 
58
@item AMD A29K
59
 
60
@end itemize
61
 
62
 
63
In addition, there is a port of RTEMS to UNIX that uses standard UNIX
64
services to simulate the embedded environment.
65
 
66
Each RTEMS port supplies a well-defined set of services that are the
67
foundation for the highly portable RTEMS and POSIX API implementations.
68
When porting to a new processor family, one must provide the processor
69
dependent implementation of these services.  This set of processor
70
dependent core services includes software to perform interrupt
71
dispatching, context switches, and manipulate task register sets.
72
 
73
The RTEMS approach to handling varying processor models reflects the
74
approach taken by the designers of the processors themselves.  In each
75
processor family, there is a core architecture that must be implemented on
76
all processor models within the family to provide any level of
77
compatibility.  Many of the modern RISC architectures refer to this as the
78
Architectural Definition.  The Architectural Definition is intended to be
79
independent of any particular implementation. Additionally, there is a
80
feature set which is allowed to vary in a defined way amongst the
81
processor models.  These feature sets may be defined as Optional in the
82
Architectural Definition, be left as implementation defined
83
characteristics, or be processor model specific extensions.  Support for
84
floating point, virtual memory, and low power mode are common Optional
85
features included in an Architectural Definition.
86
 
87
The processor family dependent software in RTEMS includes a definition of
88
which features are present in each supported processor model.  This often
89
makes adding support for a new processor model within a supported family
90
as simple as determining which features are present in the new processor
91
implementation.  If the new processor model varies in a way previously
92
unaccounted for, then this must be addressed.  This could be the result of
93
a new Optional feature set being added to the Architectural Definition.
94
Alternatively, this particular processor model could have a new and
95
different implementation of a feature left as undefined in the
96
Architectural Definition.  This would require software to be written to
97
utilize that feature.
98
 
99
There is a relatively small set of features that may vary in a processor
100
family.  As the number of processor models in the family grow, the
101
addition of each new model only requires adding an entry for the new model
102
to the single feature table.  It does not require searching for every
103
conditional based on processor model and adding the new model in the
104
appropriate place.  This significantly eases the burden of adding a new
105
processor model as it centralizes and logically simplifies the process.
106
 
107
@subsection Boards
108
 
109
Being portable both between models within a processor family and across
110
processor families is not enough to address the needs of embedded systems
111
developers.  Custom board development is the norm for embedded systems.
112
Each of these boards is optimized for a particular project.  The processor
113
and peripheral set have been chosen to meet a particular set of system
114
requirements.  The tools in the embedded systems developers’ toolbox must
115
support their project’s unique board.  RTEMS addresses this issue via the
116
Board Support Package.
117
 
118
RTEMS segregates board specific code to make it possible for the embedded
119
systems developer to easily replace and customize this software.  A
120
minimal Board Support Package includes device drivers for a clock tick,
121
console I/O, and a benchmark timer (optional) as well as startup and
122
miscellaneous support code.  The Board Support Package for a project may
123
be extended to include the device drivers for any peripherals on the
124
custom board.
125
 
126
@subsection Applications
127
 
128
One important design goal of RTEMS was to provide a bridge between the
129
application software and the target hardware.  Most hardware dependencies
130
for real-time applications can be localized to the low level device
131
drivers which provide an abstracted view of the hardware.  The RTEMS I/O
132
interface manager provides an efficient tool for incorporating these
133
hardware dependencies into the system while simultaneously providing a
134
general mechanism to the application code that accesses them.  A well
135
designed real-time system can benefit from this architecture by building a
136
rich library of standard application components which can be used
137
repeatedly in other real-time projects. The following figure illustrates
138
how RTEMS serves as a buffer between the project dependent application
139
code and the target hardware.
140
 
141
@section Coding Issues
142
 
143
XXX deal with this as it applies to score/cpu.  Section name may
144
be bad.

powered by: WebSVN 2.1.0

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