我正在尝试在 STM32 F411RE 板上实现 DSP 的使用,但我似乎无法在不调用大量错误的情况下包含必要的文件。
背景
我以前在 Keil uVision 中使用过 CMSIS 和 CMSIS-DSP,但考虑到 32k 的代码限制,我很快就超过了评估限制。因此,我一直在尝试将 CMSIS-DSP 包含到 Atollic TrueStudio 中,但这似乎很难实现:CMSIS-DSP 上可用的文档有限,在 Atollic TrueStudio 中实现的文档更少。
一些相关资源可以在 Atollic TrueStudio 用户指南 以及 StackOverflow 主题 #1 和 StackOverflow 主题 #2中找到 。我能找到的大多数其他相关主题只是参考 Keil uVision 或用户指南的使用,而没有更多帮助。
Atollic TrueStudio 确实包含一个内置的包管理器,其中基本 CMSIS 可供下载,但它不为 CMSIS-DSP 包提供此选项。
尝试的解决方案
我曾尝试手动下载对应的CMSIS包(STM32Cube_FW_F4_V1.24.0),并将对应的DSP包放入工程文件结构中。然后,这允许使用 DSP 功能,例如
#include arm_math.h
也arm_rfft_fast_instance_f32 S;
可以通过使用自动完成功能来调用,并因此被 IDE 识别。
然而,这个过程也会引发很多错误,因为包含的函数无法识别它们的头依赖关系(例如#include arm_math.h
)。我发现 main.c 能够识别该#include arm_math.h
命令但包含的功能却不是,但我仍然尝试通过将 CMSIS DSP 添加到包含的目录来解决这个问题(在“构建属性-> C/C++”中找到构建 --> 设置 --> 工具设置 --> C 编译器 --> 目录`)。然而,这也不能解决手头的问题。
代码结果
该函数找不到标题
但是主要可以找到完全相同的标题
并且标头包含在构建选项 -> 目录中
刚刚验证它也包含在“路径和符号”中,一旦将其包含在构建选项中,它应该自动执行 AFAIK:
更新
自从我的 OP 以来,我取得了一些进展,主要是通过弄乱包含、符号和链接器。我现在已经设法克服了最初的错误(尽管不幸的是我不知道如何),但是我现在已经为 startup_stm32 文件产生了大量额外的错误。
这些似乎都是涉及 CMSIS 中包含的模板文件(CMSIS / Device / ST / STM32F4xx / Source / Templates / ARM / ...)的错误指令错误,无法解释这些模板中列出的各种命令。
示例错误:bad instruction __heap_base