Conquering the STM32F4 on the discovery board step-by-step. Commit history is tutorialesque, but not clean of course.
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

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)