Analog Devices Blackfin Processor Embedded Software Solutions
Real-time operating systems
Software development tools
- Green Hills Probe
High-performance real-time debugging
Blackfin Processor Optimizing Compilers
The MULTI Integrated Development Environment for the Blackfin Processor includes both the Analog Devices VisualDSP++® compilers* (for highest performance on DSP algorithms) and Green Hills Optimizing compilers (for extended debugging capabilities and for highest reliability on large codebases).
The Green Hills Blackfin Processor Optimizing C and C++ compilers and tools support the following Blackfin Processor-specific features:
- Processor Options - One option for each supported Blackfin model.
- Constant Data Section - Places all string literals, constants, and initialized variables declared const in C and C++ in a distinct section.
- Hardware Loop Support - The Blackfin Processor compiler can generate nested hardware loops up to two levels deep.
- Circular Buffer Support - The Blackfin Processor compiler can generate circular pointer increments from intrinsic functions or directly from C code.
- ETSI Intrinsic Functions - The Blackfin Processor compiler supports a large number of ETSI intrinsic functions to allow the user fine control over fractional arithmetic. The intrinsic functions are recognized by the compiler, which generates very efficient Blackfin Processor code inline: often a single Blackfin Processor instruction carries out an ETSI intrinsic. The resulting instructions can be fully optimized by the compiler.
- Blackfin Intrinsic Functions - The Blackfin Processor compiler also supports a large number of powerful intrinsic functions based on the Blackfin Processor instruction set to allow the user direct access to specific Blackfin Processor capabilities. These instructions can be fully optimized by the compiler.
Run -Time Libraries
The compiler distribution includes a comprehensive suite of run-time libraries for C and C++. Distributions include several different versions of the C++ libraries for Embedded C++ (EC++) with and without templates and exceptions. 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.
Of Interest for Blackfin Processors
MULTI provides a host-based (Windows PC or UNIX workstation) graphical environment for Blackfin Processor target development. Host-target connectivity is provided through a variety of means, depending on the target environment. MULTI supports Blackfin Processor evaluation boards that can be accessed through:
- Bare Board Access (no RTOS or ROM Monitor) - MULTI supports on-chip debugging through JTAG. Multiprocessor-based boards are supported by the Green Hills Probe™, and Slingshot™ which let the MULTI debugger load, control, debug and test a target system without the need for prior board initialization, an RTOS, or even a ROM monitor.
- Custom RTOS Support - MULTI can be integrated with a custom RTOS through the Green Hills INDRT API. INDRT provides all the debug information needed by MULTI, and is easily integrated into custom kernel code.
- Multicore Debugging - A single instance of MULTI provides simultaneous
debugging of multiple Blackfin Processor cores. MULTI can be adapted for
multiprocessor debugging for Blackfin/MPU designs. Through MULTI’s
intuitive graphical interface, users can:
- Debug each core or processor in a separate color-coded window
- View and select cores or processors from a list
- Select one or more cores or processors and assign them to a group
- Run, step, or halt a single core or processor or the entire group
- Instruction Set Simulator - The simbf instruction set simulator interpretively executes Blackfin Processor programs on the host PC, Linux, or UNIX workstation without the requirement of target hardware by simulating the execution of the target processor at the instruction level. Simbf provides full debug features, host I/O, command window, extended profiling and hardware break-points. Simbf also simulates both the caches and the instruction pipeline.
- Data Visualization - MULTI’s Data Visualization lets users select source code variables in the debugger and view their numerical data in a wide range of graphical formats without changing the application code. Servers exist for a built-in MULTI display package and for industry-leading packages such as MATLAB®. Displays are invoked through MULTI’s source level debugger and are updated by breakpoint events or updated in real-time through dynamic data capture and management.