source: rtos_arduino/trunk/arduino_lib/hardware/arduino/samd/cores/validation/validation_usb_device/build_gcc/test_usb_device.mk@ 136

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

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

File size: 7.2 KB
Line 
1#
2# Copyright (c) 2014 Arduino. All right reserved.
3#
4# This library is free software; you can redistribute it and/or
5# modify it under the terms of the GNU Lesser General Public
6# License as published by the Free Software Foundation; either
7# version 2.1 of the License, or (at your option) any later version.
8#
9# This library is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12# See the GNU Lesser General Public License for more details.
13#
14# You should have received a copy of the GNU Lesser General Public
15# License along with this library; if not, write to the Free Software
16# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17#
18
19# Makefile for compiling usb device
20.SUFFIXES: .o .a .c .cpp .s
21
22# putting default variant
23ifeq ("$(VARIANT)", "")
24VARIANT=arduino_zero
25endif
26
27ifeq ("$(VARIANT)", "arduino_zero")
28DEVICE=__SAMD21G18A__
29endif
30
31ifeq ($(DEVICE), __SAMD21G18A__)
32DEVICE_NAME=samd21g18
33DEVICE_SERIE=samd21
34else ifeq ($(DEVICE), __SAMD21J18A__)
35DEVICE_NAME=samd21j18
36DEVICE_SERIE=samd21
37endif
38
39#-------------------------------------------------------------------------------
40# Path
41#-------------------------------------------------------------------------------
42HARDWARE_PATH=../../../../../..
43ARCH_PATH=$(HARDWARE_PATH)/arduino/samd
44ARDUINO_CORE_PATH=$(ARCH_PATH)/cores/arduino
45ARDUINO_USB_PATH=$(ARDUINO_CORE_PATH)/USB
46VARIANT_PATH = $(ARCH_PATH)/variants/$(VARIANT)
47TOOLS_PATH = $(HARDWARE_PATH)/tools
48CMSIS_ROOT_PATH=$(TOOLS_PATH)/CMSIS
49CMSIS_ARM_PATH=$(CMSIS_ROOT_PATH)/CMSIS/Include
50CMSIS_ATMEL_PATH=$(CMSIS_ROOT_PATH)/Device/ATMEL
51#CMSIS_DEVICE_PATH=$(CMSIS_ROOT_PATH)/Device/ATMEL/$(DEVICE_SERIE)
52
53PROJECT_BASE_PATH = ..
54
55TOOLCHAIN=gcc
56
57
58# Output directories
59OUTPUT_PATH = debug_$(VARIANT)
60
61#-------------------------------------------------------------------------------
62# Files
63#-------------------------------------------------------------------------------
64
65vpath %.cpp $(PROJECT_BASE_PATH) $(ARDUINO_CORE_PATH) $(VARIANT_PATH) $(ARDUINO_USB_PATH)
66vpath %.c $(PROJECT_BASE_PATH) $(ARDUINO_CORE_PATH) $(VARIANT_PATH) $(ARDUINO_USB_PATH)
67
68#VPATH+=$(PROJECT_BASE_PATH)
69
70INCLUDES = -I$(ARDUINO_CORE_PATH)
71INCLUDES += -I$(ARDUINO_USB_PATH)
72INCLUDES += -I$(VARIANT_PATH)
73INCLUDES += -I$(CMSIS_ARM_PATH)
74INCLUDES += -I$(CMSIS_ATMEL_PATH)
75#INCLUDES += -I$(CMSIS_DEVICE_PATH)
76
77#-------------------------------------------------------------------------------
78ifdef DEBUG
79include debug.mk
80else
81include release.mk
82endif
83
84#-------------------------------------------------------------------------------
85# Tools
86#-------------------------------------------------------------------------------
87
88include $(TOOLCHAIN).mk
89
90CFLAGS += -DUSB_VID=0x2341 -DUSB_PID=0x004d
91CPPFLAGS += -DUSB_VID=0x2341 -DUSB_PID=0x004d
92
93#-------------------------------------------------------------------------------
94ifdef DEBUG
95OUTPUT_OBJ=debug
96LIBS_POSTFIX=dbg
97else
98OUTPUT_OBJ=release
99LIBS_POSTFIX=rel
100endif
101
102OUTPUT_BIN=test_usb_device_$(TOOLCHAIN)_$(LIBS_POSTFIX)
103LIBS=-Wl,--start-group -lgcc -lc -lstdc++ -Wl,--end-group
104
105LIB_PATH =-L$(PROJECT_BASE_PATH)/..
106LIB_PATH+=-L=/lib/thumb2
107#LIB_PATH+=-L=/../lib/gcc/arm-none-eabi/4.5.2/thumb2
108
109#-------------------------------------------------------------------------------
110# C source files and objects
111#-------------------------------------------------------------------------------
112#C_SRC=$(wildcard $(PROJECT_BASE_PATH)/*.c)
113#C_SRC+=$(wildcard $(ARDUINO_CORE_PATH)/*.c)
114#C_SRC+=$(wildcard $(VARIANT_PATH)/*.c)
115#C_SRC=$(wildcard $(ARDUINO_USB_PATH)/*.c)
116
117C_SRC=$(ARDUINO_USB_PATH)/samd21_device.c
118C_SRC+=$(ARDUINO_CORE_PATH)/startup.c
119C_SRC+=$(ARDUINO_CORE_PATH)/syscalls.c
120
121C_OBJ_TEMP = $(patsubst %.c, %.o, $(notdir $(C_SRC)))
122
123# during development, remove some files
124C_OBJ_FILTER=
125
126C_OBJ=$(filter-out $(C_OBJ_FILTER), $(C_OBJ_TEMP))
127
128#-------------------------------------------------------------------------------
129# CPP source files and objects
130#-------------------------------------------------------------------------------
131CPP_SRC=$(wildcard $(PROJECT_BASE_PATH)/*.cpp)
132#CPP_SRC+=$(wildcard $(ARDUINO_CORE_PATH)/*.cpp)
133#CPP_SRC+=$(wildcard $(VARIANT_PATH)/*.cpp)
134#CPP_SRC+=$(wildcard $(ARDUINO_USB_PATH)/*.cpp)
135
136CPP_SRC+=$(ARDUINO_USB_PATH)/USBCore.cpp
137CPP_SRC+=$(ARDUINO_USB_PATH)/CDC.cpp
138CPP_SRC+=$(ARDUINO_USB_PATH)/HID.cpp
139#CPP_SRC+=$(VARIANT_PATH)/variant.cpp ##//JCB needed, but not compile
140
141CPP_OBJ_TEMP = $(patsubst %.cpp, %.o, $(notdir $(CPP_SRC)))
142
143# during development, remove some files
144CPP_OBJ_FILTER=
145
146CPP_OBJ=$(filter-out $(CPP_OBJ_FILTER), $(CPP_OBJ_TEMP))
147
148#-------------------------------------------------------------------------------
149# Rules
150#-------------------------------------------------------------------------------
151all: test
152
153test: create_output $(OUTPUT_BIN)
154
155
156.PHONY: create_output
157create_output:
158 @echo ------------------------------------------------------------------------------------
159 @echo --- Preparing $(VARIANT) files in $(OUTPUT_PATH) $(OUTPUT_BIN)
160 @echo -
161 @echo -
162 @echo INCLUDES -------------------------
163 @echo $(INCLUDES)
164 @echo -
165 @echo -
166 @echo C_SRC -------------------------
167 @echo $(C_SRC)
168 @echo -
169 @echo -
170 @echo C_OBJ -------------------------
171 @echo $(C_OBJ)
172 @echo -
173 @echo -
174 @echo C_OBJ prefix -------------------------
175 @echo $(addprefix $(OUTPUT_PATH)/, $(C_OBJ))
176 @echo -
177 @echo -
178 @echo CPP_SRC -------------------------
179 @echo $(CPP_SRC)
180 @echo -
181 @echo -
182 @echo CPP_OBJ -------------------------
183 @echo $(CPP_OBJ)
184 @echo -
185 @echo -
186 @echo CPP_OBJ prefix -------------------------
187 @echo $(addprefix $(OUTPUT_PATH)/, $(CPP_OBJ))
188# @echo A_SRC -------------------------
189# @echo $(A_SRC)
190 @echo -------------------------
191
192 -@mkdir $(OUTPUT_PATH) 1>NUL 2>&1
193 @echo ------------------------------------------------------------------------------------
194
195$(addprefix $(OUTPUT_PATH)/,$(C_OBJ)): $(OUTPUT_PATH)/%.o: %.c
196 @echo Current folder is $(shell cd) - $@ $^
197# @"$(CC)" -c $(CFLAGS) $< -o $@
198# "$(CC)" -v -c $(CFLAGS) $< -o $@
199 "$(CC)" -c $(CFLAGS) $< -o $@
200
201$(addprefix $(OUTPUT_PATH)/,$(CPP_OBJ)): $(OUTPUT_PATH)/%.o: %.cpp
202 @echo Current folder is $(shell cd) - $@ $^
203# @"$(CXX)" -c $(CPPFLAGS) $< -o $@
204# "$(CXX)" -v -c $(CPPFLAGS) $< -o $@
205 "$(CXX)" -c $(CPPFLAGS) $< -o $@
206
207$(OUTPUT_BIN): $(addprefix $(OUTPUT_PATH)/, $(C_OBJ)) $(addprefix $(OUTPUT_PATH)/, $(CPP_OBJ)) $(addprefix $(OUTPUT_PATH)/, $(A_OBJ))
208 @"$(CC)" $(LIB_PATH) $(LDFLAGS) -T"$(VARIANT_PATH)/linker_scripts/gcc/flash.ld" -Wl,-Map,$(OUTPUT_PATH)/$@.map -o $(OUTPUT_PATH)/$@.elf $^ $(LIBS)
209 @"$(NM)" $(OUTPUT_PATH)/$@.elf >$(OUTPUT_PATH)/$@.elf.txt
210 @"$(OBJCOPY)" -O binary $(OUTPUT_PATH)/$@.elf $(OUTPUT_PATH)/$@.bin
211 $(SIZE) $^ $(OUTPUT_PATH)/$@.elf
212
213.PHONY: clean
214clean:
215 @echo ------------------------------------------------------------------------------------
216 @echo --- Cleaning test files for $(VARIANT)
217 -@$(RM) $(OUTPUT_PATH) 1>NUL 2>&1
218 @echo ------------------------------------------------------------------------------------
219
220# -$(RM) $(OUTPUT_PATH)/test.o
221# -$(RM) $(OUTPUT_PATH)/$(OUTPUT_BIN).elf
222# -$(RM) $(OUTPUT_PATH)/$(OUTPUT_BIN).elf.txt
223# -$(RM) $(OUTPUT_PATH)/$(OUTPUT_BIN).bin
224# -$(RM) $(OUTPUT_PATH)/$(OUTPUT_BIN).map
225
226debug: test
227 @"$(GDB)" -x "$(VARIANT_PATH)/debug_scripts/gcc/$(VARIANT)_flash.gdb" -ex "reset" -readnow -se $(OUTPUT_PATH)/$(OUTPUT_BIN).elf
228
Note: See TracBrowser for help on using the repository browser.