feat(FFT): добавлено FFT, выделение основной частоты

This commit is contained in:
2025-12-26 00:13:57 +03:00
parent 063cced2a5
commit 97c59cdda2
9 changed files with 291 additions and 83 deletions

View File

@@ -1,15 +1,15 @@
TARGET = stm32-usb-freertos
BUILD_DIR = Build
# --- Исходники ---
# 1. Приложение
# Приложение
C_SOURCES = \
App/Src/main.c \
App/Src/audio_adc.c \
App/Src/audio_processor.c \
App/Src/usb_descriptors.c \
App/Src/system_stm32f1xx.c \
# 2. FreeRTOS
# FreeRTOS
C_SOURCES += \
Middlewares/FreeRTOS/croutine.c \
Middlewares/FreeRTOS/event_groups.c \
@@ -20,7 +20,7 @@ Middlewares/FreeRTOS/timers.c \
Middlewares/FreeRTOS/portable/GCC/ARM_CM3/port.c \
Middlewares/FreeRTOS/portable/MemMang/heap_4.c
# 3. TinyUSB
# TinyUSB
C_SOURCES += \
Middlewares/TinyUSB/src/tusb.c \
Middlewares/TinyUSB/src/common/tusb_fifo.c \
@@ -29,7 +29,23 @@ Middlewares/TinyUSB/src/device/usbd_control.c \
Middlewares/TinyUSB/src/class/cdc/cdc_device.c \
Middlewares/TinyUSB/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c
# 4. Startup
# CMSIS-DSP sources
C_SOURCES += \
$(CMSIS_DSP)/Source/TransformFunctions/arm_cfft_radix8_f32.c \
$(CMSIS_DSP)/Source/TransformFunctions/arm_bitreversal2.c \
$(CMSIS_DSP)/Source/TransformFunctions/arm_rfft_fast_f32.c \
$(CMSIS_DSP)/Source/TransformFunctions/arm_rfft_fast_init_f32.c \
$(CMSIS_DSP)/Source/TransformFunctions/arm_cfft_f32.c \
$(CMSIS_DSP)/Source/TransformFunctions/arm_cfft_init_f32.c \
$(CMSIS_DSP)/Source/ComplexMathFunctions/arm_cmplx_mag_f32.c \
$(CMSIS_DSP)/Source/CommonTables/arm_const_structs.c \
$(CMSIS_DSP)/Source/CommonTables/arm_common_tables.c \
$(CMSIS_DSP)/Source/FastMathFunctions/arm_cos_f32.c
# CMSIS-DSP
CMSIS_DSP = Middlewares/CMSIS-DSP
# Startup
ASM_SOURCES = App/Src/startup_stm32f103xb.s
# --- Настройки компилятора ---
@@ -48,19 +64,29 @@ C_INCLUDES = \
-IDrivers/CMSIS/Device/ST/STM32F1xx/Include \
-IMiddlewares/FreeRTOS/include \
-IMiddlewares/FreeRTOS/portable/GCC/ARM_CM3 \
-IMiddlewares/TinyUSB/src
-IMiddlewares/TinyUSB/src \
-I$(CMSIS_DSP)/Include \
-I$(CMSIS_DSP)/PrivateInclude
# Defines
C_DEFS = \
-DSTM32F103xB \
-DCFG_TUSB_MCU=OPT_MCU_STM32F1
-DCFG_TUSB_MCU=OPT_MCU_STM32F1 \
-DARM_MATH_CM3
CFLAGS = $(MCU) $(C_DEFS) $(C_INCLUDES) -O2 -Wall -fdata-sections -ffunction-sections -g -gdwarf-2
CFLAGS = $(MCU) $(C_DEFS) $(C_INCLUDES) -Os -Wall -fdata-sections -ffunction-sections -g -gdwarf-2
# Linker
LDSCRIPT = stm32f103c8.ld
LIBS = -lc -lm -lnosys
LDFLAGS = $(MCU) -T$(LDSCRIPT) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections -Wl,--no-warn-rwx-segments
# LIBS = -lc -lm -lnosys
# LDFLAGS = $(MCU) -T$(LDSCRIPT) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections -Wl,--no-warn-rwx-segments
# LDFLAGS = $(MCU) -T$(LDSCRIPT) --specs=nano.specs --specs=nosys.specs \
# -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections
LIBS = -Wl,--start-group -lc_nano -lm -lgcc -lnosys -Wl,--end-group
LDFLAGS = $(MCU) -T$(LDSCRIPT) $(LIBS) \
-Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref \
-Wl,--gc-sections \
-Wl,--no-warn-rwx-segments
# --- Генерация списка объектов ---
OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o)))
@@ -104,4 +130,3 @@ flash:
st-flash write $(BUILD_DIR)/$(TARGET).bin 0x8000000
.PHONY: all clean flash