1 | #
|
---|
2 | # Makefile ã®ã¿ã¼ã²ããä¾åé¨ï¼NUCLEO_F401REç¨ï¼
|
---|
3 | #
|
---|
4 |
|
---|
5 | #
|
---|
6 | # ãã¼ãå, ãããåï¼ã³ã¢åï¼éçºç°å¢åã®å®ç¾©
|
---|
7 | #
|
---|
8 | BOARD = nucleo_f401re
|
---|
9 | CHIP = stm32f4xx_stm32cube
|
---|
10 | PRC = arm_m
|
---|
11 | TOOL = gcc
|
---|
12 |
|
---|
13 | #
|
---|
14 | # FPUã使ç¨ããã
|
---|
15 | #
|
---|
16 | FPU_USAGE = FPU_LAZYSTACKING
|
---|
17 |
|
---|
18 | #
|
---|
19 | # 使ç¨ããã¿ã¤ã
|
---|
20 | #
|
---|
21 | #KERNEL_TIMER = SYSTICK
|
---|
22 | KERNEL_TIMER = TIM
|
---|
23 |
|
---|
24 | #
|
---|
25 | # ã³ã³ãã¤ã«ãªãã·ã§ã³
|
---|
26 | #
|
---|
27 | INCLUDES := $(INCLUDES) -I$(TARGETDIR) -I$(TARGETDIR)/stm32fcube
|
---|
28 | CDEFS := $(CDEFS) -DSTM32F401xE
|
---|
29 | COPTS := $(COPTS)
|
---|
30 | LDFLAGS := -nostdlib -nostartfiles $(LDFLAGS)
|
---|
31 |
|
---|
32 | #
|
---|
33 | # ãã¡ã¤ã«ãµã¤ãºåæ¸ã®ããã®ãªãã·ã§ã³
|
---|
34 | #
|
---|
35 | COPTS := $(COPTS) -ffunction-sections -fdata-sections
|
---|
36 | OBJ_LDFLAGS := $(OBJ_LDFLAGS) -Wl,--gc-sections
|
---|
37 |
|
---|
38 | #
|
---|
39 | # ã«ã¼ãã«ã«é¢ããå®ç¾©
|
---|
40 | #
|
---|
41 | KERNEL_DIRS := $(KERNEL_DIRS) $(TARGETDIR) $(TARGETDIR)/stm32fcube
|
---|
42 | KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) start.o
|
---|
43 | KERNEL_COBJS := $(KERNEL_COBJS) target_kernel_impl.o \
|
---|
44 | system_stm32f4xx.o stm32f4xx_nucleo.o systemclock_config.o \
|
---|
45 | stm32f4xx_hal_gpio.o stm32f4xx_hal_uart.o \
|
---|
46 | stm32f4xx_hal_rcc.o stm32f4xx_hal_dma.o
|
---|
47 |
|
---|
48 | KERNEL_COBJS := $(KERNEL_COBJS) stm32f4xx_hal_tim.o
|
---|
49 |
|
---|
50 | #
|
---|
51 | # ã·ã¹ãã ãµã¼ãã¹ã«é¢ããå®ç¾©
|
---|
52 | #
|
---|
53 | SYSSVC_DIRS := $(SYSSVC_DIRS)
|
---|
54 | SYSSVC_COBJS := $(SYSSVC_COBJS) usart.o
|
---|
55 |
|
---|
56 | #
|
---|
57 | # ã³ã³ãã£ã®ã¥ã¬ã¼ã¿é¢ä¿ã®å¤æ°ã®å®ç¾©
|
---|
58 | #
|
---|
59 | #CFG_TABS := $(CFG_TABS) --cfg1-def-table $(TARGETDIR)/target_def.csv
|
---|
60 | #CFG1_OUT_LDFLAGS := $(LDFLAGS) -T $(TARGETDIR)/blueninja_ram_cfg1_out.ld
|
---|
61 |
|
---|
62 |
|
---|
63 | #
|
---|
64 | # 使ç¨ããã¿ã¤ã
|
---|
65 | #
|
---|
66 | ifeq ($(KERNEL_TIMER), SYSTICK)
|
---|
67 | CDEFS := $(CDEFS) -DUSE_SYSTICK_AS_TIMETICK
|
---|
68 | KERNEL_COBJS := $(KERNEL_COBJS) core_timer.o
|
---|
69 | else
|
---|
70 | ifeq ($(KERNEL_TIMER), TIM)
|
---|
71 | CDEFS := $(CDEFS) -DUSE_TIM_AS_HRT
|
---|
72 | KERNEL_COBJS := $(KERNEL_COBJS) target_timer.o
|
---|
73 | endif
|
---|
74 | endif
|
---|
75 |
|
---|
76 | #
|
---|
77 | # GNUéçºç°å¢ã®ã¿ã¼ã²ããã¢ã¼ããã¯ãã£ã®å®ç¾©
|
---|
78 | #
|
---|
79 | GCC_TARGET = arm-none-eabi
|
---|
80 |
|
---|
81 | #
|
---|
82 | # ãã¬ã¼ã¹ãã°è¨é²ã®ãµã³ãã«ã³ã¼ãã«é¢ããå®ç¾©
|
---|
83 | #
|
---|
84 | ifdef ENABLE_TRACE
|
---|
85 | COPTS := $(COPTS) -DTOPPERS_ENABLE_TRACE
|
---|
86 | SYSSVC_DIRS := $(SYSSVC_DIRS) $(SRCDIR)/arch/tracelog
|
---|
87 | endif
|
---|
88 |
|
---|
89 | #
|
---|
90 | # ä¾åé¢ä¿ã®å®ç¾©
|
---|
91 | #
|
---|
92 | cfg1_out.timestamp: $(TARGETDIR)/target_timer.cfg
|
---|
93 |
|
---|
94 | #offset.timestamp:
|
---|
95 | #kernel_cfg.timestamp: $(TARGETDIR)/target_kernel.trb
|
---|
96 | #check.timestamp: $(TARGETDIR)/target_check.trb
|
---|
97 |
|
---|
98 | #
|
---|
99 | # ãªã³ã«ã¹ã¯ãªããã®å®ç¾©
|
---|
100 | #
|
---|
101 | LDSCRIPT = $(TARGETDIR)/stm32f401re.ld
|
---|
102 |
|
---|
103 | #
|
---|
104 | # ãããä¾åé¨ã®ã¤ã³ã¯ã«ã¼ã
|
---|
105 | #
|
---|
106 | include $(SRCDIR)/arch/$(PRC)_$(TOOL)/$(CHIP)/Makefile.chip
|
---|
107 |
|
---|
108 | #
|
---|
109 | # ãã©ãã·ã¥ã¸ã®æ¸ãè¾¼ã¿
|
---|
110 | #
|
---|
111 | UNAME_TARGET = Cygwin
|
---|
112 | OPENOCD_PATH = /cygdrive/c/arm/OpenOCD/0.10.0-201510281129-dev/bin/openocd.exe
|
---|
113 | OPENOCD_SCRIPT_PATH = c:/arm/OpenOCD/0.10.0-201510281129-dev/scripts
|
---|
114 | OPENOCD_SCRIPT = c:/arm/OpenOCD/0.10.0-201510281129-dev/scripts/board/st_nucleo_f4.cfg
|
---|
115 |
|
---|
116 | ifeq ($(UNAME_TARGET), Cygwin)
|
---|
117 | GDB = arm-gdb_m0.exe
|
---|
118 | else
|
---|
119 | GDB = $(ARDUINO_BASE_DIR_WIN)\hardware\tools\gcc-arm-none-eabi-4.8.3-2014q1\bin\arm-none-eabi-gdb
|
---|
120 | endif
|
---|
121 |
|
---|
122 | run: $(OBJNAME).bin
|
---|
123 | ifeq ($(UNAME_TARGET), Cygwin)
|
---|
124 | "`cygpath -u "$(OPENOCD_PATH)"`" -s "$(OPENOCD_SCRIPT_PATH)" -f "$(OPENOCD_SCRIPT)" -c "program ./$(OBJNAME).bin verify 0x08000000 reset exit"
|
---|
125 | #-c "flash probe 0; flash write_image erase ./$(OBJNAME).axf 0x08000000 reset exit"
|
---|
126 | else
|
---|
127 | "$(OPENOCD_PATH)" -s "$(OPENOCD_SCRIPT_PATH)" -f "$(OPENOCD_SCRIPT)" -c "program ./$(OBJNAME).bin verify 0x4000 reset exit"
|
---|
128 | endif
|
---|
129 |
|
---|
130 | ocd: $(OBJNAME).bin
|
---|
131 | ifeq ($(UNAME_TARGET), Cygwin)
|
---|
132 | cygstart "$(OPENOCD_PATH)" '-s "$(OPENOCD_SCRIPT_PATH)"' '-f "$(OPENOCD_SCRIPT)"'
|
---|
133 | else
|
---|
134 | start /MIN "" "$(OPENOCD_PATH)" -s "$(OPENOCD_SCRIPT_PATH)" -f "$(OPENOCD_SCRIPT)"
|
---|
135 | endif
|
---|
136 |
|
---|
137 | db: $(OBJNAME).bin
|
---|
138 | ifeq ($(UNAME_TARGET), Cygwin)
|
---|
139 | $(GDB) $(OBJFILE) -x $(TARGETDIR)/gdb.ini
|
---|
140 | else
|
---|
141 | $(GDB) $(OBJFILE) -x $(TARGETDIR)/gdb.ini
|
---|
142 | endif
|
---|
143 |
|
---|
144 | d: $(OBJNAME).bin
|
---|
145 | ifeq ($(UNAME_TARGET), Cygwin)
|
---|
146 | $(GDB) $(OBJFILE) -x $(TARGETDIR)/gdb_noflash.ini
|
---|
147 | else
|
---|
148 |
|
---|
149 | endif
|
---|