1 | @c |
---|
2 | @c COPYRIGHT (c) 1988-2010. |
---|
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 Cross Compilation Tools for RTEMS on your build-host system |
---|
20 | @item RTEMS OS for the target |
---|
21 | @item GNU Debugger (GDB) |
---|
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, and 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, the |
---|
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{build-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 build-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 build-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 build-host |
---|
97 | computer is typically a traditional UNIX workstation such as those available |
---|
98 | from SUN or Silicon Graphics, or a PC running either a version of MS-Windows |
---|
99 | or UNIX. The build-host system may also be required to execute |
---|
100 | office productivity applications to allow the software developer |
---|
101 | to write documentation, make presentations, or track the project's |
---|
102 | progress using a project management tool. This necessitates that the |
---|
103 | build-host computer be general purpose with resources such as a |
---|
104 | thirty-two or sixty-four bit processor, large amounts of |
---|
105 | RAM, a monitor, mouse, keyboard, hard and floppy disk drives, CD-ROM drive, |
---|
106 | and a graphics card. It is likely that the system will be multimedia capable |
---|
107 | and have some networking capability. |
---|
108 | |
---|
109 | Conversely, the target platform generally has limited traditional computer |
---|
110 | resources. The hardware is designed for the particular functionality and |
---|
111 | requirements of the embedded system and optimized to perform those tasks |
---|
112 | effectively. Instead of hard drives and keyboards, it is composed of |
---|
113 | sensors, relays, and stepper motors. The per-unit cost of the target platform |
---|
114 | is typically a critical concern. No hardware component is included without |
---|
115 | being cost justified. As a result, the processor of the target system is |
---|
116 | often from a different processor family than that of the build-host system and |
---|
117 | usually has lower performance. In addition to the processor families |
---|
118 | designed only for use in embedded systems, there are versions of nearly every |
---|
119 | general-purpose processor specifically tailored for real-time embedded |
---|
120 | systems. For example, many of the processors targeting the embedded market |
---|
121 | do not include hardware floating point units, but do include peripherals such |
---|
122 | as timers, serial controllers, or network interfaces. |
---|
123 | |
---|
124 | @section Resources on the Internet |
---|
125 | |
---|
126 | This section describes various resources on the Internet which are of |
---|
127 | use to RTEMS users. |
---|
128 | |
---|
129 | @c |
---|
130 | @c Online Tool Documentation |
---|
131 | @c |
---|
132 | |
---|
133 | @subsection Online Tool Documentation |
---|
134 | |
---|
135 | Each of the tools in the GNU development suite comes with documentation. |
---|
136 | It is in the reader's and tool maintainers' interest that one read the |
---|
137 | documentation before posting a problem to a mailing list or news group. |
---|
138 | The RTEMS Project provides formatted documentation for the primary |
---|
139 | tools in the cross development toolset including BINUTILS, GCC, |
---|
140 | NEWLIB, and GDB with the pre-built versions of those tools. |
---|
141 | |
---|
142 | Much of the documentation is available at other sites on the Internet. |
---|
143 | The following is a list of URLs where one can find HTML versions of |
---|
144 | the GNU manuals: |
---|
145 | |
---|
146 | @table @b |
---|
147 | |
---|
148 | @item Free Software Foundation |
---|
149 | @uref{http://www.gnu.org/manual/manual.html, |
---|
150 | http://www.gnu.org/manual/manual.html} |
---|
151 | |
---|
152 | @item Delorie Software |
---|
153 | @uref{http://www.delorie.com/gnu/docs, http://www.delorie.com/gnu/docs} |
---|
154 | |
---|
155 | @end table |
---|
156 | |
---|
157 | |
---|
158 | @subsection RTEMS Mailing List |
---|
159 | |
---|
160 | @uref{mailto:@value{RTEMSUSERS},@value{RTEMSUSERS}} |
---|
161 | |
---|
162 | This is the primary mailing list for the discussion of issues |
---|
163 | related to RTEMS, including GNAT/RTEMS. If you have questions |
---|
164 | about RTEMS, wish to make suggestions, track development efforts, |
---|
165 | or just want to pick up hints, this is a good list to monitor. |
---|
166 | If you would like to browse the thousands of messages in the fifteen |
---|
167 | year archive of the mailing list or subscribe to it, please visit |
---|
168 | @uref{http://www.rtems.org/mailman,http://www.rtems.org/mailman} for |
---|
169 | more information, |
---|
170 | |
---|
171 | @subsection GCC Mailing Lists |
---|
172 | |
---|
173 | The GCC Project is hosted at @uref{http://gcc.gnu.org,http://gcc.gnu.org}. |
---|
174 | They maintain multiple mailing lists that are described at the web site |
---|
175 | along with subscription information. |
---|