I'm doing some tests with the Cortex-M4F and utilizing the FPU. I've added the -mfloat-abi=hard -mfpu=fpv4-sp-d16 tags to the compiler and linker flags, and this worked! If I'm using float variables, I can do math operations in C code, I see in assembly that it is calling "vfma.f32" and "vldr" instead of calling the eabi soft libraries, and I get the correct answers.
However, if I try to multiply a float variable by a float literal, it crashes. I've tried adding the "f" suffix onto the literal to force it to interpret as a float, tried various combinations of extra compiler flags like "-fsingle-precision-constant", "-ffast-math", but I can never get past the issue.
Any ideas what is the issue?
Did you check with a debugger what happens when such a multiplication with literal is executed? Any hard-faults/exceptions? Is this literal located correctly in the ROM/Flash?