1 | .. comment SPDX-License-Identifier: CC-BY-SA-4.0 |
---|
2 | |
---|
3 | .. COMMENT: COPYRIGHT (c) 1988-2008. |
---|
4 | .. COMMENT: On-Line Applications Research Corporation (OAR). |
---|
5 | .. COMMENT: All rights reserved. |
---|
6 | |
---|
7 | Preface |
---|
8 | ******* |
---|
9 | |
---|
10 | In recent years, the cost required to develop a software product has increased |
---|
11 | significantly while the target hardware costs have decreased. Now a larger |
---|
12 | portion of money is expended in developing, using, and maintaining software. |
---|
13 | The trend in computing costs is the complete dominance of software over |
---|
14 | hardware costs. Because of this, it is necessary that formal disciplines be |
---|
15 | established to increase the probability that software is characterized by a |
---|
16 | high degree of correctness, maintainability, and portability. In addition, |
---|
17 | these disciplines must promote practices that aid in the consistent and orderly |
---|
18 | development of a software system within schedule and budgetary constraints. To |
---|
19 | be effective, these disciplines must adopt standards which channel individual |
---|
20 | software efforts toward a common goal. |
---|
21 | |
---|
22 | The push for standards in the software development field has been met with |
---|
23 | various degrees of success. The Microprocessor Operating Systems Interfaces |
---|
24 | (MOSI) effort has experienced only limited success. As popular as the UNIX |
---|
25 | operating system has grown, the attempt to develop a standard interface |
---|
26 | definition to allow portable application development has only recently begun to |
---|
27 | produce the results needed in this area. Unfortunately, very little effort has |
---|
28 | been expended to provide standards addressing the needs of the real-time |
---|
29 | community. Several organizations have addressed this need during recent years. |
---|
30 | |
---|
31 | The Real Time Executive Interface Definition (RTEID) was developed by Motorola |
---|
32 | with technical input from Software Components Group. RTEID was adopted by the |
---|
33 | VMEbus International Trade Association (VITA) as a baseline draft for their |
---|
34 | proposed standard multiprocessor, real-time executive interface, Open Real-Time |
---|
35 | Kernel Interface Definition (ORKID). These two groups are currently working |
---|
36 | together with the IEEE P1003.4 committee to insure that the functionality of |
---|
37 | their proposed standards is adopted as the real-time extensions to POSIX. |
---|
38 | |
---|
39 | This emerging standard defines an interface for the development of real-time |
---|
40 | software to ease the writing of real-time application programs that are |
---|
41 | directly portable across multiple real-time executive implementations. This |
---|
42 | interface includes both the source code interfaces and run-time behavior as |
---|
43 | seen by a real-time application. It does not include the details of how a |
---|
44 | kernel implements these functions. The standard's goal is to serve as a |
---|
45 | complete definition of external interfaces so that application code that |
---|
46 | conforms to these interfaces will execute properly in all real-time executive |
---|
47 | environments. With the use of a standards compliant executive, routines that |
---|
48 | acquire memory blocks, create and manage message queues, establish and use |
---|
49 | semaphores, and send and receive signals need not be redeveloped for a |
---|
50 | different real-time environment as long as the new environment is compliant |
---|
51 | with the standard. Software developers need only concentrate on the hardware |
---|
52 | dependencies of the real-time system. Furthermore, most hardware dependencies |
---|
53 | for real-time applications can be localized to the device drivers. |
---|
54 | |
---|
55 | A compliant executive provides simple and flexible real-time multiprocessing. |
---|
56 | It easily lends itself to both tightly-coupled and loosely-coupled |
---|
57 | configurations (depending on the system hardware configuration). Objects such |
---|
58 | as tasks, queues, events, signals, semaphores, and memory blocks can be |
---|
59 | designated as global objects and accessed by any task regardless of which |
---|
60 | processor the object and the accessing task reside. |
---|
61 | |
---|
62 | The acceptance of a standard for real-time executives will produce the same |
---|
63 | advantages enjoyed from the push for UNIX standardization by AT&T's System V |
---|
64 | Interface Definition and IEEE's POSIX efforts. A compliant multiprocessing |
---|
65 | executive will allow close coupling between UNIX systems and real-time |
---|
66 | executives to provide the many benefits of the UNIX development environment to |
---|
67 | be applied to real-time software development. Together they provide the |
---|
68 | necessary laboratory environment to implement real-time, distributed, embedded |
---|
69 | systems using a wide variety of computer architectures. |
---|
70 | |
---|
71 | A study was completed in 1988, within the Research, Development, and |
---|
72 | Engineering Center, U.S. Army Missile Command, which compared the various |
---|
73 | aspects of the Ada programming language as they related to the application of |
---|
74 | Ada code in distributed and/or multiple processing systems. Several critical |
---|
75 | conclusions were derived from the study. These conclusions have a major impact |
---|
76 | on the way the Army develops application software for embedded |
---|
77 | applications. These impacts apply to both in-house software development and |
---|
78 | contractor developed software. |
---|
79 | |
---|
80 | A conclusion of the analysis, which has been previously recognized by other |
---|
81 | agencies attempting to utilize Ada in a distributed or multiprocessing |
---|
82 | environment, is that the Ada programming language does not adequately support |
---|
83 | multiprocessing. Ada does provide a mechanism for multi-tasking, however, this |
---|
84 | capability exists only for a single processor system. The language also does |
---|
85 | not have inherent capabilities to access global named variables, flags or |
---|
86 | program code. These critical features are essential in order for data to be |
---|
87 | shared between processors. However, these drawbacks do have workarounds which |
---|
88 | are sometimes awkward and defeat the intent of software maintainability and |
---|
89 | portability goals. |
---|
90 | |
---|
91 | Another conclusion drawn from the analysis, was that the run time executives |
---|
92 | being delivered with the Ada compilers were too slow and inefficient to be used |
---|
93 | in modern missile systems. A run time executive is the core part of the run |
---|
94 | time system code, or operating system code, that controls task scheduling, |
---|
95 | input/output management and memory management. Traditionally, whenever |
---|
96 | efficient executive (also known as kernel) code was required by the |
---|
97 | application, the user developed in-house software. This software was usually |
---|
98 | written in assembly language for optimization. |
---|
99 | |
---|
100 | Because of this shortcoming in the Ada programming language, software |
---|
101 | developers in research and development and contractors for project managed |
---|
102 | systems, are mandated by technology to purchase and utilize off-the-shelf third |
---|
103 | party kernel code. The contractor, and eventually the Government, must pay a |
---|
104 | licensing fee for every copy of the kernel code used in an embedded system. |
---|
105 | |
---|
106 | The main drawback to this development environment is that the Government does |
---|
107 | not own, nor has the right to modify code contained within the kernel. V&V |
---|
108 | techniques in this situation are more difficult than if the complete source |
---|
109 | code were available. Responsibility for system failures due to faulty software |
---|
110 | is yet another area to be resolved under this environment. |
---|
111 | |
---|
112 | The Guidance and Control Directorate began a software development effort to |
---|
113 | address these problems. A project to develop an experimental run time kernel |
---|
114 | was begun that will eliminate the major drawbacks of the Ada programming |
---|
115 | language mentioned above. The Real Time Executive for Multiprocessor Systems |
---|
116 | (RTEMS) provides full capabilities for management of tasks, interrupts, time, |
---|
117 | and multiple processors in addition to those features typical of generic |
---|
118 | operating systems. The code is Government owned, so no licensing fees are |
---|
119 | necessary. RTEMS has been implemented in both the Ada and C programming |
---|
120 | languages. It has been ported to the following processor families: |
---|
121 | |
---|
122 | - Adapteva Epiphany |
---|
123 | |
---|
124 | - Altera NIOS II |
---|
125 | |
---|
126 | - Analog Devices Blackfin |
---|
127 | |
---|
128 | - Atmel AVR |
---|
129 | |
---|
130 | - ARM |
---|
131 | |
---|
132 | - Freescale (formerly Motorola) MC68xxx |
---|
133 | |
---|
134 | - Freescale (formerly Motorola) MC683xx |
---|
135 | |
---|
136 | - Freescale (formerly Motorola) ColdFire |
---|
137 | |
---|
138 | - Intel i386 and above |
---|
139 | |
---|
140 | - Lattice Semiconductor LM32 |
---|
141 | |
---|
142 | - NEC V850 |
---|
143 | |
---|
144 | - MIPS |
---|
145 | |
---|
146 | - Moxie Processor |
---|
147 | |
---|
148 | - OpenRISC |
---|
149 | |
---|
150 | - PowerPC |
---|
151 | |
---|
152 | - Renesas (formerly Hitachi) SuperH |
---|
153 | |
---|
154 | - Renesas (formerly Hitachi) H8/300 |
---|
155 | |
---|
156 | - Renesas M32C |
---|
157 | |
---|
158 | - SPARC v7, v8, and V9 |
---|
159 | |
---|
160 | Since almost all of RTEMS is written in a high level language, ports to |
---|
161 | additional processor families require minimal effort. |
---|
162 | |
---|
163 | RTEMS multiprocessor support is capable of handling either homogeneous or |
---|
164 | heterogeneous systems. The kernel automatically compensates for architectural |
---|
165 | differences (byte swapping, etc.) between processors. This allows a much |
---|
166 | easier transition from one processor family to another without a major system |
---|
167 | redesign. |
---|
168 | |
---|
169 | Since the proposed standards are still in draft form, RTEMS cannot and does not |
---|
170 | claim compliance. However, the status of the standard is being carefully |
---|
171 | monitored to guarantee that RTEMS provides the functionality specified in the |
---|
172 | standard. Once approved, RTEMS will be made compliant. |
---|
173 | |
---|
174 | This document is a detailed users guide for a functionally compliant real-time |
---|
175 | multiprocessor executive. It describes the user interface and run-time |
---|
176 | behavior of Release 4.10.99.0 of the C interface to RTEMS. |
---|