source: rtos_arduino/trunk/asp_1.9.2/target/arduino_m0_gcc/Makefile.target

Last change on this file was 215, checked in by ertl-honda, 8 years ago

Windows用のルールの追加

File size: 5.8 KB
Line 
1#
2# @(#) $Id: Makefile.target 2709 2015-11-22 10:35:14Z ertl-honda $
3#
4
5#
6# Makefile のターゲット依存部(ARDUINO_M0用)
7#
8
9#
10# ボード名,プロセッサ名,開発環境名の定義
11#
12BOARD = arduino_m0
13PRC = arm_m
14TOOL = gcc
15
16#
17# コアタイプ
18#
19CORE_TYPE = CORTEX_M0PLUS
20
21#
22# 環境の判定
23#
24ifneq (,$(findstring /cygdrive/,$(PATH)))
25 UNAME_TARGET := Cygwin
26 ARDUINO_BASE_DIR = C:\Program Files (x86)\Arduino
27else
28ifneq (,$(findstring Windows,$(PATH)))
29 UNAME_TARGET := Windows
30 ARDUINO_BASE_DIR_WIN = C:\Program Files (x86)\Arduino
31else
32 UNAME_TARGET := MacOS
33 ARDUINO_BASE_DIR = /Applications/Arduino.app/Contents/Java
34endif
35endif
36
37#
38# Arduinoの開発環境へのインクルードパス
39#
40ifndef ARDUINO_LIB_DIR
41#
42# ARDUINO_LIB_DIR が定義されていなければArduino IDEでインストールされた
43# ライブラリを使用する
44#
45ARDUINO_LIB_DIR = $(ARDUINO_BASE_DIR)
46endif
47
48ARDUINO_INCLUDES = -I"$(ARDUINO_LIB_DIR)/hardware/tools/CMSIS/CMSIS/Include/" \
49 -I"$(ARDUINO_LIB_DIR)/hardware/tools/CMSIS/Device/ATMEL/" \
50 -I"$(ARDUINO_LIB_DIR)/hardware/arduino/samd/cores/arduino/" \
51 -I"$(ARDUINO_LIB_DIR)/hardware/arduino/samd/variants/arduino_zero/"
52
53#
54# コンパイルオプション
55#
56INCLUDES := $(ARDUINO_INCLUDES) $(INCLUDES) -I$(TARGETDIR)
57COPTS := $(COPTS) -mcpu=cortex-m0plus
58LDFLAGS := $(LDFLAGS) -mcpu=cortex-m0plus
59CDEFS := $(CDEFS) -DTOPPERS_CORTEX_M0PLUS -D__SAMD21G18A__
60CFG1_OUT_LDFLAGS := -nostdlib $(CFG1_OUT_LDFLAGS)
61
62#
63# ファイルサイズ削減のためのオプション
64#
65COPTS := $(COPTS) -ffunction-sections -fdata-sections
66LDFLAGS := $(LDFLAGS) -Wl,--gc-sections
67
68#
69# カーネルに関する定義
70#
71KERNEL_DIR := $(KERNEL_DIR) $(TARGETDIR)
72KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) start.o
73KERNEL_COBJS := $(KERNEL_COBJS) target_config.o core_timer.o arduino_m0_startup.o
74
75#
76# システムサービスに関する定義
77#
78SYSSVC_DIR := $(SYSSVC_DIR)
79SYSSVC_COBJS := $(SYSSVC_COBJS) target_serial.o
80
81#
82# コンフィギュレータ関係の変数の定義
83#
84CFG_TABS := $(CFG_TABS) --cfg1-def-table $(TARGETDIR)/target_def.csv
85
86#
87# トレースログに関する設定
88#
89ifeq ($(ENABLE_TRACE),true)
90 COPTS := $(COPTS)
91 CDEFS := $(CDEFS) -DTOPPERS_ENABLE_TRACE
92 KERNEL_DIR := $(KERNEL_DIR) $(SRCDIR)/arch/logtrace
93 KERNEL_COBJS := $(KERNEL_COBJS) trace_config.o trace_dump.o
94endif
95
96#
97# GNU開発環境のターゲットアーキテクチャの定義
98#
99GCC_TARGET = arm-none-eabi
100
101#
102# リンカスクリプトの定義
103#
104LDSCRIPT = "$(ARDUINO_LIB_DIR)/hardware/arduino/samd/variants/arduino_zero/linker_scripts/gcc/flash_with_bootloader.ld"
105#LDSCRIPT = "$(ARDUINO_LIB_DIR)/hardware//arduino/samd/variants/arduino_zero/linker_scripts/gcc/flash.ld"
106
107#
108# スタートアップモジュールに関する定義
109#
110# at91skyeye.ldに「STARTUP(start.o)」を記述したため,スタートアップモジュー
111# ルの名前をHIDDEN_OBJSに定義する.
112#
113#HIDDEN_OBJS = start.o
114#
115#$(HIDDEN_OBJS): %.o: %.S
116# $(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<
117#
118#$(HIDDEN_OBJS:.o=.d): %.d: %.S
119# @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) \
120# -O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
121#
122#LDFLAGS := $(LDFLAGS)
123
124#
125# 依存関係の定義
126#
127cfg1_out.c: $(TARGETDIR)/target_def.csv
128kernel_cfg.timestamp: $(TARGETDIR)/target.tf
129$(OBJFILE): $(TARGETDIR)/target_check.tf
130
131#
132# オフセットファイル生成のための定義
133#
134OFFSET_TF := $(TARGETDIR)/target_offset.tf
135
136#
137# プロセッサ依存部のインクルード
138#
139include $(SRCDIR)/arch/$(PRC)_$(TOOL)/common/Makefile.core
140
141#
142# フラッシュへの書き込み
143#
144ifeq ($(UNAME_TARGET), Cygwin)
145 OPENOCD_PATH = $(ARDUINO_BASE_DIR)\hardware\tools\OpenOCD-0.9.0-arduino\bin\openocd.exe
146 OPENOCD_SCRIPT_PATH = $(ARDUINO_BASE_DIR)\hardware\tools\OpenOCD-0.9.0-arduino\share\openocd\scripts
147 OPENOCD_SCRIPT = $(ARDUINO_BASE_DIR)\hardware\arduino\samd\variants\arduino_zero\openocd_scripts\arduino_zero.cfg
148endif
149ifeq ($(UNAME_TARGET), Windows)
150 OPENOCD_PATH = $(ARDUINO_BASE_DIR_WIN)\hardware\tools\OpenOCD-0.9.0-arduino\bin\openocd.exe
151 OPENOCD_SCRIPT_PATH = $(ARDUINO_BASE_DIR_WIN)\hardware\tools\OpenOCD-0.9.0-arduino\share\openocd\scripts
152 OPENOCD_SCRIPT = $(ARDUINO_BASE_DIR_WIN)\hardware\arduino\samd\variants\arduino_zero\openocd_scripts\arduino_zero.cfg
153endif
154ifeq ($(UNAME_TARGET), MacOS)
155 OPENOCD_PATH = $(ARDUINO_BASE_DIR)/hardware/tools/OpenOCD-0.9.0-arduino/bin/openocd
156 OPENOCD_SCRIPT_PATH = $(ARDUINO_BASE_DIR)/hardware/tools/OpenOCD-0.9.0-arduino/share/openocd/scripts
157 OPENOCD_SCRIPT = $(ARDUINO_BASE_DIR)/hardware/arduino/samd/variants/arduino_zero/openocd_scripts/arduino_zero.cfg
158endif
159
160ifeq ($(UNAME_TARGET), Cygwin)
161 GDB = arm-gdb_m0.exe
162else
163ifeq ($(UNAME_TARGET), MacOS)
164 GDB = $(ARDUINO_BASE_DIR)/hardware/tools/gcc-arm-none-eabi-4.8.3-2014q1/bin/arm-none-eabi-gdb
165endif
166endif
167
168run: $(OBJNAME).bin
169ifeq ($(UNAME_TARGET), Cygwin)
170 "`cygpath -u "$(OPENOCD_PATH)"`" -s "$(OPENOCD_SCRIPT_PATH)" -f "$(OPENOCD_SCRIPT)" -c "program ./$(OBJNAME).bin 0x4000 reset exit"
171else
172 "$(OPENOCD_PATH)" -s "$(OPENOCD_SCRIPT_PATH)" -f "$(OPENOCD_SCRIPT)" -c "program ./$(OBJNAME).bin 0x4000 reset exit"
173endif
174
175ocd: $(OBJNAME).bin
176ifeq ($(UNAME_TARGET), Cygwin)
177 cygstart "$(OPENOCD_PATH)" '-s "$(OPENOCD_SCRIPT_PATH)"' '-f "$(OPENOCD_SCRIPT)"'
178else
179ifeq ($(UNAME_TARGET), Windows)
180 start /MIN "" "$(OPENOCD_PATH)" -s "$(OPENOCD_SCRIPT_PATH)" -f "$(OPENOCD_SCRIPT)"
181else
182ifeq ($(UNAME_TARGET), MacOS)
183 $(OPENOCD_PATH) -s "$(OPENOCD_SCRIPT_PATH)" -f "$(OPENOCD_SCRIPT)"
184endif
185endif
186endif
187
188db: $(OBJNAME).bin
189ifeq ($(UNAME_TARGET), Cygwin)
190 $(GDB) $(OBJFILE) -x $(TARGETDIR)/gdb.ini
191else
192 $(GDB) $(OBJFILE) -x $(TARGETDIR)/gdb.ini
193endif
194
195d: $(OBJNAME).bin
196ifeq ($(UNAME_TARGET), Cygwin)
197 $(GDB) $(OBJFILE) -x $(TARGETDIR)/gdb_noflash.ini
198else
199
200endif
Note: See TracBrowser for help on using the repository browser.