|
|
|
|
|
|
|
Optimizing Compilers
|
|
The Green Hills Optimizing Compilers for TriCore all utilize a common code generator with architecture-specific optimizations. Each supported TriCore model has its own particular pipeline and instruction set characteristics. These are accommodated in the code generator to produce code best suited for the target processor. The following TriCore-specific features are supported:
|
|
|
|
|
Processor Options - One option for each supported TriCore model. This setting determines the instructions permitted.
|
|
|
|
|
Far Function Calls - Treats all function calls as far calls.
|
|
|
|
|
Small Data Area - The TriCore processor requires two instructions to access data stored at an arbitrary 32-bit address. Green Hills Compilers allow the programmer to put frequently used variables in the SDA section, which is pointed to by a global register. This enables single instruction access to data within the block, saving code size and improving performance.
|
|
|
|
|
Zero Data Area (ZDA) - The zero data area is similar in concept to the small data area. Green Hills Compilers allow the programmer to put frequently used variables in the ZDA section. This enables single instruction access to data within the block.
|
|
|
|
|
Dsp Support
|
|
|
|
|
The Green Hills TriCore Compiler includes full support for automatically generating hardware DSP instructions. The compiler also performs many optimizations to enhance the performance of DSP code, including use of the following:
|
|
|
|
|
Zero overhead loop
|
|
Multiply-accumulate
|
|
Special addressing modes
|
|
Q15 load/store
|
|
|
|
|
Toolchain
|
|
The TriCore toolchain includes an assembler, linker, and librarian. In addition, the toolchain includes integrated support for the Infineon PCP and PCP2 coprocessors with a macro-assembler supporting access to the FPI and PRAM/PCODE bus. The PCP and PCP2 can perform all the tasks of a DMA controller, but with the flexibility and programmability of a separate CPU -- without consuming TriCore CPU cycles.
A comprehensive suite of run-time libraries for C, C++, and EC++ are included in the corresponding TriCore compiler distributions for each language. 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 Integrated Development Environment is a complete environment for embedded applications using C, C++, and EC++ languages. MULTI provides a direct graphical interface with all Green Hills Compilers, and supports multi-language development and debugging. MULTI contains all of the tools you need to complete a major programming project:
|
|
|
|
|
Project Builder
|
|
Source Level Debuggerr
|
|
Performance Profiler*
|
|
Run-time Error Checking
|
|
Graphical Browser
|
|
Text Editor
|
|
Version Control System
|
|
|
|
|
MULTI provides a host-based (Windows 9x/NT/2000 PC or UNIX workstation) graphical environment for TriCore target development. for TriCore target development. Host-target connectivity is provided through a variety of means, depending on the target environment. MULTI supports a variety of Infineon evaluation boards including the AUDO-1 TriBoard and TC10GP TriBoard. These boards can be accessed with a variety of interfaces:
|
|
|
|
|
Bare Board Access (No RTOS or ROM Monitor) - MULTI supports On-Chip Debugging (OCD) interfaces, such as BDM or JTAG headers on the board. MULTI provides a complete software package that enables programmers to debug code without need for operating systems, kernels, or even ROM monitors.
|
|
|
|
|
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 Simulator - The SimTri instruction set simulator interpretively executes TriCore 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. SimTri provides full debug features, host I/O, command window, and extended profiling. SimTri also simulates target CPU cache for those processors which support it.
|
|
|
|
|
DAvE Integration
|
|
Infineon's Digital Application virtual Engineer (DAvE) is a graphical expert system that allows the user to control the generation of configuration data and initialization code for the peripherals of the selected TriCore device. The Green Hills Software TriCore toolset is fully integrated with DAvE. The MULTI IDE inherits the DAvE project settings to compile the generated C and assembly files. The Green Hills startup code uses the DAvE configuration data to initialize the system.
|
|
|
|
|
|
|