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

Stephane Lesage
Fri, 22 Feb 2008 02:09:27 -0000

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 ???