Altera_Forum
Honored Contributor
12 years agousing the FPU on Cortex A9
Hello,
I'm trying to use the FPU in my baremetal project. I use the ARM DS-5 (altera edition) with the DS5-GCC. I try to compile a simple project with the following options:-mfloat-abi=hard -mfpu=vfpv3-d16-fp16 -ftree-vectorize -ffast-math -march=armv7-a -mtune=cortex-a9 -mcpu=cortex-a9 The output is always something like this: gcc version 4.6.3 (Sourcery CodeBench Lite 2012.03-56)
arm-none-eabi-g++ -Taltera-socfpga-hosted.ld -g -O0 -mfloat-abi=hard -mfpu=vfpv3-d16-fp16 -ftree-vectorize -ffast-math -march=armv7-a -mtune=cortex-a9 -mcpu=cortex-a9 -Werror -Wall -Wstrict-prototypes hello.o -o hello.axf
c:/altera/13.1/embedded/host_tools/mentor/gnu/arm/baremetal/bin/../lib/gcc/arm-none-eabi/4.6.3/../../../../arm-none-eabi/bin/ld.exe: error: hello.o uses VFP register arguments, hello.axf does not
c:/altera/13.1/embedded/host_tools/mentor/gnu/arm/baremetal/bin/../lib/gcc/arm-none-eabi/4.6.3/../../../../arm-none-eabi/bin/ld.exe: failed to merge target specific data of file hello.o
collect2: ld returned 1 exit status
make: *** Error 1 Ok, the message let me know, that at least one library (may be i.e. libc...) is not linked for hard floatingpoint. Maybe there is generally no hardware-floatingpoint support by the delivered DS5-GCC compiler/toolchain? Normally the Codesourcery Lite only supports software-floatingpoint and only the standard and professional versions have hardware floatingpoint support. using the flag -mfloat-abi=softfp doesn't work for me. In this case all floating point operation will be done by software and that's to slow. Does anyone know, how to get it work?