cancel
Showing results for 
Search instead for 
Did you mean: 

CMSIS pack DSP libraries aren't being stitched into projects

STM32CubeIDE 1.14.0

STM32H563ZI Nucleo board

In <Software Packs> <Manage Software Packs><ARM> install CMSIS 5.6.0

In <Software Packs><Select Components> and select <CMSIS DSP> 1.7.0 <Library> and hit OK

So, this should do "The Right Thing", except it doesn't actually pull the proper .lib or .a or ??? out of the pack and stitch it into the project in <Drivers><CMSIS><should be Library>. Bummer.

For this processor there are 5 candidate libraries available, all I know is that I have a arm8m, so:

 

 

arm_ARMv8MBLl_math.lib
arm_ARMv8MMLl_math.lib
arm_ARMv8MMLld_math.lib
arm_ARMv8MMLldfsp_math.lib
arm_ARMv8MMLlfsp_math.lib

 

 

 Any chance that, in the future, the .lib or .a file be copied into the project and the appropriate gcc flags get thrown to find the file?

In the mean time, any idea which .lib/.a file is appropriate for an H563?

 

Thanks,

Andrei (from The Great White North)

2 REPLIES 2
Piranha
Chief II

Most likely:

  • d - debug
  • fsp - floating point single precision

Take a note that CMSIS 5.8.0 removed the pre-built DSP libraries, therefore in the "future" there are no .lib/.a files at all. In addition the recently released CMSIS 6.0.0 moved the CMSIS-DSP into a separate library.

After a bunch of experimentation, when using STM32CubeIDE, you/I should use the .a files. 

In the library names:

The processor is an ARMv8M.

There is one character (B|M) which indicates if you are using a baseline or mainline processor with no indication of what those terms mean.

No indication what the next 'L' means. Maybe BL and ML, for BaseLine and MainLine?

The small 'l' (el) means little endian. There are other libraries that use 'b' for big endian.

Apparently the 'd' character means DSP, and fsp does mean floating point single precision.

Any comments from ARM or ST with some information beyond conjecture?

Thanks,

Andrei