> following info showed in the buildt map file.
To check the map file output would have been one of my suggestions. Many toolchains can output cross reference lists as well, including details where a symbol (e.g. function) originates from.
But as said, I don' have the ARM toolchain at ma disposal to test it. In fact I have very little experience with MDK.
Have you tried tutorials and documentations ?
I suppose the linker and library options are well documented.
And, at least in POSIX compatible platforms, the printf format character 'f' denotes a double argument, not a (single precision) float argument : https://linux.die.net/man/3/printf
By the way ...
in this expression "float ft = 3.3;", the constant "3.3" represents a double, not a float.
The stated assignment involves an implicit type conversion (from double to float), which has very little effect in your case.
You can avoid that by adding the specific suffix, i.e. "float fp = 3.3f;".
Only in more extensive floating point calculations like spectral algorithms or tight cycle-by-cycle control loops, it can make a substantial difference.