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-26 08:14 AM
Libraries\CMSIS\DSP_Lib\Source\TransformFunctions\arm_cfft_radix4_f32.c
Libraries\CMSIS\DSP_Lib\Source\TransformFunctions\arm_cfft_q15.c
Suggest you grep source to find functions which you are missing, then add source files to project when they are not within a library file.
2017-11-27 07:42 AM
Ok, thanks! I see your point. Going to try this. If something is wrong, I'll be back.
2017-11-27 07:45 AM
If I remember correctly, the DSP_Lib came with pre-compiled (linker) libs, usable for Keil. Not sure about the current version.
And you would need to select the proper lib version.
2017-11-27 07:53 AM
I believe there's information at the beginning of arm_math.h that may be helpful.
2017-11-27 09:22 AM
Well, I number of errors decreased to 2, and they are:
Fourier\Fourier.axf: Error: L6218E: Undefined symbol arm_bitreversal_32 (referred from arm_cfft_f32.o).
Fourier\Fourier.axf: Error: L6218E: Undefined symbol arm_bitreversal_16 (referred from arm_cfft_q15.o).These functions are defined in arm_cfft_f32.c and arm_cfft_q15.c respectively. It's a miracle but I don't see such functions in Functions tab. What should be done next?
2017-11-27 09:28 AM
H-m-m, I haven't heard about pre-compiled libs before. Where can I get them?
2017-11-27 09:29 AM
Drivers\CMSIS\DSP_Lib\Source\TransformFunctions\arm_bitreversal2.S
Drivers\CMSIS\DSP_Lib\Source\TransformFunctions\arm_bitreversal.c
Use Grep or your favourite file manager, Keil has Find-in-Files for things within the project, so you can see where used and where defined.
2017-11-27 09:38 AM
When first released the DSP Libraries had project and batch files, I created some makefiles for GNU/GCC and posted some prebuilt libraries.
Libraries are a collection of object files which the linker can cherry pick, you'd get the compiler to build all the individual source files, and then combine them with a librarian tool. You can do these thing using a classic understanding of Assemblers, Compilers, Linkers and Loaders, sort of stuff we learned in medieval times.
I think they stopped because there were a dozen ways to sunday to build them depending on the options/targets chosen, and so it made more sense for people to just built them themselves, or drop the prerequisite files into the project and let the linker do the dead code elimination as required.
2017-11-27 09:40 AM
STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Lib\ARM\arm_cortexM4bf_math.lib