2017-07-24 04:07 AM
Hi all,
After building a project for the STM32F469xx processor I get a bunch of the following linker errors:
<project_name>cubemx.elf uses VFP register arguments, <file_name>.o does not exist?
failed to merge target specific data of file <file_name>.o?
My MCU Settings are:
prefix: arm-none-eabi
Floating point hardware: fpv4-sp-d16
Floating point-ABI: hard
Instruction set: Thumb 2
Linker:
library: cmath
My question is what causes this linker error, and what steps do I have to take to resolve this?
Any help I will appreciate!
Max
2017-07-25 02:18 AM
Are you sure you are also using the -mcpu=cortex-m4, -mthumb and -mlittle-endian options?
It's also possible that you are using a static library (like the same cmath, or Newlib or some Cube library) which was not compiled using the same FPU compiler options which you are using.
2017-07-26 02:43 AM
Correct, the ABIs of your application and libraries don't match.
... what steps do I have to take to resolve this?
Basically all toolchains use to be shipped with library versions for all possible combinations.
You need to select the proper library in the project setup, which is usually 'hidden' somewhere in the project settings.
Don't know AC6, though.
2017-07-26 05:29 AM
Hi
Veen.Max
,Try to compare your setting to a ready to use example with SW4STM32 that you find in the STM32CubeF4 package. You may also compare them to the settings of a CubeMX generated project.
-Amel
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
2017-07-26 07:32 AM
,
,
Hi Amel,
I have done what you suggested me. Thanks for that! Now the build is fine.
Regards,
Max V
Van: Amel N
Verzonden: Wednesday, 26 July 2017 14:30
Aan: Max Veen <,max.veen@veds.nl>,
Onderwerp: Re: - Re: SWSTM32 Ac6 toolchain linker error
STMicroelectronics Community <,https://community.st.com/?et=watches.email.thread>,
Re: SWSTM32 Ac6 toolchain linker error
reply from Amel N<,https://community.st.com/0D70X000006SsJBSA0