Skip to main content
Associate III
November 13, 2025
Solved

How can I use FFT library with STM32L010K4T6 (Cortex-M0+) in STM32CubeIDE?

  • November 13, 2025
  • 3 replies
  • 281 views

Hi everyone,

I’m working with STM32L010K4T6, which is based on the ARM Cortex-M0+ core.
I’d like to use FFT (Fast Fourier Transform) functions in my project, preferably within STM32CubeIDE.

However, I noticed that the CMSIS-DSP library (which provides FFT functions) seems to have limited or no direct support for the L0 series inside CubeIDE.

My questions are:

  1. Is it possible to add and use the FFT / CMSIS-DSP library with STM32L0 series MCUs like STM32L010K4T6?

  2. If yes, what is the recommended way to integrate it in STM32CubeIDE (manual CMSIS-DSP source import, or any ready package)?

  3. Are there any performance or memory constraints I should be aware of when running FFT on Cortex-M0+?

Thank you in advance for any guidance!

Best regards,
Burak

Best answer by Imen.D

Hello @burak_Guzeller ,

I recommend you following these articles which may help you on how to integrate a library in an STM32CubeIDE project:

3 replies

Imen.DBest answer
Technical Moderator
November 13, 2025

Hello @burak_Guzeller ,

I recommend you following these articles which may help you on how to integrate a library in an STM32CubeIDE project:

"When your question is answered, please close this topic by clicking ""Accept as Solution"".ThanksImen"
Ozone
Principal
November 13, 2025

I don't use Cube, and cannot comment on that.

But previously, there had been a special version of the SPL firmware package that included the DSP-libraries.
This "STM32xxx_DSP_StdPerip_Lib" contained all the DSP examples coming with the CMSIS package, including FFT examples.
I have based quite a few of my applications on such examples.

> Are there any performance or memory constraints I should be aware of when running FFT on Cortex-M0+?

Consider what you want and need it for, real-time evaluation or offline calculations.
The M0/M0+ has no FPU, so using the "f32" data types would involve a painfully slow emulation, and a significant code size penalty.
Not to mention, a shorter pipeline, reduced instruction set compared to the M3/4, and usually lower core clock.
I would recommend the 16-bit or 32-bit fixed-point variants, 'q15' or 'q31'.

LCE
Principal II
November 13, 2025

> Ozone: ... and a significant code size penalty.

And this alone might be the show stopper, considering the L0's small flash size.

Ozone
Principal
November 13, 2025

Yes, although that depends on the MCU variant.
But the whole soft-fp emulation code is several kilobytes.

I had mostly been experimenting with the f32 variant for real-time transforms, on M4 variants with FPU.

Very much rests on the project requirements.

LCE
Principal II
November 13, 2025

Definitely.

But the OP is using a L010 with 16 kB, and I remember that I could (not?) barely get the typical HAL start-up / config into that flash size.