Backup before error handling refactoring
This commit is contained in:
190
USER/Ref/bmu-18s-firmware/Makefile
Normal file
190
USER/Ref/bmu-18s-firmware/Makefile
Normal file
@@ -0,0 +1,190 @@
|
||||
# Makefile for BMU-18S-Firmware (STM32F103)
|
||||
# Explicitly synced with BMU-18S_APP.uvprojx
|
||||
|
||||
TARGET = BMU_18S_APP_V6337
|
||||
MCU = cortex-m3
|
||||
OPT = -Os
|
||||
BUILD_DIR = build
|
||||
|
||||
# --- Toolchain ---
|
||||
CC = arm-none-eabi-gcc
|
||||
AS = arm-none-eabi-gcc -x assembler-with-cpp
|
||||
CP = arm-none-eabi-objcopy
|
||||
SZ = arm-none-eabi-size
|
||||
|
||||
# --- Paths ---
|
||||
SDK_PATH = .
|
||||
USER_DIR = $(SDK_PATH)/USER
|
||||
CORE_DIR = $(SDK_PATH)/CORE
|
||||
APP_DIR = $(SDK_PATH)/APP
|
||||
HARDWARE_DIR = $(SDK_PATH)/HARDWARE
|
||||
SYSTEM_DIR = $(SDK_PATH)/SYSTEM
|
||||
FWLIB_DIR = $(SDK_PATH)/FWLIB
|
||||
UCOS_DIR = $(SDK_PATH)/UCOSIII
|
||||
|
||||
# --- Sources (Explicitly from Keil Project) ---
|
||||
C_SOURCES = \
|
||||
$(USER_DIR)/main.c \
|
||||
$(FWLIB_DIR)/stm32f10x_it.c \
|
||||
$(FWLIB_DIR)/system_stm32f10x.c \
|
||||
$(APP_DIR)/console.c \
|
||||
$(APP_DIR)/screen.c \
|
||||
$(APP_DIR)/asutil.c \
|
||||
$(APP_DIR)/app_ver.c \
|
||||
$(APP_DIR)/brtc.c \
|
||||
$(APP_DIR)/io.c \
|
||||
$(APP_DIR)/temp.c \
|
||||
$(APP_DIR)/display_status.c \
|
||||
$(APP_DIR)/device_param.c \
|
||||
$(APP_DIR)/dflash_sf1.c \
|
||||
$(APP_DIR)/dflash_sbs.c \
|
||||
$(APP_DIR)/flash_if.c \
|
||||
$(APP_DIR)/can_comm.c \
|
||||
$(APP_DIR)/can_data_process.c \
|
||||
$(APP_DIR)/can_inv_data_process.c \
|
||||
$(APP_DIR)/can_update_process.c \
|
||||
$(APP_DIR)/ltc6813_comm.c \
|
||||
$(APP_DIR)/alarm.c \
|
||||
$(APP_DIR)/task_manager.c \
|
||||
$(HARDWARE_DIR)/can.c \
|
||||
$(HARDWARE_DIR)/iwdg.c \
|
||||
$(HARDWARE_DIR)/led.c \
|
||||
$(HARDWARE_DIR)/spi.c \
|
||||
$(HARDWARE_DIR)/ltc681x.c \
|
||||
$(HARDWARE_DIR)/ltc6813.c \
|
||||
$(CORE_DIR)/core_cm3.c \
|
||||
$(FWLIB_DIR)/STM32F10x_StdPeriph_Driver/src/misc.c \
|
||||
$(FWLIB_DIR)/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \
|
||||
$(FWLIB_DIR)/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \
|
||||
$(FWLIB_DIR)/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \
|
||||
$(FWLIB_DIR)/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \
|
||||
$(FWLIB_DIR)/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \
|
||||
$(FWLIB_DIR)/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \
|
||||
$(FWLIB_DIR)/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \
|
||||
$(FWLIB_DIR)/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \
|
||||
$(FWLIB_DIR)/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \
|
||||
$(FWLIB_DIR)/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \
|
||||
$(FWLIB_DIR)/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \
|
||||
$(FWLIB_DIR)/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \
|
||||
$(FWLIB_DIR)/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \
|
||||
$(FWLIB_DIR)/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \
|
||||
$(FWLIB_DIR)/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \
|
||||
$(FWLIB_DIR)/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \
|
||||
$(FWLIB_DIR)/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \
|
||||
$(FWLIB_DIR)/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \
|
||||
$(FWLIB_DIR)/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \
|
||||
$(FWLIB_DIR)/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \
|
||||
$(FWLIB_DIR)/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \
|
||||
$(FWLIB_DIR)/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c \
|
||||
$(SYSTEM_DIR)/delay.c \
|
||||
$(SYSTEM_DIR)/sys.c \
|
||||
$(SYSTEM_DIR)/usart.c \
|
||||
$(UCOS_DIR)/UCOS_BSP/bsp.c \
|
||||
$(UCOS_DIR)/uC-CPU/ARM-Cortex-M3/GNU/cpu_c.c \
|
||||
$(UCOS_DIR)/uC-CPU/cpu_core.c \
|
||||
$(UCOS_DIR)/uCOS-III/Source/os_cfg_app.c \
|
||||
$(UCOS_DIR)/uCOS-III/Source/os_core.c \
|
||||
$(UCOS_DIR)/uCOS-III/Source/os_dbg.c \
|
||||
$(UCOS_DIR)/uCOS-III/Source/os_flag.c \
|
||||
$(UCOS_DIR)/uCOS-III/Source/os_int.c \
|
||||
$(UCOS_DIR)/uCOS-III/Source/os_mem.c \
|
||||
$(UCOS_DIR)/uCOS-III/Source/os_msg.c \
|
||||
$(UCOS_DIR)/uCOS-III/Source/os_mutex.c \
|
||||
$(UCOS_DIR)/uCOS-III/Source/os_pend_multi.c \
|
||||
$(UCOS_DIR)/uCOS-III/Source/os_prio.c \
|
||||
$(UCOS_DIR)/uCOS-III/Source/os_q.c \
|
||||
$(UCOS_DIR)/uCOS-III/Source/os_sem.c \
|
||||
$(UCOS_DIR)/uCOS-III/Source/os_stat.c \
|
||||
$(UCOS_DIR)/uCOS-III/Source/os_task.c \
|
||||
$(UCOS_DIR)/uCOS-III/Source/os_tick.c \
|
||||
$(UCOS_DIR)/uCOS-III/Source/os_time.c \
|
||||
$(UCOS_DIR)/uCOS-III/Source/os_tmr.c \
|
||||
$(UCOS_DIR)/uCOS-III/Source/os_var.c \
|
||||
$(UCOS_DIR)/uCOS-III/Ports/ARM-Cortex-M3/Generic/GNU/os_cpu_c.c \
|
||||
$(UCOS_DIR)/uCOS_CONFIG/os_app_hooks.c \
|
||||
$(UCOS_DIR)/uC-LIB/lib_ascii.c \
|
||||
$(UCOS_DIR)/uC-LIB/lib_math.c \
|
||||
$(UCOS_DIR)/uC-LIB/lib_mem.c \
|
||||
$(UCOS_DIR)/uC-LIB/lib_str.c
|
||||
|
||||
# --- ASM Sources ---
|
||||
ASM_S_SOURCES = \
|
||||
$(UCOS_DIR)/uC-CPU/ARM-Cortex-M3/GNU/cpu_a.s \
|
||||
$(UCOS_DIR)/uC-LIB/Ports/ARM-Cortex-M3/GNU/lib_mem_a.s \
|
||||
$(UCOS_DIR)/uCOS-III/Ports/ARM-Cortex-M3/Generic/GNU/os_cpu_a.s
|
||||
|
||||
ASM_UPPER_S_SOURCES = \
|
||||
$(CORE_DIR)/startup_stm32f10x_md_gcc.S
|
||||
|
||||
# --- Includes ---
|
||||
C_INCLUDES = \
|
||||
-I$(CORE_DIR) \
|
||||
-I$(SYSTEM_DIR) \
|
||||
-I$(USER_DIR) \
|
||||
-I$(HARDWARE_DIR) \
|
||||
-I$(FWLIB_DIR) \
|
||||
-I$(FWLIB_DIR)/CMSIS/Include \
|
||||
-I$(FWLIB_DIR)/STM32F10x_StdPeriph_Driver/inc \
|
||||
-I$(UCOS_DIR)/uC-CPU \
|
||||
-I$(UCOS_DIR)/uC-LIB \
|
||||
-I$(UCOS_DIR)/uCOS-III \
|
||||
-I$(UCOS_DIR)/UCOS_BSP \
|
||||
-I$(UCOS_DIR)/uCOS_CONFIG \
|
||||
-I$(UCOS_DIR)/uCOS-III/Source \
|
||||
-I$(UCOS_DIR)/uC-CPU/ARM-Cortex-M3/GNU \
|
||||
-I$(UCOS_DIR)/uC-LIB/Ports/ARM-Cortex-M3/GNU \
|
||||
-I$(UCOS_DIR)/uCOS-III/Ports/ARM-Cortex-M3/Generic/GNU \
|
||||
-I$(APP_DIR)
|
||||
|
||||
# --- Compiler Flags ---
|
||||
C_DEFS = \
|
||||
-DUSE_STDPERIPH_DRIVER \
|
||||
-DSTM32F10X_MD \
|
||||
-DARM_MATH_CM3 \
|
||||
-D__FPU_PRESENT=1 \
|
||||
-D__FPU_USED=1
|
||||
|
||||
CFLAGS = -mcpu=$(MCU) -mthumb $(C_DEFS) $(C_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections -std=c99
|
||||
ASFLAGS = -mcpu=$(MCU) -mthumb $(C_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections
|
||||
|
||||
# --- Linker Flags ---
|
||||
LDSCRIPT = stm32f103.ld
|
||||
LDFLAGS = -mcpu=$(MCU) -mthumb -specs=nano.specs -specs=nosys.specs -T$(LDSCRIPT) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--gc-sections
|
||||
|
||||
# --- Build Rules ---
|
||||
all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin
|
||||
|
||||
# Object list
|
||||
OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o)))
|
||||
vpath %.c $(sort $(dir $(C_SOURCES)))
|
||||
|
||||
OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_S_SOURCES:.s=.o)))
|
||||
vpath %.s $(sort $(dir $(ASM_S_SOURCES)))
|
||||
|
||||
OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_UPPER_S_SOURCES:.S=.o)))
|
||||
vpath %.S $(sort $(dir $(ASM_UPPER_S_SOURCES)))
|
||||
|
||||
$(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR)
|
||||
$(CC) -c $(CFLAGS) $< -o $@
|
||||
|
||||
$(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR)
|
||||
$(AS) -c $(ASFLAGS) $< -o $@
|
||||
|
||||
$(BUILD_DIR)/%.o: %.S Makefile | $(BUILD_DIR)
|
||||
$(AS) -c $(ASFLAGS) $< -o $@
|
||||
|
||||
$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile
|
||||
$(CC) $(OBJECTS) $(LDFLAGS) -o $@
|
||||
$(SZ) $@
|
||||
|
||||
$(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf
|
||||
$(CP) -O ihex $< $@
|
||||
|
||||
$(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf
|
||||
$(CP) -O binary -S $< $@
|
||||
|
||||
$(BUILD_DIR):
|
||||
mkdir $@
|
||||
|
||||
clean:
|
||||
rm -fR $(BUILD_DIR)
|
||||
Reference in New Issue
Block a user