|
2 | 2 | # This program is free software; you can redistribute it and/or modify |
3 | 3 | # it under the terms of the GNU General Public License version 3. |
4 | 4 |
|
5 | | -PROG_NAME=bootloader_fw |
6 | | - |
7 | | -SRC_DIR=./ |
8 | | -OBJ_DIR=obj/ |
9 | | -LIB_DIR=../libs/ |
10 | | -TOOLCHAIN=../../../compiler/gcc-arm-none-eabi-4_9-2015q1/bin/arm-none-eabi- |
11 | | -PROG=$(OBJ_DIR)$(PROG_NAME) |
12 | | - |
13 | | -SPL_PATH=$(LIB_DIR)spl/ |
14 | | -SPL_DEVICE_SUPPORT_PATH=$(SPL_PATH)CMSIS/CM3/DeviceSupport/ST/STM32F10x/ |
15 | | -SPL_CORE_SUPPORT=$(SPL_PATH)CMSIS/CM3/CoreSupport/ |
16 | | -SPL_PERIPH_PATH=$(SPL_PATH)STM32F10x_StdPeriph_Driver/ |
17 | | -SPL_LIB=stm32f10x |
18 | | -SPL_CONFIG_FILE=$(SPL_PATH)stm32f10x_conf.h |
19 | | -SPL_FLAGS=-DSTM32F10X_HD -DCONFIG_BOOTLOADER |
20 | | - |
21 | | -CC=$(TOOLCHAIN)gcc |
22 | | -OBJCOPY=$(TOOLCHAIN)objcopy |
23 | | -OBJDUMP=$(TOOLCHAIN)objdump |
24 | | -SIZE=$(TOOLCHAIN)size |
25 | | - |
26 | | -INCLUDES=-include$(SPL_CONFIG_FILE) |
27 | | -INCLUDES+=-I$(SPL_CORE_SUPPORT) |
28 | | -INCLUDES+=-I$(SPL_DEVICE_SUPPORT_PATH) |
29 | | -INCLUDES+=-I$(SPL_PATH) |
30 | | -INCLUDES+=-I$(SPL_PERIPH_PATH)inc |
31 | | -INCLUDES+=-I$(SRC_DIR) |
32 | | - |
33 | | -CFLAGS=-g -Wall -Werror -O3 |
34 | | -CFLAGS+=$(INCLUDES) -MMD -MP |
35 | | -CFLAGS+=-ffunction-sections -fdata-sections |
36 | | -CFLAGS+=-mcpu=cortex-m3 -mthumb |
37 | | -CFLAGS+=$(SPL_FLAGS) |
38 | | - |
39 | | -LDFLAGS=-mcpu=cortex-m3 -mthumb -Wl,--gc-sections -Wl,-Map=$(PROG).map |
40 | | - |
41 | | -vpath %.c $(SRC_DIR) $(SPL_DEVICE_SUPPORT_PATH) $(SRC_BSP_DIR) |
42 | | -vpath %.s $(SRC_DIR) |
43 | | - |
44 | | -STARTUP=startup_stm32f10x_hd.s |
45 | | - |
46 | | -SRCS=main.c system_stm32f10x.c syscalls.c uart.c |
47 | | - |
48 | | -OBJS=$(addprefix $(OBJ_DIR),$(SRCS:.c=.o)) \ |
49 | | - $(addprefix $(OBJ_DIR),$(STARTUP:.s=.o)) |
50 | | -DEPS=$(OBJS:%.o=%.d) |
51 | | - |
52 | | -LINKER_SCRIPT=$(SRC_DIR)stm32_flash.ld |
53 | | - |
54 | | -all: lib dirs $(PROG).elf |
55 | | - |
56 | | -lib: |
57 | | - $(MAKE) -C $(SPL_PATH) |
58 | | - |
59 | | -dirs: |
60 | | - mkdir -p $(OBJ_DIR) |
61 | | - |
62 | | -$(PROG).elf: $(OBJS) |
63 | | - $(CC) $(LDFLAGS) -o $@ $^ -L$(SPL_PATH) -l$(SPL_LIB) -T$(LINKER_SCRIPT) |
64 | | - $(OBJCOPY) --pad-to 0x8003800 -O ihex $(PROG).elf $(PROG).hex |
65 | | - $(OBJCOPY) -O binary $(PROG).elf $(PROG).bin |
66 | | - $(OBJDUMP) -St $(PROG).elf > $(PROG).lst |
67 | | - $(SIZE) $(PROG).elf |
68 | | - |
69 | | -$(OBJ_DIR)%.o: %.c |
70 | | - $(CC) -c $(CFLAGS) $< -o $@ |
71 | | - |
72 | | -$(OBJ_DIR)%.o: %.s |
73 | | - $(CC) -c $(CFLAGS) $< -o $@ |
74 | | - |
75 | | --include $(DEPS) |
| 5 | +all: |
| 6 | +ifeq ($(OS), Windows_NT) |
| 7 | + $(MAKE) -f Makefile.windows all |
| 8 | +else |
| 9 | + $(MAKE) -f Makefile.linux all |
| 10 | +endif |
76 | 11 |
|
77 | 12 | clean: |
78 | | - rm -rf $(OBJ_DIR) |
79 | | - |
80 | | -distclean: clean |
81 | | - $(MAKE) -C $(SPL_PATH) clean |
| 13 | +ifeq ($(OS), Windows_NT) |
| 14 | + $(MAKE) -f Makefile.windows clean |
| 15 | +else |
| 16 | + $(MAKE) -f Makefile.linux clean |
| 17 | +endif |
| 18 | + |
| 19 | +distclean: |
| 20 | +ifeq ($(OS), Windows_NT) |
| 21 | + $(MAKE) -f Makefile.windows distclean |
| 22 | +else |
| 23 | + $(MAKE) -f Makefile.linux distclean |
| 24 | +endif |
82 | 25 |
|
83 | | -program: |
84 | | - st-flash write $(PROG).bin 0x8000000 |
0 commit comments