cancel
Showing results for 
Search instead for 
Did you mean: 

Problems with DSP(Fourier transform)

Ann Darkhanova
Associate II
Posted on November 26, 2017 at 06:27

Dear Community,

I'm new to programming and STM32 microconrollers, though, I have to perform FFT of 50Hz voltage.

Well, after defining my core by

ARM_MATH_CM7 in arm_math.h

, I get error messages like:

Fourier\Fourier.axf: Error: L6218E: Undefined symbol arm_radix4_butterfly_f32 (referred from arm_rfft_fo).

Fourier\Fourier.axf: Error: L6218E: Undefined symbol arm_radix4_butterfly_inverse_f32 (referred from arm_rfft_fo).

Fourier\Fourier.axf: Error: L6218E: Undefined symbol arm_cfft_radix4_init_f32 (referred from arm_rfft_init_fo)

Fourier\Fourier.axf: Error: L6218E: Undefined symbol arm_cfft_sR_q15_len128 (referred from arm_rfft_init_qo).

...

Fourier\Fourier.axf: Error: L6218E: Undefined symbol arm_cfft_q15 (referred from arm_rfft_qo).

Fourier\Fourier.axf: Error: L6218E: Undefined symbol arm_cfft_q31 (referred from arm_rfft_qo).

Not enough information to list image symbols.

Not enough information to list load addresses in the image map.

Could you explain what is needed to be fixed?

I use CubeMX+Keil uVision+STM32F746NG.

Hope to hear from you soon, guys.

Ann.

Note: this post was migrated and contained many threaded conversations, some content may be missing.
17 REPLIES 17
Posted on November 27, 2017 at 17:46

or the same file under [STM32Cube_FW_F4_V1.xx]\Drivers\CMSIS\Lib\ARM\

Posted on November 27, 2017 at 18:10

Yes, I understand your explanations. However, I can't get it why I see such errors in Build Output. I have arm_bitreversal.c in my project, whereas I have not the assembly file in DSP folder at all. Suppose it depends on the version of DSP lib.

Posted on November 27, 2017 at 20:02

The linker tells you when you don't provide bodies for the functions you call, it can't get closure

For the H7 install I have to hand

\Repository\STM32Cube_FW_H7_V1.1.0\Drivers\CMSIS\DSP\Source\TransformFunctions\arm_bitreversal2.S

Make sure you select the right file filter so the window shows you the files, not going to show .S with *.C,*.H filter...

Precompiled libraries

\Repository\STM32Cube_FW_H7_V1.1.0\Drivers\CMSIS\Lib\ARM\arm_cortexM7*.lib

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Posted on November 27, 2017 at 21:09

Cubing now, Jan? 

Posted on November 27, 2017 at 21:21

Not sure there is a choice, we extract the nectar and discard the bloat, and there's plenty of that in 1.5GB download. The HAL and defines aren't exactly provided in a small manageable form any longer.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Posted on November 28, 2017 at 09:50

Last time I messed with DSP_Lib and FFT about 3 years ago, when the SPL was still prevailing.

The link libraries (*.lib for Keil, *.a for GCC) were part of the DSP package downloaded from ST. I could not use them, so I switched to the sources as well.

As said, not sure if the latest packages still contain pre-compiled libs. Just search for *.lib in the DSP_Lib sub-directory. There should be several version then, at least one for soft, softfp and hard float ABI.

For later projects involving audio and FFT, I switched to Linux, fftw and GTK ...

Stefan Stenzel
Associate
Posted on November 30, 2017 at 11:02

There might be a faster and simpler alternative to using the CMSIS supplied FFT routines:

https://github.com/Stenzel/FFT4CM4F

Have not yet tried on a Cortex-M7 though.

Disclaimer: I made this.