cancel
Showing results for 
Search instead for 
Did you mean: 

arm_math library source lacks some functions

DmitryR
Senior

Hello all,

 

I need to use some FFT functions. I have installed the CMSIS-DSP 1.16.2 and CMSIS 6.3 core as it was required from  CMSIS-DSP. Surprisingly, CubeMX did only a part of its job, namely it did not copy source files and did not add proper include paths to the project so I have to do it myself. But after this there is still a bunch of unresolved references, namely arm_cfft_sR_f32_lenxxx and twiddleCoef_rfft_xxx. I have looked all sources in the CubeMX H7 pack version 1.13.0 I use through but could not find these sources.

 

With best regards,

Dmitry 

3 REPLIES 3
Pavel A.
Super User

Hi,

The current CubeH7 library contains CMSIS DSP v. 1.10.0. The files you refer, arm_const_structs.c |h are here:

https://github.com/STMicroelectronics/STM32CubeH7/blob/master/Drivers/CMSIS/DSP/Source/CommonTables/arm_const_structs.c

https://github.com/STMicroelectronics/STM32CubeH7/blob/master/Drivers/CMSIS/DSP/Include/arm_const_structs.h

If you installed other version of CMSIS DSP, update the paths accordingly.

Note that these files are full of conditional #ifdef's , make sure that needed symbols are properly defined.

About the copying and include paths: the DSP library source contains cmake makefiles, and it seems that pre-building the library with cmake is now the recommended way, instead of directly including the whole pile of files into the application project. If you do so, you'll need only the high-level include paths and the .a files.

AI seems to know a lot about these libraries, it suggests how to configure the cmake to minimize flash usage, etc.

 

@Pavel A. 

 

thank you but may I please ask if I ultimately must use github to link CMSIS-DSP to my project? I am developing with STM32 about ten years already and during all this time CubeMX was enough. Now I have done it exactly as usual, just have linked CMSIS-DSP in the CubeMX. As you may see in the attached screenshot, the only available in CubeMX version of CMSIS-DSP is 1.16.2.

 

What was not usual is that most of the files were not copied. I have found a support topic for this case and it clearly states that I should in this case copy missing files from the CubeMX repository not from the github, and I find it logical. So if you are right it means that the support topic is wrong.

 

But what I see is that I really have different versions of files. The files that CubeMX has copied (includes) are version 1.10.0 while the files I have copied myself from the pack are version 1.9.0. Did you mean that it is an error in the H7 pack? 

 

One another thing that have surprised me that all these files in the H7 pack no matter version 1.9 or 1.10 are from the year 2021. It is already really old version and you are advising me to use CMSIS-DSP 1.10 instead of 1.16 which is obviously even older. I do not think it is really a good idea.

 

To your advice to use AI, precompiled libraries and so on. I am using STM32 mostly because of its quick success path with CubeMX. For small projects design time is vital and hardware quality and price are really not as the designing costs 90% of the whole project cost. If I needed to set up the project manually then this choice makes less sense. 

 

With best regards,

Dmitry

I ultimately must use github to link CMSIS-DSP to my project?

No, of course. The github links in my reply are only to show where the files are in the STM32CubeH7 package.

For H7 the CMSIS DSP is included in the main STM32CubeH7 package;  no need to install 1.16.2, unless you specifically want it.  Do you?

I don't advice for or against either version, but obviously it should be consistent - either all files from one version or from another. Version 1.10 has advantage of being integrated with the main CubeH7 library package. Newer is not always better, often what is available is ok.

It looks like CubeMX for H7 is confused by two versions of CMSIS DSP, maybe you can call it a bug. Even if so, realistically, waiting for a fix will take more time than other variants.