|
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Q := @
-
- BINARY = project
-
- FP_FLAGS ?= -msoft-float
- ARCH_FLAGS = -mthumb -mcpu=cortex-m0 $(FP_FLAGS)
-
-
-
-
- PREFIX ?= arm-none-eabi
- CC := $(PREFIX)-gcc
- LD := $(PREFIX)-gcc
- OBJCOPY := $(PREFIX)-objcopy
- OBJDUMP := $(PREFIX)-objdump
-
-
-
-
- LDSCRIPT = $(BINARY).ld
-
- ELMOASMFUNCTIONS = elmoasmfunctions.o
-
-
- SOURCES = $(BINARY).c
- HEADERS =
- OBJECTS = $(BINARY).o
-
-
-
-
- CFLAGS += -Os -g
- CFLAGS += -Wextra -Wshadow -Wimplicit-function-declaration
- CFLAGS += -Wredundant-decls -Wmissing-prototypes -Wstrict-prototypes
- CFLAGS += -fno-common -ffunction-sections -fdata-sections
-
-
-
-
- CPPFLAGS += -MD
- CPPFLAGS += -Wall -Wundef
-
-
-
-
- LDFLAGS += --static -nostartfiles
- LDFLAGS += -T$(LDSCRIPT)
- LDFLAGS += -Wl,-Map=$(*).map
- LDFLAGS += -Wl,--gc-sections
-
-
-
-
-
- LDLIBS += -Wl,--start-group -lc -lgcc -lnosys -Wl,--end-group
-
-
-
-
-
- all: elf bin list
- elf: $(BINARY).elf
- bin: $(BINARY).bin
- list: $(BINARY).list
-
- images: $(BINARY).images
-
- $(BINARY).images: $(BINARY).bin $(BINARY).list $(BINARY).map
-
- $(BINARY).bin: $(BINARY).elf
- $(Q)$(OBJCOPY) -Obinary $(BINARY).elf $(BINARY).bin
-
- $(BINARY).list: $(BINARY).elf
- $(Q)$(OBJDUMP) -S $(BINARY).elf > $(BINARY).list
-
- $(BINARY).elf $(BINARY).map: $(OBJS) $(LDSCRIPT)
- $(Q)$(LD) $(LDFLAGS) vector.o $(ARCH_FLAGS) $(OBJS) $(ELMOASMFUNCTIONS) $(LDLIBS) -o $(BINARY).elf
-
- %.o: %.c $(HEADER)
- $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) $(ARCH_FLAGS) -c -o $@ $<
-
- clean:
- $(Q)$(RM) $(OBJECTS) $(BINARY).d $(BINARY).elf $(BINARY).bin $(BINARY).list $(BINARY).map
|