代码: 全选
# Project Name
PROJECT = blink
# Source files
SOURCES = common/system_mb9xfxxx.c startup.c main.c
#SOURCES = common/system_mb9xfxxx.c startup.c main.c driver/adc/adc12_fm3.c
# Linker script
LINKER_SCRIPT = mb9afa32n.dld
#########################################################################
OBJDIR = obj
OBJECTS = $(patsubst %.c,$(OBJDIR)/%.o,$(SOURCES))
#########################################################################
OPT = -Os -g
DEBUG =
INCLUDES = -Icore/ -Icommon/ -Idriver/ -Ilib/
#########################################################################
# Compiler Options
CFLAGS = -fno-common -mcpu=cortex-m3 -mthumb
CFLAGS += $(OPT) $(DEBUG) $(INCLUDES)
CFLAGS += -Wall -Wextra
CFLAGS += -Wcast-align -Wcast-qual -Wimplicit -Wpointer-arith -Wswitch -Wredundant-decls -Wreturn-type -Wshadow -Wunused
# Linker options
LDFLAGS = -mcpu=cortex-m3 -mthumb $(OPT) -nostartfiles -Wl,-Map=$(PROJECT).map -T$(LINKER_SCRIPT) -nostdlib
# Assembler options
ASFLAGS = -ahls -mcpu=cortex-m3 -mthumb
# Compiler/Assembler/Linker Paths
CROSS = arm-none-eabi-
CC = $(CROSS)gcc
AS = $(CROSS)as
LD = $(CROSS)ld
OBJDUMP = $(CROSS)objdump
OBJCOPY = $(CROSS)objcopy
SIZE = $(CROSS)size
REMOVE = rm -f
#########################################################################
all: $(PROJECT).hex $(PROJECT).bin
$(PROJECT).bin: $(PROJECT).elf
$(OBJCOPY) -R .stack -R .bss -O binary -S $(PROJECT).elf $(PROJECT).bin
$(PROJECT).hex: $(PROJECT).elf
$(OBJCOPY) -R .stack -R .bss -O ihex $(PROJECT).elf $(PROJECT).hex
$(PROJECT).elf: $(OBJECTS) $(LINKER_SCRIPT)
$(CC) $(LDFLAGS) $(OBJECTS) -o $(PROJECT).elf
stats: $(PROJECT).elf
$(OBJDUMP) -th $(PROJECT).elf
$(SIZE) $(PROJECT).elf
clean:
$(REMOVE) -r $(OBJDIR)
$(REMOVE) $(PROJECT).elf
$(REMOVE) $(PROJECT).hex
$(REMOVE) $(PROJECT).bin
$(REMOVE) $(PROJECT).map
#########################################################################
$(OBJECTS): | $(OBJDIR)
$(OBJDIR):
mkdir $(OBJDIR)
# mkdir $(OBJDIR)/common
# mkdir $(OBJDIR)/core
# mkdir $(OBJDIR)/driver
# mkdir $(OBJDIR)/driver/adc
$(OBJDIR)/%.o : %.c
$(CC) $(CFLAGS) -c $< -o $@
代码: 全选
OBJECTS = $(patsubst %.c,$(OBJDIR)/%.o,$(SOURCES))
代码: 全选
SOURCES = common/system_mb9xfxxx.c startup.c main.c driver/adc/adc12_fm3.c