+ All Categories
Home > Documents > VisualDSP++ 4.0 (Updated March 2007) Release Note...VisualDSP++ 4.0 (Updated June 2006) Release Note...

VisualDSP++ 4.0 (Updated March 2007) Release Note...VisualDSP++ 4.0 (Updated June 2006) Release Note...

Date post: 13-Feb-2021
Category:
Upload: others
View: 3 times
Download: 0 times
Share this document with a friend
32
VisualDSP++ 4.0 (Updated March 2007) Release Note The following release note concerns the March 2007 Update to the VisualDSP++ 4.0 release. This release is inclusive of previous Updates. The contents of future Updates will be inclusive of all previous Updates. The release notes for past Updates are appended to the end of this release note. Identifying Which Update Is Currently Installed on Your System The Update level is identified in three places: 1. The Add/Remove Programs Control Panel entry for VisualDSP++ 4.0. 2. The VisualDSP++ GUI’s About box, located at “Help” > “About VisualDSP++”. 3. In the file …\System\VisualDSP.ini, in the ProductName key. Installing an Update The procedure for installing an Update to VisualDSP++ is described below. Note that it is different from previous releases of VisualDSP++. Note that with VisualDSP++’s support for installing multiple instances of itself, it is possible to “trial” an Update in a new directory before switching over your “golden” tools installation to the Update. 1. Use the Start Menu to navigate to VisualDSP++’s “Maintain this Installation” item. 2. Select “Go to the Analog Devices website” and click “Next”. This will launch your web browser and navigate it to the proper URL to download Updates from. 3. Download the VisualDSP++ Update file (.VDU) of interest to your hard disk. Note that these files have a .VDU file extension and cannot be executed directly. 4. Navigate to “Maintain this Installation” again. If you have multiple installations VisualDSP++ on your computer, be doubly sure you are navigating to the installation you wish to Update. 5. Select “Apply a downloaded Update” and click “Next”. Click the “…” browser button and navigate to the .VDU file that you downloaded in step 3. Click “OK”, then “Next”. 6. Follow the on-screen prompts to complete the installation of the Update. Significant Additions The primary purpose of VisualDSP++ Updates is to address problems and stabilize the release. Significant new functionality is not expected to be introduced in an Update. However, incremental support (i.e., emulation, example programs, header files, default LDF, errata accommodations, EZ-KIT Lite software, etc.) for new semiconductor products will be added as these products become available and gain support within the VisualDSP++ tools. In this release: 1. The Blackfin compiler, runtime, VDK, and SSL libraries include new workarounds for hardware anomalies 05-00-0311 and 05-00-0312. The C/C++ compiler will automatically enable these workarounds when building for parts and silicon revisions that require them. Alternatively they can be enabled using the -workaround switch. The Blackfin assembler has a new warning to indicate potential instances of anomaly 05-00-0312. 05-00-0311 – The anomaly 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.
Transcript
  • VisualDSP++ 4.0 (Updated March 2007) Release Note

    The following release note concerns the March 2007 Update to the VisualDSP++ 4.0 release. This release

    is inclusive of previous Updates. The contents of future Updates will be inclusive of all previous Updates.

    The release notes for past Updates are appended to the end of this release note.

    Identifying Which Update Is Currently Installed on Your System

    The Update level is identified in three places:

    1. The Add/Remove Programs Control Panel entry for VisualDSP++ 4.0. 2. The VisualDSP++ GUI’s About box, located at “Help” > “About VisualDSP++”. 3. In the file …\System\VisualDSP.ini, in the ProductName key.

    Installing an Update

    The procedure for installing an Update to VisualDSP++ is described below. Note that it is different from

    previous releases of VisualDSP++. Note that with VisualDSP++’s support for installing multiple instances

    of itself, it is possible to “trial” an Update in a new directory before switching over your “golden” tools

    installation to the Update.

    1. Use the Start Menu to navigate to VisualDSP++’s “Maintain this Installation” item. 2. Select “Go to the Analog Devices website” and click “Next”. This will launch your web browser

    and navigate it to the proper URL to download Updates from.

    3. Download the VisualDSP++ Update file (.VDU) of interest to your hard disk. Note that these files have a .VDU file extension and cannot be executed directly.

    4. Navigate to “Maintain this Installation” again. If you have multiple installations VisualDSP++ on your computer, be doubly sure you are navigating to the installation you wish to Update.

    5. Select “Apply a downloaded Update” and click “Next”. Click the “…” browser button and navigate to the .VDU file that you downloaded in step 3. Click “OK”, then “Next”.

    6. Follow the on-screen prompts to complete the installation of the Update.

    Significant Additions

    The primary purpose of VisualDSP++ Updates is to address problems and stabilize the release. Significant

    new functionality is not expected to be introduced in an Update. However, incremental support (i.e.,

    emulation, example programs, header files, default LDF, errata accommodations, EZ-KIT Lite software,

    etc.) for new semiconductor products will be added as these products become available and gain support

    within the VisualDSP++ tools.

    In this release:

    1. The Blackfin compiler, runtime, VDK, and SSL libraries include new workarounds for hardware anomalies 05-00-0311 and 05-00-0312. The C/C++ compiler will automatically enable these

    workarounds when building for parts and silicon revisions that require them. Alternatively they

    can be enabled using the -workaround switch. The Blackfin assembler has a new warning to

    indicate potential instances of anomaly 05-00-0312.

    05-00-0311 –

    The anomaly 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.

  • The compiler works around the anomaly:

    1. By adding a load of the CHIPID MMR at the start of code generated for C defined event

    handlers. System Services’ handlers and VDK’s interrupt templates make similar

    accommodations. The related workaround for 05-00-0283 will be used if it is enabled at the same

    time as this workaround.

    2. By identifying accesses, or potential accesses, of any of the various System MMR Flag registers

    associated with the errata and generating a load of CHIPID after each such access. The compiler

    relies on use of literal addressing of MMRs to identify these accesses, such as using the various

    p macros defined in the cdef.h include files. Any loads and stores that do not

    use literal addresses and the type of the access is defined qualified as volatile, will be assumed

    to be flag MMR accesses, unless the -no-assume-vols-are-mmrs switch is used. If the

    -no-assume-vols-are-mmrs compiler switch is used the compiler will apply the

    workaround for suitable literal address accesses only and will make no assumptions for non-literal

    loads and stores even if volatile.

    To enable this compiler workaround manually the -workaround flags-mmr-anom-311

    switch can be used. When the workaround is enabled the macro

    __WORKAROUND_FLAGS_MMR_ANOM_311 is defined at compile, assemble and link stages.

    05-00-0312 -

    The anomaly is seen when SSYNC, CSYNC instructions or loads of registers LCx, LTx, and LBx

    are interrupted. The anomaly impacts all Blackfin parts and revisions except ADSP-BF535.

    The compiler workarounds are as follows:

    1. When the workaround is enabled the compiler builtin functions __builtin_ssync() and

    __builtin_csync() have been modified to ensure that interrupts are disabled before the

    sync/csync instruction and enabled after.

    2. New ssync and csync builtins have been provided that do not disable interrupts. These can

    be used in place of the existing builtins for code that has been manually verified as safe against the

    anomaly. These new builtins are called __builtin_ssync_int() and

    __builtin_csync_int().

    3. When the workaround is enabled the compiler will ensure that any loads of the LBx, LTx and

    LCx registers are executed with interrupts disabled. It does this by inserting a CLI instruction

    before such loads and an STI instruction after. The workaround is not required for hardware loop

    LSETUP instructions.

    4. The compiler will arrange to save and restore the loop registers (LBx, LTx and LCx) while

    interrupts are disabled for C/C++ nested interrupt handlers defined using the

    sys/exception.h EX_REENTRANT_HANDLER macro.

    The assembler has been modified to include a warning which when enabled will identify potential

    causes of the anomaly. This warning can be enabled using the -anomaly-warn 05-00-0312

    switch. The warning can be suppressed in assembly code ranges which have manually been

    determined to be safe against the anomaly using the assembler’s .MESSAGE directive. The

    warning id to use when this is required is 5515.

    To enable this compiler workaround manually the -workaround sync-loop-anom-312

    switch can be used. When the workaround is enabled the macro

  • __WORKAROUND_SYNC_LOOP_ANOM_312 is defined at compile, assemble and link stages.

    For more information on these anomaly please see the appropriate errata sheets which can be

    downloaded from http://www.analog.com/processors/blackfin/support/ICanomalies.html.

    Changes to Existing Behaviors, Projects, and Source Code

    When addressing problems, we attempt to make any changes backward compatible with existing projects.

    However, depending on the nature of a problem, compatibility issues are sometimes unavoidable. This

    section highlights any changes in the Update that may require the modification of “working” projects or

    otherwise influence existing behavior.

    In this release, no changes have been identified.

  • VisualDSP++ 4.0 (Updated June 2006) Release Note

    The following release note concerns the June 2006 Update to the VisualDSP++ 4.0 release. This release is

    inclusive of previous Updates. The contents of future Updates will be inclusive of all previous Updates.

    The release notes for past Updates are appended to the end of this release note.

    Identifying Which Update Is Currently Installed on Your System

    The Update level is identified in three places:

    1. The Add/Remove Programs Control Panel entry for VisualDSP++ 4.0. 2. The VisualDSP++ GUI’s About box, located at “Help” > “About VisualDSP++”. 3. In the file …\System\VisualDSP.ini, in the ProductName key.

    Installing an Update

    The procedure for installing an Update to VisualDSP++ is described below. Note that it is different from

    previous releases of VisualDSP++. Note that with VisualDSP++’s support for installing multiple instances

    of itself, it is possible to “trial” an Update in a new directory before switching over your “golden” tools

    installation to the Update.

    1. Use the Start Menu to navigate to VisualDSP++’s “Maintain this Installation” item. 2. Select “Go to the Analog Devices website” and click “Next”. This will launch your web browser

    and navigate it to the proper URL to download Updates from.

    3. Download the VisualDSP++ Update file (.VDU) of interest to your hard disk. Note that these files have a .VDU file extension and cannot be executed directly.

    4. Navigate to “Maintain this Installation” again. If you have multiple installations VisualDSP++ on your computer, be doubly sure you are navigating to the installation you wish to Update.

    5. Select “Apply a downloaded Update” and click “Next”. Click the “…” browser button and navigate to the .VDU file that you downloaded in step 3. Click “OK”, then “Next”.

    6. Follow the on-screen prompts to complete the installation of the Update.

    Significant Additions

    The primary purpose of VisualDSP++ Updates is to address problems and stabilize the release. Significant

    new functionality is not expected to be introduced in an Update. However, incremental support (i.e.,

    emulation, example programs, header files, default LDF, errata accommodations, EZ-KIT Lite software,

    etc.) for new semiconductor products will be added as these products become available and gain support

    within the VisualDSP++ tools.

    In this release:

    1. The Blackfin compiler, runtime, VDK, and SSL libraries include new workarounds for hardware anomalies 05-00-0189 and 05-00-0283. The compiler will automatically enable these workaround

    when building for parts and silicon revisions that require them. Alternatively they can be enabled

    using the -workaround switch.

    05-00-0283 –

    One part of the workaround is to include a code sequence in all event handlers. The

    sequence makes a mispredicted jump over a dummy MMR read. This must be done

    before any SSYNCs in the handler. This sequence is generated by the compiler for

    C/C++ based event handlers that use #pragma interrupt or sys/exception.h

    defined macros such as EX_INTERRUPT_HANDLER. The two handlers affected in the

  • runtime libraries are _cplb_hdr and the interrupt dispatcher _despint which have

    been modified to include the workaround.

    The second part of the workaround is to avoid system MMR writes in the two

    instructions after a not-predicted conditional jump. The compiler will insert nop

    instructions to avoid this when it identifies the problem sequence.

    These workarounds can be enabled using the -workaround stalled-mmr-

    write-283 switch. When the workaround is enabled the macro

    __WORKAROUND_STALLED_MMR_WRITE_283 is defined at compile, assemble and

    link stages

    05-00-0198 –

    A workaround for this anomaly was already available in the compiler. However the

    conditions which cause anomaly have changed to include a new code sequence. The

    compiler has been modified to identify this new sequence. The anomaly may occur

    where MMR reads or writes occur immediately after a stalled memory read. The

    compiler will avoid such code being generated for C/C++ compiled code. The runtime

    libraries are safe against this anomaly.

    This workaround can be enabled using the -workaround sdram-mmr-read switch.

    When the workaround is enabled the macro __WORKAROUND_SDRAM_MMR_READ is

    defined at compile, assemble and link stages.

    2. There has been a change of compiler behavior relating to MMR (Memory Mapped Register) accesses and volatile variables. New switch -no-assume-vols-are-mmrs has been added.

    There are various MMR related hardware errata that the compiler supports workarounds for; 05-

    00-0122, 05-00-0157, 05-00-0198, 05-00-0283. Previously the compiler would only implement

    these workaround for accesses that it could absolutely determine were to MMRs. This in practice

    meant that only literal MMR addresses accesses could be determined accurately. More complex

    accesses, for example using addresses stored in variables, might not be identifiable as MMR

    accesses and could therefore result in the various anomalies being hit.

    The compiler has been modified to try and avoid missing these more complex MMR accesses. If

    an access to a variable is defined qualified as volatile, and the compiler cannot determine that

    the access is not to an MMR, the compiler now assumes it to MMR accesses unless the new

    switch -no-assume-vols-are-mmrs is used.

    Changes to Existing Behaviors, Projects, and Source Code

    When addressing problems, we attempt to make any changes backward compatible with existing projects.

    However, depending on the nature of a problem, compatibility issues are sometimes unavoidable. This

    section highlights any changes in the Update that may require the modification of “working” projects or

    otherwise influence existing behavior.

    In this release, no changes have been identified.

  • VisualDSP++ 4.0 (Updated April 2006) Release Note

    The following release note concerns the April 2006 Update to the VisualDSP++ 4.0 release. This release is

    inclusive of previous Updates. The contents of future Updates will be inclusive of all previous Updates.

    The release notes for past Updates are appended to the end of this release note.

    Identifying Which Update Is Currently Installed on Your System

    The Update level is identified in three places:

    1. The Add/Remove Programs Control Panel entry for VisualDSP++ 4.0. 2. The VisualDSP++ GUI’s About box, located at “Help” > “About VisualDSP++”. 3. In the file …\System\VisualDSP.ini, in the ProductName key.

    Installing an Update

    The procedure for installing an Update to VisualDSP++ is described below. Note that it is different from

    previous releases of VisualDSP++. Note that with VisualDSP++’s support for installing multiple instances

    of itself, it is possible to “trial” an Update in a new directory before switching over your “golden” tools

    installation to the Update.

    1. Use the Start Menu to navigate to VisualDSP++’s “Maintain this Installation” item. 2. Select “Go to the Analog Devices website” and click “Next”. This will launch your web browser

    and navigate it to the proper URL to download Updates from.

    3. Download the VisualDSP++ Update file (.VDU) of interest to your hard disk. Note that these files have a .VDU file extension and cannot be executed directly.

    4. Navigate to “Maintain this Installation” again. If you have multiple installations VisualDSP++ on your computer, be doubly sure you are navigating to the installation you wish to Update.

    5. Select “Apply a downloaded Update” and click “Next”. Click the “…” browser button and navigate to the .VDU file that you downloaded in step 3. Click “OK”, then “Next”.

    6. Follow the on-screen prompts to complete the installation of the Update.

    Significant Additions

    The primary purpose of VisualDSP++ Updates is to address problems and stabilize the release. Significant

    new functionality is not expected to be introduced in an Update. However, incremental support (i.e.,

    emulation, example programs, header files, default LDF, errata accommodations, EZ-KIT Lite software,

    etc.) for new semiconductor products will be added as these products become available and gain support

    within the VisualDSP++ tools.

    In this release:

    1. Support for new Blackfin silicon revisions has been added:

    • ADSP-BF531/2/3 revision 0.4 • ADSP-BF534/6/7 revision 0.3 • ADSP-BF538/9 revision 0.3 • ADSP-BF561 revision 0.5

  • 2. The Blackfin compiler now includes a workaround for ADSP-BF561, ADSP-BF531, ADSP-BF532, ADSP-BF533, ADSP-BF534, ADSP-BF536, ADSP-BF537, ADSPBF538, ADSP-BF539

    hardware anomaly 05-00-0202 "Possible infinite stall with specific dual dag situation". The

    compiler will automatically enable the workaround for the appropriate silicon revisions, or it can

    be manually enabled with the use of the compiler switch -workaround

    infinite_stall_202. With the workaround enabled, the compiler will avoid producing

    code that contains the dual DAG statements that can produce the anomaly.

    The macro __WORKAROUND_INFINITE_STALL_202 will be defined at compile, assemble

    and link build phases when the workaround is enabled.

    3. Anomaly support has been added for errata 05-00-0229 - "SPI Slave Boot Mode Modifies Registers". When the SPI slave boot completes, the final DMA IRQ is cleared but the

    DMA5_CONFIG and SPI_CTL registers are not reset to their default states. We work around this

    by resetting the registers to their default values at the beginning of the CRT Startup Code. The

    only issue would be the unlikely case of booting from flash and also beginning a DMA during

    initialization. In this case, users would need to modify the CRT. This problem impacts all

    revisions of ADSP-BF531/2/3/8/9.

    4. Anomaly support for some ADSP-BF538/9 revisions has been changed. The following changes have been made to the Anomaly workarounds for the ADSP-BF538 and ADSP-BF539 processors:

    05-00-0209 only for silicon revisions 0.0

    05-00-0227 only for silicon revisions 0.0, 0.1

    05-00-0244 only for silicon revisions 0.0, 0.1

    5. The compiler driver switch -glite has been added. The -glite switch can be used on its own, or in conjunction with any of the -g, -Og, -debug-types compiler switches. When this

    switch is enabled it instructs the compiler to remove any unnecessary debug information for the

    code that is compiled. When used on its own, the switch also enables the -g option. NOTE: This

    switch can be used to reduce the size of object and executable files, but will have no effect on the

    size of the code loaded onto the target.

    Changes to Existing Behaviors, Projects, and Source Code

    When addressing problems, we attempt to make any changes backward compatible with existing projects.

    However, depending on the nature of a problem, compatibility issues are sometimes unavoidable. This

    section highlights any changes in the Update that may require the modification of “working” projects or

    otherwise influence existing behavior.

    In this release, no changes have been identified.

  • Problems Addressed

    The following table is a list of the problems addressed in this Update. Details on any particular problem

    can be found on the Tools Anomaly web page. Note that after the Issues headings in the top half of the

    Tools Anomaly web page, problems are detailed in numeric order. The URL is:

    http://www.analog.com/processors/technicalSupport/toolsAnomalies.html

    Processor

    Family

    Problem

    Number

    Tool Description

    All 25026 Assembler Cannot set breakpoints in assembly source when "-save-temps" All 25478 VDK VDK logs some PendSemaphore events against the wrong

    thread

    All 25615 Linker Expert Linker - Unable to elfdump file All 25616 Run Time

    Libraries

    A zero precision with %f may output a decimal point

    All 25617 Run Time Libraries

    %f may print too few leading zeros if the '0' flag is used

    All 26774 Compiler Compiler asserts at sr.c:268 Blackfin 21035 Simulator BF561: Invalid cache performance category received

    Blackfin 24258 Emulator HPUSB/USB-ICE driver may blue screen on PCs with hyper-

    threading

    Blackfin 25279 Emulator HPUSB is very unstable at higher JTAG frequencies

    Blackfin 25598 Run Time

    Libraries

    Blackfin Radix2 FFT functions in libdsp can trigger

    EXCAUSE 23

    Blackfin 25680 Compiler inline asm hard-register inputs loaded in wrong order with -O

    Blackfin 25689 Run Time

    Libraries

    Libdsp functions mean_fr16 and var_fr16 inaccurate for large

    N

    Blackfin 25779 Loader Max Zero-Fill Block Size Broken on Sept Update

    Blackfin 25912 IDDE VDSP crashes when sending email from the help menu

    Blackfin 25922 Run Time

    Libraries

    cplbtab538.s source file missing from install

    Blackfin 25954 Run Time

    Libraries

    Startup code to workaround anomaly 05-00-0229

    Blackfin 26010 TCPIP

    Stack

    lan91c111.h wrongly defines two macros

    Blackfin 26023 Assembler Dummy Data section can cause a crash

    Blackfin 26265 Compiler “No Register Left To Claim" with sysreg_write of FP/SP

    Blackfin 26324 Run Time

    Libraries

    zero_cross_fr16 returns wrong result

    Blackfin 26364 Compiler unsigned long long divide by 0x8000000000000000 wrong

    Blackfin 26377 Compiler signed long long divide by 0x8000000000000000 wrong

    Blackfin 26396 Compiler Linker elimination failures with variables in user named section

    Blackfin 26405 Compiler macdefs.c:3546 assert when load/store bytes from packed struct

    Blackfin 26432 Compiler compare of floats can result in incorrect code -O

    Blackfin 26514 XML

    Files

    DMA Traffic Control Registers Missing in Single Core EDN

    procs

    Blackfin 26552 Run Time

    Libraries

    ETSI shr_r library function does not sign extend result

    Blackfin 26672 Run Time

    Libraries

    float addition/subtract underflow results in large numbers

    Blackfin 26709 System

    Services

    ADI_PWR_CMD_SET_CLKIN still in MHz

    Blackfin 26769 Assembler Having LF in data causes corruption.

  • Blackfin 26850 Compiler __builtin_conj_fr32 produces incorrect results

    Blackfin 27051 Run Time

    Libraries

    floating-point addition overflow returns NaN instead of +=Inf

    Blackfin 27274 Emulator Hardware BP skip count doesn't stitck, other rough edges

    Blackfin 27303 Run Time

    Libraries

    64-bit floating point division can incorrectly return 0.0

    Blackfin 27513 Run Time

    Libraries

    LIBDSP 2D FFTs fail for fft sizes > 64

    Blackfin 27562 TCPIP

    Stack

    (4.0) CaesarCipher GettingStartedGuide doesn't work from

    scratch

    SHARC 9704 Emulator timer stays running when dsp halts

    SHARC 23996 Simulator Interrupts Register Window shows default assignments for

    IRPTL

    SHARC 24248 Emulator status stack getting corrupted on 21161 EZ-KIT

    SHARC 26349 Simulator IDDE will not 'step over' (F10) when using an emulator

    SHARC 26433 Simulator Can't view local variables in a debug or expressions windows

    SHARC 26718 VDK VDK C/C++ ISRs are not safe to use on SHARC processors

    SHARC 26778 VDK P11,P14 and P16 interrupts can't be assigned for some

    processors

    SHARC 26797 VDK A number of LIRPTL bits cannot be set/cleared using the VDK

    APIs

    SHARC 27222 XML

    Files

    Cannot view a number of bits in the Interrupt Registers window

    SHARC 27486 Loader 369_spi kernel incorrectly initializes ZERO_L48

    SHARC 27564 Simulator Error dialog appears when opening PC stack window

    TigerSHARC 25878 Compiler empty C ISR, optimization enabled, corrupts stack-pointer

    TigerSHARC 26397 Simulator IDCODE register can not be modified in IDDE

  • VisualDSP++ 4.0 (Updated December 2005) Release Note

    The following release note concerns the December 2005 Update to the VisualDSP++ 4.0 release. This

    release is inclusive of previous Updates. The contents of future Updates will be inclusive of all previous

    Updates. The release notes for past Updates are appended to the end of this release note.

    Identifying Which Update Is Currently Installed on Your System

    The Update level is identified in three places:

    1. The Add/Remove Programs Control Panel entry for VisualDSP++ 4.0. 2. The VisualDSP++ GUI’s About box, located at “Help” > “About VisualDSP++”. 3. In the file …\System\VisualDSP.ini, in the ProductName key.

    Installing an Update

    The procedure for installing an Update to VisualDSP++ is described below. Note that it is different from

    previous releases of VisualDSP++. Note that with VisualDSP++’s support for installing multiple instances

    of itself, it is possible to “trial” an Update in a new directory before switching over your “golden” tools

    installation to the Update.

    1. Use the Start Menu to navigate to VisualDSP++’s “Maintain this Installation” item. 2. Select “Go to the Analog Devices website” and click “Next”. This will launch your web browser

    and navigate it to the proper URL to download Updates from.

    3. Download the VisualDSP++ Update file (.VDU) of interest to your hard disk. Note that these files have a .VDU file extension and cannot be executed directly.

    4. Navigate to “Maintain this Installation” again. If you have multiple installations VisualDSP++ on your computer, be doubly sure you are navigating to the installation you wish to Update.

    5. Select “Apply a downloaded Update” and click “Next”. Click the “…” browser button and navigate to the .VDU file that you downloaded in step 3. Click “OK”, then “Next”.

    6. Follow the on-screen prompts to complete the installation of the Update.

    Significant Additions

    The primary purpose of VisualDSP++ Updates is to address problems and stabilize the release. Significant

    new functionality is not expected to be introduced in an Update. However, incremental support (i.e.,

    emulation, example programs, header files, default LDF, errata accommodations, EZ-KIT Lite software,

    etc.) for new semiconductor products will be added as these products become available and gain support

    within the VisualDSP++ tools.

    In this release:

    1. Software support for the FPGA EZ-Extender is now available. Refer to the README at …\Blackfin\EZ-Kits\FPGA EZ-Extender for more information.

    2. Support has been added for a handful of new processors: ADSP-21375, ADSP-21362, and AD6900. Projects for these processors can be created by selecting these part numbers in the

    project processor selector.

    3. Support for the following new revisions of processors has been added:

    • ADSP-BF538|9 0.2 • ADSP-BF561 0.4 • ADSP-TS201|2|3 2.0

  • 4. The LwIP Ethernet stack has been ported to the ADSP-BF561 EZ-KIT Lite (when paired with a USB-LAN EZ-Extender). Examples can be found in the

    …\Blackfin\lwip\src\examples subdirectory.

    5. The following workarounds have been determined to be unnecessary for the following parts and disabled:

    Workaround for anomaly 05-00-0189 has been disabled for ADSP-BF531, ADSP-BF532,

    ADSP-BF533, ADSP-BF561, silicon revision 0.4 and ADSP-BF534, ADSP-BF536, ADSP-

    BF537, ADSP-BF538, ADSP-BF539 silicon revision 0.1.

    Workaround for anomaly 05-00-0157 has been disabled for ADSP-BF534, ADSP-BF536,

    ADSP-BF537, ADSP-BF538, ADSP-BF539, all silicon revisions.

    6. The VisualDSP++ Blackfin compiler now includes a workaround for ADSP-BF561, ADSP-BF531, ADSP-BF532, ADSP-BF533, ADSP-BF534, ADSP-BF536, ADSP-BF537, ADSP-

    BF538, ADSP-BF539 hardware anomaly 05-00-0202 "Possible infinite stall with specific dual dag

    situation". The compiler will automatically enable the workaround for the appropriate silicon

    revisions, or it can be manually enabled with the use of the compiler switch -workaround

    infinite_stall_202. With the workaround enabled, the compiler will avoid producing

    code that contains the dual dag statements that can produce the anomaly.

    The macro __WORKAROUND_INFINITE_STALL_202 will be defined at compile, assemble

    and link build phases when the workaround is enabled.

    7. The VisualDSP++ Blackfin compiler now includes a workaround for ADSP-BF561, ADSP-BF531, ADSP-BF532, ADSP-BF533, ADSP-BF534, ADSP-BF536, ADSP-BF537, ADSP-

    BF538, ADSP-BF539 hardware anomaly 05-00-0245 "Spurious Hardware Error from an access in

    the shadow of a conditional branch". The compiler will automatically enable the workaround for

    the appropriate silicon revisions, or it can be manually enabled with the use of the compiler switch

    -workaround speculative-loads. With the workaround enabled, the compiler attempts

    to avoid the speculative loads to reserved memory on not-taken control paths. It performs this by

    ensuring that any speculative loads are distanced from the not-taken jump point by re-arranging

    code or inserting NOP instructions at the target. The runtime libraries have been reviewed, and

    adapted to avoid the anomaly.

    The macro __WORKAROUND_SPECULATIVE_LOADS will be defined at compile, assemble and

    link build phases when the workaround is enabled.

    8. The VisualDSP++ Blackfin compiler now includes a workaround for ADSP-BF566, ADSP-BF561, ADSP-BF531, ADSP-BF532, ADSP-BF533, ADSP-BF534, ADSP-BF536, ADSP-

    BF537, ADSP-BF538, ADSP-BF539 hardware anomaly 05-00-0257 "An interrupt or exception

    during short Hardware loops may cause the instruction fetch unit to malfunction". The compiler

    will automatically enable the workaround for the appropriate silicon revisions, or it can be

    manually enabled with the use of the compiler switch -workaround short-loop-

    exceptions-257. Hardware loops less than 4 instructions in length may operate incorrectly if

    an interrupt or exception is taken at the end of the loop. The workaround implemented in the

    compiler is to include a save and restore of the LC0 and LC1 registers in interrupt and exception

    handlers. Such functions would be declared using one of the compiler interrupt handler pragmas

    or the macros defined in include file sys/exception.h. The compiler would only normally

    save and restore LC0 and LC1 if they were required to be saved and restored because the handler

    used them and this workaround means that they will always be restored whether used or not. The

    VDK’s interrupt handlers are no longer sensitive to this problem.

    The macro __WORKAROUND_SHORT_LOOP_EXCEPTIONS_257 will be defined at compile,

  • assemble and link build phases when the workaround is enabled.

    9. The Blackfin runtime libraries now includes a workaround for ADSP-BF566, ADSP-BF561, ADSP-BF531, ADSP-BF532, ADSP-BF533, ADSP-BF534, ADSP-BF536, ADSP-BF537, ADSP-

    BF538, ADSP-BF539 hardware anomaly 05-00-0258 "Instruction Cache is corrupted when bit 9

    and 12 of the ICPLB Data registers differ". The _cplb_mgr and _cplb_init routines (which

    are part of the default cache support in the runtime libraries) set bit 9 (reserved) to the same state

    as bit 12 (CPLB_L1_CHBL).

    10. The Blackfin runtime libraries now includes a workaround for ADSP-BF566, ADSP-BF561, ADSP-BF531, ADSP-BF532, ADSP-BF533, ADSP-BF534, ADSP-BF536, ADSP-BF537, ADSP-

    BF538, ADSP-BF539 hardware anomaly 05-00-0259 "Non-deterministic ICPLB descriptors

    delivered to hardware". In the runtime library code where disabling ICPLBs by an MMR write,

    we ensure that these are immediately followed by a CSYNC, and locate both the write and

    CSYNC in the same aligned 64-bit word to avoid the anomaly.

    11. The Blackfin runtime libraries now includes a workaround for ADSP-BF566, ADSP-BF561, ADSP-BF531, ADSP-BF532, ADSP-BF533, ADSP-BF534, ADSP-BF536, ADSP-BF537, ADSP-

    BF538, ADSP-BF539 hardware anomaly 05-00-0261 "DCPLB_FAULT_ADDR MMR register

    may be corrupted". DCPLB_FAULT_ADDR MMR can be wrong in some circumstances. The

    workaround is to ignore DCPLB miss exceptions the first time they are raised from a particular

    PC. The fault address is guaranteed to be correct the second time.

    12. The VisualDSP++ Blackfin compiler now includes a workaround for ADSP-BF566, ADSP-BF561, ADSP-BF531, ADSP-BF532, ADSP-BF533, ADSP-BF534, ADSP-BF536, ADSP-

    BF537, ADSP-BF538, ADSP-BF539 hardware anomaly 05-00-0262 "Stores to data cache may be

    lost". The compiler will automatically enable the workaround for the appropriate silicon revisions,

    or it can be manually enabled with the use of the compiler switch -workaround lost-

    stores-to-data-cache-262. With the workaround enabled, the compiler will ensure that

    dual DAG instructions which may trigger the anomaly are not issued. The compiler will attempt to

    use any bank information available to determine cases where the workaround is not required.

    The macro __WORKAROUND_LOST_STORES_TO_DATA_CACHE_262 will be defined at

    compile, assemble and link build phases when the workaround is enabled.

    13. The VisualDSP++ Blackfin compiler now includes a workaround for ADSP-BF566, ADSP-BF561, ADSP-BF531, ADSP-BF532, ADSP-BF533, ADSP-BF534, ADSP-BF536, ADSP-

    BF537, ADSP-BF538, ADSP-BF539 hardware anomaly 05-00-0264 "A Sync instruction

    (CSYNC, SSYNC) or an IDLE instruction will cause an infinite stall in the second to last

    instruction in a hardware loop". The compiler will automatically enable the workaround for the

    appropriate silicon revisions, or it can be manually enabled with the use of the compiler switch

    -workaround pre-loop-end-sync-stall-264. With the workaround enabled, the

    compiler will ensure that generated code does not contain the CSYNC, SSYNC or IDLE instruction

    as the second last instruction of a hardware loop. The runtime libraries have been reviewed and

    adapted to avoid this anomaly.

    The macro __WORKAROUND_PRE_LOOP_END_SYNC_STALL_264 will be defined at compile,

    assemble and link build phases when the workaround is enabled.

  • Changes to Existing Behaviors, Projects, and Source Code

    When addressing problems, we attempt to make any changes backward compatible with existing projects.

    However, depending on the nature of a problem, compatibility issues are sometimes unavoidable. This

    section highlights any changes in the Update that may require the modification of “working” projects or

    otherwise influence existing behavior.

    In this release:

    1. Some of the problems addressed involve changes to the default LDFs. If your project has a custom LDF that is heavily based on one of the defaults, your LDF may continue suffer from

    problems that have been fixed in the default. Custom LDFs should be audited for correctness. In

    particular, SHARC VDK projects have two required changes. Relevant TAR numbers are 25490

    and 25494.

    2. On 2116x processors, a recently-discovered hardware anomaly means that it may be unsafe to write to a DAG register and then use it to perform a memory access in the next instruction. For

    example, the following code sequence is unsafe:

    i4 = dm(i7,m6);

    dm(i4,1) = r4;

    The compiler will automatically avoid generating such code sequences and, where appropriate, the

    run-time libraries have been modified to avoid this. Due to the workarounds, however, there may

    be a small decrease in code performance and/or a small increase in code size.

    The assembler will also report instances of this errata.

    The anomaly is documented in the IC Anomalies web page, as follows:

    21160M: Anomaly 64

    21160N: Anomaly 23

    21161N: Anomaly 63

    3. To improve the performance of the Blackfin floating point support routines, the compiler and support routines have been enhanced to make use of non-default volatile register set for the

    support routines. This has resulted in a performance improvement when using the fast

    performance floating point support libraries (the default floating point support, also enabled with

    the -fast-fp switch). To continue to support cross-compatible code, allowing users to switch

    at link time between the Fast Floating Point and IEEE-Conformant libraries, the IEEE-Conformant

    libraries also employ the same volatile register sets as their counterpart Fast Floating Point

    routines. In some cases users may experience slight performance degradation when using the

    IEEE-Conformant floating point support.

  • Problems Addressed

    The following table is a list of the problems addressed in this Update. Details on any particular problem

    can be found on the Tools Anomaly web page. Note that after the Issues headings in the top half of the

    Tools Anomaly web page, problems are detailed in numeric order. The URL is:

    http://www.analog.com/processors/technicalSupport/toolsAnomalies.html

    Processor

    Family

    Problem

    Number

    Tool Description

    All 24792 Run Time Libraries

    libio(-fast-io) fwrite writes incorrectly when heap insufficient

    All 24849 Blackfin Compiler","section elimination broken for files with user

    defined sections

    All 25020 Compiler else evaluated before if causing problems All 25265 Compiler an asm that clobbers an lreg doesn't zero it All 25388 Compiler array index using mod (%) can be generated incorrectly with -

    O

    All 25454 IDDE All connections fail after built-in 90-day Test Drive expires All 25817 VDK Event not recalculated when expected Blackfin 20940 Run Time

    Libraries

    fp libraries: comparison with NaN may be incorrect

    Blackfin 24596 IDDE conditional breakpoints on values of pointers don't work

    Blackfin 24730 IDDE file specific options not honoured

    Blackfin 24955 Compiler rare problem with exception handling

    Blackfin 24990 Simulator BF535: ASTAT register assignment not limited to used bits

    Blackfin 25028 CRTGen Mixed line endings can cause issues with generated startup

    code

    Blackfin 25038 Compiler New gnu asm error faults unnecessarily

    Blackfin 25045 Compiler misaligned member arrays do not work

    Blackfin 25058 Simulator compiled sim Memory stream leads to exe crashing

    Blackfin 25256 Run Time

    Libraries

    instruction cplb replacement looping over CPLB boundaries

    Blackfin 25275 IDDE September update breaks old sessions

    Blackfin 25281 VDK Need to work around errata 05-00-0257

    Blackfin 25353 Simulator BF535: System MMR CHIPID access returns incorrect value

    Blackfin 25357 Simulator BF535: ASTAT to be masked to prevent unused bits from

    being set

    Blackfin 25387 Run Time

    Libraries

    LibDSP vector and matrix functions write beyond end of array

    Blackfin 25400 Run Time

    Libraries

    BF538/9 TWI def file macros renamed

    Blackfin 25411 Simulator BF5xx: Fractional format not properly handled with DAT files

    Blackfin 25489 Simulator BF535: unexpected stalls between PushPopReg instruction and

    LDST

    Blackfin 25528 Run Time

    Libraries

    Default CRT clobbers IMASK set by Device Drivers in

    init_devtab

    Blackfin 25575 Simulator BF535: execution of LINK and UNLINK is not cycle accurate

    Blackfin 25602 Run Time

    Libraries

    adsp-BF561_ASM.ldf missing comma

    Blackfin 25775 CRTGen Generated startup code does not account for SSL MHz/Hz

    change

    Blackfin 25851 CRTGen Wrong voltage level set by generated CRT

    SHARC 24690 IDDE “Param is incorrect” msg box after load symbols and mixed

  • mode

    SHARC 24711 Simulator Sport transmit interrupt does not fire when DMA complete

    SHARC 24776 Assembler -swf_screening_fix can corrupt DB instructions

    SHARC 24976 Simulator Instruction timeout for sequences of IOP read/write

    SHARC 24979 Run Time

    Libraries

    conflict between a register bit and a conditional mnemonic.

    SHARC 25276 Assembler Internal error related to Si anomaly on code that used to build

    SHARC 25278 Debug Agent Unable to connect to a ADSP-21369 EZ-Kit using Ice Test

    SHARC 25332 Simulator Some interrupts nest when nesting disabled

    SHARC 25406 Loader Loader won't stop generating a stream with a section over 64k

    SHARC 25490 VDK New section to allow placing of VDK data in external memory

    SHARC 25494 VDK seg_int_code not used properly

    SHARC 25607 Assembler Symbolic relocation expressions incorrect in .STRUCT

    directive

    SHARC 25646 VDK Possible memory corruption when using VDK C/C++ ISR's on

    SHARC

    SHARC 25707 Simulator Interrupted single-instruction loop ends an iteration early

    SHARC 25718 VDK LPISUMI should be ignored when we check for interrupt level

    TigerSHARC 25008 Compiler Compiler illegally hoists load above conditional

    TigerSHARC 25335 Emulator Double halt causes improper PC value (PC-1) and causes

    incorrect

    TigerSHARC 25465 VDK Thread RunTotalTime calculated incorrectly

    TigerSHARC 25473 Emulator EZ-KIT connection fails after built-in 90-day Test Drive expire

    TigerSHARC 25513 VDK Thread RunStartTime (in cycles) is not correct

    TigerSHARC 25532 Compiler INTERNAL COMPILER ERROR: Unsupported CMUL

    opcode

    TigerSHARC 25536 Simulator Simulator does not behave as hardware when jumping to ISR

  • VisualDSP++ 4.0 (Updated September 2005) Release Note

    The following release note concerns the September 2005 Update to the VisualDSP++ 4.0 release. This

    release is inclusive of previous Updates. The contents of future Updates will be inclusive of all previous

    Updates. The release notes for past Updates are appended to the end of this release note.

    Identifying Which Update Is Currently Installed on Your System

    The Update level is identified in three places:

    1. The Add/Remove Programs Control Panel entry for VisualDSP++ 4.0. 2. The VisualDSP++ GUI’s About box, located at “Help” > “About VisualDSP++”. 3. In the file …\System\VisualDSP.ini, in the ProductName key.

    Significant Additions

    The primary purpose of VisualDSP++ Updates is to address problems and stabilize the release. Significant

    new functionality is not expected to be introduced in an Update. However, incremental support (i.e.,

    emulation, example programs, header files, default LDF, errata accommodations, EZ-KIT Lite software,

    etc.) for new semiconductor products will be added as these products become available and gain support

    within the VisualDSP++ tools.

    In this release:

    1. Software support and examples for the ADSP-21369 EZ-KIT Lite has been added. The flash programmer driver can be found at …\213xx\Flash Programmer Drivers\ADSP-

    21369 EZ-kit Lite. Example applications can be found at …\213xx\EZ-KITs\ADSP-

    21369\Examples. This product’s manual has been added to the on-line help system; a PDF

    version is available on ADI’s web site.

    2. Software examples for the SHARC USB EZ-Extender have been added and can be found at …\213xx\EZ-KITs\USB EZ-EXTENDER. This product’s manual has been added to the on-

    line help system; a PDF version is available on ADI’s web site.

    3. The scope and functionality of the System Services Library (SSL) has been significantly updated in this release:

    Support for the dual-core ADSP-BF561 processor has been included. The SSL now supports the

    following Blackfin processors:

    a. ADSP-BF531, ADSP-BF532 and ADSP-BF533 b. ADSP-BF534, ADSP-BF536 and ADSP-BF537 c. ADSP-BF561

    In addition to the original services, three additional services have been added:

    d. Programmable Flag Control – allows control of general purpose I/O pins e. Timer Service – controls general purpose, core and watchdog timers f. Port Control – controls pin muxing for peripheral and flag pins (ADSP-BF534, ADSP-

    BF536 and ADSP-BF537 only)

  • The device driver portfolio has also been expanded. Device drivers are now provided for the

    following on-chip peripherals:

    g. PPI (ITU-656 and general purpose mode) h. SPI (interrupt driven and DMA driven versions) i. UART (with autobaud detection) j. SPORT (including multichannel) k. TWI (master and slave, ADSP-BF534, ADSP-BF536 and ADSP-BF537 only)

    And these off-chip peripherals:

    l. AD1871 – Stereo audio, 24 bit, 96 KHz Multi-bit Sigma Delta ADC m. AD7266 – Differential Input, Dual 2 MSPS, 12 bit 3 Channel SAR ADC n. AD7476A – 12 bit, 1 MSPS low-power ADC o. AD7674 – 18 bit, 800 kSPS PulSAR® ADC p. AD1854 – Stereo, 96 KHz Multibit Sigma-Delta DAC q. AD1836 – Multichannel 96 KHz Codec r. AD1938 – 4 ADC, 8 DAC 192 KHz, 24 bit CODEC

    An addendum to the Device Drivers and System Services Manual for Blackfin Processors has

    been created. This document provides detailed descriptions, including the APIs, of the new

    services, a comprehensive list of all changes from the previous release, improvements, bug fixes,

    dual-core considerations etc. It is highly recommended to download and review the addendum.

    The addendum can be found at:

    ftp://ftp.analog.com/pub/tools/patches/Blackfin/VDSP++4.0/DeviceDriversAndSystemSe

    rvicesAddendum_Sep2005.pdf

    4. The USB device driver has been ported to the ADSP-BF561. Loop-back examples for the ADSP-BF533, ADSP-BF537, and ADSP-BF561 are available at …\Blackfin\EZ-KITs\USB-LAN

    EZ-EXTENDER\usb\examples\loopback.

    5. When connected to an EZ-KIT Lite via the debug agent USB connection, a new menu item, “Settings”->”Bootload” is now available to issue a hard reset to the board without the need

    to exit VisualDSP++.

    6. The VisualDSP++ license manager has been improved to address a performance bottleneck. Users with multiple Flex-licensed products on their system may notice a performance increase

    when launching VisualDSP++ and building projects.

    7. The Blackfin run-time libraries now support the C99 functions snprintf and vsnprintf. Their prototypes are:

    #include

    int snprintf (char *str, size_t n, const char *format, . . .);

    int vsnprintf (char *str, size_t n, const char *format, va_list args);

    8. The Blackfin compiler now includes a workaround for ADSP-BF561 hardware anomaly 05-00-0248 "TestSet operation causes stall of the other core". The avoidance is performed by the

    compiler automatically issuing a write to an L2 defined variable immediately following a

    testset instruction. This is done as part of the code generated for a

    __builtin_testset() call. The compiler will automatically enable the workaround for the

    appropriate silicon revisions, or you can enable the workaround manually by specifying the

    compiler flag -workaround l2-testset-stall.

    The macro __WORKAROUND_L1_TESTSET_STALL will be defined at compile, assemble and

  • link build phases when the workaround is enabled.

    9. The default LDFs (non-VDK and VDK) include a workaround for hardware anomaly 05-00-0189 "Speculative (and fetches made at the boundary of reserved memory space) for Instruction or Data

    Fetches may cause false Protection Exceptions". The workaround will be automatically enabled

    for the appropriate silicon revisions, or the workaround can be enabled manually by defining

    macro __WORKAROUND_AVOID_LDF_BLOCK_BOUNDARIES when linking.

    10. The instrumented profiling enabled using the -p[1|2] compiler switch has been overhauled for this Update to resolve a number of problems. Part of the changes to make the support more

    flexible is the internal use of dynamically instead of statically allocated buffers. This might

    require LDFs to be reconfigured for a larger heap in some cases. The cycle output from

    instrumented profiles is now a 64-bit integer.

    11. The C/C++ compilers have been modified to report an error for the case where an inline asm statement attempts to use the same register for an input and output. For example:

    int f(int a, int b) {

    asm("%0 += %1\n" : "+d" (a) : "0" (b) : );

    return a;

    }

    The error issued is:

    cc1669: Fatal error: input operand matched to input-output

    operand in gnu asm

    12. The C/C++ compilers have been modified to detect cases of unreasonable register uses in asm statements. An example would be an attempt to allocate more inputs or outputs to a particular

    register class than there are registers of that class. The error issued when this is detected is:

    cc1668: fatal error: gnu asm requires too many Dreg regs

    13. Certain anomalies on the ADSP-2136x processors are now avoided by the compiler and within the run-time libraries. Their titles are (the specific errata number varies from processor to

    processor):

    a. Some Core Stalls not executed properly b. Memory write operations can fail under certain conditions while DMA to internal

    memory is in progress

    The assembler will detect instances of these anomalies, including partial sequences that depend on

    code the assembler cannot see; instances of such partial sequences include:

    • The first instruction in a possible sequence is in the second DB slot of a branch instruction.

    • The last or last two instructions in a possible sequence follow either a CALL or a label.

    These anomalies are described in detail on the Analog Devices web site:

    www.analog.com/processors/technicalSupport/hardwareAnomalies.html

  • 14. In the TigerSHARC compiler, a new switch, -no-fp-minmax, has been added to disable a specific optimization in the compiler. Discussion: When optimizations are enabled, one of the

    optimizations that the compiler may choose is to replace a float compare followed by an

    assignment with the float MAX instruction. This can result in incorrect behavior if one of the input

    operands is a NaN as it sets the output to be 0xffffffff.

    In the following example, there is a test for a float having a greater value than another float:

    if ( f1 > f2)

    {

    f2 = f1;

    }

    When optimizations are enabled the compiler replaces the float compare and assignment with use

    of the float MAX instruction. This will work when both inputs are valid numbers, but if a NaN is

    used as input to the MAX instruction it will return a floating-point all ones result (0xffffffff) which

    in turn gets assigned to f2, where with a float compare we do not get this behavior.

    The new compiler switch will prevent this optimization from taking place.

    Changes to Existing Behaviors, Projects, and Source Code

    When addressing problems, we attempt to make any changes backward compatible with existing projects.

    However, depending on the nature of a problem, compatibility issues are sometimes unavoidable. This

    section highlights any changes in the Update that may require the modification of “working” projects or

    otherwise influence existing behavior.

    In this release:

    1. The ICE configuration can now be used to configure all EZ-KIT Lite products. Notably, this allows one to connect more than one of the same EZ-KIT Lite board into the same PC by

    assigning a unique “DeviceID” to each instantiated board.

    This requires a small change in the process for creating debug sessions for some EZ-KIT Lite

    products. When creating new sessions for the ADSP-BF533 and ADSP-BF535 EZ-KIT Lites,

    choose a debug target of “Blackfin Emulators/EZ-KIT Lite”. When creating new

    sessions for SHARC USB EZ-KIT Lites, choose a debug target of “SHARC Emulators/EZ-

    KIT Lites”.

    2. Within the System Services Library (SSL), a change to the Power Management API and Interrupt Manager API will need to be accommodated by applications. The Power Management service

    unit of frequency is now Hz, rather than MHz. Unless overridden with a new command, all values

    passed into the service and returned from the service are now in Hz. A bug fix to the Interrupt

    Manager required adding an additional parameter to the adi_int_CECUnhook() function.

    These changes are described in detail in the addendum described above.

    3. In the SHARC compiler with optimizations enabled, the compiler will now convert an arithmetic lshift-by-1 expression into an add instruction. For example, the following code sequence will

    generate an add instruction in the assembly file when optimization is enabled:

    x[i] = x[i]

  • 4. Some of the problems addressed involve changes to the default LDFs. If your project has a custom LDF that is heavily based on one of the defaults, your LDF may continue suffer from

    problems that have been fixed in the default. Custom LDFs should be audited for correctness.

    Relevant TAR numbers are 23698, 23699, 24206, and 23885.

  • Problems Addressed

    The following table is a list of the problems addressed in this Update. Details on any particular problem

    can be found on the Tools Anomaly web page. Note that after the Issues headings in the top half of the

    Tools Anomaly web page, problems are detailed in numeric order. The URL is:

    http://www.analog.com/processors/technicalSupport/toolsAnomalies.html

    Processor

    Family

    Problem

    Number

    Tool Description

    All 16549 Compiler Generate Preprocessed file produces confusing warning

    All 20407 Compiler Compiler should report error for asm input matched to in-out All 22017 Assembler Trailing / on final include path with .IMPORT fails

    compilation

    All 23850 Compiler NO_INIT sections not properly supported with -ipa All 23985 Compiler Compiler fails to support anonymous structs correctly All 23988 Compiler __attribute__ should support always_inline/never_inline All 24003 Run Time

    Libraries

    Printing a particular long double causes libio to loop

    All 24031 Run Time Libraries

    The strftime function may format integer values incorrectly

    All 24103 Compiler Compiler allocates asm output to clobbered reg All 24577 Run Time

    Libraries

    Printing %f with a precision may not generate all the digits

    Blackfin 11099 Simulator Viewing Trace unit's TBUF register drains TBUF

    Blackfin 17045 Run Time Libraries

    Profiling libraries don't fit into default BSZ sections

    Blackfin 20931 IDDE Problematic handling of string defines Blackfin 21723 Simulator BF535: missing stall with video op Blackfin 22230 Run Time

    Libraries

    BF535 Run-Time Library does not avoid shift anomaly

    Blackfin 23403 VDK BF535 VDK libraries have been built without workarounds Blackfin 23535 Run Time

    Libraries

    Problems with C++ sub-projects in BF561 5-proj setup

    Blackfin 23698 Run Time Libraries

    LDF files need to workaround anomaly 05-00-0189

    Blackfin 23699 VDK LDF files need to workaround anomaly 05-00-0189 Blackfin 23742 Assembler Dwarf info corrupted during PLIT generation Blackfin 23913 Emulator JTAG frequency increase display not persistent Blackfin 23945 Simulator Compiled sim invoked from the command line doesnt print

    output

    Blackfin 23979 Compiler Compiler driver doesn't pass -sp_fix or -sp_warn to assembler Blackfin 24034 Document-

    Help

    Incorrect tooltips

    Blackfin 24060 Simulator BF561: Memory streams 0xffd00000:ffd0000f don't work Blackfin 24126 Compiler -workaround all causes asm SSYNC/CSYNC warning in

    compiled .s

    Blackfin 24206 LDF 4k of L1 memory not mapped in default LDF Blackfin 24228 Run Time

    Libraries

    Multicore applications using I/O can hang on exit

    Blackfin 24254 Compiler compiler assertion (brilput.c:3792) with pragma pack/unsigned Blackfin 24284 Compiler ea5003 from compiled code using -O Blackfin 24292 VDK VDK_ISR_CLEAR_EVENTBIT_ does not use call.x Blackfin 24333 Emulator USB-ICE performance severly decreases when using hw

  • breakpoints

    Blackfin 24370 Compiler -decls-weak results in incorrect declarations in assembly Blackfin 24371 Compiler Large values in switch statement cases can cause link errors Blackfin 24372 Emulator EZ-KIT connection fails after built-in 90-day Test Drive

    expires

    Blackfin 24382 Compiler Compiler makes stack pointer misaligned (breaks interrupts) Blackfin 24431 Compiler Structure parameters handled incorrectly in leaf functions Blackfin 24471 Compiler compiler assertion in eval.c:1257 with -O and long long Blackfin 24500 Run Time

    Libraries

    Instrumented-code profiler ignores regs_clobbered

    Blackfin 24578 Run Time Libraries

    int to 64-bit float conversion wrong for minimum integer value

    Blackfin 24589 CRTGen cplbHandler fragment not emitted when using_vdk property is true

    Blackfin 24926 Compiler errata 05-00-0198 not avoided after UNLINK instruction SHARC 23786 Emulator large memory dump fetches wrong data

    SHARC 23915 Assembler 64-bit hex values with an odd number of hex digits are

    truncated

    SHARC 24268 Compiler no add, just a lshift

    SHARC 24587 Debug Agent BTC block writes fail through automation

    TigerSHARC 20723 Compiler __builtin_sysreg_read does not work-around erratum 03-00-

    0216

    TigerSHARC 21937 Disassembler broadcast reg move disassembled incorrectly TigerSHARC 22195 Compiler Optimiser replacing FCOMP with FMAX may cause problems TigerSHARC 23792 IDDE TS201 -fopen to a null file causes VDSP++4.0 to crash TigerSHARC 23885 Run Time

    Libraries

    Default ADSP-TS201 LDFs do not use all available code

    memory

    TigerSHARC 23907 Compiler Bad optimization on local pointer results in bad code

    TigerSHARC 24048 Run Time Libraries

    Invalid floating point operation exceptions in math.h

    TigerSHARC 24303 VDK VDK TS201 Interrupt masking is not sufficiently robust TigerSHARC 24576 Run Time

    Libraries

    The powf() library routine can incorrectly raise FP exceptions

  • VisualDSP++ 4.0 (Updated June 2005) Release Note

    The following release note concerns the June 2005 Update to the VisualDSP++ 4.0 release. This release is

    inclusive of previous Updates. The contents of future Updates will be inclusive of all previous Updates.

    The release notes for past Updates are appended to the end of this release note.

    Identifying Which Update Is Currently Installed on Your System

    The Update level is identified in three places:

    1. The Add/Remove Programs Control Panel entry for VisualDSP++ 4.0. 2. The VisualDSP++ GUI’s About box, located at “Help” > “About VisualDSP++”. 3. In the file …\System\VisualDSP.ini, in the ProductName key.

    Significant Additions

    The primary purpose of VisualDSP++ Updates is to address problems and stabilize the release. Significant

    new functionality is not expected to be introduced in an Update. However, incremental support (i.e.,

    emulation, example programs, header files, default LDF, errata accommodations, EZ-KIT Lite software,

    etc.) for new semiconductor products will be added as these products become available and gain support

    within the VisualDSP++ tools.

    In this release:

    1. A new VDK API has been introduced, GetBlockSize(), which has the following details:

    C Prototype

    unsigned int VDK_GetBlockSize(VDK_PoolID inPoolID)

    C++ Prototype

    unsigned int VDK::GetBlockSize(VDK::PoolID inPoolID)

    Description

    Returns the configured block size for the specified memory pool.

    2. Performance of the LwIP TCP/IP stack has been increased with some internal changes. The main change is that the stacks’ receive functionality is interrupt driven rather than relying on polling.

    The poll period passed to the stack is therefore now ignored.

    Furthermore, the performance of the LAN91C111 DMA driver has been improved and the support

    for cached buffers by the ADSP-BF537 driver has been improved.

    3. The Blackfin compiler now includes a workaround for the hardware anomaly 05-00-0245: “CPLB miss Memory Bandwidth/Performance/Power drain/spurious error:. The compiler will

    automatically enable the workaround for the appropriate silicon revisions, or you can enable the

    workaround manually by specifying the compiler flag -workaround speculative-loads.

    With the workaround enabled the compiler will insert one, two, or three nop instructions after a

    conditional jump instruction to avoid a speculative load of memory that may be invalid or reserved

    within three instructions of the jump.

  • The macro __WORKAROUND_SPECULATIVE_LOADS will be defined at compile, assemble and

    link build phases when the workaround is enabled.

    4. The Blackfin compiler now includes a workaround for the hardware anomaly 05-00-0244: "CSYNC and SSYNC failure after conditional branch". The compiler will automatically enable

    the workaround for the appropriate silicon revisions, or you can enable the workaround manually

    by specifying the compiler flag -workaround speculative-syncs.

    With the workaround enabled the compiler will insert one, two or three nop instructions after a

    conditional jump instruction to avoid a CSYNC or SSYNC instruction within three instructions of

    the jump.

    The macro __WORKAROUND_SPECULATIVE_SYNCS will be defined at compile, assemble

    and link build phases when the workaround is enabled.

    The Blackfin assembler will warn users who write assembly code that can potentially trigger the

    anomaly. Warning ea5507 will be issued by the assembler when a CSYNC or SSYNC could

    possibly be affected by the hardware anomaly.

    5. The Blackfin, SHARC and TigerSHARC compilers have a new feature of the -section switch that allows C++ static constructor functions to be placed into an identified section rather than the

    default compiler code section. The new id for -section is sti and an example use for Blackfin is

    given below:

    ccblkfn -section sti=sdram0 -c++ code.cpp

    As with other uses of -section it is the users responsibility to ensure that the identified section to

    be used by the compiler is mapped in the LDF.

    6. The compilers have a new switch, -enum-is-int, which when used ensures that the type of C/C++ enumerations are integer. Without this switch the compiler will automatically use a long

    long enumeration implementation when enumeration field values larger than the maximum

    signed integer are used. A new diagnostic (a remark for Blackfin and warning for SHARC and

    TigerSHARC), cc1661, will be issued when this happens.

    7. A new compiler switch, -implicit-pointers, has been added to make the default error for incompatible pointers a warning.

    8. A new #pragma regs_clobbered_call has been added to compilers.

    This pragma may be applied to a statement to indicate that the call within the statement uses a

    modified volatile register set. The pragma is closely related to #pragma regs_clobbered,

    but avoids some of the restrictions that relate to that pragma.

  • Changes to Existing Behaviors, Projects, and Source Code

    When addressing problems, we attempt to make any changes backward compatible with existing projects.

    However, depending on the nature of a problem, compatibility issues are sometimes unavoidable. This

    section highlights any changes in the Update that may require the modification of “working” projects or

    otherwise influence existing behavior.

    In this release:

    1. Some of the problems addressed involve changes to the default LDFs. If your project has a custom LDF that is heavily based on one of the defaults, your LDF may continue suffer from

    problems that have been fixed in the default. Custom LDFs should be audited for correctness.

    Relevant TAR numbers are 23532 and 23533.

    2. As a consequence of addressing TAR 23770, some applications that call he fread and fwrite functions may experience slower performance. To address this slow-down, applications should

    use the setvbuf function to specify an appropriate buffer size. An appropriate buffer size would

    be the size (in memory units) of consecutive scalars and/or small arrays that are read or written

    using fread and fwrite, or zero if the application only reads or writes 'large' arrays.

    Note that this issue does not affect Blackfin applications that have been built with the switch

    -full-io, TigerSHARC applications that have been built with the switch -char-size-8, or

    SHARC and TigerSHARC applications that use fread and fwrite on text streams.

  • Problems Addressed

    The following table is a list of the problems addressed in this Update. Details on any particular problem

    can be found on the Tools Anomaly web page. Note that after the Issues headings in the top half of the

    Tools Anomaly web page, problems are detailed in numeric order. The URL is:

    http://www.analog.com/processors/technicalSupport/toolsAnomalies.html

    Processor

    Family

    Problem

    Number

    Tool Description

    All 17622 Compiler No warning generated for uninitialised variable use within loop

    All 22593 Compiler Pragma pure and pragma const don't work

    All 22968 Compiler Enum size can change without warning

    All 23234 Compiler -unsigned-bitfield does not work always

    All 23254 Run Time

    Libraries

    #pragma system header needs to activate no implicit inclusion

    All 23725 Compiler undefined reference using section keyword/pragmas and C++

    EH

    All 23756 Run Time

    Libraries

    Concurrent calls to I/O in VDK threads may cause kernel panic

    All 23770 Run Time

    Libraries

    Using fread or fwrite to read or write scalars can be slow

    All 23826 Compiler Compiler crash generating debug for C++ function with long

    name

    All 23940 VDK Multiple pends on a periodic semaphore can cause infinite loop

    Blackfin 22463 Simulator BF535: LB0/LB1 don't get bit 0 set in supervisor mode

    Blackfin 22639 Run Time

    Libraries

    _l1_memcpy and _memcpy_l1 off by one

    Blackfin 22754 IDDE 1.0 and 1 evaluate differnetly for float type

    Blackfin 22942 Simulator ASTAT bits AC copy and V copy can be wrong

    Blackfin 23130 Simulator BF535: incorrect P-reg value after PushPopMultiple instruction

    Blackfin 23219 Run Time

    Libraries

    Least Significant bit error in 32-bit unsigned division

    Blackfin 23224 Simulator BF535: WatchDog Timer not simulated properly

    Blackfin 23376 License

    Install

    VDSP++ 3.5 Emulator Tools won't work w/ pure ++4.0

    Package Defs

    Blackfin 23391 Run Time

    Libraries

    cannot overload malloc/free/realloc/calloc in libc

    Blackfin 23436 Assembler .INC/BINARY and -g corrupts DWARF output

    Blackfin 23518 Compiler Using long longs in ISR can cause compiler internal error

    Blackfin 23532 Run Time

    Libraries

    LDF L1_data_a vs. l1_data_a incompatibility

    Blackfin 23533 VDK LDF L1_data_a vs. l1_data_a incompatibility

    Blackfin 23537 IDDE Problems with debug line info when filename case doesn't

    match

    Blackfin 23544 Compiler short loaded from packed struct not sign extended on copy to int

    Blackfin 23551 Compiler Simple reverse loop failing to compile

    Blackfin 23553 Document-

    Help

    'Upgrading VisualDSP" needs to be modified with vdu

    instructions

    Blackfin 23567 CRTGen Generated AD6532 CRT compiles with warnings

    Blackfin 23671 IDDE Expressions window evaluates expression incorrectly

    Blackfin 23773 Run Time

    Libraries

    Undefined library symbol when using -multicore on BF561

    Blackfin 23802 Emulator Jtag frequency selection fails for any frequency

  • Blackfin 23811 Simulator BF535: CYCLES and CYCLES2 increment not properly

    simulated

    Blackfin 23865 Simulator scanf fails for compiled sim

    SHARC 22076 IDDE 21161 loader property page doesn't set -id1exe

    SHARC 22217 Run Time

    Libraries

    C++ exceptions code compiled with -Og may not work properly

    SHARC 23519 Flash

    Programmer

    21161N EZ-Kit Flash programmer driver incorrect unlock

    sequence

    SHARC 23566 Emulator reserved bits incorrect in LIRPTL register

    SHARC 23589 VDK Use of Push/PopCriticalRegion in device driver activate

    SHARC 23766 VDK SWFA libraries don't link

    SHARC 23849 Examples 21364 EZ-KIT Example PLL init code mod

    TigerSHARC 21599 Assembler assembler accepts invalid multiplier instruction

    TigerSHARC 23435 Compiler Internal compiler error when compiling attached code

    TigerSHARC 23462 Assembler cjmp should always be (abs) on TS201

    TigerSHARC 23470 Compiler Compiler fails optimised with 64-bit dual add/subtract

    TigerSHARC 23490 Compiler A single bit set in a long long bitfield unoptimised can fail

    TigerSHARC 23686 Assembler more anomalies fixed in rev 1.2

    TigerSHARC 23776 VDK TS202 LDF does not link

    TigerSHARC 23844 Document-

    Tools

    Topics from older Rev of the book are visible in Help via

    Search

    TigerSHARC 24007 VDK VDK does not install the hardware error interrupt

  • VisualDSP++ 4.0 (Updated March 2005) Release Note

    The following release note concerns the March 2005 Update to the VisualDSP++ 4.0 release. This is the

    first in what is anticipated to be a series of Updates. The contents of future product Updates will be

    inclusive of all previous Updates. At that time, the release notes for past Updates will be appended to the

    end of the current release note.

    Identifying Which Update Is Currently Installed on Your System

    The Update level is identified in three places:

    1. The Add/Remove Programs Control Panel entry for VisualDSP++ 4.0. 2. The VisualDSP++ GUI’s About box, located at “Help” > “About VisualDSP++”. 3. In the file …\System\VisualDSP.ini, in the ProductName key.

    Installing an Update

    The procedure for installing an Update to VisualDSP++ is described below. Note that it is different from

    previous releases of VisualDSP++. Note that with VisualDSP++’s support for installing multiple instances

    of itself, it is possible to “trial” an Update in a new directory before switching over your “golden” tools

    installation to the Update.

    1. Use the Start Menu to navigate to VisualDSP++’s “Maintain this Installation” item. 2. Select “Go to the Analog Devices website” and click “Next”. This will launch your web browser

    and navigate it to the proper URL to download Updates from.

    3. Download the VisualDSP++ Update file (.VDU) of interest to your hard disk. Note that these files have a .VDU file extension and cannot be executed directly.

    4. Navigate to “Maintain this Installation” again. If you have multiple installations VisualDSP++ on your computer, be doubly sure you are navigating to the installation you wish to Update.

    5. Select “Apply a downloaded Update” and click “Next”. Click the “…” browser button and navigate to the .VDU file that you downloaded in step 3. Click “OK”, then “Next”.

    6. Follow the on-screen prompts to complete the installation of the Update.

    Significant Additions

    The primary purpose of VisualDSP++ Updates is to address problems and stabilize the release. Significant

    new functionality is not expected to be introduced in an Update. However, incremental support (i.e.,

    emulation, example programs, header files, default LDF, errata accommodations, EZ-KIT Lite software,

    etc.) for new semiconductor products will be added as these products become available and gain support

    within the VisualDSP++ tools.

    In this release:

    1. New examples have been added to support the new A/V Extender card and USB/LAN extender cards. Refer to the following new directories:

    Blackfin/EZ-KITs/USB-LAN EZ-EXTENDER/usb/examples/talkthrough

    Blackfin/EZ-KITs/A-V EZ-EXTENDER/LCD

    Blackfin/EZ-KITs/A-V EZ-EXTENDER/ezVideoSensor_EZ_A-V_Extender

    2. Support for ADSP-BF533/2/1 revision 0.4 silicon has been added.

    3. The Blackfin compiler now includes a workaround for the hardware anomaly 05-00-227: Scratchpad memory bank reads may return incorrect data. The compiler will automatically enable

    the workaround for the appropriate silicon revisions, or you can enable the workaround manually

  • by specifying the compiler flag -workaround scratchpad-read'

    With the workaround enabled, when a sequence of three load instructions occurs (or occur as parts

    of a multi-issue instruction), where at least one of (2) and (3) is a byte load, a nop will be inserted

    between (1) and (2) or (2) and (3):

    A load instruction (1);

    A load instruction (2);

    A load instruction (3);

    The macro __WORKAROUND_SCRATCHPAD_READ will be defined at compile, assemble and

    link stages when the workaround is enabled.

    4. To address ADSP-BF561 hardware anomaly 05-00-120, a modified definition of the testset_t type definition in the ccblkfn.h include file. The change is to define it as a 32-bit int type

    rather than a 16-bit type. The change will automatically be enabled for builds targeting appropriate

    silicon revisions, or you can enable the workaround manually by specifying the compiler flag

    -workaround testset-align.

    5. The run-time libraries now include a workaround for anomaly 05-00-0158, and is included for BF531/532/533 libraries which support silicon revisions affected by this anomaly. The

    workaround involves setting an additional bit in the DCPLB_DATA registers which specify cache

    is enabled. No changes to custom CPLB tables are required.

    6. The compiler now offers improved support for inlining, with new pragmas and command-line switches.

    #pragma always_inline

    This pragma may be applied to a function definition to indicate to the compiler that the function

    should always be inlined, and never called “out of line”. The pragma may only be applied to

    function definitions with the inline qualifier, and may not be used on functions with variable-

    length argument lists. It is invalid for function definitions that have interrupt-related pragmas

    associated with them.

    If the function in question has its address taken, the compiler cannot guarantee that all calls are

    inlined, so a warning is issued.

    Examples:

    int func1(int a) { // only inlined if -Oa switch on

    return a+1;

    }

    inline int func2(int b) { // probably inlined, if optimizing

    return b+2;

    }

    #pragma always_inline

    inline int func3(int c) { // always inlined, even if not

    return c+3; // optimizing

    }

  • #pragma always_inline

    int func4(int d) { // error: not an inline func.

    return d+4;

    }

    #pragma never_inline

    This pragma may be applied to a function definition to indicate to the compiler and that function

    should always be called “out of line”, and that the function's body should never be inlined.

    This pragma may not be used on function definitions that have the inline qualifier.

    Examples:

    int func1(int a) { // only inlined if -Oa switch on

    return a+1;

    }

    #pragma never_inline

    int func2(int b) { // never inlined, even if -Oa switch on

    return b+2;

    }

    #pragma never_inline

    inline int func3(int c) { // error: inline function

    return c+3;

    }

    New compiler switches to control inlining

    -always-inline

    The -always-inline switch instructs the compiler to always attempt to inline any

    call to a function that is defined with the inline qualifier. It is equivalent to applying

    #pragma always_inline to all functions in the module that have the inline

    qualifier.

    -never-inline

    The -never-inline switch instructs the compiler to ignore the inline qualifier on

    function definitions, so that no calls to such functions will be inlined.

    Changes to Existing Behaviors, Projects, and Source Code

    When addressing problems, we attempt to make any changes backward compatible with existing projects.

    However, depending on the nature of a problem, compatibility issues are sometimes unavoidable. This

    section highlights any changes in the Update that may require the modification of “working” projects or

    otherwise influence existing behavior.

    In this release no changes have been identified.

    7. Several of the problems addressed involve changes to the default LDFs. If your project has a custom LDF that is heavily based on one of the defaults, your LDF may continue suffer from

    problems that have been fixed in the default. Custom LDFs should be audited for correctness.

    Relevant TAR numbers are 22223, 22829, 23046, 23067, 23166, and 23167.

  • Problems Addressed

    The following table is a list of the problems addressed in this Update. Details on any particular problem

    can be found on the Tools Anomaly web page. The URL is:

    http://www.analog.com/processors/technicalSupport/toolsAnomalies.html

    Processor

    Family

    Problem

    Number

    Tool Description

    All 22359 Compiler compiler does not quote dependency targets

    All 22470 Run Time

    Libraries

    Function add_devtab_entry() fails to link in C++ mode

    All 22660 Compiler remarks (cc1124) caused by use of cdef*.h defined macros

    All 22707 Compiler Bad debug info for funcs with linkage_name

    All 22708 IDDE Trigger in VDK history does not recognise interrupt level

    All 22717 Compiler compiler assertion (driver.c:1057) with bad ctor array assign

    All 22752 VDK Routing thread thread structure always allocated in def heap

    All 22941 Run Time

    Libraries

    setvbuf fails to make stderr line buffered

    All 23058 VDK minimum application size increased

    All 23109 Installation Some version of Internet Explorer 5.01 not recognized by install

    All 23179 IDDE License Server Installation doesn't append 4.0 package defs

    All 23235 Compiler -Wsuppress option does not work with -Wremarks

    Blackfin 17204 Utilities meminit does not issue an error message with an illegal switch

    Blackfin 17966 Document-

    Help

    Pipeline viewer documentation not correct

    Blackfin 20144 Loader elfloader doesn't inform that ADSP-2153x is no longer supported

    Blackfin 22223 Run Time

    Libraries

    default LDF allows user to place data in mem used by ROM

    Bootkrn

    Blackfin 22229 Run Time

    Libraries

    The time function ignores its argument

    Blackfin 22257 Run Time

    Libraries

    Some functions should be declared 'static inline'

    Blackfin 22259 Run Time

    Libraries

    some functions are defined twice

    Blackfin 22263 Linker MAP() LDF command is ignored

    Blackfin 22374 Compiler Compiler doesn't optimise loop to one cycle any more

    Blackfin 22463 Simulator BF535: LB0/LB1 don't get bit 0 set in supervisor mode

    Blackfin 22553 Run Time

    Libraries

    64-bit Math functions loose precision

    Blackfin 22639 Compiler _l1_memcpy and _memcpy_l1 off by one

    Blackfin 22696 IDDE Cannot delete workspaces

    Blackfin 22754 IDDE 1.0 and 1 evaluate differnetly for float type

    Blackfin 22815 Run Time

    Libraries

    Missing parens in def_LPBlackfin.h (SEQSTAT_*CAUSE)

    Blackfin 22829 Run Time

    Libraries

    Executing PGO datasets with command line arguments broken

    Blackfin 22866 Run Time

    Libraries

    profiling libraries not compiled with -double-size-any

    Blackfin 22901 IDDE 16-bit RGB bytes are swapped

    Blackfin 23046 VDK LDF allows placement of data in memory used by ROM

    Bootkernel

    Blackfin 23067 Run Time Default LDFs don't use libetsi*y.dlb

  • Libraries

    Blackfin 23117 Assembler Blackfin Assembler issues incorrect relocation type

    Blackfin 23130 Simulator BF535: incorrect P-reg value after PushPopMultiple instruction

    Blackfin 23166 VDK BF532 LDF has mispelt section if cache or sdram enabled

    Blackfin 23167 VDK AD6532 LDF has wrong start address

    Blackfin 21184 Run Time

    Libraries

    BF532 LDF doesn’t map some sections to SDRAM with

    USE_SDRAM mcro

    Blackfin 23197 Document-

    Help

    Blackfin ICE help ""Initializing Registers on reset” incorrect

    Blackfin 23224 Simulator BF535: WatchDog Timer not simulated properly

    Blackfin 23226 VDK Interrupts can be serviced during VDK startup causing problems

    Blackfin 23240 Run Time

    Libraries

    ___float32_to_unsigned_int32can give wrong results

    Blackfin 23274 Compiler Compiler failure with circular buffer op in early exit loop

    Blackfin 23347 Run Time

    Libraries

    The 64-bit C run-time sqrt function fails to link with -threads

    Blackfin 23422 Run Time

    Libraries

    Binaries from VDSP3.5 (and earlier) may not link with VDSP4.0

    SHARC 22796 IDDE If project built without EL open, changes do not show in EL

    SHARC 22812 Debug

    Agent

    Modifying IOSTAT child registers causes communication time

    out

    SHARC 22956 Emulator Emulator causes unwanted change in SPIDMAC register

    SHARC 23279 Compiler Compiler uses much more stack space when compiling for 2116x

    TigerSHARC 22158 VDK VDK switching off of interrupts is not safe

    TigerSHARC 22468 Run Time

    Libraries

    The compiler will fault putc with -char-size-8

    TigerSHARC 22620 Emulator TS202 & TS203 have incorrect syscon reset values

    TigerSHARC 22666 Compiler Wrong answers given for clip and abs builtin reference code

    TigerSHARC 22781 Run Time

    Libraries

    SW exception handler corrupts IALU conds when invoking

    monitor

    TigerSHARC 23012 IDDE VDK 3.5 projects for TS fail to compile

    TigerSHARC 23268 Assembler assembler accepts invalid instruction line

    TigerSHARC 23304 Compiler Compiler fails bad align pragma value in byte-addressing mode

    TigerSHARC 23321 Compiler Bad second arg for separate_mem_segments crashes compiler


Recommended