软件库(资源库软件)
【点击查看】低成本上班族靠谱副业好项目 | 拼多多无货源创业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 源码加入工程进行编译. 当前最新发布版本为
引入源码并配置 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]*.*"
附录版本说明版本号发布日期说明贡献者
2022.12.14
首次发布
薛东来
文章评论(0)