Initial commit: ADSP-219x disassembler, docs, test ROMs, analysis tools
- Standalone Python disassembler for 24-bit ADSP-219x instructions - Complete instruction set reference (PDFs + extracted text) - Architecture documentation and getting-started guide - Test ROM generator with packed (3-byte) and padded (4-byte) formats - r2pipe-based analysis script for radare2 integration
This commit is contained in:
361
docs/9x_intro.txt
Normal file
361
docs/9x_intro.txt
Normal file
@@ -0,0 +1,361 @@
|
||||
1 INTRODUCTION
|
||||
Figure 1-0.
|
||||
Table 1-0.
|
||||
Listing 1-0.
|
||||
|
||||
|
||||
|
||||
|
||||
Purpose
|
||||
The ADSP-219x DSP Instruction Set Reference provides assembly syntax
|
||||
information for the ADSP-219x Digital Signal Processor (DSP). The syn-
|
||||
tax descriptions cover instructions that execute within the DSP’s processor
|
||||
core (processing elements, program sequencer, and data address genera-
|
||||
tors). For architecture and design information on the DSP, see the
|
||||
ADSP-219x/2191 DSP Hardware Reference.
|
||||
|
||||
|
||||
Audience
|
||||
DSP system designers and programmers who are familiar with signal pro-
|
||||
cessing concepts are the primary audience for this manual. This manual
|
||||
assumes that the audience has a working knowledge of microcomputer
|
||||
technology and DSP-related mathematics.
|
||||
DSP system designers and programmers who are unfamiliar with signal
|
||||
processing can use this manual, but should supplement this manual with
|
||||
other texts, describing DSP techniques.
|
||||
All readers, particularly programmers, should refer to the DSP’s develop-
|
||||
ment tools documentation for software development information. For
|
||||
additional suggested reading, see “For More Information About Analog
|
||||
Products” on page 1-6.
|
||||
|
||||
|
||||
|
||||
|
||||
ADSP-219x DSP Instruction Set Reference 1-1
|
||||
Contents Overview
|
||||
|
||||
|
||||
|
||||
|
||||
Contents Overview
|
||||
This reference presents instruction information organized by the type of
|
||||
the instruction. Instruction types relate to the machine language opcode
|
||||
for the instruction. On this DSP, the opcodes categorize the instructions
|
||||
by the portions of the DSP architecture that execute the instructions. The
|
||||
following chapters cover the different types of instructions:
|
||||
• “Instruction Set Summary” on page 2-1—This chapter provides a
|
||||
syntax summary of all instructions and describes the conventions
|
||||
that are used on the instruction reference pages.
|
||||
• “ALU Instructions” on page 3-1—These instruction specify opera-
|
||||
tions that occur in the DSP’s ALU.
|
||||
• “MAC Instructions” on page 4-1—These instructions specify oper-
|
||||
ations that occur in the DSP’s Multiply–Accumulator.
|
||||
• “Shifter Instructions” on page 5-1—These instructions specify
|
||||
operations that occur in the DSP’s Shifter.
|
||||
• “Multifunction Instructions” on page 6-1—These instructions
|
||||
specify parallel, single-cycle operations.
|
||||
• “Data Move Instructions” on page 7-1—These instructions specify
|
||||
memory and register access operations.
|
||||
• “Program Flow Instructions” on page 8-1—These instructions spec-
|
||||
ify program sequencer operations.
|
||||
• “Instruction Opcodes” on page 9-1—This chapter lists the instruc-
|
||||
tion encoding fields for all instructions.
|
||||
Each of the DSP’s instructions is specified in this text. The reference page
|
||||
for an instruction shows the syntax of the instruction, describes its func-
|
||||
tion, gives one or two assembly-language examples, and identifies fields of
|
||||
its opcode. The instructions are referred to by type, ranging from 1 to 37.
|
||||
|
||||
|
||||
|
||||
|
||||
1-2 ADSP-219x DSP Instruction Set Reference
|
||||
Introduction
|
||||
|
||||
|
||||
|
||||
|
||||
These types correspond to the opcodes that ADSP-219x DSPs recognize,
|
||||
but are for reference only and have no bearing on programming.
|
||||
Some instructions have more than one syntactical form; for example,
|
||||
instruction “Type 9: Compute” on page 9-27 has many distinct forms.
|
||||
Many instructions can be conditional. These instructions are prefaced by
|
||||
IF COND; for example:
|
||||
|
||||
If COND compute;
|
||||
|
||||
In a conditional instruction, the execution of the entire instruction is
|
||||
based on the specified condition.
|
||||
|
||||
|
||||
Development Tools
|
||||
The ADSP-219x is supported by VisualDSP®, an easy-to-use project
|
||||
management environment, comprised of an Integrated Development
|
||||
Environment (IDE) and Debugger. VisualDSP lets you manage projects
|
||||
from start to finish from within a single, integrated interface. Because the
|
||||
project development and debug environments are integrated, you can
|
||||
move easily between editing, building, and debugging activities.
|
||||
Flexible Project Management. The IDE provides flexible project manage-
|
||||
ment for the development of DSP applications. The IDE includes access
|
||||
to all the activities necessary to create and debug DSP projects. You can
|
||||
create or modify source files or view listing or map files with the IDE Edi-
|
||||
tor. This powerful Editor is part of the IDE and includes multiple
|
||||
language syntax highlighting, OLE drag and drop, bookmarks, and stan-
|
||||
dard editing operations such as undo/redo, find/replace, copy/paste/cut,
|
||||
and goto.
|
||||
Also, the IDE includes access to the C Compiler, C Runtime Library,
|
||||
Assembler, Linker, Loader, Simulator, and Splitter. You specify options
|
||||
for these Tools through Property Page dialogs. Property Page dialogs are
|
||||
easy to use, and make configuring, changing, and managing your projects
|
||||
|
||||
|
||||
|
||||
ADSP-219x DSP Instruction Set Reference 1-3
|
||||
Development Tools
|
||||
|
||||
|
||||
|
||||
|
||||
simple. These options control how the tools process inputs and generate
|
||||
outputs, and have a one-to-one correspondence to the tools’ command
|
||||
line switches. You can define these options once, or modify them to meet
|
||||
changing development needs. You can also access the Tools from the oper-
|
||||
ating system command line if you choose.
|
||||
Greatly Reduced Debugging Time. The Debugger has an easy-to-use,
|
||||
common interface for all processor simulators and emulators available
|
||||
through Analog Devices and third parties or custom developments. The
|
||||
Debugger has many features that greatly reduce debugging time. You can
|
||||
view C source interspersed with the resulting Assembly code. You can pro-
|
||||
file execution of a range of instructions in a program; set simulated watch
|
||||
points on hardware and software registers, program and data memory; and
|
||||
trace instruction execution and memory accesses. These features enable
|
||||
you to correct coding errors, identify bottlenecks, and examine DSP per-
|
||||
formance. You can use the custom register option to select any
|
||||
combination of registers to view in a single window. The Debugger can
|
||||
also generate inputs, outputs, and interrupts so you can simulate real
|
||||
world application conditions.
|
||||
Software Development Tools. Software Development Tools, which sup-
|
||||
port the ADSP-219x Family, allow you to develop applications that take
|
||||
full advantage of the DSP architecture, including shared memory and
|
||||
memory overlays. Software Development Tools include C Compiler, C
|
||||
Runtime Library, DSP and Math Libraries, Assembler, Linker, Loader,
|
||||
Simulator, and Splitter.
|
||||
C Compiler & Assembler. The C Compiler generates efficient code that is
|
||||
optimized for both code density and execution time. The C Compiler
|
||||
allows you to include Assembly language statements inline. Because of
|
||||
this, you can program in C and still use Assembly for time-critical loops.
|
||||
You can also use pretested Math, DSP, and C Runtime Library routines to
|
||||
help shorten your time to market. The ADSP-219x Family Assembly lan-
|
||||
guage is based on an algebraic syntax that is easy to learn, program, and
|
||||
|
||||
|
||||
|
||||
|
||||
1-4 ADSP-219x DSP Instruction Set Reference
|
||||
Introduction
|
||||
|
||||
|
||||
|
||||
|
||||
debug. The add instruction, for example, is written in the same manner as
|
||||
the actual equation (for example, AR = AX0 + AY0;).
|
||||
Linker & Loader. The Linker provides flexible system definition through
|
||||
Linker Description Files (.LDF). In a single LDF, you can define different
|
||||
types of executables for a single or multiprocessor system. The Linker
|
||||
resolves symbols over multiple executables, maximizes memory use, and
|
||||
easily shares common code among multiple processors. The Loader sup-
|
||||
ports creation of host (8- or 16-bit) port, SPI port, UART port, and
|
||||
PROM boot images. Along with the Linker, the Loader allows a variety of
|
||||
system configurations with smaller code and faster boot time.
|
||||
Simulator. The Simulator is a cycle-accurate, instruction-level simulator
|
||||
— allowing you to simulate your application in real time.
|
||||
3rd-Party Extensible. The VisualDSP environment enables third-party
|
||||
companies to add value using Analog Devices’ published set of Applica-
|
||||
tion Programming Interfaces (API). Third party products—runtime
|
||||
operating systems, emulators, high-level language compilers, multiproces-
|
||||
sor hardware —can interface seamlessly with VisualDSP thereby
|
||||
simplifying the tools integration task. VisualDSP follows the COM API
|
||||
format. Two API tools, Target Wizard and API Tester, are also available
|
||||
for use with the API set. These tools help speed the time-to-market for
|
||||
vendor products. Target Wizard builds the programming shell based on
|
||||
API features the vendor requires. The API tester exercises the individual
|
||||
features independently of VisualDSP. Third parties can use a subset of
|
||||
these APIs that meets their application needs. The interfaces are fully sup-
|
||||
ported and backward compatible.
|
||||
Further details and ordering information are available in the VisualDSP
|
||||
Development Tools data sheet. This data sheet can be requested from any
|
||||
Analog Devices sales office or distributor.
|
||||
|
||||
|
||||
|
||||
|
||||
ADSP-219x DSP Instruction Set Reference 1-5
|
||||
For More Information About Analog Products
|
||||
|
||||
|
||||
|
||||
|
||||
For More Information About Analog
|
||||
Products
|
||||
Analog Devices is online on the internet at http://www.analog.com. Our
|
||||
Web pages provide information on the company and products, including
|
||||
access to technical information and documentation, product overviews,
|
||||
and product announcements.
|
||||
You may also obtain additional information about Analog Devices and its
|
||||
products in any of the following ways:
|
||||
• Visit our World Wide Web site at www.analog.com
|
||||
• FAX questions or requests for information to 1(781)461-3010.
|
||||
• Access the Computer Products Division File Transfer Protocol
|
||||
(FTP) site at ftp ftp.analog.com or ftp 137.71.23.21 or
|
||||
ftp://ftp.analog.com.
|
||||
|
||||
|
||||
|
||||
For Technical or Customer Support
|
||||
You can reach our Customer Support group in the following ways:
|
||||
• E-mail questions to dsp.support@analog.com or
|
||||
dsp.europe@analog.com (European customer support)
|
||||
|
||||
• Telex questions to 924491, TWX:710/394-6577
|
||||
• Cable questions to ANALOG NORWOODMASS
|
||||
• Contact your local ADI sales office or an authorized ADI distributor
|
||||
|
||||
|
||||
|
||||
|
||||
1-6 ADSP-219x DSP Instruction Set Reference
|
||||
Introduction
|
||||
|
||||
|
||||
|
||||
|
||||
• Send questions by mail to:
|
||||
Analog Devices, Inc.
|
||||
DSP Division
|
||||
One Technology Way
|
||||
P.O. Box 9106
|
||||
Norwood, MA 02062-9106
|
||||
USA
|
||||
|
||||
|
||||
|
||||
What’s New in This Manual
|
||||
This is the preliminary edition of the ADSP-219x DSP Instruction Set
|
||||
Reference. Summaries of changes between editions will start with the next
|
||||
edition.
|
||||
|
||||
|
||||
Related Documents
|
||||
For more information about Analog Devices DSPs and development
|
||||
products, see the following documents:
|
||||
• ADSP-2191 DSP Microcomputer Data Sheet
|
||||
• ADSP-219x/2191 DSP Hardware Reference
|
||||
• Getting Started Guide for VisualDSP & ADSP-219x Family DSPs
|
||||
• VisualDSP User's Guide for ADSP-219x Family DSPs
|
||||
• C Compiler & Library Manual for ADSP-219x Family DSPs
|
||||
• Assembler Manual for ADSP-219x Family DSPs
|
||||
• Linker & Utilities Manual for ADSP-219x Family DSPs
|
||||
All the manuals are included in the software distribution CD-ROM. To
|
||||
access these manuals, use the Help Topics command in the VisualDSP
|
||||
environment’s Help menu and select the Online Manuals book. From this
|
||||
|
||||
|
||||
|
||||
ADSP-219x DSP Instruction Set Reference 1-7
|
||||
Conventions
|
||||
|
||||
|
||||
|
||||
|
||||
Help topic, you can open any of the manuals, which are in Adobe Acrobat
|
||||
PDF format.
|
||||
|
||||
|
||||
Conventions
|
||||
The following are conventions that apply to all chapters. Note that addi-
|
||||
tional conventions, which apply only to specific chapters, appear
|
||||
throughout this document.
|
||||
|
||||
Table 1-1. Instruction set notation
|
||||
|
||||
Notation Meaning
|
||||
|
||||
UPPERCASE Explicit syntax—assembler keyword. (The assembler is case-
|
||||
insensitive.)
|
||||
|
||||
; A semicolon terminates an instruction line.
|
||||
|
||||
, A comma separates multiple, parallel instructions in the same
|
||||
instruction line.
|
||||
|
||||
// single line comment // or /* */ indicate comments or remarks that explain program code,
|
||||
/* multi line comment */ but that the assembler ignores. For more details, see the Assembler
|
||||
Manual for ADSP-219x Family DSPs.
|
||||
|
||||
| option1 | You must choose one of the items enclosed within two vertical bars.
|
||||
| option2 |
|
||||
|
||||
[ (DB) ] Brackets enclose an optional instruction component. The option’s
|
||||
syntax includes everything within the brackets, as shown. In this
|
||||
case, (DB) is the delayed branch option.
|
||||
|
||||
<imm#> Denotes an immediate value (data or address) of # bits.
|
||||
<data#>
|
||||
|
||||
COND Denotes a status condition.
|
||||
|
||||
|
||||
|
||||
|
||||
1-8 ADSP-219x DSP Instruction Set Reference
|
||||
Introduction
|
||||
|
||||
|
||||
|
||||
|
||||
Table 1-1. Instruction set notation (Cont’d)
|
||||
|
||||
Notation Meaning
|
||||
|
||||
TERM Denotes a loop termination condition. For details, see “Type 11: Do
|
||||
··· Until” on page 9-34.
|
||||
|
||||
Dreg Denotes an unrestricted (Group 0) data register used as either an x
|
||||
or y-input operand. For details, see “Core Registers” on page 7-2.
|
||||
|
||||
XOP Denotes a restricted data register used for the x-input operand in a
|
||||
compute instruction. For details, see “Input Registers” on page 3-2.
|
||||
|
||||
YOP Denotes a restricted data register used for the y-input operand in a
|
||||
compute operation. For details, see “Input Registers” on page 3-2.
|
||||
|
||||
Ireg DAG address register. Denotes an index register (I0–I7).
|
||||
|
||||
Mreg DAG address register. Denotes a modify register (M0–M7).
|
||||
|
||||
Lreg DAG address register. Denotes a length register (L0–L7).
|
||||
|
||||
Breg DAG address register. Denotes a base register (B0–B7).
|
||||
|
||||
(Ireg + Mreg) Indirect addressing mode. Denotes premodify addressing with no
|
||||
update. Same as (Mreg, Ireg) syntax.
|
||||
|
||||
(Ireg += Mreg) Indirect addressing mode. Denotes postmodify addressing with
|
||||
update. Same as (Ireg, Mreg) syntax.
|
||||
|
||||
0x Denotes number in hexidecimal format (0xFFFF).
|
||||
|
||||
h# Denotes number in hexidecimal format (h#FFFF).
|
||||
|
||||
b# Denotes number in binary format (b#0001000100010001).
|
||||
|
||||
|
||||
|
||||
|
||||
ADSP-219x DSP Instruction Set Reference 1-9
|
||||
Conventions
|
||||
|
||||
|
||||
|
||||
|
||||
1-10 ADSP-219x DSP Instruction Set Reference
|
||||
|
||||
Reference in New Issue
Block a user