a
FEATURES
ADSP-2100 Family
Development Tools
ADDS-21xx-TOOLS
LINKER
Maps Assembler Output to Target System Memory
Supports User-Defined Library Routines
Creates Memory Map Listing
PROM SPLITTER & HOST PROCESSOR PORT (HIP)
SPLITTER
Generates PROM Programmer Compatible Files in
a Variety of Industry-Standard Formats
Formats Executable File for Programming PROMs or
for Host Processor Booting
DEVELOPMENT SOFTWARE TOOLS
SYSTEM BUILDER
Defines Architecture of ADSP-21xx System
Specifies Amount of RAM/ROM Memory
ASSEMBLER
Easy-to-Program, Algebraic Instruction Syntax
Supports C Language Constructs
Provides Flexible Macro Processing
Encourages Modular Code Development
SYSTEM DEVELOPMENT PROCESS OVERVIEW
STEP 1:
DESCRIBE
ARCHITECTURE
SYSTEM
SPECIFICATION
FILE
SYSTEM
BUILDER
SYSTEM
ARCHITECTURE
FILE
STEP 2:
GENERATE
CODE
C SOURCE
FILES
ANSI
C COMPILER
LIBRARIES
LINKER
EXECUTABLE
FILE
ASSEMBLER
SOURCE
FILES
ASSEMBLER
STEP 3:
DEBUG
SOFTWARE
STEP 4:
DEBUG IN TARGET
SYSTEM
STEP 5:
MANUFACTURE
FINAL SYSTEM
= USER FILE OR HARDWARE
EZ-LAB DEVELOPMENT BOARD
OR
THIRD-PARTY PC PLUG-IN CARDS
SOFTWARE SIMULATOR
EZ-ICE EMULATOR
TARGET
BOARD
TESTED &
DEBUGGED
DSP BOARD
PROM SPLITTER
HIP SPLITTER
= SOFTWARE DEVELOPMENT TOOL
= HARDWARE DEVELOPMENT TOOL
REV. B
Information furnished by Analog Devices is believed to be accurate and
reliable. However, no responsibility is assumed by Analog Devices for its
use, nor for any infringements of patents or other rights of third parties
which may result from its use. No license is granted by implication or
otherwise under any patent or patent rights of Analog Devices.
© Analog Devices, Inc., 1995
One Technology Way, P.O. Box 9106, Norwood. MA 02062-9106, U.S.A.
Tel: 617/329-4700
Fax: 617/326-8703
ADDS-21xx-TOOLS
SIMULATOR
Features Reconfigurable GUI (Graphical User Interface)
Supports Full Symbolic Disassembly and On-Line
Assembly
Provides Breakpoint and Single-Step Execution
Includes CBUG™ C Source-Level Debugger as Integrated
Tool
Supports Multiple Break Conditions
Provides Full View of All Processor Registers and
Memory for Direct Modification of Contents
Profiles Code Execution History
Uses Data Files to Simulate Parallel I/O Ports, Serial
Ports, HIPs, and Analog I/O Interface
Plots Data Memory Graphically
G21 OPTIMIZING C COMPILER & C RUNTIME LIBRARY
Compliant with ANSI C Standards
Includes C-Callable Library of ANSI-Standard and DSP
Functions
Supports In-Line Assembly Code Using asm () Construct
Incorporates Optimizing Algorithms
Generates Reliable and ROM-able Code
Simplifies Interrupt Handling via Library Functions
Provides Support for Heap Memory Management
Supports Switches Used by the ADSP-21000 Family
G21K Floating Point C Compiler
Supports Float Type IEEE-Single Precision Math Routines
CBUG C SOURCE-LEVEL DEBUGGER
Supports Single Step Execution
Supports Breakpoints
Integrated with Simulators and EZ-ICE Emulators
DEVELOPMENT HARDWARE TOOLS
EZ-LAB® EVALUATION BOARD
Complete Hardware Platform with Memory and I/O
Preprogrammed with DSP Demo Programs
Contains Audio/Voice I/O Port with Microphone Input
and Powered Output for Speaker
Memory Expansion and I/O from Bus Expansion Connector
Serial Port Interface via SPORT Connector
EZ-KIT STARTER PACKAGES
Complete Hardware and Software Development Kit
Includes an EZ-LAB Evaluation Board and ADSP-2100
Family Assembler/Linker and Simulator Software for
IBM PC
EZ-KIT LITE
Low Cost Development System
Including Hardware and Software
MS Windows 3.1 Based Monitor
Includes a Variety of Demonstration Programs with
Source Code
Development Platform for all ADSP-21xx Processors
Audio Input/Output and Expansion Connectors
EZ-ICE® EMULATOR
Performs Full-Speed, In-Circuit Emulation of ADSP-21xx
Target Systems
Software Uses Same GUI (Graphical User Interface) as
Simulator for Easier Debugging Control
Single-Step Capability
Stand Alone Operation for Software Debugging
Upload/Download Memory with IBM PC
3-VOLT EMULATION CONVERTER BOARD
Used with the ADSP-2101 EZ-ICE to Enable Emulation
with an ADSP-2103 (3 V) Target System
CBUG is a trademark of Analog Devices, Inc.
EZ-ICE and EZ-LAB are registered trademarks of Analog Devices, Inc
–2–
REV. B
ADDS-21xx-TOOLS
Introduction to Development Tools
GENERAL DESCRIPTION
The ADSP-2100 Family Development Software, a complete set
of software design tools, lets you program applications for this
family of DSP microprocessors that includes the ADSP-2101,
ADSP-2105, ADSP-2111, ADSP-2115, and the newest
members, the ADSP-2171 and ADSP-2181. With these tools,
an EZ-ICE In-Circuit Emulator, and an EZ-LAB Evaluation
Board, you can quickly and efficiently design your DSP
applications. The figure on page 1 (“System Development
Process Overview”) shows how the tools are typically used in
the development process.
DSP Software Development Tools
The ADSP-2100 Family hardware development tools provide a
controlled environment for observing, debugging, and testing
activities in a full-speed target system. Our ADSP-2100 Family
EZ-ICE Emulators provide this control by replacing the target
processor or, in the case of the ADSP-2181, by assuming
control of the DSP through its ICE-Port. The EZ-ICE,
controlled by an IBM PC host computer, using a GUI interface
similar to the ADSP-2100 Family Simulators, lets you examine
and modify processor information such as registers and
memory.
The ADSP-2100 Family EZ-LAB Evaluation Boards let you test
coded applications in real time without a host or PC. At reset,
the processor on the ADSP-2100 Family EZ-LAB boots code
and program memory into its internal program memory from
the EPROM, and then executes the code.
EZ-KIT offers a complete development environment including
the ADSP-2100 Family Assembler/Linker and Simulator, an
ADSP-2100 Family EZ-LAB Evaluation Board. The EZ-KITs
for the ADSP-2101 and ADSP-2111 include an applications
handbook (Digital
Signal Processing Applications Using the
ADSP-2100 Family Applications),
plus a laboratory textbook
(Digital
Signal Processing Laboratory Using the ADSP-2101
Microcomputer Laboratory Workbook with Introductory DSP
Experiments)
and source code diskettes. The EZ-KIT Lite for
the ADSP-2181 is a lower cost starter kit that includes a subset
of the regular EZ-KIT software and documentation.
The software development tools include the following programs:
• System Builder
• G21 C Compile
• Assembler
• C Runtime Library
• Linker
• CBUG C Source-Level Debugger
• Simulator
• PROM Splitter
The System Builder reads your system specification file and
then generates an architecture description file that passes
information about your target hardware to the linker, simulator,
and emulator. Code generation begins with the creation of C
language and/or assembly language source code modules. These
modules are compiled/assembled separately and then linked
together to form an executable program (memory image file).
The highly readable algebraic syntax of the ADSP-2100 Family
instruction set eases programming in assembly language. Multiply-
accumulate instructions are written in the same manner as the
actual equation. For example, the algebraic statement
r = r + x*y
is coded in assembly language as
MR = MR + MX0*MY0.
The simulator configures program and data memory according
to the architecture description file and simulates the memory-
mapped I/O ports to let you debug your system and analyze its
performance. After simulating your system and software, use the
emulator with your prototype hardware to test circuitry, timing,
and real-time software execution. The PROM Splitter then
translates the linker-output executable file into an industry-
standard file format for a PROM programmer. Once you burn
the code into a PROM device and plug in an ADSP-21xx
processor to the target board, your prototype is ready to run.
Development software is available for the IBM (or IBM-
compatible) PC/AT and Sun4 workstation platforms.
DSP Hardware Development Tools
SOFTWARE TOOLS
SYSTEM BUILDER
The System Builder lets you define system hardware based on
ADSP-21xx processors with memory that can be specified as
RAM or ROM. It also lets you design ADSP-21xx Family
systems with paged external data memory, extending the
processor’s address space for additional data storage.
G21 C COMPILER
The G21 C Compiler is an optimizing ANSI compiler based on
the GNU gcc compiler. Applications written in C are compiled,
assembled, and linked to create executable ADSP-21xx
programs that can be debugged with an ADSP-21xx Simulator
or Emulator. It also supports in-line assembly code using the
asm( ) construct, which lets you use C expressions.
The G21 C Compiler contains optimization features to increase
execution speed of the resultant assembly code. These features
include algorithms to perform the following:
•
•
•
•
•
•
Constant Folding
Common Subexpression Elimination
Loop Optimization and Strength Reduction
Global and Local Register Allocation
Parallelization
Instruction Scheduling
• EZ-ICE Emulators
• EZ-KIT Development Tools Packages
• EZ-LAB Evaluation Boards
REV. B
–3–
ADDS-21xx-TOOLS
C RUNTIME LIBRARY
Interrupt Handling in C
The C Compiler comes with ANSI-standard functions and a set
of C-callable library routines commonly used in digital signal
processing to speed up development.
The ADSP-2100 Family C Runtime Library includes the ANSI-
standard and DSP-specific functions listed in Table I.
Table I. C Runtime Library Functions
The C environment supports hardware interrupts—a key feature
that facilitates programming. The signal handling functions of
the C library,
signal, raise,
and
interrupt,
process
ADSP-21xx interrupts such as serial port transmit and receive
interrupts, timer interrupts, and external interrupt request
signals.
The
signal
and
raise
functions direct execution to a specific
C interrupt service routine based on the type of interrupt that
occurs. This routing service allows the entire application to
be written in C without assembly language code. The signal
handling routines save and restore registers, and the overhead is
usually minimal compared to overall program execution time.
If you choose to write custom interrupt service routines in
assembly language, you can use the
signal
and
raise
functions to set up service routines in the C environment.
ASSEMBLER
Function
abs
acos
asin
atan
atan2
ceil
cos
cosh
exp
fabs
fir
floor
fmod
frexp
ifftN
iir
interrupt
isalpha
isdigit
labs
ldexp
log
log10
memcmp
memcpy
memset
modf
pow
raise
signal
sin
sinh
sqrt
strcat
strcmp
strcpy
strlen
strncat
strncmp
strncpy
tan
tanh
timer_off
timer_on
timer_set
va_arg
va_end
va_start
Description
absolute value
arc cosine
arc sine
arc tangent
arc tangent of quotient
ceiling
cosine
hyperbolic cosine
exponential
absolute value
finite impulse response (FIR) filter
floor
floating-point modulus
separate fraction and exponent
N-point inverse fast Fourier transform (IFFT)
infinite impulse response (IIR) filter
define interrupt handling
detect alphabetic character
detect decimal digit
absolute value
multiply by power of 2
natural logarithm
base 10 logarithm
compare objects
copy characters from one object to another
set range of memory to a character
separate integral and fractional parts
raise to a power
force a signal
define signal handling
sine
hyperbolic sine
square root
concatenate strings
compare strings
copy from one string to another
string length
concatenate characters from one string to another
compare characters in strings
copy characters from one string to another
tangent
hyperbolic tangent
disable ADSP-21xx timer
enable ADSP-21xx timer
initialize ADSP-21xx timer
get next argument in variable list
reset variable list pointer
set variable list pointer
The Assembler reads source files containing ADSP-2100 Family
assembly language and generates a relocatable object file. The
Assembler includes a preprocessor that lets you use C
preprocessor directives such as
#define, #include, #if,
#ifdef, and
#else
in assembly code.
Assembler directives define code modules, data buffers, data
variables, and memory-mapped I/O ports. Either assembler
directives or C preprocessor directives define and invoke
macros.
LINKER
The Linker processes separately assembled object files to create
a single executable program. It assigns memory locations to
code and data in accordance with the architecture file defined
by the System Builder.
The Linker also generates symbols (variable names and program
labels) in the processed files, which the simulator, emulator, and
the CBUG C Source-level debugger use to perform symbolic
debugging.
PROM SPLITTER AND HIP SPLITTER
The PROM Splitter translates an ADSP-21xx executable
program into a file used to program PROM memory devices.
The PROM Splitter’s output file can be generated in Motorola
S Record or Intel Hex Record format. Motorola S2 format is
supported for byte stream output.
The HIP Splitter utility generates ADSP-2111 and ADSP-2171
programs to be downloaded from a host processor through the
DSP’s Host Interface Port (HIP). The HIP Splitter’s output file
can be generated in Motorola S Record or Intel Hex Record
format.
Both the PROM Splitter and the HIP Splitter have a boot
loader option that enables loading of external memory.
–4–
REV. B
ADDS-21xx-TOOLS
File
View
Demo
D
P
Loading
D
EZ-KIT Lite - Monitor
Options Help
?
P
List of Demos
DTNF
Filter
Echo Canceller
ADPCM
7.8 kbs LPC
2.4 kbs LPC
Exit App
Ready
Figure 1. EZ-KIT Lite Monitor Software
SIMULATORS
HARDWARE TOOLS
EZ-KIT Lite
There is a simulator for each ADSP-2100 Family processor that
provides instruction-level simulation of program execution. The
Simulator models system memory and I/O according to the
contents of the system architecture file, and provides windows
to display different portions of the target system hardware. The
Graphical User Interface (GUI) lets system designers inter-
actively observe and alter register and memory contents,
providing a powerful debug environment. Simulator commands
can be entered from the mouse or keyboard.
Features offered by the ADSP-2100 Family Simulators include
the following:
•
•
•
•
•
•
•
•
Program and Data Memory Simulation
Memory-Mapped I/O Port Simulation
Interrupt Simulation
Program Booting (from PROM or host processor) Simulation
Code Execution Pattern Profiling for Program Optimization
On-Line Help
Reconfigurable Windows
Same User Interface as EZ-ICE Emulators
The ADSP-21xx EZ-KIT Lite is a low-cost, easy to use
development platform on which you can quickly get started with
your ADSP-2100 Family based DSP software design. The EZ-
KIT Lite is a complete development system package that
includes:
• ADDS-2181 EZ-LAB Board
• MS-Windows 3.1 Based Monitor Software
• Development Software Kit (upgradable to complete ADSP-
2100 Family Development Software package for full-featured
development of final systems)
• Demo Programs
- Digital Filtering
- Speech Compression
- FFT
- Echo Cancellation
- DTMF Tone Generation
- MPEG Audio Playback
The EZ-Kit Lite uses the ADDS-2181 EZ-LAB as a
development platform on which you can develop software
applications for any of the ADSP-2100 Family DSPs. This is
possible because the ADSP-2181 represents a superset of the
features of the ADSP-2101/2105/2111/2115/2171 processors.
With the ADSP-2181’s 32K words of on-chip RAM, there is no
need for additional RAM devices on the EZ-LAB board. The
board simply requires connection to power, an analog input
source, and amplified speakers to be able to run audio
applications and demos.
The EZ-LAB board can run in a stand-alone mode, or it can be
connected to the RS-232 port of your PC. A Windows-based
monitor program lets you interactively download programs and
interrogate the ADSP-2181 (see Figure 1). The board comes
with a socketed EPROM so that you can run the monitor
program or demonstrations provided—or you can plug in an
EPROM containing your own code.
CBUG C SOURCE-LEVEL DEBUGGER
The Simulators are seamlessly integrated with the CBUG C
source-level debugger. CBUG supports the following
operations:
• Run, Step, Next, and Finish Program Execution Commands
• C Source Code Breakpoints
• Local and Global Variable Display with Auto Refresh
Examines Value of Variables at Previously Executed
Instructions
• Symbol Look-Up
REV. B
–5–