2020-11-23 21:48:35 -05:00
|
|
|
# Makefile -- stm32bringup
|
|
|
|
# Copyright (c) 2020 Renaud Fivet
|
|
|
|
|
|
|
|
### Build environment selection
|
|
|
|
|
|
|
|
ifeq (linux, $(findstring linux, $(MAKE_HOST)))
|
|
|
|
#GCCDIR = ~/Packages/gcc-arm-none-eabi-9-2019-q4-major
|
2020-12-02 23:12:26 -05:00
|
|
|
#GCCDIR = ~/Packages/gcc-arm-none-eabi-9-2020-q2-update
|
|
|
|
GCCDIR = $(HOME)/Packages/gcc-arm-none-eabi-9-2020-q2-update
|
2020-11-23 21:48:35 -05:00
|
|
|
else
|
|
|
|
#GCCDIR = "D:/Program Files (x86)/GNU Tools ARM Embedded/9 2019-q4-major"
|
|
|
|
GCCDIR = "D:/Program Files (x86)/GNU Arm Embedded Toolchain/9 2020-q2-update"
|
|
|
|
endif
|
|
|
|
|
|
|
|
BINPFX = @$(GCCDIR)/bin/arm-none-eabi-
|
2020-12-05 05:08:25 -05:00
|
|
|
AR = $(BINPFX)ar
|
2020-11-23 21:48:35 -05:00
|
|
|
CC = $(BINPFX)gcc
|
|
|
|
LD = $(BINPFX)ld
|
|
|
|
OBJCOPY = $(BINPFX)objcopy
|
|
|
|
OBJDUMP = $(BINPFX)objdump
|
|
|
|
SIZE = $(BINPFX)size
|
|
|
|
|
|
|
|
### STM32F030F4P6 based board
|
|
|
|
|
|
|
|
PROJECT = f030f4
|
|
|
|
#SRCS = boot.c
|
|
|
|
#SRCS = ledon.c
|
|
|
|
#SRCS = blink.c
|
|
|
|
#SRCS = ledtick.c
|
|
|
|
#SRCS = cstartup.c
|
2020-11-27 23:54:11 -05:00
|
|
|
#SRCS = startup.c init.c success.c
|
2020-11-27 23:58:58 -05:00
|
|
|
#SRCS = startup.c board.c success.c
|
2020-12-02 22:15:47 -05:00
|
|
|
#SRCS = startup.c usart1tx.c hello.c
|
2020-12-04 19:13:29 -05:00
|
|
|
#SRCS = startup.c uplow.1.c uptime.1.c
|
2020-12-05 05:08:25 -05:00
|
|
|
#SRCS = startup.c uplow.2.c uptime.c printf.c putchar.c
|
|
|
|
#SRCS = startup.c uplow.2.c uptime.c
|
|
|
|
SRCS = startup.c uplow.2.c hello.c
|
2020-11-23 21:48:35 -05:00
|
|
|
OBJS = $(SRCS:.c=.o)
|
2020-12-05 05:08:25 -05:00
|
|
|
LIBOBJS = printf.o putchar.o puts.o
|
2020-11-23 21:48:35 -05:00
|
|
|
CPU = -mthumb -mcpu=cortex-m0
|
|
|
|
CFLAGS = $(CPU) -g -Wall -Wextra -Os
|
|
|
|
LD_SCRIPT = $(PROJECT).ld
|
2020-12-02 22:15:47 -05:00
|
|
|
LIBDIR = $(GCCDIR)/lib/gcc/arm-none-eabi/9.3.1/thumb/v6-m/nofp
|
2020-12-05 05:08:25 -05:00
|
|
|
LIB_PATHS = -L. -L$(LIBDIR)
|
|
|
|
LIBSTEM = stm32
|
|
|
|
LIBS = -l$(LIBSTEM) -lgcc
|
2020-11-23 21:48:35 -05:00
|
|
|
|
|
|
|
### Build rules
|
|
|
|
|
|
|
|
.PHONY: clean all
|
|
|
|
|
|
|
|
all: $(PROJECT).hex $(PROJECT).bin
|
|
|
|
|
|
|
|
clean:
|
|
|
|
@echo CLEAN
|
2020-12-05 05:08:25 -05:00
|
|
|
@rm -f *.o *.elf *.map *.lst *.bin *.hex *.a
|
2020-11-23 21:48:35 -05:00
|
|
|
|
2020-12-05 05:08:25 -05:00
|
|
|
$(PROJECT).elf: $(OBJS) lib$(LIBSTEM).a
|
2020-11-23 21:48:35 -05:00
|
|
|
@echo $@
|
2020-12-05 05:08:25 -05:00
|
|
|
$(LD) -T$(LD_SCRIPT) $(LIB_PATHS) -Map=$(PROJECT).map -cref -o $@ $(OBJS) $(LIBS)
|
2020-11-23 21:48:35 -05:00
|
|
|
$(SIZE) $@
|
|
|
|
$(OBJDUMP) -hS $@ > $(PROJECT).lst
|
|
|
|
|
|
|
|
%.elf: %.o
|
|
|
|
@echo $@
|
|
|
|
$(LD) -T$(LD_SCRIPT) -Map=$*.map -cref -o $@ $<
|
|
|
|
$(SIZE) $@
|
|
|
|
$(OBJDUMP) -hS $@ > $*.lst
|
|
|
|
|
|
|
|
%.bin: %.elf
|
|
|
|
@echo $@
|
|
|
|
$(OBJCOPY) -O binary $< $@
|
|
|
|
|
|
|
|
%.hex: %.elf
|
|
|
|
@echo $@
|
|
|
|
$(OBJCOPY) -O ihex $< $@
|
2020-12-05 05:08:25 -05:00
|
|
|
|
|
|
|
lib$(LIBSTEM).a: $(LIBOBJS)
|
|
|
|
$(AR) rc $@ $?
|