[Speex-dev] Patch for Analog Devices compiler & fixed-point AGC

Stephane Lesage stephane.lesage at ateis-international.com
Fri Feb 22 02:02:27 PST 2008

Robin Getz a écrit :

>> As I told you, bank is a reserved keyword in Analog Devices compiler for 
>> Blackfin architecture.
> This seems lame, and maybe you need to change the header files inside VDSP++. 
> (This is pretty common for VDSP users to do when name space clashes occur 
> with open source software).
> Poking at the VDSP docs, says that it uses bank() rather than the industry 
> standard __attribute(section("foo")) - so you can't change that with a header 
> file change :(
> === From the VDSP manual ====
> Bank qualifiers can be attached to data declarations to indicate that the
> data resides in particular memory banks. For example,
>    int bank(“blue”) *ptr1;
>    int bank(“green”) *ptr2;
> =============================
> is equivalent to the standard way of doing things:
> int *ptr1 __attribute((section("red")));
> int *ptr2 __attribute((section("green")));
>> So we need to change the variables named bank to something else.
> I agree with Jean-Marc - get ADI to fix it's toolchain.

Hi Robin,

I'm happy to talk with the blackfin uClinux guru ;-)

After hours of fighting with MinGW, which could not run autoconf and 
automake on my windows... I finally wrote the makefile myself and got 
Speex compiled with bfin-elf-gcc / bfin-elf-ar.

The ELF format is also used by VDSP, so I can link. But this was useless 
anyway, as the calling conventions are different...

Although uClinux is great and the GCC are very good tools, it's not an 
option for me, because I need:
- a small RTOS, where I can control hardware directly, and the VDK is 
just fine
- an IDE with JTAG debugging, and VDSP is good enough.

But maybe I'm wrong and we can debug using Eclipse without the gdbserver 
running on the linux target ???

Stephane Lesage
ATEIS International

More information about the Speex-dev mailing list