Advertisement
Guest User

makefile

a guest
May 24th, 2013
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.01 KB | None | 0 0
  1. # Makefile for compiling the Getting Started project
  2.  
  3. #-------------------------------------------------------------------------------
  4. # User-modifiable options
  5. #-------------------------------------------------------------------------------
  6.  
  7. # Trace level used for compilation
  8. # (can be overriden by adding TRACE_LEVEL=#number to the command-line)
  9. # TRACE_LEVEL_DEBUG 5
  10. # TRACE_LEVEL_INFO 4
  11. # TRACE_LEVEL_WARNING 3
  12. # TRACE_LEVEL_ERROR 2
  13. # TRACE_LEVEL_FATAL 1
  14. # TRACE_LEVEL_NO_TRACE 0
  15. TRACE_LEVEL = 4
  16.  
  17. # Optimization level
  18. OPTIMIZATION = -O0
  19.  
  20. # Output file basename
  21. OUTPUT = main
  22.  
  23. # Output directories
  24. BIN = .
  25. OBJ = obj
  26.  
  27. # library dirs
  28. LIBRARYSRC = ./lib/src
  29. LIBRARYSRCDIR = ./lib/fat_sd
  30. STARTUPFILE = ./lib/startup_stm32f10x_md.s
  31.  
  32. #-------------------------------------------------------------------------------
  33. # Tools
  34. #-------------------------------------------------------------------------------
  35.  
  36. # Tool suffix when cross-compiling
  37. CROSS_COMPILE = arm-none-eabi-
  38.  
  39. CC = $(CROSS_COMPILE)gcc
  40. SIZE = $(CROSS_COMPILE)size
  41. STRIP = $(CROSS_COMPILE)strip
  42. OBJCOPY = $(CROSS_COMPILE)objcopy
  43. OBJDUMP = $(CROSS_COMPILE)objdump
  44. LD = $(CROSS_COMPILE)ld
  45. AS = $(CROSS_COMPILE)as
  46.  
  47. #-------------------------------------------------------------------------------
  48. # Files
  49. #-------------------------------------------------------------------------------
  50.  
  51. # include folders
  52. INCLUDES = -I./
  53. INCLUDES += -I./lib/
  54. INCLUDES += -I./lib/inc/
  55. INCLUDES += -I./lib/src/
  56. INCLUDES += -I./lib/fat_sd/
  57. INCLUDES += -I./lib/inc/../../
  58.  
  59.  
  60. # Objects built from C source files
  61. C_OBJECTS = $(OBJ)/main.o
  62. C_OBJECTS += $(OBJ)/stm32f10x_usart.o
  63. C_OBJECTS += $(OBJ)/system_stm32f10x.o
  64. C_OBJECTS += $(OBJ)/sd_spi_stm32.o
  65. C_OBJECTS += $(OBJ)/stm32f10x_gpio.o
  66. C_OBJECTS += $(OBJ)/stm32f10x_spi.o
  67. C_OBJECTS += $(OBJ)/stm32f10x_rcc.o
  68. C_OBJECTS += $(OBJ)/stm32f10x_rtc.o
  69. C_OBJECTS += $(OBJ)/ff.o
  70. C_OBJECTS += $(OBJ)/comm.o
  71. C_OBJECTS += $(OBJ)/term_io.o
  72. C_OBJECTS += $(OBJ)/ccsbcs.o
  73. C_OBJECTS += $(OBJ)/rtc.o
  74. C_OBJECTS += $(OBJ)/fattime.o
  75. #C_OBJECTS += $(OBJ)/startup_stm32f10x_md.o
  76. C_OBJECTS += $(OBJ)/stm32f10x_flash.o
  77. C_OBJECTS += $(OBJ)/stm32f10x_bkp.o
  78. C_OBJECTS += $(OBJ)/stm32f10x_pwr.o
  79. C_OBJECTS += $(OBJ)/stm32f10x_dma.o
  80. C_OBJECTS += $(OBJ)/stm32f10x_tim.o
  81. C_OBJECTS += $(OBJ)/misc.o
  82.  
  83. # Objects built from Assembly source files
  84. ASM_OBJECTS = $(OBJ)/startup_stm32f10x_md.o
  85.  
  86. LINKER_SCRIPT = ./lib/stm32_flash.ld
  87. #LINKER_SCRIPT = ./lib/stm32_ram.ld
  88.  
  89. # Append OBJ and BIN directories to output filename
  90. OUTPUT := $(BIN)/$(OUTPUT)
  91.  
  92. #-------------------------------------------------------------------------------
  93. # Rules
  94. #-------------------------------------------------------------------------------
  95.  
  96. # Flags
  97. CFLAGS = -Wall -fno-common -c -g -mcpu=cortex-m3 -mthumb
  98. CFLAGS += -g $(OPTIMIZATION) $(INCLUDES) -DTRACE_LEVEL=$(TRACE_LEVEL)
  99. ASFLAGS = -g -mapcs-32
  100. LDFLAGS = -g -v -nostartfiles
  101. OBJCOPYFLAGS = -O binary
  102. OBJDUMPFLAGS = -x --syms -S
  103.  
  104. all: $(BIN) $(OBJ) $(OUTPUT).out
  105.  
  106. $(BIN) $(OBJ):
  107. mkdir $@
  108.  
  109. $(OUTPUT).out: $(C_OBJECTS) $(ASM_OBJECTS) $(LINKER_SCRIPT)
  110. @ echo "..linking"
  111. $(LD) $(LDFLAGS) -Map $(OUTPUT).map -T$(LINKER_SCRIPT) -o $(OUTPUT).out $(C_OBJECTS) $(ASM_OBJECTS) libgcc.a
  112. $(OBJCOPY) $(OBJCOPYFLAGS) $(OUTPUT).out $(OUTPUT).bin
  113. # $(OBJDUMP) $(OBJDUMPFLAGS) $(OUTPUT).out > $(OUTPUT).list
  114. @ echo "...completed."
  115.  
  116. $(C_OBJECTS): main.c system_stm32f10x.c
  117. @ echo ".compiling"
  118. $(CC) $(CFLAGS) -o $(OBJ)/main.o main.c
  119. $(CC) $(CFLAGS) -o $(OBJ)/system_stm32f10x.o system_stm32f10x.c
  120. # $(CC) $(CFLAGS) -o $(OBJ)/startup_stm32f10x_md.o startup_stm32f10x_md.c
  121. @ echo ".compiling libraries"
  122. $(CC) $(CFLAGS) -o $(OBJ)/stm32f10x_gpio.o $(LIBRARYSRC)/stm32f10x_gpio.c
  123. $(CC) $(CFLAGS) -o $(OBJ)/stm32f10x_spi.o $(LIBRARYSRC)/stm32f10x_spi.c
  124. $(CC) $(CFLAGS) -o $(OBJ)/stm32f10x_usart.o $(LIBRARYSRC)/stm32f10x_usart.c
  125. $(CC) $(CFLAGS) -o $(OBJ)/stm32f10x_rcc.o $(LIBRARYSRC)/stm32f10x_rcc.c
  126. $(CC) $(CFLAGS) -o $(OBJ)/stm32f10x_rtc.o $(LIBRARYSRC)/stm32f10x_rtc.c
  127. $(CC) $(CFLAGS) -o $(OBJ)/comm.o comm.c
  128. $(CC) $(CFLAGS) -o $(OBJ)/ccsbcs.o $(LIBRARYSRCDIR)/option/ccsbcs.c
  129. $(CC) $(CFLAGS) -o $(OBJ)/ff.o $(LIBRARYSRCDIR)/ff.c
  130. $(CC) $(CFLAGS) -o $(OBJ)/sd_spi_stm32.o $(LIBRARYSRCDIR)/sd_spi_stm32.c
  131. $(CC) $(CFLAGS) -o $(OBJ)/term_io.o term_io.c
  132. $(CC) $(CFLAGS) -o $(OBJ)/rtc.o rtc.c
  133. $(CC) $(CFLAGS) -o $(OBJ)/fattime.o $(LIBRARYSRCDIR)/fattime.c
  134.  
  135. $(CC) $(CFLAGS) -o $(OBJ)/stm32f10x_flash.o $(LIBRARYSRC)/stm32f10x_flash.c
  136. $(CC) $(CFLAGS) -o $(OBJ)/stm32f10x_bkp.o $(LIBRARYSRC)/stm32f10x_bkp.c
  137. $(CC) $(CFLAGS) -o $(OBJ)/stm32f10x_pwr.o $(LIBRARYSRC)/stm32f10x_pwr.c
  138. $(CC) $(CFLAGS) -o $(OBJ)/stm32f10x_dma.o $(LIBRARYSRC)/stm32f10x_dma.c
  139. $(CC) $(CFLAGS) -o $(OBJ)/stm32f10x_tim.o $(LIBRARYSRC)/stm32f10x_tim.c
  140. $(CC) $(CFLAGS) -o $(OBJ)/misc.o $(LIBRARYSRC)/misc.c
  141.  
  142. $(ASM_OBJECTS): $(STARTUPFILE)
  143. @ echo ".assembling"
  144. $(AS) $(ASFLAGS) -o $(OBJ)/startup_stm32f10x_md.o $(STARTUPFILE)
  145.  
  146. clean:
  147. -rm -f $(OBJ)/*.o $(BIN)/*.out $(BIN)/*.bin $(BIN)/*.dmp $(BIN)/*.map
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement