I have a ballistics algorithm running in our current product. We plan to put that piece code into K63 later. Then I did a quick preliminary evaluation half year ago by "mbed" using FRDM-k64F board right after FTF. The speed is great, every computation cycle only takes about 2 ms.
Now I transplanted that piece of code into a bare metal program by KDS. Exact same code, every cycle takes about 20 ms. It is about 10 times slower. I also tried the "arm_math.h". There is no difference at all.
Then I run my mbed code again. It is still 2 ms. I changed the float variables to volatile just in case the optimization. I also change the variables during the loop to avoid any optimization. It still holds 2 ms. The time was measured by an oscilloscope by toggle a IO right before and right after the calculation.
When I compared the calculation results from both mbed and KDS, the output are exactly same.
the processor setup is : -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16
Anyone could know what I missed or KDS missed compared to mbed?
Thanks a lot!