fix(build): update
This commit is contained in:
@@ -4,7 +4,9 @@ BUILD_DIR = Build
|
||||
# --- Исходники ---
|
||||
# 1. Приложение
|
||||
C_SOURCES = \
|
||||
App/Src/main.c
|
||||
App/Src/main.c \
|
||||
App/Src/usb_descriptors.c \
|
||||
App/Src/system_stm32f1xx.c \
|
||||
|
||||
# 2. FreeRTOS
|
||||
C_SOURCES += \
|
||||
@@ -18,15 +20,12 @@ Middlewares/FreeRTOS/portable/GCC/ARM_CM3/port.c \
|
||||
Middlewares/FreeRTOS/portable/MemMang/heap_4.c
|
||||
|
||||
# 3. TinyUSB
|
||||
# Базовые файлы
|
||||
C_SOURCES += \
|
||||
Middlewares/TinyUSB/src/tusb.c \
|
||||
Middlewares/TinyUSB/src/common/tusb_fifo.c \
|
||||
Middlewares/TinyUSB/src/device/usbd.c \
|
||||
Middlewares/TinyUSB/src/device/usbd_control.c \
|
||||
Middlewares/TinyUSB/src/class/cdc/cdc_device.c
|
||||
# Драйвер для STM32 (Portable)
|
||||
C_SOURCES += \
|
||||
Middlewares/TinyUSB/src/class/cdc/cdc_device.c \
|
||||
Middlewares/TinyUSB/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c
|
||||
|
||||
# 4. Startup
|
||||
@@ -39,7 +38,7 @@ AS = $(PREFIX)gcc -x assembler-with-cpp
|
||||
CP = $(PREFIX)objcopy
|
||||
SZ = $(PREFIX)size
|
||||
|
||||
MCU = -mcpu=cortex-m3 -mthumb -DSTM32F103xB
|
||||
MCU = -mcpu=cortex-m3 -mthumb
|
||||
|
||||
# Includes
|
||||
C_INCLUDES = \
|
||||
@@ -50,7 +49,7 @@ C_INCLUDES = \
|
||||
-IMiddlewares/FreeRTOS/portable/GCC/ARM_CM3 \
|
||||
-IMiddlewares/TinyUSB/src
|
||||
|
||||
# TinyUSB config specific defines
|
||||
# Defines
|
||||
C_DEFS = \
|
||||
-DSTM32F103xB \
|
||||
-DCFG_TUSB_MCU=OPT_MCU_STM32F1
|
||||
@@ -62,17 +61,22 @@ LDSCRIPT = stm32f103c8.ld
|
||||
LIBS = -lc -lm -lnosys
|
||||
LDFLAGS = $(MCU) -T$(LDSCRIPT) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections
|
||||
|
||||
# --- Генерация списка объектов ---
|
||||
OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o)))
|
||||
vpath %.c $(sort $(dir $(C_SOURCES)))
|
||||
|
||||
OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o)))
|
||||
vpath %.s $(sort $(dir $(ASM_SOURCES)))
|
||||
|
||||
# --- Правила сборки ---
|
||||
all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin
|
||||
|
||||
# Компиляция C
|
||||
# Компиляция C файлов
|
||||
$(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR)
|
||||
@mkdir -p $(dir $@)
|
||||
$(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@
|
||||
$(CC) -c $(CFLAGS) $< -o $@
|
||||
|
||||
# Компиляция ASM
|
||||
# Компиляция ASM файлов
|
||||
$(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR)
|
||||
@mkdir -p $(dir $@)
|
||||
$(AS) -c $(CFLAGS) $< -o $@
|
||||
|
||||
# Линковка
|
||||
@@ -80,20 +84,17 @@ $(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile
|
||||
$(CC) $(OBJECTS) $(LDFLAGS) -o $@
|
||||
$(SZ) $@
|
||||
|
||||
$(BUILD_DIR)/%.hex: $(BUILD_DIR)/$(TARGET).elf | $(BUILD_DIR)
|
||||
# Генерация HEX
|
||||
$(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf | $(BUILD_DIR)
|
||||
$(CP) -O ihex $< $@
|
||||
|
||||
$(BUILD_DIR)/%.bin: $(BUILD_DIR)/$(TARGET).elf | $(BUILD_DIR)
|
||||
# Генерация BIN
|
||||
$(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR)
|
||||
$(CP) -O binary -S $< $@
|
||||
|
||||
# Создание директории Build
|
||||
$(BUILD_DIR):
|
||||
mkdir $@
|
||||
|
||||
# Генерация списка объектов (автоматически из C_SOURCES)
|
||||
OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o)))
|
||||
vpath %.c $(sort $(dir $(C_SOURCES)))
|
||||
OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o)))
|
||||
vpath %.s $(sort $(dir $(ASM_SOURCES)))
|
||||
mkdir -p $@
|
||||
|
||||
clean:
|
||||
rm -rf $(BUILD_DIR)
|
||||
@@ -101,3 +102,5 @@ clean:
|
||||
flash:
|
||||
st-flash write $(BUILD_DIR)/$(TARGET).bin 0x8000000
|
||||
|
||||
.PHONY: all clean flash
|
||||
|
||||
|
||||
Reference in New Issue
Block a user