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

Last change on this file since 214 was 214, checked in by ertl-yutaka, 8 years ago

MacOS対応.

File size: 5.4 KB
RevLine 
[136]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#
[214]22# 環境の判定
[136]23#
[214]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 = C:\Program Files (x86)\Arduino
31else
32 UNAME_TARGET := MacOS
33 ARDUINO_BASE_DIR = /Applications/Arduino.app/Contents/Java
34endif
35endif
[136]36
37#
38# Arduinoの開発環境へのインクルードパス
39#
40ifndef ARDUINO_LIB_DIR
41#
42# ARDUINO_LIB_DIR が定義されていなければArduino IDEでインストールされた
43# ライブラリを使用する
44#
[214]45ARDUINO_LIB_DIR = $(ARDUINO_BASE_DIR)
[136]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#
[214]142# フラッシュへの書き込み
[136]143#
[214]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
[136]148endif
[214]149ifeq ($(UNAME_TARGET), MacOS)
150 OPENOCD_PATH = $(ARDUINO_BASE_DIR)/hardware/tools/OpenOCD-0.9.0-arduino/bin/openocd
151 OPENOCD_SCRIPT_PATH = $(ARDUINO_BASE_DIR)/hardware/tools/OpenOCD-0.9.0-arduino/share/openocd/scripts
152 OPENOCD_SCRIPT = $(ARDUINO_BASE_DIR)/hardware/arduino/samd/variants/arduino_zero/openocd_scripts/arduino_zero.cfg
[136]153endif
154
155ifeq ($(UNAME_TARGET), Cygwin)
156 GDB = arm-gdb_m0.exe
157else
[214]158ifeq ($(UNAME_TARGET), MacOS)
159 GDB = $(ARDUINO_BASE_DIR)/hardware/tools/gcc-arm-none-eabi-4.8.3-2014q1/bin/arm-none-eabi-gdb
[136]160endif
[214]161endif
[136]162
163run: $(OBJNAME).bin
164ifeq ($(UNAME_TARGET), Cygwin)
[185]165 "`cygpath -u "$(OPENOCD_PATH)"`" -s "$(OPENOCD_SCRIPT_PATH)" -f "$(OPENOCD_SCRIPT)" -c "program ./$(OBJNAME).bin 0x4000 reset exit"
[136]166else
[185]167 "$(OPENOCD_PATH)" -s "$(OPENOCD_SCRIPT_PATH)" -f "$(OPENOCD_SCRIPT)" -c "program ./$(OBJNAME).bin 0x4000 reset exit"
[136]168endif
169
170ocd: $(OBJNAME).bin
171ifeq ($(UNAME_TARGET), Cygwin)
172 cygstart "$(OPENOCD_PATH)" '-s "$(OPENOCD_SCRIPT_PATH)"' '-f "$(OPENOCD_SCRIPT)"'
173else
[214]174ifeq ($(UNAME_TARGET), Windows)
[136]175 start /MIN "" "$(OPENOCD_PATH)" -s "$(OPENOCD_SCRIPT_PATH)" -f "$(OPENOCD_SCRIPT)"
[214]176else
177ifeq ($(UNAME_TARGET), MacOS)
178 $(OPENOCD_PATH) -s "$(OPENOCD_SCRIPT_PATH)" -f "$(OPENOCD_SCRIPT)"
[136]179endif
[214]180endif
181endif
[136]182
183db: $(OBJNAME).bin
184ifeq ($(UNAME_TARGET), Cygwin)
185 $(GDB) $(OBJFILE) -x $(TARGETDIR)/gdb.ini
186else
187 $(GDB) $(OBJFILE) -x $(TARGETDIR)/gdb.ini
188endif
189
190d: $(OBJNAME).bin
191ifeq ($(UNAME_TARGET), Cygwin)
192 $(GDB) $(OBJFILE) -x $(TARGETDIR)/gdb_noflash.ini
193else
194
195endif
Note: See TracBrowser for help on using the repository browser.