We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
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?