STM32F429开启FPU,使用ST自带DSP库函数

时间:2024-03-21 13:03:19

STM32F4xx系列的芯片使用的是Cortex-M4内核,带有DSP和FPU单元。如何开启FPU单元,使用DSP库函数。这是个人实践。
Keil版本:V5.17
芯片型号:STM32F429ZGT6
1.添加库
根据所选芯片的工作模式和运算模式,添加arm_cortexMxxmath.lib到工程文件中,库放置在STM32F4xx_DSP_StdPeriph_Lib_V1.5.1\Libraries\CMSIS\Lib\ARM
- arm-cortexM4b_math.lib(M4内核的大端模式)
- arm_cortexM4bf_math.lib (M4内核的大端模式,浮点单元)
- arm_cortexM4l_math.lib (M4内核的小端模式)
- arm_cortexM4lf_math.lib (M4内核的小端模式,浮点单元)
我选择的是 arm_cortexM4lf_math.lib
2.添加DSP库的.C和.h文件
文件位STM32F4xx_DSP_StdPeriph_Lib_V1.5.1\Libraries\CMSIS\DSP_Lib
STM32F429开启FPU,使用ST自带DSP库函数
STM32F429开启FPU,使用ST自带DSP库函数
3.配置工程文件
STM32F429开启FPU,使用ST自带DSP库函数
4.添加Define项
在C/C++选项卡中添加__FPU_PRESENT=1,__TARGET_FPU_VFP,ARM_MATH_CM4,__CC_ARM,并使用英文符逗号隔开
- __FPU_PRESENT=1 //打开FPU
- __TARGET_FPU_VFP //要求编译出的文件使用FPU功能
- ARM_MATH_CM4 //没有”ARM_MATH_CM4”符号,在编译时将会提示找不到”armcm4.h”文件
- __CC_ARM //__CC_ARM是不同编译器的编译配置宏定义,__CC_ARM就是代表MDK开发环境
STM32F429开启FPU,使用ST自带DSP库函数
5.进入到System_stm32f4xx.c文件中找到SystemInit函数中确认是是否存在如下代码
STM32F429开启FPU,使用ST自带DSP库函数

6.在需要使用到DSP库的文件上包含arm-math.h即可
7.配置完成