source: rtems/doc/porting/cpumodels.t @ a5e7b3c

4.9
Last change on this file since a5e7b3c was a5e7b3c, checked in by Joel Sherrill <joel.sherrill@…>, on 09/10/08 at 15:58:58

2008-09-10 Joel Sherrill <joel.sherrill@…>

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