文章

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!

License:  CC BY 4.0