【发布时间】:2022-01-07 20:06:59
【问题描述】:
我正在尝试关注these steps,以便在我的项目中使用 FFT,但我关注的每个教程都不断给我同样的错误region 'FLASH' overflowed by 49836 bytes。
我知道我正在使用的微控制器的内存中没有足够的空间来保存所有库(因为它充满了表格以加快数学运算速度)但是 ST 不会提供本机是没有意义的Cortex M3 微控制器的信号处理方式。
我想要一种使用此微控制器进行 FFT 的有效方法。即使是 Arduinos 也可以做到这一点,但有其自身的局限性。
微控制器规格: STM32F103C8(板子是BluePill),64KB Flash,20KB RAM。
【问题讨论】:
-
本教程适用于拥有 1MB(实际上是 2MB 在两个 bank)FLASH 的 micro。 ST宁愿不认为有人会用STMF1做任何DSP。您需要使用其他 DSP 库或自己编写函数(或修改现有函数以适应您的硬件)。第一步 - 减少表格大小并使用数学插值之间的值。
-
CMSIS 与代码效率无关,甚至与任何特定设备无关。同样,尽管存在高级库,但人们并不期望 DSP 代码适合单片机。我认为这里的问题是期望而不是图书馆。
-
不要忘记 Cortex M3 没有浮点单元 (FPU)。所以当你使用浮点数时,它用软件模拟会占用更多的内存并使用更多的处理能力。所以不要使用带有浮点库的 Cortex M3 设备。
-
感谢您的解释!在搜索并尝试了许多库之后,我设法找到了一个满足我的要求并且不需要像 ARM CMSIS 那样多的内存。
标签: arm signal-processing stm32 cortex-m cmsis