cancel
Showing results for 
Search instead for 
Did you mean: 

STM32CubeMX 5.5 does not generate CMSIS DSP files

leonardo
Associate III

I've created a STM32CubeMX project for stm32f411re uC and try to add CMSIS DSP suppor. I go to "Aditional Software" -> ARM.CMSIS and check CORE 5.3.0 and DSP 1.7.0. Into DSP I chose Source. CubeMX download the CMSIS package into STM32Cube/Repository/Packs/ARM/CMSIS.

Then I generate the project and imported into SystemWorkbech IDE.

I've try to add #include "arm_match.h" and I get file not found error. In the project tree is not references to CMSIS DSP libraries...

16 REPLIES 16
ASerr.1
Associate

Same problem here, a clear answer from technical support would be appreciated..

AlexO
Associate

I ran into the same issue. In the 'Additional Software' dialog I get a unresolved dependency (CMSIS DSP requires CMSIS CORE, which is included).

Has anyone a workaround? Does it help to simply copy the folder to the project?

noname
Associate II

I have the same issues. Maybe someone has managed to get a workaround for this?

noname
Associate II

All right, here is what I have done to resolve the issue.

First of all the files are indeed missing. I've downloaded CMSIS 5.6.0 from github (5.7.0 is currently broken for CubeIDE and CubeMX, see https://github.com/ARM-software/CMSIS_5/issues/900). Open the project folder and navigate to Middlewared/Third_Party/ARM_CMSIS/CMSIS/DSP/Source. Now copy the *.c files from the downloaded library (CMSIS/DSP/Source/**/*.c) into the folder you've just opened. Make sure to copy only files starting from arm_*.c. Each folder under DSP in the project will contain a file with the name [NameOfTheFolder].c generated by CubeMX. For example BasicMathFunction.c. Open all files of that kind an comment out all the includes of *.c files. They are no longer needed since the files are added explicitly, otherwise you'll get multiple definition errors. TransformFunctions folder will contain a file with *.s extension. Either leave the C version of it or the assembler one, otherwise you'll again get the multiple definition error. You will also need to copy over two header files from the downloaded CMSIS library into the include directory under Middlewared/Third_Party/ARM_CMSIS/CMSIS/DSP/Include - arm_common_tables.h and arm_const_structs.h. After that the project should compile without errors.

From the above it seems like additional software feature is broken in CubeMX. So basically I had to do everything manually. Hope this helps.

ADunc.1
Senior

This problem is still present. When selecting Source for CMSIS DSP, the same missing files are observed as previously mentioned. When selecting Library for CMSIS DSP, the library is not added to the project, or the linker options.

Even more strange! When an entirely LL driver project (No HAL at all) enables CMSIS DSP (and Core), HAL GPIO source is automatically included in the project which prevents it from building as it does not include other HAL header files. It should not include HAL at all. Turn CMSIS DSP off and HAL GPIO goes away...

TSarr.1
Associate

I got the same problem too....

JLojo
Associate III

Same problem here!

Seems to be solve by removing the double '/' in the include path for CMSIS in the project properties...

At least it compiles! Let's see if it works!!!

JYL