SPARC Native Embedded Software Solutions

SPARC Native Development Tools
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.