CMSIS-DSP库移植指南

文档编号:AN0001

序号

版本

修改日期

修改说明

1

1.0

2023/09/15

初始发布

CMSIS-DSP介绍

CMSIS-DSP软件库是一套针对基于Cortex-M处理器的通用数字信号处理功能库。代码已针对使用Cortex-M4/M7处理器的扩展DSP指令集进行了专门优化。该库分为多个功能,每个功能都包含一系列API接口。如:

  • 基本数学函数

  • 快速数学函数

  • 复杂的数学函数

  • 滤波器函数

  • 矩阵函数

  • 变换函数

  • 电机控制函数

  • 统计功能

  • 支持功能

  • 插值函数

  • 支持向量机函数 (SVM)

  • 贝叶斯分类器函数

  • 距离函数

  • 四元数函数

同时该库支持浮点运算,也支持定点运算。

官网介绍如下: https://arm-software.github.io/CMSIS_5/latest/DSP/html/index.html

软件包获取

通过官网下载

早期DSP软件包可以在ARM官网下载,目前已经在GitHub上单独维护。

下载网址为: https://github.com/ARM-software/CMSIS-DSP , 目前使用的最新版本为1.15.0。

通过MDK IDE下载

  1. 打开 MDK Package Installer

AN0001008

  1. 选择 Packs ,找到 ARM:CMSIS-DSP ,点击 Install

AN0001009

将DSP库添加到ET6001工程

手动添加

  1. 将所需要的库文件添加到工程中。

AN0001010

  1. 添加DSP库头文件引用目录。

AN0001011

通过Pack Manager添加

  1. 点击MDK Mange Run-Time Environment

AN0001012

  1. 添加CMSIS-DSP组件。

AN0001013

编译配置

  1. 开启硬件双精度浮点。

AN0001014

  1. 在应用代码中添加头文件 #include <arm_math.h>

  2. 如果是AC6编译器,开启 AC5-like Warnings

AN0001015

  1. 添加宏定义 ARM_MATH_LOOPUNROLL

AN0001011

备注

ET6001 SDK默认会使能FPU,所以不需要额外操作。

使用

FastMathFunctions 使用为例,该函数集提供了三角函数 sine/cosine/sqrt/atan2 浮点,定点q15,定点q31的运算。

以sine函数为例,该函数原型为: float32_t arm_sin_f32(float32_t x) ,注意输入参数x是弧度制即可,也就是说sine函数的一个周期对应于弧度[ 0 ~ 2*PI)。

Float res = arm_sin_f32(3.141593f) ;