GD32F470 MDK AC DSP库移植流程

前言

花费了将近大半天的时间,故简单记录一下,避免自己忘记,还未经更多的测试,所以仅供参考。

由于CMSIS的更新,在CMSIS v5.7.0版本之后,CMSIS-DSP 中已不再提供编译好的 lib文件。并且GitHub CMSIS仓库中的DSP部分已经独立出新的仓库,可以自行下载DSP库最新的版本,而不必在MDK安装目录下的ARM/CMSIS中进行复制,CMSIS-DSP仓库地址。

移植过程中,最关键的问题是GD32提供的CMSIS接口文件版本比较早,与目前CMSIS-DSP库不匹配。即下图所示,其中主要是core_cm4.h这个文件,如果不移植CMSIS v5.9.0中的版本,DSP库无法移植成功。

GD32F470 MDK AC DSP库移植流程_第1张图片

其次,是要注意下图中的2个头文件文件都需要移植,源文件当然也是必须的。

GD32F470 MDK AC DSP库移植流程_第2张图片

下面简述一下步骤。

1、搭建GD32F470 MDK AC6工程

这里没什么好说的,每个人的风格不同,参考GD32官方的移植就行。

2、启用浮点运算

如何CHECK浮点是否开启,可以自行搜索一下,笔者是通过DEBUG查看寄存器值和查看代码中的宏有没有定义操作的。

GD32F470 MDK AC DSP库移植流程_第3张图片

3、配置全局宏定义

外设库相关: USE_STDPERIPH_DRIVER,GD32F470,

DSP库相关: ARM_MATH_CM4,ARM_MATH_MATRIX_CHECK,ARM_MATH_ROUNDING,ARM_MATH_LOOPUNROLL

这里的含义可以参考安富莱DSP教程中的移植说明,感谢下开源的教程,下载地址。

推荐Warnings选项选择AC5-like

GD32F470 MDK AC DSP库移植流程_第4张图片

4、移植CMSIS和CMSIS-DSP库代码,添加源文件和头文件路径

GD32F470 MDK AC DSP库移植流程_第5张图片

首先是更新core_cm4.h和其他相关文件,找到自己工程下存放CMSIS库的目录。

GD32F470 MDK AC DSP库移植流程_第6张图片

更新后如下图。

GD32F470 MDK AC DSP库移植流程_第7张图片

其次是DSP的库文件,包括下图中的三个文件夹。

GD32F470 MDK AC DSP库移植流程_第8张图片

MDK中添加源文件,要注意一下添加每个库中的主要源文件即可,文件内已经include其他相关源文件。

GD32F470 MDK AC DSP库移植流程_第9张图片

这里有个笔者疑惑的地方,F16的版本是什么意思,截至目前还未去了解,主要还是还是在进行库的移植测试。有了解的同学可以评论或者私信告诉我,谢谢。

GD32F470 MDK AC DSP库移植流程_第10张图片

接下来是添加头文件路径。

5、编译工程,测试DSP库

首先包含头文件,笔者对比测试下二者有什么精度差异

GD32F470 MDK AC DSP库移植流程_第11张图片

GD32F470 MDK AC DSP库移植流程_第12张图片

差别好像不是很明显,后续慢慢学习库的使用吧。

你可能感兴趣的:(驱动开发,c语言,单片机)