| |||
| Home > Introduction > About RealView Compilation Tools > Components of RVCT | |||
For information about RVCT see:
The following development tools are provided when you install RVCT:
The ARM compiler. This compiles your C and C++ code.
The ARM and Thumb assembler. This assembles ARM assembly language and Thumb/Thumb-2 assembly language source.
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.
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.
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\...
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.
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.
The ARM image conversion utility. This can also generate text information about the input image, such as disassembly and its code and data size.
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.
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.
RVCT conforms to the following standards. In each case, the level of compliance is noted:
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 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 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.
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.
The ARM compiler accepts the ISO C++ 2003 source as input.
The ARM tools produce relocatable and executable files in ELF format. The fromelf utility can translate ELF files into other formats.
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.
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:
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.
C++ ABI for the ARM Architecture. Builds on the generic C++ ABI (originally developed for IA-64) to govern interworking between independent C++ compilers.
Exception Handling ABI for the ARM Architecture. Defines both the language-independent and C++-specific aspects of how exceptions are thrown and handled.
ELF for the ARM Architecture. Builds on the generic ELF standard to govern the exchange of linkable and executable files between producers and consumers.
DWARF for the ARM Architecture. This ABI uses DWARF 3 to govern the exchange of debugging data between object producers and debuggers.
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.
C Library ABI for the ARM Architecture. Defines an ABI to the C library.
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.
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.