world leader in high performance signal processing
Trace: » 2014r1

2014 Release 1 (2014R1) Toolchain Release

Version: 2014R1

Date: March. 19, 2014

This toolchain release contains tools for three targets: bfin-elf, bfin-uclinux, and bfin-linux-uclibc. All are cross toolchains for the Blackfin architecture. The bfin-elf target toolchain uses newlib for the C library and can be used to develop standalone applications. Both of the bfin-uclinux and bfin-linux-uclibc target toolchains use uClibc for the C library and can be used to develop Linux applications. bfin-uclinux is used for the FLAT binary format while bfin-linux-uclibc is used for the ELF FD-PIC binary format.

This release provides two GCC versions: 4.3.5 and 4.5.3. The Binutils version in this release is 2.21. The GDB version in this release is 6.6. The uClibc version is 0.9.33.2 and the newlib version is 1.19.0.

For the 2014R1 release, there will be two separate toolchain releases. This is due to upstream incompatibilities between the shared libraries of GCC-4.3 and GCC-4.5. The default release package is 2014R1-RC1 and contains GCC-4.3. A second toolchain package is available called 2014R1_45-RC1 and contains an experimental GCC-4.5 compiler. The former will install to the default directory /opt/uClinux, the latter to /opt/uClinux-45.

The release is available as Linux 32-bit (i386), Linux 64-bit (x86_64) and Windows 32-bit (win32).

Additionally, there are two different releases of the uClibc libraries; the default and a “full” package, which contains a few extra features (IPV6, Wide Char, new file tree walk, netlink and ai_addrconfig support).

Quick Selection Guide

Under Files → 2014R1

Select a RELEASE:

2014R1-RC1 - The default GCC 4.3 compiler
2014R1_45-RC1 - The experimental GCC 4.5 compiler

Then Select a PLATFORM:

i386 - Linux 32-bit
x86_64 - Linux 64-bit
src - Source Code
blackfin-toolchain-win32-RELEASE.exe - Windows 32-bit

If Selecting A Linux Release, Download:

blackfin-toolchain-RELEASE.PLATFORM.{rpm/tar.bz2} - The base package

For Linux (one of):

blackfin-toolchain-uclibc-default-RELEASE.PLATFORM.{rpm/tar.bz2} - The default uClibc libraries
blackfin-toolchain-uclibc-full-RELEASE.PLATFORM.{rpm/tar.bz2} - The full uClibc libraries

And/Or For Bare-Metal:

blackfin-toolchain-elf-gcc-{4.3/4.5}-RELEASE.PLATFORM.{rpm/tar.bz2} - The bare metal gcc compiler.

Known Issues

elf2flt passes -q option to real.ld. --gc-sections will be ignored by ld since it cannot be used together with -q.

We do not support profiling using gprof. The latest uClibc no longer supports gcc -fprofile-arcs -pg style profiling. You may use other alternatives, like OProfile.

Single stepping through hardware loop does not work when there are only one instruction in the loop. It will step over the whole loop instead.

There are some incompatibilities between GCC-4.5 and GDB-6.6. Compile and link with -gdwarf-2 to limit this issue.

There is a known anomaly with BF60x which can cause problems when both parity and L1 instruction cache is enabled. There is currently no workaround available for this issue. See 16000005 - Using L1 Instruction Cache with Parity Enabled is Unreliable:

http://www.analog.com/static/imported-files/ic_anom/ADSP-BF606_BF607_BF608_BF609_anomalies_rev.B.pdf

Changes

  • Support for bf606, bf607, bf608 and bf609, silicon revisions 0.1 and 0.2.
  • Updated linux headers
  • gdbproxy: workaround for BF609 anomaly 16000040.
  • Changes to the build system and distribution packaging scripts to ensure better compatibility.
  • GCC/GAS: Workaround and warning for anomaly 05000506/16000043.
  • PPL: Fixes for Canadian Cross compiles.