RTEMS Release Notes

Edition 4.9.2, for RTEMS 4.9.2

12 March 2009

On-Line Applications Research Corporation

On-Line Applications Research Corporation TEXinfo 2007-12-02.17

COPYRIGHT \begin{matrix}c \\ ◯ \end{matrix} 1988 - 2008. On-Line Applications Research Corporation (OAR).

The authors have used their best efforts in preparing this material. These efforts include the development, research, and testing of the theories and programs to determine their effectiveness. No warranty of any kind, expressed or implied, with regard to the software or the material contained in this document is provided. No liability arising out of the application or use of any product described in this document is assumed. The authors reserve the right to revise this material and to make changes from time to time in the content hereof without obligation to notify anyone of such revision or changes.

The RTEMS Project is hosted at http://www.rtems.com. Any inquiries concerning RTEMS, its related support components, its documentation, or any custom services for RTEMS should be directed to the contacts listed on that site. A current list of RTEMS

Support Providers is at http://www.rtems.com/support.html.

Table of Contents

1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1 Supporting Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1.1 GNU Development Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1.2 ANSI C Libraries. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1.3 GNU C Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1.4 Cygnus NEWLIB C Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2 Documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 Installation Procedure. . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 RTEMS FTP Site Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3 Unarchiving the RTEMS and GNU Components . . . . . . . . . . . . . . . . 5 2.4 Installing a Cross-Development GNU Toolset . . . . . . . . . . . . . . . . . . . 6 2.5 Installing RTEMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3 Development Environment Status . . . . . . . . . . . . . 9

3.1 RTEMS Executive Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.2 Development Environment Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.3 Known Problems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.3.1 Executive Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.3.2 Development Environment Problems. . . . . . . . . . . . . . . . . . . . . . 11 3.3.3 RTEMS Problem Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4 RTEMS PROBLEM REPORT . . . . . . . . . . . . . . . 13

Command and Variable Index. . . . . . . . . . . . . . . . . . . . 15

Concept Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1 Introduction

This document describes the contents, installation procedure, and current status of Release 4.9.2 of the RTEMS executive. An installation procedure is provided which describes the steps necessary to load and configure the RTEMS environment, including the GNU Development Environment and the Cygnus NEWLIB ANSI C Library, on a host computer. The status of the RTEMS environment is given, which includes supported processors and target boards, versions of the GNU utilities which were used by the RTEMS developers for this release, support libraries status, features which are not implemented, and any known existing problems.

This RTEMS release package contains the following general components:

• RTEMS C Executive

• RTEMS C Documentation Set

• RTEMS NEWLIB ANSI C Library

• Patches to GNU Development Tools

There is a mailing list dedicated to RTEMS. This is a Majordomo style mailing list and may be subscribed to by sending a message to rtems-list-request@rtems.com with the following line as the body:

     subscribe rtems_user@your_email_goes_here.com

Please replace rtems user@your email goes here.com with your email address.

1.1 Supporting Tools

This section discusses the freely available tools and libraries which are part of the RTEMS Development Environment. None of the tools discussed in this section were developed by the RTEMS project, although many do include submissions from the project. All of the tools and libraries required to build RTEMS are freely available. The home ftp site for most of the non-RTEMS specific tools is either prep.ai.mit.edu (18.71.0.38) or ftp.cygnus.com (140.174.1.3).

Specifically of interest to embedded systems developers using the GNU tools is the crossgcc mailing list. This is a Majordomo style mailing list and may be subscribed to by sending a message to crossgcc-request@cygnus.com with the following line as the body:

     subscribe rtems_user@your_email_goes_here.com

Please replace rtems user@your email goes here.com with your email address. The FAQ for crossgcc is in the /pub/embedded/crossgcc directory on ftp.cygnus.com (205.180.83.42).

1.1.1 GNU Development Tools

Numerous GNU tools are used in the RTEMS Development Environment including C and Ada compilers, the GNU make program, GNU m4, the GNU assembler and binary utilities (linker, librarian, etc.), GNU tar, GNU zip, and the GNU debugger. These tools are distributed in source form and are all licensed under the GNU Public License which allows for unrestricted distribution under the condition that source code always be available. The Free Software Foundation is officially the originator of most of the GNU tools although many individuals have contributed to the GNU projects. In keeping with the spirit of the GPL, most of the time the GNU tools are distributed as source code without executables. It is the responsibility of the local site to install each tool. Numerous organizations and individuals supply executables for the GNU tools. All are required by the terms of the GPL to also make the source code available to the end user.

The primary ftp site for the FSF GNU tools is prep.ai.mit.edu (18.71.0.38) in the /pub/gnu directory. These tools are mirrored on numerous ftp sites.

Cygnus maintains an ftp site – ftp.cygnus.com (205.180.83.42) – which contains a source code which appeals to embedded developers. Of especial interest on this site are the directories /pub/newlib and /pub/embedded.

1.1.2 ANSI C Libraries

This section discusses the following freely distributable ANSI C Libraries:

• GNU C Library, and • Cygnus NEWLIB

No C Library is included in the standard RTEMS distribution. It is the responsibility of the user to obtain and install a C Library separately.

1.1.3 GNU C Library

The GNU C Library is a robust and well-documented C Library which is distributed under the terms of the Library GNU Public License (LGPL). This library was not designed for use in real-time, embedded systems and the resource requirements of some of the routines in this library are an obvious indication of this. Additionally, this library does not have support for reentrancy in the sense that each task in a multitasking system could safely invoke every routine in the library. Finally, the distribution terms of the LGPL are considered undesirable by many embedded systems developers. However, the GNU C Library is very complete and is compliant with as many standards as possible. Because of this, it may be the only choice for many developers.

There is currently no RTEMS support for the GNU C Library.

The primary ftp site for this library is prep.ai.mit.edu (18.71.0.38).

1.1.4 Cygnus NEWLIB C Library

The Cygnus NEWLIB C Library was specifically designed for real-time embedded systems. It is a small, reasonably documented Library with support for reentrancy. This library is a collection of freely distributable and public domain source code and is freely distributable with as few restrictions as possible placed on the end user.

The primary ftp site for this library is ftp.cygnus.com (205.180.83.42).

1.2 Documentation

The  RTEMS  Documentation  Set  is  provided  online  at

http://www.rtems.com/onlinedocs.html as reference information for all levels

of RTEMS users.

Chapter 1: Introduction 3 The RTEMS documentation set is available in HTML, PostScript, PDF, and DVI.

2 Installation Procedure

2.1 Introduction

This chapter describes the process of installing and configuring RTEMS and a crossdevelopment environment based on freely available tools and libraries.

2.2 RTEMS FTP Site Organization

RTEMS is distributed only via anonymous ftp.

This section will discuss how to navigate the RTEMS ftp site and unarchive the files in the RTEMS and GNU package distributions. All example commands will be given in a shell independent fashion unless otherwise noted.

Throughout the rest of this manual <RTEMS distribution> will be used as the parent of components within the RTEMS distribution. For persons using the ftp distribution found on the primary ftp site for RTEMS, <RTEMS distribution> are found under this directory ftp://ftp.rtems.com/pub/rtems/. HTTP access to the ftp site is available via

http://www.rtems.com/ftp/pub/rtems.

The archive files for RTEMS Release 4.9.2 are found under the directory <RTEMS distribution>. This directory contains the files which comprise this relase as well as any patches which may be required for other tools.

The complete source code and documentation set for the C language implementation of RTEMS is provided.

2.3 Unarchiving the RTEMS and GNU Components

Many of the components of the RTEMS release are "tarred, zipped" files and have the .tar.gz or .tgz extension. The GNU zip package is required to unarchives these files on the RTEMS ftp site. If this package is not installed, the

source can be found in the files ftp://ftp.gnu.org/pub/gnu/gzip/gzip-1.2.4.shar or
ftp://ftp.gnu.org/pub/gnu/gzip/gzip-1.2.4.tar. It may be restored using a com-

mand similar to the following:

     tar xvf gzip-1.2.4.tar
     OR
     sh gzip-1.2.4.shar

This will create a subdirectory gzip-1.2.4 in the current directory. Please examine the files README and INSTALL and follow the instructions provided there.

[Note: The GNU tools follow a standard packaging procedure They will unarchive into a directory based on the package name and version number. For detailed instructions on compilation and installation of the GNU tools, please refer to the instructions for each GNU tool.] Files which have been "tarred, zipped" (i.e. .tar.gz or .tgz extension) may be unarchived with a command similar to one of the following:

     gzcat <file>.tgz | tar xvof -
     OR
     gunzip -c <file>.tgz | tar xvof -
     OR
     gtar xzvf <file>.tgz

NOTE: gunzip -c is equivalent to gzcat, while gtar is GNU tar.

Given that the necessary utility programs are installed, any of the above commands will extract the contents of <file>.tar.gz into the current directory. All of the RTEMS components will be extracted into the subdirectory rtems-4.9.2. To view the contents of a component without restoring any files, use a command similar to the following:

     gzcat <file>.tgz | tar tvf -

2.4 Installing a Cross-Development GNU Toolset

This sections describes how to build and install the FSF GNU tools for use as a crosscompilation system. These tools are used by the RTEMS developers. Every effort has been made to make these instructions accurate and complete. However, it is recommended that the individual doing the installation read the appropriate installation notes for each of the tools in the cross toolset. This will help insure that there are no special requirements for a particular host.

If the host and target processors are the same, then it may be possible to use the host development tools. An example of this scenario is using a SPARC based workstation to develop an RTEMS application for the SPARC processor. Although the native toolset is useable in this scenario, it is ultimately more desirable to build a toolset specifically for the embedded environment.

Instructions for building a cross environment using the GNU tools is provided in the crossgcc FAQ available from ftp.cygnus.com in /pub/embedded/crossgcc. It is recommended that the user following these instructions.

After the cross development toolset has been built and installed, it will be necessary to modify the environment of each RTEMS application developer to reflect at least the path of the newly installed cross development toolset.

The documentation for the FSF GNU and Cygnus tools is formatted using TeX. The RTEMS developers use TeX 3.14t3 to format the manuals for their own use. This document does not contain instructions on the acquisition or installation of TeX and supporting tools.

NOTE: For "UNIX" processors, the native compiler binary utilities should be used.

Chapter 2: Installation Procedure 7

2.5 Installing RTEMS

For instructions on building and installing RTEMS, please refer to the file README.configure in the source distribution.

3 Development Environment Status

This chapter will describe the current status of release version 4.9.2 of the RTEMS Development Environment.

3.1 RTEMS Executive Status

Release 4.9.2 of the RTEMS Executive contains support for both the classic RTEMS API based on the RTEID specification as well as support for POSIX threads and real-time extensions. The classic RTEMS API has the following managers based upon the RTEID specification:

• Task

• Initialization

• Clock

• Timer

• Interrupt

• Fatal Error

• Message

• Semaphore

• Event

• Signal

• Region

• Partition

• Dual Ported Memory • I/O

• Multiprocessing

• Rate Monotonic

• User Extensions

RTEMS also has support for the following managers based upon the POSIX threads and real-time extensions:

• Thread

• Clock

• Key

• Condition Variable • Mutex

• Signal

• Scheduler

This release of the C implementation supports the following processors and target boards: • Motorola M68k family - DY-4 DMV152, SVME153

- Motorola IDP

- Motorola MVME135, MVME136

- Motorola MVME147, MVME147S

- Motorola MVME162

- EFI 68000 and 68332

- Generic 68302

- Generic 68360 and 68360 in companion mode with 68040 • Intel i386 family

- Force CPU386

- Intel i386ex eval board

- PC-AT i386 and above (go32)

• PowerPC - Papyrus (proprietary controller)

• SPARC - ERC32 (space-hardened V7)

• MIPS - P4000 with R4600 or R4650

• AMD 29K - Portsw

• UNIX - Hewlett Packard HPUX (PA-RISC)

- Sun Solaris 2.x (SPARC)

- Linux (i386)

Support for the Cygnus NEWLIB Standard C Library is provided with this release which may be used on any of the RTEMS supported targets. The BSPs only provide support for console I/O only using this library. Support for the reentrancy capabilities of newlib is provided in the RTEMS distribution.

3.2 Development Environment Status

This section details the versions of the tools used to develop and maintain RTEMS 4.9.2:

• Cross Tools - gcc - 2.7.2.2 with rtems patch

- binutils - 2.7 with rtems patch

- zip - 1.2.4

- make - 3.74

3.3 Known Problems

Problems which are known to exist at the time of release are described in the following sections. These are provided as warnings to the user and where possible, workarounds are provided until the problem is corrected.

3.3.1 Executive Problems

There are no known bugs in the executive itself.

3.3.2 Development Environment Problems

There are no known major problems with the development environment.

3.3.3 RTEMS Problem Reporting

The RTEMS Project uses the GNATS Problem Reporting and Tracking System. Instructions for reporting a problem are located at http://www.rtems.com/bugs.html.

4 RTEMS PROBLEM REPORT

Customer (Company) Name:
Customer Address:
Contact Name:
Telephone Voice:                         Fax:
Product:                                 Version:
Target Processor:                        Target System:
Host Computer System:
Host Operating System:                   Version:
Report Type:                    Customer Impact:
[ ] Problem/Error               [ ] System is inoperable, cannot proceed
[ ] Enhancement                 [ ] Must be corrected in the near future
[ ] Inquiry Suggestion          [ ] Problem may be avoided until fixed
[ ] Other______________[ ] Problem is not time critical
                                [ ] Minor problem

Please provide a detailed description of the problem (Attachments including source code, example code, makefiles, possible solutions, and any other information describing the problem will be appreciated):

Command and Variable Index 15

Command and Variable Index

There are currently no Command and Variable Index entries.

Concept Index 17

Concept Index

There are currently no Concept Index entries.