Skip to main content
Graduate II
December 30, 2025
Solved

Where are the CMSIS-DSP libraries for STM32U5A9J

  • December 30, 2025
  • 2 replies
  • 46 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?

    This topic has been closed for replies.
    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

    Super User
    December 30, 2025
    nico23Author
    Graduate II
    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?

    nico23AuthorAnswer
    Graduate II
    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)

    Explorer
    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
    Graduate II
    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