1 | @c |
---|
2 | @c COPYRIGHT (c) 1988-1999. |
---|
3 | @c On-Line Applications Research Corporation (OAR). |
---|
4 | @c All rights reserved. |
---|
5 | @c |
---|
6 | @c $Id$ |
---|
7 | @c |
---|
8 | |
---|
9 | @chapter Introduction |
---|
10 | |
---|
11 | The purpose of this document is to guide you through the process of |
---|
12 | installing a GNU cross development environment to use with RTEMS. |
---|
13 | |
---|
14 | If you are already familiar with the concepts behind a cross compiler and |
---|
15 | have a background in Unix, these instructions should provide the bare |
---|
16 | essentials for performing a setup of the following items: |
---|
17 | |
---|
18 | @itemize @bullet |
---|
19 | @item GNU C/C++ Cross Compilation Tools for RTEMS on your host system |
---|
20 | @item RTEMS OS for the target host |
---|
21 | @item GDB Debugger |
---|
22 | @end itemize |
---|
23 | |
---|
24 | The remainder of this chapter provides background information on real-time |
---|
25 | embedded systems and cross development and an overview of other |
---|
26 | resources of interest on the Internet. If you are not familiar with |
---|
27 | real-time embedded systems or the other areas, please read those sections. |
---|
28 | These sections will help familiarize you with the |
---|
29 | types of systems RTEMS is designed to be used in and the cross development |
---|
30 | process used when developing RTEMS applications. |
---|
31 | |
---|
32 | @section Real-Time Embedded Systems |
---|
33 | |
---|
34 | Real-time embedded systems are found in practically every facet of our |
---|
35 | everyday lives. Today's systems range from the common telephone, automobile |
---|
36 | control systems, and kitchen appliances to complex air traffic control |
---|
37 | systems, military weapon systems, an d production line control including |
---|
38 | robotics and automation. However, in the current climate of rapidly changing |
---|
39 | technology, it is difficult to reach a consensus on the definition of a |
---|
40 | real-time embedded system. Hardware costs are continuing to rapidly decline |
---|
41 | while at the same time the hardware is increasing in power and functionality. |
---|
42 | As a result, embedded systems that were not considered viable two years ago |
---|
43 | are suddenly a cost effective solution. In this domain, it is not uncommon |
---|
44 | for a single hardware configuration to employ a variety of architectures and |
---|
45 | technologies. Therefore, we shall define an embedded system as any computer |
---|
46 | system that is built into a larger system consisting of multiple technologies |
---|
47 | such as digital and analog electronics, mechanical devices, and sensors. |
---|
48 | |
---|
49 | Even as hardware platforms become more powerful, most embedded systems are |
---|
50 | critically dependent on the real-time software embedded in the systems |
---|
51 | themselves. Regardless of how efficiently the hardware operates, the |
---|
52 | performance of the embedded real-time software determines the success of the |
---|
53 | system. As the complexity of the embedded hardware platform grows, so does |
---|
54 | the size and complexity of the embedded software. Software systems must |
---|
55 | routinely perform activities which were only dreamed of a short time ago. |
---|
56 | These large, complex, real-time embedded applications now commonly contain |
---|
57 | one million lines of code or more. |
---|
58 | |
---|
59 | Real-time embedded systems have a complex set of characteristics that |
---|
60 | distinguish them from other software applications. Real-time embedded |
---|
61 | systems are driven by and must respond to real world events while adhering to |
---|
62 | rigorous requirements imposed by the environment with which they interact. |
---|
63 | The correctness of the system depends not only on the results of |
---|
64 | computations, but also on the time at which the results are produced. The |
---|
65 | most important and complex characteristic of real-time application systems is |
---|
66 | that they must receive and respond to a set of external stimuli within rigid |
---|
67 | and critical time constraints. |
---|
68 | |
---|
69 | A single real-time application can be composed of both soft and hard |
---|
70 | real-time components. A typical example of a hard real-time system is a |
---|
71 | nuclear reactor control system that must not only detect failures, but must |
---|
72 | also respond quickly enough to prevent a meltdown. This application also has |
---|
73 | soft real-time requirements because it may involve a man-machine interface. |
---|
74 | Providing an interactive input to the control system is not as critical as |
---|
75 | setting off an alarm to indicate a failure condition. However, th e |
---|
76 | interactive system component must respond within an acceptable time limit to |
---|
77 | allow the operator to interact efficiently with the control system. |
---|
78 | |
---|
79 | @section Cross Development |
---|
80 | |
---|
81 | Today almost all real-time embedded software systems are developed in a |
---|
82 | @b{cross development} environment using cross development tools. In the cross |
---|
83 | development environment, software development activities are typically |
---|
84 | performed on one computer system, the @b{host} system, while the result of the |
---|
85 | development effort (produced by the cross tools) is a software system that |
---|
86 | executes on the @b{target} platform. The requirements for the target platform are |
---|
87 | usually incompatible and quite often in direct conflict with the requirements |
---|
88 | for the host. Moreover, the target hardware is often custom designed for a |
---|
89 | particular project. This means that the cross development toolset must allow |
---|
90 | the developer to customize the tools to address target specific run-time |
---|
91 | issues. The toolset must have provisions for board dependent initialization |
---|
92 | code, device drivers, and error handling code. |
---|
93 | |
---|
94 | The host computer is optimized to support the code development cycle with |
---|
95 | support for code editors, compilers, and linkers requiring large disk drives, |
---|
96 | user development windows, and multiple developer connections. Thus the host |
---|
97 | computer is typically a traditional UNIX workstation such as are available |
---|
98 | from SUN or Silicon Graphics, or a PC running either a version of MS-Windows |
---|
99 | or UNIX. The host system may also be required to execute office productivity |
---|
100 | applications to allow the software developer to write documentation, make |
---|
101 | presentations, or track the project's progress using a project management |
---|
102 | tool. This necessitates that the host computer be general purpose with |
---|
103 | resources such as a thirty-two or sixty-four bit processor, large amounts of |
---|
104 | RAM, a monitor, mouse, keyboard, hard and floppy disk drives, CD-ROM drive, |
---|
105 | and a graphics card. It is likely that the system will be multimedia capable |
---|
106 | and have some networking capability. |
---|
107 | |
---|
108 | Conversely, the target platform generally has limited traditional computer |
---|
109 | resources. The hardware is designed for the particular functionality and |
---|
110 | requirements of the embedded system and optimized to perform those tasks |
---|
111 | effectively. Instead of hard driverss and keyboards, it is composed of |
---|
112 | sensors, relays, and stepper motors. The per-unit cost of the target platform |
---|
113 | is typically a critical concern. No hardware component is included without |
---|
114 | being cost justified. As a result, the processor of the target system is |
---|
115 | often from a different processor family than that of the host system and |
---|
116 | usually has lower performance. In addition to the processor families |
---|
117 | targeted only for use in embedded systems, there are versions of nearly every |
---|
118 | general-purpose process or specifically tailored for real-time embedded |
---|
119 | systems. For example, many of the processors targeting the embedded market |
---|
120 | do not include hardware floating point units, but do include peripherals such |
---|
121 | as timers, serial controllers, or network interfaces. |
---|
122 | |
---|
123 | @section Resources on the Internet |
---|
124 | |
---|
125 | This section describes various resources on the Internet which are of |
---|
126 | use to RTEMS users. |
---|
127 | |
---|
128 | @subsection RTEMS Mailing List |
---|
129 | |
---|
130 | rtems-users@@OARcorp.com |
---|
131 | |
---|
132 | This mailing list is dedicated to the discussion of issues related |
---|
133 | to RTEMS, including GNAT/RTEMS. If you have questions about RTEMS, |
---|
134 | wish to make suggestions, or just want to pick up hints, this is a |
---|
135 | good list to subscribe to. Subscribe by sending an empty mail |
---|
136 | message to rtems-users-subscribe@@OARcorp.com. Messages sent |
---|
137 | to rtems-users@@OARcorp.com are posted to the list. |
---|
138 | |
---|
139 | @subsection CrossGCC Mailing List |
---|
140 | |
---|
141 | crossgcc@@cygnus.com |
---|
142 | |
---|
143 | This mailing list is dedicated to the use of the GNU tools in |
---|
144 | cross development environments. Most of the discussions |
---|
145 | focus on embedded issues. Subscribe by sending a message with |
---|
146 | the one line "subscribe" to crossgcc-request@@cygnus.com. |
---|
147 | |
---|
148 | The crossgcc FAQ as well as a number of patches and utiliities |
---|
149 | of interest to cross development system users are available |
---|
150 | at ftp://ftp.cygnus.com/pub/embedded/crossgcc. |
---|
151 | |
---|
152 | @subsection GCC Mailing Lists |
---|
153 | |
---|
154 | See http://gcc.gnu.org for details. |
---|
155 | |
---|
156 | The GCC Project maintains multiple mailing lists. They |
---|
157 | are described at the above web site along with subscription |
---|
158 | information. |
---|
159 | |
---|