source: ssp_armv6_m_gcc/trunk/lpcxpresso_lpc812_gcc/Makefile.target@ 421

Last change on this file since 421 was 421, checked in by nmir-saito, 4 years ago

Merge branch 'rubycfg' to trunk

  • Property svn:mime-type set to text/plain; charset=utf-8
File size: 4.5 KB
RevLine 
[86]1#
[421]2# Makefile のターゲット依存部(LPCXPRESSO-LPC812用)
[86]3#
4
5#
[421]6# ボード名,プロセッサ名,開発環境名の定義
[86]7#
8BOARD = lpcxpresso_lpc812
9PRC = armv6_m
10TOOL = gcc
11
12#
[421]13# CMSIS を使うかどうか
[86]14#
15USE_CMSIS = false
16CMSIS_INCLUDE_PATH = /Users/saito/Documents/LPCXpresso_5.2.4/workspace/CMSIS_CORE_LPC8xx/inc
17CMSIS_LIB_PATH = /Users/saito/Documents/LPCXpresso_5.2.4/workspace/CMSIS_CORE_LPC8xx/Debug
18
19#
[421]20# MTB(Micro Trace Buffer)を使うかどうか
[86]21#
22USE_MTB = false
23MTB_BUF_SIZE = 64
24
25#
[421]26# GNU開発環境のターゲットアーキテクチャの定義
[86]27#
28GCC_TARGET = arm-none-eabi
29
30#
[421]31# コンパイルオプション
[86]32#
[421]33COPTS := $(COPTS) -mcpu=cortex-m0 -mthumb
34CDEFS := $(CDEFS) -D__NEWLIB__
35INCLUDES := $(INCLUDES) -I$(TARGETDIR)
36LDFLAGS := $(LDFLAGS)
37LIBS := $(LIBS)
[86]38
39#
[421]40# システムサービスに関する定義
[86]41#
[421]42SYSSVC_DIRS := $(SYSSVC_DIRS)
43SYSSVC_ASMOBJS := $(SYSSVC_ASMOBJS)
44SYSSVC_COBJS := $(SYSSVC_COBJS)
45SYSSVC_CFLAGS := $(SYSSVC_CFLAGS)
46SYSSVC_LIBS := $(SYSSVC_LIBS)
[86]47
48#
[421]49# カーネルに関する定義
[86]50#
[421]51KERNEL_DIRS := $(KERNEL_DIRS) $(TARGETDIR)
52KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) target_support.o
[86]53KERNEL_COBJS := $(KERNEL_COBJS) target_config.o target_serial.o
54KERNEL_CFLAGS := $(KERNEL_CFLAGS) -fno-strict-aliasing
55
56#
[421]57# トレースログに関する設定
[86]58#
[421]59ifeq ($(ENABLE_TRACE),true)
60 COPTS := $(COPTS) -DTOPPERS_ENABLE_TRACE
61 KERNEL_DIRS := $(KERNEL_DIRS) $(SRCDIR)/arch/logtrace
62 KERNEL_COBJS := $(KERNEL_COBJS) trace_config.o trace_dump.o
63endif
[86]64
65#
[421]66# コンフィギュレータ関係の変数の定義
[86]67#
[421]68CFG_TABS := $(CFG_TABS) --symval-table $(TARGETDIR)/target_sym.def
69CFG1_OUT_LDFLAGS := $(CFG1_OUT_LDFLAGS)
70CFG_OBJS := $(CFG_OBJS)
71CFG2_OUT := $(CFG2_OUT)
[86]72
73#
[421]74# -Wall オプションの省略
75# -Wallを追加したくない場合に true に定義する
[86]76#
[421]77#OMIT_WARNING_ALL = true
[86]78
79#
[421]80# 最適化フラグの省略
81# -O2を追加したくない場合に true に定義する
[86]82#
[421]83#OMIT_OPTIMIZATION = true
84
[86]85#
[421]86# CMSISライブラリ使用時は USE_CMSISをtrueに定義する
87# その場合,LPC8xx.h を include してデバイスレジスタ定義を利用することが可能
88# インクルードファイルのサーチディレクトリとして LPC8xx.h の存在するファイルのパスを指定する
89# (もしくは,LPCXpresso IDE でサーチパスの設定をしても良い)
90#
91# ライブラリファイル(libCMSIS_CORE_LPC8xx.a)の利用は想定していない.
92# 少なくともsystem_LPC8xx.c の SystemInit に相当する処理はSSPのシステム起動時に実施しているので基本的に呼び出す必要はない
93#
[86]94ifeq ($(USE_CMSIS),true)
95 INCLUDES := $(INCLUDES) -I$(CMSIS_INCLUDE_PATH)
[421]96 # 基本的に以下のライブラリファイルは使わないことを前提とする
[86]97 # LIBS := $(LIBS) -lCMSIS_CORE_LPC8xx -L$(CMSIS_LIB_PATH)
98endif
99
100#
[421]101# MTB(Micro Trace Buffer)に関する設定
102# LPCXpresso IDE の利用を前提としている
[86]103#
104ifeq ($(USE_MTB),true)
105 COPTS := $(COPTS) -D__USE_MTB -D__MTB_BUF_SIZE=$(MTB_BUF_SIZE)
106endif
107
108#
[421]109# リンカスクリプトの定義
[86]110#
111LDSCRIPT = $(SRCDIR)/target/$(BOARD)_$(TOOL)/lpcxpresso_lpc812.ld
112
113#
[421]114# 各セクションの先頭番地の指定
[86]115#
[421]116#TEXT_START_ADDRESS =
117#DATA_START_ADDRESS =
118
[86]119#
[421]120# スタートアップモジュールに関する定義
121#
122
123# スタートアップモジュール
124START_OBJS =
125# リンカスクリプトに「STARTUP(start.o)」を記述したため,スタートアップモジュー
126# ルの名前をHIDDEN_OBJSに定義する.また,LDFLAGSに-nostdlibを追加している.
[86]127HIDDEN_OBJS = start.o
128
[421]129# スタートアップモジュールのコンパイルルール
130$(START_OBJS): %.o: %.S
131 $(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<
[86]132$(HIDDEN_OBJS): %.o: %.S
133 $(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<
134
[421]135
136# スタートアップモジュールの依存関係作成ルール
137$(START_OBJS:.o=.d): %.d: %.S
138 @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
139 -O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
[86]140$(HIDDEN_OBJS:.o=.d): %.d: %.S
[421]141 @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
142 -O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
[86]143
144LDFLAGS := -nostdlib $(LDFLAGS) --entry=_start
145
146#
[421]147# 依存関係の定義
[86]148#
[421]149cfg1_out.c: $(TARGETDIR)/target_sym.def
150kernel_cfg.timestamp: $(TARGETDIR)/target_kernel.trb
151check.timestamp: $(TARGETDIR)/target_check.trb
[86]152
153#
[421]154# その他
[86]155#
[421]156CLEAN_FILES := $(CLEAN_FILES)
157REALCLEAN_FILES := $(REALCLEAN_FILES)
158
159
160#
161# プロセッサ依存部のインクルード
162#
[86]163include $(SRCDIR)/arch/$(PRC)_$(TOOL)/Makefile.prc
Note: See TracBrowser for help on using the repository browser.