We have downloaded and installed latest ARM development studio. We have V2M-MPS2 Cortex-M prototyping board (with STM32F207 VGT6). One of our customer request is to develop an application based on cortex-M4F platform. We are facing few issues here.
1. We have written a small floating point code. Compiled the code with " --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=soft -mthumb -fvectorize -fno-lto -O3 -g -MD -MP". Loaded the generated .axf file to the board and saw that all the floating point multiplications and additions are done through function calls (__aeabi_fmul, __aeabi_fadd, __aeabi_dmul). Because of these function calls, the cycles taken by the actual function is very high. The expectation is that, for floating point or fixed point multiplication, the compiler should simply generate a " MUL" instruction.
2. For this, we have changed the option to "-mfloat-abi=hard" and compiled the code. The code got compiled and generated a .axf file. But, we are not able to load the .axf file to the hardware as the hardware supports Cortex-M3. Are we using the correct option? How do we know that the code generated does not use any libraries for multiplication, instead it uses "MUL" instructions for floating point multiplication operations? Is there any option in the project properties to save the intermediate assembly files generated for the C code?
Thanks for the reply. It helped us a lot.