Update 8 Release Notes

VisualDSP++® 5.0 Update 8 Release Notes
Revision 2.1
September 29, 2010
Table of Contents
Nomenclature ...................................................................................................................................... 8-3
Release Notes ...................................................................................................................................... 8-3
Installation ........................................................................................................................................... 8-3
Identifying Your VisualDSP++ Version ............................................................................................. 8-3
Installing the Update........................................................................................................................ 8-3
Cloning VisualDSP++ ........................................................................................................................ 8-3
Definitions ............................................................................................................................................ 8-4
TAR – Tools Anomaly Report ........................................................................................................... 8-4
New Silicon Support ............................................................................................................................. 8-5
ADSP-BF50x Processor Series .......................................................................................................... 8-5
ADSP-BF592 Processor ..................................................................................................................... 8-5
ADSP-2147x Processor Series .......................................................................................................... 8-5
ADSP-2148x Processor Series .......................................................................................................... 8-5
New Silicon Revisions....................................................................................................................... 8-6
New Evaluation Board Support ............................................................................................................ 8-7
ADSP-BF506F EZ-KIT Lite .................................................................................................................. 8-7
ADSP-BF526 EZ-Board Rev 1.2 ......................................................................................................... 8-7
ADSP-BF527 EZ-KIT Lite Rev 2.2 ....................................................................................................... 8-7
ADSP-21479 EZ-Board ...................................................................................................................... 8-7
ADSP-21489 EZ-Board ...................................................................................................................... 8-8
Other Examples .................................................................................................................................... 8-9
ACM Example (ADSP-BF506F) .......................................................................................................... 8-9
Audio Loopback Example (ADSP-BF518F)........................................................................................ 8-9
Standard I/O Service Example (ADSP-BF527/548 EZ-KIT Lites) ....................................................... 8-9
Memory Service Example (ADSP-BF548 EZ-KIT Lite) ....................................................................... 8-9
OTP Programmer (ADSP-BF526/527/548 EZ-KIT Lites) ................................................................... 8-9
Boot ROM Code ............................................................................................................................... 8-9
Init Code ......................................................................................................................................... 8-10
Programming for Internal Memory and FLASH on ADSP-BF50x........................................................ 8-11
Project Settings for Internal Memory and FLASH .......................................................................... 8-11
Memory Sections for Internal Memory and FLASH ....................................................................... 8-11
Loading a Program into Internal Memory and FLASH ................................................................... 8-11
Introducing the ADSP-BF592 with Tools Utility ROM ........................................................................ 8-12
Simulator Support .......................................................................................................................... 8-12
Compiler / Assembler / Linker ....................................................................................................... 8-12
ADSP-BF592 System Services and Device Driver Support ............................................................. 8-12
System Services / Device Driver Notes .............................................................................................. 8-13
ADSP-BF506F System Services and Device Driver Support ........................................................... 8-13
ADSP-BF50x PWM Service ............................................................................................................. 8-13
ADSP-BF527 Modifications ............................................................................................................ 8-13
LAN9218 Memory DMA based driver support for ADSP-BF548 Platform..................................... 8-14
VisualDSP++ 5.0 Update 8 Release Notes Rev 2.1
Page 8-1
Memory Manager Service.............................................................................................................. 8-14
Standard I/O Service ...................................................................................................................... 8-15
USB Support (Blackfin and SHARC) ................................................................................................ 8-15
Silicon Anomaly Workarounds ........................................................................................................... 8-16
Silicon Anomaly 05000431 (ADSP-BF51x/52x/54x) ....................................................................... 8-17
Silicon Anomalies 05000456/05000460/05000465 (ADSP-BF522/4/6 rev 0.2) ............................ 8-18
Critical Fixes / Changes ...................................................................................................................... 8-19
Feature Macros .............................................................................................................................. 8-19
TAR 41311: BF54x and BF52x NAND Boot DMA codes incorrect ADSP-BF52x/BF54x) ................ 8-19
TAR 43683: Watchdog Timer Use with the Emulator (ADSP-2148x) ............................................ 8-20
TAR 43781: Behavior of "-w" and "-misra" is inconsistent ........................................................... 8-20
TAR 41677: FFTs with dynamic scaling can overflow ................................................................... 8-20
TAR 41829: defBF532.h: SYSCR masks incorrect ........................................................................... 8-20
TAR 43849: SourceGenerator writes out files with LF endings, not CR/LF................................... 8-21
TAR 43542: Init code example for ADSP-BF506F EZ-KIT Lite has incorrect EZ-Board naming ..... 8-21
TAR 44191 : LDFs generated for ADSP-BF52x -si-revision 0.0 parts causes link error li1271........ 8-21
Opening a prior VisualDSP++ release may cause bad generated CRTs in Update 8 ..................... 8-22
Anomaly Charts .................................................................................................................................. 8-23
Tools Anomalies Addressed ........................................................................................................... 8-23
Known Tools Anomalies ................................................................................................................. 8-25
Software Anomalies Addressed ..................................................................................................... 8-25
VisualDSP++ 5.0 Update 8 Release Notes Rev 2.1
Page 8-2
Nomenclature
In the past, VisualDSP++ updates were labeled by the month and year of their release. In order to
improve clarity, updates are now numbered (e.g., Update 1, Update 2, etc.).
Release Notes
These release notes subsume the release notes for previous updates. Release notes for previous
updates can be found at the end of this document.
Installation
This update can only be installed on a previous VisualDSP++ 5.0 installation. If VisualDSP++ 5.0 is not
installed, please install it first. Installation on a previous update is permitted. If a newer update has
already been installed, please do not install this update. This update is not intended to be installed on
alpha or beta releases. For example, do not install this update on the ADSP-BF518F EZ-KIT Beta
Update. It can be installed on the following official special releases:
 VisualDSP++ 5.0 ADSP-BF506F EZ-KIT
 VisualDSP++ 5.0 ADSP-21479 and ADSP-21489 EZ-Boards
Identifying Your VisualDSP++ Version
The VisualDSP++ release and update number can be found in 2 locations:
1. In the Control Panel, open the Add/Remove Programs applet.
2. In the VisualDSP++ Integrated Development and Debug Environment (IDDE), select Help 
About VisualDSP++.
Installing the Update
Follow the instructions below for installing this update. Please note that since VisualDSP++ supports
having multiple instances installed on a single system. See the Cloning VisualDSP++ section below for
more information.
1. Use the Start Menu to navigate to VisualDSP++ “Maintain this installation”. By default, this is at
Start Menu  All Programs  Analog Devices  VisualDSP++ 5.0.
2. Select “Go to the Analog Devices website” and click Next. This will open a window in your web
browser.
3. Select the appropriate Processor Software Tools Upgrades to match your processor.
4. Select and download the desired update (VisualDSP++ 5.0_Update8.vdu) to your hard drive.
5. Again, use the Start Menu to navigate to VisualDSP++ “Maintain this installation”.
6. Select “Apply a downloaded Update” and click Next.
7. Browse for the downloaded Update file (VisualDSP++ 5.0_Update8.vdu) and click Next.
8. Follow the on-screen prompts to complete installation of this Update.
Cloning VisualDSP++
VisualDSP++ supports cloning of an existing installation. A clone of an installation creates a new
instance of a product from an existing installation, rather than from a CD or web software distribution.
VisualDSP++ 5.0 Update 8 Release Notes Rev 2.1
Page 8-3
The use of clones allows you to maintain multiple versions of VisualDSP++ on the same PC at different
update levels, and provides a risk-free way to "test" new updates or patches.
To clone your existing installation of VisualDSP++:
1. Go to Start->Programs->Analog Devices->VisualDSP++ 5.0 (or equivalent)->Maintain this
Installation
2. Select "Clone this Installation" and click Next.
3. Optionally click Advanced to set the Start menu path.
4. Enter the Clone install path and click Next.
Definitions
This section provides definitions for terminology relating to VisualDSP++ and this document.
TAR – Tools Anomaly Report
Tools Anomaly Report, or TAR, is used for tracking confirmed defect reports in VisualDSP++.
VisualDSP++ 5.0 Update 8 Release Notes Rev 2.1
Page 8-4
New Silicon Support
VisualDSP++ updates often include support for new processors, new silicon revisions for existing
processors and new EZ-KIT Lite®, EZ-Board® and EZ-Extender® evaluation systems. In order to support
these, minor revisions are made to the tool chain and additional system services and device drivers
need to be added. This section describes the new support available in this update.
ADSP-BF50x Processor Series
This release introduces support for the ADSP-BF50x Blackfin® processor series. The following new
processors are supported:
•
•
•
ADSP-BF504 silicon revision 0.0
ADSP-BF504F silicon revision 0.0
ADSP-BF506F silicon revision 0.0
ADSP-BF592 Processor
This release introduces support for the ADSP-BF592 Blackfin processor. The following new processor is
supported:
•
ADSP-BF592 silicon revision 0.1 with Tools Utility ROM
ADSP-2147x Processor Series
This release introduces support for the ADSP-2147x SHARC® processor series. The following new
processors are supported:


ADSP-21478 silicon revision 0.0, 0.1, 0.2
ADSP-21479 silicon revision 0.0, 0.1, 0.2
ADSP-2148x Processor Series
This release introduces support for the ADSP-2148x SHARC processor series. The following new
processors are supported:





ADSP-21483 silicon revision 0.1, 0.2
ADSP-21486 silicon revision 0.1, 0.2
ADSP-21487 silicon revision 0.1, 0.2
ADSP-21488 silicon revision 0.1, 0.2
ADSP-21489 silicon revision 0.1, 0.2
The following part numbers have been reserved for future use:
 ADSP-21471, ADSP-21472, ADSP-21475
 ADSP-21481, ADSP-21482, ADSP-21485
No new TigerSHARC® processors are supported with this release.
VisualDSP++ 5.0 Update 8 Release Notes Rev 2.1
Page 8-5
New Silicon Revisions
The following new silicon revisions are supported with Update 8:



ADSP-BF512/4/6/8 silicon revision 0.2
ADSP-BF542/4/7/8/9 silicon revision 0.4
ADSP-21462/5/7/9 silicon revision 0.1
No new silicon revisions to TigerSHARC processors are supported with Update 8.
VisualDSP++ 5.0 Update 8 Release Notes Rev 2.1
Page 8-6
New Evaluation Board Support
Support has been added for the following new evaluation boards and evaluation board revisions.
ADSP-BF506F EZ-KIT Lite
This release integrates support from the VisualDSP++ 5.0 ADSP-BF506F EZ-KIT release. The following
examples are provided:
Blackfin\Examples\ADSP-BF506F
Blackfin\Examples\ADSP-BF506F
Blackfin\Examples\ADSP-BF506F
Blackfin\Examples\ADSP-BF506F
Blackfin\Examples\ADSP-BF506F
Blackfin\Examples\ADSP-BF506F
Blackfin\Examples\ADSP-BF506F
EZ-KIT
EZ-KIT
EZ-KIT
EZ-KIT
EZ-KIT
EZ-KIT
EZ-KIT
Lite\Background_Telemetry\CDemo
Lite\Drivers\ADC\Sample_ADC_ACM_Control
Lite\Drivers\UART\Autobaud
Lite\Drivers\UART\Echo
Lite\Flash Programmer\BF50x4MBFlash
Lite\Flash Programmer\Serial
Lite\Power_On_Self_Test
ADSP-BF526 EZ-Board Rev 1.2
This release introduces support for the revision 1.2 of the ADSP-BF527 EZ-Board. This revision includes
the new silicon revision 0.2 of the ADSP-BF526 processor. No examples needed updating.
ADSP-BF527 EZ-KIT Lite Rev 2.2
This release integrates support from the VisualDSP++ 5.0 ADSP-BF506F EZ-KIT release. The following
examples are provided:
Blackfin\Examples\ADSP-BF527 EZ-KIT Lite\Drivers\Keypad ADP5520
Blackfin\Examples\ADSP-BF527 EZ-KIT Lite\Drivers\LCD LQ035Q1DH02
Blackfin\Examples\ADSP-BF527 EZ-KIT Lite\Drivers\TouchScreen AD7879-1
Please note that the Power_On_Self_Test should be built under the debug and not the release
configuration.
ADSP-21479 EZ-Board
This release integrates support from the VisualDSP++ 5.0 ADSP-21479 and ADSP-21489 EZ-Boards
release. The following examples are provided:
214xx\Examples\ADSP-21479
214xx\Examples\ADSP-21479
214xx\Examples\ADSP-21479
214xx\Examples\ADSP-21479
214xx\Examples\ADSP-21479
214xx\Examples\ADSP-21479
214xx\Examples\ADSP-21479
214xx\Examples\ADSP-21479
214xx\Examples\ADSP-21479
214xx\Examples\ADSP-21479
214xx\Examples\ADSP-21479
214xx\Examples\ADSP-21479
214xx\Examples\ADSP-21479
214xx\Examples\ADSP-21479
214xx\Examples\ADSP-21479
214xx\Examples\ADSP-21479
214xx\Examples\ADSP-21479
214xx\Examples\ADSP-21479
214xx\Examples\ADSP-21479
214xx\Examples\ADSP-21479
EZ-Board\21479 AD1939 C Block-Based Talkthru 192kHz
EZ-Board\21479 AD1939 C Block-Based Talkthru 48 or 96 kHz
EZ-Board\21479 AD1939 C Sampled-Based Talkthru 192 kHz
EZ-Board\21479 AD1939 C Sampled-Based Talkthru 48 or 96 kHz
EZ-Board\21479 AD1939 I2S C Sampled-Based Talkthru
EZ-Board\256pointFFT
EZ-Board\512pointFFT
EZ-Board\AnalogInDigitalOut
EZ-Board\Background_Telemetry
EZ-Board\Core Timer_C
EZ-Board\Decimation Filter
EZ-Board\Flash Programmer
EZ-Board\Interpolation Filter
EZ-Board\Multichannel Filter AutoIterate
EZ-Board\MultiIteration Mode
EZ-Board\Power_On_Self_Test
EZ-Board\RTC_Seconds_Test
EZ-Board\SingleIteration Mode
EZ-Board\SPDIF to Analog TalkThru with SRC (C)
EZ-Board\SPDIFToAnalogTalkThru(C)
VisualDSP++ 5.0 Update 8 Release Notes Rev 2.1
Page 8-7
214xx\Examples\ADSP-21479 EZ-Board\Talkthrough_IIR_Accelerator
214xx\Examples\ADSP-21479 EZ-Board\UART echo back_C
214xx\Examples\ADSP-21479 EZ-Board\VISA_example
214xx\Examples\SHARC
214xx\Examples\SHARC
214xx\Examples\SHARC
214xx\Examples\SHARC
214xx\Examples\SHARC
214xx\Examples\SHARC
214xx\Examples\SHARC
Audio
Audio
Audio
Audio
Audio
Audio
Audio
EZ-Extender\21479
EZ-Extender\21479
EZ-Extender\21479
EZ-Extender\21479
EZ-Extender\21479
EZ-Extender\21479
EZ-Extender\21479
AD1939 C Block-Based Talkthru 192kHz
AD1939 C Block-Based Talkthru 48 or 96 kHz
AD1939 C Sampled-Based Talkthru 192 kHz
AD1939 C Sampled-Based Talkthru 48 or 96 kHz
AD1939 I2S C Sampled-Based Talkthru
AnalogInDigitalOut
SPDIF to Analog TalkThru with SRC (C)
The following new projects have also been added:
214xx\Examples\USB EZ-EXTENDER\USB_IO\21479_usbio.dpj
214xx\Examples\USB EZ-EXTENDER\USB_Loopback\21479_usbloopback.dpj
214xx\Examples\USB EZ-EXTENDER\USB_Talkthrough\21479_usbtalkthrough.dpj
ADSP-21489 EZ-Board
This release integrates support from the VisualDSP++ 5.0 ADSP-21479 and ADSP-21489 EZ-Boards
release. The following examples are provided:
214xx\Examples\ADSP-21489
214xx\Examples\ADSP-21489
214xx\Examples\ADSP-21489
214xx\Examples\ADSP-21489
214xx\Examples\ADSP-21489
214xx\Examples\ADSP-21489
214xx\Examples\ADSP-21489
214xx\Examples\ADSP-21489
214xx\Examples\ADSP-21489
214xx\Examples\ADSP-21489
214xx\Examples\ADSP-21489
214xx\Examples\ADSP-21489
214xx\Examples\ADSP-21489
214xx\Examples\ADSP-21489
214xx\Examples\ADSP-21489
214xx\Examples\ADSP-21489
214xx\Examples\ADSP-21489
214xx\Examples\ADSP-21489
214xx\Examples\ADSP-21489
214xx\Examples\ADSP-21489
214xx\Examples\ADSP-21489
214xx\Examples\ADSP-21489
214xx\Examples\ADSP-21489
214xx\Examples\SHARC
214xx\Examples\SHARC
214xx\Examples\SHARC
214xx\Examples\SHARC
214xx\Examples\SHARC
214xx\Examples\SHARC
214xx\Examples\SHARC
EZ-Board\21489 AD1939 C Block-Based Talkthru 192kHz
EZ-Board\21489 AD1939 C Block-Based Talkthru 48 or 96 kHz
EZ-Board\21489 AD1939 C Sampled-Based Talkthru 192 kHz
EZ-Board\21489 AD1939 C Sampled-Based Talkthru 48 or 96 kHz
EZ-Board\21489 AD1939 I2S C Sampled-Based Talkthru
EZ-Board\256pointFFT
EZ-Board\512pointFFT
EZ-Board\AnalogInDigitalOut
EZ-Board\Background_Telemetry
EZ-Board\Core Timer_C
EZ-Board\Decimation Filter
EZ-Board\Flash Programmer
EZ-Board\Interpolation Filter
EZ-Board\Multichannel Filter AutoIterate
EZ-Board\MultiIteration Mode
EZ-Board\Power_On_Self_Test
EZ-Board\RTC_Seconds_Test
EZ-Board\SingleIteration Mode
EZ-Board\SPDIF to Analog TalkThru with SRC (C)
EZ-Board\SPDIFToAnalogTalkThru(C)
EZ-Board\Talkthrough_IIR_Accelerator
EZ-Board\UART echo back_C
EZ-Board\VISA_example
Audio
Audio
Audio
Audio
Audio
Audio
Audio
EZ-Extender\21489
EZ-Extender\21489
EZ-Extender\21489
EZ-Extender\21489
EZ-Extender\21489
EZ-Extender\21489
EZ-Extender\21489
AD1939 C Block-Based Talkthru 192kHz
AD1939 C Block-Based Talkthru 48 or 96 kHz
AD1939 C Sampled-Based Talkthru 192 kHz
AD1939 C Sampled-Based Talkthru 48 or 96 kHz
AD1939 I2S C Sampled-Based Talkthru
AnalogInDigitalOut
SPDIF to Analog TalkThru with SRC (C)
The following new projects have also been added:
214xx\Examples\USB EZ-EXTENDER\USB_IO\21489_usbio.dpj
214xx\Examples\USB EZ-EXTENDER\USB_Loopback\21489_usbloopback.dpj
214xx\Examples\USB EZ-EXTENDER\USB_Talkthrough\21489_usbtalkthrough.dpj
VisualDSP++ 5.0 Update 8 Release Notes Rev 2.1
Page 8-8
Other Examples
This section specifies new examples that are not specific to an evaluation board.
ACM Example (ADSP-BF506F)
Sample_ADC_ACM_Control example demonstrates how the ADC on ADSP-BF506F processor can be
operated using the ADC Controller Module (ACM). The example uses a GP Timer as external trigger to
start ACM events. ACM service handles the ADC control signals as per its event configuration settings
and captures ADC samples to a data buffer. This example has been added for the ADSP-BF506F EZ-KIT
Lite:
Blackfin\Examples\ADSP-BF506F EZ-KIT Lite\Drivers\ADC\Sample_ADC_ACM_Control
Audio Loopback Example (ADSP-BF518F)
The following audio loopback example has been added for the ADSP-BF518F EZ-Board:
Blackfin\Examples\ADSP-BF518F EZ-Board\Drivers\AudioCodec\Audio_Loopback
Standard I/O Service Example (ADSP-BF527/548 EZ-KIT Lites)
The following examples have been added to demonstrate use of the new Standard I/O System Service:
Blackfin\Examples\ADSP-BF527 EZ-KIT Lite\Services\stdio\char_echo
Blackfin\Examples\ADSP-BF548 EZ-KIT Lite\Services\stdio\char_echo
Memory Service Example (ADSP-BF548 EZ-KIT Lite)
The following examples have been added to demonstrate use of the new Memory Service:
Blackfin\Examples\ADSP-BF548 EZ-KIT Lite\Services\Mem\CustomAlgorithm
Blackfin\Examples\ADSP-BF548 EZ-KIT Lite\Services\Mem\PredefinedAlgorithm
OTP Programmer (ADSP-BF526/527/548 EZ-KIT Lites)
The following example OTP programmers have been added to VisualDSP++ in this release to support
programming the One Time Programmable memory on the ADSP-BF52x and ADSP-BF54x processor
series.
Blackfin\Examples\OTPProgrammer\ADSP-BF526
Blackfin\Examples\OTPProgrammer\ADSP-BF527
Blackfin\Examples\OTPProgrammer\ADSP-BF548
Boot ROM Code
This section describes changes to the Boot ROM code.
VisualDSP++ 5.0 Update 8 Release Notes Rev 2.1
Page 8-9
New Boot ROM Code is available in Update 8 for the following processors:
 ADSP-BF50x rev 0.0
 ADSP-BF51x rev 0.2
 ADSP-BF523/5/7 rev 0.3
 ADSP-BF54x rev 0.4
 ADSP-BF592 rev 0.1
Init Code
This section describes the changes to the Init Code.
New Init Code is available in Update 8 for the following processors:
 ADSP-BF506F rev 0.0
 ADSP-BF518F rev 0.2
 ADSP-BF527 rev 0.3
 ADSP-BF548 rev 0.4
 ADSP-BF592 rev 0.1
 ADSP-21479
 ADSP-21489
VisualDSP++ 5.0 Update 8 Release Notes Rev 2.1
Page 8-10
Programming for Internal Memory and FLASH on ADSP-BF50x
Configuring your project to use both internal memory stacked parallel FLASH requires a couple of extra
steps. This section will guide the user through the proper steps.
Project Settings for Internal Memory and FLASH
To build a project for Internal Memory and FLASH, the following changes need to be made to
the Project - Project-Options:
1. On the Project property page, change the Target – Type to Loader file.
2. On the Load-Splitter property page, select Enable ROM Splitter, set the Format to Hex
and set the Mask address to 21.
Memory Sections for Internal Memory and FLASH
Unlike other Blackfin processors the ADSP-BF50x processor series does not have support for
External memory. The ADSP-BF504F and ADSP-BF506F processors do have stacked parallel
FLASH memory available and support for this is integrated into the VisualDSP++ tools in Update
8.
The default and generated LDFs will map code and constant data inputs that cannot be fit into
L1 memory to FLASH memory where possible by default. They avoid placing functions that
require automatic breakpoints since software breakpoints do not work in FLASH memory. The
default LDFs also provide support for input sections that can be used to map code and data
explicitly:
#pragma section("L1_code")
#pragma section("L1_data")
internal SRAM
// Place code in L1 internal SRAM
// Place data, especially r/w data in L1
#pragma section("FLASH_code") // Place code in L3 that is large and/or does
not need debugging
#pragma section("FLASH_data") // Place r/o data in L3
Loading a Program into Internal Memory and FLASH
Loading to Internal Memory and FLASH now takes place automatically. The FLASH Programmer
is loaded into Internal Memory and used to program the FLASH. Then program and data are
loaded into Internal Memory.
VisualDSP++ 5.0 Update 8 Release Notes Rev 2.1
Page 8-11
Introducing the ADSP-BF592 with Tools Utility ROM
The ADSP-BF592 is the first Analog Devices DSP to include a ROM with run time libraries. The ROM
helps reduce the application footprint for this processor. Applications that use the functions available
in the ROM are linked to reference the ROM code thus reducing the size of the application.
Simulator Support
VisualDSP++ 5.0 Update 8 provides simulator support for the ROM. The ADSP-BF592 Single Processor
Simulator will load the ROM image into memory prior to loading the application on a File - Load
Program. The entry points and contents of the Tools Utility ROM will be displayed in the disassembly
window and breakpoints can be set on the ROM code.
Compiler / Assembler / Linker
VisualDSP++ 5.0 Update 8 automatically links against the ROM content. For more information on how
this works, please see the associated FAQ: http://ez.analog.com/docs/DOC-1594.
ADSP-BF592 System Services and Device Driver Support
The following System Services and Device Driver support are provided for the ADSP-BF592:
Device Drivers:
•
SPI
•
SPORT
•
TWI
•
PPI
•
UART
System Services:
•
DMA
•
Interrupt
•
Power
•
Timer
•
Flag
•
Ports
VisualDSP++ 5.0 Update 8 Release Notes Rev 2.1
Page 8-12
System Services / Device Driver Notes
ADSP-BF506F System Services and Device Driver Support
The following System Services and Device Driver support are provided for this release:
Device Drivers:
•
SPI
•
SPORT
•
TWI
•
PPI
•
RSI (SDH)
•
UART
•
Counter
•
Internal ADC (adi_bf506fadc1)
System Services:
•
DMA
•
DCB
•
Interrupt
•
Power
•
PWM
•
Timer
•
Flag
•
Ports
•
Semaphore
•
ACM (ADC Controller Module)
ADSP-BF50x PWM Service
Because the ADSP-BF50x has two identical PWMs, the SSL PWM Service has been modified slightly to
accommodate the two PWMs.
Special instructions for using the new PWM service can be found here:
Blackfin\docs\services\PWM_Service_ADSP-BF50x.pdf
ADSP-BF527 Modifications
This VisualDSP++ release contains new and modified device drivers to match the hardware changes
made for Revision 2.2 of the ADSP-BF527 EZ-KIT Lite. The new drivers support use of the keypad
scanning feature of the ADP5520 multi-function controller, and the AD7879-1 touch screen
controller. The modified driver controls the Sharp LQ035Q1DH02 LCD display connected via the EZKIT’s CPLD.
The header files for these drivers are:
Blackfin\include\drivers\keypad\adi_adp5520.h
VisualDSP++ 5.0 Update 8 Release Notes Rev 2.1
Page 8-13
Blackfin\include\drivers\touchscreen\adi_ad7879_1.h
Blackfin\include\drivers\lcd\sharp\adi_lq035q1dh02.h
and their implementation files are:
Blackfin\lib\src\drivers\keypad\adi_adp5520.c
Blackfin\lib\src\drivers\touchscreen\adi_ad7879_1.c
Blackfin\lib\src\drivers\lcd\sharp\adi_lq035q1dh02.c
New or updated driver documentation is to be found in:
Blackfin\doc\drivers\keypad\adi_adp5520.pdf
Blackfin\doc\drivers\Touchscreen\adi_ad7879.pdf
Blackfin\doc\drivers\lcd\sharp\adi_lq035q1dh02.pdf
Note that the LCD driver currently only supports using the CPLD/LCD in RGB888 data mode (24 bits per
pixel).
Example projects using the new and modified drivers are supplied in the following folders:
Blackfin\Examples\ADSP-BF527 EZ-KIT Lite\Drivers\Keypad ADP5520\
Blackfin\Examples\ADSP-BF527 EZ-KIT Lite\Drivers\TouchScreen AD7879-1\
Blackfin\Examples\ADSP-BF527 EZ-KIT Lite\Drivers\LCD LQ035Q1DH02\
Note that these three examples are for Revision 2.2 (and later) of the ADSP-BF527 EZ-KIT Lite only and
that the projects in the LCD and touchscreen-keypad folders are for revisions prior to 2.2.
In addition, the example project in the following directory is only for revisions prior to 2.2:
Blackfin\Examples\Landscape LCD EZ-EXTENDER\LCD_ColorBarDisplay\ADSP-BF527
LAN9218 Memory DMA based driver support for ADSP-BF548 Platform



Memory DMA based LAN9218 driver has been added. This is a separate driver from that of
programmed I/O variant. Applications that intend to use memory DMA driver has to link with
liblan9218bf548_dma.dlb.
By default this driver uses MDMA_STREAM2 for both transmit and receive operations.
MDMA based driver operates asynchronously and reduces the processor loading considerably.
An application that used to take 90% of processor time now takes only 20%.
Memory Manager Service
The memory manager allows user applications and other services to dynamically allocate memory from
application specific memory pools using various allocation algorithms. The currently released
algorithms are fixed-block size, binary buddy, circular queue, and user-customizable algorithms. The
flexibility in choosing the algorithm helps the user optimize their system by providing him with the
choice of allocation speed vs. memory overhead.
For more details, see the System Services User's Manual.
VisualDSP++ 5.0 Update 8 Release Notes Rev 2.1
Page 8-14
Standard I/O Service
The Standard I/O service provides an easy way to redirect the regular C streams to a physical output.
Currently the UART output is supported. More devices/peripherals may be added in the future. The
streams that can be redirected are the stdout, the stderr, and stdin. Once the streams are redirected
using a simple API, the application can simply continue using the regular stdio.h APIs (printf, scanf, ...);
the service initializes the physical device and intercepts stdio accesses to forward them to the selected
device.
By default, standard I/O is directed to the console via the JTAG which requires halting the processor.
Redirecting the I/O to the UART could provide a better run time performance while debugging code.
For more details, see the System Services User's Manual.
USB Support (Blackfin and SHARC)
Due to popular demand, 64-bit Windows drivers for bulk transfers are now included. This has been
tested on 64-bit Windows 7, Windows Vista and Windows XP.
Also, support for USB has been added for the ADSP-21479 and ADSP-21489 EZ-Boards.
VisualDSP++ 5.0 Update 8 Release Notes Rev 2.1
Page 8-15
Silicon Anomaly Workarounds
Anomaly workaround information is available in the online help: Select Help  Contents  Graphical
Environment  Silicon Anomaly Support  Silicon Anomalies Tools Support and then click the
appropriate processor series.
Silicon Errata
Parts
05000477: TESTSET Instruction cannot
Be Interrupted.
All Blackfin
parts and
revisions.
ADSP-21160
02000069: Incorrect Popping of stacks
possible when exiting IRQx/Timer
Interrupts with (DB) modifiers.
04000068: Incorrect Popping of stacks
possible when exiting IRQx/Timer
Interrupts with (DB) modifiers.
06000020: Indirect jumps or calls
followed by Long Word accesses using
PM bus (or invalid instruction) can
vector to an unknown location.
06000028: Incorrect Popping of stacks
possible when exiting IRQx/Timer
Interrupts with (DB) modifiers.
07000022: External FLAG-based
conditional instructions involving DAG
register post-modify operations must
not be followed immediately by an
instruction that uses the same index
register as the register might not be
updated with the result of the modify.
08000028: External FLAG-based
conditional instructions involving DAG
register post-modify operations must
not be followed immediately by an
instruction that uses the same index
register as the register might not be
updated with the result of the modify.
09000023: Writes to LCNTR, CURLCNTR
and LADDR from Internal Memory may
fail if there is a DMA block conflict.
15000005: Writes to LCNTR, CURLCNTR
and LADDR from Internal Memory may
fail if there is a DMA block conflict.
15000010: Incorrect value when the
results of Enhanced Modify/BITREV
Instruction are used in the very next
Instruction.
15000012: External FLAG-based
conditional instructions involving DAG
register post-modify operations must
not be followed immediately by an
Workaround Support
Added
A compiler workaround for
the testset builtin was
added.
A compiler pragma and
assembler detection
support was added.
A compiler pragma and
assembler detection
support was added.
Default LDF changes
automatically enabled for
affected parts.
Further information
A compiler pragma and
assembler detection
support was added.
Assembler detection
added, automatically
enabled for affected parts.
See System\ArchDef\SHARC2126X-anomaly.xml
ADSP-21367 /
21368 / 21369
Assembler detection
added, automatically
enabled for affected parts.
See System\ArchDef\SHARC2136X-LX3-anomaly.xml
ADSP-2137x
Compiler workaround
added and VDK changes.
See System\ArchDef\SHARC2137X-anomaly.xml
ADSP-214xx
Compiler workaround
added and VDK changes.
See System\ArchDef\SHARC2146X-anomaly.xml
ADSP-214xx
Assembler detect option
enabled by default.
See System\ArchDef\SHARC2146X-anomaly.xml
ADSP-214xx
Assembler detection
added, automatically
enabled for affected parts.
See System\ArchDef\SHARC2146X-anomaly.xml
ADSP-21161
ADSP-2126x
ADSP-2126x
ADSP-21362 /
21363 / 21364 /
21365 / 21366
VisualDSP++ 5.0 Update 8 Release Notes Rev 2.1
System\ArchDef\BLACKFINEDN-anomaly.xml
See System\ArchDef\SHARC21160-anomaly.xml
See System\ArchDef\SHARC21161-anomaly.xml
See System\ArchDef\SHARC2126X-anomaly.xml
See System\ArchDef\SHARC2136X-anomaly.xml
Page 8-16
instruction that uses the same index
register as the register might not be
updated with the result of the modify.
15000016: When specific PM accesses
which conflict with another core/DMA
access, either the PM instruction or
some instructions which follow this
instruction may get corrupted.
ADSP-214xx
Compiler workarounds and
assembler detection
support added, both
automatically enabled for
affected parts. Also there
are various runtime
libraries workarounds.
See System\ArchDef\SHARC2146X-anomaly.xml
Silicon Anomaly 05000431 (ADSP-BF51x/52x/54x)
“Incorrect Use of Stack in Lockbox Firmware During Authentication”
To use Lockbox and the Device Driver/System Services Libraries (DD/SS) distributed with VisualDSP++
Update 8, the DD/SS libraries need to be rebuilt from source as follows:
1. In the file
$VDSP/Blackfin/lib/src/services/int/adi_int_module.h
(where $VDSP represents the VisualDSP++ installation path) add the instruction
SP += -60;
immediately after the __STARTFUNC(Name) entry point for both
ADI_INT_ISR_FUNCTION and ADI_INT_EXC_FUNCTION.
#define ADI_INT_ISR_FUNCTION(Name,IVG,Nested) \
__STARTFUNC(Name) \
SP += -60; \
// <-- ADD THIS INSTRUCTION
[--SP] = R0; \
[--SP] = P1; \
#define ADI_INT_EXC_FUNCTION(Name,IVG,Nested) \
__STARTFUNC(Name) \
SP += -60; \
// <-- ADD THIS INSTRUCTION
[--SP] = R0; \
[--SP] = P1; \
2. Also in the file $VDSP/Blackfin/lib/src/services/int/adi_int_module.h the
complementary stack modification must be made to the end of the handlers. The
SP += 60;
instruction must be inserted before the RTI in ADI_INT_ISR_EPILOG and before the RTX
in ADI_INT_EXC_EPILOG. For example:
VisualDSP++ 5.0 Update 8 Release Notes Rev 2.1
Page 8-17
#define ADI_INT_EXC_EPILOG(Nested) \
unlink;\
SP += 12;\
.
.
.
SP += 60; \
RTX;\
NOP;\
NOP;\
NOP;
// <-- ADD THIS INSTRUCTION
3. Rebuild the DD/SS library with these changes and use them instead of the prebuilt libraries
distributed within VisualDSP++. For more information, please contact
processor.tools.support@analog.com.
Silicon Anomalies 05000456/05000460/05000465 (ADSP-BF522/4/6 rev 0.2)
Due to silicon anomalies 05000456, 05000460 and 05000465 on the ADSP-BF52x/BF54x processor
series, the default Rx DMA MODE is 0. These silicon anomalies have been fixed in ADSPBF522/524/526 revision 0.2. For optimal performance for the ADSP-BF522/524/526 rev 0.2, the user
can set the Rx DMA MODE to 1. The following code snippet shows how to enable DMA MODE 1 at the
application level.
/* Set Driver's DMA operational mode */
{
ADI_USB_HDRC_DMA_CONFIG DmaConfig;
DmaConfig.DmaChannel = ADI_USB_HDRC_RX_CHANNEL;
DmaConfig.DmaMode = DMA_MODE_1; /* or DMA_MODE_0 */
Result = adi_dev_Control( PeripheralDevHandle, ADI_USB_CMD_SET_DMA_MODE,
(void*)&DmaConfig);
}
VisualDSP++ 5.0 Update 8 Release Notes Rev 2.1
Page 8-18
Critical Fixes / Changes
This section highlights significant changes due to software anomaly fixes or functional changes.
Feature Macros
The following macros are automatically predefined by the assembler, compiler and linker:
New macro
Description
__ADSPBF50x__
All ADSP-BF50x processors
__ADSPBF506F_FAMILY__
The ADSP-BF504/4F/6F processor series
__ADSPBF504__
ADSP-BF504
__ADSPBF504F__
ADSP-BF504F
__ADSPBF506F__
ADSP-BF506F
New macro
__2147x__
__ADSP21478__
__ADSP21479__
Description
All ADSP-2147x processors
ADSP-21478
ADSP-21479
New macro
__2148x__
__ADSP21483__
__ADSP21486__
__ADSP21487__
__ADSP21488__
__ADSP21489__
Description
All ADSP-2148x processors
ADSP-21483
ADSP-21486
ADSP-21487
ADSP-21488
ADSP-21489
TAR 41311: BF54x and BF52x NAND Boot DMA codes incorrect ADSP-BF52x/BF54x)
Prior to VisualDSP++ 5.0 Update 8, the Blackfin loader wrote incorrect DMA codes for NAND boot to
the headers. The NAND boot DMA codes are fixed in VisualDSP++ 5.0 Update 8. There is no longer a
need to have the following additional options in your projects to get a compliant boot stream:
For the ADSP-BF54x processors the workaround is to add the following switches to the additional
options:
-width 16 -dmawidth 32
For the ADSP-BF52x processors the workaround is to add the following switches to the additional
options:
-width 16 -dmawidth 16
VisualDSP++ 5.0 Update 8 Release Notes Rev 2.1
Page 8-19
TAR 43683: Watchdog Timer Use with the Emulator (ADSP-2148x)
The emulator does not automatically disable the Watchdog Timer upon hitting a breakpoint. This
could cause an exception when single-stepping or resuming. The user should disable the Watchdog
Timer before debugging their code.
TAR 43781: Behavior of "-w" and "-misra" is inconsistent
Prior to VisualDSP++ 5.0 Update 8 the compilers various MISRA-C options didn't always conflict with
other options that are incompatible when building with MISRA-C checking enabled. For example
building with -w (disable warnings) switch should cause an error but prior to Update 8 it didn't if it was
used before the options to enable MISRA-C on the command-line.
This means that it is possible that some project will hit this error when built with Update 8 that didn't
previously. If that happens, the correct action is to remove the conflicting options from the build
options. An example of the error that might be seen is:
cc3150: {D} error: Option -misra conflicts with option -w
The switches that conflict with MISRA-C are:









-w
-Wsuppress
-Wwarn
-c++
-enum-is-int
-implicit-pointers
-warn-protos
-decls-weak (Blackfin only option)
-alttok
TAR 41677: FFTs with dynamic scaling can overflow
The FFT functions cfft_fr16, ifft_fr16 and rfft_fr16 were modified to ensure that suitably conditioned
input data will not cause an overflow when dynamic scaling is selected. The functions now use a
threshold of 0.25 (instead of 0.5 previously) when deciding whether to apply scaling. This may cause
the functions to apply scaling more often than previously done. However, any additional scaling
performed by the FFT functions will be reflected by a corresponding increase in the value of the block
exponent that they return.
TAR 41829: defBF532.h: SYSCR masks incorrect
The macros definitions for BMODE_FLASH, BMODE_SPIHOST and BMODE_SPIMEM in
Blackfin/include/defBF532.h have been modified because they were incorrect. The original
(incorrect) macro definitions were:
define BMODE_FLASH 0x0001 /* Use Boot ROM to load from 8-bit or 16-bit flash */
define BMODE_SPIHOST 0x0002 /* Boot from SPI0 host (slave mode) */
define BMODE_SPIMEM 0x0003 /* Boot from serial SPI memory */
VisualDSP++ 5.0 Update 8 Release Notes Rev 2.1
Page 8-20
These have been changed to:
define BMODE_FLASH 0x0002 /* Use Boot ROM to load from 8-bit or 16-bit flash */
define BMODE_SPIHOST 0x0004 /* Boot from SPI0 host (slave mode) */
define BMODE_SPIMEM 0x0006 /* Boot from serial SPI memory */
User code which relied on the original (incorrect) macro definitions will need to be modified since
these macro definition changes may change the behavior of their program.
TAR 43849: SourceGenerator writes out files with LF endings, not CR/LF
The Startup Code/LDF Source Generator writes out generated source files with LF (Line Feed) endings,
however any modifications made to a generated source file in the IDDE Editor are saved with CR
(Carriage Return)/LF endings.
This may cause issues for other editors or for certain source code management systems.
The Startup Code/LDF Source Generator now ensures that all generated source files have CR/LF line
endings.
TAR 43542: Init code example for ADSP-BF506F EZ-KIT Lite has incorrect EZ-Board naming
There were name changes for the ADSP-BF506F EZ-KIT Lite for TAR 43542. Any project which
references the previous ADSP-BF506F initialization file on the Project -> Load -> Options page -or- via
the -init option in a makefile needs to update to the new DXE name.
The original file names were:
Blackfin\ldr\ezkitBF506f_initcode_ROM-V00.dxe
Blackfin\ldr\init_code\asm\ADSP-BF506F EZ-KIT Lite\ezkitBF506f_initcode.asm
Blackfin\ldr\init_code\asm\ADSP-BF506F EZ-KIT Lite\ezkitBF506f_initcode.dpj
Blackfin\ldr\init_code\asm\ADSP-BF506F EZ-KIT Lite\ezkitBF506f_initcode.h
Blackfin\ldr\init_code\asm\ADSP-BF506F EZ-KIT Lite\ezkitBF506f_initcode.ldf
Blackfin\ldr\init_code\c\ADSP-BF506F EZ-KIT Lite\ezkitBF506f_initcode.c
Blackfin\ldr\init_code\c\ADSP-BF506F EZ-KIT Lite\ezkitBF506f_initcode.h
Blackfin\ldr\init_code\c\ADSP-BF506F EZ-KIT Lite\ezkitBF506f_initcode.ldf
Blackfin\ldr\init_code\c\ADSP-BF506F EZ-KIT Lite\ezkitBF506f_initcode_ROM-V00.dpj
The new file names are:
Blackfin\ldr\ezboardBF506f_initcode_ROM-V00.dxe
Blackfin\ldr\init_code\asm\ADSP-BF506F EZ-Board\ezboardBF506f_initcode.asm
Blackfin\ldr\init_code\asm\ADSP-BF506F EZ-Board\ezboardBF506f_initcode.dpj
Blackfin\ldr\init_code\asm\ADSP-BF506F EZ-Board\ezboardBF506f_initcode.h
Blackfin\ldr\init_code\asm\ADSP-BF506F EZ-Board\ezboardBF506f_initcode.ldf
Blackfin\ldr\init_code\c\ADSP-BF506F EZ-Board\ezboardBF506f_initcode.c
Blackfin\ldr\init_code\c\ADSP-BF506F EZ-Board\ezboardBF506f_initcode.h
Blackfin\ldr\init_code\c\ADSP-BF506F EZ-Board\ezboardBF506f_initcode.ldf
Blackfin\ldr\init_code\c\ADSP-BF506F EZ-Board\ezboardBF506f_initcode_ROM-V00.dpj
TAR 44191 : LDFs generated for ADSP-BF52x -si-revision 0.0 parts causes link error li1271
If you create a project with a generated LDF for any of the ADSP-BF52x parts and revision 0.0 you will
get a linker error when building because there are two reserve commands in the same section.
VisualDSP++ 5.0 Update 8 Release Notes Rev 2.1
Page 8-21
The error issue looks like the following:
[Error li1271] ".\LDFGen_TAR.ldf":252 Due to insufficient space or conflicts with
other placement requirements in processor 'p0', command 'RESERVE( ___bootLoader=
0xFF807FEF, ___bootLoaderLength= 0147FE58, 1 )' has failed
Total of 0x11 word(s) were not allocated.
For more details, see 'linker_log.xml' in the output directory.
To avoid this issue, modify the LDF template code for your part by adding the two lines indicated by a
"+" below (don't include the "+" though). The files to modify are installed into folder
"System\SystemBuilder\CodeGenerators\Startup Code Wizard\LDFGen", so for example to fix
this issue for BF527, modify file "System\SystemBuilder\CodeGenerators\Startup Code
Wizard\LDFGen\ADSP-BF527-LDF.XML" file.
<workaround_for_rev revisions="0.0">
+ <if_dataa_cache value="false" enabled="true">
<reserve_symbol name="___bootLoader=0xFF807FEF"
length_symbol="___bootLoaderLength" min_size="0x11"/>
+ </if_dataa_cache>
</workaround_for_rev>
Take care with this modification and perhaps save the original file first so that the change can be
reverted if needed.
Opening a prior VisualDSP++ release may cause bad generated CRTs in Update 8
Running multiple versions of VisualDSP++ at the same time can cause undefined behavior as DLLs for
the most recently opened VisualDSP++ IDDE are used rather than those for each separate version.
One instance of this issue can be seen is you create a new project with a generated CRT in Update 8 if
an earlier version of VisualDSP++ has been opened since opening Update 8. This issue causes a bad
CRT to be created that will fail to build.
Avoid this issue by only running one version of VisualDSP++ at a time.
VisualDSP++ 5.0 Update 8 Release Notes Rev 2.1
Page 8-22
Anomaly Charts
Tools Anomalies Addressed
The following table is a list of tools anomalies addressed in VisualDSP++ 5.0 Update 8 for which details
can be found on the public tools anomaly website. Other tools anomalies have also been fixed in the
Update.
Details can be found on the Tools Anomaly Web page. The URL is:
http://www.analog.com/processors/tools/anomalies
Processor
Family
All
Tools
Anomaly
Report #
Tool
Description
41867
Compiler
subscript out of range warning that should be a MISRA violation
43061
Compiler
MISRA Rule 2.1 does not always indicate the correct line containing the
error
43428
Compiler
using section or segment keyword to place static C++ class members
doesn't work
43649
Compiler
>>= operator performs logical shifts when an arithmetic shift is
expected
41866
Run Time Libraries
array bounds check for rule 21.1 does not fault negative index
43849
Source Generator
SourceGenerator writes out files with LF endings, but any modifications
made in the IDDE are saved with CR/LF.
43035
VDK
VDK_kDoNotWait and VDK_kNoTimeoutError in C are constant
variables instead of macros
Blackfin
42049
Compiler
05000283 workaround to avoid killed MMR write is not implemented
Blackfin
43044
Compiler
struct with mixed bitfields/chars not initialized properly
Blackfin
43084
Compiler
compiler internal error () building compiler that uses compilers testset
builtin with -O for BF561
Blackfin
43359
Compiler
Bad "power of two inputs minus one" modulus results when optimizing
for speed
Blackfin
43350
Emulator
IDDE crash with program >8 MB and "Verify all writes to target
memory" selected
Blackfin
42057
Examples
SST25WF040 flash drivers only support 256 KB instead of 512 KB
Blackfin
43020
Examples
Flash program reports error when burning LDR file into 537
Blackfin
43118
Examples
BF527 Flash Programmer does not program last value (intermittent)
Blackfin
41725
IDDE
Plot window crash when title is greater than 63 characters
Blackfin
43258
IDDE
Writing HEX32 memory mapped stream only puts 16 bits into the
stream data file
Blackfin
41966
LDF
MEM_ARGV is not defined in BF50x default LDFs when caching is on
Blackfin
43419
LDF
The default LDFs for BF538 are only configured for 32 MB SDRAM when
64 MB is on EZ-Kit
Blackfin
41996
License Server
BF518 EZ-KIT license doesn't work
All
All
All
All
All
All
VisualDSP++ 5.0 Update 8 Release Notes Rev 2.1
Page 8-23
Blackfin
41259
Run Time Libraries
USE_L2_STACK and caching are incompatible on ADSP-BF561
Blackfin
41677
Run Time Libraries
FFTs with dynamic scaling can overflow
Blackfin
41732
Run Time Libraries
ctype functions return wrong type and aren't MISRA-compliant
Blackfin
41829
Run Time Libraries
defBF532.h: SYSCR masks wrong
Blackfin
41989
Run Time Libraries
some long long values are not rounded correctly to float
Blackfin
42023
Run Time Libraries
unsigned long long values may not be rounded correctly to float
Blackfin
42052
Run Time Libraries
Function rms_fr16 can fail for sample length greater than 256
Blackfin
42055
Run Time Libraries
Use of lclip() results in a failure to link
Blackfin
41796
Simulator
BF5[0124]x meminit runtime loops indefinitely in zero_dma
Blackfin
44030
Simulator
ADSP-BF547 Simulator PLL wakeup interrupt not working
Blackfin
37984
Source Generator
Same name Project uses old Project's Generated source files
Blackfin
41669
Source Generator
___cplb_ctrl needs to be mapped to a locked CPLB
Blackfin
41984
Source Generator
Generated LDFs lacking workaround for 05-00-0310 for BF52x
Blackfin
43032
Source Generator
li1040 linker error for out of memory in L1_data_b when using a
generated LDF with 'Partition external memory' set to 'custom'
Blackfin
43041
Source Generator
Core fault before entering main when cache is enabled in Write Back
mode and System Stack in L2 or L3
Blackfin
43096
Source Generator
typo introduced when ensuring that ctor, ctorl, gdt, gdtl are only
mapped once.
Blackfin
43445
VDK
ADSP-BF54x VDK LDF causes a linker error when USE_L2_STACK is
defined
SHARC
41058
Assembler
Suppressing ea2519 causes assembly driver to crash
SHARC
41448
Compiler
compiler generated rti(db) may hit BR glitch anomaly
SHARC
41644
Compiler
compiler aborts with -O -workaround swfa
SHARC
41767
Compiler
Compiler generates code that can trigger 09000023/15000005
SHARC
41780
Emulator
21469 JTAG scan failure if open Link port register window
SHARC
41902
Emulator
register-reset-definitions for ADSP-21161 don't work with EZ-Kit
SHARC
35153
Examples
The flashed code on the EZ-kit uses the old kernel file.
SHARC
41985
Examples
21371 POST example failing SDRAM test.
SHARC
42003
Examples
Issues with 21369 EZ-Kit and USB extender running USB test
SHARC
40410
Run Time Libraries
Functions which use 40-bit arithmetic are not interrupt safe.
SHARC
41576
Run Time Libraries
Some library functions may still use dual-data move instructions
SHARC
42036
Run Time Libraries
The bsearch function may read past the end of array
SHARC
43112
Run Time Libraries
libraries don't ensure heap is aligned correctly for SIMD
SHARC
43194
Run Time Libraries
strpbrk returns pointer when s1 is empty string
SHARC
43196
Run Time Libraries
"C" locale values incorrect
SHARC
43525
Run Time Libraries
rframe instruction is used in some library routines
SHARC
41807
Simulator
SIMD operations on external memory data fail
SHARC
41834
Simulator
Simulator register differences in update 7
VisualDSP++ 5.0 Update 8 Release Notes Rev 2.1
Page 8-24
SHARC
43576
Simulator
Short Word Memory window does not display external address range
SHARC
44132
Simulator
A Memory two column hexadecimal data window during a 21479
Simulator session it doesn't display the both address values.
SHARC
42050
VDK
VDK LDFs for 2137x link in 36x versions of libcpp
SHARC
41860
XML Files
Anomaly detection for anomaly 15000005 is not enabled
TigerSHARC
43068
Run Time Libraries
comments in sysreg.h incorrectly state that link control and status
registers are quadable and/or pairable
Known Tools Anomalies
Details can be found on the Tools Anomaly Web page. The URL is:
http://www.analog.com/processors/tools/anomalies
Software Anomalies Addressed
The following table is a list of software anomalies addressed in VisualDSP++ 5.0 Update 8. In the
future, these details will also be searchable on the public tools anomaly website. Other tools anomalies
have also been fixed in the Update.
Processor
Family
Software
Anomaly
Report #
Tool
Description
All
50065
USB Software and Stack
Error in usb mass storage read capacity return value for
RAM disk
Blackfin
40914
File System Service
Add API to File System to report volume usage stats
Blackfin
41285
File System Service
MAC system files get overwritten by FAT driver
Blackfin
42030
File System Service
FSS does not return error when attempt to write when
media full
Blackfin
42042
File System Service
SDH PID default configuration table incorrect for ADSPBF51x
Blackfin
42062
LwIP Stack for Blackfin
missing pop critical in case of error with
sys_mbox_trypost
Blackfin
42059
Generic System Services Library for
Blackfin
Incompatible with uC/OS-II version 2.86
Blackfin
38098
USB Software and Stack
USB driver should support Windows 64-bit operating
systems
Blackfin
42008
USB Software and Stack
PC crashes if cable is unplugged/plugged during
playback
Blackfin
50004
USB Software and Stack
bf518 Mass_Storage_app readme errors
Blackfin
50038
USB Software and Stack
USB Mass Storage Example fails to export RAM disk on
successive unplug-plug events
SHARC
50040
USB Software and Stack
SHARC USB EZ-Extender driver won't load in 64 bit OS
VisualDSP++ 5.0 Update 8 Release Notes Rev 2.1
Page 8-25
VisualDSP++® 5.0 Update 7 Release Notes
Revision 1.0
November 4, 2009
Table of Contents
Nomenclature ...................................................................................................................................... 7-3
Release Notes ...................................................................................................................................... 7-3
Installation ........................................................................................................................................... 7-3
Identifying Your VisualDSP++ Version ............................................................................................. 7-3
Installing the Update........................................................................................................................ 7-3
Cloning VisualDSP++ ........................................................................................................................ 7-3
Definitions ............................................................................................................................................ 7-4
TAR – Tools Anomaly Report ........................................................................................................... 7-4
Supported Operating Systems ............................................................................................................. 7-4
Windows Vista SP2........................................................................................................................... 7-4
Windows 7 ....................................................................................................................................... 7-4
New Hardware Support ....................................................................................................................... 7-5
New Processors and Processor Revision Support............................................................................ 7-5
Processor Revision Deprecation ...................................................................................................... 7-5
Boot ROM Code ................................................................................................................................... 7-6
Init Code ............................................................................................................................................... 7-6
New Emulator Support ........................................................................................................................ 7-7
ICE-100B® ......................................................................................................................................... 7-7
New Evaluation Board Support ............................................................................................................ 7-7
ADSP-21469 EZ-Board ...................................................................................................................... 7-7
ADSP-21371 EZ-KIT Lite.................................................................................................................... 7-8
ADSP-BF518F EZ-Board Revision ..................................................................................................... 7-8
ADSP-BF526 EZ-Board Revision ...................................................................................................... 7-8
Landscape LCD EZ-EXTENDER Examples .......................................................................................... 7-8
Blackfin/SHARC USB EZ-Extender .................................................................................................... 7-9
SHARC Audio EZ-Extender................................................................................................................ 7-9
New System Services and Device Drivers .......................................................................................... 7-10
File System Service for ADSP-BF518F EZ-Board ............................................................................. 7-10
RamDisk FSS for ADSP-BF53x/BF561 EZ-KIT Lites .......................................................................... 7-10
Other Examples .................................................................................................................................. 7-10
Silicon Anomaly Workarounds ........................................................................................................... 7-11
Silicon Anomalies 05000248 / 05000412 (ADSP-BF561) ............................................................... 7-11
Silicon Anomaly 06000020 (ADSP-2126x)...................................................................................... 7-11
Silicon Anomaly 09000021 / 15000003 (ADSP-2137x / ADSP-214xx) ........................................... 7-12
Silicon Anomaly 09000022 / 15000004 (ADSP-2137x / ADSP-214xx) ........................................... 7-13
Silicon Anomaly 09000023 / 15000005 (ADSP-2137x / ADSP-214xx) ........................................... 7-13
Silicon Anomaly 15000011 (ADSP-214xx) ...................................................................................... 7-14
USB Hardware Issues - Update 7 ....................................................................................................... 7-15
Silicon Anomaly 05000450 (ADSP-BF54x)...................................................................................... 7-15
Silicon Anomaly 05000456 (ADSP-BF52x / ADSP-BF54x)............................................................... 7-15
VisualDSP++ 5.0 Update 7 Release Notes Rev 1.0
Page 7-1
Silicon Anomaly 05000460 (ADSP-BF52x / ADSP-BF54x)............................................................... 7-16
Silicon Anomaly 05000463 (ADSP-BF54x)...................................................................................... 7-16
Silicon Anomaly 05000464 (ADSP-BF54x)...................................................................................... 7-16
Silicon Anomaly 05000465 (ADSP-BF52x)...................................................................................... 7-16
Silicon Anomaly 05000466 (ADSP-BF52x / ADSP-BF54x)............................................................... 7-17
Silicon Anomaly 05000467 (ADSP-BF52x / ADSP-BF54x)............................................................... 7-17
ADSP-214xx Changes ......................................................................................................................... 7-18
ADSP-214xx Interrupt Vectors ....................................................................................................... 7-18
TAR40528 : Changes to legacy ".SEGMENT" directive for SHARC parts with VISA support .......... 7-18
ASDP-2146x Def Headers ............................................................................................................... 7-18
ADSP-2146x SHARC Processor Hardware Reference ..................................................................... 7-18
Critical Fixes/Changes ........................................................................................................................ 7-19
Online Help for Silicon Anomaly Tools Support ............................................................................. 7-19
Blackfin Init Code ........................................................................................................................... 7-19
Peripheral Simulation .................................................................................................................... 7-19
New #pragma section compiler warnings ..................................................................................... 7-19
New compiler pragma #pragma save_restore_40_bits ................................................................ 7-20
Improved 64-bit Floating-point Support for SHARC ...................................................................... 7-21
Assembler Processing of Anomaly Options ................................................................................... 7-21
TAR42009: 526 Audio_Loopback.dpj ran and terminated almost right away ............................. 7-21
TAR42058: 526 audio codec example readme diagram wrong .................................................... 7-21
TAR42059: SSL/DD Incompatible with uC/OS-II version 2.86....................................................... 7-22
Anomaly Charts .................................................................................................................................. 7-23
Tools Anomalies Addressed ........................................................................................................... 7-23
Known Tools Anomalies ................................................................................................................. 7-25
VisualDSP++ 5.0 Update 7 Release Notes Rev 1.0
Page 7-2
Nomenclature
In the past, VisualDSP++ updates were labeled by the month and year of their release. In order to
improve clarity, updates are now numbered (e.g., Update 1, Update 2, etc.).
Release Notes
These release notes subsume the release notes for previous updates. Release notes for previous
updates can be found at the end of this document.
Installation
This update can only be installed on a previous VisualDSP++ 5.0 installation. If VisualDSP++ 5.0 is not
installed, please install it first. Installation on a previous update is permitted. If a newer update has
already been installed, please do not install this update. This update is not intended to be installed on
alpha or beta releases. For example, do not install this update on the ADSP-BF518F EZ-KIT Beta
Update.
Identifying Your VisualDSP++ Version
The VisualDSP++ release and update number can be found in 2 locations:
3. In the Control Panel, open the Add/Remove Programs applet.
4. In the VisualDSP++ Integrated Development and Debug Environment (IDDE), select Help 
About VisualDSP++.
Installing the Update
Follow the instructions below for installing this update. Please note that since VisualDSP++ supports
having multiple instances installed on a single system. See the Cloning VisualDSP++ section below for
more information.
9. Use the Start Menu to navigate to VisualDSP++ “Maintain this installation”. By default, this is at
Start Menu  All Programs  Analog Devices  VisualDSP++ 5.0.
10. Select “Go to the Analog Devices website” and click Next. This will open a window in your web
browser.
11. Select the appropriate Processor Software Tools Upgrades to match your processor.
12. Select and download the desired update (VisualDSP++ 5.0_Update7.vdu) to your hard drive.
13. Again, use the Start Menu to navigate to VisualDSP++ “Maintain this installation”.
14. Select “Apply a downloaded Update” and click Next.
15. Browse for the downloaded Update file (VisualDSP++ 5.0_Update7.vdu) and click Next.
16. Follow the on-screen prompts to complete installation of this Update.
Cloning VisualDSP++
VisualDSP++ supports cloning of an existing installation. A clone of an installation creates a new
instance of a product from an existing installation, rather than from a CD or web software distribution.
The use of clones allows you to maintain multiple versions of VisualDSP++ on the same PC at different
update levels, and provides a risk-free way to "test" new updates or patches.
To clone your existing installation of VisualDSP++:
VisualDSP++ 5.0 Update 7 Release Notes Rev 1.0
Page 7-3
5. Go to Start->Programs->Analog Devices->VisualDSP++ 5.0 (or equivalent)->Maintain this
Installation
6. Select "Clone this Installation" and click Next.
7. Optionally click Advanced to set the Start menu path.
8. Enter the Clone install path and click Next.
Definitions
This section provides definitions for terminology relating to VisualDSP++ and this document.
TAR – Tools Anomaly Report
Tools Anomaly Report, or TAR, is used for tracking confirmed defect reports in VisualDSP++.
Supported Operating Systems
This section specifies changes in supported Operating Systems.
Windows Vista SP2
VisualDSP++ 5.0 Update 7 introduces support for Windows Vista SP2 without any new known issues.
Windows 7
VisualDSP++ 5.0 Update 7 introduces support for Windows 7. For more information, please refer to
the relevant FAQ on our new online forum Engineering Zone.
VisualDSP++ 5.0 Update 7 Release Notes Rev 1.0
Page 7-4
New Hardware Support
VisualDSP++ updates often include support for new processors, new silicon revisions for existing
processors and new EZ-KIT Lite®, EZ-Board® and EZ-Extender® evaluation systems. In order to support
these, minor revisions are made to the tool chain and additional system services and device drivers
need to be added. This section describes the new support available in this update.
New Processors and Processor Revision Support
This section lists new processors and processor revisions available in this update. Refer to the data
sheets and hardware reference manuals for information on system configuration, peripherals,
registers, and operating modes.
No new Blackfin®, SHARC® or TigerSHARC® processors are supported with Update 7.
Update 7 also provides support for the following silicon revisions to existing Blackfin® processors:



ADSP-BF522 silicon revision 0.2
ADSP-BF524 silicon revision 0.2
ADSP-BF526 silicon revision 0.2
No new silicon revisions to existing SHARC or TigerSHARC processors are supported with Update 7.
Processor Revision Deprecation
Support for the following processor support has been completely removed in Update 7 as the
processor was never released.

ADSP-BF541
VisualDSP++ 5.0 Update 7 Release Notes Rev 1.0
Page 7-5
Boot ROM Code
This section describes changes to the Boot ROM code.
New Boot ROM Code is available in Update 7 for the following processors:
 ADSP-BF50x rev 0.0
Init Code
This section describes the changes to the Init Code.
New Init Code is available in Update 7 for the following processors:
 ADSP-BF50x rev 0.0
VisualDSP++ 5.0 Update 7 Release Notes Rev 1.0
Page 7-6
New Emulator Support
Support has been added for the following new evaluation boards.
ICE-100B®
Update 7 introduces support for the new low cost ICE-100B USB bus-powered emulator. This emulator
can be used with all Blackfin processors. Please note that the Background Telemetry Channel (BTC)
and statistical profiling are not supported with this emulator. Please refer to the ICE-100B manual
included in Update 7 for more information.
New Evaluation Board Support
Support has been added for the following new evaluation boards.
ADSP-21469 EZ-Board
Update 7 introduces official support for the ADSP-21469 EZ-Board. The Power On Self Test (POST) and
Flash Programmer are provided with this release. In addition, the following examples are provided:
214xx\Examples\ADSP-21469
214xx\Examples\ADSP-21469
214xx\Examples\ADSP-21469
214xx\Examples\ADSP-21469
214xx\Examples\ADSP-21469
214xx\Examples\ADSP-21469
214xx\Examples\ADSP-21469
214xx\Examples\ADSP-21469
214xx\Examples\ADSP-21469
214xx\Examples\ADSP-21469
214xx\Examples\ADSP-21469
214xx\Examples\ADSP-21469
214xx\Examples\ADSP-21469
214xx\Examples\ADSP-21469
214xx\Examples\ADSP-21469
EZ-Board\21469 AD1939 C Block-Based Talkthru 192kHz
EZ-Board\21469 AD1939 C Block-Based Talkthru 48 or 96 kHz
EZ-Board\21469 AD1939 C Sample-Based Talkthru 192kHz
EZ-Board\21469 AD1939 C Block-Based Talkthru 48 or 96 kHz
EZ-Board\21469 I2S C Block-Based Talkthru
EZ-Board\AnalogInDigitalOut
EZ-Board\Background_Telemetry
EZ-Board\Block_Based SPDIF Talk Thru (C)
EZ-Board\Core Timer (C)
EZ-Board\Flash Programmer
EZ-Board\Power_On_Self_Test
EZ-Board\Primes (C) from External Memory
EZ-Board\SPDIF to Analog TalkThru with SRC (C)
EZ-Board\SPDIFToAnalogTalkThru (C)
EZ-Board\UART echo back_C
New accelerator examples are provided:
214xx\Examples\ADSP-21469
214xx\Examples\ADSP-21469
214xx\Examples\ADSP-21469
214xx\Examples\ADSP-21469
214xx\Examples\ADSP-21469
214xx\Examples\ADSP-21469
214xx\Examples\ADSP-21469
214xx\Examples\ADSP-21469
EZ-Board\256pointFFT
EZ-Board\512pointFFT
EZ-Board\Decimation Filter
EZ-Board\Interpolation Filter
EZ-Board\Multichannel Filter AutoIterate
EZ-Board\MultiIteration Mode
EZ-Board\SingleIteration Mode
EZ-Board\Talkthrough_IIR_Accelerator
A new example for converting a project from normal word to short word (VISA) is provided:
214xx\Examples\ADSP-21469 EZ-Board\VISA_example
VDK examples are also provided:
214xx\Examples\No
214xx\Examples\No
214xx\Examples\No
214xx\Examples\No
Hardware
Hardware
Hardware
Hardware
Required\VDK\21469\BoundedBuffer_Mutex
Required\VDK\21469\BoundedBuffer_Semaphore
Required\VDK\21469\DiningPhilosopher
Required\VDK\21469\Factory
VisualDSP++ 5.0 Update 7 Release Notes Rev 1.0
Page 7-7
214xx\Examples\No
214xx\Examples\No
214xx\Examples\No
214xx\Examples\No
214xx\Examples\No
214xx\Examples\No
214xx\Examples\No
214xx\Examples\No
214xx\Examples\No
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Required\VDK\21469\InterProcessCommunication_DD
Required\VDK\21469\LoadMeasurement
Required\VDK\21469\MultipleHeaps
Required\VDK\21469\ProducerConsumer
Required\VDK\21469\ReadersWriters
Required\VDK\21469\ReplaceHistoryLogging
Required\VDK\21469\StackOverflowDetection
Required\VDK\21469\StatusMonitor
Required\VDK\21469\ThreadLocalStorage
ADSP-21371 EZ-KIT Lite
Update 7 introduces support for the ADSP-21371 EZ-KIT Lite complete with a full set of examples:
213xx\Examples\ADSP-21371
213xx\Examples\ADSP-21371
213xx\Examples\ADSP-21371
213xx\Examples\ADSP-21371
213xx\Examples\ADSP-21371
213xx\Examples\ADSP-21371
213xx\Examples\ADSP-21371
213xx\Examples\ADSP-21371
213xx\Examples\ADSP-21371
213xx\Examples\ADSP-21371
213xx\Examples\ADSP-21371
213xx\Examples\ADSP-21371
213xx\Examples\ADSP-21371
213xx\Examples\ADSP-21371
213xx\Examples\ADSP-21371
EZ-KIT
EZ-KIT
EZ-KIT
EZ-KIT
EZ-KIT
EZ-KIT
EZ-KIT
EZ-KIT
EZ-KIT
EZ-KIT
EZ-KIT
EZ-KIT
EZ-KIT
EZ-KIT
EZ-KIT
Lite\AMD Flash Programmer (ASM)
Lite\AMD Flash Programmer (C)
Lite\Background_Telemetry
Lite\Blink with External Memory (ASM)
Lite\Block_Based Talk Thru (C)
Lite\Core Timer (ASM)
Lite\Core Timer (C)
Lite\EZ-KIT Push Button (ASM)
Lite\Flash Programmer
Lite\Power_On_Self_Test
Lite\Primes (C) from External Memory
Lite\STMicro SPI Flash Programmer (ASM)
Lite\talkthru analog in-out (asm)
Lite\UART echo back (ASM)
Lite\UART echo back (C)
ADSP-BF518F EZ-Board Revision
Update 7 introduces support for the ADSP-BF518F EZ-Board rev 1.0. This EZ-Board includes the ADSPBF518F rev 0.1 with the revised memory map and National Semiconductor DP83848 PHY device. For
more information, please refer to the ADSP-BF518F EZ-Board Evaluation System Manual.
ADSP-BF526 EZ-Board Revision
Update 7 introduces support for the ADSP-BF526 EZ-Board rev 1.1. This EZ-Board includes the ADSPBF526 rev 0.1 and the SSM2603 Audio Codec. For more information, please refer to the ADSP-BF526
EZ-Board Evaluation System Manual. The following new example for use with the SSM2603 Audio
Codec is provided:
Blackfin\Examples\ADSP-BF526 EZ-KIT Lite\Drivers\AudioCodec\Audio_Loopback
Landscape LCD EZ-EXTENDER Examples
VisualDSP++ 5.0 Update 7 includes new Landscape LCD EZ-Extender examples for the ADSP-BF518F EZBoard, ADSP-BF526 EZ-Board and ADSP-BF527 EZ-KIT Lite evaluation systems. The following examples
are provided:
Blackfin\Examples\Landscape LCD EZ-Extender\LCD_ColorBarDisplay\ADSP-BF518
Blackfin\Examples\Landscape LCD EZ-Extender\LCD_ColorBarDisplay\ADSP-BF526
Blackfin\Examples\Landscape LCD EZ-Extender\LCD_ColorBarDisplay\ADSP-BF527
Blackfin\Examples\Landscape LCD EZ-Extender\SketchPad\ADSP-BF518
VisualDSP++ 5.0 Update 7 Release Notes Rev 1.0
Page 7-8
Blackfin/SHARC USB EZ-Extender
Update 7 introduces additional support for the Blackfin/SHARC USB EZ-Extender for the ADSP-21469
EZ-Board. The following examples are provided:
214xx\Examples\USB EZ-Extender\USB_IO
214xx\Examples\USB EZ-Extender\USB_Loopback
214xx\Examples\USB EZ-Extender\USB_Talkthrough
Blackfin\Examples\USB EZ-EXTENDER \bulk_loopback_app
Blackfin\Examples\USB EZ-EXTENDER \bulk_redirect_io_app
Blackfin\Examples\USB EZ-EXTENDER \mass_storage_app
SHARC Audio EZ-Extender
VisualDSP++ 5.0 Update 7 introduces support for the new SHARC Audio EZ-Extender. The following
examples are provided:
214xx\Examples\SHARC
214xx\Examples\SHARC
214xx\Examples\SHARC
214xx\Examples\SHARC
214xx\Examples\SHARC
214xx\Examples\SHARC
214xx\Examples\SHARC
192kHz_6serialports
214xx\Examples\SHARC
Audio
Audio
Audio
Audio
Audio
Audio
Audio
EZ-EXTENDER\21469 AD1939 C Block-Based Talkthru 192kHz
EZ-EXTENDER\21469 AD1939 C Block-Based Talkthru 48 or 96 kHz
EZ-EXTENDER\21469 AD1939 C Sample-Based Talkthru 192kHz
EZ-EXTENDER\21469 AD1939 C Sample-Based Talkthru 48 or 96 kHz
EZ-EXTENDER\21469 AD1939 I2S C Sample-Based Talkthru
EZ-EXTENDER\AnalogInDigitalOut
EZ-EXTENDER\Sharc EZ-Extender_21469 AD1939 Sample-Based Talkthru
Audio EZ-EXTENDER\SPDIF to Analog TalkThru with SRC
VisualDSP++ 5.0 Update 7 Release Notes Rev 1.0
Page 7-9
New System Services and Device Drivers
The following are now supported by VisualDSP++ 5.0:
File System Service for ADSP-BF518F EZ-Board
The File System Service (FSS) has been expanded in Update 7 to support the Removable Storage
Interface (RSI) on the ADSP-BF518F EZ-Board evaluation System:
Blackfin\Examples\ADSP-BF518F EZ-Board\Services\File System\RSI\eMMCFormat
Blackfin\Examples\ADSP-BF518F EZ-Board\Services\File System\VDK\shell_browser
RamDisk FSS for ADSP-BF53x/BF561 EZ-KIT Lites
The File System Service has been expanded in Update 7 to support the ADSP-BF533, ADSP-BF537,
ADSP-BF538 and ADSP-BF561 EZ-KIT Lite evaluation systems. Full support is provided for accessing a
RAM disk by using the following driver:
Blackfin\lib\src\drivers\pid\ramdisk\adi_ramdisk.c
This driver is included in the driver libraries for ADSP-BF533, ADSP-BF537, ADSP-BF538 and ADSPBF561. Examples for these processors are:
Blackfin\Examples\ADSP-BF533 EZ-KIT Lite\Services\File System\RamDiskAccess
Blackfin\Examples\ADSP-BF533 EZ-KIT Lite\Services\File System\VDK\shell_browser
Blackfin\Examples\ADSP-BF537 EZ-KIT Lite\Services\File System\RamDiskAccess
Blackfin\Examples\ADSP-BF537 EZ-KIT Lite\Services\File System\VDK\shell_browser
Blackfin\Examples\ADSP-BF538F EZ-KIT Lite\Services\File System\RamDiskAccess
Blackfin\Examples\ADSP-BF538F EZ-KIT Lite\Services\File System\VDK\shell_browser
Blackfin\Examples\ADSP-BF561 EZ-KIT Lite\Services\File System\RamDiskAccess
Blackfin\Examples\ADSP-BF561 EZ-KIT Lite\Services\File System\VDK\shell_browser
The RAM Disk driver can also be used with ADSP-BF518, ADSP-BF52x and ADSP-BF54x processors but
the above source file is required to be added to the project as it is not included in driver libraries for
these processors.
Other Examples
This section specifies new examples that are not specific to an evaluation board. There are no new
examples for this category in Update 7.
VisualDSP++ 5.0 Update 7 Release Notes Rev 1.0
Page 7-10
Silicon Anomaly Workarounds
Anomaly workaround information is available in the online help: Select Help  Contents  Graphical
Environment  Silicon Anomaly Support  Silicon Anomalies Tools Support and then click the
appropriate processor series.
Silicon Anomalies 05000248 / 05000412 (ADSP-BF561)
“TESTSET Operation Forces Stall on the Other Core”
The 05000248 compiler workaround for uses of the TESTSET instruction has changed in Update 7
because it is now deemed necessary to have interrupts disabled around the workaround. This has
meant some associated changes in the workaround for the related TESTSET anomaly 05000412.
The compiler has workarounds for these anomalies that are issued for calls of the compiler builtin
function __builtin_testset as used in ccblkfn.h defined functions
adi_acquire_lock() and adi_try_lock() . The 05000248 workaround is automatically
enabled for ADSP-BF561 revisions 0.2, 0.3 and 'any'. The 05000412 workaround is automatically
enabled when building for 0.2. 0.3, 0.5 and 'any'.
Here is an example of what the compiler produces for a call to __buitin_testset when both the
05000248 and 05000412 workarounds are enabled:
P0.L = ___var_wa_05000248;
P0.H = ___var_wa_05000248;// Inserted to fix anomaly 05000248 and 05000412.
.MESSAGE/SUPPRESS 5515 FOR 1 LINES;
CLI R0; R1 = [P1]; NOP; NOP; SSYNC; TESTSET (P1); W[P0] = R0; STI R0;
Here is the 05000412 only workaround code:
.MESSAGE/SUPPRESS 5515 FOR 1 LINES;
CLI R0; R1 = [P1]; NOP; NOP; SSYNC; TESTSET (P1); STI R0;// Inserted to fix
anomaly 05000412
Here is the 05000248 only workaround:
P0.L = ___var_wa_05000248;
P0.H = ___var_wa_05000248;// Inserted to fix anomaly 05000248.
CLI R0; NOP; NOP; TESTSET (P1); W[P0] = R0; STI R0;
These sequences of instructions match IC Anomaly list for the ADSP-BF561.
Silicon Anomaly 06000020 (ADSP-2126x)
“Indirect jumps or calls followed by Long Word accesses using PM bus can vector to an unknown
location”
New information about this anomaly has been added to the anomaly dictionary in
"System/ArchDef/SHARC-2126X-anomaly.xml". The anomaly concerns indirect jumps or calls followed
by Long Word accesses using PM bus (or invalid instruction) possibly vectoring to an unknown location.
VisualDSP++ 5.0 Update 7 Release Notes Rev 1.0
Page 7-11
One situation that can cause the anomaly that is of concern to many applications is at the end of a
program’s code. It is likely that the last instruction in an application will be an indirect jump that is a
return from the last function linked. If the memory that follows such a jump is not initialized or is data,
this could trigger the anomaly. This cause of the anomaly can be avoided by inserting a NOP at the end
of your application code.
This workaround can be implemented in the VisualDSP++ LDF by placing a FILL command and a ;. =
. + 2; command after your code sections INPUT_SECTIONS commands. e.g.:
seg_pmco {
INPUT_SECTIONS( $OBJS(seg_pmco) $LIBS(seg_pmco))
FILL(0x0)
// workaround 06000020 at the end of instruction memory
. = . +2;
// there must be a space on both sides of each '.'
}
An automatic tools workaround for this anomaly is being considered for a future release.
Silicon Anomaly 09000021 / 15000003 (ADSP-2137x / ADSP-214xx)
“IOP Register access immediately following an External Memory access may not work”
The anomaly happens if an instruction making an access to an IOP register immediately follows
another instruction that performs an access to external memory. The result of the anomaly can be
that he IOP register access may not occur correctly.
The assembler has new -anomaly-detect 09000021 switch for the ADSP-2137x processor series
and -anomaly-detect 15000003 switch for the ADSP-214xx processor series. The functionality
of these switches is to detect an obvious IOP register access following any memory access. When
detected the assembler issues warning ea2541. These switches are disabled by default.
The compiler workaround for these anomalies inserts a NOP between a potential external memory
access and a potential IOP register access. By default the compiler assumes that any access to a
memory location using a volatile pointer is an access of an IOP register, unless it can determine and
therefore check the physical address at compile-time.
The compiler workaround is automatically enabled for parts and revisions that require it. The compiler
can be enabled manually using the -workaround 09000021 or -workaround 15000003
switched. Corresponding -no-workaround switches have also been added.
A new compiler switch and two new built-in functions have been added to allow users to configure the
compilers support for these anomalies. The new switch, -no-assume-vols-are-iops, allows
you to disable the compiler's default assumption that all volatiles are IOP accesses. The new functions
allow you to inform the compiler that an IOP register access will take place.
Use of the new switch and the new functions allows you to ensure that the workaround is only applied
when an IOP register is actually accessed. Note that if the compiler is able to determine at compileVisualDSP++ 5.0 Update 7 Release Notes Rev 1.0
Page 7-12
time that the volatile memory access is to an IOP register, the workaround will be applied regardless of
whether the switch is used.
-no-assume-vols-are-iops

Instructs the compiler to not assume that volatile loads and stores are to IOP addresses and
therefore candidates for any IOP-related silicon errata workarounds.
#include <builtins.h>
unsigned int iop_read(volatile void * __a);

Reads the IOP register at address at '__a'
void iop_write(volatile void * __a, unsigned int __b);
 Writes the value '__b' to the IOP register at address '__a'
For example:
volatile unsigned int * iop_ptr = (volatile unsigned int *)0x1234;
unsigned int val = iop_read(iop_ptr);
The run-time libraries do not use IOP registers and are not affected by this anomaly
Silicon Anomaly 09000022 / 15000004 (ADSP-2137x / ADSP-214xx)
“Effect latency of some System Registers may be 2 cycles instead of 1 for External data accesses”
Compiler and library workarounds to support ADSP-2137x anomaly 09000022 and ADSP-2146x
anomaly 15000004 have been added in VisualDSP++ 5.0 Update 7.
This anomaly concerns the following registers that have an effect latency of 1 (the maximum number
of instructions it takes for a write to these registers to take effect) instead of having an effect latency of
2 if any of their bits impact an instruction containing an external data access:
MODE1, MODE2, MMASK, ASTATx, ASTATy, STKYx, and STKYy
The compiler has new "-workaround 09000022" and "-workaround 15000004" switches that are
enabled automatically when building for parts and revision that are impacted by the anomaly. When
these are used, the compiler will insert a nop, if required, between a system register use and an
affected instruction. Note that user supplied assembly code will not be modified.
Run-time library code has also been rebuilt with the modified compiler and assembly code modified
where necessary to ensure the anomaly does not occur.
Silicon Anomaly 09000023 / 15000005 (ADSP-2137x / ADSP-214xx)
“Writes to LCNTR, CURLCNTR and LADDR from Internal Memory may fail if there is a DMA block
conflict”
This anomaly may occur when writes to LCNTR, CURLCNTR and LADDR are made from internal memory
when there is a DMA block conflict.
VisualDSP++ 5.0 Update 7 Release Notes Rev 1.0
Page 7-13
The assembler has a new -anomaly-detect 09000023 switch for the ADSP-2137x processor series
and -anomaly-detect 15000005 switch for the ADSP-214xx processor series. The functionality of
these switches is to detect any write to LCNTR, CURLCNTR, or LADDR from memory. When detected
the assembler issues warning ea2540. These switches are enabled by default.
Run-time library code avoids this anomaly by ensuring that writes to LCNTR, CURLCNTR and LADDR
occur in two stages using a register move to load, rather than loading them directly from memory. The
VDK context-switch also uses the same workaround.
Two known issues remain that will be worked around in the next update. For more information, please
refer to the following to public TARs:
TAR41767 : "Compiler generates code that can trigger 09000023/15000005"
TAR41860 : "Anomaly detection for anomaly 15000005 is not enabled"
Silicon Anomaly 15000011 (ADSP-214xx)
“Incorrect Execution of VISA CALL(DB) Instructions under specific conditions”
The assembler will issue warning ea1092 if the CALL (DB) instruction is used in VISA mode.
The compiler normally issues CJUMP instructions to implement function calls rather than CALL
instructions. The only times the compiler uses CALL instructions is for a subset of the compiler support
functions. When this workaround is enabled the compiler ensures that it does not issue delayed
branch CALLs for these functions in code being compiled for VISA execution (the default and -swc).
Library and VDK code has been modified to avoid CALL(DB) instructions where necessary.
VisualDSP++ 5.0 Update 7 Release Notes Rev 1.0
Page 7-14
USB Hardware Issues - Update 7
This section details the status of the USB hardware issues and software workarounds at the time of the
VisualDSP++ 5.0 Update 7 release.
Silicon Anomaly 05000450 (ADSP-BF54x)
“USB DMA Mode 1 Short Packet Data Corruption”
DMA mode 1 allows large size transfers to generate a single interrupt at the end of the entire transfer.
The transfer is split up in packets of length specified in the Maximum Packet Size field for that
endpoint. If the transfer size is not an integer multiple of the Maximum Packet Size, then a short
packet will be present at the end of the transfer. Under certain conditions this packet may be
corrupted in the USB FIFO.
Workaround
The workaround for this anomaly is to use the faster DMA Mode 1 for all packets except for the last
packet. If the last packet is shorter than the maximum packet size, MAX_PKT_SIZE, DMA Mode 0 is
used. MAX_PKT_SIZE is either 64 or 512 depending on whether the USB is connected at full (USB 1.1)
or high (USB 2.0) speed. This workaround is implemented with Update 7.
Silicon Anomaly 05000456 (ADSP-BF52x / ADSP-BF54x)
“USB Receive Interrupt Is Not Generated in DMA Mode 1”
Whether the USB is used in host or device mode, the USB receive interrupt may not be generated
when DMA Mode 1 is used. This anomaly also does not apply to transmit operations.
Host Mode
For DMA Mode 1 host mode receive operations where the transfer size is an integer multiple of
MaxPacketSize, extra "in" tokens are sent out by the USB controller at the end of the DMA transfer.
This causes the slave device to send an additional data packet back to the Blackfin processor, where it
is received in the USB FIFO, but no USB RX interrupt is generated. Taking the Mass Storage Class as a
specific example, this causes the devices to send a status packet, which should generate a USB RX
interrupt. This interrupt may be lost.
Device Mode
For DMA Mode 1 device mode receive operations where the transfer size is unknown, the Short Packet
Interrupt must be relied upon to indicate the end of the transfer. This anomaly prevents the USB
controller from issuing an RX interrupt for the corresponding endpoint when a short/null packet is
received.
This anomaly does not apply to device mode when the size of the receive transfer is known in advance,
as the DMA Completion Interrupt is generated at the end of the transfer and the endpoint receive
interrupt is not used.
VisualDSP++ 5.0 Update 7 Release Notes Rev 1.0
Page 7-15
Workaround
Use DMA Mode 0 instead of DMA Mode 1. This workaround is implemented in the HDRC driver such
that bulk transfers use DMA Mode 0 by default. This results in slower transfer rates. If the buffer size
is known to always be an integer multiple of the packet size, then this default can be overridden. To
override the default, arrange for your data buffer (ADI_DEV_1D_BUFFER) element count and width so
that ElementCount*ElementWidth = n*MAX_PKT_SIZE, where n is an integer and MAX_PKT_SIZE is
either 64 or 512 depending on whether the USB is connected at full (USB 1.1) or high (USB 2.0) speed.
If the connection speed is not known, an integral multiple of 512 can always be used.
Silicon Anomaly 05000460 (ADSP-BF52x / ADSP-BF54x)
“USB DMA Mode 1 Failure When Multiple USB DMA Channels Are Concurrently Enabled”
When multiple USB DMA Mode 1 channels are enabled and active at the same time, one of the
channel's DMA Address registers may be corrupted resulting in either DMA hang or data corruption.
Workaround
Use DMA Mode 0 if the application requires multiple USB DMA channels to be concurrently enabled.
This is not implemented in the HDRC in VisualDSP++ 5.0 Update 7. Applications need to serialize their
endpoint transfers ensuring only one active USB DMA in the system at any one time.
Silicon Anomaly 05000463 (ADSP-BF54x)
“USB DMA Receive data corruption”
USB DMA Rx data corruption is observed when the USB buffer destination is in L1 or L2 memory and
another peripheral's DMA buffers (e.g. SPORT) are also in L1 or L2 memory spaces and are accessed at
the same time as the USB DMA is accessing its buffer.
Workaround
No workaround exists in the driver. The application developer needs to manage buffers such that
when multiple peripherals are used with buffers in L1 or L2, USB buffers are placed in L3 or vice versa.
Silicon Anomaly 05000464 (ADSP-BF54x)
“USB DMA Transmit DMA hang”
USB Transmit DMA may hang when the USB buffer is located in L1 or L2 memory and another
peripheral (e.g. SPORT) is simultaneously accessing data in L1 or L2.
Workaround
No workaround exists in the driver. The application developer needs to manage buffers such that
when multiple peripherals are used with buffers in L1 or L2, USB buffers are placed in L3 or vice versa.
Silicon Anomaly 05000465 (ADSP-BF52x)
“USB Receive DMA hang”
VisualDSP++ 5.0 Update 7 Release Notes Rev 1.0
Page 7-16
USB Rx DMA hangs if the endpoint FIFOs are configured in double buffer mode. This is the case when
MaxPacketSize in USB_EP_NIx_RXMAXP is equal or less than half the endpoint FIFO size. When double
buffering is enabled, there is the possibility of a race condition where RxPktRdy is set and cleared in the
same cycle. When this happens RxPktRdy will remain cleared, thus preventing the USB DMA from
unloading the FIFO, resulting in a Rx DMA hang. This can manifest itself when SCLK is at or below 100
MHz.
Workaround
Use DMA mode 0 with double buffering disabled. This is implemented in the HDRC driver by default
(for ADSP-BF52x only) in VisualDSP++ 5.0 Update 7.
Silicon Anomaly 05000466 (ADSP-BF52x / ADSP-BF54x)
“TxPktRdy Bit Not Set for Transmit Endpoint When Core and DMA Access Endpoint FIFOs
Simultaneously”
TX DMA data can be lost when both the USB DMA and the core access two different USB endpoint
FIFOs at the same time. The DMA pointer does not increment correctly for the last two bytes of the
DMA accessed FIFO preventing the USB controller from setting TXPKTRDY when AUTOSET is enabled.
If TXPKTRDY is set manually, data will be sent on the bus but the last two bytes will be missing.
Workaround
Do not mix concurrent DMA and core accesses to the USB TX endpoint FIFOs. The HDRC driver uses
DMA for all transfers and is not affected by this anomaly.
Silicon Anomaly 05000467 (ADSP-BF52x / ADSP-BF54x)
“Possible USB RX Data Corruption When Control and Data EP FIFO’s are accessed via the core”
USB received data may be corrupted while receiving data under the following conditions:
1. Control and data USB endpoints are enabled.
2. Data has been received at the control endpoint.
3. Data is being received at the data endpoint while the processor core is reading data from the
control endpoint.
Workaround
Use DMA to read data from the streaming (data) endpoint FIFO. The HDRC driver in VisualDSP++
Update 7 has this workaround.
VisualDSP++ 5.0 Update 7 Release Notes Rev 1.0
Page 7-17
ADSP-214xx Changes
This section highlights significant changes due to software anomaly fixes or functional changes.
ADSP-214xx Interrupt Vectors
Interrupt vector table cannot be in short word memory, the processor requires that the Interrupt
Vector Table (IVT) reside in normal word memory. Ensure that the “/nw” qualifier is used. Please see
the example below for TAR40528.
TAR40528 : Changes to legacy ".SEGMENT" directive for SHARC parts with VISA support
There has been a change in the SHARC assembler to ensure that the legacy ".segment" directive
responds to the switches to control Variable Instr Set Architecture (VISA) encoding, -swc and -nwc, in
the same way as ".section". Previously code sections defined with ".segment" would be encoded
only for normal word execution, ignoring default behavior and explicit command line switches
intended to produce short word encoding.
It is necessary that interrupt vector code (the 4 instructions per interrupt at the start of code memory
that the parts jump to service interrupts) is normal word encoded and this might be affected by the
assembler change. Therefore we recommend that interrupt vector code defined in sections using
".segment" should be modified to use ".section" with explicit NW qualification. For example:
#if defined (__SHORT_WORD_CODE__)
// For parts that support VISA this code has to be mapped to a
// normal word section so make sure that happens even when
// building -swc.
.section /pm/nw seg_rth;
#else
.section /pm
seg_rth;
#endif
// ... interrupt vector code ...
ASDP-2146x Def Headers
The def headers for the ADSP-2146x (e.g. def21469.h) have been modified to match the new ADSP2146x SHARC Hardware Processor Manual, Rev 0.2, August 2009. Some macros have been modified or
deleted.
ADSP-2146x SHARC Processor Hardware Reference
The new ADSP-2146x SHARC Hardware Processor Manual, Rev 0.2 has been recently released. As this
manual has not yet been converted to a help format and there are significant changes since Rev 0.1,
neither version are included in Update 7. Please use the PDF version found at the link below. This
manual will be available in help format in a future update.
http://www.analog.com/en/embedded-processing-dsp/sharc/adsp21469/processors/manuals/resources.html
VisualDSP++ 5.0 Update 7 Release Notes Rev 1.0
Page 7-18
Critical Fixes/Changes
This section highlights significant changes due to software anomaly fixes or functional changes.
Online Help for Silicon Anomaly Tools Support
The Online Help for the Silicon Anomaly Tools Support provides information "per processor" and "per
silicon revision" in addition to the "per family" information already available.
For access, see the "Silicon Anomaly Tools Support" Help topic, as follows:
Help -> Contents -> Graphical Environment -> Silicon Anomaly Support -> Silicon Anomaly Tools
Support
Then select "SHARC" or “Blackfin” and follow the links for the specific processor and silicon revision.
Specific processor and silicon revision support is not available for TigerSHARC processors.
Blackfin Init Code
Examples for Multi-DXE Boot Streams were added for the ADSP-BF526 EZ-Board, ADSP-BF527 EZ-KIT
Lite, and ADSP-BF548 EZ-KIT Lite evaluation systems. See 'Boot Management' in the System Reset and
Booting chapter of the HRM.
Peripheral Simulation
The simulator now provides support for SPORT peripherals including SPORT DMA for the following
SHARC processor series:
 ADSP-2106x
 ADSP-2116x
 ADSP-2126x
 ADSP-2136x
 ADSP-2137x
 ADSP-2146x
The simulator now provides support for Memory-to-Memory DMA for the following SHARC processor
series:
 ADSP-2136x
 ADSP-2137x
 ADSP-2146x
New #pragma section compiler warnings
Compiler changes were made in Update 7 to fix issues with #pragma section (used to control
placement of data and code in C and C++ code). Some uses of #pragma section that were accepted
prior to Update 7 may cause the compiler to issue warnings now.
VisualDSP++ 5.0 Update 7 Release Notes Rev 1.0
Page 7-19
For example:
#pragma section("data_1")
//-- (1)
struct s {
#pragma section("data_2")
//-- (2)
int a[32];
#pragma section("data_3")
//-- (3)
int b[32];
int c,d,e,f;
};
#pragma section("data_4")
//-- (4)
struct s s_inst;
The only valid use of the #pragma in this example is (4) used before the struct instance to tell the
compiler to place that instance into section data_4. The others uses are accepted by compilers prior to
Update 7 but cause build warnings when using the Update 7 one. The warnings are:
ccblkfn.exe -S t.c -c++
"t.c", line 4: cc2263: {D} warning: #pragma section before field "a" has no
effect.
int a[32];
^
"t.c", line 6: cc2263: {D} warning: #pragma section before field "b" has no
effect.
int b[32];
^
"t.c", line 1: cc0609: {D} warning: this kind of pragma may not be used here
#pragma section("data_1")
//-- (1)
^
To avoid these warnings, remove the #pragma section indicated and place it before the required
variable or function declaration instead.
New compiler pragma #pragma save_restore_40_bits
The new compiler #pragma save_restore_40_bits can be used along with #pragma
interrupt_complete or #pragma interrupt_complete_nesting to save and restore all
40 bits of the data registers ("Dregs") used by the handler. This ensures that any routines using 40-bit
arithmetic that are interrupted do not suffer inaccuracies.
For leaf routines (that is, routines that do not call any other functions), the compiler saves and restores
only the registers that are used. For non-leaf routines, the compiler saves and restores 40 bits of all
Dregs. Note that saving and restoring each Dreg requires 6 instructions.
For newly created VDK interrupts the templates include this #pragma if the macro
VDK_SAVE_RESTORE_SIMD_40_BITS is defined. Defining
VDK_SAVE_RESTORE_SIMD_40_BITS in a VDK assembly ISR before the inclusion of the VDK.h
file also ensures that the 40 bits of the registers are saved and restored by the VDK ISR macros. Using
VisualDSP++ 5.0 Update 7 Release Notes Rev 1.0
Page 7-20
these macros incurs both performance and space penalties. Customers who want to change the
behavior of existing C ISRs must add the #pragmas themselves.
Improved 64-bit Floating-point Support for SHARC
The support routines for primitive double precision floating-point operations (addition, subtraction,
multiplication and division) have been extensively modified to improve their run-time performance,
decrease code size and improve the accuracy of their results.
As a result of these modifications there may be minor discrepancies with results produced from
previous releases of VisualDSP++.
Assembler Processing of Anomaly Options
The Blackfin and SHARC assembler method for processing command line anomaly options via the –
anomaly switches has been updated to be more consistent and robust. Specifically, the “all” and
“none” options can now be used with all four switches:
-anomaly-detect
-no-anomaly-detect
-anomaly-workaround
-no-anomaly-workaround
In addition, these options (all & none) are processed first, so that users can easily control which
anomaly IDs are being detected/worked around by using them in conjunction with anomaly IDs. For
example:
-anomaly-detect none,05000227 (which is the same as: –anomaly-detect
05000227,none)
will only detect anomaly 05000227 and ignore all other anomaly IDs that may normally be detected.
NOTE: In this example, default actions will still be taken for workarounds as no workaround switches
were present to over-ride that behavior.
Finally, by using the verbose option (-v), users can see the actions being performed by the assembler
for anomaly processing under the new “Anomaly Actions” section.
TAR42009: 526 Audio_Loopback.dpj ran and terminated almost right away
The Readme for the following example is incomplete. SW20 1 and 2 must be ON.
Blackfin\Examples\ADSP-BF526 EZ-KIT Lite\Drivers\AudioCodec\Audio_Loopback
TAR42058: 526 audio codec example readme diagram wrong
The Readme for the following example is incorrect. The display has the input and output connectors
swapped.
VisualDSP++ 5.0 Update 7 Release Notes Rev 1.0
Page 7-21
Blackfin\Examples\ADSP-BF526 EZ-KIT Lite\Drivers\AudioCodec\Audio_Loopback
TAR42059: SSL/DD Incompatible with uC/OS-II version 2.86
Libraries specific for µC/OS-II cause link errors with latest uC/OS-II v2.86. The SSL/DD Interrupts
manager calls internal µC/OS-II functions upon entry and exit from ISRs. Those functions have been
removed from the latest µC/OS-II (v2.86).
Until fixed, please use one of the following two workarounds:
1. Use µC/OS-II v2.85.
2. Do not use the SSL/DD Interrupt Manager.
VisualDSP++ 5.0 Update 7 Release Notes Rev 1.0
Page 7-22
Anomaly Charts
Tools Anomalies Addressed
The following table is a list of tools anomalies addressed in VisualDSP++ 5.0 Update 7 for which details
can be found on the public tools anomaly website. Other tools anomalies have also been fixed in the
Update.
Details can be found on the Tools Anomaly Web page. The URL is:
http://www.analog.com/processors/tools/anomalies
Processor
Family
Tools
Anomaly
Report #
Tool
Description
All
39918
Compiler
#pragma section does not work with C++ template
functions
All
40572
Compiler
Params declared as ptr-to-array may generate false
MISRA errors
All
40773
Compiler
compiler crash -misra and -save-temps or -misra-nocross-module
All
40862
Compiler
m-dim array initialized by zero detected as MISRA
violation 9.2
All
41248
Compiler
Type error in MISRA-C runtime support
All
39900
elf2flt
elf2flt crashes when producing version 5 flat files
Blackfin
40818
ADspCommon XML Files
ADI web links changed, Tools Anomaly links not working
as before
Blackfin
40310
Assembler
anomaly 05-00-0209 warnings issued for safe code
Blackfin
40311
Assembler
no anomaly 05000209 detect warnings in multi-issued
instructions
Blackfin
40224
Compiler
asm source dependencies not created using the compiler
driver
Blackfin
40279
Compiler
Instrumented Profiling not working in the IDDE
Blackfin
40417
Compiler
memcpy causes misaligned access exceptions
Blackfin
40585
Compiler
internal compiler error (brilgen.c:2976) in code using
testset
Blackfin
40626
Compiler
05-00-0428 anomaly in compiler-generated code
Blackfin
40739
Compiler
05-00-0412 workaround causes misaligned access
Blackfin
41354
Compiler
Misra rule12.8 errors not issued when necessary
Blackfin
40627
Debug Agent
BF518F JTAG errors setting "Boot Load" from the
settings menu.
Blackfin
40536
Emulator
BF518F POST SPI flash test fails in release configuration
Blackfin
40609
Emulator
Emulator stdio not able to handle more than 0x7FFFFF
bytes
Blackfin
40598
Examples
BF526 POST example fails to build a loader file.
Blackfin
40700
Examples
BF526 sketchpad example does not work first time.
VisualDSP++ 5.0 Update 7 Release Notes Rev 1.0
Page 7-23
Blackfin
40839
Examples
BF518 PTPd example missing copyright notice
Blackfin
40868
Examples
BF537 and Audio EZ Extender do not work
Blackfin
41267
Examples
POST config loader option Initialization file path wrong...
Blackfin
40788
LDF
538/539 default LDFs do not provide ARGV section if
SDRAM is on
Blackfin
40883
Loader
Loader start address argument inconsistent with
documentation
Blackfin
41365
Loader
-si-revision “any” generates incorrect loader stream
Blackfin
33934
Run Time Libraries
float16.h issues with negate_fl16 and add_fl16
Blackfin
40163
Run Time Libraries
Using IO and thread local storage can cause deadlock
bf561
Blackfin
40481
Run Time Libraries
evicting ICPLB...15 in _cplb_mgr causes a core fault
Blackfin
40815
Run Time Libraries
memcpy_l1.asm and l1_memcpy.asm not safe from
anomaly 05-00-0312
Blackfin
40880
Run Time Libraries
multicore startup corruption in shared library variables
Blackfin
41134
Run Time Libraries
l1_memcpy and memcpy_l1 can fail with BF51x revision
0.1
Blackfin
41164
Run Time Libraries
cplb_init() treats P1 as a preserved register
Blackfin
40928
Source Generator
disabling ldf-gen in BF561 single-core/single-app proj
cause err
Blackfin
40939
Source Generator
Project name with + (&,�, !, `, etc) in it causes -MD
failure.
Blackfin
40950
Source Generator
ADSP-BF561 boundary workaround not applied for sirevision auto
Blackfin
40953
Source Generator
-full-io does not trigger regeneration of LDF
Blackfin
40981
Source Generator
adi_ebiu_Init (to config ext mem) is called from Core A &
B.
Blackfin
36592
System Services
USB driver copies from 0x00000000-2 to some location
Blackfin
40875
System Services
BF518 RSI driver fails to handle FIFO under-run errors
Blackfin
41593
TCPIP Stack
multicast apps does not work on BF527 ez-kit rev 2.0
Blackfin
40586
USB Stack
BF527 bulk USB example causes blue screen and
reboot(USB 1.1)
SHARC
41146
ADspCommon XML Files
07000006 text unclear regarding assumption about block
0 PM use
SHARC
40041
Assembler
Informational msg ea1130 cannot be suppressed at the
cmd line
SHARC
40528
Assembler
.segment assembler directive may behave incorrectly for
2146x
SHARC
41073
Compiler
Compiler can fail to initialize structs if annotations
disabled
SHARC
40797
Document-Help
assembler messages ea2018 - ea2024 missing from
Help
SHARC
40770
Examples
Sharc 21375 example block based talkthru audio heard
one channel
SHARC
40363
IDDE
Debug option is not set in Debug_NWC configuration
VisualDSP++ 5.0 Update 7 Release Notes Rev 1.0
Page 7-24
SHARC
40578
LDF
undefined symbol ___memzero in C code
SHARC
40807
Linker
2137x objects are not filtered when using a section
qualifier
SHARC
41344
Linker
SW .plit sections can be mapped into PM segments
SHARC
40616
Loader
mem21k/meminit doesn't seem to allow all init space to
be used
SHARC
35537
Run Time Libraries
External memory access fns can cause errors for 21367+
SHARC
40216
Run Time Libraries
strncat() return incorrect for size argument of zero
SHARC
40241
Run Time Libraries
Issue reading binary file whose length is odd
SHARC
40359
Run Time Libraries
strncmp fails when second string is longer than the first
SHARC
40526
Run Time Libraries
labels in seg_init.asm are wrong/misleading
SHARC
40763
Run Time Libraries
The short-word-code set_flag library function
crashes/loop
SHARC
40836
Run Time Libraries
seg_init output section too small
SHARC
40881
Run Time Libraries
cfft may fail if the twiddle table is in external memory
SHARC
40919
Run Time Libraries
Correction to MediaLB bit defn in PMCTL registerdef21469.h
SHARC
24283
Simulator
SPORT loopback without DMA does not work
SHARC
33719
Simulator
No simulation of MTMDMA
SHARC
36416
Simulator
21369 External to Internal Memory DMA does not work
SHARC
40221
Simulator
TRUNC incorrect for negative underflow when TRUNC bit
is set
SHARC
40766
Simulator
SPORTs are not supported
SHARC
40812
VDK
VDK omits SPERRI interrupt on 21368/9
Known Tools Anomalies
Details can be found on the Tools Anomaly Web page. The URL is:
http://www.analog.com/processors/tools/anomalies
VisualDSP++ 5.0 Update 7 Release Notes Rev 1.0
Page 7-25
VisualDSP++® 5.0 Update 6 Release Notes
Revision 1.3
August 24, 2009
Table of Contents
Nomenclature ...................................................................................................................................... 6-3
Release Notes ...................................................................................................................................... 6-3
Installation ........................................................................................................................................... 6-3
Identifying Your VisualDSP++ Version ............................................................................................. 6-3
Installing the Update........................................................................................................................ 6-3
Cloning VisualDSP++ ........................................................................................................................ 6-3
Definitions ............................................................................................................................................ 6-4
TAR – Tools Anomaly Reference Number ........................................................................................ 6-4
New Hardware Support ....................................................................................................................... 6-5
New Processors and Processor Revision Support............................................................................ 6-5
Processor Revision Deprecation ...................................................................................................... 6-5
New Evaluation Board Support ............................................................................................................ 6-6
USB EZ-Extender® ............................................................................................................................ 6-6
ADSP-BF518F EZ-Board Examples .................................................................................................... 6-6
ADSP-BF526 EZ-Board Examples...................................................................................................... 6-6
Landscape LCD EZ-EXTENDER Examples .......................................................................................... 6-6
New System Services and Device Drivers ............................................................................................ 6-7
USB Audio Class Driver..................................................................................................................... 6-7
LCD Driver ........................................................................................................................................ 6-7
Capacitive Touch Controller Driver .................................................................................................. 6-7
Touch Screen Controller Driver ....................................................................................................... 6-7
ADSP-BF51x System Services ........................................................................................................... 6-7
PWM System Service ....................................................................................................................... 6-7
New Examples ...................................................................................................................................... 6-7
Boot ROM Code ................................................................................................................................... 6-8
Init Code ............................................................................................................................................... 6-8
PLL / Voltage Regulator.................................................................................................................... 6-8
ADSP-2146x Processor Series .............................................................................................................. 6-9
Feature Macros ................................................................................................................................ 6-9
New Compiler Switches ................................................................................................................... 6-9
New Pragma Support ..................................................................................................................... 6-10
New Automatic Attributes ............................................................................................................. 6-10
New Assembler Switches ............................................................................................................... 6-10
New .SECTION Directive Qualifiers ................................................................................................ 6-11
New Assembler Directives ............................................................................................................. 6-11
New Assembler Informational ea2536 .......................................................................................... 6-12
New System Registers Header Files ............................................................................................... 6-12
Processor Header Files ................................................................................................................... 6-12
Run-Time Libraries ......................................................................................................................... 6-13
LDF and Mapping Changes............................................................................................................. 6-13
VisualDSP++ 5.0 Update 6 Release Notes Rev 1.3
Page 6-1
Enhanced Disassembly Window Display of Pipeline Stages .......................................................... 6-14
Project Configuration ..................................................................................................................... 6-14
Migrating Projects from the ADSP-2146x Beta 1 Update .............................................................. 6-15
Accelerator Simulation................................................................................................................... 6-15
Peripheral Simulation .................................................................................................................... 6-15
TAR 40528: .SEGMENT assembler directive may behave incorrectly .......................................... 6-15
USB Stack Enhancements .................................................................................................................. 6-16
Robustness ..................................................................................................................................... 6-16
Better Device Detection ................................................................................................................. 6-17
Extensibility .................................................................................................................................... 6-17
Net2272 ......................................................................................................................................... 6-17
Critical Fixes/Changes ........................................................................................................................ 6-20
ADSP-BF51x any/none/0.0 Support ............................................................................................... 6-20
Active CPLBs (Blackfin) ................................................................................................................... 6-20
Compiler Changes for MISRA Exemplar Suite (Blackfin)................................................................ 6-20
New compiler error (cc2238) for pragma interrupt functions ...................................................... 6-21
New DCPLB_DATAx and ICPLB_DATAx bit position macros (Blackfin) .......................................... 6-21
New VSTAT Macro in defBF52x_base.h (ADSP-BF51x/BF52x) ...................................................... 6-22
Deprecated IWR Macro (ADSP-BF51x/BF52x) ............................................................................... 6-22
New Messages Due to the SIMD SHARC Assembler Enforcing Loop Restrictions......................... 6-22
TAR 39444: RFRAME Instruction Only Used in Delay Slots (SHARC) ............................................ 6-23
TAR 40221: TRUNC Incorrect for Negative Underflow (SHARC) ................................................... 6-23
TAR 40290: New Simulator Warning for __lib_prog_term (SHARC) ............................................. 6-23
Silicon Anomaly Workarounds ........................................................................................................... 6-24
Silicon Anomaly 05000412 (ADSP-BF561) ..................................................................................... 6-24
Silicon Anomaly 05000426 (ADSP-BF5xx) ...................................................................................... 6-24
Silicon Anomaly 05000428 (ADSP-BF561) ..................................................................................... 6-25
Silicon Anomaly 09000020 (ADSP-2137x)...................................................................................... 6-25
Silicon Anomaly 09000023 (ADSP-2137x)...................................................................................... 6-26
Anomaly Charts .................................................................................................................................. 6-27
Tools Anomalies Addressed ........................................................................................................... 6-27
Known Tools Anomalies ................................................................................................................. 6-28
VisualDSP++ 5.0 Update 6 Release Notes Rev 1.3
Page 6-2
Nomenclature
In the past, VisualDSP++ updates were labeled by the month and year of their release. In order to
improve clarity, updates are now numbered (e.g., Update 1, Update 2, etc.).
Release Notes
These release notes subsume the release notes for previous updates. Release notes for previous
updates can be found at the end of this document.
Installation
This update can only be installed on a previous VisualDSP++ 5.0 installation. If VisualDSP++ 5.0 is not
installed, please install it first. Installation on a previous update is permitted. If a newer update has
already been installed, please do not install this update. This update is not intended to be installed on
alpha or beta releases. For example, do not install this update on the ADSP-2146x Beta 1 Update.
Identifying Your VisualDSP++ Version
The VisualDSP++ release and update number can be found in 2 locations:
5. In the Control Panel, open the Add/Remove Programs applet.
6. In the VisualDSP++ Integrated Development and Debug Environment (IDDE), select Help 
About VisualDSP++.
Installing the Update
Follow the instructions below for installing this update. Please note that since VisualDSP++ supports
having multiple instances installed on a single system. See the Cloning VisualDSP++ section below for
more information.
17. Use the Start Menu to navigate to VisualDSP++ “Maintain this installation”. By default, this is at
Start Menu  All Programs  Analog Devices  VisualDSP++ 5.0.
18. Select “Go to the Analog Devices website” and click Next. This will open a window in your web
browser.
19. Select the appropriate Processor Software Tools Upgrades to match your processor.
20. Select and download the desired update (VisualDSP++ 5.0_Update6.vdu) to your hard drive.
21. Again, use the Start Menu to navigate to VisualDSP++ “Maintain this installation”.
22. Select “Apply a downloaded Update” and click Next.
23. Browse for the downloaded Update file (VisualDSP++ 5.0_Update6.vdu) and click Next.
24. Follow the on-screen prompts to complete installation of this Update.
Cloning VisualDSP++
VisualDSP++ supports cloning of an existing installation. A clone of an installation creates a new
instance of a product from an existing installation, rather than from a CD or web software distribution.
The use of clones allows you to maintain multiple versions of VisualDSP++ on the same PC at different
update levels, and provides a risk-free way to "test" new updates or patches.
To clone your existing installation of VisualDSP++:
VisualDSP++ 5.0 Update 6 Release Notes Rev 1.3
Page 6-3
9. Go to Start->Programs->Analog Devices->VisualDSP++ 5.0 (or equivalent)->Maintain this
Installation
10. Select "Clone this Installation" and click Next.
11. Optionally click Advanced to set the Start menu path.
12. Enter the Clone install path and click Next.
Definitions
This section provides definitions for terminology relating to VisualDSP++ and this document.
TAR – Tools Anomaly Reference Number
Tools Anomaly Reference Number, or TAR, is used for tracking confirmed defect reports in
VisualDSP++.
VisualDSP++ 5.0 Update 6 Release Notes Rev 1.3
Page 6-4
New Hardware Support
VisualDSP++ updates often include support for new processors, new silicon revisions for existing
processors and new EZ-KIT Lite® and EZ-Board® evaluation systems. In order to support these, minor
revisions are made to the tool chain and additional system services and device drivers need to be
added. This section describes the new support available in this update.
New Processors and Processor Revision Support
This section lists new processors and processor revisions available in this update. Refer to the data
sheets and hardware reference manuals for information on system configuration, peripherals,
registers, and operating modes.
Update 6 introduces a new processor series to the SHARC® processor family:




ADSP-21462 silicon revision 0.0
ADSP-21465 silicon revision 0.0
ADSP-21467 silicon revision 0.0
ADSP-21469 silicon revision 0.0
No new Blackfin® or TigerSHARC® processors are supported with Update 6.
Update 6 also provides support for the following silicon revisions to existing Blackfin® processors:




ADSP-BF512 silicon revision 0.1
ADSP-BF514 silicon revision 0.1
ADSP-BF516 silicon revision 0.1
ADSP-BF518 silicon revision 0.1
No new silicon revisions to existing SHARC® or TigerSHARC® processors are supported with Update 6.
Processor Revision Deprecation
Support for the following silicon revisions are deprecated in Update 6 as the revision was never
released.

ADSP-BF561 silicon revision 0.4
VisualDSP++ 5.0 Update 6 Release Notes Rev 1.3
Page 6-5
New Evaluation Board Support
Support has been added for the following new evaluation boards.
USB EZ-Extender®
Update 6 introduces initial support for the USB EZ-Extender which connects with both Blackfin and
SHARC EZ-KIT Lite and EZ-Board evaluation systems. The Blackfin evaluation systems include the ADSPBF518F, ADSP-BF526, ADSP-BF537, ADSP-BF538F and ADSP-BF548 evaluation systems as well as future
EZ-Boards. The SHARC evaluation systems include soon to be released ADSP-21469 EZ-Board as well as
other future EZ-Boards. Examples for the ADSP-BF518F EZ-Board are provided for bulk loopback, bulk
redirect and mass storage:
Blackfin\Examples\USB EZ-EXTENDER\bulk_loopback_app
Blackfin\Examples\USB EZ-EXTENDER\bulk_redirect_io_app
Blackfin\Examples\USB EZ-EXTENDER\mass_storage_app
ADSP-BF518F EZ-Board Examples
VisualDSP++ 5.0 Update 6 includes additional examples for the ADSP-BF518F EZ-Board evaluation
system:
Blackfin\Examples\ADSP-BF518F
Blackfin\Examples\ADSP-BF518F
Blackfin\Examples\ADSP-BF518F
Blackfin\Examples\ADSP-BF518F
Blackfin\Examples\ADSP-BF518F
Blackfin\Examples\ADSP-BF518F
EZ-Board\LAN\DNS_Client
EZ-Board\LAN\FileServerStdio
EZ-Board\LAN\HTTP_Server
EZ-Board\LAN\Multicast_Sender
EZ-Board\LAN\PTP*
EZ-Board\LAN\TCPIP_Trace
*This is a new example for Precise Time Protocol necessary for IEEE-1588 support.
ADSP-BF526 EZ-Board Examples
VisualDSP++ 5.0 Update 6 includes additional examples for the ADSP-BF526 EZ-Board. The example
can be found in the following directories:
Blackfin\Examples\ADSP-BF526
Blackfin\Examples\ADSP-BF526
Blackfin\Examples\ADSP-BF526
Blackfin\Examples\ADSP-BF526
Blackfin\Examples\ADSP-BF526
Blackfin\Examples\ADSP-BF526
EZ-KIT
EZ-KIT
EZ-KIT
EZ-KIT
EZ-KIT
EZ-KIT
Lite\drivers\usb\bulk_loopback_app
Lite\drivers\usb\bulk_redirect_io_app
Lite\drivers\usb\mass_storage_app
Lite\drivers\usb\mass_storage_host_app
Lite\services\FileSystem\NAND
Lite\services\FileSystem\VDK
Landscape LCD EZ-EXTENDER Examples
VisualDSP++ 5.0 Update 6 includes a Landscape LCD EZ-Extender example for the ADSP-BF526 EZ-Board
evaluation system. This example demonstrates the use of the LCD Driver, Capacitive Touch Controller
Driver and Touch Screen Controller Driver.
Blackfin\Examples\Landscape LCD EZ-EXTENDER\SketchPad
VisualDSP++ 5.0 Update 6 Release Notes Rev 1.3
Page 6-6
New System Services and Device Drivers
The following are now supported by VisualDSP++ 5.0:
USB Audio Class Driver
The USB Audio Class Driver is new with Update 6. Examples are provided for the ADSP-BF526, ADSPBF527 and ADSP-BF548 evaluation systems:
Blackfin\Examples\ADSP-BF526 EZ-KIT Lite\Drivers\usb\usb_audio_app
Blackfin\Examples\ADSP-BF527 EZ-KIT Lite\Drivers\usb\usb_audio_app
Blackfin\Examples\ADSP-BF548 EZ-KIT Lite\Drivers\usb\usb_audio_app
LCD Driver
The LCD Driver to support the LCD on the Landscape LCD Extender has been added for Update 6. The
new Sketchpad example for the ADSP-BF526 EZ-Board demonstrates how to use this new driver.
Capacitive Touch Controller Driver
The Capacitive Touch Controller Driver to support the AD7147 on the Landscape LCD Extender has
been added for Update 6. The new Sketchpad example for the ADSP-BF526 EZ-Board demonstrates
how to use this new driver.
Touch Screen Controller Driver
The Touch Screen Controller Driver to support the AD7879 on the Landscape LCD Extender has been
added for Update 6. The new Sketchpad example for the ADSP-BF526 EZ-Board demonstrates how to
use this new driver.
ADSP-BF51x System Services
System Services and Device Driver support for the ADSP-BF51x processor series and ADSP-BF518F EZBoard has been added for Update 6.
PWM System Service
The PWM peripheral is new with Update 6. It is supported for the ADSP-BF51x processor series. An
example for the ADSP-BF518 EZ-Board has been provided:
Blackfin\Examples\ADSP-BF518F EZ-Board\Services\PWM\pwm_sine_wave
New Examples
This section specifies new examples that are not specific to evaluation boards. No new examples for
this section are provided with Update 6.
VisualDSP++ 5.0 Update 6 Release Notes Rev 1.3
Page 6-7
Boot ROM Code
This section describes changes to the Boot ROM code.
New Boot ROM Code is available in Update 6 for the following processors:
 ADSP-BF51x rev 0.0
 ADSP-BF522/524/526 rev 0.1
 ADSP-BF54xM rev 0.3
Init Code
This section describes the changes to the Init Code.
PLL / Voltage Regulator
Changing the PLL and the Voltage Regulator is now turned off by default. You can activate this feature
again in the corresponding initcode header file. For example, undefine the following in
ezkitBF527_initcode.h:
#define __ACTIVATE_DPM__
This was done to be compatible with the emulator register resets in the processor XML files, which just
set up the EBIU.
VisualDSP++ 5.0 Update 6 Release Notes Rev 1.3
Page 6-8
ADSP-2146x Processor Series
The ADSP-2146x is a new SHARC processor series that supports a short word instruction set for code
size reduction. The ADSP-2146x is binary backwards compatible; that is, ADSP-2137x binary code will
run on the ADSP-2146x without modification. Short word instructions and normal word instructions
must be in separate sections, but otherwise can both be used in the same application for optimal
compatibility. This section outlines the changes necessary to VisualDSP++ 5.0 provided in Update 6 to
support this new processor series.
At the time of the Update 6 release, the short word instruction set had not been fully tested. It is
advisable to use the normal word instruction set.
Feature Macros
The following macros are automatically predefined by the assembler, compiler and linker:
New macro
Description
__2146x__
__214xx__
All ADSP-2146x processors
__ADSP21462__
ADSP-21462
ADSP-21465
ADSP-21467
ADSP-21469
__ADSP21465__
__ADSP21467__
__ADSP21469__
The following macros are automatically predefined by the assembler and compiler:
New macro
__NORMAL_WORD_CODE__
__SHORT_WORD_CODE__
Description
ADSP-2146x processors when building in normal word mode.
ADSP-2146x processors when building in short word mode.
New Compiler Switches
The following C/C++ compiler switches have been added:
-normal-word-code
The –normal-word-code switch is for ADSP-2146x processors only. It has the same effect as
compiling with the -nwc switch. It directs the compiler to generate instructions of normal word size
(48-bits).
-nwc
Same as "-normal-word-code".
-short-word-code
VisualDSP++ 5.0 Update 6 Release Notes Rev 1.3
Page 6-9
The -short-word-code switch is for ADSP-2146x processors only. It has the same effect as
compiling with the -swc switch and directs the compiler to generate instructions of short word size
(16/32/48-bits). This switch is the default setting when compiling for ADSP-2146x processors.
-swc
Same as "-short-word-code".
New Pragma Support
The C/C++ compiler support for #pragma section and #pragma default_section has been
modified to accept new section qualifiers.
New Qualifier Description
SW
code is short word (ADSP-2146x only)
NW
code is normal word (ADSP-2146x only)
Example usage:
#pragma section("foo", SW)
#pragma default_section(CODE,"foo2", NW)
// Code is short word
// Code is normal word
New Automatic Attributes
When -no-auto-attrs is not specified, the compiler defines a new default attribute called
"Encoding". The value of the attribute depends on the code produced during compilation.
•
If only short word code is produced, the attribute has the value “SW”.
•
If only normal word code is produced, the attribute has the value “NW”.
•
If both short and normal word code is produced, the attribute has the value “Mixed”.
New Assembler Switches
The following assembler switches have been added:
-normal-word-code
Instructs the assembler not to treat input sections bearing the qualifier "/PM" as if they were "/SW".
-nwc
Same as "-normal-word-code".
-short-word-code
Instructs the assembler to treat input sections bearing the qualifier "/PM" as if they were "/SW".
-swc
Same as "-short-word-code".
-swc-exclude name1[,name2...]
Excludes the named section[s] from the effect of the “-swc“ switch.
VisualDSP++ 5.0 Update 6 Release Notes Rev 1.3
Page 6-10
New .SECTION Directive Qualifiers
There are two new qualifiers for the .SECTION directive:
SW
16-bit short word section. This specifies that the section contains instructions that are to be assembled
for loading into a 16-bit short word memory segment. Instructions will be assembled as compressed
32- or 16-bit instructions, if possible.
NW
Normal word section. Instructions will be assembled as normal 48-bit instructions to be loaded into a
48-bit memory segment. Unlike the PM section qualifier, NW sections will always be 48-bits -- they are
not affected by the -swc switch.
New Assembler Directives
Three new directives are available to control whether instructions will be compressed:
.COMPRESS
This directive indicates that all the following instructions in the source file should be compressed, if
possible. It has no effect on sections that are not being assembled as short word. Its effect is canceled
by a .NOCOMPRESS directive later in the source file.
.NOCOMPRESS
This directive indicates that all the following instructions in the source file should not be compressed.
Its effect is canceled by a .COMPRESS directive later in the source file.
.FORCECOMPRESS
This directive causes the next instruction to be compressed, if possible. Has no effect on sections that
are not being assembled as short word. Only the immediately following assembly instruction is
affected by this directive. This directive overrides the effect of a previous .NOCOMPRESS directive,
but only for this one instruction. It can also override certain conservative assumptions normally made
by the assembler, such as when an immediate value is an expression containing a symbol; in this case,
the assembler normally does not generate a compressed instruction because the ultimate value of the
symbolic expression might not fit in the immediate field of the compressed instruction.
Note that .COMPRESS and .FORCECOMPRESS are advisory only:
 There is no guarantee that a particular instruction will be compressed, even if it is theoretically
possible to do so.
 Instructions might be 'uncompressed' if they are near the end of a DO loop.
 Whether you get compression for a particular instruction might change due to assembler
enhancements or fixes.
 There will be no warnings if instructions cannot be compressed.
Therefore it is probably not recommended to create code layouts (e.g. tables with fixed size entries)
that depend on particular instructions being compressed.
VisualDSP++ 5.0 Update 6 Release Notes Rev 1.3
Page 6-11
New Assembler Informational ea2536
There is a difference in addressing while in short word mode –instructions are no longer one address
unit apart as it is in normal word mode (and for all other SHARC parts). So, address arithmetic is
dangerous. Unfortunately, the SHARC calling and returning sequence relies on address arithmetic
based on each instruction being one instruction apart.
SHARC parts have always used a call sequence like:
cjump _func (db); dm(i7,m7)=r2; dm(i7,m7)=pc;
The function that gets called will compute the return address by taking the saved PC and adding 1 to it.
The problem occurs in short word mode where the return address is no longer one address further
than the saved PC because all instructions are no longer guaranteed to be one address unit long.
In order to maintain compatibility with all existing SHARC calling conventions, we have adopted the
following paradigm for invoking a function:
cjump _func (db); dm(i7,m7)=r2; dm(i7,m7)=<Unique_label>-1;
<Unique_label>:
This calling sequence will work in short word mode and in normal word mode and with any parts in the
SHARC family. All existing return code will work since it will take the saved address (no longer
necessarily the PC of the last instruction in the delay slot) and incrementing it will get the address of
the next instruction.
The assembler does this fix up automatically when necessary. Informational message ea2536 lets the
user know that the assembler made this change. (If you were to look at the saved address in the
debugger you might notice that it didn’t save the PC and wonder why). You can modify your source
code and it will still work for the 2136x as well as the 2146x. If you don’t modify your source code, the
assembler will continue to do the fix up to make it work.
New System Registers Header Files
The following header files to provide symbolic names of system registers and their bits have been
added. These are included from platform_include.h.
214xx/include/def21462.h
214xx/include/def21465.h
214xx/include/def21467.h
214xx/include/def21469.h
214xx/include/Cdef21462.h
214xx/include/Cdef21465.h
214xx/include/Cdef21467.h
214xx/include/Cdef21469.h
Processor Header Files
The following processor-specific header files have been added. These are included from
processor_include.h.
VisualDSP++ 5.0 Update 6 Release Notes Rev 1.3
Page 6-12
214xx/include/21462.h
214xx/include/21465.h
214xx/include/21467.h
214xx/include/21469.h
ADSP-21462
ADSP-21465
ADSP-21467
ADSP-21469
DSP
DSP
DSP
DSP
functions
functions
functions
functions
Run-Time Libraries
New C/C++ files and libraries have been included for ADSP-2146x processors.
Description
C run-time library
C++ run-time library
C++ run-time library with
exception handling support
DSP run-time library
I/O run-time library
I/O run-time library with no
support for alternative device
drivers or printf(“%a”)
VDK libraries
C start-up file — calls set-up
routines and main()
C++ start-up file — calls setup routines and main()
Library/File Name
libc.dlb libcmt.dlb libc_nwc.dlb libcmt_nwc.dlb
libcpp.dlb libcppmt.dlb libcpp_nwc.dlb
libcppmt_nwc.dlb
libcppeh.dlb libcppehmt.dlb libcppeh_nwc.dlb
libcppehmt_nwc.dlb
libdsp.dlb libdsp_nwc.dlb
libio.dlb libiomt.dlb libio_nwc.dlb libiomt_nwc.dlb
libio_lite.dlb libio_litemt.dlb libio_lite_nwc.dlb
libio_litemt_nwc.dlb
TMK-2146X.dlb VDK-CORE-21469.dlb VDK-i-2146X.dlb
VDK-e-2146X.dlb VDK-n-2146X.dlb TMK-2146X_nwc.dlb
VDK-CORE-21469_nwc.dlb VDK-i-2146X_nwc.dlb
VDK-e-2146X_nwc.dlb VDK-n-2146X_nwc.dlb
21462_hdr.doj 21465_hdr.doj 21469_hdr.doj
21467_hdr.doj
21462_cpp_hdr.doj
21465_cpp_hdr.doj
21467_cpp_hdr.doj
21469_cpp_hdr.doj
21462_cpp_hdr_mt.doj
21465_cpp_hdr_mt.doj
21467_cpp_hdr_mt.doj
21469_cpp_hdr_mt.doj
The new libraries located in the 214xx\lib in the install are built without any workarounds enabled
(-si-revision none).
In addition, a library directory called 21469_rev_any is supplied. Libraries in this directory will
contain workarounds for all relevant anomalies on all revisions of ADSP-2146x processors.
Libraries with names that end in “_nwc.dlb” have been built for normal word mode (-nwc). Other
libraries are built for short word mode (-swc) where possible.
LDF and Mapping Changes
A new SW memory type keyword has been introduced for the ADSP-2146x processor family. The SW
memory type refers to short word memory (16 bits wide). This new memory type can be used within
the MEMORY command, and as a section qualifier in the section mapping command. See the
VisualDSP++ 5.0 Linker and Utilities Manual for more information.
VisualDSP++ 5.0 Update 6 Release Notes Rev 1.3
Page 6-13
A new output section memory type qualifier has been introduced. This qualifier forces all input objects
within the output section to be mapped as the memory type specified. Not all combinations are valid.
See the table below for a list of newly supported translation mappings.
Input Section Type
PM
DM
DATA64
Output Section Qualifier
PM
DM (32-bit)
DATA64
Memory Segment Mapped To
SW
SW
SW
Using the section qualifier mapping of NW/DATA64/DM input sections into SW memory segments is
allowed for ADSP-2146x processor series. The linker will place the input sections into a SW memory
segment and then translate the objects' addresses to the specified memory space. The resulting
behavior is as if the memory segment was defined as the memory type specified in the output section
qualifier.
Enhanced Disassembly Window Display of Pipeline Stages
Changes have been made to the Disassembly Window to provide better information about the
instruction pipeline:
1. The Disassembly Window now indicates when the instruction in Address or Decode stage has
been overridden or had a stall inserted. The gutter label of the instruction in that stage will
change from upper case to lower case in such instances – that is, from ‘A’ to ‘a’ for Address
stage, and from ‘D’ to ‘d’ for Decode stage.
2. The window will show that the pipeline continues to advance while stepping through a nondelayed branch in the ADSP-2136x, ADSP-2137x, and ADSP -2146x parts. Previously, the arrow
indicating the execute stage had stayed on the branch instruction for the three steps following
such branches. Now the arrow becomes gray and advances with each step following the
branch until it becomes a green arrow at the branch target address.
Project Configuration
Additional project configurations are provided for the ADSP-2146x processor series to better support
the new Variable Instruction Set Assembly (VISA):
The current Project Configurations set the Assembler, Compiler-Processor and Linker-Processor to
default to VISA:
Debug
Release
New Project Configurations set the Assembler, Compiler-Processor and Linker-Processor to default to
normal word:
DebugNWC
ReleaseNWC
VisualDSP++ 5.0 Update 6 Release Notes Rev 1.3
Page 6-14
Migrating Projects from the ADSP-2146x Beta 1 Update
It is not advisable to migrate projects directly from the Beta 1 Update as there has been a number of
changes. Should this be necessary, please keep in mind the following changes:


The default LDFs have changed
The Debug and Release Project Configurations in Beta 1 built normal word projects. They will
build VISA / short word projects in Update 6. In order to build a normal word project, make the
following changes to the Project Options:
o On the Compiler-Processor property page, set the Variable Instruction Set Encoding
(VISA) to ”Generate Normal Word code”
o On the Assembler property page, set the Variable Instruction Set Encoding (VISA) to
”Generate Normal Word code”
o On the Linker-Processor property page, set the Libraries to ”Use Normal Word code
Run-Time Libraries.
Accelerator Simulation
This release has simulator support for the ADSP-2146x FIR, IIR and FFT hardware accelerators.
Peripheral Simulation
The simulator will provide support for the following ADSP-2146x peripherals in future releases:
 DDR2
 Link Ports
 SPORT DMA
The simulator does not provide support for the following ADSP-2146x peripherals:
 DDR2 controller
 DTCP
 Link Ports
 MediaLB
 Programmable Clock Generator
 Shared Memory
 S/PDIF
 SPI
 SPORTs
 SRC
 TWI
 UART
TAR 40528: .SEGMENT assembler directive may behave incorrectly
The .SEGMENT and .SECTION directives behave differently with the assembler. The .SEGMENT defaults
to normal word code, whereas the .SECTION defaults to whichever mode is enabled. To avoid any
issues, it is best to use the .SECTION assembler directive and not the .SEGMENT assembler directive.
VisualDSP++ 5.0 Update 6 Release Notes Rev 1.3
Page 6-15
USB Stack Enhancements
The ADI USB Stack has undergone a considerable overhaul and with Update 6 provision is made for a
more robust and extensible solution to your USB needs.
Robustness
Several issues have been addressed that were the cause of lock ups and data corruption, particularly
regarding the operation of the ADI-specific Bulk transfer class driver.
With ADSP-BF548 rev 0.1 and higher and ADSP-BF52x rev 0.2 and higher, the PHY calibration register is
set upon reset to a factory-defined default, obtained from direct calibration of the specific part. This
calibration value may vary from part to part. It is recommended that an application adds the following
statements to the initialization code of their application:
#include <builtins.h>
#include <sys/platform.h>
/* ... */
/* for rev 0.0 we need to calibrate the USB analog PHY
*/
if ( 0x00 == ((*pDSPID) & 0xFF))
{
/* clear it to make sure USB will work after booting */
*pUSB_APHY_CNTRL = 0;
/* setup calibration register */
*pUSB_APHY_CALIB = 0x5411;
ssync();
}
Similarly, for ADSP-BF52x:
if (
(0x00 == ((*pDSPID) & 0xFF)) ||
(0x01 == ((*pDSPID) & 0xFF)))
{
/* clear it to make sure USB will work after booting */
*pUSB_APHY_CNTRL = 0;
/* setup calibration register */
*pUSB_APHY_CALIB = 0x6510;
ssync();
}
Another aspect of the improvements in robustness, the USB controller driver changed to use separate
handlers for each of the four USB interrupts (ADI_INT_USB_INT0, ADI_INT_USB_INT1,
ADI_INT_USB_INT2, ADI_INT_USB_DMAINT). By default, all the USB Interrupt handlers are chained at
the default USB priority level (IVG 11 for ADSP-BF54x and IVG10 for ADSP-BF52x). It is important
therefore that memory is made available to the interrupt manager for three additional secondary
interrupt handlers. Otherwise you may see the following message displayed in the Output Window of
VisualDSP++ 5.0:
ERROR: Insufficient Memory in the Interrupt Manager
VisualDSP++ 5.0 Update 6 Release Notes Rev 1.3
Page 6-16
USB requires memory for four secondary handlers
[sizeof(ADI_INT_SECONDARY_MEMORY * 4)]
Supply more memory using adi_int_Init()
The simplest way to resolve the issue is to increase the amount of memory passed to the adi_int_Init()
routine by (3 * ADI_INT_SECONDARY_MEMORY). You could also experiment with changing the IVG levels of
each interrupt to suit your application requirements. This will change the number of additional
secondary handlers according to your existing interrupt priority assignments.
To change the priority level of an interrupt, add the following statement in your application code
ahead of enabling the USB driver (using the ADI_USB_ENABLE_USB Command). For example to change
the priority of the ADI_INT_USB_INT0 interrupt to IVG 10:
adi_int_SICSetIVG(ADI_INT_USB_INT0, 10 );
To assist you in this, note that each of the above interrupts are assigned to handle the following
events:
ADI_INT_USB_INT0
Data receive events (to Blackfin)
ADI_INT_USB_INT1
Data transmission events (from Blackfin)
ADI_INT_USB_INT2
Connection events
ADI_INT_USB_DMAINT
DMA buffer completion events
Better Device Detection
More USB memory devices can now be detected, including some card reader devices (single cards only
– multiple cards are outside the scope of the hardware) and low-cost USB flash drives. Device
detection can also be achieved at higher core clock frequencies (up to 600 MHz) on the ADSP-BF548
processor.
Hot plug support is greatly improved making the removal and insertion of USB memory devices quick
and reliable. A consequence of this is that it may take slightly longer for the device mode applications
to be recognized by the host PC.
Extensibility
Support has been added so that more complex device classes can be implemented, such as the USB
Audio class for which Update 6 provides both a class driver and example applications. Support is
included for:



Large configurations
Multiple alternate interfaces
Arbitrary data transmitted and received on Endpoint Zero for control interfaces.
Net2272
As well as providing improved support for the built-in USB OTG controllers on ADSP-BF52x/54x,
improvements have also been made to the net2272 controller driver to provide enhanced support for
VisualDSP++ 5.0 Update 6 Release Notes Rev 1.3
Page 6-17
Blackfin parts without integrated USB. The Audio class driver can be implemented on the net2272
interface but no examples are released at this time. Please contact Support if you require these
examples, stating the processor type for which you require them (ADSP-BF533, ADSP-BF561 only). In
addition to the extensibility improvements above, the following issue is also addressed.


Handling of multiple read/writes requests
No longer required to copy device driver to project directory
In order to provide greater flexibility with interrupt priorities, the net2272 driver has been changed to
use the default IVG level of the Memory DMA streams and Programmable Flag interrupts as set in the
System Interrupt Controller (SIC_IARx) registers. Unfortunately, on ADSP-BF533/BF537 processors, the
default priority of the Memory DMA interrupts are lower than that of the Programmable Flag
interrupt, which will result in lock up in existing applications. All net2272 examples have been updated
to set the priority of the Memory DMA interrupt to a higher priority than the Programmable Flag
interrupt as follows:
BF533/BF537
BF561
BF518 (new)
IVG 11
IVG 9
IVG 10
The ADI_USB_CMD_SET_DMA_CHANNEL I/O command has been added to facilitate the setting of this
priority level (without detailed knowledge of the Interrupt Manager peripheral ID value), e.g.:
adi_dev_Control(PeripheralDevHandle, ADI_USB_CMD_SET_DMA_IVG,
(void *)11);
Please see the examples in the VisualDSP++ installation for further details. These examples for the
ADSP-BF53x and ADSP-BF561 can be found under:
$(VDSP)\Blackfin\Examples\USB-LAN EZ-EXTENDER\USB
For the ADSP-BF518, the examples can be found under:
$(VDSP)\Blackfin\Examples\USB EZ-EXTENDER
Configuring the net2272 driver for DMA operation.
Users who previously took a private copy of the adi_usb_net2272.c driver source file in order to modify
the definition of the USE_DMA pre-processor macro should note that this is no longer necessary, and
its use will not produce the desired effect. The driver source now uses two macros, USE_RX_DMA and
USE_TX_DMA, to enable or disable its use of memory DMA. These macros may be defined in a
project's pre-processor options and used to selectively enable and disable DMA in either direction.
USE_RX_DMA and USE_TX_DMA should be given the value 0 to disable the use of DMA in the
respective direction or a non-zero value to enable it. The default values if none are supplied are
VisualDSP++ 5.0 Update 6 Release Notes Rev 1.3
Page 6-18
USE_RX_DMA=1 and USE_TX_DMA=0. This combination is chosen to provide the best performance for
the bulk loopback examples.
VisualDSP++ 5.0 Update 6 Release Notes Rev 1.3
Page 6-19
Critical Fixes/Changes
This section highlights significant changes due to software anomaly fixes or functional changes.
ADSP-BF51x any/none/0.0 Support
Revision "any" and "none" application builds failed to link in Update 5 as these revisions use the
revision 0.1+ memory map in the default and generated LDFs. The Update 6 linker is modified to
correctly check for the revision 0.1+ memory map so revisions "any" and "none" no longer fail.
This linker change means that applications built for revision 0.0 are built with the linker -nomemcheck
switch. This is automatically applied by the compiler driver (ccblkfn) when building for ADSP-BF51x
processors revision 0.0.
The linker will now issue the following warning when building for ADSP-BF518 parts and revision 0.0:
[Warning li2280] The ADSP-BF518 si-revision 0.0 has been deprecated, use -nomemcheck to
suppress error el2011
This warning is issued even when -nomemcheck is used. While this message says that revision 0.0 has
been deprecated that is not currently the case. The warning is not issued for builds that target ADSPBF512 or ADSP-BF516 but the use of -nomemcheck for these parts is also automatically included as they
have the same memory map change as ADSP-BF518.
Using -nomemcheck disables linker memory checking so care should be taken to ensure that memory is
defined correctly in customized LDFs in ADSP-BF51x revision 0.0 applications as any errors will not be
caught by the linker.
One potential issue is when building a project using revision "automatic" without being connected and
then subsequently connecting and loading that DXE to a revision 0.0 ADSP-BF51x target is that the will
fail. This is because "automatic" causes the tools to build for the default revision which is 0.1 when not
connected to target with rev 0.0. This issue can be avoided by explicitly building for revision "0.0"
when the target is an ADSP-BF51x revision 0.0 part.
Please review silicon anomaly 05-00-0444 in the ADSP-BF51x parts Errata Sheets for details of the
memory map change.
Active CPLBs (Blackfin)
All locked CPLBs will be loaded into the CPLB registers before any unlocked CPLBs, instead of just the
first 16 as happened previously. Error labels too_many_locked_data_cplbs and
too_many_locked_instruction_cplbs will indicate that there are at least 16 locked data or instruction
cplbs, respectively, and additional cplbs will be locked out.
Compiler Changes for MISRA Exemplar Suite (Blackfin)
The compiler MISRA checking has been enhanced to improve compliance against the MISRA-C:2004
Exemplar Suite. Other significant changes have been made to many of the VisualDSP++ header files to
further improve VisualDSP++ MISRA compliance.
VisualDSP++ 5.0 Update 6 Release Notes Rev 1.3
Page 6-20
New compiler error (cc2238) for pragma interrupt functions
A new error, cc2238, has been added to the C/C++ compilers. The error is issued if an interrupt
handler function is defined to take parameters. An interrupt handler function is a function defined
using any of the following compiler pragmas:




(used in the definition of Blackfin sys/exception.h macros
EX_INTERRUPT_HANDLER, EX_EXCEPTION_HANDLER and EX_NMI_HANDLER)
#pragma interrupt_complete (cc21k only)
#pragma interrupt_complete_nesting (cc21k only)
#pragma interrupt_reentrant (ccts only)
#pragma interrupt
Functions that are defined as interrupt handler functions cannot be passed parameters because they
are not explicitly called and are only run in response to an interrupt event. Functions that cause this
error to be issues should be modified to remove parameters.
New DCPLB_DATAx and ICPLB_DATAx bit position macros (Blackfin)
The defblackfin.h and def_LPBlackfin.h include files have had new bit positions macros added for the
DCPLB_DATAx and ICPLB_DATAx registers.
The new macros added to defblackfin.h for use by the ADSP-BF535 part are:







#define CPLB_USER_WR_P 3 /* 0=no write access, 0=write access allowed (user mode) */
#define CPLB_SUPV_WR_P 4 /* 0=no write access, 0=write access allowed (supervisor
mode) */
#define CPLB_L1SRAM_P 5 /* 0=SRAM mapped in L1, 0=SRAM not mapped to L1 */
#define CPLB_DA0ACC_P 6 /* 0=access allowed from either DAG, 1=access from DAG0 only
*/
#define CPLB_DIRTY_P 7 /* 1=dirty, 0=clean */
#define CPLB_L1_CHBL_P 12 /* 0=non-cacheable in L1, 1=cacheable in L1 */
#define CPLB_WT_P 14 /* 0=write-back, 1=write-through */
The new macros added to def_LPblackfin.h for use by non ADSP-BF535 parts are:








#define CPLB_PORTPRIO_P 9 /* 0=low priority port, 1= high priority port */
#define CPLB_LRUPRIO_P 8 /* 0=can be replaced by any line, 1=priority for nonreplacement */
#define CPLB_USER_WR_P 3 /* 0=no write access, 0=write access allowed (user mode) */
#define CPLB_SUPV_WR_P 4 /* 0=no write access, 0=write access allowed (supervisor
mode) */
#define CPLB_DIRTY_P 7 /* 1=dirty, 0=clean */
#define CPLB_L1_CHBL_P 12 /* 0=non-cacheable in L1, 1=cacheable in L1 */
#define CPLB_WT_P 14 /* 0=write-back, 1=write-through */
#define CPLB_L1_AOW_P 15 /* 0=do not allocate cache lines on write-through writes, 1=
allocate cache lines on write-through writes. */
Applications that contain their own local definitions of these macros may encounter compiler warning
"cc0047: {D} warning: incompatible redefinition of macro" if the definition does not match the
ones given above. Presuming that the application’s local definition is for the same purpose as the new
VisualDSP++ 5.0 ones it can be deleted. Otherwise the local definition and uses of the local definition
will need to be renamed.
VisualDSP++ 5.0 Update 6 Release Notes Rev 1.3
Page 6-21
New VSTAT Macro in defBF52x_base.h (ADSP-BF51x/BF52x)
A new macro called VSTAT for the PLL_STAT voltage regulator status bit has been added to the def
headers for ADSP-BF52x parts. If your application contains a macro called VSTAT and uses the ADSPBF52x def include files, you will need to change the application’s macro and uses to use a different
name to avoid build errors or warnings.
Deprecated IWR Macro (ADSP-BF51x/BF52x)
The ADSP-BF51x and ADSP-BF52x Blackfin processor series have two wakeup registers called SIC_IWR0
and SIC_IWR1. The ADSP-BF54x processor series has three wakeup registers, but other single-core
Blackfin processors designed prior to the ADSP-BF54x have only one wakeup register, called SIC_IWR.
If the register name SIC_IWR is used in an ADSP-BF51x or ADSP-BF52x application, the compiler does
not issue an error or a warning. It uses the legacy definitions contained in the include files
'def_BF51xbase.h' and 'defBF52xbase.h', which define SIC_IWR as equivalent to SIC_IWR0. This can be
misleading when porting an application from a previous Blackfin processor, which has only one wakeup
register, to a Blackfin processor with two wakeup registers. The application may have intended to
address all the wakeup bits, but by using the SIC_IWR register name, the compiled code will only
address the wakeup bits in SIC_IWR0, while SIC_IWR1 is neglected. The application may need to be
modified, if the intent was to address both the SIC_IWR0 and SIC_IWR1 registers.
If porting an application to an ADSP-BF51x or ADSP-BF52x, from an older Blackfin processor, any usage
of the SIC_IWR register in the source code should be examined to determine whether it should be
replaced by both the SIC_IWR0 and SIC_IWR1 registers.
New Messages Due to the SIMD SHARC Assembler Enforcing Loop Restrictions
The assembler will analyze hardware loop code, warning the user when the documented restrictions
have been violated, and providing a reminder when its static analysis cannot verify the code adheres to
the restrictions – specifically that a CALL in the last three instructions must return with the (LR) option
to preserve integrity of the loop.
The new messages the assembler can produce during this validation are:
Ea2018 – error detected that two loops end on the same instruction.
Ea2019 – warns that the code violates restrictions on loop end instructions.
Ea2020 – warns of a possible violation of the loop end restrictions, as when a call is in two instruction
loop and the assembler does not know the loop count. (a one iteration two instruction loop should not
have a CALL in it)
Ea2021 - reminder that any call in the last three instructions of a hardware loop must return with the
(LR) option.
Ea2022 – an arithmetic loop cannot end one instruction after the last instruction of a loop nested
within the arithmetic loop
Ea2023 – In the 2136x and later processors, loops cannot contain operations on LPSTK and PCSTK.
Ea2024 – if the end instruction resides at a lower address than the do instruction, the assembler
cannot validate the loop.
VisualDSP++ 5.0 Update 6 Release Notes Rev 1.3
Page 6-22
TAR 39444: RFRAME Instruction Only Used in Delay Slots (SHARC)
It has been reported by some customers that the rframe instruction is not, in fact, atomic, and it is
possible for an interrupt to occur during the execution of the rframe instruction. If this happens, the
function return sequence may execute incorrectly. To avoid this issue, the compiler will ensure that
the rframe instruction is either used only in a delay slot, or it is not used. This change will affect code
and projects that use the following compiler features:



the "optimize for space (-Os)" command line switch
the '-no-db' command-line switch
'#pragma no_db_return'
TAR 40221: TRUNC Incorrect for Negative Underflow (SHARC)
There have been enhancements to the compiler support routines which mean that the TRUNC
instruction is now used more often. Due to a simulator issue, some arithmetic operations (particularly
division and modulus operations) may report incorrect answers when executed on the simulator.
TAR 40290: New Simulator Warning for __lib_prog_term (SHARC)
The CRT header source (06x_hdr.asm for example) defined function ___lib_prog_term, executed after
_main returns, used to be: ___lib_prog_term pm(__done_execution)=pc; idle; jump
___lib_prog_term;
As of VisualDSP++ 5.0 Update 6, this code may cause the following simulator warning:
*** Write access to Read-only Address 0x900c1 in 32-bit space *** from instruction at PC
0x900be
The warning is valid and the write to __done_execution does not work. The warning indicates the issue
on parts where the write is actually to ROM. The fix that has been done is to remove this store along
with the associated __done_execution for all SHARC processors.
VisualDSP++ 5.0 Update 6 Release Notes Rev 1.3
Page 6-23
Silicon Anomaly Workarounds
Anomaly workaround information is available in the online help: Select Help  Contents  Graphical
Environment  Silicon Anomaly Support  Silicon Anomalies Tools Support and then click the
appropriate processor series.
Silicon Anomaly 05000412 (ADSP-BF561)
“TESTSET Instruction Causes Data Corruption with Writeback Data Cache Enabled”
The anomaly occurs when a TESTSET instruction is used to operate on L2 memory and there is data in
external memory that is cached using write-back mode. The result is that data in L2 and/or external
memory can become corrupted.
Runtime library workarounds for this anomaly were made in VisualDSP++ 5.0 Update 5. In Update 6
compiler and assembler support has been added.
The Update 6 compiler issues the required workaround sequence of code to avoid the errata for calls
to the testset compiler built-in function when the workaround is enabled. This workaround is
automatically enabled when building for parts and revisions impacted by the 05000412 anomaly or
when "-workaround 05000412" is passed to the compiler. The macro __WORKAROUND_05000412 is
defined when the workaround is enabled.
The assembler issues a detection warning ea5519 when a TESTSET instruction is not immediately
preceded by an SSYNC (required by the 05000412 errata workaround). This detection warning is
automatically enabled when building for parts and revisions impacted by the 05000412 anomaly or
when "-anomaly-detect 05000412" is passed to the assembler. The macro
__ASM_DETECT_05000412__ is defined when this anomaly detection is enabled.
Known limitations with this anomaly support:
 TAR40784 : "05000412 anomaly detection fails if TESTSET follows .align"
Silicon Anomaly 05000426 (ADSP-BF5xx)
“Speculative Instruction Fetches Can Cause Spurious Hardware Errors”
The anomaly occurs when there is an indirect jump or call through a pointer which may point to an
invalid address on the opposite control flow of a conditional jump to the predicted taken path and
ICPLBS are disabled. The result of this is potentially spurious hardware errors.
Blackfin C/C++ compiler, VDK and run-time libraries workarounds for anomaly 05000426 were added in
VisualDSP++ 5.0 Update 5.
In Update 6 assembler anomaly detection support has been added. The assembler issues warning
ea5518 if either of the two instructions following a not predicted taken conditional jump or the target
of a predicted taken conditional jump is an indirect jump or call instruction. The anomaly detection is
VisualDSP++ 5.0 Update 6 Release Notes Rev 1.3
Page 6-24
not automatically enabled as many users will have ICPLBS meaning that the errata is avoided. Users
that do not use ICPLBS can enable the detection warning support by passing "-anomaly-detect
05000426" to the assembler. The macro __ASM_DETECT_05000426__ is defined when this anomaly
detection support is enabled.
Known limitations with this anomaly support:
 TAR40786 : assembler-behavior information in BLACKFIN-EDN-anomaly.xml for 05000426 is not
correct
 TAR40787 : -anomaly-detect 05000426 causes ea1222 "ID does not exist"
Silicon Anomaly 05000428 (ADSP-BF561)
“Lost Write to L2 Memory Following Speculative Read from L2 Memory”
The Blackfin C/C++ compiler, assembler, VDK and run-time libraries have been enhanced to include
workarounds for anomaly 05000428.
The anomaly occurs when a write to L2 memory is followed by a speculative read from L2 memory in
the shadow of a branch executed on core B. This results in the write being lost or corrupted.
The anomaly workaround was incomplete in Update 5. The following additional support is provided in
Update 6:
Assembler

Assembler detection of silicon anomaly 05000428 is enabled for silicon revision "any".
Compiler

The compiler ensures that the targets of predicted jumps are safe against the anomaly.
Run-Time Libraries


The source code for memcpy has been modified to work around this anomaly.
The source code for zero_crossd has been modified to work around this anomaly.
VDK

The code for the API PostMessage has been modified to work around this anomaly.
Silicon Anomaly 09000020 (ADSP-2137x)
“Wrong instruction address may be cached when PMDA instruction executing from external memory is
interrupted”
The compiler will ensure a "FLUSH CACHE" instruction is inserted at the start of interrupt service
routines - functions marked #pragma interrupt_complete and #pragma interrupt_complete_nesting
(those marked simply #pragma interrupt contain the workaround in the appropriate interrupt
dispatcher). This workaround is automatically enabled when building for parts and revisions impacted
by the 09000020 anomaly or when "-workaround 09000020" is passed to the compiler. The macro
__WORKAROUND_09000020 is defined when the workaround is enabled.
VisualDSP++ 5.0 Update 6 Release Notes Rev 1.3
Page 6-25
All runtime library interrupt dispatchers have been modified to workaround this anomaly using the
"FLUSH CACHE" instruction. In VDK, all interrupt vector table entries now have "FLUSH CACHE" as their
first instruction to workaround the anomaly.
Silicon Anomaly 09000023 (ADSP-2137x)
“Writes to LCNTR, CURLCNTR and LADDR from Internal Memory may fail if there is a DMA block
conflict”
The anomaly is avoided by ensuring that writes to LCNTR, CURLCNTR occur in two stages, rather than
loading them directly from memory. This workaround is used in the runtime libraries and VDK linked
when building for parts and revisions affected by the 09000023 errata.
Known limitations with this anomaly support:
 TAR40789 : rtl-behavior description in SHARC-2137X-anomaly.xml confusingly references "DMA
memory"
VisualDSP++ 5.0 Update 6 Release Notes Rev 1.3
Page 6-26
Anomaly Charts
Tools Anomalies Addressed
The following table is a list of tools anomalies addressed in VisualDSP++ 5.0 Update 6 for which details
can be found on the public tools anomaly website. Other tools anomalies have also been fixed in the
Update.
Details can be found on the Tools Anomaly Web page. The URL is:
http://www.analog.com/processors/tools/anomalies
Processor
Family
Tools
Anomaly
Report #
Tool
Description
MISRA issue with logical negative expression assigned to
boolean
All
39414
Compiler
All
Blackfin
39921
39634
Compiler
Compiler
Blackfin
39783
Compiler
Bad dependencies for paths with drive letters and using '/'
asm() cannot load to A1
BF548 "Getting Started Examples" misaligned address
violation
Blackfin
Blackfin
40179
36774
Compiler
Device Driver
internal error (circbuf.c:258) building code with circindex
SPI driver requires baud rate in slave mode
Blackfin
Blackfin
39698
40541
Device Driver
Device Driver
Blackfin
36663
Emulator
Failure to create more than 507 files on FAT 32 volume
adi_rawpid.h has no C++ linkage
SW Breakpoints Ignored Upon Return From Lockbox
Authentication
Blackfin
Blackfin
39639
39939
Emulator
Emulator
Blackfin
39766
Examples
Blackfin
40469
Examples
Blackfin
40592
Examples
Blackfin
40073
Linker
BF533 POST failed at Ethernet test for EZ-USBLAN board
Windows - Driver Entry Point Not Found
BF548 Driver Example UART AutoBaud readme.txt pb2
doesn't halt.
BF518F example Flash programmer Internal SPI won't load
dxe.
BF526 POST example readme for USB Peripheral/ Host
confusing.
LDF SIZEOF macro reports incorrect value when using
RESOLVE
Blackfin
Blackfin
Blackfin
40024
38085
38090
Loader
Run Time Libraries
Run Time Libraries
Compression: the later part of user application is lost in LDR
float16: negate_fl16 is incorrect
strtoull may give incorrect result
Blackfin
39572
Run Time Libraries
li2152 due to missing Instrumented Profiling support for BF51x
Blackfin
Blackfin
Blackfin
39623
39636
39637
Run Time Libraries
Run Time Libraries
Run Time Libraries
no prototype for adi_acquire_lock adi_try_lock with -no-builtin
memcpy() not safe against IC anomaly 05000428
zero_crossd() not safe against IC anomaly 05000428
VisualDSP++ 5.0 Update 6 Release Notes Rev 1.3
Page 6-27
Blackfin
Blackfin
39681
39705
Run Time Libraries
Run Time Libraries
Blackfin
39844
Run Time Libraries
Blackfin
40186
Run Time Libraries
Blackfin
39516
Source Generator
Blackfin
Blackfin
39712
39701
Source Generator
System Services
Blackfin
Blackfin
Blackfin
39896
40245
40593
System Services
System Services
System Services
Blackfin
39625
USB Stack
libdsp FFT functions fail for sizes > 32K
Default 561 CPLB data table causes CPLB exception
meminit for BF53[467], BF51x, BF52x BF54x revision none
fails
PLL_STAT macro VSTAT wrong in defBF561.h and
defBF532.h
Force Regen Project:Link:Processor:Use C++ exceptions
libraries
Custom clock settings in Project Option is not proper for
BF561.
FSS locks when random seeking is performed in a file
Files created on removable media cannot be deleted in
Windows
directory name truncated during creation
defect in adi_ebiu_SelfRefreshEnable
USB detection issues on BF548 for CCLK greater than
400MHz
Blackfin
39641
VDK
VDK does not work around all instances of anomaly 05000428
SHARC
39444
Compiler
rframe instruction is not atomic, but compiler acts as if it is
SHARC
39664
Compiler
internal error at bitmatrix.c:81, -restrict-hardware-loops 0
SHARC
SHARC
40089
38048
Compiler
Loader
"#pragma interrupt_complete" functions corrupt MRF registers
Memory overlap when PM segment is too big
SHARC
SHARC
38082
39482
Run Time Libraries
Run Time Libraries
scanf/strtold may not convert long double hexadecimal fp data
BR glitch anomalies in assembler library sources
SHARC
40045
Run Time Libraries
SHARC
SHARC
40164
40290
Run Time Libraries
Run Time Libraries
matsaddf, matsmltf, and matssubf may return a wrong result
cfftN, ifftN, rfftN in LIBDSP not safe against anomaly
07000010
lib_prog_term causes simulator warning
SHARC
39857
Simulator
Does not zero unspecified upper bits of XML register resets
TigerSharc
TigerSharc
39450
39610
Run Time Libraries
Run Time Libraries
heap_switch() reports error switching to last run-time heap.
heap_realloc() doesn't work for first run time heap.
Known Tools Anomalies
Details can be found on the Tools Anomaly Web page. The URL is:
http://www.analog.com/processors/tools/anomalies
VisualDSP++ 5.0 Update 6 Release Notes Rev 1.3
Page 6-28
VisualDSP++® 5.0 Update 5 Release Notes
Revision 1.8
November 21, 2008
Table of Contents
Nomenclature ...................................................................................................................................... 5-2
Release Notes ...................................................................................................................................... 5-2
Installation ........................................................................................................................................... 5-2
Identifying Your VisualDSP++ Version ............................................................................................. 5-2
Installing the Update........................................................................................................................ 5-2
Cloning VisualDSP++ ........................................................................................................................ 5-2
Definitions ............................................................................................................................................ 5-3
TAR – Tools Anomaly Reference Number ........................................................................................ 5-3
New Hardware Support ....................................................................................................................... 5-4
New Processors and Processor Revision Support............................................................................ 5-4
Processor Revision Deprecation ...................................................................................................... 5-5
New Evaluation Board Support........................................................................................................ 5-5
New System Services and Device Drivers ............................................................................................ 5-6
NAND Flash Access........................................................................................................................... 5-6
New Examples ...................................................................................................................................... 5-7
ADSP-BF518F EZ-KIT Lite Examples.................................................................................................. 5-7
ADSP-BF526 EZ-KIT Lite Examples ................................................................................................... 5-7
Landscape LCD EZ-EXTENDER Examples .......................................................................................... 5-7
Critical Fixes/Changes .......................................................................................................................... 5-8
New Blackfin Compiler Switches...................................................................................................... 5-8
Feature Macros (Blackfin) ................................................................................................................ 5-8
NAND Boot Release notes ............................................................................................................... 5-9
Implicit Push STS Handler .............................................................................................................. 5-10
Syscontrol() variation for ADSP-BF54xM rev 0.3 ........................................................................... 5-10
TAR 36697: MISRA Rule 19.4 Change ............................................................................................ 5-10
TAR 38060: ADSP-BF52x Macros Removed ................................................................................... 5-11
TAR 37863: Run-Time Library uses dual-data move ..................................................................... 5-11
TAR 39783: Misaligned address violation ..................................................................................... 5-11
TAR 39756: Some examples cause hardware error ...................................................................... 5-13
Limitations.......................................................................................................................................... 5-14
ADSP-BF51x Silicon Revision Support ............................................................................................ 5-14
OTP Boot ........................................................................................................................................ 5-14
Silicon Anomaly Workarounds ........................................................................................................... 5-15
Silicon Anomaly 05000412 (ADSP-BF561) ..................................................................................... 5-15
Silicon Anomaly 05000426 (ADSP-BF5xx) ...................................................................................... 5-15
Silicon Anomaly 05000428 (ADSP-BF561) ..................................................................................... 5-16
Anomaly Charts .................................................................................................................................. 5-17
VisualDSP++ 5.0 Update 5 Release Notes Rev 1.8
Page 5-1
Tools Anomalies Addressed ........................................................................................................... 5-17
Known Tools Anomalies ................................................................................................................. 5-18
Nomenclature
In the past, VisualDSP++ updates were labeled by the month and year of their release. In order to
improve clarity, updates are now numbered (e.g., Update 1, Update 2, etc.).
Release Notes
These release notes subsume the release notes for previous updates. Release notes for previous
updates can be found at the end of this document.
Installation
This update can only be installed on a previous VisualDSP++ 5.0 installation. If VisualDSP++ 5.0 is not
installed, please install it first. Installation on a previous update is permitted. If a newer update has
already been installed, please do not install this update. This update is not intended to be installed on
alpha or beta releases.
Identifying Your VisualDSP++ Version
The VisualDSP++ release and update number can be found in 2 locations:
7. In the Control Panel, open the Add/Remove Programs applet.
8. In the VisualDSP++ Integrated Development and Debug Environment (IDDE), select Help 
About VisualDSP++.
Installing the Update
Follow the instructions below for installing this update. Please note that since VisualDSP++ supports
having multiple instances installed on a single system. See the Cloning VisualDSP++ section below for
more information.
25. Use the Start Menu to navigate to VisualDSP++ “Maintain this installation”. By default, this is at
Start Menu  All Programs  Analog Devices  VisualDSP++ 5.0.
26. Select “Go to the Analog Devices website” and click Next. This will open a window in your web
browser.
27. Select the appropriate Processor Software Tools Upgrades to match your processor.
28. Select and download the desired update (VisualDSP++ 5.0_Update5.vdu) to your hard drive.
29. Again, use the Start Menu to navigate to VisualDSP++ “Maintain this installation”.
30. Select “Apply a downloaded Update” and click Next.
31. Browse for the downloaded Update file (VisualDSP++ 5.0_Update5.vdu) and click Next.
32. Follow the on-screen prompts to complete installation of this Update.
Cloning VisualDSP++
VisualDSP++ supports cloning of an existing installation. A clone of an installation creates a new
instance of a product from an existing installation, rather than from a CD or web software distribution.
The use of clones allows you to maintain multiple versions of VisualDSP++ on the same PC at different
update levels, and provides a risk-free way to "test" new updates or patches.
VisualDSP++ 5.0 Update 5 Release Notes Rev 1.8
Page 5-2
To clone your existing installation of VisualDSP++:
13. Go to Start->Programs->Analog Devices->VisualDSP++ 5.0 (or equivalent)->Maintain this
Installation
14. Select "Clone this Installation" and click Next.
15. Optionally click Advanced to set the Start menu path.
16. Enter the Clone install path and click Next.
Definitions
This section provides definitions for terminology relating to VisualDSP++ and this document.
TAR – Tools Anomaly Reference Number
Tools Anomaly Reference Number, or TAR, is used for tracking confirmed defect reports in
VisualDSP++.
VisualDSP++ 5.0 Update 5 Release Notes Rev 1.8
Page 5-3
New Hardware Support
VisualDSP++ updates often include support for new processors, new silicon revisions for existing
processors and new EZ-KIT Lite® evaluation systems. In order to support these, minor revisions are
made to the tool chain and additional system services and device drivers need to be added. This
section describes the new support available in this update.
New Processors and Processor Revision Support
This section lists new processors and processor revisions available in this update. Refer to the data
sheets and hardware reference manuals for information on system configuration, peripherals,
registers, and operating modes.
Update 5 introduces two new processors to the ADSP-BF51x Blackfin® processor family. In addition to
the ADSP-BF512 and ADSP-BF514 processors, the following new processors are supported:


ADSP-BF516* silicon revision 0.0
ADSP-BF518* silicon revision 0.0
*Please note that the previous ADSP-BF516 processor was renamed shortly before release to be the
ADSP-BF518. The ADSP-BF518 is newly supported in Update 5. A new ADSP-BF516 processor has been
introduced and is supported in Update 5. Please refer to the processor datasheet for details on the
new ADSP-BF516 processor.
Update 5 also introduces support for the Mobile DDR variant of the ADSP-BF54x Blackfin processor
family. The Mobile DDR variants are provided separate processor names in VisualDSP++ for full
support:





ADSP-BF542M silicon revision 0.3
ADSP-BF544M silicon revision 0.3
ADSP-BF547M silicon revision 0.3
ADSP-BF548M silicon revision 0.3
ADSP-BF549M silicon revision 0.3
Update 5 provides support for the following silicon revisions to existing Blackfin® processors:



ADSP-BF522 silicon revision 0.1
ADSP-BF524 silicon revision 0.1
ADSP-BF526 silicon revision 0.1
There are no new silicon revisions to existing SHARC® or TigerSHARC® processors with Update 5. Initial
support for the ADSP-2146x SHARC processor family will be provided in a separate release.
VisualDSP++ 5.0 Update 5 Release Notes Rev 1.8
Page 5-4
Processor Revision Deprecation
Support for the following silicon revisions will be deprecated in Update 5.
 ADSP-TS201 silicon revision 0.1
 ADSP-TS202 silicon revision 0.1
 ADSP-TS203 silicon revision 0.1
New Evaluation Board Support
ADSP-BF518F EZ-KIT Lite®
Update 5 introduces initial support for the ADSP-BF518F EZ-KIT Lite. The Power On Self Test (POST)
and Flash Programmer are provided with this release.
VisualDSP++ 5.0 Update 5 Release Notes Rev 1.8
Page 5-5
New System Services and Device Drivers
The following are now supported by VisualDSP++ 5.0:
NAND Flash Access
Support for the NAND flash access has been extended to support the ADSP-BF526 EZ-KIT Lite.
VisualDSP++ 5.0 Update 5 Release Notes Rev 1.8
Page 5-6
New Examples
ADSP-BF518F EZ-KIT Lite Examples
VisualDSP++ 5.0 Update 5 includes initial support for the ADSP-BF518F EZ-KIT Lite evaluation system.
The following examples can be found in the following directories:
Blackfin\Examples\ADSP-BF518F EZ-Board\Flash Programmer\Parallel
Blackfin\Examples\ADSP-BF518F EZ-Board\Flash Programmer\Serial
Blackfin\Examples\ADSP-BF518F EZ-Board\Power_On_Self_Test
ADSP-BF526 EZ-KIT Lite Examples
VisualDSP++ 5.0 Update 5 provides a LockBox example for the ADSP-BF526 EZ-KIT Lite. The example
can be found in the following directory:
Blackfin\Examples\ADSP-BF526 EZ-KIT Lite\lockbox
Landscape LCD EZ-EXTENDER Examples
VisualDSP++ 5.0 Update 5 provides an LCD example for the ADSP-BF526, ADSP-BF527 and ADSP-BF548
EZ-KIT Lites:
Blackfin\Examples\Landscape LCD EZ-EXTENDER\LCD_ColorBarDisplay
VisualDSP++ 5.0 Update 5 Release Notes Rev 1.8
Page 5-7
Critical Fixes/Changes
This section highlights significant changes due to software anomaly fixes or functional changes.
New Blackfin Compiler Switches
New Blackfin Compiler Switches: -icplbs & -dcplbs
-icplbs
The -icplbs (Instruction CPLBs are active) switch instructs the compiler to assume that all instruction
memory accesses will be validated by the Blackfin processor's memory protection hardware. This
allows the compiler to identify situations where the cacheability protection lookaside buffers (CPLBs)
will avoid issues the compiler would otherwise workaround (e.g. anomaly 05-00-0426), improving code
size and performance.
-dcplbs
The -dcplbs (Data CPLBs are active) switch instructs the compiler to assume that all data memory
accesses will be validated by the Blackfin processor's memory protection hardware. This allows the
compiler to identify situations where the cacheability protection lookaside buffers (CPLBs) will avoid
issues the compiler would otherwise workaround (e.g. anomaly 05-00-0428), improving code size and
performance.
If both ICPLBs and DCPLBs are active, the -cplbs switch should still be used
Feature Macros (Blackfin)
The <feature-macros> block in the System\ArchDef\*-compiler.xml files contain macros that
the assembler and compiler automatically pre-define. New feature macros have been added for
processor family names for standardization. To maintain backwards compatibility, no preexisting
feature macros have been deleted. For more details, see below:
Family Macro
(New at Update 5)
Group Macro
Processors
__ADSPBF518_FAMILY__
__ADSPBF526_FAMILY__
__ADSPBF527_FAMILY__
__ADSPBF533_FAMILY__
__ADSPBF535_FAMILY__
__ADSPBF537_FAMILY__
__ADSPBF538_FAMILY__
__ADSPBF548_FAMILY__
__ADSPBF51x__
__ADSPBF52xLP__
__ADSPBF52x__
__ADSPBF53x__
Not available
__ADSPBF53x__
__ADSPBF53x__
__ADSPBF54x__
__ADSPBF548M_FAMILY__
__ADSPBF54x__
__ADSPBF561_FAMILY__
__ADSPBF56x__
ADSP-BF512, ADSP-BF514, ADSP-BF516 , ADSP-BF518
ADSP-BF522, ADSP-BF524, ADSP-BF526
ADSP-BF523, ADSP-BF525, ADSP-BF527
ADSP-BF531, ADSP-BF532, ADSP-BF533
ADSP-BF535
ADSP-BF534, ADSP-BF536, ADSP-BF537
ADSP-BF538, ADSP-BF539
ADSP-BF542, ADSP-BF544, ADSP-BF547, ADSP-BF548,
ADSP-BF549
ADSP-BF542M, ADSP-BF544M,
ADSP-BF547M, ADSP-BF548M, ADSP-BF549M
ADSP-BF561
VisualDSP++ 5.0 Update 5 Release Notes Rev 1.8
Page 5-8
NAND Boot Release notes
NAND Boot Command-line Option
-b NAND
Appending 256 byte End Block as Ignore Block
The Blackfin loader appends an ignore block containing 256 bytes (all zeros) to avoid prefetch CRC
error.
For the ADSP-BF54x, ADSP-BF52x and the ADSP-BF54xM the loader stream will be appended with 256
bytes of data. This is because the boot kernel uses a prefetch mechanism and while processing one 256
block of data it will fetch in the next 256 byte block of data. Padding the loader stream with an
additional 256 bytes at the very end ensures that the 256 byte block of data following the final block of
the loader stream is programmed and the error correction parity data is written. Appending this block
prevents the boot from failing at the very end of the boot cycle as data will be fetched (although never
actually required) and it will have valid ECC parity data resulting in the successful completion of the
boot.
Coexistence of NAND Boot and File System Support
The ADI file system service (FSS) provides support for the NAND flash device (NFD) to be formatted as a
file system and leverages a flash translation layer (FTL) to provide wear leveling and bad block
management. To cater for both NAND boot and FSS support, the FTL is instructed to manage only a
portion of the NFD beyond a specified reserved area at the beginning of the NAND array. This reserved
area starting from block 0 is provided for NAND boot purposes. The size of the reserved area is
determined upon format and the following examples are provided to format the NFD as a FAT 16
volume:
($ADI_DSP)\Blackfin\Examples\ADSP-BF548 EZ-KIT Lite\Services\File
System\NAND\NandFormat
($ADI_DSP)\Blackfin\Examples\ADSP-BF527 EZ-KIT Lite\Services\File
System\NAND\NandFormat
($ADI_DSP)\Blackfin\Examples\ADSP-BF526 EZ-KIT Lite\Services\File
System\NAND\NandFormat
The default reserved area size is 10 blocks. For the EZ-KIT implementations this provides 10 blocks of
64 pages of 2112 bytes per page = 1.3MB (approx).
If this default is to be overridden it is important that the ADI_NAND_CMD_SET_RESERVED_SIZE
command is passed to the FSS NAND Physical Interface Driver (PID) with the required reserved size
upon format and every time it is required for file system access. For example if the NAND boot
required twice as many blocks you would need to pass the following command pair to the NAND PID
on format as well as every time file system access is required:
{ ADI_NAND_CMD_SET_RESERVED_SIZE, (void*)20 }
VisualDSP++ 5.0 Update 5 Release Notes Rev 1.8
Page 5-9
This command-value pair must be passed in the configuration stage of the NAND PID. Please refer to
the NAND PID documentation for further details:
($ADI_DSP)\Blackfin\docs\drivers\pid\nand\adi_nand.pdf
For NAND and OTP boot, please refer to Table 2-3 in the “VisualDSP++ 5.0 Loader and Utilities
Manual”.
Implicit Push STS Handler
Support for a new pragma, implicit_push_sts_handler has been added to the SHARC compiler so that
the compiler does not generate an explicit PUSH and POP of STS for interrupt handlers. This only
applies when compiling for Hammerhead parts (211xx, 212xx, 213xx, and 214xx). When compiling for
non-Hammerhead parts, the pragma is silently ignored.
The pragma will only take effect when it is used in conjunction with one of the SHARC/Hammerhead
interrupt pragmas e.g. interrupt_complete.
The compiler is not able to determine if the handler the pragma is applied to a handler for the IRQ,
VIRPTL or TIMER interrupts. It will be up to the user to determine whether or not the pragma should
be used.
Syscontrol() variation for ADSP-BF54xM rev 0.3
For the ADSP-BF54xM rev 0.3, the syscontrol() function in ROM increments the VLEV parameter before
setting the VR_CTL register.
TAR 36697: MISRA Rule 19.4 Change
MISRA Rule 19.4 Change: Checks on #define directive and not macro expansion use
MISRA Rule 19.4 states that C macros shall only expand to a braced initializer, a constant, a string
literal, a parenthesized expression, a type qualifier, a storage class specifier, or a do-while-zero
construct.
Prior to VisualDSP++ 5.0 Update 5 the compiler would check this rule in macros that were used. To
improve the MISRA compliance support the checks are now done when a macro is defined.
One effect of this is that macros that are defined but unused may now cause rule 19.4 errors when
they did not using the tools prior to Update 5. Another impact is that macros that are valid when
expanded on use may not be valid and cause Rule 19.4 errors when defined. For example:
#define ONE 1
#define ANOTHER_ONE ONE /* This violates rule 19.4 even though when expanded will
result as the constant 1. */
The example is corrected by parenthesizing ONE in the definition of ANOTHER_ONE.
VisualDSP++ 5.0 Update 5 Release Notes Rev 1.8
Page 5-10
TAR 38060: ADSP-BF52x Macros Removed
The NONGPIO_SLEW, PORTF_SLEW, PORTG_SLEW, and PORTH_SLEW macros previously defined by
including the defBF52x.h and cdefBF52x.h headers have been removed in Update 5. They should not
be used. Any application source that contains them will need to be changed.
TAR 37863: Run-Time Library uses dual-data move
"Some run-time library functions use dual-data move instructions (213xx)”
Page 3-78 of the ADSP-21368 SHARC Processor Hardware Reference manual (which includes the ADSP21367, ADSP-21369, ADSP-21371, and ADSP-21375) documents some restrictions with accessing
external memory. One of these restrictions is that in a dual-data move instruction, both accesses
should not be to external memory. This restriction is not observed by some functions in the run-time
library, in particular those functions that operate on arrays and vectors that are allocated in Program
Memory (PM).
This issue has been resolved in Update 5 apart from the biquad, fir, fir_decima, fir_interp, and iir filter
functions. Addressing the issue in the filter functions would have a severe impact on their
performance and so rather than modifying the functions; the following restriction on their use of
external data has been imposed:
When running on an ADSP-21367, ADSP-21368, ADSP-21369, ADSP-21371, or ADSP-21375 processor,
both the filter coefficients and the delay line must not be allocated in external memory otherwise the
function can generate an incorrect set of results. This is because in a dual-data move instruction, the
hardware does not support both memory accesses being to external memory. Therefore, ensure that
the filter coefficients or the delay line (or optionally both) are allocated in internal memory when
running on one of the ADSP-213xx processors specified above.
Changes have been made to the VisualDSP++ 5.0 Run-Time Library Manual for SHARC Processors to
document this restriction.
TAR 39783: Misaligned address violation
“BF548 "Getting Started Examples" misaligned address violation”
Using the "-section" C/C++ compiler switch or "#pragma default_section" to move "alldata" or
"constdata" to a non-default memory section may cause a data access misaligned address violation
run-time exception. The compiler generated assembly code is not always correctly aligning the nondefault section which the data is placed into.
The use of these methods for placing "alldata" and "constdata" need to be avoided to workaround this
problem. Alternate placement can be performed in the LDF.
The ADSP-BF548 "Blackfin\Examples\ADSP-BF548 EZ-KIT Lite\Getting Started Examples\Example_2"
example exhibits this problem when built in release mode.
VisualDSP++ 5.0 Update 5 Release Notes Rev 1.8
Page 5-11
VisualDSP++ 5.0 Update 5 Release Notes Rev 1.8
Page 5-12
TAR 39756: Some examples cause hardware error
“BF548 NAND format example causes hardware error”
When building and running the ADSP-BF548 NAND format example “Blackfin\Examples\ADSPBF548 EZ-KIT Lite\Services\File System\NAND\NandFormat” for the first time, a
hardware error interrupt may occur. This may also occur with other examples. This is a configuration
issue.
To resolve this problem, change the configuration from Debug to Release, rebuild the project and the
example will run successfully. After the first successful run, the configuration may be returned to
Debug and the example will continue to run successfully.
VisualDSP++ 5.0 Update 5 Release Notes Rev 1.8
Page 5-13
Limitations
This section highlights known significant limitations
ADSP-BF51x Silicon Revision Support
For the ADSP-BF51x, only use the silicon revision 0.0. Silicon revisions ”none” and ”any” are not
supported in Update 5. Attempts to use “none” or “any” for ADSP-BF51x in Update 5 will result in linktime errors relating to MEM_L1_CODE.
OTP Boot
Preliminary work for OTP Boot is in Update 5. This feature will be available for use in a future Update.
VisualDSP++ 5.0 Update 5 Release Notes Rev 1.8
Page 5-14
Silicon Anomaly Workarounds
The file System\ArchDef\BLACKFIN-EDN-anomaly.xml has been modified to include
anomaly workarounds specific to the system services and device driver libraries.
Anomaly workaround information is still available in the online help: Select Help  Contents 
Graphical Environment  Silicon Anomaly Support  Silicon Anomalies Tools Support and then select
the appropriate processor family.
Silicon Anomaly 05000412 (ADSP-BF561)
“TESTSET Instruction Causes Data Corruption with Writeback Data Cache Enabled”
The Blackfin runtime libraries have been enhanced to include workarounds for anomaly 05000412.
The anomaly occurs when a TESTSET instruction is used to operate on L2 memory and there is data in
external memory that is cached using writeback mode. The result is that data in L2 and/or external
memory can become corrupted.
The runtime libraries that are linked in when building for impacted parts and silicon revisions have
been modified to avoid the anomaly. The workaround involves preceding TESTSET instructions with a
dummy read and an SSYNC instruction.
Assembler detection and modifications to the compiler's testset built-in function will be provided in a
future update.
Silicon Anomaly 05000426 (ADSP-BF5xx)
“Speculative Instruction Fetches Can Cause Spurious Hardware Errors”
The Blackfin C/C++ compiler, VDK and runtime libraries have been enhanced to include workarounds
for anomaly 05000426.
The anomaly occurs when there is an indirect jump or call through a pointer which may point to an
invalid address on the opposite control flow of a conditional jump to the predicted taken path and
ICPLBS are disabled. The result of this is potentially spurious hardware errors.
The compiler works around this anomaly by not generating indirect call or jump instructions in the 2
instruction slots following a conditional jump for impacted parts, unless either the "-icplbs" or “-cplbs”
switches are used.
The runtime libraries and VDK support that is linked in when building for impacted parts and silicon
revisions have been modified to avoid the anomaly.
Assembler detection for this anomaly will be provided in a future update.
VisualDSP++ 5.0 Update 5 Release Notes Rev 1.8
Page 5-15
Silicon Anomaly 05000428 (ADSP-BF561)
“Lost Write to L2 Memory Following Speculative Read from L2 Memory”
The Blackfin C/C++ compiler, assembler, VDK and runtime libraries have been enhanced to include
workarounds for anomaly 05000428.
The anomaly occurs when a write to L2 memory is followed by a speculative read from L2 memory in
the shadow of a branch executed on core B. This results in the write being lost or corrupted.
The compiler works around this anomaly by not generating potentially problematic reads in the 2 slots
following a conditional jump for any impacted parts. The compiler will allow reads from MMR's or
external memory, if they can be identified as such, to remain in the 3 slots following the conditional
jump. The compiler does not currently avoid the placement of potentially problematic reads in the
instruction following the target of a predicted not taken branch.
The runtime libraries and VDK support that is linked in when building for impacted parts and silicon
revisions have been modified to avoid the anomaly.
The support for this anomaly workaround is incomplete. The ADI components affected are:
Assembler

Assembler detection of silicon anomaly 05000428 is not enabled for silicon revision "any".
"any" is intended to enable all workarounds for the processor. The detection can be obtained
by explicitly building with -si-revision 0.4 or -si-revision 0.5. In future updates, detection for this
anomaly will be enabled by default for "any".
Compiler

The compiler will not ensure that the targets of predicted jumps are safe against the anomaly.
Runtime Libraries


The source code for memcpy does not work around the anomaly. To solve this you can edit the
code provided in the VisualDSP install in the file Blackfin\lib\src\libc\memcpy.asm. For more
information see tools anomaly 39636.
The source code for zero_crossd does not work around the anomaly. To solve this you can edit
the code provided in the VisualDSP install in the file Blackfin\lib\src\libdsp\zero_crossd.asm.
For more information see tools anomaly 39637.
VDK

The code for the API PostMessage does not work around the anomaly. To avoid hitting the
anomaly, place the variable tmk in L1 memory. For more information see tools anomaly 39641.
Warning
The assembler detection warning (ea5517) for anomaly 05000428 will be triggered by code that
contains the prescribed workaround for anomaly 05000283 (System MMR Write Is Stalled Indefinitely
when Killed in a Particular Stage). This case of this warning can be safely ignored and the warning may
be suppressed using the .MESSAGE directive as the code will not cause the 05000428 anomaly.
VisualDSP++ 5.0 Update 5 Release Notes Rev 1.8
Page 5-16
Anomaly Charts
Tools Anomalies Addressed
The following table is a list of tools anomalies addressed in VisualDSP++ 5.0 Update 5 for which details
can be found on the public tools anomaly website. Other tools anomalies have also been fixed in the
Update.
Details can be found on the Tools Anomaly Web page. The URL is:
http://www.analog.com/processors/tools/anomalies
Processor
Family
Tools
Anomaly
Report #
Tool
All
36599
Compiler
All
All
36678
36697
Compiler
Compiler
All
All
All
Blackfin
36910
36535
38001
36575
Compiler
Run Time Libraries
VDK
Assembler
Blackfin
Blackfin
Blackfin
36507
36562
36909
Compiler
Compiler
Compiler
Blackfin
37970
Emulator
Blackfin
Blackfin
Blackfin
38065
38078
34201
Flash Programmer
Flash Programmer
IDDE
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
34263
36922
32741
26133
33934
36729
IDDE
IDDE
Installation
Loader
Run Time Libraries
Run Time Libraries
Blackfin
Blackfin
36825
36871
Run Time Libraries
Run Time Libraries
Blackfin
Blackfin
37859
38060
Run Time Libraries
Run Time Libraries
Blackfin
Blackfin
36343
37924
Simulator
Simulator
Blackfin
37976
Simulator
VisualDSP++ 5.0 Update 5 Release Notes Rev 1.8
Description
Compiler saves, restores reserved registers if they are
used in asm
MISRA Rule 16.7 incorrectly reported for pointer to
function
MISRA Rule 19.4- Check #define directive,not expansion.
MISRA Rule 10.1(a) violation incorrectly reported for +=
operation
Call to sysreg_read results in MISRA Rule 19.7 warning
Thread's msg queue should initialize fields to 0
Assembler allows illegal instruction Preg = RETS on 535
incorrect register allocation of multiply inlined asm
statements
rvitmax builtin doesn't zero A0.x before storing history to it
writes to a pointer removed inconsistently
AD7879 chip is new and causes LCD Touch example to
not work.
BF527 & BF548 programmer fail if "Verify while
programming"
Serial FLASH Programmer (Driver) not functional
incorrect variable used in Automation API example
Enabling custom board support through automation
doesn't work
PGO example failing
installer is not cleaning up HPPCI driver INFs
Specified addr from -p did not get into the .ldr file with -init
float16.h issues with negate_fl16 and add_fl16
LIBDSP twiddle table generators can overflow stack
ADSP-BF51x SD_CARD_DET_MASK of RSI_EMASK
register Incorrect
l1_memcpy and memcpy_l1 use cli and sti incorrectly
Misra rule 8.8 error in bfrom.h: __aes_init prototype
duplicated
Remove *_SLEW registers from BF52x def/cdef headers
Accumulator Signbits simulates incorrectly for input of 0, 1
Floating point 32 bit memory display gives incorrect value
VIT_MAX appears to give the wrong result in compiled
sim
Page 5-17
Blackfin
36872
Source Generator
Blackfin
Blackfin
Blackfin
37852
32230
36352
Source Generator
System Services
System Services
Blackfin
Blackfin
Blackfin
Blackfin
37986
37987
37988
37989
TCPIP Stack
TCPIP Stack
TCPIP Stack
TCPIP Stack
Blackfin
36860
VDK
SHARC
SHARC
36427
36536
ADspCommon XML Files
Compiler
SHARC
SHARC
SHARC
SHARC
SHARC
SHARC
36540
36621
34165
36489
36598
36600
Compiler
Compiler
Run Time Libraries
Run Time Libraries
Run Time Libraries
Run Time Libraries
SHARC
SHARC
SHARC
SHARC
36709
36770
36914
36919
Run Time Libraries
Run Time Libraries
Run Time Libraries
Run Time Libraries
SHARC
37382
Run Time Libraries
SHARC
SHARC
37863
35592
Run Time Libraries
Simulator
quoted library search directories causes malformed input
XML
a multi-core project should always have C++ support
enabled.
Add command to sense GP timer period
Kookaburra SPI System Service has a bad select ID
lwIP init_stack() clears all other flags when setup IGMP
flag
lwIP nifce_driver_init() should set up more flags
lwIP header files under /include folder should be updated
BF526 LAN Software Readme file need be updated
VDK headers should not include RTL headers in extern
"C" blocks
Cannot view the DMA addressing registers for SPIB on
the 21364
Call to sysreg_read results in MISRA Rule 19.4 error
Compiler uses a POP STS instruction in a RTI(DB) delay
slot
bad optimization of conditional stores
using saturate.h will result in errors
strncat() incorrect if strings in different memory banks
The strncat() implementation for DM to PM is flawed
Strncat() of NULL string behaves incorrectly
division support funcs incorrect when placed in external
memory
MISRA violation 8.8 with string.h and builtins.h
Byte-address mode qsort() multi-thread can cause failure
FFT functions read beyond the end of an array
64-bit double addition with results close to zero (denorm)
wrong
Some run-time library functions use dual-data move
instructions
Interrupt during abort of an arithmetic loop never serviced
Known Tools Anomalies
Details can be found on the Tools Anomaly Web page. The URL is:
http://www.analog.com/processors/tools/anomalies
VisualDSP++ 5.0 Update 5 Release Notes Rev 1.8
Page 5-18
VisualDSP++® 5.0 Update 4 Release Notes
Revision 1.2
September 3, 2008
Table of Contents
Nomenclature ...................................................................................................................................... 4-2
Release Notes ...................................................................................................................................... 4-2
Installation ........................................................................................................................................... 4-2
Identifying Your VisualDSP++ Version ............................................................................................. 4-2
Installing the Update........................................................................................................................ 4-2
Cloning VisualDSP++ ........................................................................................................................ 4-2
Definitions ............................................................................................................................................ 4-3
TAR – Tools Anomaly Reference Number ........................................................................................ 4-3
New Hardware Support ....................................................................................................................... 4-4
New Processors and Processor Revision Support............................................................................ 4-4
New Evaluation Board Support........................................................................................................ 4-4
New System Services and Device Drivers ............................................................................................ 4-6
NAND Flash Access........................................................................................................................... 4-6
Improved FAT driver ........................................................................................................................ 4-6
Power Management Change ........................................................................................................... 4-6
New Examples ...................................................................................................................................... 4-7
ADSP-BF526 EZ-KIT Lite Examples ................................................................................................... 4-7
Landscape LCD EZ-EXTENDER Examples .......................................................................................... 4-7
NAND Flash Access Examples .......................................................................................................... 4-7
LwIP TCP/IP Example........................................................................................................................ 4-7
Critical Fixes/Changes .......................................................................................................................... 4-8
Upgrade to LwIP 1.3 ......................................................................................................................... 4-8
Boot ROM API Additions (ADSP-BF51x, ADSP-BF52x, ADSP-BF54x) ................................................ 4-8
Changes to Reserved DDR Bits (ADSP-BF54x).................................................................................. 4-8
Feature Macros (Blackfin) ................................................................................................................ 4-9
Init Code Changes (Blackfin) ............................................................................................................ 4-9
TAR23499 - Misallocation of Local Static Variables (Common)....................................................... 4-9
Limitations.......................................................................................................................................... 4-10
USB Driver Host (ADSP-BF52x, ADSP-BF54x) ................................................................................. 4-10
ADSP-BF51x Headers ..................................................................................................................... 4-10
Power Service May Cause Unhandled CPLB Miss Exceptions (ADSP-BF54x) ................................ 4-10
Silicon Anomaly Workarounds ........................................................................................................... 4-11
Silicon Anomaly 09000014 (ADSP-2137x)...................................................................................... 4-11
Silicon Anomaly 09000015 (ADSP-2137x)...................................................................................... 4-11
Silicon Anomaly 09000018 (ADSP-2137x)...................................................................................... 4-12
Anomaly Charts .................................................................................................................................. 4-13
Tools Anomalies Addressed ........................................................................................................... 4-13
Known Tools Anomalies ................................................................................................................. 4-14
VisualDSP++ 5.0 Update 4 Release Notes Rev 1.2
Page 4-1
Nomenclature
In the past, VisualDSP++ updates were labeled by the month and year of their release. In order to
improve clarity, updates are now numbered (e.g., Update 1, Update 2, etc.).
Release Notes
These release notes subsumes the release notes for previous updates. Release notes for previous
updates can be found at the end of this document.
Installation
This update should only be installed after installing the VisualDSP++ 5.0 base release. If VisualDSP++
5.0 is not installed, please install it first. Installation on a previous update is permitted. If a newer
update has already been installed, please do not install this update. This update is not intended to be
installed on alpha or beta releases.
Identifying Your VisualDSP++ Version
The VisualDSP++ release and update level can be found in 2 locations:
9. In the Control Panel, open the Add/Remove Programs applet.
10. In the VisualDSP++ Integrated Development and Debug Environment (IDDE), select Help 
About VisualDSP++.
Installing the Update
Please follow the instructions below for installing this update. Please note that since VisualDSP++
supports having multiple instances installed on a single system, you can install this update on top of
one instance while maintaining the previous installation.
33. Use the Start Menu to navigate to VisualDSP++ “Maintain this installation”. By default, this is at
Start Menu  All Programs  Analog Devices  VisualDSP++ 5.0.
34. Select “Go to the Analog Devices website” and click Next. This will open a window in your web
browser.
35. Select the appropriate Processor Software Tools Upgrades to match your processor.
36. Select and download the desired update (VisualDSP++ 5.0_Update4.vdu) to your hard drive.
37. Again, use the Start Menu to navigate to VisualDSP++ “Maintain this installation”.
38. Select “Apply a downloaded Update” and click Next.
39. Browse for the downloaded Update file (VisualDSP++ 5.0_Update4.vdu) and click Next.
40. Follow the on-screen prompts to complete installation of this Update.
Cloning VisualDSP++
VisualDSP++ supports cloning of an existing installation. A clone of an installation creates a new
instance of a product from an existing installation, rather than from a CD or web software distribution.
The use of clones allows you to maintain multiple versions of VisualDSP++ on the same PC at different
update levels, and provides a risk-free way to "test" new updates or patches.
VisualDSP++ 5.0 Update 4 Release Notes Rev 1.2
Page 4-2
To clone your existing installation of VisualDSP++:
17. Go to Start->Programs->Analog Devices->VisualDSP++ 5.0 (or equivalent)->Maintain this
Installation
18. Select "Clone this Installation" and click Next.
19. Optionally click Advanced to set the Start menu path.
20. Enter the Clone install path and click Next.
Definitions
This section provides definitions for terminology relating to VisualDSP++ and this document.
TAR – Tools Anomaly Reference Number
Tools Anomaly Reference Number, or TAR, is used for tracking confirmed defect reports in
VisualDSP++.
VisualDSP++ 5.0 Update 4 Release Notes Rev 1.2
Page 4-3
New Hardware Support
VisualDSP++ updates often include support for new processors, new silicon revisions for existing
processors and new EZ-KIT Lite® evaluation systems. In order to support these, minor revisions are
made to the tool chain and additional system services and device drivers need to be added. This
section describes the new support available in this update.
New Processors and Processor Revision Support
The New Product Release Bulletin contains the list of new processors available with VisualDSP++ 5.0.
Refer to the processor’s data sheet and hardware reference manuals for information on system
configuration, peripherals, registers, and operating modes.
Update 4 introduces the ADSP-BF51x Blackfin® processor family. The following new processors are
supported:



ADSP-BF512 silicon revision 0.0
ADSP-BF514 silicon revision 0.0
ADSP-BF516* silicon revision 0.0
*Please note that the ADSP-BF516 processor was renamed shortly before release as the ADSP-BF518.
Users developing for the ADSP-BF518 should select the ADSP-BF516 processor. This name change will
be reflected in Update 5. Also in Update 5, a new ADSP-BF516 processor will be introduced. Please
refer to the processor datasheet for details on the new ADSP-BF516 processor.
Update 4 provides support for the following silicon revisions to existing Blackfin® processors:





ADSP-BF542 silicon revision 0.2
ADSP-BF544 silicon revision 0.2
ADSP-BF547 silicon revision 0.2
ADSP-BF548 silicon revision 0.2
ADSP-BF549 silicon revision 0.2
There are no new silicon revisions to existing SHARC® or TigerSHARC® processors with Update 4.
New Evaluation Board Support
ADSP-BF526 EZ-KIT Lite®
Update 4 introduces support for the ADSP-BF526 EZ-KIT Lite. The ADSP-BF526 EZ-KIT Lite is the first in
the new standard of EZ-KITs. There are two expansion slots for easy stacking of extender boards. The
board itself is now labelled EZ-Board™ instead of EZ-KIT Lite. EZ-KIT Lite refers to the package, not the
board itself. Instead of having the debug agent designed into the board, the Standalone Debug Agent
(SADA) is officially released, and is paired with the ADSP-BF526 EZ-Board. This new technology allows
the reuse of the SADA board with multiple ADSP-BF526 EZ-Board and future EZ-Board offerings.
VisualDSP++ 5.0 Update 4 Release Notes Rev 1.2
Page 4-4
Landscape LCD EZ-Extender®
Update 4 also introduces initial support for the Landscape LCD EZ-Extender which connects to the
ADSP-BF526, ADSP-BF537, ADSP-BF538 and ADSP-BF548 EZ-KIT Lites as well as other current and
future EZ-KIT Lites. This extender board will allow customers to quickly interface a landscape LCD to
their own custom board for evaluation. This extender board also includes a touch screen, capacitance
touch push buttons and a scroll wheel. Visit the website for more information:
http://www.analog.com/en/embedded-processing-dsp/blackfin/BFEXTENDERLCD/processors/product.html.
VisualDSP++ 5.0 Update 4 Release Notes Rev 1.2
Page 4-5
New System Services and Device Drivers
The following are now supported by VisualDSP++ 5.0:
NAND Flash Access
A new physical interface driver (PID) is released for use with both the file system service and the USB
mass storage device (MSD) class driver to enable NAND flash devices (NFD) to be accessible from both
an embedded application and externally from a Host PC.
The NAND PID requires the use of a flash translation layer (FTL) to affect wear-leveling and bad block
management. To this end an FTL has been licensed from HCC-Embedded (www.hcc-embedded.com)
for evaluation use with EZ-KIT Lite platforms only. As such, the FTL is distributed as a binary library
only. Usage beyond this requires a full license that can be obtained upon contacting HCC-Embedded.
The installation of Update 4 contains a license dialog to this effect which you must accept before
installation can be completed.
A new example is provided to prepare the NFD for use by the FTL and to format it as a FAT 16 volume.
Please see the New Examples section for further details. Once formatted, the NFD can be mounted
from the shell_browser application. This is done by default in the ADSP-BF527 EZ-KIT Lite example but
needs to be selected as an alternative to the SD card for the equivalent ADSP-BF548 EZ-KIT Lite
example; this is because the NAND flash controller shares a DMA channel with the SD host controller.
To select the NAND, ensure that _USE_NAND_ macro is set in the Project Options.
Improved FAT driver
To provide better throughput performance on removable media such as USB flash drives and SD cards,
the FAT driver has been upgraded to use memory caches for the File Allocation Table (FAT) and
directory information. These caches are allocated from the cache heap assigned to the FAT driver. The
default settings are to provide 256 (512-byte) sectors of FAT cache and 16 clusters (size depends on
media) of directory information, and can be changed with ADI_FAT_CMD_SET_FAT_CACHE_SIZE and
ADI_FAT_CMD_SET_DIR_CACHE_SIZE commands.
IMPORTANT: Please note that for optimal benefit these caches are only synchronized with the media
upon closure of an open file; halting and restarting an application while a file is open for write access
can result in data loss. The ADI_FAT_CMD_SET_CACHE_PERFORMANCE command can be used to
change this default behavior to either synchronize immediately on cache changes for maximum data
integrity or to synchronize only when media is unmounted. Extreme caution is advised for the latter
option.
Power Management Change
The power management service for the ADSP-BF54x revisions 0.1 and 0.2 have been modified to call
the Boot ROM function 'bfrom_syscontrol()'. This function safely programs the VR and PLL registers,
incorporating trim offsets values that have been stored in the OTP.
VisualDSP++ 5.0 Update 4 Release Notes Rev 1.2
Page 4-6
New Examples
ADSP-BF526 EZ-KIT Lite Examples
VisualDSP++ 5.0 Update 4 includes full support for the ADSP-BF526 EZ-KIT Lite evaluation system.
Examples can be found in the following directory:
Blackfin\Examples\ADSP-BF526 EZ-KIT Lite
Landscape LCD EZ-EXTENDER Examples
VisualDSP++ 5.0 Update 4 includes initial support of the Landscape LCD EZ-Extender. There is sample
source code available for the LCD, touch screen and capacitance touch. Additional support will be
available in future updates.
Blackfin\Examples\Landscape LCD EZ-EXTENDER\Power_On_Self_Test\LCD
Blackfin\Examples\Landscape LCD EZ-EXTENDER\Power_On_Self_Test\TouchScreen
Blackfin\Examples\Landscape LCD EZ-EXTENDER\Power_On_Self_Test\CapTouch
NAND Flash Access Examples
VisualDSP++ 5.0 Update 4 includes a new example to prepare and format the NAND flash device (NFD)
on the ADSP-BF527 EZ-KIT Lite and ADSP-BF548 EZ-KIT Lite. The NFD is formatted as a single FAT 16
partition. They can be found in the following directories:
Blackfin\Examples\ADSP-BF527 EZ-KIT Lite\Services\File System\NAND\NandFormat
Blackfin\Examples\ADSP-BF548 EZ-KIT Lite\Services\File System\NAND\NandFormat
LwIP TCP/IP Example
LwIP TCP/IP stack has been upgraded to 1.3.0 which includes multicasting support. Multicasting is a
mechanism to send messages to group of destination addresses among networked machines. An
example, Multicast_Sender, is included in the ADSP-BF526 EZ-KIT Lite LAN examples to demonstrate
how to make multicast connection. It can be found in the following directory:
Blackfin\Examples\ADSP-BF526 EZ-KIT Lite\LAN\Multicast_Sender
VisualDSP++ 5.0 Update 4 Release Notes Rev 1.2
Page 4-7
Critical Fixes/Changes
This section highlights significant changes due to software anomaly fixes or functional changes.
Upgrade to LwIP 1.3
The LwIP Ethernet stack has been upgraded from revision 1.2 to 1.3. Please refer to LwIP homepage for
more information (http://savannah.nongnu.org/projects/lwip/) and the associated Wiki
(http://lwip.scribblewiki.com/LwIP_Main_Page). As LwIP 1.3 supports multicast, multicast has been added
to the Ethernet drivers.
Boot ROM API Additions (ADSP-BF51x, ADSP-BF52x, ADSP-BF54x)
In certain Blackfin products, optimized software implementations of some cryptographic algorithms
are stored in ROM. These algorithms are C-callable with an API that is documented in the respective
Hardware Reference Manual (HRM) and defined in the Boot ROM header
Blackfin\include\bfrom.h:
1. In the Blackfin ADSP-BF54x processors, the algorithms available are SHA-1, AES, and ARC4. In
these devices, the cryptographic algorithms are stored in Instruction ROM (IROM), which
operates in the CCLK domain.
2. In the Blackfin ADSP-BF52x and ADSP-BF51x processors, the only cryptographic algorithm
available is SHA-1. In these processors, SHA-1 is stored in Boot ROM, which operates in the SCLK
domain.
In order to build with the algorithm definitions, users must build for the correct silicon revision. The
following table shows which revisions of the above processor families introduced the cryptographic
support:
Processor Family
ADSP-BF51x
ADSP-BF522/524/526
ADSP-BF523/525/527
ADSP-BF54x
Silicon Revision
Rev 0.0+
Rev 0.0+
Rev 0.1+
Rev 0.1+
Cryptographic Algorithms
SHA-1
SHA-1
SHA-1
SHA-1, AES, ARC4
These cryptographic algorithms have not been FIPS-certified to ensure their correctness and
cryptographic security. Therefore, while the intent of providing these algorithms in ROM is to enable
their use by customers, users are strongly urged to verify the adequacy of the algorithms before using
them in real applications.
Changes to Reserved DDR Bits (ADSP-BF54x)
Some incomplete support from mobile DDR has been removed from the BOOT ROM header
Blackfin\include\bfrom.h. These changes are for the ADSP-BF542, ADSP-BF544, ADSP-BF547,
ADSP-BF548 and ADSP-BF549 parts:

Definitions of macros OTP_EBIU_MOBILE_DDR_P and OTP_EBIU_MOBILE_DDR_M have been
removed
VisualDSP++ 5.0 Update 4 Release Notes Rev 1.2
Page 4-8


The ebiu_mobile_ddr field has been deleted from the ADI_PBS_BITFIELDS struct type
Bit 5, the former MDDRENABLE bit, is now a reserved bit field
Feature Macros (Blackfin)
The <feature-macros> block in the System\ArchDef\*-compiler.xml files contain macros that
the assembler and compiler automatically pre-define. General macros for processor families (e.g.
__ADSPBF54x__) are now consistently defined for the Blackfin processor families. For more details,
see below:
Macro
__ADSPBF51x__
__ADSPBF52x__
__ADSPBF52xLP__
__ADSPBF53x__
__ADSPBF54x__
__ADSPBF56x__
Processors
ADSP-BF512, ADSP-BF514, ADSP-BF516
ADSP-BF522, ADSP-BF523, ADSP-BF524, ADSP-BF525, ADSP-BF526, ADSP-BF527
ADSP-BF522, ADSP-BF524, ADSP-BF526
ADSP-BF531, ADSP-BF532, ADSP-BF533, ADSP-BF534, ADSP-BF536, ADSP-BF537,
ADSP-BF538, ADSP-BF539
ADSP-BF542, ADSP-BF544, ADSP-BF547,ADSP-BF548, ADSP-BF549
ADSP-BF561
Init Code Changes (Blackfin)
The Blackfin initialization code has been modified in the following ways:
 Added a UART Baud Rate Handler
 SysControl() available in the ADSP-BF52x and ADSP-BF54x Boot ROM
 Fixed EBIU_SDBCTL_VAL in ldr\init_code\ezkitbf5xx_initcode_asm\adspbf561 ez-kit lite\ezkitBF561_initcode.h to use EB0_CAW_10 instead of
EB0_CAW_9.
TAR23499 - Misallocation of Local Static Variables (Common)
Local variables declared "static const" or local uninitialized variables declared "static" were previously
placed in the "data1" section by the compiler. These will now be placed in "constdata" and "bsz"
respectively. These changes are for all Blackfin, SHARC and TigerSHARC parts. This might cause some
applications to fail to link if the LDF does not map "constdata" or "bsz" to memory that can
accommodate the increased size of these sections. In this situation the memory output section that
maps "data1" (reduced in size) can also be used to map "constdata" and "bsz" which should allow the
link to succeed.
VisualDSP++ 5.0 Update 4 Release Notes Rev 1.2
Page 4-9
Limitations
This section highlights known significant limitations
USB Driver Host (ADSP-BF52x, ADSP-BF54x)
For reliable operation of the USB controller in host mode to access USB flash drives, it is necessary to
ensure that the release-build libraries are used for the System Services, Device Drivers and USB
libraries. This is achieved by ensuring that the “Use Debug System libraries” option is unchecked in the
“Project: Link: Processor” page of the Project Options dialog for the appropriate project. The
shell_browser examples distributed with the kit are already configured such.
ADSP-BF51x Headers
The definition for the Mask Card Detect in defBF514.h / defBF516.h contains an error that will be fixed
in the next update:
#define SD_CARD_DET_MASK 0x40 /* Mask Card Detect */
should be:
#define SD_CARD_DET_MASK 0x10 /* Mask Card Detect */
Power Service May Cause Unhandled CPLB Miss Exceptions (ADSP-BF54x)
Users upgrading from VisualDSP++ 5.0 Base, Update 1 or Update 2 that use a customized CPLB table
and System Services may experience a problem upgrading to Update 4. In the older releases, the
generated CPLB tables did not provide page descriptors for Boot ROM address space. In Update 4, the
Power Service in the System Service Layer calls SysControl() in the Boot ROM. If the project has a CPLB
table generated prior to VisualDSP++ 5.0 Update 3, a CPLB Miss exception will be generated. In this
case, applications may experience unhandled CPLB Miss exceptions.
To avoid this problem, add the following entries to the CPLB tables.
dcplbs_table
{0xEF000000, (PAGE_SIZE_4KB | CPLB_L1_CHBL | CPLB_VALID | CPLB_USER_RD)}, // 4kB
Boot ROM
Icplbs_table
{0xEF000000, (PAGE_SIZE_4KB | CPLB_IDOCACHE)},
VisualDSP++ 5.0 Update 4 Release Notes Rev 1.2
// 4kB Boot ROM
Page 4-10
Silicon Anomaly Workarounds
The file System\ArchDef\BLACKFIN-EDN-anomaly.xml has been modified to include
anomaly workarounds specific to the system service and device driver libraries.
Anomaly workaround information is still available in the online help: Select Help  Contents 
Graphical Environment  Silicon Anomaly Support  Silicon Anomalies Tools Support and then select
the appropriate processor family.
Silicon Anomaly 09000014 (ADSP-2137x)
"Incorrect Execution of Conditional External data accesses in a delayed branch (DB) slot"
The SHARC C/C++ compiler, assembler, VDK and runtime libraries have been enhanced to include
workarounds for anomaly 09000014.
The anomaly occurs when a conditional external data access instruction is in the delayed slots of a
branch instruction (such as JUMP/CALL/RTS/RTI). The result is that the access can be incorrectly
executed because the evaluation of the condition maybe wrong. This applies to both internal as well
as external memory execution.
The compiler workaround for this anomaly avoids having conditional data accesses in delayed branch
slots. To enable this compiler workaround manually the "-workaround 09000014" switch can be used.
When the workaround is enabled the macro __WORKAROUND_09000014 is defined at compile,
assemble and link stages.
The SHARC assembler has been modified to issue a warning (ea2521) for code that may hit the
anomaly and require a workaround to be inserted. An example of this new warning is:
[Warning ea2521] "wa_09000014.s":13 Potential Hardware Anomaly 09000014 due to
conditional memory access by one of the two instructions following a delayed
branch.
The assembler detection warning is enabled manually using the "-anomaly-detect 09000014" switch.
The assembler defines macro __ASM_DETECT_09000014__ when detection for this anomaly is
enabled.
The compiler and assembler workarounds are enabled automatically when building for ADSP-21371
and ADSP-21375 revisions 0.0 and any.
The runtime libraries and VDK support that is linked in when building for impacted parts and silicon
revisions have been modified to avoid the anomaly.
Silicon Anomaly 09000015 (ADSP-2137x)
"Incorrect Popping of stacks possible when exiting IRQx/Timer Interrupts with DB modifiers"
VisualDSP++ 5.0 Update 4 Release Notes Rev 1.2
Page 4-11
A new SHARC compiler pragma, #pragma no_db_return has been added. This pragma is used
immediately before a function definition and will cause the compiler to ensure that non-delayedbranch instructions are used to return from the function. The pragma may be applied to both interrupt
and non-interrupt function definitions. Applying the pragma to an interrupt function can be used as a
workaround for ADSP-2137x silicon anomaly 09000015 "Incorrect Popping of stacks possible when
exiting IRQx/Timer Interrupts with DB modifiers".
Silicon Anomaly 09000018 (ADSP-2137x)
"Specific Multiplier operations must not be part of the same Instruction as an External Memory access"
The SHARC C/C++ compiler, assembler, VDK and runtime libraries have been enhanced to include
workarounds for anomaly 09000018.
The anomaly occurs when specific multiplier operations where multiplier results registers (MRF/MRB)
are used as a destination as part of the same instruction as an external memory access. The result is
that the multiplier results registers (MRF/MRB) are not correctly updated.
The compiler workaround for this anomaly avoids parallel issue of data accesses and instructions with
results in MR*F or MR*B. To enable this compiler workaround manually the "-workaround 09000018"
switch can be used. When the workaround is enabled the macro __WORKAROUND_09000018 is
defined at compile, assemble and link stages.
The SHARC assembler has been modified to issue a warning (ea2523) for code that may hit the
anomaly and require a workaround to be inserted. An example of this new warning is:
[Warning ea2523] "wa_09000018.s":27 Potential Hardware Anomaly 09000018 due to
combining a multiply operation into multiplier result register with a data access
operation.
The assembler detection warning is enabled manually using the "-anomaly-detect 09000018" switch.
The assembler defines macro __ASM_DETECT_09000018__ when detection for this anomaly is
enabled.
The compiler and assembler workarounds are enabled automatically when building for ADSP-21371
and ADSP-21375 revisions 0.0 and any.
The runtime libraries and VDK support that is linked in when building for impacted parts and silicon
revisions have been modified to avoid the anomaly.
VisualDSP++ 5.0 Update 4 Release Notes Rev 1.2
Page 4-12
Anomaly Charts
Tools Anomalies Addressed
The following table is a list of tools anomalies addressed in VisualDSP++ 5.0 Update 4 for which details
can be found on the public tools anomaly website. Other tools anomalies have also been fixed in the
Update.
Details can be found on the Tools Anomaly Web page. The URL is:
http://www.analog.com/processors/tools/anomalies
Processor
Family
All
All
All
All
All
All
All
All
All
Tools
Anomaly
Report #
23499
29851
30247
36116
36188
36247
36292
35664
36096
Tool
Compiler
Compiler
Compiler
Compiler
Compiler
Compiler
Compiler
Run Time Libraries
VDK
Blackfin
36057 ADspCommon XML Files
Blackfin
36093 ADspCommon XML Files
Blackfin
36266 ADspCommon XML Files
Blackfin
36341 Compiler
Blackfin
36424 Compiler
Blackfin
36453 Compiler
Blackfin
30369 Debug Agent
Blackfin
Blackfin
36186 Device Driver
34944 Run Time Libraries
Blackfin
35495 Run Time Libraries
Blackfin
Blackfin
Blackfin
36110 Run Time Libraries
36125 Run Time Libraries
36304 Run Time Libraries
Blackfin
36451 Run Time Libraries
VisualDSP++ 5.0 Update 4 Release Notes Rev 1.2
Description
Misallocation of Local Static Variables.
-section does not apply qualifiers
section __attribute__ does not work as documented
.edt and .gdt generated when not requested on some PCs
Prelinker loops in MISRA mode
Incorrect violation of MISRA Rule 10.5
MISRA Rule 17.4 incorrectly reported at run-time
The %n conversion code may assign a wrong value
VDK::Yield() does not reset timeslice
DMAx_CONFIG Register Couples DI_SEL and DI_EN In
Display Window
compiler XML enables workaround for 05-00-0283 when
unnecessary
workaround for 05-00-00371 required for ADSPBF54[24789] rev 0.0, 0.1
MISRA Rule 21.1. run-time checking of global arrays not
enabled
typedef'd bit fields can be incorrectly packed with
#pragma pack
MISRA Rule 19.4 not always suppressed using #pragma
diag
Debug agent scans too fast [can cause external memory
issues]
ADSP-BF527 LCD Example does not work with deferred
callbacks
clock() is not thread-safe
05-00-0248 workaround in adi_acquire_lock() and
adi_try_lock()
default multi-thread CRT objects may result in CPLB
misses
interrupt macros fail with MISRA Rule 16.5(Req) errors
Edge case INT_MIN/INT_MAX returns incorrect result
cdefBF561.h pX macro uses result in MISRA Rule 19.4
errors
Page 4-13
Incorrect display of data in HEX8 format in Blackfin
Memory Window
Blackfin
35571 Simulator
Blackfin
36070 Simulator
Blackfin
Blackfin
29902 System Builder
34546 System Builder
Blackfin
35610 System Builder
Blackfin
Blackfin
Blackfin
Blackfin
36158
36223
35045
29736
Blackfin
30157 TCPIP Stack
SHARC
36505 Assembler
SHARC
35661 Emulator
SHARC
36421 Emulator
SHARC
36444 Loader
SHARC
36075 Run Time Libraries
Unable to set core child register bits via register window
0xCDCDCDCD in the SDRAM ranges higher than 0x80000
for 21065L
The kernel dxe does not correlate with the asm file in
project
PM version of setlocale(___setlocaleP) has code in wrong
section
SHARC
36371 Run Time Libraries
powd() returns wrong result for powers >1e8 and <-1e8
System Builder
System Builder
System Services
TCPIP Stack
binary 16-bit memory window format only displays 8 bits
Project fails to build when user sets heap space to less
than 1k
Incorrect path for basiccrt in exported makefile
Handling of stack and heap sizes in Bytes should be
reviewed.
Heap/Stack configured with KB will not select kB in Proj
Options
CACHE_MEM_MODE is undefined
error during fss_rename function
Multiple network interface issue
lwip send function returns bytes sent, but sends only 64K
max
asm warns about the part of anomaly 07000009 fixed in
rev 0.5
Known Tools Anomalies
Details can be found on the Tools Anomaly Web page. The URL is:
http://www.analog.com/processors/tools/anomalies
VisualDSP++ 5.0 Update 4 Release Notes Rev 1.2
Page 4-14
VisualDSP++® 5.0 Update 3 Release Notes
Revision 1.3
June 16, 2008
Table of Contents
Nomenclature .......................................................................................................................... 3-3
Installation ............................................................................................................................... 3-3
Identifying Your VisualDSP++ Version ................................................................................. 3-3
Installing the Update............................................................................................................ 3-3
Cloning VisualDSP++ ............................................................................................................ 3-3
Definitions ................................................................................................................................ 3-4
TAR – Tools Anomaly Reference Number ............................................................................ 3-4
New Hardware Support ........................................................................................................... 3-5
New Processors and Revisions Support ............................................................................... 3-5
New System Services and Device Drivers ............................................................................ 3-5
New Examples .......................................................................................................................... 3-6
ADSP-BF527 EZ-KIT Lite Audio Loopback Examples............................................................. 3-6
ADSP-BF527 and ADSP-BF548 EZ-KIT Lite Autobaud Examples........................................... 3-6
Critical Fixes/Changes .............................................................................................................. 3-7
Use Linker Elimination Options for ADSP-21371/ADSP-21375 ........................................... 3-7
Customized Linker Description Files (LDFs) Change for ADSP-21371/ADSP-21375 ............ 3-7
VDK Internal Memory Code Size Increase for ADSP-21371/ADSP-21375 ........................... 3-7
VDK LDF Change for ADSP-21371/ADSP-21375................................................................... 3-7
SHARC Workaround Informational ...................................................................................... 3-7
New Type Header Files for all Processors ............................................................................ 3-7
Boot Code Sources Available for ADSP-BF52x and ADSP-BF54x ......................................... 3-8
Changes to Blackfin ldr Source Tree .................................................................................... 3-8
New Blackfin ROM Header API ............................................................................................ 3-8
Changes to Support MISRA Technical Corrigendum 1......................................................... 3-9
Ability to Suppress all MISRA Rules Checking .................................................................... 3-10
TAR 35448 - MCMEN Defined in ADSP-BF54x Definition Header Files ............................. 3-10
TAR 34699 - EBIU_AMGCTL Bit Macros in ADSP-BF54x Definition Header Files............... 3-10
TAR 34700 - HMDMAx_CONTROL Bit Macros in ADSP-BF54x Definition Header Files..... 3-10
TAR 35154 - SIC_RVECT Removed from Definition Header Files....................................... 3-11
TAR 35481 - Fixed Signed CHAR definition ........................................................................ 3-11
TAR 33557 – Blackfin 64-bit double modf Result Changed ............................................... 3-11
Limitations.............................................................................................................................. 3-12
VisualDSP++ 5.0 ADSP-BF54x Known Limitations .............................................................. 3-12
VisualDSP++ 5.0 ADSP-BF52x Known Limitations .............................................................. 3-12
Workarounds for Silicon Anomaly 05-00-00371 ADSP-BF54[24789] Rev 0.1 ................... 3-12
TAR 35159 - VDK Thread Stack Space Reduced on TigerSHARC ........................................ 3-12
TAR 35556 – System Services Caps CCLK for DDR reliability ............................................. 3-13
Silicon Anomaly Workarounds ............................................................................................... 3-15
VisualDSP++ 5.0 Update 3 Release Notes Rev 1.3
Page 3-1
Silicon Anomaly 09000011 (ADSP-2137x).......................................................................... 3-15
Trampoline ......................................................................................................................... 3-17
Anomaly Charts ...................................................................................................................... 3-18
Tools Anomalies Addressed ............................................................................................... 3-18
Known Tools Anomalies ..................................................................................................... 3-19
VisualDSP++ 5.0 Update 3 Release Notes Rev 1.3
Page 3-2
Nomenclature
In the past, VisualDSP++ updates were labeled by the month and year of their release. In order
to improve clarity, updates are now numbered (e.g. Update 1, Update 2, etc).
Installation
This update should only be installed after installing the VisualDSP++ 5.0 base release. If
VisualDSP++ 5.0 is not installed, please install it first. Installation on a previous update is fine. If
a newer update has already been installed, please do not install this update. This update is not
intended to be installed on alpha or beta releases.
Identifying Your VisualDSP++ Version
The VisualDSP++ release and update level can be found in 2 locations:
1. In the Control Panel, open the Add/Remove Programs applet.
2. In the VisualDSP++ Development Environment, select Help – About VisualDSP++.
Installing the Update
Please follow the instructions below for installing this update. Please note that since
VisualDSP++ supports having multiple instances installed on a single system, you can install this
update on top of one instance while keeping the previous installation.
1. Use the Start Menu to navigate to VisualDSP++ “Maintain this installation”. By default
this is at Start Menu - select All Programs - Analog Devices - VisualDSP++ 5.0.
2. Select “Go to the Analog Devices website” and click Next. This will open a window in
your web browser.
3. Select the appropriate Processor Software Tools Upgrades to match your processor.
4. Select and download the desired update (VisualDSP++ 5.0_Update3.vdu) to your hard
drive.
5. Again, use the Start Menu to navigate to VisualDSP++ “Maintain this installation”.
6. Select “Apply a downloaded Update” and click Next.
7. Browse for the downloaded Update file (VisualDSP++ 5.0_Update3.vdu) and click Next.
8. Follow the on-screen prompts to complete installation of this Update.
Cloning VisualDSP++
VisualDSP++ supports cloning of an existing installation. A clone of an installation creates a new
instance of a product from an existing installation, rather than from a CD or web software
distribution. The use of clones allows you to maintain multiple versions of VisualDSP++ on the
same PC at different update levels, and provides a risk-free way to "test" new updates or
patches.
To clone your existing installation of VisualDSP++:
VisualDSP++ 5.0 Update 3 Release Notes Rev 1.3
Page 3-3
21. Go to Start->Programs->Analog Devices->VisualDSP++ 5.0 (or equivalent)->Maintain this
Installation
22. Select "Clone this Installation" and click Next.
23. Optionally click Advanced to set the Start menu path.
24. Enter the Clone install path and click Next.
Definitions
This section provides definitions for terminology relating to VisualDSP++ and this document
TAR – Tools Anomaly Reference Number
Tools Anomaly Reference Number, or TAR, is used for tracking confirmed defect reports in
VisualDSP++.
VisualDSP++ 5.0 Update 3 Release Notes Rev 1.3
Page 3-4
New Hardware Support
VisualDSP++ updates often include support for new processors, new silicon revisions for
existing processors and new EZ-KIT Lite® evaluation systems. In order to support these, minor
revisions are made to the tool chain and additional system services and device drivers need to
be added. This section describes the new support available in this update.
New Processors and Revisions Support
The Product Bulletin contains the list of new processors available with VisualDSP++ 5.0. Refer to
the processor’s data sheet and hardware reference manuals for information on system
configuration, peripherals, registers, and operating modes.
Update 3 provides support for the following silicon revisions to existing Blackfin® processors:



ADSP-BF523 silicon revision 0.2
ADSP-BF525 silicon revision 0.2
ADSP-BF527 silicon revision 0.2



ADSP-BF531 silicon revision 0.6
ADSP-BF532 silicon revision 0.6
ADSP-BF533 silicon revision 0.6


ADSP-BF538 silicon revision 0.5
ADSP-BF539 silicon revision 0.5
There are no new silicon revisions to existing SHARC® or TigerSHARC® processors with Update
3.
New System Services and Device Drivers
The following are now supported by VisualDSP++ 5.0:
 Support for on-chip peripherals for the ADSP-BF522, BF524 and BF526 processors
VisualDSP++ 5.0 Update 3 Release Notes Rev 1.3
Page 3-5
New Examples
ADSP-BF527 EZ-KIT Lite Audio Loopback Examples
VisualDSP++ 5.0 Update 3 includes a new audio loopback example to demonstrate use of the
audio codec supplied on the ADSP-BF527 EZ-KIT Lite® evaluation system. It can be found in the
following directory:
Blackfin\Examples\ADSP-BF527 EZ-KIT Lite\drivers\AudioCodec\Audio_Loopback
ADSP-BF527 and ADSP-BF548 EZ-KIT Lite Autobaud Examples
VisualDSP++ 5.0 Update 3 includes new examples to demonstrate use of the UART device driver
in Autobaud mode supplied on the ADSP-BF527 and ADSP-BF548 EZ-KIT Lite® evaluation
systems. They can be found in the following directory:
Blackfin\Examples\ADSP-BF527 EZ-KIT Lite\drivers\UART\Autobaud
Blackfin\Examples\ADSP-BF548 EZ-KIT Lite\drivers\UART\Autobaud
VisualDSP++ 5.0 Update 3 Release Notes Rev 1.3
Page 3-6
Critical Fixes/Changes
This section highlights significant changes due to software anomaly fixes or functional changes.
Use Linker Elimination Options for ADSP-21371/ADSP-21375
The workaround for silicon anomaly 09000011 may generate unused assembly code. To avoid
linking this unused assembly code, turn on linker elimination:
1.
2.
3.
4.
Select Project – Project Options from the VisualDSP++ menu.
Select Link – Elimination
Check the box Eliminate unused objects
Click OK
Customized Linker Description Files (LDFs) Change for ADSP-21371/ADSP-21375
Customers using the ADSP-21371 and ADSP-21375 that have non-default customized LDFs may
need to make a modification to their LDFs. If the workaround for silicon anomaly 09000011 is
required, trampoline code (see definition in Silicon Anomaly Workarounds) is placed in section
seg_int_code. If not already done, the section seg_int_code should be mapped to internal
memory.
VDK Internal Memory Code Size Increase for ADSP-21371/ADSP-21375
As part of the workaround for silicon anomaly 09000011, the time-critical part of VDK has been
mapped to seg_int_code instead of seg_pmco. Customers using VDK with the ADSP-21371 and
ADSP-21375 will see an increase in the size of the code that is required to be in internal
memory.
VDK LDF Change for ADSP-21371/ADSP-21375
Customers that use VDK with the ADSP-21371 and ADSP-21375 must change their LDFs to link
TMK-2137x.dlb instead of TMK-213xx.dlb.
SHARC Workaround Informational
A new informational message is generated for PC relative jump instructions:
ea1130 - Constant offset in JUMP is not recommended. JUMP to a label instead. The
assembler has done this for you.
The assembler automatically changes PC relative jumps in order to prevent problems with the
insertion of anomaly workaround code. You can turn off this message by adding the following
to assembly files which generate the warning:
.message/suppress 1130;
New Type Header Files for all Processors
The following header files have been added for all processors:
VisualDSP++ 5.0 Update 3 Release Notes Rev 1.3
Page 3-7
stdint.h
ANSI C99 standard conformant header file that defines various integer typedefs.
stdbool.h
ANSI C99 standard conformant header file that defines various boolean related macros.
services_types.h
Header file that defines various integer typedefs for use in system services code, some
boot kernels and examples.
adi_types.h
Includes stdint.h, stdbool.h and defines other float and char typedefs. For use in generic
code that requires a complete set of typedefs such as MISRA conformant applications.
Boot Code Sources Available for ADSP-BF52x and ADSP-BF54x
The Boot Code Sources are now available for the ADSP-BF52x and ADSP-BF54x and can be
found in “Blackfin/ldr/Boot ROM”.
Changes to Blackfin ldr Source Tree
Prior to VisualDSP++ 5.0 Update 3, there was a single set of Blackfin Boot Kernel sources. With
the introduction of the ADSP-BF52x and ADSPBF54x processors, a next generation Boot Kernel
was written. VisualDSP++ 5.0 Update 3 contains the sources for both. Two new folders were
created within Boot ROM\src:
bk_ad00 contains the "legacy" Boot Kernel sources for the ADSP-BF53x and ADSP-BF561.
bk_ad03 contains the "latest generation" Boot Kernel sources, versions 03 and 02
New Blackfin ROM Header API
To better support the on-chip Boot ROM and L1 ROM, the ROM Header API is now defined in
bfrom.h.
Location:
<install-dir>\Blackfin\include\bfrom.h
C-Versions of Initialization Code
Update 3 includes initialization code examples for the ADSP-BF52x and ADSP-BF54x processor
written in C language. Unlike former Blackfin derivatives, such as ADSP-BF53x and ADSP-BF561
devices, the new ADSP-BF52x and ADSP-BF54x processors’ initialization code concept is
compliant to C-language calling conventions. Therefore, the user has the choice to implement
initialization codes in C or assembly language. The examples can be found at:
Blackfin\ldr\init_code\asm
Blackfin\ldr\init_code\c
The assembly are the legacy versions
New C versions
VisualDSP++ 5.0 Update 3 Release Notes Rev 1.3
Page 3-8
These examples are developed and tested for respective EZ-KIT Lite boards. Customized
hardware makes need for modifications likely.
For dynamic power management the initcode examples make use of the bfrom_SysControl()
function which is part of the ROM API featured by new processors.
Changes to Support MISRA Technical Corrigendum 1
The document for Technical Corrigendum 1 (TC1) was produced in July, 2007 to clarify and
address issues with MISRA-C:2004. The TC1 document describes changes to the original MISRAC:2004 document. The TC1 document can be downloaded from the MISRA site
(http://misra.org.uk). The site requires you to register in order to download the document.
Most changes are simple clarifications, although some changes affect the rule violations. What
follows is a brief description of the rules, where the rule violations reported will significantly
change.
Rule 4.1
The normative text now states that "All hexadecimal-escape-sequences are prohibited".
Rule 10.3
Headline rule changed to "The value of a complex expression of integer type shall only be cast
to a type of the same signedness that is no wider than the underlying type of the expression."
This has the effect that casting the type of a complex expression to the same type as the
complex expression will not report a rule violation.
Rule 10.4
Headline rule changed to "The value of a complex expression of floating type shall only be cast
to a floating type which is narrower or of the same size."
This has the effect that casting the type of a complex expression to the same type as the
complex expression will not report a rule violation.
Rule 10.5
The headline rule has not changed but the normative text has changed in respect to a cast.

A cast is no longer required in all circumstances.

Bitwise operations do not require a cast if:
 immediately assigned to an object of the same underlying type
 used as a function argument of the same underlying type as the operand
VisualDSP++ 5.0 Update 3 Release Notes Rev 1.3
Page 3-9

used as a return expression of a function whose return type is the same underlying type
as the operand.
Rule 12.6
Additional operators '=, ==, != and ?:' added to the list of operators.
Rule 19.4
C macros can also expand to a string literal.
Ability to Suppress all MISRA Rules Checking
In some code it is necessary to suppress all MISRA checks. New support for #pragma diag has
been added to make that easy to do to. For example:
#pragma diag(suppress:misra_rules_all:"Misra rules all suppressed because ... ")
TAR 35448 - MCMEN Defined in ADSP-BF54x Definition Header Files
A macro for the SPORTx_MCMC2 Multi channel Frame Mode Enable bit has been added to
defBF54x_base.h. This file is included by all the platform include files (defBF549.h etc). The new
macro is called MCMEN. Any code that defines or uses a macro with the same name will need
to be modified to avoid a conflict with the new definition.
The prior definition of a macro for this bit, MCMEM, is deprecated. It should not be used and
will not be supported in future releases.
TAR 34699 - EBIU_AMGCTL Bit Macros in ADSP-BF54x Definition Header Files
Two new macros for EBIU_AMGCTL to enable all Async memory banks have been added to
defBF54x_base.h.
The new macros are defined as follows:
#define AMBEN_B0_B1_B2_B3 0x0008 /* Enable Async Memory Banks 0, 1, 2 and 3 */
#define AMBEN_ALL 0x0008
/* Enable All Async Memory Banks */
Any code that defines or uses a macro with the same name as these will need to be modified to
avoid a conflict with the new definitions.
TAR 34700 - HMDMAx_CONTROL Bit Macros in ADSP-BF54x Definition Header Files
Two new macros for HMDMAx_CONTROL bit for source not destination have been added to
defBF54x_base.h.
The new macros are defined as follows:
#define
#define
SND
nSND
0x80
0x0
VisualDSP++ 5.0 Update 3 Release Notes Rev 1.3
/* Source/Not Destination */
Page 3-10
Any code that defines or uses a macro with the same name as these will need to be modified to
avoid a conflict with the new definitions.
TAR 35154 - SIC_RVECT Removed from Definition Header Files
The definition of a macro SIC_RVECT has been removed from the various def header files. This
macro was incorrectly defined and should not be used.
TAR 35481 - Fixed Signed CHAR definition
The definition of integer type s8 in services.h has been fixed. This could cause backwards
compatibility issues if the user relied on it being unsigned.
The following definition:
typedef char s8;
has been modified to the following:
typedef signed char s8;
TAR 33557 – Blackfin 64-bit double modf Result Changed
The implementation of the Blackfin 64-bit double precision modf standard C function has been
modified to return 0.0 rather than a NaN (Not-A-Number) when the second operand to modf is
0.0. The result in this situation is implementation-defined according to the ANSI C standard. The
documentation for the function has always stated that it should return 0.0 for this input.
VisualDSP++ 5.0 Update 3 Release Notes Rev 1.3
Page 3-11
Limitations
This section highlights known significant limitations
VisualDSP++ 5.0 ADSP-BF54x Known Limitations
The following device drivers will be supported in a future update:
 NAND FLASH driver
VisualDSP++ 5.0 ADSP-BF52x Known Limitations
The following device drivers will be supported in a future update:
 NAND FLASH driver
Workarounds for Silicon Anomaly 05-00-00371 ADSP-BF54[24789] Rev 0.1
The compiler and assembler workarounds for anomaly 05-00-0371 "Possible RETS Register
Corruption when Subroutine Is under 5 Cycles in Duration" are not automatically enabled when
building for ADSP-BF54[24789] revision 0.1.
To avoid this issue change the project target to build for revision 0.0 rather than 0.1.
Alternatively, build C source for ADSP-BF54[24789] revision 0.1 with switches:
-workaround avoid-quick-rts-371
and build assembly source with switches:
-anomaly-workaround 05000371 -anomaly-detect 05000371
TAR 35159 - VDK Thread Stack Space Reduced on TigerSHARC
An anomaly has been identified in VisualDSP++ for TigerSHARC where the VDK thread stack
pointers are not configured correctly during thread creation (TAR 35194). Thread stack space is
allocated and the stack pointers are configured so that they point to the end of the stack
allocation spaces, as the stacks grow from high to low memory. The issue is that the stack
pointers are placed too close to the end of each stack allocation, resulting in up to 8 words of
data being corrupted before the start of each thread stack space (higher memory).
The fix correctly configures the stack pointers so that they are further into the thread stack
allocation space on creation, 8 words further-in for the J stack and 4 for the K stack. This
effectively means that the stacks for each thread will reach their maximum limit slightly sooner
than with previous releases.
VisualDSP++ 5.0 Update 3 Release Notes Rev 1.3
Page 3-12
TAR 35556 – System Services Caps CCLK for DDR reliability
Description: The ADSP-BF54X is the first Blackfin to use double data rate SDRAM (DDR). The
first revision of the silicon was tested to 533 MHz @ VDD_INT = (1.25v - 5%). Some
applications, with data buffers located in external L3 memory (DDR), had occasional,
intermittent data corruption problems at certain combinations of core clock frequency (CCLK)
and voltage level (VLEV). The temporary workaround has been to reduce the core clock
frequency (CCLK) to 400 MHz, with VLEV set at 1.2 V. The System Services Power Management
module caps CCLK and VLEV, as a precautionary measure.
The second revision of ADSP-BF54X silicon is still under evaluation, and the recommendations
will soon be available for the CCLK vs. VLEV relationship. In the absence of exact
characterization data for the silicon, the System Services Power Management module continues
to limit CCLK and VLEV for reliable DDR performance.
If the application is not affected by the intermittent data corruption problem, higher core clock
frequencies may be attained using the System Services Power Management command
"ADI_PWR_CMD_SET_CCLK_TABLE", described in the Power Management API reference
section of the Device Drivers and System Services User Manual in VisualDSP Help. This
command overwrites the hard-coded CCLK vs. VLEV values, located in the Power Management
source file:
Blackfin\lib\src\services\pwr\adi_pwr.c
The command "ADI_PWR_CMD_SET_CCLK_TABLE" is passed to the Power Management
initialization function, 'adi_pwr_init', to define one such CCLK vs. VLEV relationship. As a
general guideline for defining the CCLK vs. VLEV relationship, see table 13 (Core Clock
Requirements - 500 MHz, 533 MHz, and 600 MHz Models) in Revision E of the ADSP-BF531/2/3
datasheet, as a general guideline, but note that the ADSP-BF54X is NOT guaranteed for these
same values.
Define an array of ADI_PWR_NUM_VLEVS elements (defined in the API header file 'adi_pwr.h')
of type unsigned 32 bit integer (u32) which specifies the maximum core clock frequency for the
associated voltage level, as shown below.
static
{
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
};
u32 pwr_cclk_vlev_table [ADI_PWR_NUM_VLEVS] =
ADI_PWR_VLEV_085
ADI_PWR_VLEV_090
ADI_PWR_VLEV_095
ADI_PWR_VLEV_100
ADI_PWR_VLEV_105
ADI_PWR_VLEV_110
ADI_PWR_VLEV_115
ADI_PWR_VLEV_120
ADI_PWR_VLEV_125
ADI_PWR_VLEV_130
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
250,
334,
334,
400,
400,
444,
444,
500,
533,
533
VisualDSP++ 5.0 Update 3 Release Notes Rev 1.3
Page 3-13
Create the command pair table to include the command ADI_PWR_CMD_SET_CCLK_TABLE,
followed by a pointer to the array, as shown below.
ADI_PWR_COMMAND_PAIR PowerInitTable[] = {
{
ADI_PWR_CMD_SET_PROC_VARIANT, (void*)ADI_PWR_PROC_BF549SBBC1533 },
{ ADI_PWR_CMD_SET_PACKAGE,
(void*)ADI_PWR_PACKAGE_MBGA },
{ ADI_PWR_CMD_SET_VDDEXT,
(void*)ADI_PWR_VDDEXT_330 },
{ ADI_PWR_CMD_SET_CLKIN,
(void*)25 },
{ ADI_PWR_CMD_SET_CCLK_TABLE,
(void *) pwr_cclk_vlev_table },
{ ADI_PWR_CMD_END, 0 }
};
Pass the command pair table to ‘adi_pwr_Init’ as shown below.
Result = adi_pwr_Init( PowerInitTable );
The Power Management Service will then use the CCLK vs. VLEV relationship defined by the
array “pwr_cclk_vlev_table”, instead of the columns of the array defined in the source file
‘adi_pwr.c’.
VisualDSP++ 5.0 Update 3 Release Notes Rev 1.3
Page 3-14
Silicon Anomaly Workarounds
Silicon Anomaly 09000011 (ADSP-2137x)
“Indirect Branches from External to Internal Memory may corrupt the Instruction Cache."
Workarounds for this anomaly have been implemented in the assembler; the default behavior
is to apply a workaround. The compiler relies upon the default behavior of the assembler to
apply the workarounds. The runtime libraries and VDK have been rebuilt to avoid the anomaly
or apply the workarounds, except for code that must be mapped to internal memory. One of
the workarounds used by the assembler generates new code in section “seg_int_code” that
must be mapped to internal memory. The default Linker Description File (LDF) provided in
VisualDSP++ does this already; projects with customized LDFs may require modification to map
this section.
The assembler will provide informational messages for each instance of an applied workaround
to notify the user about code generated to seg_int_code. When some condition prevents the
assembler from applying the workaround, the assembler will produce a descriptive error
message instead. The assembler will not apply workarounds to code defined in a section
named “seg_int_code”.
If a user prefers to adjust their code to avoid the anomaly, specifying “-anomaly-detect
09000011” will cause the assembler to instead produce a warning for each instance of a
problematic branch instruction. Specifying “-no-anomaly-workaround 09000011” will suppress
all assembler activity for this anomaly.
The assembler will apply one of two identified workarounds depending upon the specific
instruction containing an indirect branch. One form of workaround avoids the anomaly by
inserting a PC-relative branch around the potentially improperly cached location and inserting a
NOP instruction at that location, thus preventing execution of an instruction at the location that
could be improperly cached due to the anomaly, at the cost of two words of memory and a
branch execution. Each instance of the workaround will produce a message ea2517:
[Informational ea2517] ".\BranchAroundCache.asm":24 Applied Workaround for
Hardware Anomaly 09000011
Inserted "JUMP(PC,2); nop;" after the instruction following the indirect branch.
The second workaround replaces the problematic indirect branch with an indirect branch to a
“trampoline” (see definition below) JUMP instruction which will use the same index and modify
register as the replaced branch to jump to the original destination of that replaced instruction.
To avoid the anomaly, the trampoline JUMP must execute from internal memory. For the
simplest type 9 instructions, this workaround avoids the cache corruption at the cost in
execution of an additional branch and a maximum of one word of memory per index and
modify register pair used in branch instructions. Each instance of the trampoline workaround
will produce a message ea2518:
VisualDSP++ 5.0 Update 3 Release Notes Rev 1.3
Page 3-15
[Informational ea2518] ".\myFile.asm":43 Applied Workaround for Hardware
Anomaly 09000011
converted the indirect branch to a direct branch to trampoline at label
__JUMP_m08i08__
The assembler will add the trampoline instructions to the section “seg_int_code’; it will
generate that section if necessary. The assembler will emit message ea2519 identifying the
trampolines generated. For the message below, the source code contained indirect branch
instructions using only I8 and m8:
[Informational ea2519] Trampolines generated for Hardware Anomaly 09000011
section name: seg_int_code;
trampolines:
__JUMP_m08i08__
Each object file in which trampoline workarounds have been applied will contain a section
seg_int_code providing the trampolines for the code in that object. Where different objects
each contain the same trampoline, the linker will resolve all references to a single instance of
the trampoline.
When the assembler fails to apply the workaround, it will produce message 2516. The following
series of instructions illustrates one case that will produce this message:
CALL (M14,I12) (DB);
i14 = DM(i6,m7);
m7 = PM(i12, m14); // postmodify.
When the file is assembled with the workaround enabled, the assembler will produce the
following message specifying why neither workaround could be applied:
[Error ea2516] ".\trampolineDBerrors.asm":69 Workaround for Hardware Anomaly
09000011 not applied:
Trampoline cannot be used because a delay slot instruction modifies a DAG
register used in the branch instruction.
Branch around improperly cached location cannot be used because delayed branch
call: cannot insert jump around third location after the call.
This workaround may generate unused assembly code. To avoid linking this unused assembly
code, turn on linker elimination:
1.
2.
3.
4.
Select Project – Project Options from the VisualDSP++ menu.
Select Link – Elimination
Check the box Eliminate unused objects
Click OK
For more information about this silicon anomaly, please refer to the latest ADSP-21371/ADSP21375 Silicon Anomaly List.
VisualDSP++ 5.0 Update 3 Release Notes Rev 1.3
Page 3-16
Trampoline
A trampoline solution is replacing a problematic branch instruction with a direct branch to a
location in internal memory containing a branch that uses the index and modify registers of the
original, replaced branch instruction.
VisualDSP++ 5.0 Update 3 Release Notes Rev 1.3
Page 3-17
Anomaly Charts
Tools Anomalies Addressed
The following table is a list of tools anomalies addressed in VisualDSP++ 5.0 Update 3 for which
details can be found on the public tools anomaly website. Other tools anomalies have also been
fixed in the Update.
Details can be found on the Tools Anomaly Web page. The URL is:
http://www.analog.com/processors/tools/anomalies
Processor
Family
Tools
Anomaly
Report #
Tool
All
34023
Compiler
All
34828
Compiler
All
34928
Compiler
All
35158
Blackfin
Blackfin
35512
35047
IDDE
ADspCommon XML
Files
Compiler
Blackfin
35122
Compiler
Blackfin
35102
Examples
Blackfin
35488
Examples
Blackfin
35178
Flash Programmer
Blackfin
34397
IDDE
Blackfin
35039
IDDE
Blackfin
29526
Loader
Blackfin
28489
Run Time Libraries
Blackfin
32319
Run Time Libraries
Blackfin
33761
Run Time Libraries
VisualDSP++ 5.0 Update 3 Release Notes Rev 1.3
Description
Extern "C" after
default_section(ALLDATA,"L1_data") gives error
default_section pragma doesn't work with
concatenated strings
sizeof multi-dimensional array of variable & static
length array
VDK Status window shows incorrect message
channel
anomalies 05-00-0312 and 05-00-0283 don't apply
to BF52x
MISRA rules 10.1.b & 10.2.b incorrectly reported
int div/mod causes internal compiler error
(peephole.c:1472) -O
Missing boot ROM sources for ADSP-BF52x /
ADSP-BF54x processors
ADSP-BF561 internal/external regulator readme
note incorrect
Compare does not work for
BF527EzFlashDriver_M25P16
Trying to run VisualDSP++ 5.0 but nothing
happens.
License Server's License Manager reads both
license.dat files
Request to support -p # exclusively for application
HEX address.
64-bit fast float mult inaccurate when result close
to denorm
crtn.doj can be removed from .LDF File without
warning
Incorrect figures from instrumented profiling using
compiled sim
Page 3-18
Blackfin
34699
Run Time Libraries
Blackfin
35448
Run Time Libraries
Blackfin
34370
Simulator
Blackfin
33007
TCPIP Stack
Blackfin
35276
TCPIP Stack
Blackfin
34703
TCPIP Wizard
Blackfin
35060
VDK
Blackfin
35254
VDK
SHARC
35205
Compiler
SHARC
35245
Compiler
SHARC
SHARC
35390
35340
Compiler
Run Time Libraries
TigerSHARC
34924
Compiler
TigerSHARC
35194
VDK
AMBEN_ALL missing in defBF54x_base.h
Error in defBF54x_base.h which defines MCMEM,
instead of MCMEN
memory dma fails for 54x meminit on compiled
simulation
INETD example should not set the user_data_ptr
in the header
ADSP-BF527 LAN examples fail because of MAC
address in reverse order
Unable to modify MAC address for Network0 in
LwIP Project.
VDK does not reset the contents in memory for
mempools
Context switch code may get split between
memory regions
#pragma interrupt_complete_nesting causes
unsafe code
internal error at bitmatrix.c:81, -restrict-hardwareloops 1
memory access from 0 pre-modified with address
–O
Missing ")" in 212xx/include/def21266.h
terminate not called when exception thrown
during handler (TS)
VDK Thread stack incorrectly configured during
thread creation
Known Tools Anomalies
Details can be found on the Tools Anomaly Web page. The URL is:
http://www.analog.com/processors/tools/anomalies
VisualDSP++ 5.0 Update 3 Release Notes Rev 1.3
Page 3-19
VisualDSP++® 5.0 Update 2 Release Notes
Revision 1.1
2008 February 26
Table of Contents
Nomenclature .......................................................................................................................... 2-2
Installation ............................................................................................................................... 2-2
Identifying Your VisualDSP++ Version ................................................................................. 2-2
Installing the Update............................................................................................................ 2-2
New Hardware Support ........................................................................................................... 2-3
New Processors and Revisions Support ............................................................................... 2-3
New Emulation Support ....................................................................................................... 2-3
New System Services and Device Drivers ............................................................................ 2-3
New Examples .......................................................................................................................... 2-4
LCD ....................................................................................................................................... 2-4
File System ........................................................................................................................... 2-4
Critical Fixes/Changes .............................................................................................................. 2-5
ADSP-BF522 processor name change .................................................................................. 2-5
Linker error li1040 and .meminit in LDFs – TAR 34071 ....................................................... 2-5
Limitations................................................................................................................................ 2-6
VisualDSP++ 5.0 ADSP-BF54x Known Limitations ................................................................ 2-6
VisualDSP++ 5.0 ADSP-BF52x Known Limitations ................................................................ 2-6
Incomplete ADSP-BF523/BF525/BF527 silicon rev. 0.1 Support – TAR 35224.................... 2-6
No ADSP-BF523/BF524 Startup Wizard Support – TAR 35164 ............................................ 2-6
Silicon Anomaly Workarounds ................................................................................................. 2-7
ADSP-BF5xx Silicon Anomaly 05-00-0323 ............................................................................ 2-7
ADSP-BF5xx Silicon Anomaly 05-00-0371 ............................................................................ 2-7
ADSP-BF52x Silicon Anomaly 05-00-0380............................................................................ 2-8
Invalid SCLK Frequency for ADSP-BF548 at Power Up – TAR 35129 ................................... 2-8
Problem Charts ........................................................................................................................ 2-9
Problems Addressed ............................................................................................................ 2-9
Known Problems ................................................................................................................ 2-10
VisualDSP++ 5.0 Update 2 Release Notes Rev 1.1
Page 2-1
Nomenclature
In the past, VisualDSP++ updates were labeled by the month and year of their release.
In order to improve clarity, updates will now be numbered (e.g. Update 1, Update 2,
etc).
Installation
This update should only be installed after installing the VisualDSP++ 5.0 base release.
If VisualDSP++ 5.0 is not installed, please install it first. Installation on a previous
update is fine. If a newer update has already been installed, please do not install this
update. This update is not intended to be installed on alpha or beta releases.
Identifying Your VisualDSP++ Version
The VisualDSP++ release and update level can be found in 2 locations:
In the Control Panel, open the Add/Remove Programs applet.
In the VisualDSP++ Development Environment, select Help – About VisualDSP++.
Installing the Update
Please follow the instructions below for installing this update. Please note that since
VisualDSP++ supports having multiple instances installed on a single system, you can
install this update on top of one instance while keeping the previous installation.
Use the Start Menu to navigate to VisualDSP++ “Maintain this installation”. By default
this is at Start Menu - select All Programs - Analog Devices - VisualDSP++ 5.0.
Select “Go to the Analog Devices website” and click Next. This will open a window in
your web browser.
Select the appropriate Processor Software Tools Upgrades to match your processor.
Select and download the desired update (VisualDSP++ 5.0_Update2.vdu) to your hard
drive.
Again, use the Start Menu to navigate to VisualDSP++ “Maintain this installation”.
Select “Apply a downloaded Update” and click Next.
Browse for the downloaded Update file (VisualDSP++ 5.0_Update2.vdu) and click Next.
Follow the on-screen prompts to complete installation of this Update.
VisualDSP++ 5.0 Update 2 Release Notes Rev 1.1
Page 2-2
New Hardware Support
VisualDSP++ updates often include support for new processors, new silicon revisions
for existing processors and new EZ-KIT Lite® evaluation systems. In order to support
these, minor revisions are made to the tool chain and additional system services and
device drivers need to be added. This section describes the new support available in
this update.
New Processors and Revisions Support
The Product Bulletin contains the list of new processors available with VisualDSP++
5.0. Refer to the processor‟s data sheet and hardware reference manuals for
information on system configuration, peripherals, registers, and operating modes. The
following are Blackfin® processors newly supported with Update 2:



ADSP-BF522* silicon revision 0.0
ADSP-BF524 silicon revision 0.0
ADSP-BF526 silicon revision 0.0
*Please note that the ADSP-BF522 processor supported in VisualDSP++ 5.0 has been
renamed as the ADSP-BF523.
The following are newly supported silicon revisions to existing Blackfin® processors with
Update 2:



ADSP-BF523 silicon revision 0.1
ADSP-BF525 silicon revision 0.1
ADSP-BF527 silicon revision 0.1
There are no new silicon revisions to existing SHARC® or TigerSHARC® processors
with Update 2.
New Emulation Support
The following emulation features are now supported by VisualDSP++ 5.0:
Support for the ADSP-BF522*, BF524 and BF526 processors
*Please note that the ADSP-BF522 processor supported in VisualDSP++ 5.0 has been
renamed as the ADSP-BF523.
New System Services and Device Drivers
The following are now supported by VisualDSP++ 5.0:
Initial System Services Library support for the ADSP-BF522*, BF524 and BF526
processors
*Please note that the ADSP-BF522 processor supported in VisualDSP++ 5.0 has been
renamed as the ADSP-BF523.
VisualDSP++ 5.0 Update 2 Release Notes Rev 1.1
Page 2-3
New Examples
LCD
VisualDSP++ 5.0 Update 2 includes a new LCD example to demonstrate use of the
LCD supplied on the ADSP-BF527 EZ-KIT Lite® evaluation system. It can be found in
the following directory:
Blackfin\Examples\ADSP-BF527 EZ-KIT Lite\drivers\LCD
File System
VisualDSP++ 5.0 Update 2 now includes a File System example for the ADSP-BF527
EZ-KIT Lite® evaluation system similar to the ADSP-BF548 EZ-KIT Lite® evaluation
system example. It can be found in the following directory:
Blackfin\Examples\ADSP-BF527 EZ-KIT Lite\services\File System
VisualDSP++ 5.0 Update 2 Release Notes Rev 1.1
Page 2-4
Critical Fixes/Changes
This section highlights significant changes due to software anomaly fixes or functional
changes.
ADSP-BF522 processor name change
The ADSP-BF522 has been renamed as the ADSP-BF523. Support for this new name
is available in Update 2 to VisualDSP++ 5.0. Those who already created projects for
the BF522 and did not use automatically generated LDF‟s for the ADSP-BF522 may
need to rewrite or modify their LDF‟s in the future. There is a new ADSP-BF522
processor. Please refer to the datasheet online for clarification:
http://www.analog.com/en/epProd/0,,ADSP-BF527,00.html
Linker error li1040 and .meminit in LDFs – TAR 34071
The linker has a modification to resolve issues with meminit support (TAR34071) that
can expose errors in existing LDFs. The linker issues error li1040 for these problems.
This is an example of the linker output:
[Error li1040] "C:\Program Files\Analog Devices\VisualDSP5.0\TS\ldf\ADSPTS101.ldf":204 Out of memory in output section '.meminit' in processor 'p0'.
Total of 0x1 word(s) were not mapped.
The default ADSP-TS101 LDFs had the problem and has been fixed in Update 2
(TAR34273).
Older Blackfin default LDFs also had the problem so user customized LDF based on
these older versions of the files may also encounter the error (for example see
TAR35101).
The fix for the problem is to remove the .meminit command from the LDF file. This can
be done by either deleting it or by guarding it with the __MEMINIT__ pre-processor
macro (defined by the linker when meminit support is actually required). For example:
#if defined(__MEMINIT__)
.meminit { ALIGN(4) } >MEM_L1_DATA_A
#endif
VisualDSP++ 5.0 Update 2 Release Notes Rev 1.1
Page 2-5
Limitations
This section highlights known significant limitations
VisualDSP++ 5.0 ADSP-BF54x Known Limitations
The following device drivers will be supported in a future update:
 NAND FLASH driver
VisualDSP++ 5.0 ADSP-BF52x Known Limitations
The following device drivers will be supported in a future update:
 NAND FLASH driver
Incomplete ADSP-BF523/BF525/BF527 silicon rev. 0.1 Support – TAR 35224
The VisualDSP++ 5.0 Project Target selections will not allow the option to build for the
new 0.1 silicon revisions of ADSP-BF523, ADSP-BF525 or ADSP-BF527. Only
"Automatic", "none", "0.0" or "any" can be selected. If "Automatic" is selected and you
are connected through an emulator to a revision 0.1 part, you will get multiple cc3146
and ea1142 warnings when building your project. To avoid these warnings change the
Project Target revision selection to "any".
Full support for these new revisions will be provided in Update 3 of VisualDSP++ 5.0.
No ADSP-BF523/BF524 Startup Wizard Support – TAR 35164
When creating a new project for either the ADSP-BF523 or ADSP-BF524 the startup
code page in the project wizard does not appear.
To avoid this problem, create a project for the ADSP-BF527 instead of ADSP-BF523 or
a project for the ADSP-BF526 instead of the ADSP-BF524. Full processor support will
be available in Update 3.
VisualDSP++ 5.0 Update 2 Release Notes Rev 1.1
Page 2-6
Silicon Anomaly Workarounds
ADSP-BF5xx Silicon Anomaly 05-00-0323
"Erroneous GPIO Flag Pin Operations under Specific Sequences" anomaly
workarounds support has been added.
Include file sys/05000323.h is now supplied with VisualDSP++ 5.0. It contains a group
of macros for reading and writing MMRs applicable to this anomaly; if the anomaly
applies for the current value of the silicon revision of your target, these macros will
ensure that the read or write is safe against anomaly 05-00-0323. When building for
parts and silicon revisions that require the anomaly 05-00-0323 workaround, the macro
__WORKAROUND_FLAGS_MMR_ANOM_323 is defined at compile, assemble, and
link stages. To enable the workaround manually you can define use the D__WORKAROUND_FLAGS_MMR_ANOM_323 switch. See comments in the new file
(<VisualDSP++ 5.0 Install>\Blackfin\include\sys\05000323.h) for further details.
ADSP-BF5xx Silicon Anomaly 05-00-0371
"Possible RETS Register Corruption when Subroutine is under 5 Cycles in Duration"
anomaly workarounds support has been added.
The Blackfin C/C++ compiler has been enhanced to include workarounds for anomaly
05-00-0371 "Possible RETS Register Corruption when Subroutine is under 5 Cycles in
Duration". The anomaly happens (very rarely) when calling functions with an RTS within
5 instructions from the start of the function. The C/C++ compiler workaround is to avoid
generating such functions in the assembly it produces, these would typically result from
stub function code. The workaround involves inserting NOP instructions or an
unconditional JUMP instruction before the RTS. The JUMP workaround variant is used
when optimizing for code-size (-Os) and there would be more than two NOPs otherwise
required.
To enable this compiler workaround manually the "-workaround avoid-quick-rts-371"
switch can be used. When the workaround is enabled the macro
__WORKAROUND_AVOID_QUICK_RTS_371 is defined at compile, assemble and link
stages.
The Blackfin assembler has been modified to issue a warning (ea5516) for code that
may hit the anomaly and require a workaround to be inserted. An example of this new
warning is:
[Warning ea5516] "memchr.asm":39 RTS instruction use may trigger hardware
anomaly 05-00-0371. See appropriate Blackfin anomaly lists for more
information.
The runtime libraries and VDK support linked when building for impacted parts and
silicon revisions have been modified to avoid the anomaly.
VisualDSP++ 5.0 Update 2 Release Notes Rev 1.1
Page 2-7
ADSP-BF52x Silicon Anomaly 05-00-0380
“Data Read from L3 Memory by USB DMA May be Corrupted”
To workaround this anomaly, the USB Physical Interface Driver employs an
intermediate buffer in L1 memory. The larger this buffer, the better the performance.
However, the driver that is released with VisualDSP++ 5.0 employs a medium sized L1
buffer of size 8KB, providing 10MB/s read throughput and 0.8MB/s write throughput.
These figures represent a 30% decrease in performance compared to the driver
implemented for the ADSP-BF548 processor.
Invalid SCLK Frequency for ADSP-BF548 at Power Up – TAR 35129
At power-up, SCLK frequency on ADSP-BF548 EZ-KIT Lite must be set to within
83MHz-133MHz if the stack or heap is located in DDR, or else 'adi_pwr_SetFreq' may
fail.
The ADSP-BF548 EZ-KIT Lite is populated with double data rate SDRAM (DDR).
There are two types of DDR: mobile and non-mobile. The EZ kit uses non-mobile DDR.
The nominal system clock (SCLK) frequency range for non-mobile DDR is 83 MHz to
133 MHz.
The input clock (CLKIN) on the ADSP-BF548 is 25MHz. At reset, the multiplier select
(MSEL) value in the PLL control register (PLL_CTL) is decimal 10, while the PLL divider
ratio register (PLL_DIV) contains 5. Together these values produce a SCLK value of
50MHz (25 * 10 / 5), which is below the minimum for non-mobile DDR to work properly.
Therefore, DDR should not be accessed until after the PLL registers have been set up
to produce a system clock frequency in the range of 83 MHz to 133 MHz.
If the stack is located in DDR, then DDR will be accessed as soon as the application
starts running, so the PLL must be set up prior to loading and executing the application.
The EZ-KIT Lite is delivered with an application in flash, which sets SCLK to 133MHz. If
flash is erased and a new application is programmed into flash, and the new application
uses DDR for stack, then prior to loading and executing the new application, the boot
kernel should set system clock frequency (SCLK) to a valid frequency, using “Pre-boot”
or “Init Code".
If SCLK is out of the valid range while DDR stack activity is taking place, the power
management function „adi_pwr_SetFreq‟ will fail. This function takes DDR into self
refresh mode, to protect external memory while the system clock is adjusted. This is
problematic with SCLK at 50 MHz, and stack/heap located in DDR. The function will
“hang” under those conditions. If stack/heap is not located in DDR, and no other DDR
access is taking place, then the „adi_pwr_SetFreq‟ function will succeed in changing the
clock frequencies so that subsequently, DDR can be used without problems.
VisualDSP++ 5.0 Update 2 Release Notes Rev 1.1
Page 2-8
Problem Charts
Problems Addressed
The following table is a list of problems addressed in VisualDSP++ 5.0 Update 2 for
which details can be found on the public tools anomaly website. Other problems have
also been fixed in the Update.
Details can be found on the Tools Anomaly Web page. The URL is:
http://www.analog.com/processors/tools/anomalies
Product
Family
Problem
Number
Tool
Description
All
33743
IDDE
Dumping empty 21160 core file fails
All
33758
trouble opening file in IDDE after adding it to a project
All
34558
IDDE
Run Time
Libraries
All
34720
Blackfin
34809
VDK
ADspCommon
XML Files
Scheduling is disabled after call to DestroyMutex
EBSZ Field in EBIU_SDBCTL is 3 bits in BF534/6/7/8/9
Processors
Blackfin
33643
Compiler
keywords such as section cause spurious errors in MISRA mode
Blackfin
32752
Debug Agent
IceTest fails on RoHS EZ-KITs using USB 2.0 HUB
Blackfin
34628
Device Driver
NEC LCD driver broken by a PPI driver change
Blackfin
34668
Emulator
Watchdog timer does not fully reset when reset through emulator
Blackfin
33862
Examples
CDemo Buffer description are incorrect
Blackfin
33942
Examples
BF561 Chained DMA example does not work.
Blackfin
34444
Examples
BF537_SAFP.js does not run to completion
Blackfin
34597
Problems with BF533 EZ-kit Example 'Video-In'
Blackfin
34368
Examples
Flash
Programmer
Blackfin
33680
IDDE
Changing project options may overwrite working LDF
Blackfin
34621
IDDE
si-revision any in project options does not work
Blackfin
34259
LDFGen
Start symbol of second user heap in SDRAM has wrong value
Blackfin
34478
Loader Driver creates incomplete dependency
Blackfin
34317
Blackfin
34487
Blackfin
34488
Blackfin
34744
Loader
Run Time
Libraries
Run Time
Libraries
Run Time
Libraries
Run Time
Libraries
Blackfin
34291
Simulator
MDMA needs to be supported in BF54x for meminit to work
Blackfin
34319
Simulator
Filling memory with Hex32 format file reads the wrong way
Blackfin
34434
Simulator
"Binary 16 Bit" does not work in memory window.
Blackfin
34742
Simulator
DMA MMRs incorrect in memory/locals/expr windows
snprintf and vsnprintf may write 1 too many chars to the output
When erasing sector 1 on the BF548 it also erases sector 0
L2_shared memory, used to map locks etc, can be cached
SYSCR bits not yet updated in defBF52x_base.h
SYSCR bits not yet updated in defBF54x_base.h
meminit support zero init of arrays larger than 64k fails
VisualDSP++ 5.0 Update 2 Release Notes Rev 1.1
Page 2-9
Blackfin
33518
System Services
pwr mgmt to facilitate transition from SLEEP
Blackfin
29313
TCPIP Stack
ETHARP_ALWAYS_INSERT option is deprecated in lwIP
Blackfin
34680
VDK
VDK Status window does not display any threads
SHARC
32749
Compiler
slowdown of code using division when build -Os
SHARC
34819
Compiler
SHARC
29561
Emulator
USTAT1 and USTAT2 used in compiler generated code
VisualDSP+ +disconnects if Sport DMA Address reg window is
open
SHARC
32810
Emulator
Incorrect display of instructions in external memory on Sharc
SHARC
35013
Cannot load 16-bit external memory on 2126x
SHARC
34792
SHARC
33670
SHARC
34727
Emulator
Flash
Programmer
Run Time
Libraries
Run Time
Libraries
ADSP-21375 SPI flash will change from the Atmel to the STMicro
SIG_MTM to be defined for 21362/3/4/5/6
sinf may return poor results for inputs close to a 2*PI multiple
Known Problems
Details can be found on the Tools Anomaly Web page. The URL is:
http://www.analog.com/processors/tools/anomalies
VisualDSP++ 5.0 Update 2 Release Notes Rev 1.1
Page 2-10
VisualDSP++® 5.0 Update 1 Release Notes
Revision 1.1
2008 February 26
Table of Contents
Nomenclature .......................................................................................................................... 1-2
Installation ............................................................................................................................... 1-2
Identifying Your VisualDSP++ Version ................................................................................. 1-2
Installing the Update............................................................................................................ 1-2
New Hardware Support ........................................................................................................... 1-3
New Processors and Revisions Support ............................................................................... 1-3
New Emulation Support ....................................................................................................... 1-3
New System Services and Device Drivers ............................................................................ 1-3
New Examples .......................................................................................................................... 1-5
Lockbox ................................................................................................................................ 1-5
Getting Started Guide .......................................................................................................... 1-5
Critical Fixes/Changes .............................................................................................................. 1-6
ADSP-BF522 processor name change .................................................................................. 1-6
Two header files for builtins_support.h files – TAR 33949 .................................................. 1-6
SSL, USB and DRV libs for ADSP-BF52x not in default LDFs – TAR 34050............................ 1-6
Default changed for EBIU_SDBCTL for ADSP-BF533 / LDF – TAR 33491 ............................. 1-6
Rename MISCPORT register macros in ADSP-BF52x def file – TAR 33835 .......................... 1-6
Sometimes unable to connect to multiprocessor boards – TAR 33968 .............................. 1-7
Limitations................................................................................................................................ 1-8
VisualDSP++ 5.0 ADSP-BF54x Known Limitations ................................................................ 1-8
VisualDSP++ 5.0 ADSP-BF52x Known Limitations ................................................................ 1-8
Set memory option fails for NET2272 USB loopback – TAR 34450 ..................................... 1-8
BF548 EZ-KIT Lite USB drives may need to be formatted – TAR 34633 .............................. 1-8
File System rename function does not work – TAR 34561 .................................................. 1-8
LCD driver for the BF527 EZ-KIT Lite needs modification .................................................... 1-8
LCD Example for the BF527 EZ-KIT Lite is missing ............................................................... 1-9
USB-LAN EZ-Extender examples may fail............................................................................. 1-9
ADSP-BF5xx Silicon Anomaly 05-00-0245 ............................................................................ 1-9
Problem Charts ...................................................................................................................... 1-10
Problems Addressed .......................................................................................................... 1-10
Known Problems ................................................................................................................ 1-11
VisualDSP++ 5.0 Update 1 Release Notes Rev 1.1
Page 1-1
Nomenclature
In the past, VisualDSP++ updates were labeled by the month and year of their release.
In order to improve clarity, updates will now be numbered (e.g. Update 1, Update 2,
etc).
Installation
This update should only be installed after installing the VisualDSP++ 5.0 base release.
If VisualDSP++ 5.0 is not installed, please install it first. If a newer update has already
been installed, please do not install this update. This update is not intended to be
installed on alpha or beta releases.
Identifying Your VisualDSP++ Version
The VisualDSP++ release and update level can be found in 2 locations:
In the Control Panel, open the Add/Remove Programs applet.
In the VisualDSP++ Development Environment, select Help – About VisualDSP++.
In these locations, VisualDSP++ 5.0 should be visible without any update listed.
Installing the Update
Please follow the instructions below for installing this update. Please note that since
VisualDSP++ supports having multiple instances installed on a single system, you can
install this update on top of one instance while keeping the previous installation.
Use the Start Menu to navigate to VisualDSP++ “Maintain this installation”. By default
this is at Start Menu - select All Programs - Analog Devices - VisualDSP++ 5.0.
Select “Go to the Analog Devices website” and click Next. This will open a window in
your web browser.
Select the appropriate Processor Software Tools Upgrades to match your processor.
Select and download the desired update (VisualDSP++ 5.0_Update2.vdu) to your hard
drive.
Again, use the Start Menu to navigate to VisualDSP++ “Maintain this installation”.
Select “Apply a downloaded Update” and click Next.
Browse for the downloaded Update file (VisualDSP++ 5.0_Update2.vdu) and click Next.
Follow the on-screen prompts to complete installation of this Update.
VisualDSP++ 5.0 Update 1 Release Notes Rev 1.1
Page 1-2
New Hardware Support
VisualDSP++ updates often include support for new processors, new silicon revisions
for existing processors and new EZ-KIT Lite® evaluation systems. In order to support
these, minor revisions are made to the tool chain and additional system services and
device drivers need to be added. This section describes the new support available in
this update.
New Processors and Revisions Support
The Product Release Bulletin contains the list of new processors available with
VisualDSP++ 5.0. Refer to the processor‟s data sheet and hardware reference manuals
for information on system configuration, peripherals, registers, and operating modes.
The following are Blackfin® processors newly supported with Update 1:

ADSP-BF547 silicon revision 0.1
The following are newly supported silicon revisions to existing Blackfin® processors with
Update 1:




ADSP-BF542 silicon revision 0.1
ADSP-BF544 silicon revision 0.1
ADSP-BF548 silicon revision 0.1
ADSP-BF549 silicon revision 0.1
The following are newly supported silicon revisions to existing SHARC® processors with
Update 1:



ADSP-21367 silicon revision 0.2
ADSP-21368 silicon revision 0.2
ADSP-21369 silicon revision 0.2
New Emulation Support
The following emulation features are now supported by VisualDSP++ 5.0:
Support for the ADSP-BF52x processors
Support for the BF527 EZ-KIT Lite and onboard debug agent
Flash programming for the BF527 EZ-KIT Lite for STMicroelectronics M25P16 and
STMicroelectronics M29W320
New System Services and Device Drivers
The following are now supported by VisualDSP++ 5.0:
Full System Services Library support for the ADSP-BF522, BF525 and BF527
processors
Device Drivers for the ADSP-BF54x processors
VisualDSP++ 5.0 Update 1 Release Notes Rev 1.1
Page 1-3
o USB Mass Storage OTG Host
Device Drivers and Middleware for the BF548 EZ-KIT Lite
o AD1980 AC-97 Codec Driver for the BF548 EZ-KIT Lite
o Added SD Write Capability
Device Drivers and Middleware for the ADSP-BF52x processors
o PPI
o SPI
o SPORT
o UART
o TWI
o Rotary Counter
o Integrated Stereo Audio Codec
o Background Telemetry
o USB Mass Storage Device
o USB Mass Storage OTG Host
o FAT File System
o Ethernet
o LwIP
Device Drivers for the BF52x EZ-KIT Lite
o LCD
o Touch Screen controller
o Keypad
Library and Examples to support the SHARC USB EZ-Extender with the ADSP-2137x
processors
VisualDSP++ 5.0 Update 1 Release Notes Rev 1.1
Page 1-4
New Examples
Lockbox
The ADSP-BF52x and BF54x processors include the new Secure Lockbox Technology
(http://www.analog.com/processors/blackfin/lockboxSecureTechnology.html) for
Blackfin. Lockbox enables secure execution by providing a secure mode of operation in
which only trusted code is allowed to execute. Two new examples have been added to
demonstrate this technology. They can be found in the following examples:
Blackfin\Examples\ADSP-BF527 EZ-KIT Lite\lockbox
Blackfin\Examples\ADSP-BF548 EZ-KIT Lite\lockbox
Getting Started Guide
The Getting Started Guide for the BF548 EZ-KIT Lite has been added. This includes 8
easy to use and well documented examples. The examples can be found at the
following location:
Blackfin\Examples\ADSP-BF548 EZ-KIT Lite\Getting Started Examples
The documentation can be found in the Hardware Tools Manual under EZ-KIT Lite
Evaluation Systems.
VisualDSP++ 5.0 Update 1 Release Notes Rev 1.1
Page 1-5
Critical Fixes/Changes
This section highlights significant changes due to anomaly fixes or functional changes.
ADSP-BF522 processor name change
The ADSP-BF522 has been renamed as the ADSP-BF523. Support for this new name
will be available in a future update. Those who already created projects for the BF522
and did not use automatically generated LDFs for the ADSP-BF522 may need to rewrite
or modify their LDF files in the future.
Two header files for builtins_support.h files – TAR 33949
The Blackfin/include/builtins_support.h include file was erroneously part of the
VisualDSP++ 5.0 base release. It has been removed in Update 1. If you were including
it explicitly in your application source you should <builtins.h> instead.
SSL, USB and DRV libs for ADSP-BF52x not in default LDFs – TAR 34050
The default and generated LDF files for the ADSP-BF52x parts now explicitly link
against the system services (libssl527y.dlb), device drivers (libdrv527y.dlb) and USB
(libusb527y.dlb) libraries. If you were using Alpha releases of these libraries you would
have required project or LDF modifications to link with them. These changes will no
longer be required when using default and generated LDFs and should be undone.
Default changed for EBIU_SDBCTL for ADSP-BF533 / LDF – TAR 33491
The default LDFs for ADSP-BF533 prior to Update 1 only populated 32MB of SDRAM
(when enabled) unless macro EZKIT_SDRAM_64MB was defined in which case 64MB
was used. This has changed in Update 1 to make use of the 64MB SDRAM that is on
revisions 1.7 and above of the ADSP-BF533 EZ-KIT Lite. The LDFs now default to use
64MB of SDRAM and for revisions 1.6 of the EZ-KIT Lite and below macro
EZKIT_SDRAM_32MB can be defined to revert to using 32MB.
Rename MISCPORT register macros in ADSP-BF52x def file – TAR 33835
Register name changes in the ADSP-BF52x Hardware Reference Manual have also
resulted in macro name changes in the various ADSP-BF52x def and cdef headers in
\Blackfin\include.
MISCPORT_DRIVE / pMISCPORT_DRIVE
MISCPORT_SLEW / pMISCPORT_SLEW
MISCPORT_HYSTERISIS / pMISCPORT_HYSTERISIS
VisualDSP++ 5.0 Update 1 Release Notes Rev 1.1
Page 1-6
are replaced with:
NONGPIO_DRIVE / pNONGPIO_DRIVE
NONGPIO_SLEW / pNONGPIO_SLEW
NONGPIO_HYSTERESIS / pNONGPIO_HYSTERESIS
Sometimes unable to connect to multiprocessor boards – TAR 33968
If a multiprocessor board contains a processor with an unknown silicon revision, the
target could not connect in a multi-processor session. This issue has been resolved in
this update.
VisualDSP++ 5.0 Update 1 Release Notes Rev 1.1
Page 1-7
Limitations
This section highlights known significant limitations
VisualDSP++ 5.0 ADSP-BF54x Known Limitations
The following device drivers will be supported in a future update:
 NAND FLASH driver
VisualDSP++ 5.0 ADSP-BF52x Known Limitations
The following device drivers will be supported in a future update:
 NAND FLASH driver
Set memory option fails for NET2272 USB loopback – TAR 34450
The following examples fail after executing the set memory “hostapp –s” when any other
option is run:
\Blackfin\Examples\USB-LAN EZ-EXTENDER\USB\bulk_loopback_app
\Blackfin\Examples\USB-LAN EZ-EXTENDER\USB\bulk_redirect_io_app
BF548 EZ-KIT Lite USB drives may need to be formatted – TAR 34633
Before using the USB drives, build and run the format utility found here:
Blackfin\Examples\ADSP-BF548 EZ-KIT Lite\Services\File System\HardDisk\HardDiskFormat
File System rename function does not work – TAR 34561
The adi_fss_FileRename function fails to rename files within the same partition.
LCD driver for the BF527 EZ-KIT Lite needs modification
The ADSP-BF527 EZ-KIT Lite LCD requires that there be at least a 2 PPI CLK delay
between the enabling of the frame and horizontal sync signals. In the following 3 files,
insert the following lines at the specified:
Blackfin\lib\src\drivers\adc\adi_ad7674.c - line 898
ppi_fs_data.enable_delay = 0;
Blackfin\lib\src\drivers\lcd\adi_lcd.c - line 504
VisualDSP++ 5.0 Update 1 Release Notes Rev 1.1
Page 1-8
FsTmrBuf.enable_delay = 0;
Blackfin\lib\src\drivers\lcd\nec\adi_nl6448bc33_54.c - line 477
FsTmrBuf.enable_delay = 0;
LCD Example for the BF527 EZ-KIT Lite is missing
There is no example for the ADSP-BF527 EZ-KIT Lite LCD. LCD Drivers exist, but
there is no example project on how to use it. This will be available in a future Update.
USB-LAN EZ-Extender examples may fail
When using BF561 EZ-KIT Lite rev 2.0 or 2.1 with ADSP-BF561 revision 0.5 silicon in
conjunction with the USB-LAN EZ-Extender, USB and LAN examples may fail to run.
To avoid this problem, reduce the SCLK to 100 MHz or lower. To avoid this problem,
make the following changes:
On line 105 in Blackfin\Examples\USB-LAN EZ-EXTENDER\USB\bulk_loopback_app\usb_ezkit_utils.c:
#define SCLK 100000000
On line 105 in Blackfin\Examples\USB-LAN EZ-EXTENDER\USB\bulk_redirect_io_app\usb_ezkit_utils.c:
#define SCLK 100000000
On line 105 in Blackfin\Examples\USB-LAN EZ-EXTENDER\USB\mass_storage_app\usb_ezkit_utils.c:
#define SCLK 100000000
ADSP-BF5xx Silicon Anomaly 05-00-0245
The 05-00-0245 anomaly causes hardware errors on speculative loads. The tools
workarounds for this anomaly is not enabled for all parts and revisions which are
impacted by the anomaly. The missing parts and revisions are:
ADSP-BF54x - all revisions
ADSP-BF52x - revision 0.0
ADSP-BF561 - revision 0.5
ADSP-BF53[123] - revision 0.5
If you enable hardware errors in your application, and are building for one of these parts
and revisions you can avoid the 05-00-0245 related hardware errors in the following
ways:
Adding "–workaround speculative-loads" to the compiler additional options to enable the compiler
workaround when building C and C++ source.
For ADSP-BF53[123] and ADSP-BF561 parts building for silicon revision 0.4 (rather than 0.5) will avoid
the anomaly in the compiler generated code and system libraries.
VisualDSP++ 5.0 Update 1 Release Notes Rev 1.1
Page 1-9
Problem Charts
Problems Addressed
The following table is a list of problems addressed in VisualDSP++ 5.0 Update 1 for
which details can be found on the public tools anomaly website. Other problems have
also been fixed in the Update.
Details can be found on the Tools Anomaly Web page. The URL is:
http://www.analog.com/processors/tools/anomalies
Product
Family
Blackfin
Problem
Number
33976
Tool
Description
Wrong breakout width for BF52x EBSZ bit field of
EBIU_SDBCTL reg
csqu_fr16 should be using saturating fractional operations
Use of -overlay can result in compiler assert (bitset.c:67)
Compiler doesn't count inline asm length towards size of hw
loop
Generated cplbtab file unusable
CPLB_D_PAGE_MGMT used indiscriminately in gen'd BF535
cplbtab
BF533 POST: Release mode sets Loader width to 8 bit
ADSP-BF537\Drivers\UART\AutoBaud readme has no jumper
settings
The host side of the Inetd does not build for release build
USB-LAN EZ-Extender board examples may fail to run
correctly
Error in ReadData for BF548 flash driver
Blackfin
Blackfin
Blackfin
28492
33786
33963
ADspCommon
XML Files
Compiler
Compiler
Compiler
Blackfin
Blackfin
33403
33405
CRTGen
CRTGen
Blackfin
Blackfin
33808
33803
Emulator
Examples
Blackfin
Blackfin
34185
34198
Examples
Examples
Blackfin
34061
Blackfin
33049
Flash
Programmer
IDDE
Blackfin
Blackfin
Blackfin
31695
34059
33652
LDF
LDF
LDFGen
Blackfin
Blackfin
33722
33178
Blackfin
33654
Blackfin
33733
Blackfin
33744
Blackfin
33792
Blackfin
33825
Blackfin
33835
LDFGen
Run Time
Libraries
Run Time
Libraries
Run Time
Libraries
Run Time
Libraries
Run Time
Libraries
Run Time
Libraries
Run Time
Libraries
Loading DWARF3 debugging information may crash
VisualDSP++
data1 is mapped before L1_bsz
p1 and -p2 do not work with default LDFS (5.0)
Stack in mem covered by cplb data table entry in WB mode
problem
Two output sections with the same name are generated
Remove NWIDTH in NFC_CTL bit definitions for ADSP-BF52x
devices
DSP library function conv2d3x3_fr16() based on wrong
algorithm
Disable_data_cache() does not work
Incorrect macro names for HOSTDP masks in BF52x/BF54x
headers
Remove PORT_MUX from ADSP-BF52x def/cdef headers
PPI_STATUS missing bit masks for ADSP-BF52x
Rename HYSTERESIS / MISCPORT_* register macros in
ADSP-BF52x hdr
VisualDSP++ 5.0 Update 1 Release Notes Rev 1.1
Page 1-10
Blackfin
33901
Blackfin
34112
Blackfin
33627
Blackfin
SHARC
SHARC
33843
33968
33938
SHARC
33671
SHARC
34118
SHARC
TigerSharc
TigerSharc
TigerSharc
33887
28363
32429
34022
Run Time
Libraries
Run Time
Libraries
TCPIP Stack
TCPIP Stack
Emulator
Hardware
Board
Run Time
Libraries
Run Time
Libraries
Simulator
Compiler
Compiler
VDK
Including before "vdk.h" will result in an error
BF561 - Memory Initializer will not initialize external SDRAM
Corrupted BF537 EZ-KIT proj
LAN\Host\FILESERVER\FileServer.dsp
BF USB LAN Extender Examples and library do not work
Unable to connect to Multi-processor boards
21369 EZ-KIT Lite SPI Flash support changing
MTM registers missing from cdef21364.h
CYCLE_COUNT_* macros can give wrong results with
optimization
Reg modify then write to ext mem writes old reg value
Functions with #pragma weak_entry can be inlined
Internal error: diag_message: missing string substitution
VDK API level check can cause false positive Kernel Panic
Known Problems
Details can be found on the Tools Anomaly Web page. The URL is:
http://www.analog.com/processors/tools/anomalies
VisualDSP++ 5.0 Update 1 Release Notes Rev 1.1
Page 1-11
VisualDSP++® 5.0 Release Notes
2007 August 28
Table of Contents
VisualDSP++ 5.0 Documents ....................................................................................................... 2
Release Notes ......................................................................................................................... 2
Product Release Bulletin ......................................................................................................... 2
Documentation Set ................................................................................................................. 2
Licensing Guide ....................................................................................................................... 2
ADI ELF Documentation .......................................................................................................... 2
Problem Reports ..................................................................................................................... 3
Project Upgrades......................................................................................................................... 3
VisualDSP++ 5.0 .dpj Projects Have New Format ................................................................... 3
Project Wizard Template Changes – Blackfin ......................................................................... 3
Processor-Specific Release Notes ............................................................................................... 4
New Blackfin Processor Support ............................................................................................. 4
VisualDSP++ 5.0 ADSP-BF54x Known Limitations ................................................................... 4
VisualDSP++ 5.0 ADSP-BF52x Support .................................................................................... 4
VisualDSP++ 5.0 ADSP-BF52x Known Limitations ................................................................... 5
Compiler Release Notes .............................................................................................................. 5
Compiler Assumes Strong Alignment of Global Arrays / TAR 33540...................................... 5
Simulator Release Notes ............................................................................................................. 5
Limitations -- Blackfin ............................................................................................................. 5
System Services Release Notes – Blackfin .................................................................................. 7
Silicon Anomaly (05-00-0311) ................................................................................................. 7
SDH Driver Corrupts Directory Structures for Write Operations / TAR 33464 ....................... 7
adi_pwr_SetPowerMode() Does Not Help Transition from SLEEP / TAR 33518 .................... 7
File System Corruption When Number of Files Exceeds One Cluster / TAR 33677 ................ 8
Additional System Service Library Documentation ................................................................ 8
Device Driver Release Notes – Blackfin ...................................................................................... 8
Additional Device Driver Documentation ............................................................................... 8
Emulator Release Notes.............................................................................................................. 9
Customizing XML Register Reset Values ................................................................................. 9
Noteworthy VisualDSP++ 4.5 Update Changes .......................................................................... 9
Incorrect Memory Mapping for ADSP-21375 / TAR 31816 .................................................... 9
Former Workaround for 05-00-0311 is Not Safe – Blackfin TAR 32344 ............................... 10
Problem Charts ......................................................................................................................... 12
Problems Addressed ............................................................................................................. 12
Known Problems ................................................................................................................... 14
VisualDSP++ 5.0 Release Notes
Page 1
VisualDSP++ 5.0 Documents
Release Notes
This document provides the Release Notes for the VisualDSP++® 5.0 release.
Product Release Bulletin
Your primary source of information for the VisualDSP++ 5.0 Release is the Product
Release Bulletin manual in .pdf format that accompanies this release.
Documentation Set
The complete set of documentation in .pdf format is provided on the VisualDSP++
Installation CD. The manuals are available in .chm online Help format in the
installation.
Additional information is available online in the Technical Library:
http://www.analog.com/processors/technicalSupport/technicalLibrary
Licensing Guide
The VisualDSP++ 5.0 Licensing Guide is a new document that describes how to
manage your license for VisualDSP++ software. For users who purchase floating
licenses, the guide describes the VisualDSP++ Floating License Server.
Note: The Licensing Guide does not describe versions of VisualDSP++ licensing
prior to VisualDSP++ 5.0. For information about older versions, refer to:
Help -> Contents -> Assistance -> Software License Management.
The VisualDSP++ License Installation Procedure is also available on the Analog
Devices Web site on the “Upgrades Archives” page, available at:
http://www.analog.com/processors/tools/updates
ADI ELF Documentation
If you have tools that consume the ELF object files produced by VisualDSP++, the
following document will be of interest. Most VisualDSP++ 5.0 users need not be
concerned with this level of detail.
VisualDSP5_0_ADI_ELF_Changes.pdf
VisualDSP++ 5.0 Release Notes
Page 2
The ADI ELF document covers the most recent changes in the ADI ELF since
VisualDSP++ 4.5 was released. Updated versions of the complete ADI ELF ABI
specification (general and processor-specific) are available from Customer Support
by request.
Problem Reports
Charts summarizing the problems fixed in this release and the known open problems
are included at the end of this document.
Project Upgrades
We recommend working with a copy of your existing applications when first upgrading
to the VisualDSP++ 5.0 release. The upgrade will change existing *.dpj projects and in
some instances, the Project Wizard will prompt for regeneration of the LDF and startup
code. These upgrade changes are covered in more detail in the following two subsections.
VisualDSP++ 5.0 .dpj Projects Have New Format
The format of VisualDSP++ .dpj projects has changed from previous releases and the
new VisualDSP++ 5.0 format is not backwardly compatible. At the time VisualDSP++
5.0 reads an older generation project, the IDDE will provide a pop-up asking if it can
convert the project to the new format. It will save the pre-existing version in
'MyProject.dpj.bak‟ and the VisualDSP++ 5.0 version becomes „MyProject.dpj‟.
If you would like to keep working with VisualDSP++ 4.5 without any changes to your
application and/or projects, make a copy of your application for use with the
VisualDSP++ 5.0 version.
Project Wizard Template Changes – Blackfin
If you have a project that was generated with the Project Wizard, loading the project
after installing VisualDSP++ 5.0 may result in a pop-up requesting regeneration of the
code/LDF.
Regeneration affects three files:
1. LDF
2. basiccrt.s
3. heaptab.c
After regeneration, you will be current with the latest improvements in the templates.
If you would like to keep working with VisualDSP++ 4.5 without any changes to your
application and/or projects, follow the recommendation in the previous section and
make a copy of your application for use with VisualDSP++ 5.0.
VisualDSP++ 5.0 Release Notes
Page 3
Project Wizard template changes include:
 TAR 31346: Shared data, locks, etc. need to be non-cached
 TAR 31938: inputs sections for tables require FORCE_CONTIGUITY
 TAR 32725: Workaround comment incomplete in generated LDFs
TAR 31346: dual-core (ADSP-BF561) applications, in order for shared data and locks to be correctly accessed by each core, that
data must not be allowed to be cached. It has been the case that LDFs and CPLB tables generated by the Project Wizard did not
respect that requirement. That problem has been fixed.
TAR 31938: The linker will not guarantee contiguous placement of sections unless the FORCE_CONTIGUITY operator is used. If
you have table inputs in your LDF that require contiguous placement, these should be mapped in a separate memory output section
using FORCE_CONTIGUITY. In VisualDSP++ 5.0 the default LDFs have been modified to reflect this. More information on the
FORCE_CONTIGUITY can be found in the "Linker and Utilities" manual.
TAR 32725: In LDFs generated by the Project Wizard, there is a particular section of code that works around two silicon anomalies:
05-00-0189 and 05-00-0310. However, the comment for that section of code only mentions 05-00-0189. If a user believes that 0500-0189 does not apply, the user may remove that section of code, only to run into problems because 05-00-0310 does indeed
apply. To avoid this possibility, the comment for that section of code has been corrected.
Processor-Specific Release Notes
New Blackfin Processor Support
The Product Bulletin contains the list of new processors available at VisualDSP++ 5.0.
Refer to the processor‟s data sheet and hardware reference manuals for information on
system configuration, peripherals, registers, and operating modes. The following are
new Blackfin® processors:


ADSP-BF542, ADSP-BF544, ADSP-BF548, ADSP-BF549
ADSP-BF522, ADSP-BF525, ADSP-BF527
Ignore any mention of the ADSP-BF541. It does not exist, but is reserved for future use
and references to it may appear in some places.
VisualDSP++ 5.0 ADSP-BF54x Known Limitations
The following device drivers are not yet available:
 NAND
 Mass Storage Host (USB)
VisualDSP++ 5.0 ADSP-BF52x Support
Emulator support and the EZ-KIT Lite® debug agent are provided for the ADSP-BF52x
parts. VisualDSP++ 5.0 provides the tools required to build and debug ADSP-BF52x
code.
The ADSP-BF522/ADSP-BF525/ADSP-BF527 Blackfin Embedded Processor
Preliminary Data Sheet is located here:
VisualDSP++ 5.0 Release Notes
Page 4
http://www.analog.com/processors/blackfin/technicalLibrary/dataSheets.html
VisualDSP++ 5.0 ADSP-BF52x Known Limitations
These are the known limitations specific to the new Blackfin ADSP-BF52x processors:
 The System Service Libraries are not yet available
 The Device Driver Libraries are not yet available
 LwIP support is not yet available
 ADSP-BF527 EZ-KIT Lite example set is not yet available
 The Blackfin ADSP-BF52x Hardware Reference Manuals are not included in
VisualDSP++ 5.0
 No online help for the ADSP-BF52x Hardware Reference Manuals
Compiler Release Notes
Compiler Assumes Strong Alignment of Global Arrays / TAR 33540
For performance reasons, the compiler explicitly aligns arrays at global scope, which
allows the compiler to vectorize accesses to the array. For example:
char glob_array[BYTECOUNT] = { /* data */ }; // aligned on a 4-byte boundary.
The compiler assumes that externally-defined arrays will also be aligned in this manner:
extern char ext_array[];
// compiler assumes aligned on a 4-byte boundary.
If such arrays are defined in other C files, this will be the case. If, however, you define
such arrays in assembly source, you must ensure that they are suitably aligned,
otherwise run-time exceptions are possible.
For example:
.GLOBAL _unsafe_array;
.TYPE _unsafe_array,STT_OBJECT;
.BYTE _unsafe_array[100];
// no alignment - misaligned access possible
.ALIGN 4;
.GLOBAL _safe_array;
.TYPE _safe_array,STT_OBJECT;
.BYTE _safe_array[100];
// 4-byte aligned - access is safe
Simulator Release Notes
Limitations -- Blackfin
The following is a list of supported peripherals in the Blackfin simulators:
VisualDSP++ 5.0 Release Notes
Page 5
Core Peripherals
All Blackfin Processors:







Data Cache & SRAM Memory
Instruction Cache & SRAM Memory
Event/Interrupt Controller Registers
Core Timer Registers
Trace Buffer Registers
Watchpoint Control Registers
Performance Monitor Registers
System Peripherals
All Blackfin processors:









PLL Registers
CHIPID
RTC Registers
System Timers
System Interrupt Controller (SIC)
DMA
MDMA
UART
SPORT
ADSP-BF535 also includes:





SYSCR
Watch Dog Timer
PCI
GPIO
SPI
All Blackfin Processors NOT including the ADSP-BF535 also have:


PPI
EBIU - Full MMR support on MP Processors. Single Core only has SRAM
support
Note: The ADSP-BF54x processors have a limited list of Core and System
peripherals that are supported:




Data Cache & SRAM Memory
Instruction Cache & SRAM Memory
Event/Interrupt Controller Registers
Core Timer Registers
VisualDSP++ 5.0 Release Notes
Page 6






Trace Buffer Registers
Watchpoint Control Registers
Performance Monitor Registers
PLL Registers
CHIPID
RTC Registers
System Services Release Notes – Blackfin
Silicon Anomaly (05-00-0311)
The previous compiler workaround for this anomaly has been deemed unsafe and
removed from this release. As such the Programmable Flag service no longer relies on
the compiler to workaround this anomaly. Therefore in this VisualDSP++ 5.0 release,
the Programmable Flag service, in conjunction with the Interrupt Manager service,
collectively workaround this anomaly in a safe fashion. All versions of the System
Service Libraries for Blackfin processors that could potentially be affected by this
anomaly inherently work around the anomaly. Users of the System Services do not
need to take any action other than simply linking with the appropriate System Services
library as usual. Users of the System Services do not need to include the file
“sys/05000311.h” nor do they need to use the FIO_ANOM_0311_XXX macros (unless
they are accessing the flag MMRs directly).
See below: “Noteworthy VisualDSP++ 4.5 Update Changes: 05-00-0311” section for
further details.
SDH Driver Corrupts Directory Structures for Write Operations / TAR 33464
The Secure Digital Host (SDH) driver is currently only cleared for read-only access to
SD cards inserted into the SD slot on the ADSP-BF548 EZ-KIT Lite development board.
Note: This problem has been identified as a symptom of anomaly 05-00-0340 that is
planned to be fixed in Rev 0.1 silicon.
adi_pwr_SetPowerMode() Does Not Help Transition from SLEEP / TAR
33518
The Blackfin System Services power management function adi_pwr_SetPowerMode()
does not currently support a transition from SLEEP or DEEP SLEEP into any other
mode. Upon wakeup from SLEEP or DEEP SLEEP, a call to adi_pwr_SetPowerMode()
will fail. The function was not written to support either of these transitions is because
upon wakeup, the processor transitions automatically from SLEEP or DEEP SLEEP into
the FULL_ON or ACTIVE mode, depending on the status of the BYPASS bit, so it was
assumed that this function call was not necessary. This assumption was correct with
regard to the transition from DEEP SLEEP. But the problem is that when transitioning
from SLEEP, the STOPCK bit is NOT automatically cleared, the same way it is cleared
VisualDSP++ 5.0 Release Notes
Page 7
upon wakeup from DEEP SLEEP. The core clock is enabled, but the STOPCK bit does
not reflect this. The application must explicitly clear the STOPCK bit upon wakeup to
resume running, or else a subsequent read-modify-write of PLL_CTL followed by the
IDLE sequence can put the processor back to sleep.
In VisualDSP++ 5.0 Update 1, the adi_pwr_SetPowerMode() function will be modified to
facilitate the transition from SLEEP mode to ACTIVE or FULL-ON mode. The function
will update the appropriate register values to complete the transition from SLEEP mode.
As a workaround, the following code can be used clear the STOPCK bit manually, upon
wakeup from the SLEEP mode, enabling the application to resume successfully:
u16 PLLCtlVal = *pPLL_CTL;
PLLCtlVal &= 0xFFF7;
*pPLL_CTL = PLLCtlVal;
A subsequent call to adi_pwr_GetPowerMode() will then reflect the correct power mode.
File System Corruption When Number of Files Exceeds One Cluster / TAR
33677
A known issue with the ADI FAT File System Driver is that when more file entries are
created in a directory than there is space available with one cluster directory, corruption
may occur as subsequent clusters are not zeroed before use. For the hard disk
attached to the ADSP-BF548 EZ-KIT Lite development board, formatted as a 32GB
FAT 32 partition, this limitation equates to 512 short name (8.3) entries per cluster.
Please note that deleting files does not alleviate the issue.
Additional System Service Library Documentation
In the VisualDSP++ 5.0 installation directory, is a subdirectory called
“…/Blackfin/docs/services”. This subdirectory contains updated documentation for the
EBIU and Dynamic Power system services. In addition, this subdirectory contains new
documentation for the File System Service and the Real-Time Clock service.
Device Driver Release Notes – Blackfin
Additional Device Driver Documentation
In the VisualDSP++ 5.0 installation directory, is a subdirectory called
“…/Blackfin/docs/drivers”. This subdirectory contains detailed documentation for each
VisualDSP++ 5.0 Release Notes
Page 8
device driver. Within each subdirectory is detailed information describing each driver
including the dataflow methods it supports, command IDs, return codes, configuration
issues, etc.
Included in the USB documentation subdirectory is a porting guide document. This
document describes the application changes necessary to migrate an application using
the USB device driver provided in VisualDSP++ 4.5 to the newer USB driver provided
with VisualDSP++ 5.0. It is very strongly recommended that all USB users refer to this
document.
Emulator Release Notes
Customizing XML Register Reset Values
The Use XML Reset Values target option relies on the register reset definitions defined
in the XML files in the <install-dir-5.0>\System\ArchDef directory. The list of register
names and reset values are extracted from the XML block:
<register-reset-definitions>
…
</register-reset-definitions>
that is located within the XML files for that processor‟s EZ-KIT Lite. For the
TigerSHARC® processors, the register resets are located in the ADSP-TS*-resets.xml
files. For the Blackfin® and SHARC® processors, the register resets are located within
the *-proc.xml files.
In previous releases, the only method for overriding the XML reset values for custom
boards was to edit the system XML files directly. If you had more than one custom
board, you needed to rename the XML file to a known processor name prior to use.
At VisualDSP++ 5.0, you no longer need to make edits to the XML register resets in the
shipped versions or manage multiple boards by renaming files. The new Custom Board
Support includes a feature that enables you to specify register reset values for your
custom boards in separate XML files, with names and locations of your choice. For
details, refer to “Custom Board Support” within “Graphical Environment” in the
VisualDSP++ 5.0 online Help.
Noteworthy VisualDSP++ 4.5 Update Changes
If you have kept current to the VisualDSP++ 4.5 2007 June update, skip this section.
Incorrect Memory Mapping for ADSP-21375 / TAR 31816
TAR 31816: Incorrect memory mapping for ADSP-21375
The memory map for the ADSP-21375 SHARC processor has been corrected
VisualDSP++ 5.0 Release Notes
Page 9
throughout the tools, including the linker and the default LDFs. This was fixed in the
VisualDSP++ 4.5 June update. There are three consequences to these changes:
1) Any LDF that is heavily derived from a default LDF of a version of VisualDSP++
prior to the VisualDSP++ 4.5 June update may result in linker error el2011
"Invalid memory range and/or width for memory" when linking. In this situation,
the LDF must be corrected to reflect the actual memory map of the ADSP-21375
target.
2) Any application that uses the default LDF and more memory than is available on
the ADSP-21375 part memory map will cause linker errors li1040 "Out of memory
in output section". In previous Updates the link of such applications may have
succeeded. In this situation it will be necessary to reduce memory usage or build
for a part with more memory available.
3) Out of the box, the VDK-21375.ldf will get a linker error li1040 for “Out of memory
in output section 'seg_pmco' in processor”. VDK is too large for the ADSP-21375
to fit in internal memory. To use VDK in an ADSP-21375 processor, external
memory must be used.
The data sheets for these parts have corrected memory map information and can be
downloaded from www.analog.com by doing a search for the required part number (e.g.
ADSP-21375).
Former Workaround for 05-00-0311 is Not Safe – Blackfin TAR 32344
TAR 32344 : Former workaround for 05-00-0311 is not safe
New information regarding anomaly 05-00-0311 has moved the scope of this anomaly
beyond the realm of a VisualDSP++ Blackfin compiler workaround and into the region of
application-specific behavior.
In the VisualDSP++ 4.5 February 2007 Update, the Blackfin compiler, runtime, VDK and
SSL libraries automatically included a new workaround for hardware anomaly 05-000311. The VisualDSP++ 4.5 February 2007 Update C/C++ compiler also automatically
enabled this workaround when building for parts and silicon revisions that require it.
New information about anomaly 05-00-0311 reveals that it is necessary to temporarily
disable interrupts during MMR accesses, which is a decision the compiler should not be
making as it could be disabling interrupts for far too long or during a critical moment
when the code relies on receiving one. For this reason, the implementation of the
workaround was changed for the VisualDSP++ 4.5 June 2007 Update.
In the VisualDSP++ 4.5 June 2007 Update, the Blackfin compiler, runtime, VDK and
SSL libraries no longer workaround hardware anomaly 05-00-0311. Instead, an include
VisualDSP++ 5.0 Release Notes
Page 10
file called sys/05000311.h is supplied and contains a group of macros for reading and
writing the MMRs; if the anomaly applies for the current value of the silicon revision of
your target, the macro will ensure that the read or write is safe against anomaly 05-000311.
When building for parts and silicon revisions that require the anomaly 05-00-0311
workaround, the macro __WORKAROUND_FLAGS_MMR_ANOM_311 is defined at
compile, assemble, and link stages.
05-00-0311
Anomaly 05-00-0311 is seen when an access of a System MMR Flag register is
followed by an access of a specific MMR. The result of the anomaly can be that flag
pins configured as outputs that are "set" can erroneously transition to "clear". The
anomaly impacts all revisions of ADSP-BF53[123] and ADSP-BF561 parts.
Given some sample application code, such as:
int accessMMR()
{
unsigned short w, x, y, z;
x = *pFIO_FLAG_D;
y = *pFIO_MASKA_D;
z = x & y;
*pFIO_FLAG_C = z;
w = *pFIO_EDGE;
*pFIO_DIR = 0;
...
}
The anomaly-safe code would be:
#include <sys/05000311.h>
...
int accessMMR()
{
unsigned short w, x, y, z;
FIO_ANOM_0311_FLAG_R(x, pFIO_FLAG_D);
FIO_ANOM_0311_MASKA_R(y, pFIO_MASKA_D);
z = x & y;
FIO_ANOM_0311_FLAG_W(z, pFIO_FLAG_C);
FIO_ANOM_0311_EDGE_R(w);
FIO_ANOM_0311_DIR_W(0);
...
}
Note: System Service Libraries are anomaly safe for 05-00-0311. See above: “System
Services Release Notes: Silicon Anomaly (05-00-0311)” section.
For more information on anomaly 05-00-0311, see the appropriate errata sheet, which
can be downloaded from
VisualDSP++ 5.0 Release Notes
Page 11
<http://www.analog.com/processors/blackfin/support/ICanomalies.html>.
Problem Charts
Problems Addressed
The following table is a list of the problems addressed in the VisualDSP++ 5.0 release.
Details can be found on the Tools Anomaly Web page. The URL is:
http://www.analog.com/processors/tools/anomalies
Processor
Family
All
All
All
All
All
All
All
All
All
All
All
All
All
All
All
All
All
All
All
All
All
Problem
Number
24089
24929
25649
26325
28566
28684
28814
29484
29611
29617
29660
29860
29910
29952
30096
24335
27965
28592
31938
24204
28389
All
28541
All
All
All
28599
8136
29569
Blackfin
29189
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
30604
26076
28145
28483
28898
29099
30547
30554
30886
Tool
Description
Compiler
Compiler
Compiler
Compiler
Compiler
Compiler
Compiler
Compiler
Compiler
Compiler
Compiler
Compiler
Compiler
Compiler
Compiler
IDDE
IDDE
IDDE
LDF
Linker
Linker
Run Time
Libraries
Run Time
Libraries
Utilities
VDK
ADspCommon
XML Files
ADspCommon
XML Files
Compiler
Compiler
Compiler
Compiler
Compiler
Compiler
Compiler
Compiler
Generates bad code for old style C args with -double-size-64
#pragma pack doesn't work as expected with bitfields
Compiler crashes if a 64-bit float variable is used in an asm
Speed/size ratio inlining warning gives wrong source line
Alternate pre-processing sequences cause error with -pedantic
Multiple PGO files confuses IPA
-MQ switch crashes driver
The "optimize" pragmas do not override -Og
Compiler switch -s does not work
Assertion (macdefs.c:2475) with extremely long variable names
Pre-compiled headers doesn't work with IPA and VDK
#pragma alignment_region modified by prior extern statements
#pragma always_inline in system headers can cause a warning
Compiler doesn't recognize -1,0 as fract literal.
Circular buffer loops containing fn pointers don't zero Lregs
Unnecessary silicon revision warning
Default for new projects should be std:: enabled
getTargetFileNameList returns bad filenames
Inputs sections for tables require FORCE_CONTIGUITY
Pragma align can lead to wasteful memory allocation
No way to map anything after PLIT
VisualDSP++ 5.0 Release Notes
Cycle counting macros fail to compile in conditional statements
printf ignores the 'h' length modifier with %o, %x, and %X
elfdump doesn't flag error when archive(object) doesn't exist
RunLastTime in VDK Status is displaying the wrong figure
DMA register names have an extra number in the name
BF561 has RTC window / register defs. These should be taken out.
WDOG_DISABLE not defined in defBF53{2|4|8}.h and defBF561.h
label displayed at wrong address
#pragma no_alias is too strict
includes in UNC/shares not found
Debug info associated with wrong line of C++ source code.
BF shift-with-clipped-shift-distance builtins literal inconsistencies
Local variables totalling >64KB can result in internal error
Using "n" asm constraint results in compiler error
Page 12
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
31849
32823
32858
32904
32910
32939
33668
30796
22657
23285
27938
28150
28197
28404
28891
28902
28922
28975
29017
29087
29384
29605
29846
30494
31336
32024
32038
32067
32620
30349
31346
32725
30935
Blackfin
22930
Blackfin
28518
Blackfin
28558
Blackfin
28965
Blackfin
29525
Blackfin
30752
Blackfin
31869
Blackfin
31881
Blackfin
32864
Blackfin
Blackfin
Blackfin
Blackfin
32911
28099
29583
30628
Compiler
Compiler
Compiler
Compiler
Compiler
Compiler
Compiler
Emulator
IDDE
IDDE
IDDE
IDDE
IDDE
IDDE
IDDE
IDDE
IDDE
IDDE
IDDE
IDDE
IDDE
IDDE
IDDE
IDDE
IDDE
IDDE
IDDE
IDDE
IDDE
Installation
LDFGen
LDFGen
Linker
Run Time
Libraries
Run Time
Libraries
Run Time
Libraries
Run Time
Libraries
Run Time
Libraries
Run Time
Libraries
Run Time
Libraries
Run Time
Libraries
Run Time
Libraries
Run Time
Libraries
Simulator
Simulator
Simulator
VisualDSP++ 5.0 Release Notes
The complex fract function csqu_fr16 doesn't work
abs saturates even with -no-saturation
Callee function doesn’t truncate parameter to expected type (K&R C)
internal compiler error in peephole.c:2387
"Buffer overrun detected" error message from linker
Short names for video functions being defined with -no-builtins
Fatal error in do_expr()
HPPCI-ICE does not work under OEM Windows Vista
Backslash causes problems for assembler property page
Cannot export from VDK State History pane top-bar
Random license failure when building using a floating license.
Cannot view defined static member variable
LDFGen ignores multicore settings
User-corrupted VDK history data/window can crash Idde
Startup code/LDF wizard doesn’t warn when overwriting LDF file
Additional include dirs from 3.0 or earlier project settings
Show tabs now also show spaces
Creating a new TCPIP project pops up message about replacing srcs
$(VDSP) not expanded when just building one file in a project.
Thread Types missing from Threads in VDK Status Window
Go To in BTC Memory window causes Runtime - Abnormal termination
VDK Status window Event Bit display error
Doubles not fully displayed when -double-size-64
Whole word replacement does not work with undercores
Two elements allowed to be placed at the same location
Trace window does not display all of its entries
Expert Linker crashes when opening LDF file
ADspStreamList Add* methods don't work for BF561
C++ NMI interrupt handler does not end with an RTN
msxml3.dll registration problems prevent install
shared data, locks etc need to be non-cached
Workaround comment incomplete in generated LDFs
Cannot jump-call expand PLIT?
C++ exception handling may not work with spilled sections.
Interrupt dispatcher does not include 05-00-0071
32-bit signed division wrong for inputs near INT_MIN
min_fr1x16 and max_fr1x16 missing
adi_core_b_enable() unresolved in assembly
CPLB Manager can cause double exception
meminit support fails to for ZERO_INIT when stack in scratchpad
FLT_MAX not a float literal
DMA32 bit in PPI erroneously appears in single core def headers
mulfl64.asm in release not same as used to build library
BF535: crash running attached DXE in BF535 CAS
Self-Nesting Interrupts not supported in Blackfin BF533 CAS
32 bit registers in EBIU only accept 16 bit writes on a BF561.
Page 13
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
31895
28946
30450
30991
32156
SHARC
SHARC
SHARC
SHARC
SHARC
SHARC
SHARC
SHARC
SHARC
SHARC
SHARC
28087
20526
28993
29964
31767
32198
29246
25305
31421
29802
28074
SHARC
30078
SHARC
31200
SHARC
31850
SHARC
SHARC
SHARC
SHARC
TigerSHARC
33303
29900
30460
32673
TigerSHARC
TigerSHARC
TigerSHARC
TigerSHARC
TigerSHARC
TigerSHARC
32115
22672
31832
32041
29096
32803
29735
TigerSHARC
29836
Simulator
TCPIP Stack
VDK
VDK
VDK
ADspCommon
XML Files
Compiler
Compiler
Compiler
Compiler
Compiler
Examples
IDDE
IDDE
LDF
Linker
Run Time
Libraries
Run Time
Libraries
Run Time
Libraries
Run Time
Libraries
Utilities
Simulator
Simulator
ADspCommon
XML Files
Assembler
Assembler
Assembler
Compiler
IDDE
Run Time
Libraries
Run Time
Libraries
Size information for all of the caches show up as "0" Kbytes
LwIP Project does not accept broadcast traffic in VDSP 4.5
Contradictory information provided for popping regions
VDK does not handle all the exceptions that the cplb_hdr does
Enabling self-nested interrupts breaks VDK
REVPID register displays PROCID and SIREV swapped
Annotation information is incorrect for registers clobbered by an asm
-pedantic should put out warnings
C/C++ runtime not honored on SHARC.
Compiler not working around 2136x anomaly (07-00-0009)
Asm statements using circ buf regs don't work
21262 AsmDemo / CDemo BTC example README files need correction
Additional options lost converting 3.0 dpj to 4.0
Zooming in the plot window may cause the IDDE to crash
LDF can allow 1 too many words to be assigned to heap
No output sections issued when "empty" with run spaces
delete operator doesn't work with heap_install
Multi-threaded realloc() will not allocate correct amount of mem
heap_malloc with nonexistant heap causes invalid data accesses
Bit macro FAR changed to FARF for SDCTL register in def header
Mem21k update generates "1" exit code, but seems to work anyway
ADSP-21375 Primes example does not work in simulator
Hang executing from ext mem consecutive reads from ext mem
-workaround all does not turn on all workarounds
Assembler accepts invalid register move
Symbols sizes for .INC/BINARY wrong
Invalid warning on 2nd .section directive
Confusing annotations for compiler-generated fp-divide code
Porting a VisualDSP++ 4.5 project causes different libraries to be linked in
strtol and strtoul error for garbage bases
libsim for TS101 rev 0.4 is incomplete
Known Problems
The following table is a list of known problems in VisualDSP++ 5.0.
Details can be found on the Tools Anomaly Web page. The URL is:
http://www.analog.com/processors/tools/anomalies
Processor
Family
All
All
All
Problem
Number
30713
32429
33665
Tool
Description
Compiler
Compiler
Compiler
Compiler is not using BSS
Internal error: diag_message: missing string substitution
"internal compiler error / driver.c:1488" building VLA source
VisualDSP++ 5.0 Release Notes
Page 14
All
28272
All
32303
All
All
All
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
32092
31923
32237
32004
28572
29394
29851
29870
29874
30247
32466
32299
32749
33643
33721
33403
33405
30369
32752
24859
26184
27061
29791
31608
30087
33691
27445
27685
28755
29687
29727
31238
31720
32578
32665
32312
32957
33049
33680
31173
33057
28515
31695
29902
32747
33652
33722
29565
29065
Blackfin
29221
Run Time
Libraries
Run Time
Libraries
IDDE
Compiler
Compiler
Assembler
Compiler
Compiler
Compiler
Compiler
Compiler
Compiler
Compiler
Compiler
Compiler
Compiler
Compiler
CRTGen
CRTGen
Debug Agent
Debug Agent
Device Driver
Device Driver
Device Driver
Device Driver
Device Driver
elf2flt
Examples
IDDE
IDDE
IDDE
IDDE
IDDE
IDDE
IDDE
IDDE
IDDE
IDDE
IDDE
IDDE
IDDE
Installation
Installation
LDF
LDF
LDFGen
LDFGen
LDFGen
LDFGen
Loader
Run Time
Libraries
Run Time
Libraries
VisualDSP++ 5.0 Release Notes
C++ library code linked in with -rtti is bigger than 4.0
cycle_t function return types causes compiler warning cc0815
int PrimIOCB; means no output, multiply defined sym or software exception
Compiler driver accepts illegal -flags-* options
Workaround switches don't match annotations
Inconsistent Assembler behavior with integer constants
BF535: float div returns small denorm result when zero expected
-Wremarks doesn't always warn about deprecated switches
-section does not apply qualifiers
ISR problems with SAVE_REGS functionality
-no-builtin switch causing failures
section __attribute__ does not work as documented
C++ template instantiations ignore #pragma uses
volatile store inputs also treated as volatile when unnecessary
Slowdown of code using division when build -Os
Keywords such as section cause spurious errors in MISRA mode
still possible to write bad context sensitive __builtin_aligned
Generated cplbtab file unusable
CPLB_D_PAGE_MGMT used indiscriminately in generated BF535 cplbtab
Debug agent scans too fast [can cause external memory issues]
IceTest fails on RoHS EZ-KIT Lite’s using USB 2.0 HUB
Autobauding fails at 38,400bps on the 561 only
UART autobaud timer selection
Memory size given to adi_dev_Init() must be larger than expected
PPI Error Callbacks
Error Interrupt Side Effects
Bad relocations out of elf2flt when no code
ADSP-BF561 POST does not stop at main on load with 1.3 rev EZ-KIT Lite
Step over/out doesn’t work in flash
Deleted SW breakpoints keep re-appearing after load
After selecting text, print from source window prints entire file
Terminal font doesn't work in the source window
static member of class not resolved in expressions window
No warning on Memory Fill/Dump outside valid memory
Various tool switches reported as not enabled via automation
Should keep the paths in the additional include as absolute
File-specific compile options do not take defaults from existing
License not migrated when installing under Windows Vista
F2 does not rename VDK items
Loading DWARF3 debugging information may crash VisualDSP++
Changing project options may overwrite working LDF
Install_CL does not handle VC2005 SP1 update
Unknown publisher warnings during 5.0 Installation on Vista
Issues with the 2-link approach for BF561 projects
data1 is mapped before L1_bsz
Project fails to build when user sets heap space to less than 1k
LDFGen doesn't sufficiently support run-from-flash
Stack in mem covered by cplb data table entry in WB mode problem
Two output sections with the same name are generated
Wrong assignment in the ADSP-BF537 Init file
Hyperbolic Functions do not return Inf when called with Inf arg
Multicore runtime libraries always link in I/O library
Page 15
Blackfin
32179
Blackfin
32319
Blackfin
32867
Blackfin
33654
Blackfin
33733
Blackfin
33744
Blackfin
28581
Blackfin
31568
Blackfin
32230
Blackfin
33464
Blackfin
33518
Blackfin
33677
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
Blackfin
29313
29736
30157
32362
33007
33627
Blackfin
SHARC
SHARC
SHARC
SHARC
SHARC
32949
32920
29561
32810
33574
32706
SHARC
32881
SHARC
33670
SHARC
33671
28363
TigerSHARC
TigerSHARC
TigerSHARC
TigerSHARC
TigerSHARC
32961
33655
30749
28195
TigerSHARC
29110
TigerSHARC
32626
Run Time
Libraries
Run Time
Libraries
Run Time
Libraries
Run Time
Libraries
Run Time
Libraries
Run Time
Libraries
System
Services
System
Services
System
Services
System
Services
System
Services
System
Services
TCPIP Stack
TCPIP Stack
TCPIP Stack
TCPIP Stack
TCPIP Stack
TCPIP Stack
USB Stack
Compiler
Emulator
Emulator
IDDE
Run Time
Libraries
Run Time
Libraries
Run Time
Libraries
Run Time
Libraries
Compiler
Compiler
Compiler
Emulator
Run Time
Libraries
Run Time
Libraries
Run Time
Libraries
VisualDSP++ 5.0 Release Notes
VDK and RTL link in different libs for -si-revision none -workaround
crtn.doj can be removed from .LDF File without warning
Make the header files MISRA compliant
DSP library function conv2d3x3_fr16() based on wrong algorithm
disable_data_cache() does not work
Incorrect macro names for HOSTDP masks in BF52x def header
adi_pwr_SetFreq() locks up sometimes on ASDP-BF561
Add command to sense the PERIOD register for GP timers
Add command to sense GP timer period
SDH driver corrupts directory structures for write operations
Note: This problem has been identified as a symptom of anomaly 05-000340 that is planned to be fixed in Rev 0.1 silicon.
pwr mgmt to facilitate transition from SLEEP
File System Corruption when number of files exceeds 1 cluster
ETHARP_ALWAYS_INSERT option is deprecated in lwIP
Multiple network interface problem
lwip send function returns bytes sent, but sends only 64K max
getsockopt() with SO_ERROR does not return error
INETD example should not set the user_data_ptr in the header
Corrupted ADSP-BF537 EZ-KIT Lite in Blackfin\Examples (patch available)
ADSP-BF537 EZ-KIT Lite\LAN\Host\FILESERVER\FileServer.dsp
Intermittent USB connectivity on ADSP-BF548 EZ-KIT Lite
PCH fails with cc0219 on Vista
VisualDSP++ disconnect if Sport DMA Addressing debug window open
Incorrect display of instructions in external memory on Sharc
Value of float pointers displayed in unexpected format
Increase in printf footprint
Thread-safe time library ctime() problem
SIG_MTM to be defined for ADSP-21362/3/4/5/6
MTM registers missing from cdef21364.h
Functions with #pragma weak_entry can be inlined
Use of setjmp/longjmp incompatible with compiler optimizations
link error: __memzero could not be resolved
Halting single proc during MP run halts both processors
Compiler fails using some library functions prefixed with std::
-fp-div-lib doesn't work when compiling Inf/NaN with -ve value
ADSP-TS201 BTB not enabled by default in the boot process
Page 16
TigerSHARC
32758
TigerSHARC
32782
TigerSHARC
27911
Run Time
Libraries
Run Time
Libraries
Simulator
VisualDSP++ 5.0 Release Notes
namespace std does not contain builtins
DSP real vector functions can raise FP exceptions
ADSP-TS203 session displays the CLU registers
Page 17
Download PDF