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

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

MANIFESTの更新

File size: 3.6 KB
RevLine 
[303]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#
[308]72ifndef GCC_TARGET
73 GCC_TARGET = arm-none-eabi
74endif
[303]75
76#
77# トレースログ記録のサンプルコードに関する定義
78#
79ifdef ENABLE_TRACE
80 COPTS := $(COPTS) -DTOPPERS_ENABLE_TRACE
81 SYSSVC_DIRS := $(SYSSVC_DIRS) $(SRCDIR)/arch/tracelog
82endif
83
84#
85# 依存関係の定義
86#
87cfg1_out.timestamp: $(TARGETDIR)/target_timer.cfg
[305]88offset.timestamp:
89kernel_cfg.timestamp: $(TARGETDIR)/target_kernel.trb
90check.timestamp: $(TARGETDIR)/target_check.trb
[303]91
92#
93# リンカスクリプトの定義
94#
95LDSCRIPT = $(TARGETDIR)/stm32f401re.ld
96
97#
98# チップ依存部のインクルード
99#
100include $(SRCDIR)/arch/$(PRC)_$(TOOL)/$(CHIP)/Makefile.chip
101
102#
103# フラッシュへの書き込み
104#
105UNAME_TARGET = Cygwin
106OPENOCD_PATH = /cygdrive/c/arm/OpenOCD/0.10.0-201510281129-dev/bin/openocd.exe
107OPENOCD_SCRIPT_PATH = c:/arm/OpenOCD/0.10.0-201510281129-dev/scripts
108OPENOCD_SCRIPT = c:/arm/OpenOCD/0.10.0-201510281129-dev/scripts/board/st_nucleo_f4.cfg
109
110ifeq ($(UNAME_TARGET), Cygwin)
111 GDB = arm-gdb_m0.exe
112else
113 GDB = $(ARDUINO_BASE_DIR_WIN)\hardware\tools\gcc-arm-none-eabi-4.8.3-2014q1\bin\arm-none-eabi-gdb
114endif
115
116run: $(OBJNAME).bin
117ifeq ($(UNAME_TARGET), Cygwin)
118 "`cygpath -u "$(OPENOCD_PATH)"`" -s "$(OPENOCD_SCRIPT_PATH)" -f "$(OPENOCD_SCRIPT)" -c "program ./$(OBJNAME).bin verify 0x08000000 reset exit"
119#-c "flash probe 0; flash write_image erase ./$(OBJNAME).axf 0x08000000 reset exit"
120else
121 "$(OPENOCD_PATH)" -s "$(OPENOCD_SCRIPT_PATH)" -f "$(OPENOCD_SCRIPT)" -c "program ./$(OBJNAME).bin verify 0x4000 reset exit"
122endif
123
124ocd: $(OBJNAME).bin
125ifeq ($(UNAME_TARGET), Cygwin)
126 cygstart "$(OPENOCD_PATH)" '-s "$(OPENOCD_SCRIPT_PATH)"' '-f "$(OPENOCD_SCRIPT)"'
127else
128 start /MIN "" "$(OPENOCD_PATH)" -s "$(OPENOCD_SCRIPT_PATH)" -f "$(OPENOCD_SCRIPT)"
129endif
130
131db: $(OBJNAME).bin
132ifeq ($(UNAME_TARGET), Cygwin)
133 $(GDB) $(OBJFILE) -x $(TARGETDIR)/gdb.ini
134else
135 $(GDB) $(OBJFILE) -x $(TARGETDIR)/gdb.ini
136endif
137
138d: $(OBJNAME).bin
139ifeq ($(UNAME_TARGET), Cygwin)
140 $(GDB) $(OBJFILE) -x $(TARGETDIR)/gdb_noflash.ini
141else
142
143endif
Note: See TracBrowser for help on using the repository browser.