为什么FFT功能只能通过MCU GCC编译器(STM32CubeIDE)的Preprocessor激活?
Why the FFT function can only be activated through the Preprocessor of MCU GCC Compiler (STM32CubeIDE)?
很多网站都介绍过,如果我们要激活STM32板子的FFT/FPU,那么我们要激活:
__FPU_USED=1; __FPU_PRESENT=1; ARM_MATH_CMx.
我没有在 MCU GCC 编译器的预处理器(100% 有效)中输入这些词,而是尝试在我的 main.h 文件中添加这 3 行:
#define __FPU_USED=1
#define __FPU_PRESENT=1
#define ARM_MATH_CMx
但是,如果是这样,那是行不通的。 IDE会反馈很多问题,例如:
"error: unknown type name 'uint32_t'; did you mean 'uint32_t'?" 在 DSP 文件中。
我理解"the DSP files are not connected to my main files now"等问题。
这是我的问题:
如果我坚持在我的文件系统中declare/define这3行,而不是在我的STM32CubeIDE的预处理器中,我该怎么办?
提前谢谢了。
If I insist to declare/define these 3 lines in my file system, not in the Preprocessor of my STM32CubeIDE, what should I do?
要获得与使用编译器命令行选项定义宏相同的效果,您应该在 all 的 first 行定义它们] 编译中使用的 C 和汇编源文件。
Why the FFT function can only be activated through the Preprocessor of MCU GCC Compiler (STM32CubeIDE)?
这个问题失去了意义,因为如上所述,还有另一种(非常不切实际的)方式。
这些宏被 system_stm32xxxx.c 文件使用,它检查是否启用数学协处理器。问题是该文件(xxxx
取决于您的 uC 模型)不包含 main.h
.
您可以编辑它添加 #include "main.h"
行。那么你可以这样设置
很多网站都介绍过,如果我们要激活STM32板子的FFT/FPU,那么我们要激活:
__FPU_USED=1; __FPU_PRESENT=1; ARM_MATH_CMx.
我没有在 MCU GCC 编译器的预处理器(100% 有效)中输入这些词,而是尝试在我的 main.h 文件中添加这 3 行:
#define __FPU_USED=1
#define __FPU_PRESENT=1
#define ARM_MATH_CMx
但是,如果是这样,那是行不通的。 IDE会反馈很多问题,例如:
"error: unknown type name 'uint32_t'; did you mean 'uint32_t'?" 在 DSP 文件中。
我理解"the DSP files are not connected to my main files now"等问题。
这是我的问题:
如果我坚持在我的文件系统中declare/define这3行,而不是在我的STM32CubeIDE的预处理器中,我该怎么办? 提前谢谢了。
If I insist to declare/define these 3 lines in my file system, not in the Preprocessor of my STM32CubeIDE, what should I do?
要获得与使用编译器命令行选项定义宏相同的效果,您应该在 all 的 first 行定义它们] 编译中使用的 C 和汇编源文件。
Why the FFT function can only be activated through the Preprocessor of MCU GCC Compiler (STM32CubeIDE)?
这个问题失去了意义,因为如上所述,还有另一种(非常不切实际的)方式。
这些宏被 system_stm32xxxx.c 文件使用,它检查是否启用数学协处理器。问题是该文件(xxxx
取决于您的 uC 模型)不包含 main.h
.
您可以编辑它添加 #include "main.h"
行。那么你可以这样设置