Advertisement
Guest User

Untitled

a guest
Nov 28th, 2014
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Make 1.61 KB | None | 0 0
  1. NAME = main
  2.  
  3. TARGET=$(NAME).bin
  4. EXECUTABLE=$(NAME).elf
  5.  
  6. SRC = src/main.c \
  7.     src/system_stm32f4xx.c \
  8.  
  9. STARTUP = lib/startup_stm32f4xx.s
  10.  
  11. STM32_INCLUDES = -Iinc \
  12.         -Ilib/inc \
  13.         -Ilib/inc/core \
  14.         -Ilib/inc/peripherals \
  15.  
  16. LINKFILE = link.ld
  17.  
  18. OPTIMIZE = -O3
  19.  
  20. CC = arm-none-eabi-gcc
  21. LD = arm-none-eabi-gcc
  22. AR = arm-none-eabi-ar
  23. AS = arm-none-eabi-as
  24. CP = arm-none-eabi-objcopy
  25. OD = arm-none-eabi-objdump
  26.  
  27. BIN = $(CP) -O binary
  28.  
  29. DEFS = -D__arm__ -D__ASSEMBLY__ -DUSE_STDPERIPH_DRIVER -DSTM32F4XX -DHSE_VALUE=8000000 -D__FPU_PRESENT=1 -D__FPU_USED=1 -DSTM32F407VG
  30.  
  31. MCFLAGS = -mcpu=cortex-m4 -mthumb -mlittle-endian -mfpu=fpv4-sp-d16 -mfloat-abi=hard
  32.  
  33. CFLAGS = $(MCFLAGS) $(OPTIMIZE) $(DEFS) -ffunction-sections -I./ -I./ $(STM32_INCLUDES) -Wl,-T,$(LINKFILE) -std=c99
  34. AFLAGS = $(MCFLAGS)
  35.  
  36. OBJDIR = .
  37. OBJ = $(SRC:%.c=$(OBJDIR)/%.o)
  38. OBJ += Startup.o
  39.  
  40. all: $(TARGET) size
  41.  
  42. $(TARGET): $(EXECUTABLE)
  43.     @echo 'Invoking: Cross ARM GNU Create Flash Image'
  44.     $(BIN) $^ $@
  45.     @echo 'Finished building: $@'
  46.     @echo ' '
  47.  
  48. $(EXECUTABLE): $(SRC) $(STARTUP)
  49.     @echo 'Building target: $@'
  50.     @echo 'Invoking: Cross ARM C Linker'
  51.     $(CC) $(CFLAGS) -nostartfiles  -Wl,-Map=$(NAME).map -Wl,--gc-sections $^ -o $@ -L$(LIBDIR) -lgcc -lc -lm
  52.     @echo 'Finished building target: $@'
  53.     @echo ' '
  54.  
  55. size: $(EXECUTABLE)
  56.     @echo 'Invoking: Cross ARM GNU Print Size'
  57.     arm-none-eabi-size  --format=berkeley --totals $^
  58.     @echo 'Finished building: $@'
  59.     @echo ' '
  60.  
  61. clean:
  62.     rm -f Startup.lst  $(TARGET)  $(EXECUTABLE) *.lst $(OBJ) $(AUTOGEN)  *.out *.map *.dmp
  63.  
  64. flash: $(TARGET)
  65.     st-flash write $(TARGET) 0x8000000
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement