Software Development tools
- MULTI development environment
Quickly develop, debug, test, and optimize embedded and real-time applications. Certified at highest levels of functional safety. - DoubleCheck integrated static analyzer
Easily pinpoint bugs early in development - Green Hills Optimizing Compilers
Generating the smallest and fastest code from C and C++. See below for architecture-specific support for RISC-V.
- GTM-IP-MCS
Integrated assembler for the Bosch GTM IP module supported by some Infineon TriCore AURIX devices
Processor Probes
- Green Hills Probe V4
For multicore hardware bring-up, low-level debugging, and trace-powered analysis tools
Architecture-specific support for TriCore
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.
SP 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
Built-in functions are provided to access the DSP instructions, and in C++ there are several DSP classes provided, including the following:
- Fixed point data types (saturated and unsaturated)
- Circular buffers
- Packed data types
- Bit data types
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.