1 | @c |
---|
2 | @c COPYRIGHT (c) 1988-1998. |
---|
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. If you are not familiar with either |
---|
26 | of these areas, please read them. This will help familiarize you with the |
---|
27 | types of systems RTEMS is designed to be used in and the cross development |
---|
28 | process used when developing RTEMS applications. |
---|
29 | |
---|
30 | @section Real-Time Embedded Systems |
---|
31 | |
---|
32 | Real-time embedded systems are found in practically every facet of our |
---|
33 | everyday lives. Today's systems range from the common telephone, automobile |
---|
34 | control systems, and kitchen appliances to complex air traffic control |
---|
35 | systems, military weapon systems, an d production line control including |
---|
36 | robotics and automation. However, in the current climate of rapidly changing |
---|
37 | technology, it is difficult to reach a consensus on the definition of a |
---|
38 | real-time embedded system. Hardware costs are continuing to rapidly decline |
---|
39 | while at the same time the hardware is increasing in power and functionality. |
---|
40 | As a result, embedded systems that were not considered viable two years ago |
---|
41 | are suddenly a cost effective solution. In this domain, it is not uncommon |
---|
42 | for a single hardware configuration to employ a variety of architectures and |
---|
43 | technologies. Therefore, we shall define an embedded system as any computer |
---|
44 | system that is built into a larger system consisting of multiple technologies |
---|
45 | such as digital and analog electronics, mechanical devices, and sensors. |
---|
46 | |
---|
47 | Even as hardware platforms become more powerful, most embedded systems are |
---|
48 | critically dependent on the real-time software embedded in the systems |
---|
49 | themselves. Regardless of how efficiently the hardware operates, the |
---|
50 | performance of the embedded real-time software determines the success of the |
---|
51 | system. As the complexity of the embedded hardware platform grows, so does |
---|
52 | the size and complexity of the embedded software. Software systems must |
---|
53 | routinely perform activities which were only dreamed of a short time ago. |
---|
54 | These large, complex, real-time embedded applications now commonly contain |
---|
55 | one million lines of code or more. |
---|
56 | |
---|
57 | Real-time embedded systems have a complex set of characteristics that |
---|
58 | distinguish them from other software applications. Real-time embedded |
---|
59 | systems are driven by and must respond to real world events while adhering to |
---|
60 | rigorous requirements imposed by the environment with which they interact. |
---|
61 | The correctness of the system depends not only on the results of |
---|
62 | computations, but also on the time at which the results are produced. The |
---|
63 | most important and complex characteristic of real-time application systems is |
---|
64 | that they must receive and respond to a set of external stimuli within rigid |
---|
65 | and critical time constraints. |
---|
66 | |
---|
67 | A single real-time application can be composed of both soft and hard |
---|
68 | real-time components. A typical example of a hard real-time system is a |
---|
69 | nuclear reactor control system that must not only detect failures, but must |
---|
70 | also respond quickly enough to prevent a meltdown. This application also has |
---|
71 | soft real-time requirements because it may involve a man-machine interface. |
---|
72 | Providing an interactive input to the control system is not as critical as |
---|
73 | setting off an alarm to indicate a failure condition. However, th e |
---|
74 | interactive system component must respond within an acceptable time limit to |
---|
75 | allow the operator to interact efficiently with the control system. |
---|
76 | |
---|
77 | @section Cross Development |
---|
78 | |
---|
79 | Today almost all real-time embedded software systems are developed in a |
---|
80 | @b{cross development} environment using cross development tools. In the cross |
---|
81 | development environment, software development activities are typically |
---|
82 | performed on one computer system, the @b{host} system, while the result of the |
---|
83 | development effort (produced by the cross tools) is a software system that |
---|
84 | executes on the @b{target} platform. The requirements for the target platform are |
---|
85 | usually incompatible and quite often in direct conflict with the requirements |
---|
86 | for the host. Moreover, the target hardware is often custom designed for a |
---|
87 | particular project. This means that the cross development toolset must allow |
---|
88 | the developer to customize the tools to address target specific run-time |
---|
89 | issues. The toolset must have provisions for board dependent initialization |
---|
90 | code, device drivers, and error handling code. |
---|
91 | |
---|
92 | The host computer is optimized to support the code development cycle with |
---|
93 | support for code editors, compilers, and linkers requiring large disk drives, |
---|
94 | user development windows, and multiple developer connections. Thus the host |
---|
95 | computer is typically a traditional UNIX workstation such as are available |
---|
96 | from SUN or Silicon Graphics, or a PC running either a version of MS-Windows |
---|
97 | or UNIX. The host system may also be required to execute office productivity |
---|
98 | applications to allow the software developer to write documentation, make |
---|
99 | presentations, or track the project's progress using a project management |
---|
100 | tool. This necessitates that the host computer be general purpose with |
---|
101 | resources such as a thirty-two or sixty-four bit processor, large amounts of |
---|
102 | RAM, a monitor, mouse, keyboard, hard and floppy disk drives, CD-ROM drive, |
---|
103 | and a graphics card. It is likely that the system will be multimedia capable |
---|
104 | and have some networking capability. |
---|
105 | |
---|
106 | Conversely, the target platform generally has limited traditional computer |
---|
107 | resources. The hardware is designed for the particular functionality and |
---|
108 | requirements of the embedded system and optimized to perform those tasks |
---|
109 | effectively. Instead of hard driverss and keyboards, it is composed of |
---|
110 | sensors, relays, and stepper motors. The per-unit cost of the target platform |
---|
111 | is typically a critical concern. No hardware component is included without |
---|
112 | being cost justified. As a result, the processor of the target system is |
---|
113 | often from a different processor family than that of the host system and |
---|
114 | usually has lower performance. In addition to the processor families |
---|
115 | targeted only for use in embedded systems, there are versions of nearly every |
---|
116 | general-purpose process or specifically tailored for real-time embedded |
---|
117 | systems. For example, many of the processors targeting the embedded market |
---|
118 | do not include hardware floating point units, but do include peripherals such |
---|
119 | as timers, serial controllers, or network interfaces. |
---|
120 | |
---|
121 | |
---|
122 | |
---|