Embedded Software Solutions For Freescale MAC
Software development tools
- MULTI development
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
- Green Hills Probe
High-performance real-time debugging
MULTI Integrated Development Environment
MULTI provides a host-based (Windows, Linux or UNIX workstation) graphical environment for ARM target development. Host-target connectivity is provided through a variety of means, depending on the target environment. MULTI supports many MAC targets, including evaluation boards from Freescale. These boards can be accessed through a variety of interfaces:
Bare Board Access (no RTOS or ROM Monitor)—MULTI supports targets connected through Nexus or JTAG headers on the board through the Green Hills Probe, Slingshot and SuperTrace Probe. The TimeMachine debugger and the SuperTrace Probe support Nexus Class 2 trace run control and analysis of real-time trace data operations.
RDI Targets—MULTI interacts with ARM targets via the RDI debug interface including emulation probes, ROM monitors, and simulators.
ROM Monitor—MULTI supports targets running monitors using the Angel debug protocol.
Run-Mode Debugging—Run-Mode enables source debugging of one or more threads of execution within their own colored debug window, allowing the rest of the system to continue to run, handling real-time events. This advanced feature adds very little overhead to the embedded program making it ideal for deeply embedded real-time applications.
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 SimARM instruction set simulator interpretively executes ARM programs on the host PC or workstation without the need for target hardware by simulating the execution of the target processor at the instruction level. SimARM provides full debug features, host I/O, command window, extended profiling and hardware breakpoints. SimARM also simulates target CPU cache for those processors that support it.
ARMulator Support—MULTI supports the ARMulator cycle-accurate simulator. MULTI’s trace capabilities also support the ARMulator so you can view application execution flow easily and effectively isolate problems without having to single step through the code.
ARM optimizing compilers
Green Hills Compilers take advantage of advanced optimization strategies developed for the latest embedded processors. In addition, the Green Hills Compiler for ARM generates architecture-specific and even processor-specific optimizations to utilize the pipeline and instruction set characteristics of each supported ARM processor model. Green Hills offers further optimization through CodeFactor, a link-time optimization which reduces overall program size by identifying and removing redundant segments of code from object files. Some ARM-specific features included are:
Processor—One option for each supported ARM model. This setting determines the instructions permitted, as well as the pipeline optimization strategy used.
Big and Little Endian—Generates code with either Big-Endian or Little-Endian byte order. Depending on the endianness selected, the most significant byte appears at the lowest or highest address.
CodeFactor Linker Optimization—A link-time optimization which reduces overall program size by identifying and removing redundant segments of code from object files.
Vector Floating Point—In addition to FPA10 and regular software floating point, the compiler utilizes the Vector Floating Point (VFP) unit for those processors that support it.
Green Hills C/C++ Compilers can generate code for 16-bit instruction Thumb mode. Users can link with Green Hills run-time libraries built specifically for Thumb mode. Benchmark tests have proven the effectiveness of the Green Hills Compilers in producing the smallest executable file for a given source program. CodeBalance achieves greater code-size reduction with minimal increase in execution time by performing function-specific 16-bit mode compilation.