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

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

ライブラリとOS及びベーシックなサンプルの追加.

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