2024-07-29 01:19 AM
Hi,
My board is a STM32F469I-DISCO, which has a FPU (FPv4-SP-D16), and the IDE I am using is STM32CubeIDE 1.0.2. I would like to use libraries (.a files) with different floating-point ABI in the same project.
I downloaded STM32Cube Expansion Package X-CUBE-AUDIO V1.1.1 from the ST website and I flashed two projects to my board that work fine.
One is MP3-STM32F469I-DISCO and the other one is BIQ-STM32F469I-DISCO. By default, I saw in "Properties > C/C++ build > Settings > Tool Settings > MCU Settings" that the first one has 'Mix HW/SW Implementation' (-mfloat-abi=softfp) as floating-point ABI and the second one has 'Hardware implementation' (-mfloat-abi=hard) as floating-point ABI.
I want to 'merge' these two projects so I need to use libraries from both projects. The only library I need from the second project is 'BIQ_CM4_GCC.a' and, among others, I need 'lib_mp3encoder_cortex_m4_v2.2.0.a' from the first one.
When I try to compile a project that uses libraries from projects with different floating-point ABI, I get this error from the compiler: "...Uses VFP register arguments, XXX does not".
Also, I tried to compile with different floating-point ABI (Mix HW/SW Implementation, Hardware Implementation, Software implementation) and I got the same error.
In the package, there is a 32-bit version of the 'BIQ_CM4_GCC.a' which is 'BIQ_32b_CM4_GCC.a' but I still get the same error when trying to use this one.
How could I fix that ?
2024-07-29 01:26 AM
Hi,
afaik only way : to use all pre-compiled libraries with same settings (hard- or software FP ) .
Or find the lib as source, then can compile with your settings matching the other.