|
|
|
|
|
|
|
ARM Optimizing Compilers |
|
The Green Hills Optimizing Compilers for ARM all utilize a common code generator with architecture-specific optimizations. Each supported processor model has its own particular pipeline and instruction set characteristics. The following ARM-specific features are supported:
|
|
|
|
|
Processor - One option for each supported ARM model. This setting determines the instructions permitted, as well as the pipeline optimization strategy used.
|
|
|
|
|
Big Endian - Generates code with Big-Endian byte order. The most significant byte of an integer appears at the lowest address.
|
|
|
|
|
Little Endian - Generates code with Little-Endian byte order. The most significant byte of an integer appears at the highest address.
|
|
|
|
|
Thumb Code - Generates code for 16-bit instruction Thumb mode.
|
|
|
|
|
Thumb Libraries - Link with runtime libraries built for Thumb mode.
|
|
|
|
|
XScale Pipeline Optimization - The compiler optimizes for the 5 stage pipeline implemented by Intel's XScale processor to provide faster execution.
|
|
|
|
|
|
|
|
Thumb Support
Green Hills C/C++ Optimizing Compilers provide user-selectable optimization options that trade-off code size vs. execution efficiency. Benchmark tests have proven the effectiveness of the Green Hills compilers in producing the smallest executable file for a given source program.
|
|
|
|
|
Additionally, Green Hills offers a powerful utility program, CodeBalance Optimizing Profiler, that enables the user to make critical performance/code-size trade-offs. By analyzing the performance profile on a function by function basis, the utility performs recompilation in 16-bit mode starting with the functions that take the least amount of execution time. This achieves code-size reduction with minimal increase in execution time. Other compilers cannot perform function-specific 16-bit mode compilation, and must compile all functions in a file, or all functions altogether either in 16 or 32-bit mode. Green Hills offers the powerful capability to choose function-by-function, and a utility to automate this process based on a performance profile feedback, to enable optimized results.
|
|
|
|
|
Run-Time libraries |
|
A complete implementation of the C, C++, and EC++ libraries are included in compiler distributions. Full featured start-up code and libraries include automatic copy of data from ROM to RAM and system call emulation. Source code to the run-time libraries is available so that users can customize routines according to the special needs of their applications.
|
|
|
|
|
|
|
|
The MULTI Integrated Development Environment |
|
MULTI provides a host-based (Windows, Linux or UNIX workstation) graphical environment for ARM target development. Host-target connectivity is provided through a variety of means, depending on the target environment. MULTI supports many ARM targets, including evaluation boards from Atmel, Cirrus Logic, Intel, Samsung, SHARP, and ARM Ltd. These boards can be accessed through a variety of interfaces:
|
|
|
|
|
Bare Board Access (No RTOS or ROM Monitor) - MULTI supports targets connected through BDM or JTAG headers on the board. ARM boards are supported with the Green Hills Probe?, ARM Multi-ICE and EmbeddedICE,EPI JEENI,Macraigor Wiggler and Raven, and Agilent Emulation Probe,MULTI, when used with the Agilent Emulation Probe, supports ARM's Embedded Trace Macrocell (ETM) with trace and trigger GUIs that facilitate control and analysis of real-time trace operations.
|
|
|
|
|
RDI Targets - MULTI interacts with ARM targets via the RDI debug interface including emulation probes, ROM monitors, and simulators.
|
|
|
|
|
ROM Monitor - MULTI supports targets running monitors using the Angel debug protocol.
|
|
|
|
|
Commercial RTOS Support - MULTI supports ARM boards running INTEGRITY (MMU optional) and ThreadX from Green Hills Software. MULTI provides kernel multitask-aware debugging. Special commands allow tasks to be stopped upon system events such as task creation.
|
|
|
|
|
ThreadX Run-Mode - ThreadX Run-Mode enables source debugging of one or more threads of execution within their own colored debug window, allowing the rest of the system to continue to run, handling real-time events. This advanced feature adds very little over-head to the embedded program making it ideal for deeply embedded real-time applications.
|
|
|
|
|
Custom RTOS Support - MULTI can be interfaced with a custom RTOS through integration of the Green Hills INDRT API. INDRT provides all the debug information needed by MULTI, and is easily integrated into user code.
|
|
|
|
|
Instruction Set Simulators - The SimARM Instruction Set Simulator interpretively executes ARM programs on the host PC or workstation without the need for target hardware by simulating the execution of the target processor at the instruction level. SimARM provides full debug features, host I/O, command window, extended profiling and hardware breakpoints. SimARM also simulates target CPU cache for those processors which support it.
|
|
|
|
|
ARMulator Support - Macraigor MULTI supports ARM, UK's ARMulator Cycle-accurate simulator. MULTI's trace capabilities also support the ARMulator allowing the user to view application execution flow easily and effectively isolate problems without having to single step through the code.
|
|
|
|
|
ARMulator Rebuild Kit
ARMulator Rebuild Kit allows custom peripherals to be simulated under the Green Hills MULTI debug environment. Developers will not only be able to simulate the ARM core but their entire system before hardware is available.
|
|
|
|
|
|
|