[86] | 1 | #
|
---|
| 2 | # Makefile のターゲット依存部(LPCXPRESSO-LPC812用)
|
---|
| 3 | #
|
---|
| 4 |
|
---|
| 5 | #
|
---|
| 6 | # ボード名,プロセッサ名,開発環境名の定義
|
---|
| 7 | #
|
---|
| 8 | BOARD = lpcxpresso_lpc812
|
---|
| 9 | PRC = armv6_m
|
---|
| 10 | TOOL = gcc
|
---|
| 11 |
|
---|
| 12 | #
|
---|
| 13 | # CMSIS を使うかどうか
|
---|
| 14 | #
|
---|
| 15 |
|
---|
| 16 | USE_CMSIS = false
|
---|
| 17 | CMSIS_INCLUDE_PATH = /Users/saito/Documents/LPCXpresso_5.2.4/workspace/CMSIS_CORE_LPC8xx/inc
|
---|
| 18 | CMSIS_LIB_PATH = /Users/saito/Documents/LPCXpresso_5.2.4/workspace/CMSIS_CORE_LPC8xx/Debug
|
---|
| 19 |
|
---|
| 20 | #
|
---|
| 21 | # MTB(Micro Trace Buffer)を使うかどうか
|
---|
| 22 | #
|
---|
| 23 |
|
---|
| 24 | USE_MTB = false
|
---|
| 25 | MTB_BUF_SIZE = 64
|
---|
| 26 |
|
---|
| 27 | #
|
---|
| 28 | # GNU開発環境のターゲットアーキテクチャの定義
|
---|
| 29 | #
|
---|
| 30 | GCC_TARGET = arm-none-eabi
|
---|
| 31 |
|
---|
| 32 | #
|
---|
| 33 | # 各セグメントの開始アドレスの定義
|
---|
| 34 | #
|
---|
| 35 |
|
---|
| 36 | #
|
---|
| 37 | # コンパイルオプション
|
---|
| 38 | #
|
---|
| 39 | INCLUDES := $(INCLUDES) -I$(TARGETDIR)
|
---|
| 40 | CDEFS := $(CDEFS) -D__NEWLIB__
|
---|
| 41 | COPTS := $(COPTS) -mcpu=cortex-m0 -mthumb
|
---|
| 42 |
|
---|
| 43 | #
|
---|
| 44 | # カーネルに関する定義
|
---|
| 45 | #
|
---|
| 46 | KERNEL_DIR := $(KERNEL_DIR) $(TARGETDIR)
|
---|
| 47 | KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) target_support.o
|
---|
| 48 | KERNEL_COBJS := $(KERNEL_COBJS) target_config.o target_serial.o
|
---|
| 49 | KERNEL_CFLAGS := $(KERNEL_CFLAGS) -fno-strict-aliasing
|
---|
| 50 |
|
---|
| 51 | #
|
---|
| 52 | # システムサービスに関する定義
|
---|
| 53 | #
|
---|
| 54 | SYSSVC_DIR := $(SYSSVC_DIR)
|
---|
| 55 | SYSSVC_COBJS := $(SYSSVC_COBJS)
|
---|
| 56 | SYSSVC_CFLAGS := $(SYSSVC_CFLAGS)
|
---|
| 57 |
|
---|
| 58 | #
|
---|
| 59 | # コンフィギュレータ関係の変数の定義
|
---|
| 60 | #
|
---|
| 61 | CFG_TABS := $(CFG_TABS) --cfg1-def-table $(TARGETDIR)/target_def.csv
|
---|
| 62 |
|
---|
| 63 | #
|
---|
| 64 | # トレースログに関する設定
|
---|
| 65 | #
|
---|
| 66 | ifeq ($(ENABLE_TRACE),true)
|
---|
| 67 | COPTS := $(COPTS) -DTOPPERS_ENABLE_TRACE
|
---|
| 68 | KERNEL_DIR := $(KERNEL_DIR) $(SRCDIR)/arch/logtrace
|
---|
| 69 | KERNEL_COBJS := $(KERNEL_COBJS) trace_config.o trace_dump.o
|
---|
| 70 | endif
|
---|
| 71 |
|
---|
| 72 | #
|
---|
| 73 | # CMSISライブラリ使用時は USE_CMSISをtrueに定義する
|
---|
| 74 | # その場合,LPC8xx.h を include してデバイスレジスタ定義を利用することが可能
|
---|
| 75 | # インクルードファイルのサーチディレクトリとして LPC8xx.h の存在するファイルのパスを指定する
|
---|
| 76 | # (もしくは,LPCXpresso IDE でサーチパスの設定をしても良い)
|
---|
| 77 | #
|
---|
| 78 | # ライブラリファイル(libCMSIS_CORE_LPC8xx.a)の利用は想定していない.
|
---|
| 79 | # 少なくともsystem_LPC8xx.c の SystemInit に相当する処理はSSPのシステム起動時に実施しているので基本的に呼び出す必要はない
|
---|
| 80 | #
|
---|
| 81 | ifeq ($(USE_CMSIS),true)
|
---|
| 82 | INCLUDES := $(INCLUDES) -I$(CMSIS_INCLUDE_PATH)
|
---|
| 83 | # 基本的に以下のライブラリファイルは使わないことを前提とする
|
---|
| 84 | # LIBS := $(LIBS) -lCMSIS_CORE_LPC8xx -L$(CMSIS_LIB_PATH)
|
---|
| 85 | endif
|
---|
| 86 |
|
---|
| 87 | #
|
---|
| 88 | # MTB(Micro Trace Buffer)に関する設定
|
---|
| 89 | # LPCXpresso IDE の利用を前提としている
|
---|
| 90 | #
|
---|
| 91 | ifeq ($(USE_MTB),true)
|
---|
| 92 | COPTS := $(COPTS) -D__USE_MTB -D__MTB_BUF_SIZE=$(MTB_BUF_SIZE)
|
---|
| 93 | endif
|
---|
| 94 |
|
---|
| 95 | #
|
---|
| 96 | # リンカスクリプトの定義
|
---|
| 97 | #
|
---|
| 98 | LDSCRIPT = $(SRCDIR)/target/$(BOARD)_$(TOOL)/lpcxpresso_lpc812.ld
|
---|
| 99 |
|
---|
| 100 | #
|
---|
| 101 | # スタートアップモジュールに関する定義
|
---|
| 102 | #
|
---|
| 103 | # リンカスクリプトに「STARTUP(start.o)」を記述したため,スタートアップモジュー
|
---|
| 104 | # ルの名前をHIDDEN_OBJSに定義する.また,LDFLAGSに-nostdlibを追加している.
|
---|
| 105 | #
|
---|
| 106 | HIDDEN_OBJS = start.o
|
---|
| 107 |
|
---|
| 108 | $(HIDDEN_OBJS): %.o: %.S
|
---|
| 109 | $(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<
|
---|
| 110 |
|
---|
| 111 | $(HIDDEN_OBJS:.o=.d): %.d: %.S
|
---|
| 112 | @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) \
|
---|
| 113 | -O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
|
---|
| 114 |
|
---|
| 115 | LDFLAGS := -nostdlib $(LDFLAGS) --entry=_start
|
---|
| 116 |
|
---|
| 117 | #
|
---|
| 118 | # 依存関係の定義
|
---|
| 119 | #
|
---|
| 120 | cfg1_out.c: $(TARGETDIR)/target_def.csv
|
---|
| 121 | kernel_cfg.timestamp: $(TARGETDIR)/target.tf
|
---|
| 122 | $(OBJFILE): $(TARGETDIR)/target_check.tf
|
---|
| 123 |
|
---|
| 124 | #
|
---|
| 125 | # プロセッサ依存部のインクルード
|
---|
| 126 | #
|
---|
| 127 | include $(SRCDIR)/arch/$(PRC)_$(TOOL)/Makefile.prc
|
---|