Fetch the repository succeeded.
CROSS_COMPILE_ROOT = $(ARM_NONE_EABI_ROOT)
ROOTDIR = .
BUILD_DIR = $(ROOTDIR)/build
OBJECT_DIR = $(BUILD_DIR)/Objects
TARGET = main
OPT = -O0
DEBUG = 1
CROSS_PREFIX = arm-none-eabi-
CC = $(CROSS_PREFIX)gcc # 编译器,.c 转 .o
CXX = $(CROSS_PREFIX)g++
AS = $(CROSS_PREFIX)gcc -x assembler-with-cpp # 汇编器,.s 转 .o
# AS = $(CROSS_PREFIX)as # 汇编器,.s 转 .o
AR = $(CROSS_PREFIX)ar # 归档器,生成静态库(.a)
LD = $(CROSS_PREFIX)ld # 链接器,链接目标文件(.o)、静态库(.a)或者共享库(.so)生成可执行文件(.elf)或共享库(.so)
OBJDUMP = $(CROSS_PREFIX)objdump # 用于显示目标文件各个部分/节的内容,包括机器指令、符号表、头部信息等
CP = $(CROSS_PREFIX)objcopy # 用于复制或者转换目标文件,在复制/转换过程中,可以有选择的复制或者修改,然后保存到另一个文件中
STRIP = $(CROSS_PREFIX)strip # 用于去除目标文件的符号信息和调试信息,从而减小目标文件大小
SZ = $(CROSS_PREFIX)size # 用于显示目标文件各个节(Sections)的大小,常用于分析可执行文件、目标文件或库文件的大小,以便于了解程序内存占用
HEX = $(CP) -O ihex
BIN = $(CP) -O binary -S
CPU = -mthumb -mcpu=cortex-m3
FLOAT-ABI =
MCU = $(CPU) $(FLOAT-ABI)
# C_DEFS
C_DEFS = \
-DSTM32F10X_MD \
-DUSE_STDPERIPH_DRIVER
ASM_DEFS =
# C_SOURCES
# C_SOURCES = $(wildcard User/*.c)
# C_SOURCES = $(wildcard STM32F10x_LIB/periph/src/*.c)
# $(foreach item,${C_SOURCES}, $(info $(item) \))
ASM_SOURCES = startup_stm32f10x_md.s
C_SOURCES = \
User/main.c \
User/stm32f10x_it.c \
User/system_stm32f10x.c \
STM32F10x_LIB/periph/src/misc.c \
STM32F10x_LIB/periph/src/stm32f10x_adc.c \
STM32F10x_LIB/periph/src/stm32f10x_bkp.c \
STM32F10x_LIB/periph/src/stm32f10x_can.c \
STM32F10x_LIB/periph/src/stm32f10x_cec.c \
STM32F10x_LIB/periph/src/stm32f10x_crc.c \
STM32F10x_LIB/periph/src/stm32f10x_dac.c \
STM32F10x_LIB/periph/src/stm32f10x_dbgmcu.c \
STM32F10x_LIB/periph/src/stm32f10x_dma.c \
STM32F10x_LIB/periph/src/stm32f10x_exti.c \
STM32F10x_LIB/periph/src/stm32f10x_flash.c \
STM32F10x_LIB/periph/src/stm32f10x_fsmc.c \
STM32F10x_LIB/periph/src/stm32f10x_gpio.c \
STM32F10x_LIB/periph/src/stm32f10x_i2c.c \
STM32F10x_LIB/periph/src/stm32f10x_iwdg.c \
STM32F10x_LIB/periph/src/stm32f10x_pwr.c \
STM32F10x_LIB/periph/src/stm32f10x_rcc.c \
STM32F10x_LIB/periph/src/stm32f10x_rtc.c \
STM32F10x_LIB/periph/src/stm32f10x_sdio.c \
STM32F10x_LIB/periph/src/stm32f10x_spi.c \
STM32F10x_LIB/periph/src/stm32f10x_tim.c \
STM32F10x_LIB/periph/src/stm32f10x_usart.c \
STM32F10x_LIB/periph/src/stm32f10x_wwdg.c \
MODULE/LED_Config.c \
MODULE/TIM_Config.c
# C_INCLUDES
C_INCLUDES = \
-ISTM32F10x_LIB/core \
-ISTM32F10x_LIB/periph/inc \
-IUser \
-IMODULE
ASM_INCLUDES =
# CFLAGS
CFLAGS = $(MCU) $(C_DEFS) $(C_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections
CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)" # 产生头文件依赖,.d 保存在与 .o相同的目录下
ASFLAGS = $(MCU) $(ASM_DEFS) $(ASM_INCLUDES)
ifeq ($(DEBUG), 1)
CFLAGS += -g -gdwarf-2 # -g 生成调试信息, -gdwarf-2 指定调试信息的格式
endif
# LD FLAGS
LDSCRIPT = stm32_flash.ld
LIBDIR =\
-L$(CROSS_COMPILE_ROOT)/arm-none-eabi/lib \
-L$(CROSS_COMPILE_ROOT)/lib/gcc/arm-none-eabi/10.3.1/
LIBS = -lc -lm -lgcc
LDFLAGS = -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections
# OBJECTS
OBJECTS = $(addprefix $(OBJECT_DIR)/,$(notdir $(C_SOURCES:.c=.o)))
OBJECTS += $(addprefix $(OBJECT_DIR)/,$(notdir $(ASM_SOURCES:.s=.o)))
vpath %.c $(sort $(dir $(C_SOURCES)))
vpath %.s $(sort $(dir $(ASM_SOURCES)))
all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin
$(OBJECT_DIR)/%.o: %.c Makefile | $(OBJECT_DIR)
@$(CC) -c $< $(CFLAGS) -o $@
$(OBJECT_DIR)/%.o: %.s Makefile | $(OBJECT_DIR)
@$(CC) -x assembler-with-cpp -c $< $(CFLAGS) -o $@
$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS)
@$(CC) $^ $(LDFLAGS) -o $@
@$(SZ) $@
$(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf
@$(HEX) $^ $@
$(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf
@$(BIN) $^ $@
$(OBJECT_DIR):
@mkdir -p $@
.PHONY:clean
clean:
@rm -rf $(BUILD_DIR)/*
-include $(wildcard $(OBJECT_DIR)/*.d)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。