The S32K146 processor includes a floating point unit, but if I go into the project properties and under 'target processor', I set 'Float ABI' to 'FP instructions (hard)', I get errors during the link stage like these:
c:/nxp/s32ds.3.4/s32ds/build_tools/gcc_b1620/gcc-6.3-arm32-eabi/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/real-ld.exe: error: libuavcanV1_demo.elf uses VFP register arguments, ./Project_Settings/Startup_Code/system_S32K146.o does not
c:/nxp/s32ds.3.4/s32ds/build_tools/gcc_b1620/gcc-6.3-arm32-eabi/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/real-ld.exe: failed to merge target specific data of file ./Project_Settings/Startup_Code/system_S32K146.o
These errors repeat for every source file, even if they do not use floating point instructions.
Solved! Go to Solution.
I solved this by doing a clean on the project. That caused a bunch of new errors. So I deleted the project from the workspace and readded it. Then I built it again and presto it worked! What a lot of nonesense. But at least it is possible.
Do you have chosen right FPU type (FPv4-SP)?
The only option is fpv4-sp-d16, forcibly selected. Presumably this is the same as fpv4-sp
Hi,
this typically happen if you are linking external library which is compiled with soft FP. It is possible share your project?
I solved this by doing a clean on the project. That caused a bunch of new errors. So I deleted the project from the workspace and readded it. Then I built it again and presto it worked! What a lot of nonesense. But at least it is possible.