Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- NAME = main
- TARGET=$(NAME).bin
- EXECUTABLE=$(NAME).elf
- SRC = src/main.c \
- src/system_stm32f4xx.c \
- STARTUP = lib/startup_stm32f4xx.s
- STM32_INCLUDES = -Iinc \
- -Ilib/inc \
- -Ilib/inc/core \
- -Ilib/inc/peripherals \
- LINKFILE = link.ld
- OPTIMIZE = -O3
- CC = arm-none-eabi-gcc
- LD = arm-none-eabi-gcc
- AR = arm-none-eabi-ar
- AS = arm-none-eabi-as
- CP = arm-none-eabi-objcopy
- OD = arm-none-eabi-objdump
- BIN = $(CP) -O binary
- DEFS = -D__arm__ -D__ASSEMBLY__ -DUSE_STDPERIPH_DRIVER -DSTM32F4XX -DHSE_VALUE=8000000 -D__FPU_PRESENT=1 -D__FPU_USED=1 -DSTM32F407VG
- MCFLAGS = -mcpu=cortex-m4 -mthumb -mlittle-endian -mfpu=fpv4-sp-d16 -mfloat-abi=hard
- CFLAGS = $(MCFLAGS) $(OPTIMIZE) $(DEFS) -ffunction-sections -I./ -I./ $(STM32_INCLUDES) -Wl,-T,$(LINKFILE) -std=c99
- AFLAGS = $(MCFLAGS)
- OBJDIR = .
- OBJ = $(SRC:%.c=$(OBJDIR)/%.o)
- OBJ += Startup.o
- all: $(TARGET) size
- $(TARGET): $(EXECUTABLE)
- @echo 'Invoking: Cross ARM GNU Create Flash Image'
- $(BIN) $^ $@
- @echo 'Finished building: $@'
- @echo ' '
- $(EXECUTABLE): $(SRC) $(STARTUP)
- @echo 'Building target: $@'
- @echo 'Invoking: Cross ARM C Linker'
- $(CC) $(CFLAGS) -nostartfiles -Wl,-Map=$(NAME).map -Wl,--gc-sections $^ -o $@ -L$(LIBDIR) -lgcc -lc -lm
- @echo 'Finished building target: $@'
- @echo ' '
- size: $(EXECUTABLE)
- @echo 'Invoking: Cross ARM GNU Print Size'
- arm-none-eabi-size --format=berkeley --totals $^
- @echo 'Finished building: $@'
- @echo ' '
- clean:
- rm -f Startup.lst $(TARGET) $(EXECUTABLE) *.lst $(OBJ) $(AUTOGEN) *.out *.map *.dmp
- flash: $(TARGET)
- st-flash write $(TARGET) 0x8000000
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement