2021-07-13 01:24 AM
In the latest firmware for STM32F4 (STM32Cube_FW_F4_V1.26.1) the libarm_cortexM4lf_math.a file is 3025kB.
In the latest firmware for STM32L4 (STM32Cube_FW_L4_V1.17.0) the libarm_cortexM4lf_math.a file is 5235kB.
I found that in the version for STM32L4 arm_rfft_fast_init_f32() returns an error if the FFT length is 128, whereas the version for STM32F4 does not. So I replaced the STM32L4 version with the STM32F4 version, and it seems to work fine.
I'm confused:
Why there are different version for F4 and L4 in the first place?
And is it safe to use the F4 version with a L4 MCU?
And where would I report that bug with the 128 point FFT?
Solved! Go to Solution.
2021-07-13 06:58 AM
Okay, thank you.
It appears to be a bug in CMSIS 5.6.0 which has already been reported and fixed in newer versions.
https://github.com/ARM-software/CMSIS_5/issues/658
STM32Cube_FW_F4_V1.26.1 still uses CMSIS 5.4.0 which does not have that bug, either.
2021-07-13 06:47 AM
Two folder levels above the math libs you will find e.g. a README.md containing information about CMSIS. STMicroelectronics uses this CMSIS library as is from ARM, so any bug report should be reported to ARM.
Both families use the same Cortex-M4 core, so you can safely use the F4 lib for the L4.
Good luck!
/Peter
2021-07-13 06:58 AM
Okay, thank you.
It appears to be a bug in CMSIS 5.6.0 which has already been reported and fixed in newer versions.
https://github.com/ARM-software/CMSIS_5/issues/658
STM32Cube_FW_F4_V1.26.1 still uses CMSIS 5.4.0 which does not have that bug, either.