Index: perf/README.txt
===================================================================
--- perf/README.txt	(revision 18)
+++ perf/README.txt	(revision 19)
@@ -1,5 +1,5 @@
 ==========================================================================
                      TOPPERSカーネル性能評価プログラム
-                                       Last Modified: 2012 Apr 26 16:01:41
+                                       Last Modified: 2012 May 02 09:11:11
 ==========================================================================
 ○目的
@@ -21,5 +21,10 @@
    ./perf.c
   ./patch : fmp用のパッチ
-  
+./hrp2
+  ./perf : HRP2用の性能評価プログラム
+   ./perf.cfg
+   ./perf.h
+   ./perf.c
+     
 ○方針
 ・可能な限り依存部の変更で計測可能とする．
@@ -32,4 +37,6 @@
 ○計測項目 
   [FMP]はFMPカーネルのみ該当する
+  [HRP2]はHRPカーネルのみ該当する
+  
 ・起動時間
   ・起動時からsta_kerまで．
@@ -43,4 +50,6 @@
   ・ディスパッチあり
   ・ディスパッチあり（他コア）[FMP]
+  ・ディスパッチあり（ユーザードメイン間）[HRP2]  
+  ・ディスパッチあり（異なるユーザードメイン間）[HRP2]  
 
 ・割り込み応答時間
Index: perf/hrp2/perf/Makefile
===================================================================
--- perf/hrp2/perf/Makefile	(revision 19)
+++ perf/hrp2/perf/Makefile	(revision 19)
@@ -0,0 +1,588 @@
+#
+#  TOPPERS/HRP Kernel
+#      Toyohashi Open Platform for Embedded Real-Time Systems/
+#      High Reliable system Profile Kernel
+# 
+#  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+#                              Toyohashi Univ. of Technology, JAPAN
+#  Copyright (C) 2006-2012 by Embedded and Real-Time Systems Laboratory
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+# 
+#  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+# 
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+# 
+#  $Id: Makefile 597 2012-02-05 06:16:51Z ertl-hiro $
+# 
+
+#
+#  ターゲットの指定（Makefile.targetで上書きされるのを防ぐため）
+#
+all:
+
+#
+#  ターゲット略称の定義
+#
+TARGET = marzen_gcc
+
+#
+#  プログラミング言語の定義
+#
+SRCLANG = c
+ifeq ($(SRCLANG),c++)
+  USE_CXX = true
+  CXXLIBS = -lstdc++ -lm -lc
+  CXXRTS = cxxrt.o newlibrt.o
+endif
+
+#
+#  ソースファイルのディレクトリの定義
+#
+SRCDIR = ../..
+
+#
+#  オブジェクトファイル名の拡張子の設定
+#
+OBJEXT = exe
+
+#
+#  実行環境の定義（ターゲット依存に上書きされる場合がある）
+#
+DBGENV := 
+
+#
+#  カーネルライブラリ（libkernel.a）のディレクトリ名
+#  （カーネルライブラリもmake対象にする時は，空に定義する）
+#
+KERNEL_LIB = 
+
+#
+#  カーネルを関数単位でコンパイルするかどうかの定義
+#
+KERNEL_FUNCOBJS = 
+
+#
+#  トレースログを取得するかどうかの定義
+#
+ENABLE_TRACE = 
+
+#
+#  ユーティリティプログラムの名称
+#
+PERL = /usr/bin/perl
+CFG = $(SRCDIR)/cfg/cfg/cfg
+
+#
+#  オブジェクトファイル名の定義
+#
+OBJNAME = hrp2
+ifdef OBJEXT
+  OBJFILE = $(OBJNAME).$(OBJEXT)
+  CFG1_OUT = cfg1_out.$(OBJEXT)
+  CFG2_OUT = cfg2_out.$(OBJEXT)
+else
+  OBJFILE = $(OBJNAME)
+  CFG1_OUT = cfg1_out
+  CFG2_OUT = cfg2_out
+endif
+
+#
+#  ターゲット依存部のディレクトリの定義
+#
+TARGETDIR = $(SRCDIR)/target/$(TARGET)
+
+#
+#  ターゲット依存の定義のインクルード
+#
+include $(TARGETDIR)/Makefile.target
+
+#
+#  コンフィギュレータ関係の変数の定義
+#
+CFG_TABS := --api-table $(SRCDIR)/kernel/kernel_api.csv \
+			--cfg1-def-table $(SRCDIR)/kernel/kernel_def.csv $(CFG_TABS)
+CFG_OBJS := kernel_cfg.o kernel_mem.o $(CFG_OBJS)
+CFG2_OUT_SRCS := kernel_cfg.h kernel_cfg.c kernel_mem2.c $(CFG2_OUT_SRCS)
+CFG2_OBJS := kernel_cfg.o kernel_mem2.o $(CFG2_OBJS)
+ALL_CFG_OBJS := $(CFG_OBJS) cfg1_out.o kernel_mem2.o
+
+#
+#  共通コンパイルオプションの定義
+#
+COPTS := $(COPTS) -g 
+ifndef OMIT_WARNING_ALL
+  COPTS := $(COPTS) -Wall
+endif
+ifndef OMIT_OPTIMIZATION
+  COPTS := $(COPTS) -O2
+endif
+CDEFS := $(CDEFS) -DTOPPERS_ENA_PERF -DOMIT_INITIALIZE_BSS
+INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR)/arch -I$(SRCDIR) $(INCLUDES)
+LDFLAGS := $(LDFLAGS)
+CFG1_OUT_LDFLAGS := $(CFG1_OUT_LDFLAGS)
+CFG2_OUT_LDFLAGS := $(CFG2_OUT_LDFLAGS)
+LIBS := $(LIBS) $(CXXLIBS)
+CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES)
+
+#
+#  アプリケーションプログラムに関する定義
+#
+APPLNAME = perf
+APPLDIR = 
+APPL_CFG = $(APPLNAME).cfg
+
+APPL_DIR = $(APPLDIR) $(SRCDIR)/library
+APPL_ASMOBJS =
+ifdef USE_CXX
+  APPL_CXXOBJS = $(APPLNAME).o 
+  APPL_COBJS =
+else
+  APPL_COBJS = $(APPLNAME).o 
+endif
+APPL_COBJS := $(APPL_COBJS) log_output.o vasyslog.o t_perror.o strerror.o histogram.o test_lib.o
+APPL_CFLAGS =
+APPL_LIBS =
+ifdef APPLDIR
+  INCLUDES := $(INCLUDES) $(foreach dir,$(APPLDIR),-I$(dir))
+endif
+
+#
+#  システムサービスに関する定義
+#
+SYSSVC_DIR := $(SYSSVC_DIR) $(SRCDIR)/syssvc $(SRCDIR)/library
+SYSSVC_ASMOBJS := $(SYSSVC_ASMOBJS)
+SYSSVC_COBJS := $(SYSSVC_COBJS) banner.o syslog.o serial.o logtask.o \
+				$(CXXRTS)
+SYSSVC_CFLAGS := $(SYSSVC_CFLAGS) -DTOPPERS_SVC_CALL
+SYSSVC_LIBS := $(SYSSVC_LIBS)
+INCLUDES := $(INCLUDES)
+
+#
+#  カーネルに関する定義
+#
+#  KERNEL_ASMOBJS: カーネルライブラリに含める，ソースがアセンブリ言語の
+#				   オブジェクトファイル．
+#  KERNEL_COBJS: カーネルのライブラリに含める，ソースがC言語で，ソース
+#				 ファイルと1対1に対応するオブジェクトファイル．
+#  KERNEL_LCSRCS: カーネルのライブラリに含めるC言語のソースファイルで，
+#				  1つのソースファイルから複数のオブジェクトファイルを生
+#				  成するもの．
+#  KERNEL_LCOBJS: 上のソースファイルから生成されるオブジェクトファイル．
+#  KERNEL_AUX_COBJS: ロードモジュールに含めないが，カーネルのソースファ
+#					 イルと同じオプションを適用してコンパイルすべき，ソー
+#					 スがC言語のオブジェクトファイル．
+#
+KERNEL_DIR := $(KERNEL_DIR) $(SRCDIR)/kernel
+KERNEL_ASMOBJS := $(KERNEL_ASMOBJS)
+KERNEL_COBJS := $(KERNEL_COBJS) svc_table.o
+KERNEL_CFLAGS := $(KERNEL_CFLAGS) -I$(SRCDIR)/kernel
+ifdef OMIT_MAKEOFFSET
+  OFFSET_H =
+else
+  OFFSET_H = offset.h
+ifndef OFFSET_TF
+  KERNEL_AUX_COBJS := $(KERNEL_AUX_COBJS) makeoffset.o
+endif
+endif
+
+#
+#  ターゲットファイル（複数を同時に選択してはならない）
+#
+all: $(OBJFILE)
+#all: $(OBJNAME).bin
+#all: $(OBJNAME).srec
+
+##### 以下は編集しないこと #####
+
+#
+#  環境に依存するコンパイルオプションの定義
+#
+ifdef DBGENV
+  CDEFS := $(CDEFS) -D$(DBGENV)
+endif
+
+#
+#  カーネルのファイル構成の定義
+#
+include $(SRCDIR)/kernel/Makefile.kernel
+ifdef KERNEL_FUNCOBJS
+  KERNEL_LCSRCS := $(KERNEL_FCSRCS)
+  KERNEL_LCOBJS := $(foreach file,$(KERNEL_FCSRCS),$($(file:.c=)))
+else
+  KERNEL_CFLAGS := -DALLFUNC $(KERNEL_CFLAGS)
+  KERNEL_COBJS := $(KERNEL_COBJS) \
+					$(foreach file,$(KERNEL_FCSRCS),$(file:.c=.o))
+endif
+
+#
+#  ソースファイルのあるディレクトリに関する定義
+#
+vpath %.c $(KERNEL_DIR) $(SYSSVC_DIR) $(APPL_DIR)
+vpath %.S $(KERNEL_DIR) $(SYSSVC_DIR) $(APPL_DIR)
+vpath %.cfg $(APPL_DIR)
+
+#
+#  コンパイルのための変数の定義
+#
+KERNEL_LIB_OBJS = $(KERNEL_ASMOBJS) $(KERNEL_COBJS) $(KERNEL_LCOBJS)
+SYSSVC_OBJS = $(SYSSVC_ASMOBJS) $(SYSSVC_COBJS)
+APPL_OBJS = $(APPL_ASMOBJS) $(APPL_COBJS) $(APPL_CXXOBJS)
+ALL2_OBJS = $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG2_OBJS) \
+											$(END_OBJS) $(HIDDEN_OBJS)
+ALL_OBJS = $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \
+											$(END_OBJS) $(HIDDEN_OBJS)
+ifdef KERNEL_LIB
+  ALL_LIBS = $(APPL_LIBS) $(SYSSVC_LIBS) -lkernel $(LIBS)
+  LDFLAGS := $(LDFLAGS) -L$(KERNEL_LIB)
+  CFG2_OUT_LDFLAGS := $(CFG2_OUT_LDFLAGS) -L$(KERNEL_LIB)
+else
+  ALL_LIBS = $(APPL_LIBS) $(SYSSVC_LIBS) libkernel.a $(LIBS)
+endif
+
+ifdef TEXT_START_ADDRESS
+  LDFLAGS := $(LDFLAGS) -Wl,-Ttext,$(TEXT_START_ADDRESS)
+  CFG1_OUT_LDFLAGS := $(CFG1_OUT_LDFLAGS) -Wl,-Ttext,$(TEXT_START_ADDRESS)
+  CFG2_OUT_LDFLAGS := $(CFG2_OUT_LDFLAGS) -Wl,-Ttext,$(TEXT_START_ADDRESS)
+endif
+ifdef DATA_START_ADDRESS
+  LDFLAGS := $(LDFLAGS) -Wl,-Tdata,$(DATA_START_ADDRESS)
+  CFG1_OUT_LDFLAGS := $(CFG1_OUT_LDFLAGS) -Wl,-Tdata,$(DATA_START_ADDRESS)
+  CFG2_OUT_LDFLAGS := $(CFG2_OUT_LDFLAGS) -Wl,-Tdata,$(DATA_START_ADDRESS)
+endif
+ifdef LDSCRIPT
+  LDFLAGS := $(LDFLAGS) -T $(LDSCRIPT)
+endif
+ifdef CFG1_OUT_LDSCRIPT
+  CFG1_OUT_LDFLAGS := $(CFG1_OUT_LDFLAGS) -T $(CFG1_OUT_LDSCRIPT)
+endif
+ifdef CFG2_OUT_LDSCRIPT
+  CFG2_OUT_LDFLAGS := $(CFG2_OUT_LDFLAGS) -T $(CFG2_OUT_LDSCRIPT)
+endif
+
+#
+#  オフセットファイル（offset.h）の生成規則
+#
+ifdef OFFSET_TF
+offset.h: $(APPL_CFG) kernel_cfg.timestamp
+	$(CFG) --pass 3 --kernel hrp2 $(INCLUDES) \
+				--rom-image cfg1_out.srec --symbol-table cfg1_out.syms \
+				-T $(OFFSET_TF) $(CFG_TABS) $<
+else
+offset.h: makeoffset.s $(SRCDIR)/utils/genoffset
+	$(PERL) $(SRCDIR)/utils/genoffset makeoffset.s > offset.h
+endif
+
+#
+#  カーネルのコンフィギュレーションファイルの生成
+#
+cfg1_out.c: $(APPL_CFG)
+	$(CFG) --pass 1 --kernel hrp2 $(INCLUDES) $(CFG_TABS) $<
+
+$(CFG2_OUT_SRCS): kernel_cfg.timestamp
+kernel_cfg.timestamp: $(APPL_CFG) \
+						$(START_OBJS) cfg1_out.o $(END_OBJS) $(HIDDEN_OBJS)
+	$(LINK) $(CFLAGS) $(CFG1_OUT_LDFLAGS) -o $(CFG1_OUT) \
+						$(START_OBJS) cfg1_out.o $(END_OBJS)
+	$(NM) -C -n $(CFG1_OUT) > cfg1_out.syms
+	$(OBJCOPY) -O srec -S $(CFG1_OUT) cfg1_out.srec
+	$(CFG) --pass 2 --kernel hrp2 $(INCLUDES) \
+				-T $(TARGETDIR)/target.tf $(CFG_TABS) $<
+	touch -r kernel_cfg.c kernel_cfg.timestamp
+
+kernel_mem.c: $(APPL_CFG) kernel_cfg.timestamp $(ALL2_OBJS) \
+											$(filter %.a,$(ALL_LIBS))
+ifdef LDSCRIPT
+ifdef CFG2_OUT_LDSCRIPT
+	sed "s/kernel_mem\.o/kernel_mem2\.o/g" < $(LDSCRIPT) > $(CFG2_OUT_LDSCRIPT)
+endif
+endif
+	$(LINK) $(CFLAGS) $(CFG2_OUT_LDFLAGS) -o $(CFG2_OUT) $(START_OBJS) \
+			$(APPL_OBJS) $(SYSSVC_OBJS) $(CFG2_OBJS) $(ALL_LIBS) $(END_OBJS)
+	$(NM) -C -n $(CFG2_OUT) > cfg2_out.syms
+	$(OBJCOPY) -O srec -S $(CFG2_OUT) cfg2_out.srec
+	$(CFG) --pass 3 --kernel hrp2 $(INCLUDES) \
+				--rom-image cfg2_out.srec --symbol-table cfg2_out.syms \
+				-T $(TARGETDIR)/target_mem.tf $(CFG_TABS) $<
+
+#
+#  カーネルライブラリファイルの生成
+#
+libkernel.a: $(OFFSET_H) $(KERNEL_LIB_OBJS)
+	rm -f libkernel.a
+	$(AR) -rcs libkernel.a $(KERNEL_LIB_OBJS)
+	$(RANLIB) libkernel.a
+
+#
+#  特別な依存関係の定義
+#
+banner.o: kernel_cfg.timestamp $(filter-out banner.o,$(ALL2_OBJS)) \
+											$(filter %.a,$(ALL_LIBS))
+
+#
+#  全体のリンク
+#
+$(OBJFILE): $(APPL_CFG) kernel_cfg.timestamp $(ALL_OBJS) \
+											$(filter %.a,$(ALL_LIBS))
+	$(LINK) $(CFLAGS) $(LDFLAGS) -o $(OBJFILE) $(START_OBJS) \
+			$(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) $(ALL_LIBS) $(END_OBJS)
+	$(NM) -C -n $(OBJFILE) > $(OBJNAME).syms
+	$(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec
+	diff cfg2_out.syms $(OBJNAME).syms
+	$(CFG) --pass 4 --kernel hrp2 $(INCLUDES) \
+				--rom-image $(OBJNAME).srec --symbol-table $(OBJNAME).syms \
+				-T $(TARGETDIR)/target_check.tf $(CFG_TABS) $<
+
+#
+#  バイナリファイルの生成
+#
+$(OBJNAME).bin: $(OBJFILE)
+	$(OBJCOPY) -O binary -S $(OBJFILE) $(OBJNAME).bin
+
+#
+#  Sレコードファイルの生成
+#
+$(OBJNAME).srec: $(OBJFILE)
+	$(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec
+
+#
+#  コンパイル結果の消去
+#
+.PHONY: clean
+clean:
+	rm -f \#* *~ *.o $(CLEAN_FILES)
+	rm -f $(OBJFILE) $(OBJNAME).syms $(OBJNAME).srec $(OBJNAME).bin
+	rm -f kernel_mem.c $(CFG2_OUT) cfg2_out.tf cfg2_out.syms cfg2_out.srec
+	rm -f kernel_cfg.timestamp $(CFG2_OUT_SRCS)
+	rm -f cfg1_out.c $(CFG1_OUT) cfg1_out.syms cfg1_out.srec
+ifndef KERNEL_LIB
+	rm -f libkernel.a
+endif
+	rm -f makeoffset.s offset.h
+
+.PHONY: cleankernel
+cleankernel:
+	rm -rf $(KERNEL_LIB_OBJS)
+	rm -f makeoffset.s offset.h
+
+.PHONY: cleandep
+cleandep:
+	if ! [ -f Makefile.depend ]; then \
+		rm -f kernel_cfg.timestamp $(CFG2_OUT_SRCS); \
+		rm -f cfg1_out.c cfg1_out.o $(CFG1_OUT) cfg1_out.syms cfg1_out.srec; \
+		rm -f makeoffset.s offset.h; \
+	fi
+	rm -f Makefile.depend
+
+.PHONY: realclean
+realclean: cleandep clean
+	rm -f $(REALCLEAN_FILES)
+
+#
+#  コンフィギュレータが生成したファイルのコンパイルルールと依存関係作成
+#  ルールの定義
+#
+#  コンフィギュレータが生成したファイルは，アプリケーションプログラム用，
+#  システムサービス用，カーネル用のすべてのオプションを付けてコンパイル
+#  する．
+#
+KERNEL_CFG_CFLAGS = $(APPL_CFLAGS) $(SYSSVC_CFLAGS) $(KERNEL_CFLAGS)
+
+$(ALL_CFG_OBJS): %.o: %.c
+	$(CC) -c $(CFLAGS) $(KERNEL_CFG_CFLAGS) $<
+
+$(ALL_CFG_OBJS:.o=.s): %.s: %.c
+	$(CC) -S $(CFLAGS) $(KERNEL_CFG_CFLAGS) $<
+
+$(ALL_CFG_OBJS:.o=.d): %.d: %.c
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
+		-O "$(CFLAGS) $(KERNEL_CFG_CFLAGS)" $< >> Makefile.depend
+
+#
+#  特殊な依存関係作成ルールの定義
+#
+cfg1_out.depend: $(APPL_CFG)
+	@$(CFG) -M cfg1_out.c $(INCLUDES) $< >> Makefile.depend
+
+makeoffset.d: makeoffset.c
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
+		-T "makeoffset.s" -O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
+
+#
+#  依存関係ファイルの生成
+#
+.PHONY: gendepend
+gendepend:
+	@echo "Generating Makefile.depend."
+
+.PHONY: depend
+ifdef KERNEL_LIB
+depend: cleandep kernel_cfg.timestamp gendepend \
+		cfg1_out.depend cfg1_out.d \
+		$(ALL2_OBJS:.o=.d)
+else
+depend: cleandep $(OFFSET_H) kernel_cfg.timestamp gendepend \
+		cfg1_out.depend cfg1_out.d \
+		$(KERNEL_AUX_COBJS:.o=.d) $(KERNEL_ASMOBJS:.o=.d) \
+		$(KERNEL_COBJS:.o=.d) $(KERNEL_LCSRCS:.c=.d) $(ALL2_OBJS:.o=.d)
+endif
+
+#
+#  依存関係ファイルをインクルード
+#
+-include Makefile.depend
+
+#
+#  開発ツールのコマンド名の定義
+#
+ifeq ($(TOOL),gcc)
+  #
+  #  GNU開発環境用
+  #
+  ifdef GCC_TARGET
+    GCC_TARGET_PREFIX = $(GCC_TARGET)-
+  else
+    GCC_TARGET_PREFIX =
+  endif
+  CC = $(GCC_TARGET_PREFIX)gcc
+  CXX = $(GCC_TARGET_PREFIX)g++
+  AS = $(GCC_TARGET_PREFIX)as
+  LD = $(GCC_TARGET_PREFIX)ld
+  AR = $(GCC_TARGET_PREFIX)ar
+  NM = $(GCC_TARGET_PREFIX)nm
+  RANLIB = $(GCC_TARGET_PREFIX)ranlib
+  OBJCOPY = $(GCC_TARGET_PREFIX)objcopy
+  OBJDUMP = $(GCC_TARGET_PREFIX)objdump
+endif
+
+ifdef USE_CXX
+  LINK = $(CXX)
+else
+  LINK = $(CC)
+endif
+
+#
+#  コンパイルルールの定義
+#
+KERNEL_ALL_COBJS = $(KERNEL_COBJS) $(KERNEL_AUX_COBJS)
+
+$(KERNEL_ALL_COBJS): %.o: %.c
+	$(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<
+
+$(KERNEL_ALL_COBJS:.o=.s): %.s: %.c
+	$(CC) -S $(CFLAGS) $(KERNEL_CFLAGS) $<
+
+$(KERNEL_LCOBJS): %.o:
+	$(CC) -DTOPPERS_$(*F) -o $@ -c $(CFLAGS) $(KERNEL_CFLAGS) $<
+
+$(KERNEL_LCOBJS:.o=.s): %.s:
+	$(CC) -DTOPPERS_$(*F) -o $@ -S $(CFLAGS) $(KERNEL_CFLAGS) $<
+
+$(KERNEL_ASMOBJS): %.o: %.S
+	$(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<
+
+$(SYSSVC_COBJS): %.o: %.c
+	$(CC) -c $(CFLAGS) $(SYSSVC_CFLAGS) $<
+
+$(SYSSVC_COBJS:.o=.s): %.s: %.c
+	$(CC) -S $(CFLAGS) $(SYSSVC_CFLAGS) $<
+
+$(SYSSVC_ASMOBJS): %.o: %.S
+	$(CC) -c $(CFLAGS) $(SYSSVC_CFLAGS) $<
+
+$(APPL_COBJS): %.o: %.c
+	$(CC) -c $(CFLAGS) $(APPL_CFLAGS) $<
+
+$(APPL_COBJS:.o=.s): %.s: %.c
+	$(CC) -S $(CFLAGS) $(APPL_CFLAGS) $<
+
+$(APPL_CXXOBJS): %.o: %.cpp
+	$(CXX) -c $(CFLAGS) $(APPL_CFLAGS) $<
+
+$(APPL_CXXOBJS:.o=.s): %.s: %.cpp
+	$(CXX) -S $(CFLAGS) $(APPL_CFLAGS) $<
+
+$(APPL_ASMOBJS): %.o: %.S
+	$(CC) -c $(CFLAGS) $(APPL_CFLAGS) $<
+
+#
+#  依存関係作成ルールの定義
+#
+$(KERNEL_COBJS:.o=.d): %.d: %.c
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
+		-O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
+
+$(KERNEL_LCSRCS:.c=.d): %.d: %.c
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) -T "$($*)" \
+		-O "-DALLFUNC $(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
+
+$(KERNEL_ASMOBJS:.o=.d): %.d: %.S
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
+		-O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
+
+$(SYSSVC_COBJS:.o=.d): %.d: %.c
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
+		-O "$(CFLAGS) $(SYSSVC_CFLAGS)" $< >> Makefile.depend
+
+$(SYSSVC_ASMOBJS:.o=.d): %.d: %.S
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
+		-O "$(CFLAGS) $(SYSSVC_CFLAGS)" $< >> Makefile.depend
+
+$(APPL_COBJS:.o=.d): %.d: %.c
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
+		-O "$(CFLAGS) $(APPL_CFLAGS)" $< >> Makefile.depend
+
+$(APPL_CXXOBJS:.o=.d): %.d: %.cpp
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CXX) $(MAKEDEP_OPTS) \
+		-O "$(CFLAGS) $(APPL_CFLAGS)" $< >> Makefile.depend
+
+$(APPL_ASMOBJS:.o=.d): %.d: %.S
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
+		-O "$(CFLAGS) $(APPL_CFLAGS)" $< >> Makefile.depend
+
+#
+#  デフォルトコンパイルルールを上書き
+#
+%.o: %.c
+	@echo "*** Default compile rules should not be used."
+	$(CC) -c $(CFLAGS) $<
+
+%.s: %.c
+	@echo "*** Default compile rules should not be used."
+	$(CC) -S $(CFLAGS) $<
+
+%.o: %.cpp
+	@echo "*** Default compile rules should not be used."
+	$(CXX) -c $(CFLAGS) $<
+
+%.s: %.cpp
+	@echo "*** Default compile rules should not be used."
+	$(CXX) -S $(CFLAGS) $<
+
+%.o: %.S
+	@echo "*** Default compile rules should not be used."
+	$(CC) -c $(CFLAGS) $<
Index: perf/hrp2/perf/perf.c
===================================================================
--- perf/hrp2/perf/perf.c	(revision 19)
+++ perf/hrp2/perf/perf.c	(revision 19)
@@ -0,0 +1,363 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *
+ *  Copyright (C) 2012 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  @(#) $Id: sample1.h 1716 2010-01-31 11:39:18Z ertl-hiro $
+ */
+
+#include <kernel.h>
+#include <t_syslog.h>
+#include <t_stdlib.h>
+#include "syssvc/serial.h"
+#include "syssvc/syslog.h"
+#include "kernel_cfg.h"
+#include "perf.h"
+#include "histogram.h"
+#include "target_timer.h"
+#include "test_lib.h"
+
+/*
+ *  サービスコールのエラーのログ出力
+ */
+Inline void
+svc_perror(const char *file, int_t line, const char *expr, ER ercd)
+{
+	if (ercd < 0) {
+		t_perror(LOG_ERROR, file, line, expr, ercd);
+	}
+}
+
+#define	SVC_PERROR(expr)	svc_perror(__FILE__, __LINE__, #expr, (expr))
+
+/*
+ *  起動時間測定用変数
+ */
+PERFCNT perf_boot_time[4];
+
+/*
+ *  起動時間計測用初期化ルーチン
+ */
+void
+perf_boot_time_inithdr(intptr_t exinf)
+{
+	x_get_pcc(&perf_boot_time[2]);
+	x_rst_pcc();
+}
+
+/*
+ *  起動時間計測用タスク
+ */
+void
+perf_boot_time_task(intptr_t exinf)
+{
+	x_get_pcc(&perf_boot_time[3]);
+	x_rst_pcc();
+}
+
+/*
+ *  計測回数と実行時間分布を記録する最大時間
+ */
+#define NO_MEASURE	10000U			/* 計測回数 */
+#define MAX_TIME	10000U			/* 実行時間分布を記録する最大時間 */
+
+/*
+ *  実行時間分布を記録するメモリ領域
+ */
+static uint_t	histarea1[MAX_TIME + 1];
+static uint_t	histarea2[MAX_TIME + 1];
+static uint_t	histarea3[MAX_TIME + 1];
+static uint_t	histarea4[MAX_TIME + 1];
+static uint_t	histarea5[MAX_TIME + 1];
+
+/*
+ *  act_tsk ディスパッチなし測定用関数
+ */
+void
+task_act_tsk_nodsp_low(intptr_t exinf)
+{
+
+}
+
+void
+task_act_tsk_nodsp_high(intptr_t exinf)
+{
+	uint_t	i;
+
+	for (i = 0; i < NO_MEASURE; i++) {
+		begin_measure(1);
+		act_tsk(TASK_ACT_TSK_NODSP_LOW);
+		end_measure(1);
+		ter_tsk(TASK_ACT_TSK_NODSP_LOW);
+	}
+	wup_tsk(MAIN_TASK);
+}
+
+/*
+ *  act_tsk ディスパッチあり測定用関数
+ */
+
+void
+task_act_tsk_dsp_low(intptr_t exinf)
+{
+	uint_t	i;
+
+	for (i = 0; i < NO_MEASURE; i++) {
+		begin_measure(2);
+		act_tsk(TASK_ACT_TSK_DSP_HIGH);
+		end_measure(2);
+	}
+	wup_tsk(MAIN_TASK);
+}
+
+void
+task_act_tsk_dsp_high(intptr_t exinf)
+{
+
+}
+
+
+/*
+ *  act_tsk ディスパッチなし測定用関数
+ */
+void
+task_act_tsk_nodsp_low_dom1(intptr_t exinf)
+{
+
+}
+
+void
+task_act_tsk_nodsp_high_dom1(intptr_t exinf)
+{
+	uint_t	i;
+
+	for (i = 0; i < NO_MEASURE; i++) {
+		begin_measure(3);
+		act_tsk(TASK_ACT_TSK_NODSP_LOW_DOM1);
+		end_measure(3);
+		ter_tsk(TASK_ACT_TSK_NODSP_LOW_DOM1);
+	}
+	SVC_PERROR(wup_tsk(MAIN_TASK));
+}
+
+/*
+ *  act_tsk ディスパッチあり測定用関数
+ */
+
+void
+task_act_tsk_dsp_low_dom1(intptr_t exinf)
+{
+	uint_t	i;
+
+	for (i = 0; i < NO_MEASURE; i++) {
+		begin_measure(4);
+		act_tsk(TASK_ACT_TSK_DSP_HIGH_DOM1);
+		end_measure(4);
+	}
+	SVC_PERROR(wup_tsk(MAIN_TASK));
+}
+
+void
+task_act_tsk_dsp_high_dom1(intptr_t exinf)
+{
+
+}
+
+void
+task_act_tsk_dsp_low_dom2(intptr_t exinf)
+{
+	uint_t	i;
+
+	for (i = 0; i < NO_MEASURE; i++) {
+		begin_measure(5);
+		act_tsk(TASK_ACT_TSK_DSP_HIGH_DOM1);
+		end_measure(5);
+	}
+	SVC_PERROR(wup_tsk(MAIN_TASK));
+}
+
+bool_t start_eval_int;
+bool_t end_eval_int;
+uint_t eval_int_hist[MAX_TIME + 1];
+int    perf_int_latency_count;
+
+/*
+ *  割込み応答時間計測
+ */
+void
+perf_int_latency(void)
+{
+	uint_t timer_count;
+	if (start_eval_int == true) {
+		timer_count = target_timer_get_current();
+		if (TO_USEC(timer_count) < MAX_TIME){
+			eval_int_hist[TO_USEC(timer_count)]++;
+		}
+		else {
+			eval_int_hist[MAX_TIME]++;
+		}
+		 perf_int_latency_count++;
+		if( perf_int_latency_count == NO_MEASURE) {
+			perf_int_latency_count = 0;
+			start_eval_int = false;
+			end_eval_int = true;
+			iwup_tsk(MAIN_TASK);
+		}
+	}
+	
+}
+
+void
+print_perf_int_latency(void)
+{
+	uint32_t i;
+	int out_count = 0;
+
+	for(i = 0; i < (MAX_TIME + 1); i++) {
+		if (eval_int_hist[i] != 0) {
+			syslog_2(LOG_NOTICE, "%d us, %d", i, eval_int_hist[i]);
+			out_count++;
+		}
+	}
+}
+
+/*
+ *  メインタスク
+ */
+void main_task(intptr_t exinf)
+{
+	ulong_t t0,t1,t2,t3;
+	uint32_t i;
+
+	/*
+	 *  BSSの初期化を使用しない場合があるため，ここで初期化．
+	 */
+	for (i = 0; i <= MAX_TIME; i++) {
+		histarea1[i] = 0;
+		histarea2[i] = 0;
+		histarea3[i] = 0;
+		histarea4[i] = 0;
+		histarea5[i] = 0;
+		eval_int_hist[i] =0;
+	}
+
+	syslog_1(LOG_NOTICE, "Performance evaluation program start. Please wait about %d sec.", NO_MEASURE/1000);
+	syslog_flush();
+
+	/*
+	 *  act_tsk ディスパッチなしの測定
+	 */
+	init_hist(1, MAX_TIME, histarea1);
+	act_tsk(TASK_ACT_TSK_NODSP_HIGH);
+	slp_tsk();
+	ter_tsk(TASK_ACT_TSK_NODSP_HIGH);
+
+	/*
+	 *  act_tsk ディスパッチありの測定
+	 */
+	init_hist(2, MAX_TIME, histarea2);
+	act_tsk(TASK_ACT_TSK_DSP_LOW);
+	slp_tsk();
+	ter_tsk(TASK_ACT_TSK_DSP_LOW);
+
+	/*
+	 *  act_tsk ディスパッチなしの測定(ユーザードメイン)
+	 */
+	init_hist(3, MAX_TIME, histarea1);
+	act_tsk(TASK_ACT_TSK_NODSP_HIGH_DOM1);
+	slp_tsk();
+	ter_tsk(TASK_ACT_TSK_NODSP_HIGH_DOM1);
+
+	/*
+	 *  act_tsk ディスパッチありの測定(ユーザードメイン)
+	 */
+	init_hist(4, MAX_TIME, histarea2);
+	act_tsk(TASK_ACT_TSK_DSP_LOW_DOM1);
+	slp_tsk();
+	ter_tsk(TASK_ACT_TSK_DSP_LOW_DOM1);
+
+	/*
+	 *  act_tsk ディスパッチありの測定(ユーザードメイン間)
+	 */
+	init_hist(5, MAX_TIME, histarea2);
+	act_tsk(TASK_ACT_TSK_DSP_LOW_DOM1);
+	slp_tsk();
+	ter_tsk(TASK_ACT_TSK_DSP_LOW_DOM1);
+
+	/*
+	 *  割込み応答時間の測定
+	 */
+//	perf_int_latency_count = 0;
+//	start_eval_int = true;
+//	slp_tsk();
+
+	/*
+	 *  計測結果の出力
+	 */
+	t0 = x_cnv_nsec(perf_boot_time[0]);
+	t1 = x_cnv_nsec(perf_boot_time[1]);
+	t2 = x_cnv_nsec(perf_boot_time[2]);
+	t3 = x_cnv_nsec(perf_boot_time[3]);
+	syslog_0(LOG_NOTICE, "Boot time.");
+	syslog_1(LOG_NOTICE, "Total time              %ld ns", t0+t1+t2+t3);
+	syslog_1(LOG_NOTICE, "Boot to sta_ker         %ld ns", t0);
+	syslog_1(LOG_NOTICE, "target init             %ld ns", t1);
+	syslog_1(LOG_NOTICE, "OS Obj init to inithdr  %ld ns", t2);
+	syslog_1(LOG_NOTICE, "inithdr to inittask     %ld ns", t3);
+	syslog_flush();
+
+	syslog_0(LOG_NOTICE, "act_tsk without dispatch[ns].");
+	print_hist(1);
+
+	syslog_0(LOG_NOTICE, "act_tsk with dispatch[ns].");
+	print_hist(2);
+
+	syslog_0(LOG_NOTICE, "act_tsk without dispatch[ns]. (User Domain)");
+	print_hist(3);
+
+	syslog_0(LOG_NOTICE, "act_tsk with dispatch[ns]. (User Domain)");
+	print_hist(4);
+
+	syslog_0(LOG_NOTICE, "act_tsk with dispatch[ns]. (User Domain(DOM1->DOM2))");
+	print_hist(5);
+
+	syslog_0(LOG_NOTICE, "Interrupt Latency.");
+	print_perf_int_latency();
+
+	syslog_0(LOG_NOTICE, "Performance measurement end.");
+	syslog_flush();
+
+	ext_ker();
+	assert(0);
+}
Index: perf/hrp2/perf/perf.cfg
===================================================================
--- perf/hrp2/perf/perf.cfg	(revision 19)
+++ perf/hrp2/perf/perf.cfg	(revision 19)
@@ -0,0 +1,52 @@
+/*
+ *  @(#) $Id: sample1.cfg 718 2008-01-01 12:30:48Z hiro $
+ */
+
+#include "perf.h"
+KERNEL_DOMAIN {
+	CRE_TSK(TASK1, { TA_ACT, 1, perf_boot_time_task, 1, STACK_SIZE, NULL });
+	ATT_INI({ TA_NULL, 0, perf_boot_time_inithdr });
+
+
+	CRE_TSK(TASK_ACT_TSK_NODSP_LOW, { TA_NULL, 1, task_act_tsk_nodsp_low, LOW_PRIORITY, STACK_SIZE, NULL });
+	CRE_TSK(TASK_ACT_TSK_NODSP_HIGH, { TA_NULL, 1, task_act_tsk_nodsp_high, MID_PRIORITY, STACK_SIZE, NULL });
+
+	CRE_TSK(TASK_ACT_TSK_DSP_LOW, { TA_NULL, 1, task_act_tsk_dsp_low, LOW_PRIORITY, STACK_SIZE, NULL });
+	CRE_TSK(TASK_ACT_TSK_DSP_HIGH, { TA_NULL, 1, task_act_tsk_dsp_high, MID_PRIORITY, STACK_SIZE, NULL });
+
+	CRE_TSK(MAIN_TASK, { TA_ACT, 0, main_task, MAIN_PRIORITY, STACK_SIZE, NULL });
+
+	SAC_SYS({ TACP_KERNEL|TACP(DOM1), TACP_KERNEL|TACP(DOM1), TACP_KERNEL|TACP(DOM1), TACP_SHARED });
+	SAC_TSK(MAIN_TASK, { TACP_KERNEL|TACP(DOM1)|TACP(DOM2), TACP_KERNEL|TACP(DOM1), TACP_KERNEL|TACP(DOM1), TACP_KERNEL|TACP(DOM1) });
+}
+
+DOMAIN(DOM1) {
+	CRE_TSK(TASK_ACT_TSK_NODSP_LOW_DOM1, { TA_NULL, 1, task_act_tsk_nodsp_low_dom1, LOW_PRIORITY, STACK_SIZE, NULL });
+	CRE_TSK(TASK_ACT_TSK_NODSP_HIGH_DOM1, { TA_NULL, 1, task_act_tsk_nodsp_high_dom1, MID_PRIORITY, STACK_SIZE, NULL });
+
+	CRE_TSK(TASK_ACT_TSK_DSP_LOW_DOM1, { TA_NULL, 1, task_act_tsk_dsp_low_dom1, LOW_PRIORITY, STACK_SIZE, NULL });
+	CRE_TSK(TASK_ACT_TSK_DSP_HIGH_DOM1, { TA_NULL, 1, task_act_tsk_dsp_high_dom1, MID_PRIORITY, STACK_SIZE, NULL });
+
+	SAC_TSK(TASK_ACT_TSK_DSP_HIGH_DOM1, { TACP(DOM1)|TACP(DOM2), TACP(DOM1)|TACP(DOM2), TACP(DOM1), TACP(DOM1) });
+}
+
+DOMAIN(DOM2) {
+	CRE_TSK(TASK_ACT_TSK_DSP_LOW_DOM2, { TA_NULL, 1, task_act_tsk_dsp_low_dom2, LOW_PRIORITY, STACK_SIZE, NULL });
+}
+
+INCLUDE("target_mem.cfg");
+KERNEL_DOMAIN {
+	INCLUDE("target_timer.cfg");
+	INCLUDE("syssvc/syslog.cfg");
+//	INCLUDE("syssvc/banner.cfg");
+	INCLUDE("syssvc/serial.cfg");
+//	INCLUDE("syssvc/logtask.cfg");
+}
+
+ATT_MOD("perf.o");
+ATT_MOD("histogram.o");         
+ATT_MOD("test_lib.o");
+ATT_MOD("log_output.o");
+ATT_MOD("vasyslog.o");
+ATT_MOD("t_perror.o");
+ATT_MOD("strerror.o");
Index: perf/hrp2/perf/perf.h
===================================================================
--- perf/hrp2/perf/perf.h	(revision 19)
+++ perf/hrp2/perf/perf.h	(revision 19)
@@ -0,0 +1,80 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *
+ *  Copyright (C) 2012 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  @(#) $Id: sample1.h 1716 2010-01-31 11:39:18Z ertl-hiro $
+ */
+
+/*
+ *  ターゲット依存の定義
+ */
+#include "target_test.h"
+
+/*
+ *  各タスクの優先度の定義
+ */
+#define MAIN_PRIORITY	5		/* メインタスクの優先度 */
+#define HIGH_PRIORITY	9		/* 並列に実行されるタスクの優先度 */
+#define MID_PRIORITY	10
+#define LOW_PRIORITY	11
+
+/*
+ *  ターゲットに依存する可能性のある定数の定義
+ */
+#ifndef STACK_SIZE
+#define	STACK_SIZE		4096		/* タスクのスタックサイズ */
+#endif /* STACK_SIZE */
+
+/*
+ *  関数のプロトタイプ宣言
+ */
+#ifndef TOPPERS_MACRO_ONLY
+
+extern void perf_boot_time_inithdr(intptr_t exinf);
+extern void perf_boot_time_task(intptr_t exinf);
+extern void main_task(intptr_t exinf);
+extern void task_act_tsk_nodsp_low(intptr_t exinf);
+extern void task_act_tsk_nodsp_high(intptr_t exinf);
+extern void task_act_tsk_dsp_low(intptr_t exinf);
+extern void task_act_tsk_dsp_high(intptr_t exinf);
+
+extern void task_act_tsk_nodsp_low_dom1(intptr_t exinf);
+extern void task_act_tsk_nodsp_high_dom1(intptr_t exinf);
+extern void task_act_tsk_dsp_low_dom1(intptr_t exinf);
+extern void task_act_tsk_dsp_high_dom1(intptr_t exinf);
+extern void task_act_tsk_dsp_low_dom2(intptr_t exinf);
+
+
+#endif /* TOPPERS_MACRO_ONLY */
