STM32CubeIDE移植ARM DSP库

简介: STM32CubeIDE移植ARM DSP库



找到DSP库路径

C:\Users\Administrator\STM32Cube\Repository\STM32Cube_FW_F4_V1.25.2\Drivers\CMSIS\DSP\Source




移植



将上述路径下的Include文件夹中的三个文件添加到STM32CubeIDE工程目录下的Core->inc文件夹下,如图:





添加相应的DSP库源文件


如该例程中我们需要使用FFT,因此,将FFT的文件夹“TransformFunctions”放入工程目录下Core->src文件夹下,如图:



添加全局宏定义

编译问题

到此,可以编译我们的工程文件,会出现以下错误:


这是提示我们在编译代码的时候发现“__FPU_PRESENT”这个宏定义未定义,但是实际上,这个宏在“stm32f407xx.h”(我使用的是STM32F407)中已经定义了,如果这个时候像上一步一样添加一个全局变量后该问题确实可以解决,但是会出现重复定义的错误。

该问题产生的原因在于,由于“core_cm4.h”中使用了“__FPU_PRESENT”这个宏,但是在编译之前没有先编译“stm32f407xx.h”导致。而“core_cm4.h”不仅仅在“stm32f407xx.h”中定义了,还在所有调用“arm_math.h”中调用,因此在调用“arm_math.h”时会出现问题。

既然知道问题所在,解决起来也很简单了,只需要在调用“arm_math.h”之前,先包含“stm32f407xx.h”文件即可,搜索整个工程目录看到“arm_math.h”被多次调用,因此为了简便,我们在“arm_math.h”中添加“stm32f407xx.h”头文件,问题得到解决。



好啦,大功告成啦!

相关文章
|
2月前
|
C++ 芯片 编译器
STM32F103标准外设库—— 新建工程与库函数(四)
STM32F103标准外设库—— 新建工程与库函数(四)
44 0
STM32F103标准外设库—— 新建工程与库函数(四)
|
2月前
|
传感器 芯片 内存技术
STM32F103标准外设库——认识STM32(一)
STM32F103标准外设库——认识STM32(一)
109 0
STM32F103标准外设库——认识STM32(一)
|
2月前
|
芯片 存储 C语言
STM32F103标准外设库——固件库 (三)
STM32F103标准外设库——固件库 (三)
59 0
STM32F103标准外设库——固件库 (三)
|
16天前
|
Linux 计算机视觉
Linux交叉编译opencv并移植ARM端
通过以上步骤,你可以在Linux上交叉编译OpenCV,并将生成的库文件和头文件移植到ARM平台上,从而在ARM上使用OpenCV。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
35 0
|
21天前
|
编译器 Linux
boost库交叉编译ARM版本
boost库交叉编译ARM版本
23 2
|
23天前
|
编译器
正点原子IMX6ULL-安装交叉编译器、编译tslib触摸屏库、编译arm环境qt源代码
正点原子IMX6ULL-安装交叉编译器、编译tslib触摸屏库、编译arm环境qt源代码
|
3月前
|
安全 Ubuntu Linux
ARM可信固件(TF-A)移植
ARM可信固件(TF-A)移植
82 1
|
4月前
交叉编译libvisca库ARM版本
交叉编译libvisca库ARM版本
35 0
|
7月前
|
存储 芯片 内存技术
STM32F0单片机快速入门十 用 SPI HAL 库读写W25Q128
STM32F0单片机快速入门十 用 SPI HAL 库读写W25Q128
|
7月前
|
存储 内存技术
STM32F0单片机快速入门九 用 I2C HAL 库读写24C02
STM32F0单片机快速入门九 用 I2C HAL 库读写24C02