前言
介绍关于开启FPU和移植DSP库
一、FPU
FPU(Float Point Unit):浮点运算单元
如何开启FPU:取决于两个宏定义,只需要两个宏定义都为1即可开启
开启FPU的函数,stm32项目启动文件里面自带,不需要自己写
void SystemInit(void)
{
#if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2));
}
宏定义标识符解释: __FPU_PRESENT : 用来确定处理器是否带 FPU功能 __FPU_USED : 用来确定是否开启FPU功能。
Ps : “stm32fxxx.h"不同芯片不同名称,例如F407则为"stm32f4xx.h” __FPU_PRESENT放在了"stm32fxxx.h"头文件里面进行宏定义 该宏定义为1,则该芯片有FPU功能 在keil的 Floating Point Hardware 设置为使用,相当于添加一句话 : #define __FPU_USED 1 这样即可开启FPU
二、CMSIS-DSP
STM32cubeMX生成的项目
cubeMX生成的项目自带了DSP库,在 “\Drivers\CMSIS” 里面即可看到一个名叫"DSP"的目录,但是都是源码,不方便移植,所以移植的程序是 "*.lib"文件
1、在keil里面加入DSP头文件目录
2、加入 DSP的lib文件,文件放在\Drivers\CMSIS\Lib\ARM
3、加入宏定义
宏定义: ARM_MATH_CM4
|