Hi David. We have a GCC (test) release with FPU support for Cortex-M4F in eCos gnutools. You shall find information for download and installation here. http://ecos.sourceware.org/ml/ecos-discuss/2012-06/msg00047.html
As this is still test release, your feedback will be appreciated. Ilija On 06.04.2013 12:23, Davide Pippa wrote: > Hi! > > I've recently updated my ecos CVS, and made a new rom using the new hw > floating point support (I'm compiling for TWR-K70F120M). The rom > builds fine, but the application I used to work with complains during > compilation: > > make all > Building file: ../main.cpp > Invoking: ARM devkitPro Windows GCC C++ Compiler > arm-eabi-g++ -I"H:/Works/Arm/PyIde/roms/01009_TWR-K70F120M/include" > -O0 -Wall -Wa,-adhlns="main.o.lst" -fno-exceptions -fno-rtti -c > -fmessage-length=0 -MMD -MP -MF"main.d" -MT"main.d" -mcpu=cortex-m4 > -mthumb -mfloat-abi=hard -mfpu=vfpv4-d16 -g3 -gdwarf-2 -o "main.o" > "../main.cpp" > ../main.cpp: In function ‘void cyg_user_start()’: > ../main.cpp:33:30: warning: deprecated conversion from string constant > to ‘char*’ [-Wwrite-strings] > ../main.cpp: In function ‘void main_thread_entry(cyg_addrword_t)’: > ../main.cpp:80:87: warning: deprecated conversion from string constant > to ‘char*’ [-Wwrite-strings] > ../main.cpp: In function ‘void udpecho_thread_entry(void*)’: > ../main.cpp:107:20: warning: unused variable ‘port’ [-Wunused-variable] > ../main.cpp:110:9: warning: variable ‘j’ set but not used > [-Wunused-but-set-variable] > Finished building: ../main.cpp > > Building target: demo1.elf > Invoking: ARM devkitPro Windows GCC C++ Linker > arm-eabi-g++ -T"target.ld" -nostdlib > -LH:/Works/Arm/PyIde/roms/01009_TWR-K70F120M/lib -Wl,-Map,demo1.map > -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=vfpv4-d16 -g3 -gdwarf-2 > -o "demo1.elf" ./main.o > /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-eabi/4.6.3/../../../../arm-eabi/bin/ld: > error: demo1.elf uses VFP register arguments, > /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-eabi/4.6.3/libgcc.a(bpabi.o) > does not > makefile:59: recipe for target `demo1.elf' failed > /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-eabi/4.6.3/../../../../arm-eabi/bin/ld: > failed to merge target specific data of file > /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-eabi/4.6.3/libgcc.a(bpabi.o) > /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-eabi/4.6.3/../../../../arm-eabi/bin/ld: > error: demo1.elf uses VFP register arguments, > /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-eabi/4.6.3/libgcc.a(_divdi3.o) > does not > /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-eabi/4.6.3/../../../../arm-eabi/bin/ld: > failed to merge target specific data of file > /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-eabi/4.6.3/libgcc.a(_divdi3.o) > /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-eabi/4.6.3/../../../../arm-eabi/bin/ld: > error: demo1.elf uses VFP register arguments, > /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-eabi/4.6.3/libgcc.a(_udivdi3.o) > does not > /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-eabi/4.6.3/../../../../arm-eabi/bin/ld: > failed to merge target specific data of file > /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-eabi/4.6.3/libgcc.a(_udivdi3.o) > collect2: ld returned 1 exit status > make: *** [demo1.elf] Error 1 > > The application is built with HW fpu enabled, but it seems that > libgcc.a is not floating-point aware (sort-of?)... is there any new > release of the 4.6.3 gcc toolchain built with floating point support? > Or is there any guide to rebuild the 4.6.3 gcc toolchain myself? > > Thanks! > > Pyper. > -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss