content here.
content here.

Documentation Errata for VisualDSP++ 5.0 C/C++ Compiler and Library Manual for Blackfin Processors (Revision 5.1, August 2008)


Chapter:  1 Page: 11
Reference Number: 39665
Change
Add the following switch names/descriptions to table 1-5 (C/C++ Compiler Common Switches.
Add to C/C++ Compiler Common Switches
Switch Name Description
-dcplbs Instructs the compiler to assume that Data CPLBs are active
-icplbs Instructs the compiler to assume that Instruction CPLBs are active

Also add (where appropriate) the following reference pages describing these switches:

-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 problems 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(link) switch should be used.



-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 problems the compiler would otherwise workaround (e.g. anomaly 05-00-0426), improving code size and performance.

If both ICPLBs and DCPLBs are active, the -cplbs(link) switch should be used.



On the reference page for the -cplbs switch (page 1-31), update the page with the following paragraph at the end:
If only instruction CPLBs or data CPLBs are enabled the -icplbs(link) or -dcplbs(link) switches can be used respectively.

back to top


Chapter:  1 Page: 76
Reference Number: 40409
Change
The following text is added at the end of the "-W{error|remark|suppress|warn} number[, number...]" section.
As shown in the Output window and in Help, error codes sometimes begin with a leading zero (for example, cc0025). If you try to suppress error codes with -W{error|remark|suppress|warn} or #pragma diag() and supply the code with a leading zero, it will not work. This is because the compiler reads the number as an octal value, and will suppress a different warning or error.

back to top


Chapter:  1 Page: 291
Reference Number: 40198
Change
Change:
const char __argv_string[] = "-in x.gif -out y.jpeg";

To:
extern const char __argv_string[] = "-in x.gif -out y.jpeg";

back to top


Chapter:  1 Page: 310
Reference Number: 40235
Change
The following text and table are added at the end of the "CPLB Installation" section.
When enabling CPLBs, _cplb_init checks that the CPLB entries are valid. If an issue is identified, control will jump to an infinite loop around a label describing the problem. These labels are described in the following table.
CPLB Issues
Label Error
cplb_address_is_misaligned_for_cplb_size Alignment of CPLB does not correspond to CPLB size. Each CPLB must have a minimum alignment equal to the size of the CPLB.
too_many_locked_data_cplbs More than 16 locked data CPLBs are present. Only 16 data CPLBs are available, so additional data CPLBs cannot become active.
too_many_locked_instruction_cplbs More than 16 locked instruction CPLBs are present. Only 16 instruction CPLBS are available, so additional instruction CPLBs cannot become active.

back to top


Chapter:  1 Page: 310
Reference Number: 39863
Change
(only for VisualDSP++ 5.0 Update 6 and later) Near the bottom of the page, delete the list item:
  • Among the first sixteen CPLBs, so they are loaded into the active table during initialization

back to top


Chapter:  1 Page: 331
Reference Number: 39788
Change

In table 1-31 (Predefined Compiler Macros), add the following:

Add to Table 1-31
Predefined Compiler Macros
Macro Function
_ADI_COMPILER Always defined as 1

back to top


Chapter:  2 Page: 34
Reference Number: 40289
Change
Change from:
1. If you have used one of the compiler built-in functions for explicit branch prediction (on page 1-199), the compiler will make the prediction as directed.
2. Otherwise, if you have generated an execution profile of the function using profile-guided optimization (PGO), the compiler will compare the relative counts of the true/false paths for the branch, and will mark the path with the highest execution count as the predicted path.
Change to:
1. If you have generated an execution profile of the function using profile-guided optimization (PGO), the compiler will compare the relative counts of the true/false paths for the branch, and will mark the path with the highest execution count as the predicted path.
2. Otherwise, if you have used one of the compiler built-in functions for explicit branch prediction (on page 1-199), the compiler will make the prediction as directed.

back to top


Chapter:  3 Page: 51
Reference Number: 39850
Change
Because LIBIO now implements on-demand initialization, change from:
All pre-registered devices are initialized automatically before main() is invoked by the startup code.

Change to:
Pre-registered devices are initialized automatically when Device I/O is first used.

back to top


Chapter:  3 Page: 227
Reference Number: 40412
Change
Two lines of code in the example for memcmp changes from:
char string1 = "ABC";
char string2 = "BCD";
To:
char *string1 = "ABC";
char *string2 = "BCD";

back to top


Chapter:  4 Page: 127
Reference Number: 39953
Change
The last paragraph of the description of the DSP run-time library function ifft says:
The arguments block_exponent and scale_method have been added for future expansion. These arguments are ignored by the function. To avoid overflow, the function scales the output by 1/fft_size.

This paragraph only applies to VisualDSP++ 4.5 and earlier releases. The paragraph does not apply for VisualDSP++ 5.0 and must be deleted.

back to top


Last Updated: March 10, 2009