Advertisement
Guest User

Untitled

a guest
Nov 17th, 2015
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.03 KB | None | 0 0
  1. RM := rm -rf
  2.  
  3. # Every subdirectory with source files must be described here
  4.  
  5. DIR := \
  6. D:/foxbms2/foxbms/
  7.  
  8. SUBDIRS := \
  9. src/test \
  10. src/test/usb_cdc_lolevel \
  11. src/os \
  12. src/os/FreeRTOS/Source \
  13. src/os/FreeRTOS/Source/portable/MemMang \
  14. src/os/FreeRTOS/Source/portable/GCC/ARM_CM4F \
  15. src/os/FreeRTOS/Source/CMSIS_RTOS \
  16. src/module/uart \
  17. src/module/spi \
  18. src/module/rcc \
  19. src/module/ltc \
  20. src/module/irq \
  21. src/module/io \
  22. src/module/eeprom \
  23. src/module/dma \
  24. src/module/cpu \
  25. src/module/contactor \
  26. src/module/config \
  27. src/module/com \
  28. src/module/can \
  29. src/module/adc \
  30. src/hal/STM32F4xx_HAL_Driver/Src \
  31. src/general \
  32. src/general/config \
  33. src/engine/task \
  34. src/engine/sysctrl \
  35. src/engine/sof \
  36. src/engine/soc \
  37. src/engine/isoguard \
  38. src/engine/diag \
  39. src/engine/database \
  40. src/engine/config \
  41. src/application/task \
  42. src/application/config \
  43.  
  44. CFLAGS := \
  45. -mcpu=cortex-m4 \
  46. -mthumb -mlittle-endian \
  47. -mfloat-abi=softfp \
  48. -mfpu=fpv4-sp-d16 \
  49. -O0 \
  50. -fmessage-length=0 \
  51. -fsigned-char \
  52. -ffunction-sections \
  53. -fdata-sections \
  54. -ffreestanding \
  55. -fno-move-loop-invariants \
  56. -Wall \
  57. -g3 \
  58. -std=gnu11 \
  59. -DSTM32F429xx \
  60. -DDEBUG \
  61. -DUSE_FULL_ASSERT \
  62. -DTRACE \
  63. -DOS_USE_TRACE_ITM \
  64. -DUSE_HAL_DRIVER \
  65. -DHSE_VALUE=8000000
  66.  
  67. INCDIRS := \
  68. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/application" \
  69. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/application/config" \
  70. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/application/task" \
  71. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/module/adc" \
  72. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/module/can" \
  73. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/module/com" \
  74. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/module/config" \
  75. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/module/contactor" \
  76. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/module/cpuload" \
  77. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/module/io" \
  78. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/module/ltc" \
  79. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/module/spi" \
  80. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/module/uart" \
  81. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/engine/config" \
  82. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/engine/database" \
  83. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/engine/diag" \
  84. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/engine/isoguard" \
  85. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/engine/soc" \
  86. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/engine/sof" \
  87. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/engine/sysctrl" \
  88. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/engine/task" \
  89. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/general" \
  90. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/general/config" \
  91. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/general/includes" \
  92. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/hal/CMSIS/Device/ST/STM32F4xx/Include" \
  93. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/hal/CMSIS/Include" \
  94. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/hal/STM32F4xx_HAL_Driver/Inc" \
  95. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/os" \
  96. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/os/FreeRTOS" \
  97. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/os/FreeRTOS/Source" \
  98. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/os/FreeRTOS/Source/include" \
  99. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/os/FreeRTOS/Source/CMSIS_RTOS" \
  100. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/os/FreeRTOS/Source/portable/GCC/ARM_CM4F" \
  101. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/test" \
  102. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/module/cpu" \
  103. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/module/dma" \
  104. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/module/irq" \
  105. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/module/rcc" \
  106. -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/test/usb_cdc_lolevel"
  107.  
  108. S_UPPER_SRCS := \
  109. $(DIR)src/general/config/startup_stm32f429xx.S
  110.  
  111. S_UPPER_DEPS := \
  112. ./src/general/config/startup_stm32f429xx.d
  113.  
  114. $(info SUBDIRS='$(SUBDIRS)')
  115. # All of the sources participating in the build are defined here
  116. C_SRCS := \
  117. $(wildcard $(DIR)$(SUBDIRS)/*.c)
  118.  
  119. OBJS := \
  120. $(patsubst $(DIR)$(SUBDIRS)/%.c, ./$(SUBDIRS)/%.o, $(C_SRCS))
  121.  
  122. C_DEPS := \
  123. $(wildcard ./$(SUBDIRS)/*.d)
  124.  
  125. # this is a macro holding the recipe portion of the pattern rule(Note the $ are all doubled up)
  126. define mkRecipe
  127. echo 'Building file: $$<'
  128. echo 'Invoking: Cross ARM C Compiler'
  129. arm-none-eabi-gcc $$(CFLAGS) $$(INCDIRS) -MMD -MP -MF"$$(@:%.o=%.d)" -MT"$$@" -c -o "$$@" "$$<"
  130. echo 'Finished building: $$<'
  131. echo ' '
  132. endef
  133.  
  134. # this macro computes the rule alongwith its recipe.
  135. define mkRule
  136. ./$1/%.o: $(DIR)$1/%.c
  137. @$(mkRecipe)
  138. endef
  139.  
  140. # this generates the rules for every subdirectory path
  141. $(foreach d,$(SUBDIRS),$(eval $(call mkRule,$(d))))
  142.  
  143. ifneq ($(MAKECMDGOALS),clean)
  144. ifneq ($(strip $(CC_DEPS)),)
  145. -include $(CC_DEPS)
  146. endif
  147. ifneq ($(strip $(C++_DEPS)),)
  148. -include $(C++_DEPS)
  149. endif
  150. ifneq ($(strip $(C_UPPER_DEPS)),)
  151. -include $(C_UPPER_DEPS)
  152. endif
  153. ifneq ($(strip $(CXX_DEPS)),)
  154. -include $(CXX_DEPS)
  155. endif
  156. ifneq ($(strip $(ASM_DEPS)),)
  157. -include $(ASM_DEPS)
  158. endif
  159. ifneq ($(strip $(S_UPPER_DEPS)),)
  160. -include $(S_UPPER_DEPS)
  161. endif
  162. ifneq ($(strip $(C_DEPS)),)
  163. -include $(C_DEPS)
  164. endif
  165. ifneq ($(strip $(CPP_DEPS)),)
  166. -include $(CPP_DEPS)
  167. endif
  168. endif
  169.  
  170. # Add inputs and outputs from these tool invocations to the build variables
  171. SECONDARY_FLASH := \
  172. foxbms.hex \
  173.  
  174. SECONDARY_LIST := \
  175. foxbms.lst \
  176.  
  177. SECONDARY_SIZE := \
  178. foxbms.siz \
  179.  
  180. # All Target
  181. all: foxbms.elf secondary-outputs
  182.  
  183. # Tool invocations
  184. foxbms.elf: $(OBJS) $(USER_OBJS)
  185. @echo 'Building target: $@'
  186. @echo 'Invoking: Cross ARM C++ Linker'
  187. arm-none-eabi-g++ -mcpu=cortex-m4 -mthumb -mlittle-endian -mfloat-abi=softfp -mfpu=fpv4-sp-d16 -O0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -g3 -T "D:\foxbms2\foxbms\EclipseWorkspace/../src/STM32F429ZIT6_FLASH.ld" -Xlinker --gc-sections -Wl,-Map,"foxbms.map" --specs=nano.specs -o "foxbms.elf" $(OBJS) $(USER_OBJS) $(LIBS)
  188. @echo 'Finished building target: $@'
  189. @echo ' '
  190. $(MAKE) --no-print-directory post-build
  191.  
  192. foxbms.hex: foxbms.elf
  193. @echo 'Invoking: Cross ARM GNU Create Flash Image'
  194. arm-none-eabi-objcopy -O ihex "foxbms.elf" "foxbms.hex"
  195. @echo 'Finished building: $@'
  196. @echo ' '
  197.  
  198. foxbms.lst: foxbms.elf
  199. @echo 'Invoking: Cross ARM GNU Create Listing'
  200. arm-none-eabi-objdump --source --all-headers --demangle --line-numbers --wide "foxbms.elf" > "foxbms.lst"
  201. @echo 'Finished building: $@'
  202. @echo ' '
  203.  
  204. foxbms.siz: foxbms.elf
  205. @echo 'Invoking: Cross ARM GNU Print Size'
  206. arm-none-eabi-size --format=berkeley $(OBJS) "foxbms.elf"
  207. @echo 'Finished building: $@'
  208. @echo ' '
  209.  
  210. # Other Targets
  211. clean:
  212. -$(RM) $(CC_DEPS)$(C++_DEPS)$(OBJS)$(C_UPPER_DEPS)$(CXX_DEPS)$(SECONDARY_FLASH)$(SECONDARY_LIST)$(SECONDARY_SIZE)$(ASM_DEPS)$(S_UPPER_DEPS)$(C_DEPS)$(CPP_DEPS) foxbms.elf
  213. -@echo ' '
  214.  
  215. post-build:
  216. -@echo 'Create binary'
  217. -arm-none-eabi-objcopy -O binary "foxbms.elf" "foxbms.bin"
  218. -@echo ' '
  219.  
  220. secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE)
  221.  
  222. .PHONY: all clean dependents
  223. .SECONDARY: post-build
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement