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
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.
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