source: rtems-docs/c_user/preface.rst @ f916fca

4.115
Last change on this file since f916fca was d389819, checked in by Amar Takhar <amar@…>, on 01/18/16 at 05:37:40

Convert all Unicode to ASCII(128)

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