Hello,
I've built a linux environment for I.mx51 EVK (all sources from freescale), the kernel is pretty stripped down only to the vitals, but I made sure that VFP is supported.
First I compiled from the command line without any gcc flags, and a source code doing fft took almost 6 minutes to run on the target.
Then I've compiled with "mfloat-abi=softfp", and the runtime improved by almost 2 minutes. still the run time is much longer then expected.
Thinking I'm on the right track I've tried to compiled with hard floating point calculation (mfloat-abi=hard / mfloat-abi=hardfp) but the code wouldn't compile. Getting the error
"test.c:1: sorry, unimplemented: -mfloat-abi=hard and VFP"
The toolchain I'm using is the one provided by Freescale :
arm-fsl-linux-gnueabi
and I'm using arm-none-linux-gnueabi-gcc for the build
I'm guessing it doesn't support hard floating point...
Any help would be much appreciated !
i.MX51 Linux does not use hardware floating point
Thanks for the link Yuri, it shed some light on my issue.
Still I'm wondering how can I utilize the NEON support or vfpv3 that is supposed to be supported by the i.mx51 EVK.
I'm using the toolchain which is "ARM, gcc-4.4.4, multilib, neon optimized". but when I add the flags -mfpu=vfpv3 / -mfpu=neon / no flags at all, I'm getting the same result exactly, the flag doesn't affect the compilation (oppose to "-mfloat-abi=softfp").
although the compilation is going through with no problem. I'm sure "-mfpu" flag doesn't affect.
An example for the compilation line I'm entering is "arm-none-linux-gnueabi-gcc -mfpu=vfpv3 test.c"
(test.c is doing fft computation, and the code takes forever to run on the imx51, while softfp helps improves the time by almost 50%, the times are still unreasonable and unacceptable)
I was hoping to get some help on how to make sure I'm compiling my code with NEON / VFPV3 support
thanks in advance