软件库(资源库软件)


【点击查看】低成本上班族靠谱副业好项目 | 拼多多无货源创业7天起店爆单玩法

【点击查看】逆林创业记 | 拼多多电商店铺虚拟类项目新玩法(附完整词表&检测工具)

【点击查看】逆林创业记 | 小白ai写作一键生成爆文速成课

领300个信息差项目,见公众号【逆林创业记】(添加请备注:网站)

CMSIS-DSP 软件库使用指南

软件库

软件库

简介

CMSIS-DSP 软件库是一套用于基于 Cortex-M 和 Cortex-A 处理器的设备的通用计算处理函数。该库分为多个功能,每个功能涵盖一个特定类别,如:

该库通常具有单独的函数来对 8 位整数、16 位整数、32 位整数和 32 位浮点值进行操作。

将 CMSIS-DSP 库搭配具有 FPU 的处理器,将能够提升运算效率。Cortex-M4 内核便具有单精度浮点单元 (FPU),支持所有 Arm 单精度数据处理指令和所有数据类型。它还实现了全套 DSP(数字信号处理)指令和增强应用程序安全性的内存保护单元 (MPU)。

关于 CMSIS 的更多说明,请参考官方文档. 选择其中的 CMSIS-DSP 标签页 以查看 CMSIS-DSP 的相关信息。

请注意,CMSIS-DSP V1.10.1 及其之后的版本迁移至了独立的新仓库,新文档地址

软件包下载

基于 v1.14.2 的裁剪版本(推荐)

最新版本

使用说明主要版本差异

建议使用最新版本的 CMSIS-DSP 源码加入工程进行编译. 当前最新发布版本为

GitHub release (latest by date)

引入源码并配置 CMake

在我们提供的 中有以下内容:

CMake

1
2
3
4
5

# ########################## USER CONFIG SECTION ##############################
# set up proj
project(your_proj_name C CXX ASM) # TODO
set(CMSISDSP your_dsp_path) # if using DSP, modify your_dsp_path here
                            # e.g. set(CMSISDSP Drivers/CMSIS/DSP)

请在这里填写项目名称,以及工程根目录下所使用的 CMSIS-DSP 源码文件夹的相对路径。

例如你将 CMSIS-DSP 源码文件夹放在了 ./Drivers/CMSIS/ 目录下,且源码文件夹名为 CMSIS-DSP-1.14.2,那么请将 your_dsp_path 改为 Drivers/CMSIS/CMSIS-DSP-1.14.2

CMake

1
2
3
4
5

# ! rebuild or use command line `cmake .. -D` to switch option
# floating point settings
option(ENABLE_HARD_FP "enable hard floating point" OFF) # TODO
option(ENABLE_SOFT_FP "enable soft floating point" OFF) # TODO
option(USE_NEW_VERSION_DSP "DSP version >= 1.10.0" ON) # TODO

请在这里设置浮点选项。若使用具有 FPU 的处理器,将 ENABLE_HARD_FP 选项修改为 ON,删除 build 目录后重新编译;或在 build 目录下使用 cmake .. -DENABLE_HARD_FP=ON 配置命令行,启用浮点运算单元。

ENABLE_SOFT_FP 则用于兼容没有 FPU 的处理器。

然后选择是否使用 >= 1.10.0 版本的 CMSIS-DSP软件库,选项的修改方式与上文所述类似。新版本的文件包含路径、预编译指令将与老版本有所差异,就像这样:

CMake

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12

# add inc and src here  
include_directories(
  if(ENABLE_HARD_FP)
  if(USE_NEW_VERSION_DSP)
  ${CMSISDSP}/Include/dsp
  ${CMSISDSP}/Include
  ${CMSISDSP}/PrivateInclude
  else()
  ${CMSISDSP}/Include
  endif()
  endif()
)

以上一段配置是 CMSIS-DSP 需要的头文件包含路径,不需要改动。

CMake

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12

# !! Keep only sub folders required to build and use CMSIS-DSP Library.
# !! If DSP version >= 1.10, for all paths including DSP folders, plz add [^a] to filter DSP files.
# !! e.g. your_dsp_path = Drivers/CMSIS/DSP, use "Drivers/[^a]*.*" "${CMSISDSP}/[^a]*.*" 
file(GLOB_RECURSE SOURCES
  "Core/*.*"
  "Drivers/*.*"

  # "${CMSISDSP}/*.*" # uncomment this line when using DSP
  # TODO
)

# #############################################################################

最后需要注意的是源文件的选取。我们建议将软件包裁剪后加入工程,可使用上文提供的已裁剪版本,裁剪规则参考源码仓库的 README.md:

需要注意,对于这样裁剪得到的软件包,直接编译会有大量 WARNING,具体原因可参考 这条经验。因此,当添加 CMSIS-DSP 目录以及包含有 CMSIS-DSP 文件夹的父目录时,可以加上正则表达式 [^a] 来解决 WARNING.

例如你之前将 your_dsp_path 改为 Drivers/CMSIS/CMSIS-DSP-1.14.2,意味着 Drivers/ 是CMSIS-DSP 文件夹的父目录软件库,那么你可以这样筛选源文件:

CMake

1
2

 "Drivers/[^a]*.*"
 "${CMSISDSP}/[^a]*.*"

附录版本说明版本号发布日期说明贡献者

hh

2022.12.14

首次发布

薛东来

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站不拥有所有权,不承担相关法律责任。如发现有侵权/违规的内容, 联系QQ3361245237,本站将立刻清除。