This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AWRL1432: Does M4 on AWRL1432 support FPU?

Part Number: AWRL1432

Tool/software:

Hi,

Does M4 on AWRL1432 support FPU? If yes, shall we use below build option to enable FPU? Which -mfpu option should be used?

Does CMSIS-DSP Software Library use FPU?

Thanks,

Chris

  • Hey Chris,

    The Arm M4F used by the AWRL1432 supports a single precision FPU. As such, "fpv4-sp-d16" should be used with the mfpu option. The CMSIS-DSP software library can use the FPU, but it is not required to use it.

    Regards,

    Kristien

  • Kristien,

    Customer tried to rebuild CMSIS lib to add -mfpu=fpv4-sp-d16 in lib makefile. But they found the performance is similar as the original one. Is there anything else need to configure/define to enable FPU in CMSIS lib?

    Thanks,

    Chris

  • Hey Chris,

    It appears an additional macro should be defined, __FPU_PRESENT = 1. This should also cause the macro, __FPU_USED = 1, to become defined by the core_cm4.h file, but if not, this can be defined as a predefined symbol as well. Predefined symbols can be added to a project by right-clicking the project in Project Explorer, selecting Show Build Settings -> Build -> Arm Compiler -> Predefined Symbols, and using the "Pre-define NAME" panel to add new symbols.

    Regards,

    Kristien

  • Kristien,

     __FPU_PRESENT = 1 already defined in the default make file. Anything else?

    Thanks,

    Chris

  • Hey Chris,

    Make sure your customer is importing the cmsis.xwrL14xx.m4f.ti-arm-clang.release.lib file, including the arm_math.h file in their includes, and using the functions associated with the CMSIS library such as arm_mult_f32 or arm_dot_prod_f32. If little to no floating point operations are being done, then there also won't be a significant improvement in speed.

    Note: You may have to rebuild the CMSIS library by calling the top-level xWRL1432 makefile, makefile.xwrL14xx, in the SDK folder using the following command:

    gmake -s -f makefile.xwrL14xx libs-scrub
    gmake -s -f makefile.xwrL14xx libs

    Regards,

    Kristien