Analog Devices, Inc. reserves the right to change this product without
prior notice. 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 infringement of patents or other rights of
third parties which may result from its use. No license is granted by implication or otherwise under the patent rights of Analog Devices, Inc.
Trademark and Service Mark Notice
The Analog Devices logo, VisualDSP, the VisualDSP logo, Blackfin, the
Blackfin logo, CROSSCORE, the CROSSCORE logo, and EZ-KIT Lite
are registered trademarks of Analog Devices, Inc.
VisualDSP++ and the VisualDSP++ logo are trademarks of Analog
Devices, Inc.
All other brand and product names are trademarks or service marks of
their respective owners.
CONTENTS
PREFACE
Purpose of This Manual .................................................................. xi
Intended Audience .......................................................................... xi
Manual Contents ........................................................................... xii
Technical or Customer Support ...................................................... xii
Supported Processors ..................................................................... xiii
Product Information ..................................................................... xiii
MyAnalog.com ......................................................................... xiv
Embedded Processor and DSP Product Information .................. xiv
Related Documents ................................................................... xv
Online Technical Documentation .............................................. xv
From VisualDSP++ .............................................................. xvi
From Windows .................................................................... xvi
From the Web ..................................................................... xvii
Printed Manuals ...................................................................... xvii
VisualDSP++ Documentation Set ........................................ xvii
Hardware Manuals ............................................................. xviii
Datasheets ......................................................................... xviii
Contacting DSP Publications .................................................. xviii
VisualDSP++ 3.5 Loader Manual iii
for 16-Bit Processors
Notation Conventions ................................................................... xix
INTRODUCTION
Program Development Flow .......................................................... 1-1
Compiling and Assembling ..................................................... 1-2
Format References ...................................................................... A-10
viiiVisualDSP++ 3.5 Loader Manual
for 16-Bit Processors
INDEX
Contents
VisualDSP++ 3.5 Loader Manual ix
for 16-Bit Processors
xVisualDSP++ 3.5 Loader Manual
for 16-Bit Processors
PREFACE
Thank you for purchasing Analog Devices development software for
digital signal processor (DSP) applications.
Purpose of This Manual
The VisualDSP++ 3.5 Loader Manual for 16-Bit Processors contains infor-
mation on how to use the loader/splitter to convert executable files into
boot-loadable (or non-bootable) files for 16-bit fixed-point ADSP-21xx
DSPs and Blackfin® processors. These files are then programmed/burned
into an external memory device within your target system.
Intended Audience
The primary audience for this manual is DSP programmers who are
familiar with Analog Devices DSPs. This manual assumes that the audience has a working knowledge of the appropriate DSP architecture and
instruction set. Programmers who are unfamiliar with Analog Devices
DSPs can use this manual but should supplement it with other texts, such
as Hardware Reference and Instruction Set Reference manuals, that describe
your target architecture.
VisualDSP++ Loader Manual xi
for 16-Bit Processors
Manual Contents
Manual Contents
The manual contains:
•Chapter 1, “Introduction”
•Chapter 2, “Blackfin Processor Loader/Splitter”
•Chapter 3, “ADSP-219x DSP Loader/Splitter”
•Chapter 4, “ADSP-2192-12 DSP Loader”
•Chapter 4, “ADSP-218x DSP Loader/Splitter”
•Appendix A, “File Formats”
Technical or Customer Support
You can reach DSP Tools Support in the following ways.
•Contact your ADI local sales office or authorized distributor
•Send questions by mail to:
Analog Devices, Inc.
One Technology Way
P.O. Box 9106
Norwood, MA 02062-9106
USA
xiiVisualDSP++ Loader Manual
for 16-Bit Processors
Supported Processors
The name “ADSP-21xx” refers to two families of Analog Devices 16-bit,
fixed-point processors. VisualDSP++ for ADSP-21xx DSPs currently
supports the following processors.
•ADSP-218x family DSPs: ADSP-2181, ADSP-2183,
ADSP-2184/84L/84N, ADSP-2185/85L/85M/85N,
ADSP-2186/86L/86M/86N, ADSP-2187L/87N,
ADSP-2188L/88N, and ADSP-2189M/89N
•ADSP-219x family DSPs: ADSP-2191, ADSP-2192-12,
ADSP-2195, ADSP-2196, ADSP-21990, ADSP-21991,
and ADSP-21992
The name “Blackfin” refers to a family of Analog Devices 16-bit, embedded processors. VisualDSP++ currently supports the following Blackfin
processors.
You can obtain product information from the Analog Devices Web site,
from the product CD-ROM, or from the printed publications (manuals).
Analog Devices is online at www.analog.com. Our Web site provides information about a broad range of products—analog integrated circuits,
amplifiers, converters, and digital signal processors.
VisualDSP++ Loader Manual xiii
for 16-Bit Processors
Product Information
MyAnalog.com
MyAnalog.com is a free feature of the Analog Devices website that allows
customization of a webpage to display only the latest information on
products you are interested in. You can also choose to receive weekly email
notification containing updates to the webpages that meet your interests.
MyAnalog.com provides access to books, application notes, data sheets,
code examples, and more.
Registration:
Visit www.myanalog.com to sign up. Click Register to use MyAnalog.com.
Registration takes about five minutes and serves as means for you to select
the information you want to receive.
If you are already a registered user, just log on. Your user name is your
email address.
Embedded Processor and DSP Product Information
For information on digital signal processors, visit our website at
www.analog.com/processors, which provides access to technical publica-
tions, datasheets, application notes, product overviews, and product
announcements.
You may also obtain additional information about Analog Devices and its
products in any of the following ways.
•Email questions or requests for information to
dsp.support@analog.com
•Fax questions or requests for information to
1-781-461-3010 (North America)
+49 (0) 089 76 903 557 (Europe)
•Access the Digital Signal Processor Division’s FTP website at
ftp ftp.analog.com or ftp 137.71.23.21
ftp://ftp.analog.com
xivVisualDSP++ Loader Manual
for 16-Bit Processors
Preface
Related Documents
For information on product related development software, see the following publications.
VisualDSP++ 3.5 Getting Started Guide for 16-Bit Processors
VisualDSP++ 3.5 User’s Guide for 16-Bit Processors
VisualDSP++ 3.5 Product Release Bulletin for 16-Bit Processors
VisualDSP++ 3.5 C/C++ Compiler and Library Manual for Blackfin Processors
VisualDSP++ 3.5 C/C++ Compiler and Library Manual for ADSP-219x DSPs
VisualDSP++ 3.5 C Compiler and Library Manual for ADSP-218x DSPs
VisualDSP++ 3.5 Linker and Utilities Manual for 16-Bit Processors
VisualDSP++ 3.5 Assembler and Preprocessor Manual for Blackfin Processors
VisualDSP++ 3.5 Assembler and Preprocessor Manual for ADSP-218x and ADSP-219x DSPs
VisualDSP++ 3.5 Kernel (VDK) User’s Guide for 16-Bit Processors
VisualDSP++ 3.5 Component Software Engineering User’s Guide for 16-Bit Processors
Quick Installation Reference Card
For hardware information, refer to your DSP’s Hardware Reference manual
and datasheet.
Online Technical Documentation
Online documentation comprises the VisualDSP++ Help system and tools
manuals, Dinkum Abridged C++ library, and FlexLM network license
manager software documentation. You can easily search across the entire
VisualDSP++ documentation set for any topic of interest. For easy printing, supplementary
A description of each documentation file type is as follows.
VisualDSP++ Loader Manual xv
for 16-Bit Processors
.PDF files for the tools manuals are also provided.
Product Information
File Description
.CHMHelp system files and VisualDSP++ tools manuals.
.HTM or
.HTML
.PDFVisualDSP++ manuals in Portable Documentation Format, one .PDF file for each
Dinkum Abridged C++ library and FlexLM network license manager software documentation. Viewing and printing the
net Explorer 4.0 (or higher).
manual. Viewing and printing a .PDF file require a PDF reader, such as Adobe
Acrobat Reader (4.0 or higher).
.HTML files require a browser, such as Inter-
If documentation is not installed on your system as part of the software
installation, you can add it from the VisualDSP++ CD-ROM at any time
by rerunning the Tools installation.
Access the online documentation from the VisualDSP++ environment,
Windows Explorer, or Analog Devices Web site.
From VisualDSP++
•Access VisualDSP++ online Help from the Help menu’s Contents,
Search, and Index commands.
•Open online Help from context-sensitive user interface items
(toolbar buttons, menu commands, and windows).
From Windows
In addition to shortcuts you may have constructed, there are many ways
to open VisualDSP++ online Help or the supplementary documentation
from Windows.
Help system files (.CHM files) are located in the Help folder, and .PDF files
are located in the
Docs folder of your VisualDSP++ installation. The Docs
folder also contains the Dinkum Abridged C++ library and FlexLM network license manager software documentation.
xviVisualDSP++ Loader Manual
for 16-Bit Processors
Preface
Using Windows Explorer
•Double-click any file that is part of the VisualDSP++ documentation set.
•Double-click the vdsp-help.chm file, which is the master Help system, to access all the other .CHM files.
Using the Windows Start Button
Access VisualDSP++ online Help by clicking the Start button and choosing Programs, Analog Devices, VisualDSP++ for 16-bit processors , and
VisualDSP++ Documentation.
From the Web
To download the tools manuals, point your browser at
Select a DSP family and book title. Download archive (.ZIP) files, one for
each manual. Use any archive management software, such as WinZip, to
decompress downloaded files.
Printed Manuals
For general questions regarding literature ordering, call the Literature
Center at 1-800-ANALOGD (1-800-262-5643) and follow the prompts.
VisualDSP++ Documentation Set
VisualDSP++ manuals may be purchased through Analog Devices
Customer Service at 1-781-329-4700; ask for a Customer Service
representative. The manuals can be purchased only as a kit. For additional
information, call 1-603-883-2430.
VisualDSP++ Loader Manual xvii
for 16-Bit Processors
Product Information
If you do not have an account with Analog Devices, you will be referred to
Analog Devices distributors. To get information on our distributors, log
onto http://www.analog.com/salesdir/continent.asp.
Hardware Manuals
Hardware reference and instruction set reference manuals can be ordered
through the Literature Center or downloaded from the Analog Devices
Web site. The phone number is 1-800-ANALOGD (1-800-262-5643).
The manuals can be ordered by a title or by product number located on
the back cover of each manual.
Datasheets
All datasheets can be downloaded from the Analog Devices Web site. As a
general rule, any datasheet with a letter suffix (L, M, N) can be obtained
from the Literature Center at 1-800-ANALOGD (1-800-262-5643) or
downloaded from the Web site. Datasheets without the suffix can be
downloaded from the Web site only—no hard copies are available. You
can ask for the datasheet by a part name or by product number.
If you want to have a datasheet faxed to you, the phone number for that
service is 1-800-446-6212. Follow the prompts and a list of datasheet
code numbers will be faxed to you. Call the Literature Center first to find
out if requested datasheets are available.
Contacting DSP Publications
Please send your comments and recommendation on how to improve our
manuals and online Help. You can contact us at
dsp.techpubs@analog.com.
xviiiVisualDSP++ Loader Manual
for 16-Bit Processors
Notation Conventions
The following table identifies and describes text conventions used in this
manual.
Preface
!
ExampleDescriptio n
Close command
(File menu)
{this | that}Altern ative required items in syntax descriptions appear within curly
[this | that]Optional items in syntax descriptions appear within br ackets and s epa-
[this,…]Optional item lists in syntax descriptions appear within brackets
.SECTIONCommands, directives, keywords, and feature names are in text with
filenameNon-keyword placeholders appear in text with italic style format.
appear throughout this document.
Text in bold style indicates the location of an item within the
VisualDSP++ environment’s menu system. For example, the Close
command appears on the File menu.
brackets and separated by vertical bars; read the example as
that.
rated by vertical bars; read the example as an optional this or that.
delimited by commas and terminated with an ellipsis; read the example
as an optional comma-separated list of
letter gothic font.
A note, providing information of special interest or identifying a
related topic. In the online version of this book, the word Note appears
instead of this symbol.
this or
this.
Additional conventions, which apply only to specific chapters, may
A caution, providing information about critical design or programming issues that influence operation of a product. In the online version
of this book, the word Caution appears instead of this symbol.
Code has been formatted to fit this manual’s page width.
!
VisualDSP++ Loader Manual xix
for 16-Bit Processors
Notation Conventions
xxVisualDSP++ Loader Manual
for 16-Bit Processors
1INTRODUCTION
The majority of this manual describes the loader program (or loader utility) as well as the process of loading and splitting, the final phase of a DSP
application program’s development flow. The process of initializing
on-chip and off-chip memories, is often referred to as booting.
The majority of this chapter applies to all 16-bit processors. Information
applicable to a particular target processor, or to a particular processor family, is provided in the following chapters.
•Chapter 2, “Blackfin Processor Loader/Splitter” on page 2-1
•Chapter 3, “ADSP-219x DSP Loader/Splitter” on page 3-1
•Chapter 4, “ADSP-2192-12 DSP Loader” on page 4-1
•Chapter 5, “ADSP-218x DSP Loader/Splitter” on page 5-1
Program Development Flow
The flow can be split into three phases:
1. “Compiling and Assembling”
2. “Linking”
3. “Loading and Splitting”
A brief description of each phase is as follows.
VisualDSP++ 3.5 Loader Manual1-1
for 16-Bit Processors
Program Development Flow
Compiling and Assembling
Input source files are compiled and assembled to yield object files. Source
files are text files containing C/C++ code, compiler directives, possibly a
mixture of assembly code and directives, and, typically, preprocessor commands. Refer to the VisualDSP++ 3.5 Assembler and Preprocessor Manual
or the VisualDSP++ 3.5 C/C++ Compiler and Library Manual for information about the assembler and compiler source files.
Linking
Under the direction of the Linker Description File (LDF) and linker settings, the linker consumes separately assembled object and library files to
yield an executable file. If specified, shared memory and overlay files are
also produced. The linker output conforms to the Executable and Linkable Format (ELF), an industry-standard format for executable files. The
linker also produces map files and other embedded information used by
the debugger (DWARF-2).
These executable files (.DXE) are not readable by the processor hardware
directly. They are neither supposed to be burned onto a EPROM or Flash
memory device. Executable files are consumed by VisualDSP++ debugging
targets, such as the simulator or emulator. Refer to the VisualDSP++ 3.5 Linker and Utilities Manual for 16-Bit Processors and online Help for information about linking and debugging.
Loading and Splitting
Upon completing the debug cycle, the processor hardware needs to run on
its own, without any debugging tools connected. After power-up, processor memories need to be initialized to be booted. Therefore, the linker
output must be transformed to a format readable by the processor. This
process is handled by the loader/splitter utility. The loader/splitter uses
the debugged and tested executable as well as shared memory and overlay
files as inputs to yield a processor-loadable file.
1-2VisualDSP++ 3.5 Loader Manual
for 16-Bit Processors
Introduction
VisualDSP++ includes two loader/splitter programs:
•elfloader.exe for ADSP-BF5xx and ADSP-219x processors
•elfspl21.exe for ADSP-218x processors
You can run the loader/splitter from the IDDE. In order to do so, change
you project’s type from DSP Executable to DSP Loader File. If preferred,
the command-line interface is also available.
Loader operations depend on loader options, which control how the
loader processes executable files, letting you select features such as kernels,
boot modes, and output file formats. These options are set on the Load
page of the Project Options dialog box in the VisualDSP++ environment
or on the loader’s command line. Option settings on the Load page corre-
spond to switches typed on the command line.
The loader/splitter output is either a boot-loadable or non-bootable file
(described in the following “Boot-loadable Files Versus Non-bootable
Files”). The output is meant to be loaded onto the target. There are sev-
eral ways to use the output:
•Download the loadable file into the processor’s PROM space on an
EZ-KIT Lite board via the Flash Programmer plug-in. Refer to
VisualDSP++ Help or the EZ-KIT Lite Evaluation System Manual
for information on the Flash Programmer.
•Use VisualDSP++ to simulate booting in a simulator session (where
supported). Load the loader file and then reset the processor to
debug the booting routines. No hardware is required: just point to
VisualDSP++ 3.5 Loader Manual1-3
for 16-Bit Processors
Program Development Flow
the location of the loader file, letting the simulator to do the rest.
You can step through the boot kernel code as it brings the rest of
the code into memory.
•Store the loader file in an array on a multiprocessor system. A master (host) processor has the array in its memory, allowing a full
control to reset and load the file into the memory of a slave
processor.
Boot-loadable Files Versus Non-bootable Files
A boot-loadable file is transported into and run from a processor’s internal
memory (on-chip boot ROM). (Note: This is different for ADSP-218x
processors.) The file is then programmed (burned) into an external memory device within your target system. The loader outputs files in
industry-standard file formats, such as Intel hex-32 and Motorola S,
which are readable by most EPROM burners. For advanced usage, other
file formats are supported.
A non-bootable EPROM-image file executes from the processor’s external
memory, bypassing the build-in boot mechanisms. Preparing a non-bootable EPROM image is called splitting. In most cases, developers working
with 16-bit processors use the loader instead of the splitter.
A processor’s booting sequence and an application program’s design dictate the way you call the loader/splitter programs to consume and
transform executables. For 16-bit processors, splitter and loader features
are handled by a single program. The splitter is invoked by a completely
different set of command-line switches than the loader. Refer to the guide
sections of the following chapters for information about splitting.
1-4VisualDSP++ 3.5 Loader Manual
for 16-Bit Processors
Introduction
Booting Modes
A fully debugged program can be automatically downloaded to the processor after power-up or after a software reset. This process is called booting.
The way the loader creates a boot-loadable file depends upon how your
program is booted into the processor.
Once an executable is fully debugged, it is ready to be converted into a
processor-loadable file.
The exact boot mode of the processor is determined by sampling one or
more of input flag pins. Booting sequences, highly processor-specific, are
detailed in the following chapters.
ADSP-218x, ADSP-219x, and Blackfin processors support different boot
mechanisms. Generally spoken, the following schemes can be used to provide program instructions to the processors after reset.
•“No-boot Mode”
•“PROM Booting Mode”
•“Host Booting Mode”
No-boot Mode
The processors starts fetching and executing instructions from
EPROM/Flash memory devices directly. This scheme does not require any
loader mechanism. It is up to the user program to initialize volatile
memories.
The splitter utility helps to generate a file that can be burned into the
PROM memory.
VisualDSP++ 3.5 Loader Manual1-5
for 16-Bit Processors
Booting Modes
PROM Booting Mode
After reset, the processor starts reading data from any parallel or serial
PROM device. The PROM stores a formatted boot stream rather than raw
instruction code. Beside application data, the boot stream contains additional data, such as destination addresses and word counts. A small
program called kernel or loader kernel (described on page 1-7) parses the
boot stream and initializes memories accordingly. The loader kernel runs
on the target processors. Depending on the architecture, the loader kernel
may execute from on-chip boot ROM or may be pre-loaded from the
PROM device into on-chip SRAM and execute from there.
The loader utility generates the boot stream from the linker’s executable
file and stores it to file format that can be burned into the PROM.
Host Booting Mode
In this scheme, the target processor is slave to a host system. After reset,
the processor delays program execution until it gets signalled by the host
system that the boot process has completed. Depending on hardware capabilities, there are two different methods of host booting. In the first case,
the host system has full control over all target memories. It halts the target
while it is initializing all memories as required. In the second case, the
host communicates by a certain handshake with the loader kernel running
on the target processor. This kernel may execute from on-chip ROM or
may be pre-loaded by the host devices into the target’s SRAM by any
boot-strapping scheme.
The loader/splitter utility generates a file that can be consumed by the
host device. It depends on the intelligence of the host device and on the
target architecture whether the host expects raw application data or a formatted boot stream.
1-6VisualDSP++ 3.5 Loader Manual
for 16-Bit Processors
Introduction
In this context, a boot-loadable file is a file that stores instruction code in
a formatted manner in order to be processed by a boot kernel. A
non-bootable file stores raw instruction code. Note that in some case, a
single file may contain both types of data.
Boot Kernels
A (loader) boot kernel refers to the resident program in the boot ROM
space responsible for booting the processor. Alternatively (or in absence of
the boot ROM), the boot kernel can be pre-loaded from the boot source
by a boot-strapping scheme.
When a reset signal is sent to the processor, the processor starts booting
from a PROM, host device, or through a communication port. For example, a ADSP-218x/219x processor brings a 256-word program in internal
memory for execution. This small program is called a boot kernel. The
boot kernel then brings the rest of the booting routines into the processor’s memory. Finally, the boot kernel overwrites itself with the final block
and jumps to the beginning of the application program.
On the ADSP-219x DSPs, the highest 16 locations in page 0 program
memory and the highest 272 locations in page 0 data memory are reserved
for use by the ROM boot routines (typically for setting up DMA data
structures and for bookkeeping operations). Ensure that the boot sequence
entry code or boot-loaded program do not need to initialize this space at
boot time. However, the program can use these locations at run-time.
Some of the newer Blackfin processors (ADSP-BF531, ADSP-BF532, and
ADSP-BF533) do not require a boot kernel: the advanced on-chip boot
ROM allows the entire application program body to be booted into the
internal memory of the processor. The on-chip boot ROM for the former
processors behaves similar to the second-stage loader of ADSP-BF535 processors. The boot ROM has the capability to parse address and count
information for each bootable block.
VisualDSP++ 3.5 Loader Manual1-7
for 16-Bit Processors
Loader Tasks
Loader Tasks
Common tasks perform by the loader include:
•Processing loader option settings or command-line switches.
•Formatting the output .LDR file according to user specifications.
Supported formats are binary, ASCII, hex-32, and more. Valid file
formats are described in Appendix A on page A-1.
•Packing the code for a particular data format: 8- or 16-bit.
•If specified, adding a boot kernel on top of the user code.
•If specified, preprogramming the location of the .LDR file in
PROM space.
•Specifying processor IDs for multiple input .DXEs for a multiprocessor system.
Loader Files
The loader/splitter output is essentially the same executable code as in the
input .DXE file. The loader repackages the executable, as illustrated in
Figure 1-1.
Processor code in a loader file is split into blocks. Each code block is
marked with a tag that contains information about the block, such as a
number of words or destination in processor’s memory. Depending on the
processor family, there may be additional information in the tag. Common block types are “zero” (memory is filled with 0s); non-zero (code or
data); and final (code or data). Depending on the processor family, there
may be other block types.
All ofthedebugginginformation
has been taken out of the file
A .DXE file includes:
Symboltable andsection
information
Targetprocessor's memory
layout
Degugging information
Code instru ct io ns
.DXE File
Code
Data
Symbols
Debug Information
Figure 1-1. .DXE Files versus .LDR Files
File Searches
File searches are important in the loader operation. The loader supports
relative and absolute directory names, default directories. File searches
occur as follows.
•Specified path—If you include relative or absolute path information in a file name, the loader searches only in that location for the
file.
•Default directory—If you do not include path information in the
file name, the loader searches for the file in the current working
directory.
•Overlay and shared memory files—the loader recognizes overlay
memory files but does not expect these files on the command line.
Place the files in the same directory as the executable file that refers
to them. The loader can locate them when processing the
executable.
VisualDSP++ 3.5 Loader Manual1-9
for 16-Bit Processors
Loader Files
When providing an input or output file as a loader/splitter command-line
parameter, use the following guidelines.
•Enclose long file names within straight quotes, “long file name”.
•Append the appropriate file extension to each file.
1-10VisualDSP++ 3.5 Loader Manual
for 16-Bit Processors
Loading...
+ 136 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.