SH Family Embedded Software Solutions
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
- Green Hills Probe
High-performance real-time debugging
SH Optimizing Compilers
- Processor - One option for each supported SH model. This setting determines the instructions permitted, as well as the pipeline optimization strategy used.
- Position Independent Code (PIC)- Allows executable files and data to be placed anywhere in memory and still run correctly.
- Little Endian - Causes programs to be compiled and assembled using a little-endian memory model (the default is big-endian).
- All Floating Point is single precision - This option will cause "double" to be interpreted as "float" so no 64-bit instructions will be required for floating point operations.
- Disable use of MACH, MACL, and GBR by compiler - Prevents the compiler from using the MACH, MACL, or GBR registers as general purpose, permanent registers.
- Large switch statements - Allows large switch statements by forcing the compiler to use a 32-bit offset, which works regardless of the destination label.
- Small Data Area - The SH processor requires a literal pool entry to compute an arbitrary 32-bit address. The Green Hills compilers enable the user to collect frequently accessed variables into a block of memory, accessible via offsets from the GBR register, instead of requiring a pool entry thereby saving code size and improving performance.
Source Level Support/Extensions for SH-DSP
C and C++ programmers can take advantage of the parallel memory access and
fixed point instructions and registers provided by the SH-DSP by using the
special DSP features supported by the Green Hills C/C++ compilers, including:
- X and Y Parallel Memory Access
- Zero Overhead Loops
- Fixed Point Data Type Class Support in C++
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, big endian vs. little endian memory models 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.