1.1.1. Components of RVCT

For information about RVCT see:

Development tools

The following development tools are provided when you install RVCT:

armcc

The ARM compiler. This compiles your C and C++ code.

armasm

The ARM and Thumb assembler. This assembles ARM assembly language and Thumb/Thumb-2 assembly language source.

armlink

The ARM linker. This combines the contents of one or more object files with selected parts of one or more object libraries to produce an executable program. The ARM linker creates ELF executable images.

Rogue Wave C++ library

The Rogue Wave library provides an implementation of the standard C++ library. For more information on the Rogue Wave library, see the HTML documentation on the CD ROM.

C++ libraries

The ARM C++ libraries enable support for core C++ language features, as provided in the C++ header files new, typeinfo, and exception in install_directory\RVCT\Data\...\include\....

C libraries

The ARM C libraries provide an implementation of the library features as defined in the C and C++ standards. See About the C and C++ libraries on page 2-2 in the Libraries and Floating Point Support Guide for more information.

C micro-libraries

The ARM C micro-libraries (microlib) provide a highly optimized set of functions. These functions are for use with deeply embedded applications that need to fit into extremely small amounts of memory. See Chapter 3 The C Micro-library in the Libraries and Floating Point Support Guide for more information.

fromelf

The ARM image conversion utility. This can also generate text information about the input image, such as disassembly and its code and data size.

armar

The ARM librarian. This enables sets of ELF format object files to be collected together and maintained in libraries. You can pass such a library to the linker in place of several ELF files.

Note

RVDS now supports 64-bit Linux but the RVCT tools have not been rebuilt in any special way to take advantage of this. All file I/O routines use standard system calls with file sizes that fit in a 32-bit (signed) int. This means that image size is currently limited to 2GB, even when building on machines with more than 2GB memory fitted. In this case the linker reports an error message to indicate that there is not enough memory. This might cause confusion since sufficient memory is available but the application cannot access it.

Standards compliance

RVCT conforms to the following standards. In each case, the level of compliance is noted:

ar

armar produces, and armlink consumes, UNIX-style object code archives. armar can list and extract most ar-format object code archives, and armlink can use an ar-format archive created by another archive utility provided that it contains a symbol table member.

DWARF 3

DWARF 3 debug tables (DWARF Debugging Standard Version 3) are supported by all the tools in the latest RVCT suite, and by the ARM RealView Debugger.

DWARF 2

DWARF 2 debug tables are supported by all the tools in the latest RVCT suite, and by ELF/DWARF 2 compatible debuggers from ARM, for example, RealView Debugger.

ISO C

The ARM compiler accepts the ISO C 1990 and 1999 source as input with a few exceptions. See Source language modes on page 1-3 in the Compiler User Guide for more information.

ISO C++

The ARM compiler accepts the ISO C++ 2003 source as input.

ELF

The ARM tools produce relocatable and executable files in ELF format. The fromelf utility can translate ELF files into other formats.

Note

The DWARF 2 and DWARF 3 standard is ambiguous in some areas such as debug frame data. This means that there is no guarantee that third-party debuggers can consume the DWARF produced by ARM code generation tools or that the RealView Debugger can consume the DWARF produced by third-party tools.

Compliance with the ABI for the ARM Architecture (base standard)

The Application Binary Interface (ABI) for the ARM Architecture is a collection of standards, some open and some specific to the ARM architecture, that regulate the inter-operation of binary code and development tools in ARM-based execution environments ranging from bare metal to major operating systems such as ARM Linux.

By conforming to this standard, ARM and Thumb objects and libraries from different producers can work together.

The ABI for the ARM Architecture (base standard) [BSABI] consists of a family of specifications including:

AAPCS

Procedure Call Standard for the ARM Architecture. Governs the exchange of control and data between functions at runtime. There is a variant of the AAPCS for each of the major execution environment types supported by RVCT.

CPPABI

C++ ABI for the ARM Architecture. Builds on the generic C++ ABI (originally developed for IA-64) to govern interworking between independent C++ compilers.

EHABI

Exception Handling ABI for the ARM Architecture. Defines both the language-independent and C++-specific aspects of how exceptions are thrown and handled.

AAELF

ELF for the ARM Architecture. Builds on the generic ELF standard to govern the exchange of linkable and executable files between producers and consumers.

AADWARF

DWARF for the ARM Architecture. This ABI uses DWARF 3 to govern the exchange of debugging data between object producers and debuggers.

RTABI

Runtime ABI for the ARM Architecture. Governs what independently produced objects can assume of their execution environments by way of floating-point and compiler helper function support.

CLIBABI

C Library ABI for the ARM Architecture. Defines an ABI to the C library.

BPABI

Base Platform ABI for the ARM Architecture. Governs the format and content of executable and shared object files generated by static linkers. Supports platform-specific executable files using post linking. Provides a base standard that is used to derive a platform ABI.

For more information on the base standard, software interfaces, and standards supported by ARM, see install_directory\Documentation\Specifications\....

For details of the latest published versions, see http://www.arm.com.

If you are upgrading to the latest release of RVCT from a previous release, ensure that you are using the most recent versions of the ARM specifications.

Supporting software

To debug your programs under simulation, or on hardware based on an ARM core, use a suitable debugger, for example:

  • ARM RealView Debugger v3.1. This is compatible with ELF, DWARF 2, and DWARF 3 as produced by GCC 3.4 or RVCT v2.2 and above.

To debug your programs under simulation, use the RealView ARMulator® ISS (RVISS) or the Instruction Set System Model (ISSM) supporting software. RVISS is an Instruction Set Simulator (ISS) that is supplied with RealView Development Suite (RVDS). It communicates with the debugger and can run on the same host computer or on a system remote from that running the debugger. For more details, see RealView ARMulator ISS User Guide.

Simulator models for the Cortex™ processors are available with this release. These models are accessible through the ISSM target access in the RealView Debugger.

Code examples

This book references examples provided with RVDS in the main examples directory install_directory\RVDS\Examples. See RealView Development Suite Getting Started Guide for a summary of the examples provided.

Copyright © 2002-2007 ARM Limited. All rights reserved.ARM DUI 0202H
Non-Confidential