GCC_ARM_PATH := E:\gcc-arm-none-eabi-5_4-2016q3-20160926-win32 THUMB_PATH := $(GCC_ARM_PATH)\arm-none-eabi\lib\thumb CROSS_COMPILE := $(GCC_ARM_PATH)\bin\arm-none-eabi- BT_PATH= ..\..\..\..\..\respin_1208 PATCH_PATH = $(BT_PATH)\output UTIL_PATH = $(BT_PATH)\util OUT_PATH = .\output INC = .\$(GCC_ARM_PATH)\arm-none-eabi\include SDK_ROOT = ..\..\..\..\Librarier SRC_ROOT = ..\..\User INCLUDES = -I$(SDK_ROOT)/cmsis/ \ -I$(SDK_ROOT)/device/ \ -I$(SDK_ROOT)/drivers/hal/ \ -I$(SDK_ROOT)/drivers/uart/ \ -I$(SDK_ROOT)/drivers/gpio/ \ -I$(SDK_ROOT)/drivers/it/ \ -I$(SDK_ROOT)/drivers/timer/ \ -I$(SDK_ROOT)/drivers/bt/ \ -I$(SDK_ROOT)/patch/ \ SRC_FILES = $(SRC_ROOT)/main.c \ $(SDK_ROOT)/drivers/uart/yc11xx_uart.c \ $(SDK_ROOT)/drivers/hal/yc_drv_common.c \ $(SDK_ROOT)/libcore/sys/system.c \ $(SDK_ROOT)/drivers/gpio/yc11xx_gpio.c \ $(SDK_ROOT)/drivers/it/yc_it.c \ $(SDK_ROOT)/drivers/timer/yc_timer.c \ $(SDK_ROOT)/drivers/bt/yc11xx_bt.c \ $(SDK_ROOT)/libcore/sys/systick.c OBJ = ${patsubst %.c, %.o, ${SRC_FILES}} LDSCRIPTS := -T gcc.ld -lgcc LIBFILES := -lm -I${INC} -l yc11xx -lc LIBDIR := -L. LIBDIR += -L "$(GCC_ARM_PATH)\lib\gcc\arm-none-eabi\5.4.1\armv6-m" LIBDIR += -L "$(GCC_ARM_PATH)\arm-none-eabi\lib\armv6-m" LIBDIR += -L "$(SDK_ROOT)\libcore" #$(warning OBJIEAT is $(OBJ)) all : output\a.out $(CROSS_COMPILE)objdump -S $^ > output\disasm $(CROSS_COMPILE)objcopy $^ -O ihex output\out.hex perl .\tool\hex2rom.pl 0 80000 < output\out.hex > output\out.rom copy $(PATCH_PATH)\ramcode.rom .\output\ramcode.rom copy $(PATCH_PATH)\sched.rom .\output\sched.rom copy $(PATCH_PATH)\memmap.format .\output\memmap.format OBJS = startup_m0.o output\a.out : $(OBJ) $(OBJS) $(CROSS_COMPILE)ld $^ -o $@ $(LIBDIR) $(LIBFILES) $(LDSCRIPTS) -Map=./output\memmap $(OBJS) : ./startup/startup_m0.s $(CROSS_COMPILE)as $^ -o $@ -mthumb -mcpu=cortex-m0 $(OBJ) : %.o : %.c $(CROSS_COMPILE)gcc $^ -c $(INCLUDES) -g -O0 -o $@ -mthumb -mcpu=cortex-m0 -msoft-float -fno-toplevel-reorder clean : del /Q output\*.* del /Q /S .\*.o del /Q /S ..\..\*.o