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下载
打开 MDK Package Installer 。
选择 Packs ,找到 ARM:CMSIS-DSP ,点击 Install 。
将DSP库添加到ET6001工程
手动添加
将所需要的库文件添加到工程中。
添加DSP库头文件引用目录。
通过Pack Manager添加
点击MDK Mange Run-Time Environment。
添加CMSIS-DSP组件。
编译配置
开启硬件双精度浮点。
在应用代码中添加头文件 #include <arm_math.h> 。
如果是AC6编译器,开启 AC5-like Warnings 。
添加宏定义 ARM_MATH_LOOPUNROLL 。
备注
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) ;







