当前makefile还没完全好

[复制链接]
 楼主| keer_zu 发表于 2021-6-23 10:27 | 显示全部楼层 |阅读模式
排除某些文件:
  1. #工程名称
  2. TARGET                         = OSAL_example

  3. #设置编译器
  4. CC                             = arm-none-eabi-gcc
  5. #CC                             = /opt/arm-none-gcc-5.4/bin/arm-none-eabi-gcc
  6. OBJCOPY                        = arm-none-eabi-objcopy
  7. #OBJCOPY                        = /opt/arm-none-gcc-5.4/bin/arm-none-eabi-objcopy
  8. ARMSIZE                        = arm-none-eabi-size

  9. #获取当前工作目录
  10. TOP=.

  11. #设置源文件后缀,c或cpp
  12. EXT                                = c

  13. #设置自定义源文件目录
  14. # APP_DIR                        = $(TOP)/APP
  15. HARD_DIR                = $(TOP)/HARDWARE
  16. PORT_STM32F4_DIR                = $(TOP)/LWIP/port
  17. SYS_DIR = $(TOP)/SYSTEM
  18. FREERTOS_DIR = $(TOP)/FreeRTOS

  19. #设置源文件搜索路径
  20. VPATH                        += $(TOP)/Cpu/Core
  21. VPATH                        += $(TOP)/firmware
  22. VPATH                        += $(TOP)/FreeRTOS
  23. VPATH                        += $(FREERTOS_DIR)/portable/GCC/ARM_CM4_MPU
  24. VPATH                        += $(TOP)/FWLIB/src
  25. VPATH                        += $(TOP)/IAP:$(TOP)/LWIP:$(TOP)/HARDWARE
  26. VPATH                        += $(HARD_DIR)/ADC:$(HARD_DIR)/CAN:$(HARD_DIR)/DIN:$(HARD_DIR)/DMA:$(HARD_DIR)/DOUT:$(HARD_DIR)/DS1302:$(HARD_DIR)/FLASH:$(HARD_DIR)/GPRS:$(HARD_DIR)/KEY:$(HARD_DIR)/TIMER:$(HARD_DIR)/USART2:$(HARD_DIR)/WDG
  27. VPATH                        += $(TOP)/LWIP/app:$(TOP)/LWIP/cfg:$(TOP)/LWIP/drv
  28. VPATH                        += $(PORT_STM32F4_DIR)/FreeRTOS:$(PORT_STM32F4_DIR)/Standalone
  29. VPATH                        += $(SYS_DIR)/delay:$(SYS_DIR)/sys:$(SYS_DIR)/usart
  30. VPATH                        += $(TOP)/Task
  31. VPATH                        += $(TOP)/USER
  32. VPATH                        += $(TOP)/Main

  33. #设置中间目标文件目录
  34. OBJ_DIR                        = $(TOP)/OBJ

  35. #设定头文件包含目录
  36. INC_FLAGS                += -I $(TOP)/FreeRTOS/include
  37. INC_FLAGS                 += -I $(TOP)/Cpu/Core
  38. INC_FLAGS                 += -I $(TOP)/firmware
  39. INC_FLAGS                += -I $(FREERTOS_DIR)/include
  40. INC_FLAGS                += -I $(FREERTOS_DIR)/portable/GCC/ARM_CM4_MPU
  41. INC_FLAGS                 += -I $(TOP)/FWLIB/inc
  42. INC_FLAGS                 += -I $(HARD_DIR)
  43. INC_FLAGS                += -I $(HARD_DIR)/ADC
  44. INC_FLAGS                += -I $(HARD_DIR)/CAN
  45. INC_FLAGS                += -I $(HARD_DIR)/DIN
  46. INC_FLAGS                += -I $(HARD_DIR)/DMA
  47. INC_FLAGS                += -I $(HARD_DIR)/DOUT
  48. INC_FLAGS                += -I $(HARD_DIR)/DS1302
  49. INC_FLAGS                += -I $(HARD_DIR)/FLASH
  50. INC_FLAGS                += -I $(HARD_DIR)/GPRS
  51. INC_FLAGS                += -I $(HARD_DIR)/KEY
  52. INC_FLAGS                += -I $(HARD_DIR)/TIMER
  53. INC_FLAGS                += -I $(HARD_DIR)/USART2
  54. INC_FLAGS                += -I $(HARD_DIR)/WDG
  55. INC_FLAGS                 += -I $(TOP)/IAP
  56. INC_FLAGS                 += -I $(TOP)/LWIP/app
  57. INC_FLAGS                += -I $(TOP)/LWIP/cfg$(TOP)/LWIP/drv
  58. INC_FLAGS                += -I $(TOP)/LWIP
  59. INC_FLAGS                += -I $(PORT_STM32F4_DIR)/FreeRTOS
  60. INC_FLAGS                += -I $(PORT_STM32F4_DIR)/Standalone
  61. INC_FLAGS                += -I $(PORT_STM32F4_DIR)/arch
  62. INC_FLAGS                 += -I $(TOP)/Main
  63. INC_FLAGS                 += -I $(SYS_DIR)/delay
  64. INC_FLAGS                += -I $(SYS_DIR)/sys
  65. INC_FLAGS                += -I $(SYS_DIR)/usart
  66. INC_FLAGS                += -I $(TOP)/Task
  67. INC_FLAGS                += -I $(TOP)/USER
  68. INC_FLAGS                += -I $(TOP)/LWIP/drv


  69. #编译选项
  70. CFLAGS                         += -W -Wall -g -mcpu=cortex-m3 -mthumb -O2 -std=gnu11 -mfloat-abi=softfp
  71. CFLAGS                         += -D USE_STDPERIPH_DRIVER
  72. CFLAGS                        += -D STM32F40XX
  73. CFLAGS                        += -D __TARGET_FPU_VFP

  74. #链接选项
  75. LFLAGS                         += -mthumb -mcpu=cortex-m3 -Wl,--start-group -lc -lm -Wl,--end-group -specs=nano.specs
  76. LFLAGS                         += -specs=nosys.specs -static -Wl,-cref,-u,Reset_Handler -Wl,-Map=Project.map -Wl,--gc-sections
  77. LFLAGS                         += -Wl,--defsym=malloc_getpagesize_P=0x80

  78. #链接启动文件和链接脚本
  79. LFLAGS                        += $(TOP)/CORE/startup_stm32f10x_hd.s
  80. LFLAGS                        += -T $(TOP)/CORE/stm32_flash.ld

  81. #固定源文件添加
  82. C_SRC                        += $(shell find $(TOP)/Cpu/Core  -name '*.$(EXT)')
  83. C_SRC                        += $(shell find $(TOP)/firmware  -name '*.$(EXT)')
  84. C_SRC                        += $(shell find $(TOP)/FreeRTOS -maxdepth 1 -name  '*.$(EXT)')
  85. C_SRC                        += $(shell find $(FREERTOS_DIR)/portable/GCC/ARM_CM4_MPU  -name '*.$(EXT)')
  86. C_SRC                        += $(shell find $(TOP)/FWLIB/src  -name '*.$(EXT)' ! -name 'stm32f4xx_fmc.$(EXT)')
  87. C_SRC                        += $(shell find $(FREERTOS_DIR)/portable/MemMang  -name 'heap_4.$(EXT)')

  88. #中间目标文件
  89. #C_OBJ                        += $(C_SRC:%.$(EXT)=%.o)
  90. C_SRC_NODIR                = $(notdir $(C_SRC))
  91. C_OBJ                         = $(patsubst %.$(EXT), $(OBJ_DIR)/%.o,$(C_SRC_NODIR))

  92. #依赖文件
  93. C_DEP                        = $(patsubst %.$(EXT), $(OBJ_DIR)/%.d,$(C_SRC_NODIR))

  94. .PHONY: all clean rebuild upload test ctags



  95. all:$(C_OBJ)
  96.         [url=home.php?mod=space&uid=3148]@echo[/url] "linking object to $(TARGET).elf"
  97.         @$(CC) $(C_OBJ) -o $(TARGET).elf $(LFLAGS)
  98.         @$(ARMSIZE) $(TARGET).elf
  99.         @echo "create $(TARGET).hex from $(TARGET).elf"
  100.         @$(OBJCOPY) $(TARGET).elf $(TARGET).hex -Oihex
  101.         @$(ARMSIZE) $(TARGET).hex
  102. #$(OBJCOPY) $(TARGET).elf  $(TARGET).bin -Obinary

  103. #静态模式
  104. #$(C_OBJ):%.o:%.$(EXT)
  105. #        $(CC) -c $(CFLAGS) -o $[url=home.php?mod=space&uid=72445]@[/url] $<

  106. $(OBJ_DIR)/%.o:%.$(EXT)
  107.         @mkdir -p OBJ
  108.         @echo "building $<"
  109.         @$(CC) -c $(CFLAGS) $(INC_FLAGS) -o $@ $<

  110. -include $(C_DEP)
  111. $(OBJ_DIR)/%.d:%.$(EXT)
  112.         @mkdir -p OBJ
  113.         @echo "making $@"

  114.         [url=home.php?mod=space&uid=126030]@set[/url] -e;rm -f $@;$(CC) -MM $(CFLAGS) $(INC_FLAGS) $< > $@.$$;sed 's,\($*\)\.o[ :]*,$(OBJ_DIR)/\1.o $(OBJ_DIR)/\1.d:,g' < $@.$$ > $@;rm -f $@.$$

  115. clean:
  116.         -rm -f $(OBJ_DIR)/*
  117.         -rm -f $(shell find ./ -name '*.map')
  118.         -rm -f $(shell find ./ -name '*.elf')
  119.         -rm -f $(shell find ./ -name '*.bin')
  120.         -rm -f $(shell find ./ -name '*.hex')

  121. rebuild: clean all

  122. test:
  123.         @echo "Test !"
  124.         @echo "C_SRC:$(C_SRC) "

  125. ctags:
  126.         @ctags -R *

  127. upload:
  128. #openocd -f /usr/local/share/openocd/scripts/interface/jlink.cfg  -f /usr/local/share/openocd/scripts/target/stm32f1x.cfg -c init -c "reset halt" -c "flash write_image erase $(TOP)/$(TARGET).hex" -c reset -c shutdown
  129.         openocd -f /usr/local/share/openocd/scripts/interface/stlink-v2.cfg  -f /usr/local/share/openocd/scripts/target/stm32f1x.cfg -c init -c "reset halt" -c "flash write_image erase $(TOP)/$(TARGET).hex" -c reset -c shutdown
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:qq群:49734243 Email:zukeqiang@gmail.com

1478

主题

12912

帖子

55

粉丝
快速回复 在线客服 返回列表 返回顶部