108 lines
4.0 KiB
Makefile
108 lines
4.0 KiB
Makefile
TARGET = hub75_80x40
|
|
BUILD = build
|
|
FW_VERSION = 1.0.0
|
|
FW_REPO = ../RGB-Matrix-Px-xx
|
|
FW_GIT = $(shell git -C $(FW_REPO) rev-parse --short=6 HEAD)
|
|
FW_DATE = $(shell git -C $(FW_REPO) log -1 --format=%cd --date=format:%Y%m%d)
|
|
RELEASE_DIR = firmware
|
|
RELEASE_NAME = $(TARGET)_v$(FW_VERSION)_$(FW_DATE)_$(FW_GIT)
|
|
|
|
PREFIX = arm-none-eabi-
|
|
CC = $(PREFIX)gcc
|
|
AS = $(PREFIX)gcc -x assembler-with-cpp
|
|
OBJCOPY = $(PREFIX)objcopy
|
|
SIZE = $(PREFIX)size
|
|
|
|
SRC_ROOT = ../RGB-Matrix-Px-xx/example/STM32/STM32F103RB
|
|
|
|
C_SOURCES = \
|
|
$(SRC_ROOT)/Core/Src/main.c \
|
|
$(SRC_ROOT)/Core/Src/gpio.c \
|
|
$(SRC_ROOT)/Core/Src/tim.c \
|
|
$(SRC_ROOT)/Core/Src/usart.c \
|
|
$(SRC_ROOT)/Core/Src/weight_ui.c \
|
|
$(SRC_ROOT)/Core/Src/stm32f1xx_it.c \
|
|
$(SRC_ROOT)/Core/Src/stm32f1xx_hal_msp.c \
|
|
$(SRC_ROOT)/Core/Src/system_stm32f1xx.c \
|
|
$(SRC_ROOT)/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c \
|
|
$(SRC_ROOT)/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c \
|
|
$(SRC_ROOT)/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c \
|
|
$(SRC_ROOT)/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c \
|
|
$(SRC_ROOT)/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c \
|
|
$(SRC_ROOT)/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c \
|
|
$(SRC_ROOT)/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c \
|
|
$(SRC_ROOT)/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c \
|
|
$(SRC_ROOT)/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c \
|
|
$(SRC_ROOT)/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c \
|
|
$(SRC_ROOT)/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c \
|
|
$(SRC_ROOT)/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c \
|
|
$(SRC_ROOT)/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c \
|
|
$(SRC_ROOT)/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c \
|
|
$(SRC_ROOT)/User/GUI/GUI_Paint.c \
|
|
$(SRC_ROOT)/User/Driver_HUB75/Driver_RGBMatrix.c \
|
|
$(SRC_ROOT)/User/image/image.c \
|
|
$(SRC_ROOT)/User/Fonts/font8.c \
|
|
$(SRC_ROOT)/User/Fonts/font12.c \
|
|
$(SRC_ROOT)/User/Fonts/font12CN.c \
|
|
$(SRC_ROOT)/User/Fonts/font16.c \
|
|
$(SRC_ROOT)/User/Fonts/font20.c \
|
|
$(SRC_ROOT)/User/Fonts/font24.c \
|
|
$(SRC_ROOT)/User/Fonts/font24CN.c \
|
|
syscalls.c
|
|
|
|
ASM_SOURCES = startup_stm32f103zet6.s
|
|
|
|
C_INCLUDES = \
|
|
-I$(SRC_ROOT)/Core/Inc \
|
|
-I$(SRC_ROOT)/Drivers/STM32F1xx_HAL_Driver/Inc \
|
|
-I$(SRC_ROOT)/Drivers/STM32F1xx_HAL_Driver/Inc/Legacy \
|
|
-I$(SRC_ROOT)/Drivers/CMSIS/Device/ST/STM32F1xx/Include \
|
|
-I$(SRC_ROOT)/Drivers/CMSIS/Include \
|
|
-I$(SRC_ROOT)/User/GUI \
|
|
-I$(SRC_ROOT)/User/Driver_HUB75 \
|
|
-I$(SRC_ROOT)/User/Fonts \
|
|
-I$(SRC_ROOT)/User/image
|
|
|
|
CPU = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
|
|
DEFS = -DSTM32F103xB -DUSE_HAL_DRIVER -DHSE_VALUE=8000000U -DHUB75_PANEL_PROFILE=HUB75_PANEL_PROFILE_80X40_1_20 -DFW_GIT_HASH=\"$(FW_GIT)\"
|
|
OPT = -Os
|
|
|
|
CFLAGS = $(CPU) $(DEFS) $(C_INCLUDES) $(OPT) -Wall -ffunction-sections -fdata-sections -fno-common -g
|
|
ASFLAGS = $(CPU) -g
|
|
LDFLAGS = $(CPU) -TSTM32F103ZET6.ld -Wl,--gc-sections -Wl,-u,fw_build_id -Wl,-Map=$(BUILD)/$(TARGET).map --specs=nano.specs --specs=nosys.specs
|
|
|
|
OBJECTS = $(addprefix $(BUILD)/,$(notdir $(C_SOURCES:.c=.o)))
|
|
OBJECTS += $(addprefix $(BUILD)/,$(notdir $(ASM_SOURCES:.s=.o)))
|
|
|
|
vpath %.c $(sort $(dir $(C_SOURCES)))
|
|
vpath %.s $(sort $(dir $(ASM_SOURCES)))
|
|
|
|
all: $(BUILD)/$(TARGET).elf $(BUILD)/$(TARGET).bin $(BUILD)/$(TARGET).hex release
|
|
$(SIZE) $(BUILD)/$(TARGET).elf
|
|
|
|
release: $(BUILD)/$(TARGET).hex $(BUILD)/$(TARGET).bin
|
|
python -c "import os,shutil; os.makedirs(r'$(RELEASE_DIR)', exist_ok=True); shutil.copyfile(r'$(BUILD)/$(TARGET).hex', r'$(RELEASE_DIR)/$(RELEASE_NAME).hex'); shutil.copyfile(r'$(BUILD)/$(TARGET).bin', r'$(RELEASE_DIR)/$(RELEASE_NAME).bin'); print(r'$(RELEASE_DIR)/$(RELEASE_NAME)')"
|
|
|
|
$(BUILD)/%.o: %.c | $(BUILD)
|
|
$(CC) -c $(CFLAGS) $< -o $@
|
|
|
|
$(BUILD)/%.o: %.s | $(BUILD)
|
|
$(AS) -c $(ASFLAGS) $< -o $@
|
|
|
|
$(BUILD)/$(TARGET).elf: $(OBJECTS)
|
|
$(CC) $(OBJECTS) $(LDFLAGS) -o $@
|
|
|
|
$(BUILD)/$(TARGET).bin: $(BUILD)/$(TARGET).elf
|
|
$(OBJCOPY) -O binary $< $@
|
|
|
|
$(BUILD)/$(TARGET).hex: $(BUILD)/$(TARGET).elf
|
|
$(OBJCOPY) -O ihex $< $@
|
|
|
|
$(BUILD):
|
|
mkdir -p $(BUILD)
|
|
|
|
clean:
|
|
rm -rf $(BUILD)
|
|
|
|
.PHONY: all clean release
|