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

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

nucleo_f401re依存部の追加

File size: 3.7 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#
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#
66ifeq ($(KERNEL_TIMER), SYSTICK)
67CDEFS := $(CDEFS) -DUSE_SYSTICK_AS_TIMETICK
68KERNEL_COBJS := $(KERNEL_COBJS) core_timer.o
69else
70ifeq ($(KERNEL_TIMER), TIM)
71CDEFS := $(CDEFS) -DUSE_TIM_AS_HRT
72KERNEL_COBJS := $(KERNEL_COBJS) target_timer.o
73endif
74endif
75
76#
77# GNU開発環境のターゲットアーキテクチャの定義
78#
79GCC_TARGET = arm-none-eabi
80
81#
82# トレースログ記録のサンプルコードに関する定義
83#
84ifdef ENABLE_TRACE
85 COPTS := $(COPTS) -DTOPPERS_ENABLE_TRACE
86 SYSSVC_DIRS := $(SYSSVC_DIRS) $(SRCDIR)/arch/tracelog
87endif
88
89#
90# 依存関係の定義
91#
92cfg1_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#
101LDSCRIPT = $(TARGETDIR)/stm32f401re.ld
102
103#
104# チップ依存部のインクルード
105#
106include $(SRCDIR)/arch/$(PRC)_$(TOOL)/$(CHIP)/Makefile.chip
107
108#
109# フラッシュへの書き込み
110#
111UNAME_TARGET = Cygwin
112OPENOCD_PATH = /cygdrive/c/arm/OpenOCD/0.10.0-201510281129-dev/bin/openocd.exe
113OPENOCD_SCRIPT_PATH = c:/arm/OpenOCD/0.10.0-201510281129-dev/scripts
114OPENOCD_SCRIPT = c:/arm/OpenOCD/0.10.0-201510281129-dev/scripts/board/st_nucleo_f4.cfg
115
116ifeq ($(UNAME_TARGET), Cygwin)
117 GDB = arm-gdb_m0.exe
118else
119 GDB = $(ARDUINO_BASE_DIR_WIN)\hardware\tools\gcc-arm-none-eabi-4.8.3-2014q1\bin\arm-none-eabi-gdb
120endif
121
122run: $(OBJNAME).bin
123ifeq ($(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"
126else
127 "$(OPENOCD_PATH)" -s "$(OPENOCD_SCRIPT_PATH)" -f "$(OPENOCD_SCRIPT)" -c "program ./$(OBJNAME).bin verify 0x4000 reset exit"
128endif
129
130ocd: $(OBJNAME).bin
131ifeq ($(UNAME_TARGET), Cygwin)
132 cygstart "$(OPENOCD_PATH)" '-s "$(OPENOCD_SCRIPT_PATH)"' '-f "$(OPENOCD_SCRIPT)"'
133else
134 start /MIN "" "$(OPENOCD_PATH)" -s "$(OPENOCD_SCRIPT_PATH)" -f "$(OPENOCD_SCRIPT)"
135endif
136
137db: $(OBJNAME).bin
138ifeq ($(UNAME_TARGET), Cygwin)
139 $(GDB) $(OBJFILE) -x $(TARGETDIR)/gdb.ini
140else
141 $(GDB) $(OBJFILE) -x $(TARGETDIR)/gdb.ini
142endif
143
144d: $(OBJNAME).bin
145ifeq ($(UNAME_TARGET), Cygwin)
146 $(GDB) $(OBJFILE) -x $(TARGETDIR)/gdb_noflash.ini
147else
148
149endif
Note: See TracBrowser for help on using the repository browser.