source: asp3_wo_tecs/trunk/target/nucleo_f401re_gcc/Makefile.target@ 305

Last change on this file since 305 was 305, checked in by ertl-honda, 7 years ago

3.0.0のリリース版に追従

File size: 3.5 KB
Line 
1#
2# Makefile のターゲット依存部(NUCLEO_F401RE用)
3#
4
5#
6# ボード名, チップ名,コア名,開発環境名の定義
7#
8BOARD = nucleo_f401re
9CHIP = stm32f4xx_stm32cube
10PRC = arm_m
11TOOL = gcc
12
13#
14# FPUを使用するか
15#
16FPU_USAGE = FPU_LAZYSTACKING
17
18#
19# 使用するタイマ
20#
21#KERNEL_TIMER = SYSTICK
22KERNEL_TIMER = TIM
23
24#
25# コンパイルオプション
26#
27INCLUDES := $(INCLUDES) -I$(TARGETDIR) -I$(TARGETDIR)/stm32fcube
28CDEFS := $(CDEFS) -DSTM32F401xE
29COPTS := $(COPTS)
30LDFLAGS := -nostdlib -nostartfiles $(LDFLAGS)
31
32#
33# ファイルサイズ削減のためのオプション
34#
35COPTS := $(COPTS) -ffunction-sections -fdata-sections
36OBJ_LDFLAGS := $(OBJ_LDFLAGS) -Wl,--gc-sections
37
38#
39# カーネルに関する定義
40#
41KERNEL_DIRS := $(KERNEL_DIRS) $(TARGETDIR) $(TARGETDIR)/stm32fcube
42KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) start.o
43KERNEL_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
48KERNEL_COBJS := $(KERNEL_COBJS) stm32f4xx_hal_tim.o
49
50#
51# システムサービスに関する定義
52#
53SYSSVC_DIRS := $(SYSSVC_DIRS)
54SYSSVC_COBJS := $(SYSSVC_COBJS) usart.o
55
56#
57# 使用するタイマ
58#
59ifeq ($(KERNEL_TIMER), SYSTICK)
60CDEFS := $(CDEFS) -DUSE_SYSTICK_AS_TIMETICK
61KERNEL_COBJS := $(KERNEL_COBJS) core_timer.o
62else
63ifeq ($(KERNEL_TIMER), TIM)
64CDEFS := $(CDEFS) -DUSE_TIM_AS_HRT
65KERNEL_COBJS := $(KERNEL_COBJS) target_timer.o
66endif
67endif
68
69#
70# GNU開発環境のターゲットアーキテクチャの定義
71#
72GCC_TARGET = arm-none-eabi
73
74#
75# トレースログ記録のサンプルコードに関する定義
76#
77ifdef ENABLE_TRACE
78 COPTS := $(COPTS) -DTOPPERS_ENABLE_TRACE
79 SYSSVC_DIRS := $(SYSSVC_DIRS) $(SRCDIR)/arch/tracelog
80endif
81
82#
83# 依存関係の定義
84#
85cfg1_out.timestamp: $(TARGETDIR)/target_timer.cfg
86offset.timestamp:
87kernel_cfg.timestamp: $(TARGETDIR)/target_kernel.trb
88check.timestamp: $(TARGETDIR)/target_check.trb
89
90#
91# リンカスクリプトの定義
92#
93LDSCRIPT = $(TARGETDIR)/stm32f401re.ld
94
95#
96# チップ依存部のインクルード
97#
98include $(SRCDIR)/arch/$(PRC)_$(TOOL)/$(CHIP)/Makefile.chip
99
100#
101# フラッシュへの書き込み
102#
103UNAME_TARGET = Cygwin
104OPENOCD_PATH = /cygdrive/c/arm/OpenOCD/0.10.0-201510281129-dev/bin/openocd.exe
105OPENOCD_SCRIPT_PATH = c:/arm/OpenOCD/0.10.0-201510281129-dev/scripts
106OPENOCD_SCRIPT = c:/arm/OpenOCD/0.10.0-201510281129-dev/scripts/board/st_nucleo_f4.cfg
107
108ifeq ($(UNAME_TARGET), Cygwin)
109 GDB = arm-gdb_m0.exe
110else
111 GDB = $(ARDUINO_BASE_DIR_WIN)\hardware\tools\gcc-arm-none-eabi-4.8.3-2014q1\bin\arm-none-eabi-gdb
112endif
113
114run: $(OBJNAME).bin
115ifeq ($(UNAME_TARGET), Cygwin)
116 "`cygpath -u "$(OPENOCD_PATH)"`" -s "$(OPENOCD_SCRIPT_PATH)" -f "$(OPENOCD_SCRIPT)" -c "program ./$(OBJNAME).bin verify 0x08000000 reset exit"
117#-c "flash probe 0; flash write_image erase ./$(OBJNAME).axf 0x08000000 reset exit"
118else
119 "$(OPENOCD_PATH)" -s "$(OPENOCD_SCRIPT_PATH)" -f "$(OPENOCD_SCRIPT)" -c "program ./$(OBJNAME).bin verify 0x4000 reset exit"
120endif
121
122ocd: $(OBJNAME).bin
123ifeq ($(UNAME_TARGET), Cygwin)
124 cygstart "$(OPENOCD_PATH)" '-s "$(OPENOCD_SCRIPT_PATH)"' '-f "$(OPENOCD_SCRIPT)"'
125else
126 start /MIN "" "$(OPENOCD_PATH)" -s "$(OPENOCD_SCRIPT_PATH)" -f "$(OPENOCD_SCRIPT)"
127endif
128
129db: $(OBJNAME).bin
130ifeq ($(UNAME_TARGET), Cygwin)
131 $(GDB) $(OBJFILE) -x $(TARGETDIR)/gdb.ini
132else
133 $(GDB) $(OBJFILE) -x $(TARGETDIR)/gdb.ini
134endif
135
136d: $(OBJNAME).bin
137ifeq ($(UNAME_TARGET), Cygwin)
138 $(GDB) $(OBJFILE) -x $(TARGETDIR)/gdb_noflash.ini
139else
140
141endif
Note: See TracBrowser for help on using the repository browser.