2017-11-25 09:27 PM
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.2017-11-27 09:46 AM
or the same file under [STM32Cube_FW_F4_V1.xx]\Drivers\CMSIS\Lib\ARM\
2017-11-27 10:10 AM
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.
2017-11-27 12:02 PM
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
2017-11-27 01:09 PM
Cubing now, Jan?
2017-11-27 01:21 PM
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.
2017-11-27 01:39 PM
'course not. But you
https://community.st.com/0D50X00009XkVuPSAV
https://community.st.com/0D50X00009XkaB7SAJ
https://community.st.com/0D50X00009XkaCVSAZ
https://community.st.com/0D50X00009Xkf1XSAR
elsewhere.JW
[EDIT]
> the nectar
OH YES.
2017-11-28 01:50 AM
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 ...
2017-11-30 02:02 AM
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.