I am working on some sketches using FFT.
Even though my code is working I can not get the makefile to work.
From the error I got, I need to add arm_cfft_radix4_f32
and arm_cmplx_mag_f32
functions to the linker.
my makefile looks like this right now
Project Name
TARGET = simpleFFT
Sources
CPP_SOURCES = simpleFFT.cpp
Library Locations
LIBDAISY_DIR = …/…/libdaisy
DAISYSP_DIR = …/…/DaisySP
Core location, and generic makefile.
SYSTEM_FILES_DIR = $(LIBDAISY_DIR)/core
include $(SYSTEM_FILES_DIR)/Makefile
Compiler Flags
CFLAGS += -I$(LIBDAISY_DIR)/Drivers/CMSIS/DSP/Include
Linker Flags
LDFLAGS += -L$(LIBDAISY_DIR)/Drivers/CMSIS/DSP/Lib
LDFLAGS += -l arm_cmsis_dsp
all: $(TARGET).bin
and here is the error i am getting
make
arm-none-eabi-gcc -c -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -DUSE_HAL_DRIVER -DSTM32H750xx -DHSE_VALUE=16000000 -DCORE_CM7 -DSTM32H750IB -DARM_MATH_CM7 -DUSE_FULL_LL_DRIVER -include stm32h7xx.h -I…/…/libdaisy -I…/…/libdaisy/src/ -I…/…/libdaisy/src/sys -I…/…/libdaisy/src/usbd -I…/…/libdaisy/src/usbh -I…/…/libdaisy/Drivers/CMSIS/Include/ -I…/…/libdaisy/Drivers/CMSIS/DSP/Include -I…/…/libdaisy/Drivers/CMSIS/Device/ST/STM32H7xx/Include -I…/…/libdaisy/Drivers/STM32H7xx_HAL_Driver/Inc/ -I…/…/libdaisy/Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I…/…/libdaisy/Middlewares/ST/STM32_USB_Host_Library/Core/Inc -I…/…/libdaisy/Middlewares/ST/STM32_USB_Host_Library/Class/MSC/Inc -I…/…/libdaisy/core/ -I…/…/DaisySP/Source -I…/…/libdaisy/Middlewares/Third_Party/FatFs/src -O2 -Wall -Wno-missing-attributes -fasm -fdata-sections -ffunction-sections -Wno-stringop-overflow -g -ggdb -MMD -MP -MF"build/startup_stm32h750xx.d" -I…/…/libdaisy/Drivers/CMSIS/DSP/Include -std=gnu11 -Wa,-a,-ad,-alms=build/startup_stm32h750xx.lst …/…/libdaisy/core/startup_stm32h750xx.c -o build/startup_stm32h750xx.o
arm-none-eabi-g++ -c -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -DUSE_HAL_DRIVER -DSTM32H750xx -DHSE_VALUE=16000000 -DCORE_CM7 -DSTM32H750IB -DARM_MATH_CM7 -DUSE_FULL_LL_DRIVER -include stm32h7xx.h -I…/…/libdaisy -I…/…/libdaisy/src/ -I…/…/libdaisy/src/sys -I…/…/libdaisy/src/usbd -I…/…/libdaisy/src/usbh -I…/…/libdaisy/Drivers/CMSIS/Include/ -I…/…/libdaisy/Drivers/CMSIS/DSP/Include -I…/…/libdaisy/Drivers/CMSIS/Device/ST/STM32H7xx/Include -I…/…/libdaisy/Drivers/STM32H7xx_HAL_Driver/Inc/ -I…/…/libdaisy/Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I…/…/libdaisy/Middlewares/ST/STM32_USB_Host_Library/Core/Inc -I…/…/libdaisy/Middlewares/ST/STM32_USB_Host_Library/Class/MSC/Inc -I…/…/libdaisy/core/ -I…/…/DaisySP/Source -I…/…/libdaisy/Middlewares/Third_Party/FatFs/src -O2 -Wall -Wno-missing-attributes -fasm -fdata-sections -ffunction-sections -Wno-stringop-overflow -g -ggdb -MMD -MP -MF"build/simpleFFT.d" -I…/…/libdaisy/Drivers/CMSIS/DSP/Include -fno-exceptions -fasm -finline -finline-functions-called-once -fshort-enums -fno-move-loop-invariants -fno-unwind-tables -Wno-register -std=gnu++14 -Wa,-a,-ad,-alms=build/simpleFFT.lst simpleFFT.cpp -o build/simpleFFT.o
simpleFFT.cpp:21:27: warning: ‘fft_out’ defined but not used [-Wunused-variable]
21 | static float fft_out[FFT_SIZE];
| ^~~~~~~
arm-none-eabi-g++ build/startup_stm32h750xx.o build/simpleFFT.o -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard --specs=nano.specs --specs=nosys.specs -T…/…/libdaisy/core/STM32H750IB_flash.lds -L…/…/libdaisy/build -L …/…/DaisySP/build -ldaisy -lc -lm -lnosys -ldaisysp -Wl,-Map=build/simpleFFT.map,–cref -Wl,–gc-sections -Wl,–print-memory-usage -L…/…/libdaisy/Drivers/CMSIS/DSP/Lib -l arm_cmsis_dsp -o build/simpleFFT.elf
/Applications/ARM/bin/…/lib/gcc/arm-none-eabi/10.3.1/…/…/…/…/arm-none-eabi/bin/ld: cannot find -larm_cmsis_dsp
collect2: error: ld returned 1 exit status
make: *** [build/simpleFFT.elf] Error 1
thanks!