Real-Time Operating Systems
- µ-velOSity royalty-free RTOS
Small, fast, easy-to-learn operating system for the most cost-sensitive and resource-constrained devices
Software development tools
- MULTI development environments
Quickly develop, debug, test, and optimize embedded and real-time applications
- Green Hills Optimizing Compilers
Generating the smallest and fastest code from C, C++, and Ada 95
Processor Probes
The fastest trace, download, and debug
High-performance real-time debugging
- Renesas MINICUBE, MINICUBE2, IECUBE, IECUBE2, and E1
- Midas Labs ICE
V850 Optimizing Compilers
The Green Hills Optimizing Compilers for V850 all use a common code generator with architecture-specific optimizations. Some optimizations include loop optimizations, peephole optimizations, register coalescing, tail recursion, and memory optimization. As an additional benefit, Green Hills offers CodeFactor®, a link-time optimization which reduces overall program size by identifying and removing redundant segments of code from object files.
Each supported V850 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 V850 specific features are supported:
- Processor—One option for each supported V850 model. This setting determines the instructions permitted, as well as the pipeline optimization strategy used.
- Reserve registers for the user—The compiler can reserve various registers (r2, r5, r15-r24 or r17-r22) for the user.
- Position Independent Code (PIC) and Data (PID)—Allows code and data to be placed anywhere in memory and still run correctly.
- Far function calls—Linker can automatically detect function calls that are out of range and insert code to resolve these calls.
- Gsrec conversion utility—Converts an executable file into a Motorola S-Record format file.
- FPU Support—Generates code to use the Floating Point Unit (FPU) for the V850E1F family (V850E/PH2 and V850E/PH3) or the V850E2R.
- 64-bit Integers—Supports 64-bit data types, constants, and expressions including double precision floating point.
- Ghexfile Conversion Utility—Allows conversion of an executable to hexadecimal. Automatically determines byte order and BCS/COFF based on header information.
- Multiple memory models—The V850 supports the following memory models:
- Normal data: The default memory model, where all data is placed within the data area and is accessed using normal load and store operations.
- Small data: Data is assigned either automatically by the compiler or manually by the user (or both) into a small data area and is referenced using a reserved register as a base pointer, allowing for smaller code for data accesses.
- Zero data: Similar to Small data, although the zero register (r0) is used as the base register to access data within 16 bits of address 0.
- Tiny data: Data is assigned by the user into small sections accessed using the Tiny Data Area (TDA) base register (ep) and the V850 short load/store operations providing for the smallest possible code for data accesses. The compiler supports multiple Tiny Data Areas and can switch between them dynamically at run time.
- CodeFactor Linker Optimization—A link-time optimization that reduces overall program size by identifying and removing redundant segments of code.
- Highly configurable—Many processor extensions and features (callt, prepare/dispose, etc) can be selectively enabled or disabled in the compiler, with full support provided in the Green Hills libraries.
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.
MISRA C support
Green Hills has incorporated the MISRA C guidelines for C programming into MULTI and its optimizing compilers. MULTI’s MISRA C support enables developers to easily select the MISRA rules to automatically enforce, resulting in cleaner code and fewer bugs. At compiler time, violations of MISRA C rules are reported. Violations that can only be detected at runtime are automatically detected and reported by Green Hills Software’s advanced run-time error detection. MULTI supports MISRA C 1999 and 2004.
Debug Probes
- 850eserv2—Supports a wide variety of In-Circuit Emulators from NEC. Full support is included for the built-in instruction and data trace capabilities, which is fully integrated with the TimeMachine Debugging Suite. When combined with the Green Hills SuperTrace Probe, trace collection potential can be extended into the gigabytes.
- rteserv2—Supports a wide variety of boards and In-Circuit Emulators from NEC and Midas Labs. Devices supporting trace can be combined with the Green Hills SuperTrace Probe to unleash full data and instruction trace capabilities, including a full integration with the TimeMachine Debugging Suite.
More...