使用STM32CubeIDE为F750创建了一个.ioc文件。在我之前的项目中,我使用了arm_math版本与STM32F750一起使用没有问题,添加了__FPU_PRESENT并使用ARM_MATH_CM7,同时使用了HAL驱动程序。我没有链接任何库,编译成功且FFT工作正常。指令集为THumb2,浮点ABI为hard,单元为FPv5-D6。
不成功的情况:
使用STM32CubeIDE并为STM32L072cz创建了一个.ioc项目。包含相同的DSP CMSIS库来进行一些分析。除了没有FPU、FPU单元为软件以及使用ARM_MATH_CM0PLUS之外,其他设置完全相同。
在Release编译中,出现以下错误:
Error __SSAT already defined
在文件 ../Drivers/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_f32.c:41 中包含:
../Drivers/CMSIS/DSP_Lib/Include/arm_math.h:666:25: error: redefinition of '__SSAT'666 | static __INLINE q31_t __SSAT
在文件 ../Drivers/CMSIS/Include/cmsis_compiler.h:48 中包含,
来自 ../Drivers/CMSIS/Include/core_cm0plus.h:115,
来自 ../Drivers/CMSIS/DSP_Lib/Include/arm_math.h:311,
来自 ../Drivers/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_f32.c:41:../Drivers/CMSIS/Include/cmsis_gcc.h:1299:30: note: previous definition of '__SSAT' was here
1299 | __STATIC_FORCEINLINE int32_t __SSAT(int32_t val, uint32_t sat)
最后出现:
make: *** [Drivers/CMSIS/DSP_Lib/Source/TransformFunctions/subdir.mk:120: Drivers/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_f32.o] Error 1
在Debug编译中,出现额外的失败信息:
arm-none-eabi-gcc "../Drivers/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_init_q15.c" -mcpu=cortex-m0plus -std=gnu11 -g3 '-DDEBUG=1' '-DUSE_HAL_DRIVER=1' '-DSTM32L072xx=1' '-DREGION_EU868=1' '-DLoRa_Sensor_Node=1' '-DUSE_STM32L0XX_NUCLEO=1' '-DLOW_POWER_DISABLE=1' '-DARM_MATH_CM0PLUS=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/DSP_Lib/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_init_q15.d" -MT"Drivers/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_init_q15.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Drivers/CMSIS/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_init_q15.o"
|
|