# # Makefile のターゲット依存部(LPCXPRESSO-LPC812用) # # # ボード名,プロセッサ名,開発環境名の定義 # BOARD = lpcxpresso_lpc812 PRC = armv6_m TOOL = gcc # # CMSIS を使うかどうか # USE_CMSIS = false CMSIS_INCLUDE_PATH = /Users/saito/Documents/LPCXpresso_5.2.4/workspace/CMSIS_CORE_LPC8xx/inc CMSIS_LIB_PATH = /Users/saito/Documents/LPCXpresso_5.2.4/workspace/CMSIS_CORE_LPC8xx/Debug # # MTB(Micro Trace Buffer)を使うかどうか # USE_MTB = false MTB_BUF_SIZE = 64 # # GNU開発環境のターゲットアーキテクチャの定義 # GCC_TARGET = arm-none-eabi # # 各セグメントの開始アドレスの定義 # # # コンパイルオプション # INCLUDES := $(INCLUDES) -I$(TARGETDIR) CDEFS := $(CDEFS) -D__NEWLIB__ COPTS := $(COPTS) -mcpu=cortex-m0 -mthumb # # カーネルに関する定義 # KERNEL_DIR := $(KERNEL_DIR) $(TARGETDIR) KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) target_support.o KERNEL_COBJS := $(KERNEL_COBJS) target_config.o target_serial.o KERNEL_CFLAGS := $(KERNEL_CFLAGS) -fno-strict-aliasing # # システムサービスに関する定義 # SYSSVC_DIR := $(SYSSVC_DIR) SYSSVC_COBJS := $(SYSSVC_COBJS) SYSSVC_CFLAGS := $(SYSSVC_CFLAGS) # # コンフィギュレータ関係の変数の定義 # CFG_TABS := $(CFG_TABS) --cfg1-def-table $(TARGETDIR)/target_def.csv # # トレースログに関する設定 # ifeq ($(ENABLE_TRACE),true) COPTS := $(COPTS) -DTOPPERS_ENABLE_TRACE KERNEL_DIR := $(KERNEL_DIR) $(SRCDIR)/arch/logtrace KERNEL_COBJS := $(KERNEL_COBJS) trace_config.o trace_dump.o endif # # CMSISライブラリ使用時は USE_CMSISをtrueに定義する # その場合,LPC8xx.h を include してデバイスレジスタ定義を利用することが可能 # インクルードファイルのサーチディレクトリとして LPC8xx.h の存在するファイルのパスを指定する # (もしくは,LPCXpresso IDE でサーチパスの設定をしても良い) # # ライブラリファイル(libCMSIS_CORE_LPC8xx.a)の利用は想定していない. # 少なくともsystem_LPC8xx.c の SystemInit に相当する処理はSSPのシステム起動時に実施しているので基本的に呼び出す必要はない # ifeq ($(USE_CMSIS),true) INCLUDES := $(INCLUDES) -I$(CMSIS_INCLUDE_PATH) # 基本的に以下のライブラリファイルは使わないことを前提とする # LIBS := $(LIBS) -lCMSIS_CORE_LPC8xx -L$(CMSIS_LIB_PATH) endif # # MTB(Micro Trace Buffer)に関する設定 # LPCXpresso IDE の利用を前提としている # ifeq ($(USE_MTB),true) COPTS := $(COPTS) -D__USE_MTB -D__MTB_BUF_SIZE=$(MTB_BUF_SIZE) endif # # リンカスクリプトの定義 # LDSCRIPT = $(SRCDIR)/target/$(BOARD)_$(TOOL)/lpcxpresso_lpc812.ld # # スタートアップモジュールに関する定義 # # リンカスクリプトに「STARTUP(start.o)」を記述したため,スタートアップモジュー # ルの名前をHIDDEN_OBJSに定義する.また,LDFLAGSに-nostdlibを追加している. # HIDDEN_OBJS = start.o $(HIDDEN_OBJS): %.o: %.S $(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $< $(HIDDEN_OBJS:.o=.d): %.d: %.S @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) \ -O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend LDFLAGS := -nostdlib $(LDFLAGS) --entry=_start # # 依存関係の定義 # cfg1_out.c: $(TARGETDIR)/target_def.csv kernel_cfg.timestamp: $(TARGETDIR)/target.tf $(OBJFILE): $(TARGETDIR)/target_check.tf # # プロセッサ依存部のインクルード # include $(SRCDIR)/arch/$(PRC)_$(TOOL)/Makefile.prc