2021-12-25 11:08 AM - last edited on 2023-11-30 07:14 AM by Amel NASRI
Mates,
I am new in the environment of STM32. Now, I have a problem with a DSP application.
I'd like to use FFT functions on STM32WL55 board. However, when I try to use CMSIS built-in functions, the project can not be built, it gives VFP errors.
I am using STM32CubeIDE, I could not enable FPU in MCU Settings. And, "Floating-point ABI" is set as "soft". However, I still get VFP errors. Here below, you can see the output of the console.
c:\st\stm32cubeide_1.6.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924\tools\arm-none-eabi\bin\ld.exe: error: C:\Users\unalf\Documents\STM32CubeIDE\Ptest1\ptest1\Drivers\CMSIS\Lib\GCC\libarm_cortexM4lf_math.a(arm_cfft_radix4_q15.o) uses VFP register arguments, ptest1.elf does not
c:\st\stm32cubeide_1.6.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924\tools\arm-none-eabi\bin\ld.exe: failed to merge target specific data of file C:\Users\unalf\Documents\STM32CubeIDE\Ptest1\ptest1\Drivers\CMSIS\Lib\GCC\libarm_cortexM4lf_math.a(arm_cfft_radix4_q15.o)
c:\st\stm32cubeide_1.6.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924\tools\arm-none-eabi\bin\ld.exe: error: C:\Users\unalf\Documents\STM32CubeIDE\Ptest1\ptest1\Drivers\CMSIS\Lib\GCC\libarm_cortexM4lf_math.a(arm_cfft_radix4_init_q15.o) uses VFP register arguments, ptest1.elf does not
c:\st\stm32cubeide_1.6.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924\tools\arm-none-eabi\bin\ld.exe: failed to merge target specific data of file C:\Users\unalf\Documents\STM32CubeIDE\Ptest1\ptest1\Drivers\CMSIS\Lib\GCC\libarm_cortexM4lf_math.a(arm_cfft_radix4_init_q15.o)
c:\st\stm32cubeide_1.6.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924\tools\arm-none-eabi\bin\ld.exe: error: C:\Users\unalf\Documents\STM32CubeIDE\Ptest1\ptest1\Drivers\CMSIS\Lib\GCC\libarm_cortexM4lf_math.a(arm_bitreversal.o) uses VFP register arguments, ptest1.elf does not
c:\st\stm32cubeide_1.6.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924\tools\arm-none-eabi\bin\ld.exe: failed to merge target specific data of file C:\Users\unalf\Documents\STM32CubeIDE\Ptest1\ptest1\Drivers\CMSIS\Lib\GCC\libarm_cortexM4lf_math.a(arm_bitreversal.o)
c:\st\stm32cubeide_1.6.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924\tools\arm-none-eabi\bin\ld.exe: error: C:\Users\unalf\Documents\STM32CubeIDE\Ptest1\ptest1\Drivers\CMSIS\Lib\GCC\libarm_cortexM4lf_math.a(arm_cmplx_mag_q15.o) uses VFP register arguments, ptest1.elf does not
c:\st\stm32cubeide_1.6.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924\tools\arm-none-eabi\bin\ld.exe: failed to merge target specific data of file C:\Users\unalf\Documents\STM32CubeIDE\Ptest1\ptest1\Drivers\CMSIS\Lib\GCC\libarm_cortexM4lf_math.a(arm_cmplx_mag_q15.o)
c:\st\stm32cubeide_1.6.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924\tools\arm-none-eabi\bin\ld.exe: error: C:\Users\unalf\Documents\STM32CubeIDE\Ptest1\ptest1\Drivers\CMSIS\Lib\GCC\libarm_cortexM4lf_math.a(arm_sqrt_q15.o) uses VFP register arguments, ptest1.elf does not
c:\st\stm32cubeide_1.6.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924\tools\arm-none-eabi\bin\ld.exe: failed to merge target specific data of file C:\Users\unalf\Documents\STM32CubeIDE\Ptest1\ptest1\Drivers\CMSIS\Lib\GCC\libarm_cortexM4lf_math.a(arm_sqrt_q15.o)
c:\st\stm32cubeide_1.6.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924\tools\arm-none-eabi\bin\ld.exe: error: C:\Users\unalf\Documents\STM32CubeIDE\Ptest1\ptest1\Drivers\CMSIS\Lib\GCC\libarm_cortexM4lf_math.a(arm_common_tables.o) uses VFP register arguments, ptest1.elf does not
c:\st\stm32cubeide_1.6.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924\tools\arm-none-eabi\bin\ld.exe: failed to merge target specific data of file C:\Users\unalf\Documents\STM32CubeIDE\Ptest1\ptest1\Drivers\CMSIS\Lib\GCC\libarm_cortexM4lf_math.a(arm_common_tables.o)
Could you help me with that? Any advice?
Solved! Go to Solution.
2021-12-26 11:19 AM
I found the solution.
There is a video for CMSIS/DSP library.
For my board, it does not have FPU. So, I used "arm_cortexM4l_math" instead of "arm_cortexM4lf_math" in GCC Linker.
Then it worked!
2021-12-25 12:24 PM
2021-12-25 02:59 PM
Thanks for the reply. However, I tried this already, but there is no additional option.
2021-12-25 05:31 PM
Doesn't seem like it has an FPU. The term "FPU" doesn't appear anywhere in the datasheet or reference manual. The FPU is optional on the M4 core and DSP support doesn't imply FPU either since many DSP functions are fixed-point based.
2021-12-26 11:19 AM
I found the solution.
There is a video for CMSIS/DSP library.
For my board, it does not have FPU. So, I used "arm_cortexM4l_math" instead of "arm_cortexM4lf_math" in GCC Linker.
Then it worked!