2016-02-10 04:21 AM
Hi,
I am trying to do FFT using stm32f4 discovery board. I am using CooCox CoIDE. After adding DSP Libraries and everything I am getting this problem during Compile.[cc] arm-none-eabi-gcc -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -Wall -g -nostartfiles -Wl,-Map=stm32f429_project.map -O0 -Wl,--gc-sections -LC:\CooCox\CoIDE\configuration\ProgramData\stm32f429_project -Wl,-TC:\CooCox\CoIDE\configuration\ProgramData\stm32f429_project/arm-gcc-link.ld -g -o stm32f429_project.elf C:\CooCox\CoIDE\gcc-arm-none-eabi-4.8\arm-none-eabi\lib\libc.a ..\obj\stm32f4xx_usart.o ..\obj\stm32f4xx_can.o ..\obj\startup_stm32f4xx.o ..\obj\main.o ..\obj\stm32f4xx_rcc.o ..\obj\stm32f4xx_adc.o ..\obj\stm32f4xx_gpio.o ..\obj\system_stm32f4xx.o ..\obj\stm32f4xx_dma.o ..\obj\arm_fft_bin_data.o ..\obj\CAN_init.o ..\obj\misc.o ..\obj\arm_cfft_radix4_init_f32.o ..\obj\stm32f4xx_tim.o -LC:\CooCox\CoIDE\gcc-arm-none-eabi-4.8\arm-none-eabi\lib -larm_cortexm4lf_math -LC:\CooCox\CoIDE\gcc-arm-none-eabi-4.8\arm-none-eabi\lib -LC:\CooCox\CoIDE\gcc-arm-none-eabi-4.8\arm-none-eabi\lib -LC:\CooCox\CoIDE\gcc-arm-none-eabi-4.8\arm-none-eabi\lib -lc -lg -lm
[cc] c:/coocox/coide/gcc-arm-none-eabi-4.8/bin/../lib/gcc/arm-none-eabi/4.8.3/../../../../arm-none-eabi/bin/ld.exe: error: stm32f429_project.elf uses VFP register arguments, C:\CooCox\CoIDE\gcc-arm-none-eabi-4.8\arm-none-eabi\lib\libm.a(lib_a-wf_sqrt.o) does not
[cc] c:/coocox/coide/gcc-arm-none-eabi-4.8/bin/../lib/gcc/arm-none-eabi/4.8.3/../../../../arm-none-eabi/bin/ld.exe: failed to merge target specific data of file C:\CooCox\CoIDE\gcc-arm-none-eabi-4.8\arm-none-eabi\lib\libm.a(lib_a-wf_sqrt.o)
[cc] c:/coocox/coide/gcc-arm-none-eabi-4.8/bin/../lib/gcc/arm-none-eabi/4.8.3/../../../../arm-none-eabi/bin/ld.exe: error: stm32f429_project.elf uses VFP register arguments, C:\CooCox\CoIDE\gcc-arm-none-eabi-4.8\arm-none-eabi\lib\libm.a(lib_a-ef_sqrt.o) does not
[cc] c:/coocox/coide/gcc-arm-none-eabi-4.8/bin/../lib/gcc/arm-none-eabi/4.8.3/../../../../arm-none-eabi/bin/ld.exe: failed to merge target specific data of file C:\CooCox\CoIDE\gcc-arm-none-eabi-4.8\arm-none-eabi\lib\libm.a(lib_a-ef_sqrt.o)
[cc] c:/coocox/coide/gcc-arm-none-eabi-4.8/bin/../lib/gcc/arm-none-eabi/4.8.3/../../../../arm-none-eabi/bin/ld.exe: error: stm32f429_project.elf uses VFP register arguments, C:\CooCox\CoIDE\gcc-arm-none-eabi-4.8\arm-none-eabi\lib\libm.a(lib_a-s_lib_ver.o) does not
[cc] c:/coocox/coide/gcc-arm-none-eabi-4.8/bin/../lib/gcc/arm-none-eabi/4.8.3/../../../../arm-none-eabi/bin/ld.exe: failed to merge target specific data of file C:\CooCox\CoIDE\gcc-arm-none-eabi-4.8\arm-none-eabi\lib\libm.a(lib_a-s_lib_ver.o)does not
[cc] c:/coocox/coide/gcc-arm-none-eabi-4.8/bin/../lib/gcc/arm-none-eabi/4.8.3/../../../../arm-none-eabi/bin/ld.exe: error: stm32f429_project.elf uses VFP register arguments, C:\CooCox\CoIDE\gcc-arm-none-eabi-4.8\arm-none-eabi\lib\libm.a(lib_a-s_matherr.o) does not[cc] c:/coocox/coide/gcc-arm-none-eabi-4.8/bin/../lib/gcc/arm-none-eabi/4.8.3/../../../../arm-none-eabi/bin/ld.exe: failed to merge target specific data of file C:\CooCox\CoIDE\gcc-arm-none-eabi-4.8\arm-none-eabi\lib\libm.a(lib_a-s_matherr.o)
[cc] c:/coocox/coide/gcc-arm-none-eabi-4.8/bin/../lib/gcc/arm-none-eabi/4.8.3/../../../../arm-none-eabi/bin/ld.exe: error: stm32f429_project.elf uses VFP register arguments, C:\CooCox\CoIDE\gcc-arm-none-eabi-4.8\arm-none-eabi\lib\libm.a(lib_a-sf_fpclassify.o) does not
[cc] c:/coocox/coide/gcc-arm-none-eabi-4.8/bin/../lib/gcc/arm-none-eabi/4.8.3/../../../../arm-none-eabi/bin/ld.exe: failed to merge target specific data of file C:\CooCox\CoIDE\gcc-arm-none-eabi-4.8\arm-none-eabi\lib\libm.a(lib_a-sf_fpclassify.o)
[cc] c:/coocox/coide/gcc-arm-none-eabi-4.8/bin/../lib/gcc/arm-none-eabi/4.8.3/../../../../arm-none-eabi/bin/ld.exe: error: stm32f429_project.elf uses VFP register arguments, C:\CooCox\CoIDE\gcc-arm-none-eabi-4.8\arm-none-eabi\lib\libg.a(lib_a-errno.o) does not
[cc] c:/coocox/coide/gcc-arm-none-eabi-4.8/bin/../lib/gcc/arm-none-eabi/4.8.3/../../../../arm-none-eabi/bin/ld.exe: failed to merge target specific data of file C:\CooCox\CoIDE\gcc-arm-none-eabi-4.8\arm-none-eabi\lib\libg.a(lib_a-errno.o)[cc] c:/coocox/coide/gcc-arm-none-eabi-4.8/bin/../lib/gcc/arm-none-eabi/4.8.3/../../../../arm-none-eabi/bin/ld.exe: error: stm32f429_project.elf uses VFP register arguments, C:\CooCox\CoIDE\gcc-arm-none-eabi-4.8\arm-none-eabi\lib\libg.a(lib_a-impure.o) does not
[cc] c:/coocox/coide/gcc-arm-none-eabi-4.8/bin/../lib/gcc/arm-none-eabi/4.8.3/../../../../arm-none-eabi/bin/ld.exe: failed to merge target specific data of file C:\CooCox\CoIDE\gcc-arm-none-eabi-4.8\arm-none-eabi\lib\libg.a(lib_a-impure.o
[cc] )
[cc] collect2.exe: error: ld returned 1 exit statusCAN anyone help me in this
Thanks, Pochamreddy. #discovery #stm32f4 #!stm32-!fft #fft2016-02-10 05:28 AM
Don't know Coocox IDE internals, but obviously you link against the wrong math library.
> [cc] arm-none-eabi-gcc -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard
... > ...> error: stm32f429_project.elfuses VFP register arguments
, C:\CooCox\...\lib\libm.a(lib_a-wf_sqrt.o)does not
If the IDE/wizard selected the libm.a, or you did it manually, it is the wrong one. Either point your project to the correct library, or use-mfloat-abi=soft_fp
, which is only marginally slower than 'hard
'.