21xx Bulletin
21xx Bulletin
21xx Bulletin
0
Product Bulletin for
ADSP-21xx DSPs
Disclaimer
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 impli-
cation or otherwise under the patent rights of Analog Devices, Inc.
PREFACE
Purpose of This Document ............................................................. vii
Intended Audience ......................................................................... vii
Manual Contents .......................................................................... viii
Technical or Customer Support ....................................................... ix
Supported Processors ....................................................................... ix
Product Information ........................................................................ x
MyAnalog.com ........................................................................... x
DSP Product Information .......................................................... xi
Related Documents ................................................................... xi
Online Technical Documentation ............................................. xii
From VisualDSP++ ............................................................. xiii
From Windows Explorer ..................................................... xiii
From the Web ..................................................................... xiii
Printed Manuals ....................................................................... xiv
VisualDSP++ Documentation Set ......................................... xiv
Hardware Manuals ............................................................... xiv
Datasheets ........................................................................... xiv
INTRODUCTION
Product Description ...................................................................... 1-2
VisualDSP++ 3.0 System Requirements .......................................... 1-2
Processor Support .......................................................................... 1-3
Benefits Provided by VisualDSP++ 3.0 ........................................... 1-3
Intended Audience
This publication is primarily intended for DSP programmers who are
upgrading from the previous release of VisualDSP++ and who want an
overview of the changes to VisualDSP++ 3.0.
Manual Contents
This manual consists of:
• Chapter 1, “Introduction”
Describes the differences between Release 3.0 and Release 2.0 soft-
ware as they pertain to code generation tool chain: commands,
switches, operators, directives, pragmas, keywords, macros, and
library functions.
• Email questions to
dsptools.support@analog.com
Supported Processors
The name “ADSP-21xx” refers to two families of Analog Devices 16-bit,
fixed-point digital signal processors. VisualDSP++ 3.0 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
Product Information
You can obtain product information from the Analog Devices website,
from the product installation CD-ROM, or from the printed publications
(manuals).
Analog Devices is online at www.analog.com. Our website provides infor-
mation about a broad range of products—analog integrated circuits,
amplifiers, converters, and digital signal processors.
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.
Related Documents
For information on product related development software, see the follow-
ing publications.
VisualDSP++ 3.0 Assembler and Preprocessor Manual for ADSP-218x and ADSP-219x DSPs
VisualDSP++ 3.0 C/C++ Compiler and Library Manual for ADSP-219x DSPs
VisualDSP++ 3.0 Linker and Utilities Manual for ADSP-218x and ADSP-219x DSPs
File Description
.CHM Help system files and VisualDSP++ tools manuals.
.HTM or Dinkum Abridged C++ library and FlexLM network license manager software doc-
.HTML umentation. Viewing and printing the .HTML files require a browser, such as Inter-
net Explorer 4.0 (or higher).
.PDF VisualDSP++ tools manuals in Portable Documentation Format, one .PDF file for
each manual. Viewing and printing the .PDF files require a PDF reader, such as
Adobe Acrobat Reader 4.0 (or higher).
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 (tool-
bar buttons, menu commands, and windows).
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.
Hardware Manuals
Hardware reference and instruction set reference manuals can be ordered
through the Literature Center or downloaded from the Analog Devices
website. 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 website. 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 website. Datasheets without the suffix can be down-
loaded from the website 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.
Notation Conventions
The following table identifies and describes text conventions used in this
manual.
Additional conventions, which apply only to specific chapters, may appear
throughout this document.
Example Description
Close command Text in bold style indicates the location of an item within the
(File menu) VisualDSP++ environment’s menu system. For example, the Close
command appears on the File menu.
{this | that} Alternative required items in syntax descriptions appear within curly
brackets and separated by vertical bars; read the example as this or
that.
[this | that] Optional items in syntax descriptions appear within brackets and sepa-
rated by vertical bars; read the example as an optional this or that.
Example Description
This chapter describes the product and the requirements for running its
latest revision, VisualDSP++ 3.0. It also lists the supported processors and
some of the benefits provided by this release.
The information is organized as follows.
• “Product Description” on page 1-2
• “VisualDSP++ 3.0 System Requirements” on page 1-2
• “Processor Support” on page 1-3
• “Benefits Provided by VisualDSP++ 3.0” on page 1-3
Product Description
VisualDSP++ 3.0 is Analog Devices project management and development
environment for Digital Signal Processor (DSP) application development.
The environment successfully integrates the graphical user interface and
code generation tool chain, enabling programmers to move easily between
editing, building, debugging, and deployment of final products.
The code generation chain is comprised of the processor-specific
development tools: simulator, assembler, C/C++ compilers and libraries,
linker, loaders, splitter, VisualDSP++ Component Software Engineering
(VCSE), VisualDSP++ Kernel (VDK), and utilities necessary for
developing DSP applications.
The product installation CD-ROM also includes an evaluation suite of
the EZ-KIT Lite™ software, which provides programmers with an easy
method for initial evaluation of a target processor system and allows
application prototyping.
The successor to VisualDSP++ 2.0, this software release incorporates a
number of new features and enhancements, described in “New Features
and Enhancements” on page 2-1.
Processor Support
VisualDSP++ 3.0 supports the following 16-bit, fixed-point processors.
• ADSP-2181, ADSP-2183, ADSP-2184/84L/84N,
ADSP-2185/85L/85M/85N, ADSP-2186/86L/86M/86N,
ADSP-2187L/84L/87N, ADSP-2188L/88N, and
ADSP-2189M/89N
• ADSP-2191, ADSP-2192-12, ADSP-2195 (new), ADSP-2196
(new), ADSP-21990 (new), ADSP-21991 (new), and ADSP-21992
(new)
If an error occurs, the error text, which includes the line number and
name of the file, appears on the Build page of the Output window. The
error text conforms to the syntax described in the section “Error Message
Numbering and Help” on page 2-20. Double-clicking the text opens the
specified file and places the cursor on the line that has the error.
Linear Profiling
A new linear profiling interface is available for the ADSP-219x DSP
simulator only. Emulators continue to use the statistical profiling
interface. A new menu option (New Profile) under Tools and Linear
Profiling opens the Linear Profiling Results window.
Settings in the Profile Window Properties dialog box control which and
how data items are utilized in the profiling interface. To open the
properties dialog box, right-click in the Linear Profiling Results window.
From the Display tab, select the profiling data items to display. The linear
profiling interface enables the simulator to pass additional profiling data,
such as cache hits and misses, which can be displayed in additional
columns.
From the Filter tab, choose one of the following items to profile.
• Entire memory space. The linear and statistical profilers have the
same behavior as in VisualDSP++ 2.0.
• C/C++ functions. Choose functions to profile from a list of
available functions. The profiler discards any collected PC samples
that are not within the selected functions.
• Memory ranges. Specify the start and end addresses of the memory
ranges to profile. The profiler discards any collected program
counter (PC) samples that are not within the selected memory
ranges.
Most of the time, when building debug versions of the code, you profile
without concern for non-debug code. A check box provides the option of
filtering out any PC samples that have no corresponding debug
information. If you put a check mark in the box, the profiler discards any
PC samples that have no debug information.
Statistical Profiling
The Statistical Profiling Results window (emulator only) has been
modified to include a horizontal scroll bar at the bottom of the window.
The scroll bar is useful when the window is not big enough to display both
the histogram and source panes.
The settings for the streams are automatically saved and restored to ensure
you do not have to set up the streams every time you start the IDDE. The
settings are saved on a per-session basis.
Tcl Commands
VisualDSP++ 3.0 has extended Tcl command set (version 8.3) with several
procedures for steaming data into and from the actual or simulated DSP
target. VisualDSP++ introduces the following Tcl commands for stream
management.
Command Description
dspliststream Returns the list of streams. The list consists of the ID of the stream,
source device or a file, destination device or a file.
For more information, see the VisualDSP++ 3.0 User’s Guide and online
Help.
Image Viewer
An IDDE plug-in window allows to display image and video data or DSP
memory stored in a PC image file. Supported file types include .BMP,
.JPEG, .PPM, and .MPEG.
Flash Programmer
The VisualDSP++ Flash Programmer (under Tools and Flash Programmer)
provides a consistent, generic interface to numerous DSPs and flash
memory devices, allowing you to modify a flash device’s memory.
The new utility provides a convenient user interface that simplifies the
process of changing data values on a flash device. You no longer have to
remove the flash memory from the board—use a separate Flash
Programmer and then replace the flash.
For more information, see the VisualDSP++ 3.0 User’s Guide and online
Help.
Editor Enhancements
New features to VisualDSP++ 3.0 editor windows include:
• Right-click menu command that toggles the display of line numbers
• Brace matching based on the position of the text cursor
• Auto-positioning of closing curly brackets for proper alignment
with preceding opening brace
• Right-click command to open header files from the file name in an
#include statement
Simulator
VisualDSP++ 3.0 simulator for ADSP-219x DSPs is a cycle accurate simu-
lator with a six-stage pipeline. The simulator functionality models the
behavior of the following.
• Instruction set
• Processor sequencer
• Memory hierarchy, including the external SRAM
Pipeline Viewer
The Pipeline Viewer (ADSP-219x DSPs only), under View and Debug
Windows, enables you to understand how the processor affects the execu-
tion timing of your program.
The Pipeline Viewer window displays the pipeline stages and
cycle-by-cycle analysis of the instructions passing through the stages. The
window The window also displays informational messages for instructions
indicated with an event icon. These types of messages may appear:
• Stalls detected
• Kills detected
• Multicycle instruction messages
For more information, see the VisualDSP++ 3.0 Getting Started Guide,
VisualDSP++ 3.0 User’s Guide, and online Help.
Assemblers
VisualDSP++ Release 3.0 provides new assembler features:
• “Code Sequence Analysis” on page 2-10
• “C Headers and Structures Import” on page 2-11
• “C Structures Support” on page 2-12
• “Conditional Assembly” on page 2-13
For more information, refer to the VisualDSP++ 3.0 Assembler and
Preprocessor Manual for ADSP-218x and ADSP-219x DSPs and online
Help.
You can avoid a latency condition’s cycle loss by separating the two
instructions with as many instructions as cycles lost.
Multicycle behavior exists when an instruction, sometimes only under
certain circumstances, takes more than one cycle to complete. You cannot
avoid this cycle loss without removing the instruction that causes it. Such
cases (in addition to conditional stalls) are reported when you use the
following switch:
-stallcheck=all
.IMPORT Directive
The .IMPORT directive makes C struct layouts (declared in the imported file)
visible inside an assembly program. The .IMPORT file is a C header file
preprocessed by the C compiler preprocessor.
The .IMPORT directive provides the assembler with the typedef and struct
names as well as the name, sequence, size, and offset of each data member.
This allows referencing the struct data members by name in assembly file,
just as in C. The assembler calculates the offsets within the structure based on
the size and sequence of the data members. Note that the .IMPORT directive
does not allocate space for a variable of the struct type—that requires the
.STRUCT directive.
Search Option
The assembler calls the compiler to process each header file in an .IMPORT
directive. The -flags-compiler -opt1 [-opt2...] switch takes a list of
one or more comma-separated options, which are passed onto the
compiler command line for .IMPORT header compilations. Use this switch
to override the order in which the include directories are searched. The
-flags-compiler options always take precedence over the assembler’s -I
options.
Macros
For each .IMPORT header, the assembler calls the compiler driver with the
appropriate processor option. The compiler sets the machine constants
accordingly to the preprocessor and defines _LANGUAGE_C as 1. The macro
replaces _LANGUAGE_ASM, which is present by default.
C Structures Support
Now the assemblers can call the compilers to process structure definitions
provided by C header files. Release 3.0 includes the following directives,
built-in functions, and macros that support this feature.
For more information about C structures support, refer to the
VisualDSP++ 3.0 Assembler and Preprocessor Manual for ADSP-218x and
ADSP-219x DSPs and online Help.
.STRUCT Directive
The .STRUCT directive allows you to define and initialize high-level data
objects within the assembly file in which the directive appears. The
.STRUCT directive creates a struct variable using a C style typedef, as it
follows from the .IMPORT C header file(s). Structure initialization can be
of the long or short form. The difference is that the long form includes
data member names and is assembler-specific, while the short form does
not include data member names and corresponds to the syntax in C
struct initialization.
Built-in Functions
The assemblers support the offsetof() and sizeof() built-in functions
for passing information obtained from the imported C struct layouts.
The offsetof() builtin is used to calculate the offset of a specified member
from the beginning of its parent data structure. For ADSP-21xx DSPs, the
offsetof() units are in words.
Conditional Assembly
VisualDSP++ 3.0 introduces conditional assembly directives for
evaluation of assembly time constants using relational expressions. The
conditional assembly directives are: .IF, .ELIF, .ELSE, and .ENDIF.
These directives are in addition to the C style preprocessing directives
#if, #elif, #else, and #endif. The expressions may include relational
and logical operators.
The assembler supports nested conditional directives. The outer
conditional result propagates to the inner condition, just as it does in C
preprocessing. These directives are reserved keywords.
Refer to the VisualDSP++ 3.0 Assembler and Preprocessor Manual for
ADSP-218x and ADSP-219x DSPs and online Help for more information.
Pragmas
ADSP-21xx DSP compilers support a number of pragmas. Pragmas are
implementation-specific directives that modify the compiler’s behavior
for:
• Data alignment
• Interrupt or exception handling
• General optimization
• External module linkage
• Stack usage (ADSP-218x DSPs only)
Altregisters Pragma
The altregisters pragma may be used in conjunction with the
interrupt pragma to indicate that the compiler can optimize the saving
and restoring of registers through use of the secondary register sets. Note
the use of the altregisters pragma is not safe when nested interrupts are
enabled.
Linkage Pragmas
The linkage pragmas linkage and weak change how a given global
function or variable is viewed during the linking stage.
The linkage_symbol pragma associates the named symbol with the next
external function declaration. It ensures the identifier is used as the
external reference, overriding the default compiler’s behavior.
The weak_entry pragma causes the compiler to generate the function
definition with weak linkage. It applies to the function declaration or
definition that immediately follows the pragma.
ETSI Support
The ETSI (European Telecommunications Standards Institute) support
for ADSP-218x and ADSP-219x processors is a collection of functions
that provides high-performance implementations for operations
commonly required by DSP applications. These operations provided by
the ETSI library (libetsi.dlb) and compiler built-in functions (defined
in ETSI_fract_arith.h) include support for fractional, or fixed-point,
arithmetic. The results obtained from these operations have well defined
overflow and saturation conditions. The ETSI support operations are
Analog Devices extensions to ANSI C standard.
Refer to the VisualDSP++ 3.0 C/C++ Compiler and Library Manual for
your target DSP for more information.
Linker
Of the new linker features and enhancements, the most notable are:
• “Expert Linker” on page 2-18
• “Data Elimination” on page 2-19
• “New Default LDF Behavior” on page 2-19
For more information, refer to the VisualDSP++ 3.0 Linker and Utilities
Manual for ADSP-218x and ADSP-219x DSPs.
Expert Linker
The Expert Linker provides a GUI-based means of supplying the link
commands currently supplied to the linker in a Linker Description File
(.LDF). The tool also provides graphical and hypertext representations of
text output for cross reference, the linker map, and ELFDUMP.
Expert Linker enables you to visualize the commands in an .LDF file, make
changes by manipulating graphical representations of the .LDF file, and
generate an .LDF file. Any .LDF file that the Expert Linker supports can be
read, modified, and written out to ensure support from both the linker
and the Expert Linker. Key features include:
• Ability to display the memory layout (memory maps of supported
parts) in the Expert Linker window and change the memory
description. Use the Memory Map pane’s right-click menu to access
various commands.
• Ability to drag and drop (add, move) sections and object files.
• Representation of object files after “pre-linking.” A determination
of the sections appears in the link after you eliminate unused
functions and objects.
Data Elimination
The style of assembly code generated by the compiler was modified to
provide the linker with greater scope for eliminating unneeded data and
code. This modification does not affect the efficiency or size of the
generated code.
Documentation
This section describes the changes to online Help and online manuals.
Online Help
New VisualDSP++ online Help features include error message numbering,
a unified index for all manuals in the documentation set, and the ability to
search for keywords across the documentation set.
ar0001 archiver
cc0001 compiler
ea0001 assembler
ld0001 loader
li0001 linker
error Identifies a problem that causes the tool to report a failure. Further
processing of the input might be allowed to continue to enable
additional problems to be reported.
warning Identifies a situation that does not prevent the tool from processing
the input, but may indicate potential problems
Online Manuals
Some manuals in the VisualDSP++ 3.0 documentation set have been
converted to HTML Help and merged to facilitate searches in the online
Help. Each book is still available in PDF format. To access VisualDSP++
online documentation from online Help, click the Start button and
choose Programs, VisualDSP, and VisualDSP++ Help.
The Docs directory of your tools installation contains a complete set of
documentation for Digital Signal Processors that are supported by your
VisualDSP++ development tools suite. The set is comprised of
VisualDSP++ tools manuals, hardware manuals, and data sheets placed in
the appropriate folders:
• Datasheets directory contains one .PDF file for each data sheet.
• Tools Manuals directory contains one .PDF file for each tool
manual.
• Hardware Manuals directory contains one .PDF file for each chapter
in each manual.
VisualDSP++ Kernel
The following VisualDSP++ Kernel (VDK) features have been added in
Release 3.0.
• Inter-thread messaging
• A block-based memory manager
• Dynamic creation of semaphores and device flags
• Counting (taking any value within a specified range) semaphores
• Support for measuring thread stack usage
• Local storage for threads
• Sizeable reductions in the costs of many common API functions and a
significant reduction in interrupt latency
• Kernel page support for the new functionality
You can use VDK messages to:
• Communicate information between threads
• Control access to a shared resource
• Signal the occurrence of an event and communicate information
about the event
• Allow two threads to synchronize
The maximum number of supported messages can be configured
separately for each project, and the messages owned by each thread can be
viewed in the VDK Status window.
The memory pool manager provides support for deterministic and highly
efficient memory allocation for one or more memory pools. Each memory
pool contains memory blocks of a single size, but multiple pools can be
defined, each with a different block size.
Device driver support has been redesigned and device drivers are now
constructed as input/output objects. See the VisualDSP++ 3.0 Kernel
(VDK) User’s Guide for instructions on how to convert device drivers of
the previous release for use in Release 3.0 projects.
Use as default loads the custom settings each time the VDK State History
window is created.
Object Protection
DSP tools now support the encryption and decryption of object files. This
feature enables algorithm providers to distribute objects and libraries
under license protection.
Switch Description
-flags-pp -opt1 [,-opt2...] Passes the specified option or a list of options to the
compiler. Used when compiling .IMPORT C header files.
-Wnumber1 [,number2 ...] Suppresses any report of the specified warning or a list of
warning.
Directives
The following assembly directives are new to Release 3.0 (Table 3-3).
Note that these directives are reserved keywords.
Directive Description
.EXTERN STRUCT References a global symbol that was defined in another file.
Directive Description
Operator Description
offsetof() Calculates the offset of a specified member from the beginning of its
parent data structure. For ADSP-21xx DSPs, units are in words.
Predefined Macros
Predefined macros are defined by the assembler to specify the architecture
and language being processed. The following table lists two new macros
defined by the assembler when it invokes the preprocessor.
Switch Description
-debug-types Supports building a *.h file directly and writing a complete set of
debugging information for the header file.
-no-dir-warnings Disables warnings about include and library switch directories that
do not exist.
Switch Description
-no-dollar New for the ADSP-218x DSP compiler. Stops accepting dollar
signs in symbols.
-path tool directory Updated for the ADSP-219x DSP compiler. Now uses the specified
directory as the location of the driver definition file, in addition to
the assembler, compiler, archiver, or linker.
-proc ADSP-ID Specifies a processor for which the compiler should produce
suitable code.
-val-global Specifies that the names given by <name-list > are present in all
<name-list> globally defined variables.
The compilers of the current release do not support all the command line
switches presented in VisualDSP++ 2.0. The removed switches are listed
in Table 3-7.
Switch Description
Pragmas
Table 3-9 through Table 3-14 list VisualDSP++ 3.0 pragmas for data
alignment, interrupt handling, alternative registers usage, optimization,
linkage, and stack usage.
Pragma Description
align number Applies to the symbol that immediately follows the number
argument. Useful for declaring circular buffer arrays.
Pragma Description
Pragma Description
altregisters Used with the interrupt pragma. Specifies that the secondary
registers can be used for saving and restoring of registers.
Pragma Description
Pragma Description
Pragma Description
Library Functions
The libraries provided with the current release of software have a number
of new and enhanced functions, as described in Table 3-15.
Function Description
Linker Differences
VisualDSP++ 3.0 linker, Linker Description File, and utilities provide the
following changes:
• “Command Line Switches” on page 3-12
• “LDF Operators” on page 3-13
• “Builtin LDF Macros” on page 3-13
• “LDF Commands” on page 3-13
Switch Description
-od fileName Specifies the output directory. Sets the value of the
$COMMAND_LINE_OUTPUT_DIRECTORY macro as 1.
-proc ADSP-ID Specifies a target processor for which the linker should produce
suitable code.
LDF Operators
Table 3-17 lists the new LDF operator for use in memory address
expressions.
ABSOLUTE(expression) The linker returns the value expression. Use this operator to
assign an absolute address to a symbol.
Switch Description
LDF Commands
The following LDF command (Table 3-19) is no longer supported.
Switch Description
Switch Description
-dADSP-2195 Specifies the processor. The new DSP IDs are: ADSP-2195,
-dADSP-2196 ADSP-2196, ADSP-21990, ADSP-21991, and ADSP-21992.
-dADSP-21990
-dADSP-21991
-dADSP-21992
-proc ADSP-ID Preferable way to specify the processor. The valid IDs are: ADSP-2191,
ADSP-2195, ADSP-2196, ADSP-21990, ADSP-21991, and
ADSP-21992.
-readall Creates a non-bootable image and non-boot stream image in the same
output file, together with the boot-loadable image.
-split #[#] Valid only when width is 16. Generates two output files for the 16-bit
wide EMI data bus.
-forcefirstbyte Forces the writing of the first byte of the UART boot stream. Use this
option when the bit rate is high.
-host3bytes HOST boot only, when width is 8. Uses three bytes to represent 24-bit
data. The default is four bytes with one byte of zero padding.
Refer to the VisualDSP++ 3.0 Linker and Utilities Manual for ADSP-218x
and ADSP-219x DSPs and online Help for more information about the
ADSP-219x loader.
Switch Description
Refer to the VisualDSP++ 3.0 Linker and Utilities Manual for ADSP-218x
and ADSP-219x DSPs for further information about the ADSP-2192-12
loader.
File Formats
Table 3-8 lists the newly added file formats.
For more information, see “File Formats” in the VisualDSP++ 3.0 Linker
and Utilities Manual for ADSP-218x and ADSP-219x DSPs.
VDK Differences
The VDK differences between VisualDSP++ 2.0 and VisualDSP++ 3.0 are
as follows.
• Device driver architecture has fundamentally changed. Device
drivers have become part of the I/O interface, and are,
consequently, now class based.
While the underlying changes to device drivers have a minimal
affect on the use of a device driver, the implementation of the device
driver has changed significantly. Therefore, device drivers created
under VisualDSP++ 2.0 are incompatible with the device driver
model in VisualDSP++ 3.0. Additionally, device flags are no longer
associated with an individual device driver, but are instead created
as global objects.
The VisualDSP++ 3.0 Kernel (VDK) User’s Guide contains an
appendix describing how to convert device drivers created under
VisualDSP++ 2.0 for use in projects built with VisualDSP++ 3.0.
• In VisualDSP++ 2.0, all semaphores are binary semaphores created
at boot time. In VisualDSP++ 3.0 all semaphores are counting
semaphores that can be dynamically created.
• VDK state history is displayed within the VisualDSP++
environment if the vdk.cpp file is compiled with debugging
information, even in Release configuration. There is no negative
impact on runtime performance since this source file contains only
data declarations.