SPARC Native Embedded Software Solutions
SPARC Native Development Tools
- AdaMULTI 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
Common Tools for Native and Embedded
AdaMULTI lets you use the same tools for both embedded and native development. All of the advanced features of AdaMULTI for native development immediately transfer over to your embedded projects, and vice versa. In fact, the very same AdaMULTI program can debug both native and embedded code. AdaMULTI uses a remote target server when communicating with an embedded target.
Early in the development cycle when silicon isn't available yet or there is not enough target hardware for large programming teams, AdaMULTI allows you to prototype portions of your embedded applications in native mode on your host workstation (under Solaris or SunOS). The language front ends of the Green Hills compilers are the same for both native and embedded, guaranteeing absolute language compatibility when you recompile programs developed on your host for your target.
SPARC Native Optimizing Compilers
The Green Hills Optimizing Compilers for SPARC Native all utilize a common code generator with architecture-specific optimizations. Each supported SPARC 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 Green Hills SPARC Native Optimizing Compilers support the following SPARC Native-specific features:
- Processor Options - One option for each supported SPARC Native model. This setting determines the instructions permitted, as well as the pipeline optimization strategy used.
- pic (small offset) - Generates System V.4 style Position Independent Code with 16-bit offsets.
- PIC (large offset) - Generates System V.4 style Position Independent Code with 32-bit offsets.
- Position Independent Data - Generates position independent data.
- Assume Double Alignment - By default, 4-byte loads and stores access all 8-byte (e.g. double precision) objects in memory to avoid any errors caused by using an 8-byte load on an address which is a multiple of four, but not a multiple of eight. Assuming 8-byte alignment is proper for some applications and provides more efficient code.
- Reserve Registers g5, g6, g7 for user - This option will keep the compiler from using the %g5, %g6, or %g7 registers as general purpose, permanent registers.
- Little endian byte order - Specifies code generation for a little endian system.
Run-Time libraries
A comprehensive suite of run-time libraries for C, C++, EC++, FORTRAN
and Ada 95 libraries are included in the corresponding compiler distributions
for each language. Green Hills provides ANSI compliant C and C++ implementations
on the SunOS or Solaris Operating Systems.
Shared library support
Green Hills' tools are integrated with Sun's native assembler/linker
and offer shared library support. Shared libraries have the advantage
of reducing program executable size and memory requirements. When building
an executable with shared libraries, the linker does not embed the
library code in the program executable, but deposits only the required
information to access the library module at run-time. Since the shared
libraries are composed of position independent code, multiple applications
have access to the same libraries. In addition, it is not necessary
to relink your application when a new version of the library is available
which has the same calling sequences.