Skip to main content
Senior III
December 30, 2025
Solved

Where are the CMSIS-DSP libraries for STM32U5A9J

  • December 30, 2025
  • 2 replies
  • 463 views

So I have a board which I'm correctly using with threadX and TouchGFX.

I want to implement a function that calculates the FFT of a signal, but I'm having a hard time finding the CMSIS-DSP libraries.

I need to include the classic math library for ARM

#include "arm_math.h"
#include "arm_const_structs.h"

But in cubeMX I'm finding various DSP libraries

nico23_0-1767100107311.png

nico23_1-1767100139885.png

what should I use?

Best answer by nico23

Ok, so the issue has been fixed following this https://community.st.com/t5/stm32-mcus-embedded-software/quot-first-defined-here-quot-error-with-cmsis-dsp-1-15/td-p/601583

But I still don't understand what the difference is between the <library>.c and <library>F16.c (I think the F16 executes operations on 16bit floats and not 32bit floats)

2 replies

Andrew Neil
Super User
December 30, 2025
A complex system that works is invariably found to have evolved from a simple system that worked.A complex system designed from scratch never works and cannot be patched up to make it work.
nico23Author
Senior III
January 5, 2026

AHai @Andrew Neil 

This helped a lot, thanks! The only thing that seems not to be explained is why I'm seeing a series of error "multiple definition of" "first defined here"

<my_project>/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_q15.c:318: multiple definition of `arm_biquad_cascade_df1_q15'; ./Drivers/DSP/Source/FilteringFunctions/FilteringFunctions.o:<my_project>/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_q15.c:318: first defined here

 Which one was I supposed to keep?

nico23AuthorBest answer
Senior III
January 5, 2026

Ok, so the issue has been fixed following this https://community.st.com/t5/stm32-mcus-embedded-software/quot-first-defined-here-quot-error-with-cmsis-dsp-1-15/td-p/601583

But I still don't understand what the difference is between the <library>.c and <library>F16.c (I think the F16 executes operations on 16bit floats and not 32bit floats)

Ozone
Principal
January 5, 2026

> But I still don't understand what the difference is between the <library>.c and <library>F16.c (I think the F16 executes operations on 16bit floats and not 32bit floats)

Did you mean "Q15" here ? https://en.wikipedia.org/wiki/Q_(number_format)

The CMSIS libraries support this format for years now.
At least in the DSP Lib version I have (F0..F7), those source files are still named *q15.c and *q15.h.

nico23Author
Senior III
January 5, 2026

No, I mean *F16.c

For instance, I'm seeing the file SupportFunctions.c and SupportFunctionsF16.c.

Deleting the SupportFunctions.c (and all the other .c without the F16) made the errors disappear