80 lines
1.8 KiB
Makefile
80 lines
1.8 KiB
Makefile
#
|
|
# Copyright: Oleg Borodin <onborodin@gmail.com> 2018
|
|
#
|
|
|
|
.SECONDARY:
|
|
|
|
CFLAGS+= -I. -Os -DSTM32F4 -std=c99
|
|
#CFLAGS+= -mthumb
|
|
#CFLAGS+= -march=armv7e-m
|
|
CFLAGS+= -mfloat-abi=hard
|
|
#CFLAGS+= -mfpu=fpv4-sp-d16
|
|
CFLAGS+= -mcpu=cortex-m4
|
|
CFLAGS+= -fno-common -ffunction-sections -fdata-sections
|
|
CFLAGS+= -g -gdwarf-2
|
|
CFLAGS+= -Wall
|
|
|
|
LDFLAGS+= ${CFLAGS}
|
|
LDFLAGS+= --static
|
|
#LDFLAGS+= -nostartfiles
|
|
LDFLAGS+= -T main.ld
|
|
|
|
LDFLAGS+= -Wl,-Map=main.map
|
|
LDFLAGS+= -Wl,--cref -Wl,--gc-sections
|
|
LDFLAGS+= -lopencm3_stm32f4
|
|
LDFLAGS+= -Wl,--start-group -lc -lgcc -lnosys -Wl,--end-group
|
|
|
|
TARGET= arm-eabi
|
|
|
|
all: main.bin
|
|
|
|
OBJS+= main.o
|
|
|
|
main.elf: $(OBJS)
|
|
$(TARGET)-gcc $(^F) $(LDFLAGS) -o $@
|
|
$(TARGET)-size --format=berkeley $@
|
|
|
|
%.o: %.c
|
|
$(TARGET)-gcc $(CFLAGS) -c -o $@ $<
|
|
|
|
%.o: %.S
|
|
$(TARGET)-as $(ASFLAGS) -o $@ $<
|
|
|
|
%.bin: %.elf
|
|
$(TARGET)-objcopy -O binary $< $@
|
|
|
|
%.elf: %.o
|
|
$(TARGET)-gcc $(^F) $(LDFLAGS) -o $@
|
|
$(TARGET)-size --format=berkeley $@
|
|
|
|
clean:
|
|
rm -f *.i *.o *.elf *.bin *.map *~ *.hex *.d *.s
|
|
|
|
flash: main.bin
|
|
@openocd \
|
|
-c 'puts "--- START --------------------"' \
|
|
-f 'interface/stlink.cfg' \
|
|
-f 'target/stm32f4x.cfg' \
|
|
-c 'puts "--- INIT --------------------"' \
|
|
-c "init" \
|
|
-c "reset halt" \
|
|
-c 'puts "--- WRITE --------------------"' \
|
|
-c "flash write_image erase $< 0x08000000"\
|
|
-c 'puts "--- VERIFY --------------------"' \
|
|
-c "verify_image $<" \
|
|
-c 'puts "--- RESET --------------------"' \
|
|
-c "reset" \
|
|
-c 'puts "--- DONE --------------------"' \
|
|
-c "shutdown"
|
|
|
|
debug: main.bin
|
|
@openocd \
|
|
-c 'puts "--- START --------------------"' \
|
|
-f 'interface/stlink.cfg' \
|
|
-f 'target/stm32f4x.cfg' \
|
|
-c 'puts "--- INIT --------------------"' \
|
|
-c "init" \
|
|
-c "halt" \
|
|
-c "poll"
|
|
#EOF
|