Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- RM := rm -rf
- # Every subdirectory with source files must be described here
- DIR := \
- D:/foxbms2/foxbms/
- SUBDIRS := \
- src/test \
- src/test/usb_cdc_lolevel \
- src/os \
- src/os/FreeRTOS/Source \
- src/os/FreeRTOS/Source/portable/MemMang \
- src/os/FreeRTOS/Source/portable/GCC/ARM_CM4F \
- src/os/FreeRTOS/Source/CMSIS_RTOS \
- src/module/uart \
- src/module/spi \
- src/module/rcc \
- src/module/ltc \
- src/module/irq \
- src/module/io \
- src/module/eeprom \
- src/module/dma \
- src/module/cpu \
- src/module/contactor \
- src/module/config \
- src/module/com \
- src/module/can \
- src/module/adc \
- src/hal/STM32F4xx_HAL_Driver/Src \
- src/general \
- src/general/config \
- src/engine/task \
- src/engine/sysctrl \
- src/engine/sof \
- src/engine/soc \
- src/engine/isoguard \
- src/engine/diag \
- src/engine/database \
- src/engine/config \
- src/application/task \
- src/application/config \
- CFLAGS := \
- -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 \
- -std=gnu11 \
- -DSTM32F429xx \
- -DDEBUG \
- -DUSE_FULL_ASSERT \
- -DTRACE \
- -DOS_USE_TRACE_ITM \
- -DUSE_HAL_DRIVER \
- -DHSE_VALUE=8000000
- INCDIRS := \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/application" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/application/config" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/application/task" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/module/adc" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/module/can" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/module/com" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/module/config" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/module/contactor" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/module/cpuload" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/module/io" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/module/ltc" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/module/spi" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/module/uart" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/engine/config" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/engine/database" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/engine/diag" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/engine/isoguard" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/engine/soc" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/engine/sof" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/engine/sysctrl" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/engine/task" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/general" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/general/config" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/general/includes" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/hal/CMSIS/Device/ST/STM32F4xx/Include" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/hal/CMSIS/Include" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/hal/STM32F4xx_HAL_Driver/Inc" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/os" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/os/FreeRTOS" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/os/FreeRTOS/Source" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/os/FreeRTOS/Source/include" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/os/FreeRTOS/Source/CMSIS_RTOS" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/os/FreeRTOS/Source/portable/GCC/ARM_CM4F" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/test" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/module/cpu" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/module/dma" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/module/irq" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/module/rcc" \
- -I"D:\foxbms2\foxbms\EclipseWorkspace/../src/test/usb_cdc_lolevel"
- S_UPPER_SRCS := \
- $(DIR)src/general/config/startup_stm32f429xx.S
- S_UPPER_DEPS := \
- ./src/general/config/startup_stm32f429xx.d
- $(info SUBDIRS='$(SUBDIRS)')
- # All of the sources participating in the build are defined here
- C_SRCS := \
- $(wildcard $(DIR)$(SUBDIRS)/*.c)
- OBJS := \
- $(patsubst $(DIR)$(SUBDIRS)/%.c, ./$(SUBDIRS)/%.o, $(C_SRCS))
- C_DEPS := \
- $(wildcard ./$(SUBDIRS)/*.d)
- # this is a macro holding the recipe portion of the pattern rule(Note the $ are all doubled up)
- define mkRecipe
- echo 'Building file: $$<'
- echo 'Invoking: Cross ARM C Compiler'
- arm-none-eabi-gcc $$(CFLAGS) $$(INCDIRS) -MMD -MP -MF"$$(@:%.o=%.d)" -MT"$$@" -c -o "$$@" "$$<"
- echo 'Finished building: $$<'
- echo ' '
- endef
- # this macro computes the rule alongwith its recipe.
- define mkRule
- ./$1/%.o: $(DIR)$1/%.c
- @$(mkRecipe)
- endef
- # this generates the rules for every subdirectory path
- $(foreach d,$(SUBDIRS),$(eval $(call mkRule,$(d))))
- ifneq ($(MAKECMDGOALS),clean)
- ifneq ($(strip $(CC_DEPS)),)
- -include $(CC_DEPS)
- endif
- ifneq ($(strip $(C++_DEPS)),)
- -include $(C++_DEPS)
- endif
- ifneq ($(strip $(C_UPPER_DEPS)),)
- -include $(C_UPPER_DEPS)
- endif
- ifneq ($(strip $(CXX_DEPS)),)
- -include $(CXX_DEPS)
- endif
- ifneq ($(strip $(ASM_DEPS)),)
- -include $(ASM_DEPS)
- endif
- ifneq ($(strip $(S_UPPER_DEPS)),)
- -include $(S_UPPER_DEPS)
- endif
- ifneq ($(strip $(C_DEPS)),)
- -include $(C_DEPS)
- endif
- ifneq ($(strip $(CPP_DEPS)),)
- -include $(CPP_DEPS)
- endif
- endif
- # Add inputs and outputs from these tool invocations to the build variables
- SECONDARY_FLASH := \
- foxbms.hex \
- SECONDARY_LIST := \
- foxbms.lst \
- SECONDARY_SIZE := \
- foxbms.siz \
- # All Target
- all: foxbms.elf secondary-outputs
- # Tool invocations
- foxbms.elf: $(OBJS) $(USER_OBJS)
- @echo 'Building target: $@'
- @echo 'Invoking: Cross ARM C++ Linker'
- 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)
- @echo 'Finished building target: $@'
- @echo ' '
- $(MAKE) --no-print-directory post-build
- foxbms.hex: foxbms.elf
- @echo 'Invoking: Cross ARM GNU Create Flash Image'
- arm-none-eabi-objcopy -O ihex "foxbms.elf" "foxbms.hex"
- @echo 'Finished building: $@'
- @echo ' '
- foxbms.lst: foxbms.elf
- @echo 'Invoking: Cross ARM GNU Create Listing'
- arm-none-eabi-objdump --source --all-headers --demangle --line-numbers --wide "foxbms.elf" > "foxbms.lst"
- @echo 'Finished building: $@'
- @echo ' '
- foxbms.siz: foxbms.elf
- @echo 'Invoking: Cross ARM GNU Print Size'
- arm-none-eabi-size --format=berkeley $(OBJS) "foxbms.elf"
- @echo 'Finished building: $@'
- @echo ' '
- # Other Targets
- clean:
- -$(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
- -@echo ' '
- post-build:
- -@echo 'Create binary'
- -arm-none-eabi-objcopy -O binary "foxbms.elf" "foxbms.bin"
- -@echo ' '
- secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE)
- .PHONY: all clean dependents
- .SECONDARY: post-build
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement