|
|
|
|
|
|
|
V800 Optimizing Compilers |
|
The Green Hills Optimizing Compilers for V800 all utilize a common code generator with architecture-specific optimizations. Each supported V800 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 V800-specific features are supported:
|
|
|
|
|
Processor - One option for each supported V800 model. This setting determines the instructions permitted, as well as the pipeline optimization strategy used.
|
|
|
|
|
V850 Tiny Data Area (TDA) - Allocates a small area of TDA memory to hold small data objects and reference objects in that area.
|
|
|
|
|
Reserve r2 or r5 for the User - The compiler reserves r2, r5, or both for the user.
|
|
|
|
|
Reserve r15-r24 (22 Register Mode) - Generates code in 22 register mode.
|
|
|
|
|
Reserve r17-r22 for the User (26 Register Mode) - Generates code in 26 register mode.
|
|
|
|
|
Constant value 255 in r20 - Size optimization for unsigned byte loads.
|
|
|
|
|
Constant value 255 in r20 and 65535 in r21 - Size optimization for unsigned byte and halfword loads.
|
|
|
|
|
Position Independent Code (PIC) and Data (PID) - Allows executable files and data to be placed anywhere in memory and still run correctly. |
|
|
|
|
Far Function Calls - Causes the linker to detect function calls that are out or range and insert code to resolve these calls.
|
|
|
|
|
Inline prologue - Forces the compiler to generate function prologue and epilogue code inline.
|
|
|
|
|
Do not use V850E callt instruction - Prevents the compiler from generating the CALLT instruction on the V850E.
|
|
|
|
|
Small data or zero data threshold - Specifies a size in bytes to determine which data objects appear in the Small or Zero Data Areas.
|
|
|
|
|
Put Variables smaller than threashold into
Normal data: Puts variables smaller than threshold into the Data Area.
Small data: Allocates an area of memory to hold data objects smaller than the
Small Data Threshold and references objects in that area using r4 as the base
pointer register.
Zero data: Allocated an area of memory to hold data objects smaller than the Zero Data Threshold and references objects in that area using r0 as the base pointer
register.
|
|
|
|
|
Run-Time Libraries |
|
A comprehensive suite of run-time libraries for C, C++, and EC++ are included in the corresponding compiler distributions for each language. Several different versions of the libraries are provided to accommodate different combinations of processor and memory models. The combinations include hardware vs. software floating point, and CPU specific versions. 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 is fully integrated development environment for embedded applications using C, C++, EC++, FORTRAN, and Ada 95 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 Debugger
|
|
Performance Profiler*
|
|
Run-time Error Checking
|
|
Graphical Browser
|
|
Code Coverage Analysis
|
|
RTOS EventAnalyzer
|
|
Language-Sensitive Text Editor
|
|
Version Control System
|
|
Remote Target Connection
|
|
|
|
|
MULTI provides a host-based (Windows 9x/ME/NT/2000 PC or UNIX workstation) graphical environment for V800 target development. Host-target connectivity is provided through a variety of means, depending on the target environment. MULTI supports many V800 targets, including evaluation boards from NEC. These boards can be accessed with a variety of interfaces:
|
|
|
|
|
Bare Board Access (No RTOS or ROM Monitor) - MULTI supports NEC's V850 and V850E In-Circuit Emulator through 850eserv. MULTI provides a complete software package that enables programmers to debug code without need for operating systems, kernels, or even ROM monitors.
|
|
|
|
|
Commercial RTOS Support - MULTI supports V800 boards running the ThreadX RTOS. MULTI provides multitask-aware debugging. Special commands allow tasks to be stopped upon system events such as task creation.
|
|
|
|
|
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 Sim800 and Sim850 instruction set simulator interpretively executes V800 and V850 programs respectively on the host PC or workstation without the need for target hardware by simulating the execution of the target processor at the instruction level. Sim800 and Sim850 provides full debug features, host I/O, command window, and extended profiling. Sim800 and Sim850 also simulates target CPU cache for those processors which support it.
|
|
|
|
|
|
|