blinky-arm/Makefile

51 lines
1.0 KiB
Makefile

NAME=blinky
PREFIX?=arm-none-eabi-
CC=$(PREFIX)gcc
AS=$(PREFIX)as
OBJCOPY=$(PREFIX)objcopy
ARCH_FLAGS=-mthumb -mcpu=cortex-m4 -mfloat-abi=hard
CFLAGS=-Og -g -Wall -std=c99 -Ilib/libopencm3/include -DSTM32F4
LDFLAGS=--static -nostartfiles -Llib/libopencm3/lib
LDLIBS=-lopencm3_stm32f4
LDSCRIPT=-Tnucleo-f411re.ld
VPATH=src
.SECONDARY:
clean:
rm -f lib/libopencm3/lib/libopencm3_stm32f4.a
rm -f $(NAME).bin
rm -f $(NAME).elf
rm -f $(NAME).o
clobber:
rm -f lib/libopencm3/lib/libopencm3_stm32f4.a
rm -f $(NAME).bin
$(MAKE) -C lib/libopencm3 clean
libopencm3:
$(MAKE) -C lib/libopencm3 TARGETS=stm32/f4
flash: $(NAME).bin
st-flash write $(NAME).bin 0x8000000
all: libopencm3 $(NAME).bin
%.o: %.c
$(CC) $(CFLAGS) $(ARCH_FLAGS) -c $< -o $@
%.elf: %.o
$(CC) $(LDFLAGS) $(LDSCRIPT) $(ARCH_FLAGS) $< $(LDLIBS) -o $@
%.bin: %.elf
$(OBJCOPY) $< -O binary $@
gdb:
arm-none-eabi-gdb -ex 'target extended-remote :3333' $(NAME).elf
oocd:
openocd -f /usr/share/openocd/scripts/interface/stlink.cfg -f /usr/share/openocd/scripts/target/stm32f4x.cfg