You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.2 KiB
61 lines
1.2 KiB
include ../Makefile.conf
|
|
|
|
TARGET=raw407cxx
|
|
TARGET_ELF=$(TARGET).elf
|
|
TARGET_HEX=$(TARGET).hex
|
|
TARGET_BIN=$(TARGET).bin
|
|
TARGET_MAP=$(TARGET).map
|
|
|
|
# Includes
|
|
INC+= -I.
|
|
INC+= -I../libs/cmsis
|
|
INC+= -I../libs/STM32F4xx_HAL_Driver/Inc
|
|
INC+= -I../libs/st_usb
|
|
|
|
CFLAGS+=$(INC)
|
|
CXXFLAGS+=$(INC)
|
|
|
|
# lib objects
|
|
LIB_OBJ+=$(wildcard ../libs/cmsis/*.o)
|
|
LIB_OBJ+=$(wildcard ../libs/STM32F4xx_HAL_Driver/Src/*.o)
|
|
LIB_OBJ+=$(wildcard ../libs/st_usb/*.o)
|
|
|
|
LDFLAGS+= -Wl,-gc-sections,--print-memory-usage,-Map=$(TARGET_MAP)
|
|
LDFLAGS+= -T $(LINKER_SCRIPT)
|
|
|
|
C_SRC=$(wildcard *.c)
|
|
C_OBJ=$(subst .c,.o,$(C_SRC))
|
|
|
|
CXX_SRC=$(wildcard *.cc)
|
|
CXX_OBJ=$(subst .cc,.o,$(CXX_SRC))
|
|
|
|
OBJ=$(C_OBJ) $(CXX_OBJ)
|
|
|
|
|
|
.PHONY: flash all clean
|
|
|
|
flash: all
|
|
$(OPENOCD) -s $(OPENOCD_SCRIPTS) -f board/$(OPENOCD_BOARD) \
|
|
-c "tcl_port disabled" \
|
|
-c "gdb_port disabled" \
|
|
-c "program $(TARGET_ELF)" \
|
|
-c reset \
|
|
-c shutdown
|
|
|
|
all: $(TARGET_BIN) $(TARGET_HEX)
|
|
|
|
$(TARGET_BIN): $(TARGET_ELF)
|
|
$(OBJCOPY) -Obinary $^ $@
|
|
|
|
$(TARGET_HEX): $(TARGET_ELF)
|
|
$(OBJCOPY) -Oihex $^ $@
|
|
|
|
$(TARGET_ELF): $(OBJ)
|
|
$(LD) $(CXXFLAGS) $(LDFLAGS) $(OBJ) $(LIB_OBJ) -o $(TARGET_ELF)
|
|
|
|
clean:
|
|
rm -vf $(OBJ)
|
|
rm -vf $(TARGET_ELF)
|
|
rm -vf $(TARGET_HEX)
|
|
rm -vf $(TARGET_BIN)
|
|
rm -vf $(TARGET_MAP)
|
|
|