基于AC6的移植方法
CubeMX移植
1.
用CubeMX创建一个F4核心的工程,最好是用串口实验的工程,方便用串口打印结果。
建好工程后先别生产代码,在工程管理(Project Manager)选项卡里面的代码生成器(Code Generator)选项一栏中的STM32Cube MCU包和使能软件包中勾选第一个复制所有使用库到工程文件中(Copy all used libraries into the project folder),如下图勾选:
再生成代码。
2.
工程生成好之后,打开工程文件夹,在<工程名>/Drivers/CMSIS路径下就可以看到CubeMX帮我们移植好了DSP的文件
坏处就是还生成了一些我们用不到的文件像RTOS、NN等
在DSP文件中的Include文件和Source文件是我们需要用到的
在<工程名>/Drivers/CMSIS/Lib/ARM路径下的
才是我们要手动添加到工程里面的
3.
打开工程,点击三箱(管理工程项目)
添加一个组,在这个组里面添加arm_cortexM4lf_math.lib文件,可以方便管理
接着点击魔法棒点击C/C++选项卡,在头文件包含路径中添加DSP文件夹下的Include文件
然后添加一个宏:,ARM_MATH_CM4 ARM_MATH,ARM_MATH_MATRIX_CHECK,ARM_MATH_ROUNDING
记得在前面加逗号,用于分隔
最后在main.c中添加这个头文件,就可以调用DSP中的API函数来使用了
#include "arm_math.h"
4.
所有的DSP-API函数的调用和使用都可以在这个:/Keil_v5/ARM/Packs/ARM/CMSIS/5.9.0/CMSIS/Documentation/
路径下的HTML文件中查询
虽然用CubeMX生成很方便、很快,但是有一些内容被裁剪或优化了。
所以要使用完整版的DSP,还得是手动移植。
手动移植
1.DSP库的获取
直接在ST官网上下载F4的标准库源码包,里面附带了DSP库
(HAL库的包我没去看有没有带DSP,感兴趣的可以去看看)
下载地址:https://www.st.com/zh/embedded-software/stm32-standard-peripheral-libraries.html
在解压出来的文件夹里的Libraries\CMSIS\Lib\ARM路径中找到库文件
复制它添加到工程里面
然后在keil的安装路径ARM\Packs\ARM\CMSIS\5.9.0\CMSIS
里面找到DSP文件夹
复制这个文件添加到工程文件的Drivers\CMSIS\路径里面,因为是用CubeMX生成的,所以在这个文件夹里面还有一个Include文件,每次生成代码的时候都会重新生成,直接删除它
2.
包含头文件库
添加宏ARM_MATH_LOOPUNROLL
添加头文件
#include "arm_math.h“
//如果编译报错,把编译器版本改成 version 6