STM32CubeIDE移植DSP库(STM32F334)
最近在使用STM32F334写代码时,发现自身在数学运算时很慢,因为之前使用过F4系列的DSP库,想来F3移植应该也不是难事,于是便有了这篇博客,STM32CubeIDE移植DSP库,记录一下移植方法
准备环境
一块能用的STM32系统板,我这里用的STM32F334R8T6,其他的系列大同小异,STM32CubeIDE版本是1.9.0
开始移植DSP库
建立工程
使用STM32CubeIDE建立工程,这个步骤就不过多阐述了,不是我们今天的重点,
准备DSP库文件
我的文件的默认位置是C:\Users\用户名\STM32Cube\Repository\STM32Cube_FW_F3_V1.11.3\Drivers\CMSIS\DSP,每个人的位置、文件名可能都不太一样,但是应该大同小异,在这个文件夹中,我们需要Include、Source这两个文件夹
然后还有一个文件在C:\Users\用户名\STM32Cube\Repository\STM32Cube_FW_F3_V1.11.3\Drivers\CMSIS\Lib\ARM,我们需要arm_cortexM4lf_math.lib这个文件
工程目录新建DSP文件夹
在已经建立好的工程目录下建立DSP文件夹,右键工程->New->Source Folder,命名可以随意,我这里就命名为DSP,一定要按照图中的方法建立,不然会有问题
然后将上面准备的DSP库文件复制在这个工程新建的文件夹下
工程的一些设置
完成了上一步就已经完成了一大半了,接下来就是一些工程里面的设置,
1. 添加文件路径右键工程->Properties->C/C++ General->Paths and Symbols->Includes
2. 添加宏定义,__FPU_PRESENT,数值设置为1
__FPU_USED,数值设置为1
__TARGET_FPU_VFP
ARM_MATH_CM4
3. 添加静态库文件
"${workspace_loc:/${你的工程名}/DSP/arm_cortexM4lf_math.lib}"
编译通过
在main中添加头文件
#include "arm_math.h"
添加测试代码
float test = arm_sin_f32(0.5);
编译通过就表示移植成功了
最后经过我的测试,我的代码用了DSP库是没有用DSP库的时候运算速度的4倍,当然每个人的代码不一样,运算速度肯定也不一样,总的来说,如果对运算速度要求高的那肯定得移植DSP库了。
Enjoy it!