Index: /atk2-sc3_fl850f1l/MANIFEST
===================================================================
--- /atk2-sc3_fl850f1l/MANIFEST	(revision 117)
+++ /atk2-sc3_fl850f1l/MANIFEST	(revision 117)
@@ -0,0 +1,102 @@
+PACKAGE atk2-sc3
+VERSION 1.3.2
+
+MANIFEST
+README.txt
+configure
+
+doc/porting.txt
+doc/tuning_memo.txt
+doc/user.txt
+doc/version.txt
+
+include/histogram.h
+include/kernel_fncode.h
+include/log_output.h
+include/MemMap.h
+include/Os.h
+include/queue.h
+include/Rte_Os_Type.h
+include/Std_Types.h
+include/svc_funccall.h
+include/t_stdlib.h
+include/t_syslog.h
+
+kernel/alarm.c
+kernel/alarm.h
+kernel/allfunc.h
+kernel/check.h
+kernel/counter.c
+kernel/counter.h
+kernel/counter_manage.c
+kernel/event.c
+kernel/genoffset.tf
+kernel/interrupt.c
+kernel/interrupt.h
+kernel/interrupt_manage.c
+kernel/ioc.tf
+kernel/ioc_impl.h
+kernel/ioc_manage.c
+kernel/kernel.tf
+kernel/kernel_common.tf
+kernel/kernel_def.csv
+kernel/kernel_impl.h
+kernel/kernel_int.h
+kernel/kernel_mem.tf
+kernel/kernel_opt.tf
+kernel/kernel.csv
+kernel/kernel.ini
+kernel/Makefile.kernel
+kernel/memory.c
+kernel/memory.h
+kernel/osap.c
+kernel/osap.h
+kernel/osctl.c
+kernel/osctl_manage.c
+kernel/resource.c
+kernel/resource.h
+kernel/scheduletable.c
+kernel/scheduletable.h
+kernel/svc.def
+kernel/svc_table.c
+kernel/system.csv
+kernel/task.c
+kernel/task.h
+kernel/task_manage.c
+
+library/histogram.c
+library/log_output.c
+library/strerror.c
+library/t_perror.c
+library/vasyslog.c
+
+sample/Makefile
+sample/sample1.arxml
+sample/sample1.yaml
+sample/sample1.c
+sample/sample1.h
+sample/sample2.c
+sample/sample2.h
+sample/sample.h
+sample/Rte_Type.h
+
+sysmod/banner.c
+sysmod/banner.h
+sysmod/chkobj.c
+sysmod/serial.c
+sysmod/serial.h
+sysmod/syslog.c
+sysmod/syslog.h
+
+utils/applyrename
+utils/genrename
+utils/gensvc_atk
+utils/gentest
+utils/makedep
+utils/makerelease
+
+INCLUDE utils/abrex/MANIFEST
+
+INCLUDE arch/logtrace/MANIFEST
+INCLUDE arch/gcc/MANIFEST
+
Index: /atk2-sc3_fl850f1l/README.txt
===================================================================
--- /atk2-sc3_fl850f1l/README.txt	(revision 117)
+++ /atk2-sc3_fl850f1l/README.txt	(revision 117)
@@ -0,0 +1,116 @@
+
+		TOPPERS/ATK2-SC3（Release 1.3.2）
+        ＜ATK2-SC3 Readmeファイル＞
+
+本ファイルでは，ATK2-SC3 を使用する上で必要な情報を紹介します．
+
+----------------------------------------------------------------------
+TOPPERS ATK2
+    Toyohashi Open Platform for Embedded Real-Time Systems
+    Automotive Kernel Version 2
+
+Copyright (C) 2011-2015 by Center for Embedded Computing Systems
+            Graduate School of Information Science, Nagoya Univ., JAPAN
+Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+Copyright (C) 2011-2013 by Spansion LLC, USA
+Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+Copyright (C) 2011-2015 by Witz Corporation
+Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+
+上記著作権者は，以下の (1)〜(3)の条件を満たす場合に限り，本ドキュメ
+ント（本ドキュメントを改変したものを含む．以下同じ）を使用・複製・改
+変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+(1) 本ドキュメントを利用する場合には，上記の著作権表示，この利用条件
+    および下記の無保証規定が，そのままの形でドキュメント中に含まれて
+    いること．
+(2) 本ドキュメントを改変する場合には，ドキュメントを改変した旨の記述
+    を，改変後のドキュメント中に含めること．ただし，改変後のドキュメ
+    ントが，TOPPERSプロジェクト指定の開発成果物である場合には，この限
+    りではない．
+(3) 本ドキュメントの利用により直接的または間接的に生じるいかなる損害
+    からも，上記著作権者およびTOPPERSプロジェクトを免責すること．また，
+    本ドキュメントのユーザまたはエンドユーザからのいかなる理由に基づ
+    く請求からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+
+本ドキュメントは，AUTOSAR（AUTomotive Open System ARchitecture）仕様
+に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するものではな
+い．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利用する
+者に対して，AUTOSARパートナーになることを求めている．
+
+本ドキュメントは，無保証で提供されているものである．上記著作権者およ
+びTOPPERSプロジェクトは，本ドキュメントに関して，特定の使用目的に対す
+る適合性も含めて，いかなる保証も行わない．また，本ドキュメントの利用
+により直接的または間接的に生じたいかなる損害に関しても，その責任を負
+わない．
+
+$Id: README.txt 187 2015-06-25 03:39:04Z t_ishikawa $
+----------------------------------------------------------------------
+
+----- ここから追記 -----
+○ GHS版をご利用の方へ
+    target/fl850f1l_ghs/target_user.txt をご参照ください
+
+○ CCRH版をご利用の方へ
+    arch/v850_ccrh/prc_user.txt をご参照ください
+    sample1において，Task8，Task9でメモリ保護違反を起こすサンプル
+    としています．
+
+○ GCC版をご利用の方へ
+    target/fl850f1l_gcc/target_user.txt をご参照ください
+    sampleのビルド方法はatk2-sc1のdoc/user.txtと同様です．
+----- ここまで追記 -----
+
+ATK2-SC3は，「AUTOSAR R4.0 Rev 3」仕様に準拠した，スケーラビリティクラ
+ス3の機能を実装したリアルタイムカーネルです．また，スケーラビリティク
+ラス3については独自に定義した機能レベルにおける，レベル2を採用していま
+す（機能レベルについては「次世代車載システム向けRTOS外部仕様書」を参照
+ください)．
+
+【ジェネレータのバージョンに関する注意】
+
+ATK2-SC3 Release 1.3.0以降では，TOPPERS新世代カーネル用コンフィギュレー
+タ（cfg）(ジェネレータと呼ぶ)の最新版（1.9.4）の機能を用いている．
+1.9.3以前のバージョンのジェネレータでは動作しないので注意すること．
+
+【最初に読むべきドキュメント】
+
+ATK2-SC3のユーザーズマニュアルが，doc/user.txtにあります．SC3カーネル
+を使用する場合には，まずはこのドキュメントからお読み下さい．
+
+【ファイルの閲覧にあたって】
+
+ATK2-SC3のドキュメント（プレーンテキストファイル）およびソースファイル
+を読む際には，TABを4に設定してください．
+
+【利用条件】
+
+ATK2-SC3の利用条件は，各ファイルの先頭に表示されているTOPPERSライセン
+スです．TOPPERSライセンスに関するFAQが，以下のページにあります．
+
+    http://www.toppers.jp/faq/faq_ct12.html
+
+【質問・バグレポート・意見等の送付先】
+
+ATK2-SC3をより良いものにするためのご意見等を歓迎します．ATK2-SC3に関
+する質問やバグレポート，ご意見等は，TOPPERSプロジェクトの会員はTOPPERS
+開発者メーリングリスト（dev@toppers.jp）宛に，その他の方はTOPPERSユー
+ザーズメーリングリスト（users@toppers.jp）宛にお願いします．
+
+TOPPERSユーザーズメーリングリストへの登録方法については，以下のページ
+に説明があります．
+
+    http://www.toppers.jp/community.html
+
+【ポーティングにあたって】
+
+ATK2-SC3を，TOPPERSプロジェクトから公開することを前提に，未サポートの
+ターゲットにポーティングされる場合には，あらかじめご相談くださると幸い
+です．
+
+以上
Index: /atk2-sc3_fl850f1l/arch/ccrh/Compiler.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/ccrh/Compiler.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ccrh/Compiler.h	(revision 117)
@@ -0,0 +1,101 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2011-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: Compiler.h 164 2015-06-03 01:22:29Z t_ishikawa $
+ */
+
+/*
+ *		コンパイラ依存定義
+ */
+
+#ifndef TOPPERS_COMPILER_H
+#define TOPPERS_COMPILER_H
+
+#include "Compiler_Cfg.h"
+
+#define AUTOMATIC
+#define TYPEDEF
+#define NULL_PTR	((void *) 0)
+
+#define FUNC(rettype, memclass)						rettype
+#define FUNC_P2CONST(rettype, ptrclass, memclass)	const rettype *
+#define FUNC_P2VAR(rettype, ptrclass, memclass)		rettype *
+#define P2VAR(ptrtype, memclass, ptrclass)			ptrtype *
+#define P2CONST(ptrtype, memclass, ptrclass)		const ptrtype *
+#define CONSTP2VAR(ptrtype, memclass, ptrclass)		ptrtype * const
+#define CONSTP2CONST(ptrtype, memclass, ptrclass)	const ptrtype * const
+#define P2FUNC(rettype, ptrclass, fctname)			rettype (*fctname)
+#define CONST(consttype, memclass)					const consttype
+#define VAR(vartype, memclass)						vartype
+
+/*
+ *	CXでは，インライン関数は「#pragma」を利用して、関数定義の前に
+ *	インライン化するシンボルを予め指定しなければならない．
+ *	インライン化するシンボルは，"xxx_inline_symbol.h"にて定義し，
+ *	そのため，「Inline」シンボルは空マクロとして実装する．
+ */
+#define INLINE
+#define LOCAL_INLINE	static
+
+/* インライン指定シンボルの登録	*/
+#include "target_inline_symbols.h"
+
+//#define asm		__asm
+//#define Asm		__asm  /* インラインアセンブラ（最適化抑止）*/
+
+#define NoReturn
+
+/* コンパイラ依存のデータ型の定義 */
+#ifndef TOPPERS_MACRO_ONLY
+
+#include <limits.h>
+
+/*
+ *  空ラベルの定義
+ *    cxでは大きさゼロの配列はコンパイルエラーになるため、
+ *    ここで別途定義する。
+ */
+#define TOPPERS_EMPTY_LABEL(x, y)	x y[1]
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_COMPILER_H */
Index: /atk2-sc3_fl850f1l/arch/ccrh/Compiler_Cfg.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/ccrh/Compiler_Cfg.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ccrh/Compiler_Cfg.h	(revision 117)
@@ -0,0 +1,80 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2011-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: Compiler_Cfg.h 166 2015-06-04 07:11:25Z t_ishikawa $
+ */
+
+#ifndef TOPPERS_COMPILER_CFG_H
+#define TOPPERS_COMPILER_CFG_H
+
+/*
+ *  ATK2共通定義
+ */
+#ifndef UINT_C
+#define UINT_C(val)		(val ## U)      /* 符号無し整数型の定数を作るマクロ */
+#endif /* UINT_C */
+
+/*
+ *  型に関する情報を取り出すためのマクロ
+ */
+#ifndef offsetof
+#define offsetof(structure, field)	((uintptr) & (((structure *) 0)->field))
+#endif /* offsetof */
+
+#ifndef alignof
+#define alignof(type)	offsetof(struct { uint8 field1; type field2; }, field2)
+#endif /* alignof */
+#ifndef ALIGNED_TYPE    /* アラインメントのチェック */
+#define aligntypeof(type)	offsetof(struct { uint8 field1; type field2; }, field2)
+#define ALIGNED_TYPE(addr, type)	(boolean)((((uintptr) (addr)) & (alignof(type) - 1U)) == 0U)
+#endif /* ALIGNED_TYPE */
+
+
+#endif /* TOPPERS_COMPILER_CFG_H */
Index: /atk2-sc3_fl850f1l/arch/ccrh/MANIFEST
===================================================================
--- /atk2-sc3_fl850f1l/arch/ccrh/MANIFEST	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ccrh/MANIFEST	(revision 117)
@@ -0,0 +1,30 @@
+PACKAGE atk2-sc3
+
+MANIFEST
+common.py
+Compiler.h
+Compiler_Cfg.h
+configure_body.py
+gcc2ccrh.rb
+kernel_inline_symbols.h
+post_atk2.py
+post_cfg.py
+pre_cfg.py
+tool_cfg1_out.h
+updatepath.py
+stdint.h
+
+sample/Rte_Type.h
+sample/sample.h
+sample/sample1.arxml
+sample/sample1.c
+sample/sample1.h
+sample/sample1.yaml
+sample/sample2.c
+sample/sample2.h
+sample/sample_asm.asm
+
+ldscript.tf
+post_cfg_pass4.py
+tool_svc.h
+
Index: /atk2-sc3_fl850f1l/arch/ccrh/common.py
===================================================================
--- /atk2-sc3_fl850f1l/arch/ccrh/common.py	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ccrh/common.py	(revision 117)
@@ -0,0 +1,384 @@
+#!python
+# -*- coding: euc-jp -*-
+#
+#  TOPPERS ATK2
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+#      Automotive Kernel Version 2
+#
+#  Copyright (C) 2013-2015 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#  Copyright (C) 2013-2014 by FUJI SOFT INCORPORATED, JAPAN
+#  Copyright (C) 2013-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+#  Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
+#  Copyright (C) 2013-2014 by Sunny Giken Inc., JAPAN
+#  Copyright (C) 2013-2014 by TOSHIBA CORPORATION, JAPAN
+#  Copyright (C) 2013-2014 by Witz Corporation, JAPAN
+#
+#  上記著作権者は，以下の(1)~(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+# $Id: common.py 182 2015-06-24 07:14:37Z t_ishikawa $
+#
+
+#
+# variable definition
+#
+INCLUDES = []
+CFG1_DEF_TABLES = []
+
+#
+# set cfg and cfg kernel param
+#
+CFG = SRCDIR + "cfg/cfg/cfg.exe"
+CFG_KERNEL = "atk2"
+
+#
+# files for each project 
+#
+app_files = []
+app_configuration_files = ['Os_Lcfg_asm.asm', 'Os_Lcfg.c', 'kernel_mem.c', 'ioc.c']
+app_sysmod_files = ['sysmod/banner.c', 'sysmod/serial.c', 'sysmod/syslog.c']
+app_library_files = ['library/log_output.c', 'library/strerror.c', 'library/t_perror.c', 'library/vasyslog.c']
+
+kernel_kernel_files = ['kernel/alarm.c','kernel/counter.c','kernel/counter_manage.c','kernel/event.c','kernel/interrupt.c','kernel/interrupt_manage.c','kernel/osctl.c','kernel/osctl_manage.c','kernel/resource.c','kernel/scheduletable.c','kernel/task.c','kernel/task_manage.c','kernel/ioc_manage.c','kernel/memory.c','kernel/osap.c','kernel/svc_table.c']
+
+cfg_files = []
+cfg_configuration_files = ['cfg1_out.c']
+
+#
+# pre/postbuiled file
+#
+cfg_pre_python_files = ['arch/ccrh/pre_cfg.py']
+cfg_post_python_files = ['arch/ccrh/post_cfg.py']
+#atk2_sc3_post_python_files = ['arch/ccrh/post_atk2.py']
+cfg_pass4_post_python_files = ['arch/ccrh/post_cfg_pass4.py']
+# atk2_sc3_pre_python_files = ['cfg/ldscript.py']
+
+#
+# cubesuite+ depend files
+#
+atk2_sc3_rel_includes = [".","cfg"]
+cfg_rel_includes = [".."]
+kernel_rel_includes = ["..","..\cfg"]
+
+#
+# library
+#
+#atk2_sc3_lib_includes = []
+atk2_sc3_lib_files = [r'kernel\%BuildModeName%\kernel']
+cfg_pass4_lib_files = [r'..\kernel\%BuildModeName%\kernel']
+
+#
+# cx define
+#
+kernel_define = ['ALLFUNC', 'TOPPERS_LABEL_ASM', 'USE_CCRH', 'MPU_REGION_NUM=%d' % (MPU_REGION_NUM)]
+
+#
+# cx additional option
+#  -Xno_warning=20177 : Suppress warnings no refer label(exit_no_errorhooh, d_exit_no_errorhook) 
+kernel_c_addopt = ['-Xno_warning=20177']
+#  -Xno_warning=50013 : Use r1 register as source register
+kernel_asm_addopt = ['-Xno_warning=50013']
+
+#
+# Set cfg path and srdir path
+#
+cfg = proj_rel_dir + CFG
+srcdir = proj_rel_dir + SRCDIR
+
+#
+# soucre target file
+#
+execfile(srcdir + "target/" + TARGET + "/target.py")
+
+#
+# merge files
+#
+app_files.append(statup_file)
+app_files = app_files + app_sysmod_files + app_library_files
+kernel_files = kernel_kernel_files + kernel_target_files + kernel_arch_files
+
+#
+# Set include path and cfg1_def_table
+#
+INCLUDES = USER_INCLUDE + ["", "arch", "include", "kernel", "arch", "sysmod", "library"] + INCLUDES
+CFG1_DEF_TABLES = ["kernel/kernel_def.csv"] + CFG1_DEF_TABLES
+
+API_TABLE = "kernel/kernel.csv"
+INI_FILE  = "kernel/kernel.ini"
+
+CFG_TF = "target/" + TARGET + "/target.tf"
+CFG_OFFSET_TF = "target/" + TARGET + "/target_offset.tf"
+CFG_MEM_TF = "target/" + TARGET + "/target_mem.tf"
+
+#
+# cfg input files
+#
+cfg_rel_files = []
+cfg_input_str = ""
+for cfg_filename in CFGNAME:
+	cfg_rel_file = cfg_filename + '.arxml'
+
+ 	cfg_list = [proj_rel_dir + cfg_rel_file]
+ 	for inc_path in INCLUDES:
+ 		cfg_list = cfg_list + [src_abs_path + '/' + inc_path  + '/' + cfg_rel_file]
+
+ 	flg = 0
+ 	for cfg_rel_file in cfg_list:
+ 		if os.path.exists(cfg_rel_file):
+			cfg_rel_files.append(cfg_rel_file)
+ 			flg = 1
+ 			break
+
+	if flg == 0:
+		print "WARNING!! : Not Exist %s" % cfg_filename
+
+cfg_input_str = " ".join(cfg_rel_files)
+
+#
+# make cfg include path
+#
+cfg_includes = ""
+for include in INCLUDES:
+	cfg_includes = cfg_includes + " -I" + srcdir + include
+
+#
+# make cfg1_def_table
+#
+cfg_cfg1_def_tables = ""
+for cfg1_def_table in CFG1_DEF_TABLES:
+	cfg_cfg1_def_tables = cfg_cfg1_def_tables + " --cfg1-def-table " + srcdir + cfg1_def_table
+
+#
+# Set api_table
+#
+cfg_api_table = srcdir + API_TABLE
+
+#
+# Set ini_file
+#
+cfg_ini_file = srcdir + INI_FILE
+
+#
+# Set tf 
+#
+cfg_tf =  srcdir + CFG_TF
+
+#
+# Set offset tf 
+#
+cfg_offset_tf =  srcdir + CFG_OFFSET_TF
+
+#
+# Set check tf 
+#
+cfg_mem_tf =  srcdir + CFG_MEM_TF
+
+#
+#
+# Functions
+#
+#
+import re
+
+#
+# Set Cx Includes
+# 
+def SetCxIncludes(inputstr, include_list, rel_include_list, relpath):
+	cx_includes = ""
+	for include in rel_include_list:
+		include_list.append(relpath + include)
+	for include in include_list:
+		cx_includes = cx_includes + include + "\n"
+	cx_includes = cx_includes.replace('/', r'\\')
+	pattern_pre = r'(\s\<AdditionalIncludePaths-0\>)[\s\S]+?(\</AdditionalIncludePaths-0\>)'
+	pattern_post = r'\1' + cx_includes + r'\2'
+	inputstr = re.sub (pattern_pre, pattern_post, inputstr)
+	return inputstr
+
+#
+# ChangeSetItemXml
+#
+def ChangeItemXml(inputstr, xml_pattern, newitemstr):
+	pattern_pre = r'<' + xml_pattern + r'>[\s\S]+?</' + xml_pattern + '>'
+	pattern_post = '<' + xml_pattern + '>' + newitemstr + '</' + xml_pattern + '>'
+	inputstr = re.sub (pattern_pre, pattern_post, inputstr)
+	return inputstr
+
+#
+# NewSetItemXml
+#
+def NewSetItemXml(inputstr, xml_pattern, newitemstr):
+	pattern_pre = r'\<' + xml_pattern + r' /\>'
+	pattern_post = r'<' + xml_pattern + r'>' + newitemstr + '</' + xml_pattern + r'>'
+	inputstr = re.sub (pattern_pre, pattern_post, inputstr)
+	return inputstr
+
+#
+# NewSetItemXmlOnce
+#
+def NewSetItemXmlOnce(inputstr, xml_pattern, newitemstr):
+	pattern_pre = r'\<' + xml_pattern + r' /\>'
+	pattern_post = r'<' + xml_pattern + r'>' + newitemstr + '</' + xml_pattern + r'>'
+	inputstr = re.sub (pattern_pre, pattern_post, inputstr, 1)
+	return inputstr
+
+#
+# New set Cx Include
+#
+def NewSetCxIncludes(inputstr, include_list, rel_include_list, relpath):
+	cx_includes = ""
+	for include in rel_include_list:
+		include_list.append(relpath + include)
+	for include in include_list:
+		cx_includes = cx_includes + include + "\n"
+	cx_includes = cx_includes.replace('/', r'\\')
+	return NewSetItemXml(inputstr, 'AdditionalIncludePaths-0', cx_includes)
+
+def NewSetCCRHIncludes(inputstr, include_list, rel_include_list, relpath):
+	ccrh_includes = ""
+	for include in rel_include_list:
+		include_list.append(relpath + include)
+	for include in include_list:
+		ccrh_includes = ccrh_includes + include + "\n"
+	ccrh_includes = ccrh_includes.replace('/', r'\\')
+	return NewSetItemXml(inputstr, 'COptionI-0', ccrh_includes)
+
+#
+# New set library Include
+#
+def NewSetLibIncludes(inputstr, include_list, rel_include_list, relpath):
+	lib_includes = ""
+	for include in rel_include_list:
+		include_list.append(relpath + include)
+	for include in include_list:
+		lib_includes = lib_includes + include + "\n"
+	lib_includes = lib_includes.replace('/', r'\\')
+	return NewSetItemXml(inputstr, 'AdditionalLibraryPaths-0', lib_includes)
+
+#
+# New set library files
+#
+def NewSetLibFiles(inputstr, file_list):
+	lib_files = ""
+	for file in file_list:
+		lib_files = lib_files + file + "\n"
+	lib_files = lib_files.replace('/', r'\\')
+	return NewSetItemXml(inputstr, 'LinkOptionLibrary-0', lib_files)
+
+#
+# New set prebuild
+#
+def NewSetPrebuild(inputstr, rel_command_list, relpath):
+	command_str = ''
+	for command in rel_command_list:
+		command_str = command_str + relpath + command
+	command_str = r'#!python\ncommon.Source("' + command_str + r'")\n'
+	return NewSetItemXml(inputstr, 'PreBuildCommands-0', command_str)
+
+
+#
+# New set postbuild
+#
+def NewSetPostbuild(inputstr, rel_command_list, relpath):
+	command_str = ''
+	for command in rel_command_list:
+		command_str = command_str + relpath + command
+	command_str = r'#!python\ncommon.Source("' + command_str + r'")\n'
+	return NewSetItemXml(inputstr, 'PostBuildCommands-0', command_str)
+
+
+#
+# New set Define
+#
+def NewSetDefine(inputstr, define_list):
+	define_str = ''
+	for define in define_list:
+		define_str = define_str + define + '\n'
+	return NewSetItemXml(inputstr, 'COptionD-0', define_str)
+
+#
+# New set additional options
+#
+def NewSetCAddOpt(inputstr, option_list):
+	option_str = ''
+	for option in option_list:
+		option_str = option_str + option + ' '
+	return NewSetItemXmlOnce(inputstr, 'COptionOtherAdditionalOptions-0', option_str)
+
+def NewSetAsmAddOpt(inputstr, option_list):
+	option_str = ''
+	for option in option_list:
+		option_str = option_str + option + ' '
+	return NewSetItemXmlOnce(inputstr, 'AsmOptionOtherAdditionalOptions-0', option_str)
+
+#
+# Set target file relative path
+#
+def SetTargetFileRelativePath(inputstr, file_list, relpath):
+	relpath_win = re.sub(r'/',r'\\\\', relpath)
+	for file_path in file_list:
+		file_path = re.sub(r'/',r'\\\\',file_path)
+		pattern_pre = r'(\s\<RelativePath\>).+?' + file_path + r'(\</RelativePath\>)'
+		pattern_post = r'\1' + relpath_win + file_path + r'\2'
+		inputstr = re.sub (pattern_pre, pattern_post, inputstr)
+	return inputstr
+
+
+#
+# Set python file relative path
+#
+def SetPythonFileRelativePath(inputstr, file_list, relpath):
+	for file_path in file_list:
+		pattern_pre = r'".+?' + file_path + r'"'
+		pattern_post = r'"' + relpath + file_path + r'"'
+		inputstr = re.sub (pattern_pre, pattern_post, inputstr)
+	return inputstr
+
+def ReadFile(filename):
+	f = open(filename, "r")
+	str = f.read()
+	f.close()
+	return str
+
+def WriteFile(filename, str):
+	f = open(filename, "w")
+	f.write(str)
+	f.close()
+
+def WriteFile_B(filename, str):
+	f = open(filename, "wb")
+	f.write(str)
+	f.close()
+
Index: /atk2-sc3_fl850f1l/arch/ccrh/configure/MANIFEST
===================================================================
--- /atk2-sc3_fl850f1l/arch/ccrh/configure/MANIFEST	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ccrh/configure/MANIFEST	(revision 117)
@@ -0,0 +1,7 @@
+PACKAGE atk2-sc3
+
+MANIFEST
+configure.mtpj
+configure.py
+def.py
+README.txt
Index: /atk2-sc3_fl850f1l/arch/ccrh/configure/README.txt
===================================================================
--- /atk2-sc3_fl850f1l/arch/ccrh/configure/README.txt	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ccrh/configure/README.txt	(revision 117)
@@ -0,0 +1,130 @@
+
+		TOPPERS/ATK2-SC3
+        ＜CS+用プロジェクト生成スクリプトマニュアル＞
+
+このドキュメントはCS+用プロジェクト生成スクリプトの情報を記述したもの
+である．
+
+----------------------------------------------------------------------
+TOPPERS ATK2
+    Toyohashi Open Platform for Embedded Real-Time Systems
+    Automotive Kernel Version 2
+
+Copyright (C) 2013-2015 by Center for Embedded Computing Systems
+            Graduate School of Information Science, Nagoya Univ., JAPAN
+Copyright (C) 2013-2014 by FUJI SOFT INCORPORATED, JAPAN
+Copyright (C) 2013-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
+Copyright (C) 2013-2014 by Sunny Giken Inc., JAPAN
+Copyright (C) 2013-2014 by TOSHIBA CORPORATION, JAPAN
+Copyright (C) 2013-2014 by Witz Corporation, JAPAN
+
+上記著作権者は，以下の (1)〜(3)の条件を満たす場合に限り，本ドキュメ
+ント（本ドキュメントを改変したものを含む．以下同じ）を使用・複製・改
+変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+(1) 本ドキュメントを利用する場合には，上記の著作権表示，この利用条件
+    および下記の無保証規定が，そのままの形でドキュメント中に含まれて
+    いること．
+(2) 本ドキュメントを改変する場合には，ドキュメントを改変した旨の記述
+    を，改変後のドキュメント中に含めること．ただし，改変後のドキュメ
+    ントが，TOPPERSプロジェクト指定の開発成果物である場合には，この限
+    りではない．
+(3) 本ドキュメントの利用により直接的または間接的に生じるいかなる損害
+    からも，上記著作権者およびTOPPERSプロジェクトを免責すること．また，
+    本ドキュメントのユーザまたはエンドユーザからのいかなる理由に基づ
+    く請求からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+
+本ドキュメントは，AUTOSAR（AUTomotive Open System ARchitecture）仕様
+に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するものではな
+い．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利用する
+者に対して，AUTOSARパートナーになることを求めている．
+
+本ドキュメントは，無保証で提供されているものである．上記著作権者およ
+びTOPPERSプロジェクトは，本ドキュメントに関して，特定の使用目的に対す
+る適合性も含めて，いかなる保証も行わない．また，本ドキュメントの利用
+により直接的または間接的に生じたいかなる損害に関しても，その責任を負
+わない．
+
+$Id: README.txt 187 2015-06-25 03:39:04Z t_ishikawa $
+----------------------------------------------------------------------
+
+○概要
+
+CS+用プロジェクト生成スクリプトは，RH850用のATK2のプロジェクトを作成す
+るスクリプトである．
+                
+動作確認を行ったCS+のバージョンは次の通りである．
+
+  CS+ V3.00.00
+  
+○使用方法
+
+以下の手順でターゲット用のプロジェクトファイルを生成する．
+
+1.本フォルダ(configure)を適当な場所にコピーする．以下のファイルが含ま
+  れている．
+  ./configure.mtpj
+  ./configure.py
+  ./def.py
+  ./README.txt
+
+2.def.pyの編集
+  以下のdef.pyの設定値を参考に設定する．
+  
+3.configure.mtpjをダブルクリック
+  configure.py が実行され，atk2-sc1.mtpjが作成され開かれる．
+  
+4.アクティブプロジェクトを変更
+  アクティブプロジェクトをatk2-sc1に変更する．  
+
+  
+プロジェクトファイル生成後は，atk2-sc1.mtpj を使用する．なお，プロジェ
+クトファイル生成後はconfigure.mtpjとconfigure.pyは削除可能である．
+
+
+○def.pyの設定値
+
+・SRCDIR
+ ・ATK2のソースコードのトップとの相対位置
+   ./atk2-sc1/yyy/xxx/ にコピーした場合は，，
+   
+    SRCDIR = "../../"
+   となる．
+   
+・CFGNAME
+ ・コンフィギュレーションファイル名の指定．
+   入力として必要なXMLファイル名を全て指定．
+
+・TARGET 
+ ・ターゲットの指定．./target 以下のいずれかのフォルダ名．
+ 
+・TARGET_MCU
+ ・ターゲットMCU名の指定．
+ 
+・app_app_files
+ ・アプリケーションファイルの指定．
+ 
+・USER_INCLUDE
+ ・インクルードパスの指定
+  
+・COPY_SAMPLE1  
+ ・sample1のファイルを./sampleからコピーするか指定．
+
+○プロジェクト構成
+
+atk2-sc1 : トッププロジェクト
+ cfg : サブプロジェクト コンフィギュレータ実行
+ kernel : サブプロジェクト カーネルビルド用
+
+○変更履歴
+
+2014/10/14
+・CS+ V3.00.00 対応
+
+2014/05/01
+・ターゲットフォルダ名をv850e2_gccからv850_gccに変更．
+・sample1をコピーする際に，Rte_Type.h も対象に追加．
+・カーネルビルド時の Rte_Type.h のインクルードのため，Rte_Type.h を置
+  いているフォルダをカーネルビルド時のインクルード対象とする．
+
+以上．
Index: /atk2-sc3_fl850f1l/arch/ccrh/configure/configure.mtpj
===================================================================
--- /atk2-sc3_fl850f1l/arch/ccrh/configure/configure.mtpj	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ccrh/configure/configure.mtpj	(revision 117)
@@ -0,0 +1,657 @@
+<CubeSuiteProject>
+  <ProductVersion>5.00.00.00</ProductVersion>
+  <Class Guid="68f4a651-b9cd-473b-a595-b00447132ffa">
+    <Instance Guid="00000000-0000-0000-0000-000000000000">
+      <FormatVersion>2.0</FormatVersion>
+      <FileVersion>5.0</FileVersion>
+      <ProjectGuid>fc14105a-99d7-4099-85fc-3fdf494938ac</ProjectGuid>
+      <ProjectItemGuid>f1401139-cdf1-485d-85c1-2d01c8a4ce27</ProjectItemGuid>
+      <FileCategoryGuid>49223984-0f18-4fa1-87ff-477e5fa60939</FileCategoryGuid>
+      <Property>fb98844b-2c27-4275-9804-f6e63e204da0</Property>
+      <ActiveProjectGuid>fc14105a-99d7-4099-85fc-3fdf494938ac</ActiveProjectGuid>
+    </Instance>
+  </Class>
+  <Class Guid="fb98844b-2c27-4275-9804-f6e63e204da0">
+    <Instance Guid="fb98844b-2c27-4275-9804-f6e63e204da0">
+      <MemoCount>0</MemoCount>
+    </Instance>
+  </Class>
+  <Class Guid="8fb9c1f6-d351-4d10-8d99-bf5b3015b84c">
+    <Instance Guid="00000000-0000-0000-0000-000000000000">
+      <UsingPlatformGuid>fcd52ed6-c16c-4b11-992f-2929aa870dec</UsingPlatformGuid>
+    </Instance>
+  </Class>
+  <Class Guid="c325714f-8f51-484b-9e96-b4b59c0fb263">
+    <Instance Guid="c325714f-8f51-484b-9e96-b4b59c0fb263">
+      <DeviceManager>096f2041-c115-4158-959e-885938314c77</DeviceManager>
+    </Instance>
+  </Class>
+  <Class Guid="096f2041-c115-4158-959e-885938314c77">
+    <Instance Guid="096f2041-c115-4158-959e-885938314c77">
+      <DataFormatVersion>1.0</DataFormatVersion>
+    </Instance>
+    <Instance Guid="1268cda7-f509-4a4f-8552-a413adafabfb">
+      <DeviceName>R7F701035xAFP</DeviceName>
+      <MemoCount>0</MemoCount>
+    </Instance>
+  </Class>
+  <Class Guid="c21e0010-0644-48ec-a5d2-2b06674b0390">
+    <Instance Guid="c21e0010-0644-48ec-a5d2-2b06674b0390">
+      <IsStructuredNaming>True</IsStructuredNaming>
+    </Instance>
+  </Class>
+  <Class Guid="873c9a58-9bc5-439a-b476-78629a4553ed">
+    <Instance Guid="873c9a58-9bc5-439a-b476-78629a4553ed">
+      <ProjectDeviceChangedCounter>0</ProjectDeviceChangedCounter>
+      <ProjectInitialDeviceName>R7F701035xAFP</ProjectInitialDeviceName>
+    </Instance>
+  </Class>
+  <Class Guid="c3835e31-dea3-4c93-b02b-d2db997f7630">
+    <Instance Guid="c3835e31-dea3-4c93-b02b-d2db997f7630">
+      <BuildToolManager>eb3b4b69-af1a-4dc1-b2bc-4b81a50fb2a4</BuildToolManager>
+    </Instance>
+  </Class>
+  <Class Guid="eb3b4b69-af1a-4dc1-b2bc-4b81a50fb2a4">
+    <Instance Guid="eb3b4b69-af1a-4dc1-b2bc-4b81a50fb2a4">
+      <DataFormatVersion>1.6</DataFormatVersion>
+      <BuildModeCount>1</BuildModeCount>
+      <BuildMode0>RABlAGYAYQB1AGwAdABCAHUAaQBsAGQA</BuildMode0>
+      <BatchBuildFlag0>False</BatchBuildFlag0>
+      <CurrentBuildMode>DefaultBuild</CurrentBuildMode>
+      <SourceItemCount>0</SourceItemCount>
+      <LastDeviceChangedCounter>0</LastDeviceChangedCounter>
+    </Instance>
+    <Instance Guid="989d6783-59a0-4525-8ee4-a067fda90fe2">
+      <AsmOptionI-DefaultValue />
+      <BuildMode-DefaultValue>DefaultBuild</BuildMode-DefaultValue>
+      <COptionOsize-DefaultValue>Default</COptionOsize-DefaultValue>
+      <GeneralOptionOutput-DefaultValue>LoadModuleFile</GeneralOptionOutput-DefaultValue>
+      <GeneralOptionResetVectorAddress-DefaultValue>0</GeneralOptionResetVectorAddress-DefaultValue>
+      <GeneralOptionSimultaneousBuild-DefaultValue>True</GeneralOptionSimultaneousBuild-DefaultValue>
+      <GeneralOptionUpdateIO-DefaultValue>False</GeneralOptionUpdateIO-DefaultValue>
+      <GeneralOptionXerrorFile-DefaultValue>False</GeneralOptionXerrorFile-DefaultValue>
+      <GeneralOptionXregMode-DefaultValue>RegisterMode32</GeneralOptionXregMode-DefaultValue>
+      <HexOptionOutput-DefaultValue>True</HexOptionOutput-DefaultValue>
+      <LibOptionForm-DefaultValue>LibraryU</LibOptionForm-DefaultValue>
+      <LinkOptionLibrary-DefaultValue />
+      <Memo-DefaultValue />
+      <OutputMessageFormat-DefaultValue>%TargetFiles%</OutputMessageFormat-DefaultValue>
+      <AsmOptionISystem-DefaultValue />
+      <COptionI-DefaultValue />
+      <CompilerVersion-DefaultValue>
+
+0</CompilerVersion-DefaultValue>
+      <FormatBuildOptionList-DefaultValue>%TargetFiles% : %Program% %Options%</FormatBuildOptionList-DefaultValue>
+      <GeneralOptionEnableParallelBuilding-DefaultValue>False</GeneralOptionEnableParallelBuilding-DefaultValue>
+      <GeneralOptionLastDevice-DefaultValue />
+      <GeneralOptionResetVectorAddressPE2-DefaultValue>0</GeneralOptionResetVectorAddressPE2-DefaultValue>
+      <GeneralOptionXcommon-DefaultValue>RH850</GeneralOptionXcommon-DefaultValue>
+      <GeneralOptionXerrorFolder-DefaultValue>%BuildModeName%</GeneralOptionXerrorFolder-DefaultValue>
+      <GeneralOptionXnoWarning-DefaultValue />
+      <GeneralOptionXreserveR2-DefaultValue>False</GeneralOptionXreserveR2-DefaultValue>
+      <HexOptionForm-DefaultValue>Stype</HexOptionForm-DefaultValue>
+      <LibOptionOutputFolder-DefaultValue>%BuildModeName%</LibOptionOutputFolder-DefaultValue>
+      <LinkOptionOutputFolder-DefaultValue>%BuildModeName%</LinkOptionOutputFolder-DefaultValue>
+      <AsmOptionD-DefaultValue />
+      <COptionISystem-DefaultValue />
+      <DependencyFileExistCheckingType-DefaultValue>Rebuild</DependencyFileExistCheckingType-DefaultValue>
+      <GeneralOptionCoreCPU-DefaultValue>G3K</GeneralOptionCoreCPU-DefaultValue>
+      <GeneralOptionCurrentDevice-DefaultValue>DR7F701035.DVF, V1.30</GeneralOptionCurrentDevice-DefaultValue>
+      <GeneralOptionResetVectorAddressPE3-DefaultValue>0</GeneralOptionResetVectorAddressPE3-DefaultValue>
+      <GeneralOptionXep-DefaultValue>None</GeneralOptionXep-DefaultValue>
+      <GeneralOptionXerrorFileName-DefaultValue>%ProjectName%.err</GeneralOptionXerrorFileName-DefaultValue>
+      <HexOptionOutputFolder-DefaultValue>%BuildModeName%</HexOptionOutputFolder-DefaultValue>
+      <LibOptionOutputFileName-DefaultValue>%ProjectName%.lib</LibOptionOutputFileName-DefaultValue>
+      <LinkOptionOutputFileName-DefaultValue>%ProjectName%.abs</LinkOptionOutputFileName-DefaultValue>
+      <COptionD-DefaultValue />
+      <GeneralOptionOutputBitIOR-DefaultValue>False</GeneralOptionOutputBitIOR-DefaultValue>
+      <GeneralOptionResetVectorAddressPE4-DefaultValue>0</GeneralOptionResetVectorAddressPE4-DefaultValue>
+      <GeneralOptionXcref-DefaultValue>False</GeneralOptionXcref-DefaultValue>
+      <HexOptionOutputFileName-DefaultValue>%ProjectName%.mot</HexOptionOutputFileName-DefaultValue>
+      <LibOptionLibraryStandard-DefaultValue>False</LibOptionLibraryStandard-DefaultValue>
+      <LinkOptionLibraryStandard-DefaultValue>True</LinkOptionLibraryStandard-DefaultValue>
+      <PreBuildCommands-DefaultValue />
+      <GeneralOptionResetVectorAddressPE5-DefaultValue>0</GeneralOptionResetVectorAddressPE5-DefaultValue>
+      <GeneralOptionXobjPath-DefaultValue>%BuildModeName%</GeneralOptionXobjPath-DefaultValue>
+      <HexOptionDivisionOutputFile-DefaultValue />
+      <LibOptionLibraryStandard2-DefaultValue>NotUse</LibOptionLibraryStandard2-DefaultValue>
+      <LinkOptionLibraryStandard2-DefaultValue>Use</LinkOptionLibraryStandard2-DefaultValue>
+      <PostBuildCommands-DefaultValue />
+      <GeneralOptionResetVectorAddressPE6-DefaultValue>0</GeneralOptionResetVectorAddressPE6-DefaultValue>
+      <LibOptionLibraryLibC-DefaultValue>False</LibOptionLibraryLibC-DefaultValue>
+      <LinkOptionLibraryLibC-DefaultValue>True</LinkOptionLibraryLibC-DefaultValue>
+      <GeneralOptionOtherAdditionalOptions-DefaultValue />
+      <GeneralOptionResetVectorAddressPE7-DefaultValue>0</GeneralOptionResetVectorAddressPE7-DefaultValue>
+      <LibOptionLibraryLibM-DefaultValue>False</LibOptionLibraryLibM-DefaultValue>
+      <LinkOptionLibraryLibM-DefaultValue>True</LinkOptionLibraryLibM-DefaultValue>
+      <LibOptionLibraryLibMF-DefaultValue>False</LibOptionLibraryLibMF-DefaultValue>
+      <LinkOptionLibraryLibMF-DefaultValue>True</LinkOptionLibraryLibMF-DefaultValue>
+      <LibOptionLibraryStandardMathematics-DefaultValue>False</LibOptionLibraryStandardMathematics-DefaultValue>
+      <LinkOptionLibraryStandardMathematics-DefaultValue>True</LinkOptionLibraryStandardMathematics-DefaultValue>
+      <LibOptionLibraryLibSetJmp-DefaultValue>False</LibOptionLibraryLibSetJmp-DefaultValue>
+      <LinkOptionLibraryLibSetJmp-DefaultValue>False</LinkOptionLibraryLibSetJmp-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587732238333657134</TimeTagModified--0>
+      <BuildMode-0>DefaultBuild</BuildMode-0>
+      <Memo-0 />
+      <PreBuildCommands-0 />
+      <PostBuildCommands-0 />
+      <GeneralOptionOutput-0>LoadModuleFile</GeneralOptionOutput-0>
+      <GeneralOptionResetVectorAddress-0>0</GeneralOptionResetVectorAddress-0>
+      <GeneralOptionSimultaneousBuild-0>True</GeneralOptionSimultaneousBuild-0>
+      <GeneralOptionUpdateIO-0>False</GeneralOptionUpdateIO-0>
+      <GeneralOptionXerrorFile-0>False</GeneralOptionXerrorFile-0>
+      <GeneralOptionXregMode-0>RegisterMode32</GeneralOptionXregMode-0>
+      <OutputMessageFormat-0>%TargetFiles%</OutputMessageFormat-0>
+      <CompilerVersion-0>
+
+0</CompilerVersion-0>
+      <FormatBuildOptionList-0>%TargetFiles% : %Program% %Options%</FormatBuildOptionList-0>
+      <GeneralOptionEnableParallelBuilding-0>False</GeneralOptionEnableParallelBuilding-0>
+      <GeneralOptionLastDevice-0 />
+      <GeneralOptionResetVectorAddressPE2-0>0</GeneralOptionResetVectorAddressPE2-0>
+      <GeneralOptionXcommon-0>RH850</GeneralOptionXcommon-0>
+      <GeneralOptionXerrorFolder-0>%BuildModeName%</GeneralOptionXerrorFolder-0>
+      <GeneralOptionXnoWarning-0 />
+      <GeneralOptionXreserveR2-0>False</GeneralOptionXreserveR2-0>
+      <DependencyFileExistCheckingType-0>Rebuild</DependencyFileExistCheckingType-0>
+      <GeneralOptionCoreCPU-0>G3K</GeneralOptionCoreCPU-0>
+      <GeneralOptionCurrentDevice-0>DR7F701035.DVF, V1.30</GeneralOptionCurrentDevice-0>
+      <GeneralOptionResetVectorAddressPE3-0>0</GeneralOptionResetVectorAddressPE3-0>
+      <GeneralOptionXep-0>None</GeneralOptionXep-0>
+      <GeneralOptionXerrorFileName-0>%ProjectName%.err</GeneralOptionXerrorFileName-0>
+      <GeneralOptionOutputBitIOR-0>False</GeneralOptionOutputBitIOR-0>
+      <GeneralOptionResetVectorAddressPE4-0>0</GeneralOptionResetVectorAddressPE4-0>
+      <GeneralOptionXcref-0>False</GeneralOptionXcref-0>
+      <GeneralOptionResetVectorAddressPE5-0>0</GeneralOptionResetVectorAddressPE5-0>
+      <GeneralOptionXobjPath-0>%BuildModeName%</GeneralOptionXobjPath-0>
+      <GeneralOptionResetVectorAddressPE6-0>0</GeneralOptionResetVectorAddressPE6-0>
+      <GeneralOptionOtherAdditionalOptions-0 />
+      <GeneralOptionResetVectorAddressPE7-0>0</GeneralOptionResetVectorAddressPE7-0>
+      <LastCompilerVersion-0>V1.02.00</LastCompilerVersion-0>
+      <GeneralOptionResetVectorAddressD-0>0</GeneralOptionResetVectorAddressD-0>
+    </Instance>
+    <Instance Guid="24e7db6c-6f3c-483e-b3af-c4be92050d3b">
+      <COptionG-DefaultValue>True</COptionG-DefaultValue>
+      <COptionI-DefaultValue />
+      <COptionOsize-DefaultValue>Default</COptionOsize-DefaultValue>
+      <COptionPreCompileCommands-DefaultValue />
+      <COptionXansi-DefaultValue>False</COptionXansi-DefaultValue>
+      <COptionXasmPath-DefaultValue>False</COptionXasmPath-DefaultValue>
+      <COptionXcharacterSet-DefaultValue>Auto</COptionXcharacterSet-DefaultValue>
+      <COptionXmisra2004-DefaultValue>None</COptionXmisra2004-DefaultValue>
+      <COptionXpack-DefaultValue>None</COptionXpack-DefaultValue>
+      <COptionXprnPath-DefaultValue>False</COptionXprnPath-DefaultValue>
+      <COptionISystem-DefaultValue />
+      <COptionOdeleteStaticFunc-DefaultValue>None</COptionOdeleteStaticFunc-DefaultValue>
+      <COptionPostCompileCommands-DefaultValue />
+      <COptionXalign-DefaultValue>Align2</COptionXalign-DefaultValue>
+      <COptionXasmPathValue-DefaultValue>%BuildModeName%</COptionXasmPathValue-DefaultValue>
+      <COptionXenumType-DefaultValue>SignedInteger</COptionXenumType-DefaultValue>
+      <COptionXmisra2004RuleFile-DefaultValue />
+      <COptionXprnPathValue-DefaultValue>%BuildModeName%</COptionXprnPathValue-DefaultValue>
+      <COptionOinline-DefaultValue>FitToOptimization</COptionOinline-DefaultValue>
+      <COptionOtherAdditionalOptions-DefaultValue />
+      <COptionP-DefaultValue>False</COptionP-DefaultValue>
+      <COptionXbitOrder-DefaultValue>None</COptionXbitOrder-DefaultValue>
+      <COptionXmisra2004RuleNumberApply-DefaultValue />
+      <COptionXpreinclude-DefaultValue />
+      <COptionXvolatile-DefaultValue>False</COptionXvolatile-DefaultValue>
+      <COptionD-DefaultValue />
+      <COptionOinlineSize-DefaultValue>100</COptionOinlineSize-DefaultValue>
+      <COptionXcheck-DefaultValue>None</COptionXcheck-DefaultValue>
+      <COptionXmisra2004RuleNumberIgnore-DefaultValue />
+      <COptionXpassSource-DefaultValue>False</COptionXpassSource-DefaultValue>
+      <COptionXprepPath-DefaultValue>%BuildModeName%</COptionXprepPath-DefaultValue>
+      <COptionOpipeline-DefaultValue>None</COptionOpipeline-DefaultValue>
+      <COptionU-DefaultValue />
+      <COptionXmisra2004RuleNumberRequiredAdd-DefaultValue />
+      <COptionXswitch-DefaultValue>Auto</COptionXswitch-DefaultValue>
+      <COptionOtailCall-DefaultValue>None</COptionOtailCall-DefaultValue>
+      <COptionXfloat-DefaultValue>None</COptionXfloat-DefaultValue>
+      <COptionXmisra2004RuleNumberRequiredRemove-DefaultValue />
+      <COptionXpreprocessComment-DefaultValue>False</COptionXpreprocessComment-DefaultValue>
+      <COptionMap-DefaultValue>None</COptionMap-DefaultValue>
+      <COptionXignoreFilesMisra-DefaultValue />
+      <COptionXpreprocessLine-DefaultValue>False</COptionXpreprocessLine-DefaultValue>
+      <COptionXround-DefaultValue>Nearest</COptionXround-DefaultValue>
+      <COptionXcheckLanguageExtension-DefaultValue>False</COptionXcheckLanguageExtension-DefaultValue>
+      <COptionXdblSize-DefaultValue>DoublePrecision</COptionXdblSize-DefaultValue>
+      <COptionXintermodule-DefaultValue>None</COptionXintermodule-DefaultValue>
+      <COptionXaliasAnsi-DefaultValue>False</COptionXaliasAnsi-DefaultValue>
+      <COptionXdiv-DefaultValue>False</COptionXdiv-DefaultValue>
+      <COptionXcheckDivOv-DefaultValue>False</COptionXcheckDivOv-DefaultValue>
+      <COptionXinlineStrcpy-DefaultValue>False</COptionXinlineStrcpy-DefaultValue>
+      <COptionXcheckDivOvValue-DefaultValue>1</COptionXcheckDivOvValue-DefaultValue>
+      <COptionXmergeString-DefaultValue>False</COptionXmergeString-DefaultValue>
+      <COptionXuseFmaf-DefaultValue>False</COptionXuseFmaf-DefaultValue>
+      <COptionXunorderedCmpf-DefaultValue>False</COptionXunorderedCmpf-DefaultValue>
+      <COptionXcallJump-DefaultValue>None</COptionXcallJump-DefaultValue>
+      <COptionXfarJump-DefaultValue />
+      <COptionXsectionData-DefaultValue>None</COptionXsectionData-DefaultValue>
+      <COptionXsectionConst-DefaultValue>None</COptionXsectionConst-DefaultValue>
+      <COptionXmultiLevel-DefaultValue>Level0</COptionXmultiLevel-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587883378283186953</TimeTagModified--0>
+      <COptionG-0>True</COptionG-0>
+      <COptionI-0 />
+      <COptionOsize-0>Default</COptionOsize-0>
+      <COptionPreCompileCommands-0 />
+      <COptionXansi-0>False</COptionXansi-0>
+      <COptionXasmPath-0>False</COptionXasmPath-0>
+      <COptionXcharacterSet-0>Auto</COptionXcharacterSet-0>
+      <COptionXmisra2004-0>None</COptionXmisra2004-0>
+      <COptionXpack-0>None</COptionXpack-0>
+      <COptionXprnPath-0>False</COptionXprnPath-0>
+      <COptionISystem-0 />
+      <COptionOdeleteStaticFunc-0>None</COptionOdeleteStaticFunc-0>
+      <COptionPostCompileCommands-0 />
+      <COptionXalign-0>Align2</COptionXalign-0>
+      <COptionXasmPathValue-0>%BuildModeName%</COptionXasmPathValue-0>
+      <COptionXenumType-0>SignedInteger</COptionXenumType-0>
+      <COptionXmisra2004RuleFile-0 />
+      <COptionXprnPathValue-0>%BuildModeName%</COptionXprnPathValue-0>
+      <COptionOinline-0>FitToOptimization</COptionOinline-0>
+      <COptionOtherAdditionalOptions-0 />
+      <COptionP-0>False</COptionP-0>
+      <COptionXbitOrder-0>None</COptionXbitOrder-0>
+      <COptionXmisra2004RuleNumberApply-0 />
+      <COptionXpreinclude-0 />
+      <COptionXvolatile-0>False</COptionXvolatile-0>
+      <COptionD-0 />
+      <COptionOinlineSize-0>100</COptionOinlineSize-0>
+      <COptionXcheck-0>None</COptionXcheck-0>
+      <COptionXmisra2004RuleNumberIgnore-0 />
+      <COptionXpassSource-0>False</COptionXpassSource-0>
+      <COptionXprepPath-0>%BuildModeName%</COptionXprepPath-0>
+      <COptionOpipeline-0>None</COptionOpipeline-0>
+      <COptionU-0 />
+      <COptionXmisra2004RuleNumberRequiredAdd-0 />
+      <COptionXswitch-0>Auto</COptionXswitch-0>
+      <COptionOtailCall-0>None</COptionOtailCall-0>
+      <COptionXfloat-0>None</COptionXfloat-0>
+      <COptionXmisra2004RuleNumberRequiredRemove-0 />
+      <COptionXpreprocessComment-0>False</COptionXpreprocessComment-0>
+      <COptionMap-0>None</COptionMap-0>
+      <COptionXignoreFilesMisra-0 />
+      <COptionXpreprocessLine-0>False</COptionXpreprocessLine-0>
+      <COptionXround-0>Nearest</COptionXround-0>
+      <COptionXcheckLanguageExtension-0>False</COptionXcheckLanguageExtension-0>
+      <COptionXdblSize-0>DoublePrecision</COptionXdblSize-0>
+      <COptionXintermodule-0>None</COptionXintermodule-0>
+      <COptionXaliasAnsi-0>False</COptionXaliasAnsi-0>
+      <COptionXdiv-0>False</COptionXdiv-0>
+      <COptionXcheckDivOv-0>False</COptionXcheckDivOv-0>
+      <COptionXinlineStrcpy-0>False</COptionXinlineStrcpy-0>
+      <COptionXcheckDivOvValue-0>1</COptionXcheckDivOvValue-0>
+      <COptionXmergeString-0>False</COptionXmergeString-0>
+      <COptionXuseFmaf-0>False</COptionXuseFmaf-0>
+      <COptionXunorderedCmpf-0>False</COptionXunorderedCmpf-0>
+      <COptionXcallJump-0>None</COptionXcallJump-0>
+      <COptionXfarJump-0 />
+      <COptionXsectionData-0>None</COptionXsectionData-0>
+      <COptionXsectionConst-0>None</COptionXsectionConst-0>
+      <COptionXmultiLevel-0>Level0</COptionXmultiLevel-0>
+    </Instance>
+    <Instance Guid="55f70bbd-5f8f-404f-854e-5da727c86621">
+      <AsmOptionPreAssembleCommands-DefaultValue />
+      <COptionG-DefaultValue>True</COptionG-DefaultValue>
+      <COptionI-DefaultValue />
+      <COptionXasmFarJump-DefaultValue>False</COptionXasmFarJump-DefaultValue>
+      <COptionXcharacterSet-DefaultValue>Auto</COptionXcharacterSet-DefaultValue>
+      <COptionXprnPath-DefaultValue>False</COptionXprnPath-DefaultValue>
+      <AsmOptionPostAssembleCommands-DefaultValue />
+      <COptionISystem-DefaultValue />
+      <COptionXprnPathValue-DefaultValue>%BuildModeName%</COptionXprnPathValue-DefaultValue>
+      <AsmOptionOtherAdditionalOptions-DefaultValue />
+      <COptionD-DefaultValue />
+      <COptionU-DefaultValue />
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587883378283186953</TimeTagModified--0>
+      <AsmOptionPreAssembleCommands-0 />
+      <COptionG-0>True</COptionG-0>
+      <COptionI-0 />
+      <COptionXasmFarJump-0>False</COptionXasmFarJump-0>
+      <COptionXcharacterSet-0>Auto</COptionXcharacterSet-0>
+      <COptionXprnPath-0>False</COptionXprnPath-0>
+      <AsmOptionPostAssembleCommands-0 />
+      <COptionISystem-0 />
+      <COptionXprnPathValue-0>%BuildModeName%</COptionXprnPathValue-0>
+      <AsmOptionOtherAdditionalOptions-0 />
+      <COptionD-0 />
+      <COptionU-0 />
+    </Instance>
+    <Instance Guid="82d7e767-9e1b-43e5-a62d-4a892fa42000">
+      <LinkOptionCpu-DefaultValue>False</LinkOptionCpu-DefaultValue>
+      <LinkOptionDebug-DefaultValue>Debug</LinkOptionDebug-DefaultValue>
+      <LinkOptionEntry-DefaultValue>False</LinkOptionEntry-DefaultValue>
+      <LinkOptionInput-DefaultValue />
+      <LinkOptionLibrary-DefaultValue />
+      <LinkOptionListShow-DefaultValue>List</LinkOptionListShow-DefaultValue>
+      <LinkOptionMap-DefaultValue>False</LinkOptionMap-DefaultValue>
+      <LinkOptionMessage-DefaultValue>False</LinkOptionMessage-DefaultValue>
+      <LinkOptionOutputFolder-DefaultValue>%BuildModeName%</LinkOptionOutputFolder-DefaultValue>
+      <LinkOptionStack-DefaultValue>False</LinkOptionStack-DefaultValue>
+      <LinkOptionStart-DefaultValue>RESET,EIINTTBL,.const,.INIT_DSEC.const,.INIT_BSEC.const,.text,.data/00000000,.data.R,.bss,.stack.bss/FEDE0000</LinkOptionStart-DefaultValue>
+      <LinkOptionBinary-DefaultValue />
+      <LinkOptionCompress-DefaultValue>False</LinkOptionCompress-DefaultValue>
+      <LinkOptionCpuInformation-DefaultValue />
+      <LinkOptionEntryPoint-DefaultValue />
+      <LinkOptionLibrarySystem-DefaultValue />
+      <LinkOptionMemory-DefaultValue>False</LinkOptionMemory-DefaultValue>
+      <LinkOptionNoMessageErrorNumber-DefaultValue />
+      <LinkOptionOutputFileName-DefaultValue>%ProjectName%.abs</LinkOptionOutputFileName-DefaultValue>
+      <LinkOptionShowSymbol-DefaultValue>False</LinkOptionShowSymbol-DefaultValue>
+      <LinkOptionStartUp-DefaultValue />
+      <LinkOptionDefine-DefaultValue />
+      <LinkOptionFSymbol-DefaultValue />
+      <LinkOptionHide-DefaultValue>False</LinkOptionHide-DefaultValue>
+      <LinkOptionLibraryStandard-DefaultValue>True</LinkOptionLibraryStandard-DefaultValue>
+      <LinkOptionMsgUnused-DefaultValue>False</LinkOptionMsgUnused-DefaultValue>
+      <LinkOptionPadding-DefaultValue>False</LinkOptionPadding-DefaultValue>
+      <LinkOptionShowReference-DefaultValue>False</LinkOptionShowReference-DefaultValue>
+      <LinkOptionTotalSize-DefaultValue>False</LinkOptionTotalSize-DefaultValue>
+      <LinkOptionChangeMessageInformation-DefaultValue>None</LinkOptionChangeMessageInformation-DefaultValue>
+      <LinkOptionLibraryStandard2-DefaultValue>Use</LinkOptionLibraryStandard2-DefaultValue>
+      <LinkOptionLogo-DefaultValue>False</LinkOptionLogo-DefaultValue>
+      <LinkOptionOverrunFetch-DefaultValue>False</LinkOptionOverrunFetch-DefaultValue>
+      <LinkOptionOverwriteSymbol-DefaultValue>True</LinkOptionOverwriteSymbol-DefaultValue>
+      <LinkOptionShowXreference-DefaultValue>False</LinkOptionShowXreference-DefaultValue>
+      <LinkOptionAlignedSection-DefaultValue />
+      <LinkOptionChangeMessageInformationNumber-DefaultValue />
+      <LinkOptionLibraryLibC-DefaultValue>True</LinkOptionLibraryLibC-DefaultValue>
+      <LinkOptionPreLinkCommands-DefaultValue />
+      <LinkOptionShowTotalSize-DefaultValue>False</LinkOptionShowTotalSize-DefaultValue>
+      <LinkOptionChangeMessageWarning-DefaultValue>None</LinkOptionChangeMessageWarning-DefaultValue>
+      <LinkOptionLibraryLibM-DefaultValue>True</LinkOptionLibraryLibM-DefaultValue>
+      <LinkOptionPostLinkCommands-DefaultValue />
+      <LinkOptionRom-DefaultValue>.data=.data.R
+</LinkOptionRom-DefaultValue>
+      <LinkOptionShowStruct-DefaultValue>False</LinkOptionShowStruct-DefaultValue>
+      <LinkOptionChangeMessageWarningNumber-DefaultValue />
+      <LinkOptionLibraryLibMF-DefaultValue>True</LinkOptionLibraryLibMF-DefaultValue>
+      <LinkOptionOtherAdditionalOptions-DefaultValue />
+      <LinkOptionChangeMessageError-DefaultValue>None</LinkOptionChangeMessageError-DefaultValue>
+      <LinkOptionLibraryStandardMathematics-DefaultValue>True</LinkOptionLibraryStandardMathematics-DefaultValue>
+      <LinkOptionChangeMessageErrorNumber-DefaultValue />
+      <LinkOptionLibraryLibSetJmp-DefaultValue>False</LinkOptionLibraryLibSetJmp-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587732238333637133</TimeTagModified--0>
+      <LinkOptionCpu-0>False</LinkOptionCpu-0>
+      <LinkOptionDebug-0>Debug</LinkOptionDebug-0>
+      <LinkOptionEntry-0>False</LinkOptionEntry-0>
+      <LinkOptionInput-0 />
+      <LinkOptionLibrary-0 />
+      <LinkOptionListShow-0>List</LinkOptionListShow-0>
+      <LinkOptionMap-0>False</LinkOptionMap-0>
+      <LinkOptionMessage-0>False</LinkOptionMessage-0>
+      <LinkOptionOutputFolder-0>%BuildModeName%</LinkOptionOutputFolder-0>
+      <LinkOptionStack-0>False</LinkOptionStack-0>
+      <LinkOptionStart-0>RESET,EIINTTBL,.const,.INIT_DSEC.const,.INIT_BSEC.const,.text,.data/00000000,.data.R,.bss,.stack.bss/FEDE0000</LinkOptionStart-0>
+      <LinkOptionBinary-0 />
+      <LinkOptionCompress-0>False</LinkOptionCompress-0>
+      <LinkOptionCpuInformation-0 />
+      <LinkOptionEntryPoint-0 />
+      <LinkOptionLibrarySystem-0 />
+      <LinkOptionMemory-0>False</LinkOptionMemory-0>
+      <LinkOptionNoMessageErrorNumber-0 />
+      <LinkOptionOutputFileName-0>%ProjectName%.abs</LinkOptionOutputFileName-0>
+      <LinkOptionShowSymbol-0>False</LinkOptionShowSymbol-0>
+      <LinkOptionStartUp-0 />
+      <LinkOptionDefine-0 />
+      <LinkOptionFSymbol-0 />
+      <LinkOptionHide-0>False</LinkOptionHide-0>
+      <LinkOptionLibraryStandard-0>True</LinkOptionLibraryStandard-0>
+      <LinkOptionMsgUnused-0>False</LinkOptionMsgUnused-0>
+      <LinkOptionPadding-0>False</LinkOptionPadding-0>
+      <LinkOptionShowReference-0>False</LinkOptionShowReference-0>
+      <LinkOptionTotalSize-0>False</LinkOptionTotalSize-0>
+      <LinkOptionChangeMessageInformation-0>None</LinkOptionChangeMessageInformation-0>
+      <LinkOptionLibraryStandard2-0>UseCompatibleV101</LinkOptionLibraryStandard2-0>
+      <LinkOptionLogo-0>False</LinkOptionLogo-0>
+      <LinkOptionOverrunFetch-0>False</LinkOptionOverrunFetch-0>
+      <LinkOptionOverwriteSymbol-0>True</LinkOptionOverwriteSymbol-0>
+      <LinkOptionShowXreference-0>False</LinkOptionShowXreference-0>
+      <LinkOptionAlignedSection-0 />
+      <LinkOptionChangeMessageInformationNumber-0 />
+      <LinkOptionLibraryLibC-0>True</LinkOptionLibraryLibC-0>
+      <LinkOptionPreLinkCommands-0 />
+      <LinkOptionShowTotalSize-0>False</LinkOptionShowTotalSize-0>
+      <LinkOptionChangeMessageWarning-0>None</LinkOptionChangeMessageWarning-0>
+      <LinkOptionLibraryLibM-0>True</LinkOptionLibraryLibM-0>
+      <LinkOptionPostLinkCommands-0 />
+      <LinkOptionRom-0>.data=.data.R
+</LinkOptionRom-0>
+      <LinkOptionShowStruct-0>False</LinkOptionShowStruct-0>
+      <LinkOptionChangeMessageWarningNumber-0 />
+      <LinkOptionLibraryLibMF-0>True</LinkOptionLibraryLibMF-0>
+      <LinkOptionOtherAdditionalOptions-0 />
+      <LinkOptionChangeMessageError-0>None</LinkOptionChangeMessageError-0>
+      <LinkOptionLibraryStandardMathematics-0>True</LinkOptionLibraryStandardMathematics-0>
+      <LinkOptionChangeMessageErrorNumber-0 />
+      <LinkOptionLibraryLibSetJmp-0>False</LinkOptionLibraryLibSetJmp-0>
+    </Instance>
+    <Instance Guid="cd7ca0dd-4e03-43a0-b849-b72bd0bf0bd1">
+      <HexOptionForm-DefaultValue>Stype</HexOptionForm-DefaultValue>
+      <HexOptionOtherAdditionalOptions-DefaultValue />
+      <HexOptionOutput-DefaultValue>True</HexOptionOutput-DefaultValue>
+      <HexOptionSameLinkMessage-DefaultValue>True</HexOptionSameLinkMessage-DefaultValue>
+      <HexOptionMessage-DefaultValue>False</HexOptionMessage-DefaultValue>
+      <HexOptionOutputFolder-DefaultValue>%BuildModeName%</HexOptionOutputFolder-DefaultValue>
+      <HexOptionRecordH-DefaultValue>None</HexOptionRecordH-DefaultValue>
+      <HexOptionNoMessageErrorNumber-DefaultValue />
+      <HexOptionOutputFileName-DefaultValue>%ProjectName%.mot</HexOptionOutputFileName-DefaultValue>
+      <HexOptionRecordS-DefaultValue>None</HexOptionRecordS-DefaultValue>
+      <HexOptionChangeMessageInformation-DefaultValue>None</HexOptionChangeMessageInformation-DefaultValue>
+      <HexOptionDivisionOutputFile-DefaultValue />
+      <HexOptionSpace-DefaultValue>None</HexOptionSpace-DefaultValue>
+      <HexOptionChangeMessageInformationNumber-DefaultValue />
+      <HexOptionSpaceValue-DefaultValue>FF</HexOptionSpaceValue-DefaultValue>
+      <HexOptionUseObject-DefaultValue>False</HexOptionUseObject-DefaultValue>
+      <HexOptionByteCount-DefaultValue>False</HexOptionByteCount-DefaultValue>
+      <HexOptionChangeMessageWarning-DefaultValue>None</HexOptionChangeMessageWarning-DefaultValue>
+      <HexOptionOutputFolderForUnitedHexFile-DefaultValue>%BuildModeName%_merged</HexOptionOutputFolderForUnitedHexFile-DefaultValue>
+      <HexOptionByteCountValue-DefaultValue>FF</HexOptionByteCountValue-DefaultValue>
+      <HexOptionChangeMessageWarningNumber-DefaultValue />
+      <HexOptionChangeMessageError-DefaultValue>None</HexOptionChangeMessageError-DefaultValue>
+      <HexOptionS9-DefaultValue>False</HexOptionS9-DefaultValue>
+      <HexOptionChangeMessageErrorNumber-DefaultValue />
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587883378283186953</TimeTagModified--0>
+      <HexOptionForm-0>Stype</HexOptionForm-0>
+      <HexOptionOtherAdditionalOptions-0 />
+      <HexOptionOutput-0>True</HexOptionOutput-0>
+      <HexOptionSameLinkMessage-0>True</HexOptionSameLinkMessage-0>
+      <HexOptionMessage-0>False</HexOptionMessage-0>
+      <HexOptionOutputFolder-0>%BuildModeName%</HexOptionOutputFolder-0>
+      <HexOptionRecordH-0>None</HexOptionRecordH-0>
+      <HexOptionNoMessageErrorNumber-0 />
+      <HexOptionOutputFileName-0>%ProjectName%.mot</HexOptionOutputFileName-0>
+      <HexOptionRecordS-0>None</HexOptionRecordS-0>
+      <HexOptionChangeMessageInformation-0>None</HexOptionChangeMessageInformation-0>
+      <HexOptionDivisionOutputFile-0 />
+      <HexOptionSpace-0>None</HexOptionSpace-0>
+      <HexOptionChangeMessageInformationNumber-0 />
+      <HexOptionSpaceValue-0>FF</HexOptionSpaceValue-0>
+      <HexOptionUseObject-0>False</HexOptionUseObject-0>
+      <HexOptionByteCount-0>False</HexOptionByteCount-0>
+      <HexOptionChangeMessageWarning-0>None</HexOptionChangeMessageWarning-0>
+      <HexOptionOutputFolderForUnitedHexFile-0>%BuildModeName%_merged</HexOptionOutputFolderForUnitedHexFile-0>
+      <HexOptionByteCountValue-0>FF</HexOptionByteCountValue-0>
+      <HexOptionChangeMessageWarningNumber-0 />
+      <HexOptionChangeMessageError-0>None</HexOptionChangeMessageError-0>
+      <HexOptionS9-0>False</HexOptionS9-0>
+      <HexOptionChangeMessageErrorNumber-0 />
+    </Instance>
+    <Instance Guid="625fdef6-79e0-476f-ae26-6cde275afb59">
+      <LibOptionDebug-DefaultValue>Debug</LibOptionDebug-DefaultValue>
+      <LibOptionForm-DefaultValue>LibraryU</LibOptionForm-DefaultValue>
+      <LibOptionInput-DefaultValue />
+      <LibOptionLibrary-DefaultValue />
+      <LibOptionListShow-DefaultValue>None</LibOptionListShow-DefaultValue>
+      <LibOptionMemory-DefaultValue>False</LibOptionMemory-DefaultValue>
+      <LibOptionMessage-DefaultValue>False</LibOptionMessage-DefaultValue>
+      <LibOptionBinary-DefaultValue />
+      <LibOptionHide-DefaultValue>False</LibOptionHide-DefaultValue>
+      <LibOptionLibrarySystem-DefaultValue />
+      <LibOptionNoMessageErrorNumber-DefaultValue />
+      <LibOptionOutputFolder-DefaultValue>%BuildModeName%</LibOptionOutputFolder-DefaultValue>
+      <LibOptionShowSymbol-DefaultValue>False</LibOptionShowSymbol-DefaultValue>
+      <LibOptionTotalSize-DefaultValue>False</LibOptionTotalSize-DefaultValue>
+      <LibOptionLibraryStandard-DefaultValue>False</LibOptionLibraryStandard-DefaultValue>
+      <LibOptionLogo-DefaultValue>False</LibOptionLogo-DefaultValue>
+      <LibOptionOutputFileName-DefaultValue>%ProjectName%.lib</LibOptionOutputFileName-DefaultValue>
+      <LibOptionShowSection-DefaultValue>False</LibOptionShowSection-DefaultValue>
+      <LibOptionChangeMessageInformation-DefaultValue>None</LibOptionChangeMessageInformation-DefaultValue>
+      <LibOptionLibraryStandard2-DefaultValue>NotUse</LibOptionLibraryStandard2-DefaultValue>
+      <LibOptionPreLibCommands-DefaultValue />
+      <LibOptionShowXreference-DefaultValue>False</LibOptionShowXreference-DefaultValue>
+      <LibOptionChangeMessageInformationNumber-DefaultValue />
+      <LibOptionLibraryLibC-DefaultValue>False</LibOptionLibraryLibC-DefaultValue>
+      <LibOptionPostLibCommands-DefaultValue />
+      <LibOptionShowTotalSize-DefaultValue>False</LibOptionShowTotalSize-DefaultValue>
+      <LibOptionChangeMessageWarning-DefaultValue>None</LibOptionChangeMessageWarning-DefaultValue>
+      <LibOptionLibraryLibM-DefaultValue>False</LibOptionLibraryLibM-DefaultValue>
+      <LibOptionOtherAdditionalOptions-DefaultValue />
+      <LibOptionChangeMessageWarningNumber-DefaultValue />
+      <LibOptionLibraryLibMF-DefaultValue>False</LibOptionLibraryLibMF-DefaultValue>
+      <LibOptionChangeMessageError-DefaultValue>None</LibOptionChangeMessageError-DefaultValue>
+      <LibOptionLibraryStandardMathematics-DefaultValue>False</LibOptionLibraryStandardMathematics-DefaultValue>
+      <LibOptionChangeMessageErrorNumber-DefaultValue />
+      <LibOptionLibraryLibSetJmp-DefaultValue>False</LibOptionLibraryLibSetJmp-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587883378283186953</TimeTagModified--0>
+      <LibOptionDebug-0>Debug</LibOptionDebug-0>
+      <LibOptionForm-0>LibraryU</LibOptionForm-0>
+      <LibOptionInput-0 />
+      <LibOptionLibrary-0 />
+      <LibOptionListShow-0>None</LibOptionListShow-0>
+      <LibOptionMemory-0>False</LibOptionMemory-0>
+      <LibOptionMessage-0>False</LibOptionMessage-0>
+      <LibOptionBinary-0 />
+      <LibOptionHide-0>False</LibOptionHide-0>
+      <LibOptionLibrarySystem-0 />
+      <LibOptionNoMessageErrorNumber-0 />
+      <LibOptionOutputFolder-0>%BuildModeName%</LibOptionOutputFolder-0>
+      <LibOptionShowSymbol-0>False</LibOptionShowSymbol-0>
+      <LibOptionTotalSize-0>False</LibOptionTotalSize-0>
+      <LibOptionLibraryStandard-0>False</LibOptionLibraryStandard-0>
+      <LibOptionLogo-0>False</LibOptionLogo-0>
+      <LibOptionOutputFileName-0>%ProjectName%.lib</LibOptionOutputFileName-0>
+      <LibOptionShowSection-0>False</LibOptionShowSection-0>
+      <LibOptionChangeMessageInformation-0>None</LibOptionChangeMessageInformation-0>
+      <LibOptionLibraryStandard2-0>NotUse</LibOptionLibraryStandard2-0>
+      <LibOptionPreLibCommands-0 />
+      <LibOptionShowXreference-0>False</LibOptionShowXreference-0>
+      <LibOptionChangeMessageInformationNumber-0 />
+      <LibOptionLibraryLibC-0>False</LibOptionLibraryLibC-0>
+      <LibOptionPostLibCommands-0 />
+      <LibOptionShowTotalSize-0>False</LibOptionShowTotalSize-0>
+      <LibOptionChangeMessageWarning-0>None</LibOptionChangeMessageWarning-0>
+      <LibOptionLibraryLibM-0>False</LibOptionLibraryLibM-0>
+      <LibOptionOtherAdditionalOptions-0 />
+      <LibOptionChangeMessageWarningNumber-0 />
+      <LibOptionLibraryLibMF-0>False</LibOptionLibraryLibMF-0>
+      <LibOptionChangeMessageError-0>None</LibOptionChangeMessageError-0>
+      <LibOptionLibraryStandardMathematics-0>False</LibOptionLibraryStandardMathematics-0>
+      <LibOptionChangeMessageErrorNumber-0 />
+      <LibOptionLibraryLibSetJmp-0>False</LibOptionLibraryLibSetJmp-0>
+    </Instance>
+    <Instance Guid="95c30d64-f6f4-42dc-8c58-59f49088d7ac">
+      <GeneratorOptionUpdateIO-DefaultValue>None</GeneratorOptionUpdateIO-DefaultValue>
+      <GeneratorOtherAdditionalOptions-DefaultValue />
+      <GeneratorOptionLastDevice-DefaultValue />
+      <GeneratorOptionCurrentDevice-DefaultValue>DR7F701035.DVF, V1.30</GeneratorOptionCurrentDevice-DefaultValue>
+      <GeneratorOptionOutputBitIOR-DefaultValue>False</GeneratorOptionOutputBitIOR-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587883378283186953</TimeTagModified--0>
+      <GeneratorOptionUpdateIO-0>None</GeneratorOptionUpdateIO-0>
+      <GeneratorOtherAdditionalOptions-0 />
+      <GeneratorOptionLastDevice-0 />
+      <GeneratorOptionCurrentDevice-0>DR7F701035.DVF, V1.30</GeneratorOptionCurrentDevice-0>
+      <GeneratorOptionOutputBitIOR-0>False</GeneratorOptionOutputBitIOR-0>
+    </Instance>
+  </Class>
+  <Class Guid="44fa27c9-0aa0-4297-bd3b-2c5c5bdb8881">
+    <Instance Guid="44fa27c9-0aa0-4297-bd3b-2c5c5bdb8881">
+      <IsLibraryMode>False</IsLibraryMode>
+      <StartUpCategoryItem>00000000-0000-0000-0000-000000000000</StartUpCategoryItem>
+    </Instance>
+  </Class>
+  <Class Guid="a29a09ee-92c3-4ce7-9586-a1b058043f92">
+    <Instance Guid="a29a09ee-92c3-4ce7-9586-a1b058043f92">
+      <ProjectGeneratr-GeneratedFile0 />
+    </Instance>
+  </Class>
+  <Class Guid="b6e7b682-852c-4e65-8b76-ac439b49487d">
+    <Instance Guid="b6e7b682-852c-4e65-8b76-ac439b49487d">
+      <IsBootLoader>False</IsBootLoader>
+    </Instance>
+  </Class>
+  <Class Guid="8b5af363-dcc2-48e6-919c-6cdb80d50173">
+    <Instance Guid="8b5af363-dcc2-48e6-919c-6cdb80d50173">
+      <DataFormatVersionPlugin>1.0</DataFormatVersionPlugin>
+      <DataFormatVersionDebugger>1.0</DataFormatVersionDebugger>
+    </Instance>
+  </Class>
+  <Class Guid="932085a2-9361-4df9-a3f7-12e6de7681a8">
+    <Instance Guid="932085a2-9361-4df9-a3f7-12e6de7681a8">
+      <DebugToolManager>f2aacdac-89aa-4f89-8fbf-25090bc24c51</DebugToolManager>
+    </Instance>
+  </Class>
+  <Class Guid="e4df8d71-236e-4af2-aaea-56345a08da25">
+    <Instance Guid="d0534c29-4366-4056-9e09-bb28c173fcf6">
+      <DeviceChangedCounter>0</DeviceChangedCounter>
+      <DeviceName>R7F701035xAFP</DeviceName>
+      <DebuggerProperty-EssentialProperty-Clock-MainClockFrequency>320000</DebuggerProperty-EssentialProperty-Clock-MainClockFrequency>
+      <DebuggerProperty-EssentialProperty-Clock-SelectTimerTraceClockFrequency>SelectCpuClockFrequency</DebuggerProperty-EssentialProperty-Clock-SelectTimerTraceClockFrequency>
+      <DebuggerProperty-EssentialProperty-Clock-UnitOfTimerTraceClockFrequency>MHz</DebuggerProperty-EssentialProperty-Clock-UnitOfTimerTraceClockFrequency>
+      <DebuggerProperty-EssentialProperty-Clock-TimerTraceClockFrequency>8000000</DebuggerProperty-EssentialProperty-Clock-TimerTraceClockFrequency>
+      <DebuggerProperty-EssentialProperty-Configuration-UseSimulatorConfigurationFile>No</DebuggerProperty-EssentialProperty-Configuration-UseSimulatorConfigurationFile>
+      <DebuggerProperty-EssentialProperty-Configuration-SimulatorConfigurationFile />
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>1</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DebuggerGuid />
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>DefaultBuild\configure.abs</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>LoadModuleFile</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>False</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-GenerateInformationForInputCompletion>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-GenerateInformationForInputCompletion>
+      <DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>True</DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>False</DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>
+      <DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>SuspendEvent</DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>
+      <DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>True</DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>
+      <DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>XwBtAGEAaQBuAA==</DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>
+      <DebuggerProperty-DownloadProperty-DebugInformation-MaxLoaderMemorySize>500</DebuggerProperty-DownloadProperty-DebugInformation-MaxLoaderMemorySize>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>Yes</DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>500</DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>
+      <DebuggerProperty-OptionalProperty-Trace-UseTrace>No</DebuggerProperty-OptionalProperty-Trace-UseTrace>
+      <DebuggerProperty-OptionalProperty-Trace-ClearTraceMemory>Yes</DebuggerProperty-OptionalProperty-Trace-ClearTraceMemory>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMode>Free</DebuggerProperty-OptionalProperty-Trace-TraceMode>
+      <DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>No</DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>4096</DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>
+      <DebuggerProperty-OptionalProperty-Trace-TraceRate>0</DebuggerProperty-OptionalProperty-Trace-TraceRate>
+      <DebuggerProperty-OptionalProperty-Timer-UseTimer>No</DebuggerProperty-OptionalProperty-Timer-UseTimer>
+      <DebuggerProperty-OptionalProperty-Coverage-UseCoverage>No</DebuggerProperty-OptionalProperty-Coverage-UseCoverage>
+      <DebuggerProperty-OptionalProperty-Coverage-ReuseCoverageData>No</DebuggerProperty-OptionalProperty-Coverage-ReuseCoverageData>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddress>1048576</DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddress>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Reset-Length>0</DebuggerProperty-HookProperty-HookTransaction-Reset-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Going-Length>0</DebuggerProperty-HookProperty-HookTransaction-Going-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Broke-Length>0</DebuggerProperty-HookProperty-HookTransaction-Broke-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Connected-Length>0</DebuggerProperty-HookProperty-HookTransaction-Connected-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>0</DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>
+      <Debugger-DebugTarget-ProcessorElementNumber>1</Debugger-DebugTarget-ProcessorElementNumber>
+    </Instance>
+  </Class>
+  <Class Guid="2a2c2a43-ecdb-4e88-80bd-e75f3e33db90">
+    <Instance Guid="2a2c2a43-ecdb-4e88-80bd-e75f3e33db90">
+      <ProductVersion>5.00.00.00</ProductVersion>
+    </Instance>
+  </Class>
+</CubeSuiteProject>
Index: /atk2-sc3_fl850f1l/arch/ccrh/configure/configure.py
===================================================================
--- /atk2-sc3_fl850f1l/arch/ccrh/configure/configure.py	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ccrh/configure/configure.py	(revision 117)
@@ -0,0 +1,69 @@
+#!python
+# -*- coding: euc-jp -*-
+#
+#  TOPPERS ATK2
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+#      Automotive Kernel Version 2
+#
+#  Copyright (C) 2013-2014 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#  Copyright (C) 2013-2014 by FUJI SOFT INCORPORATED, JAPAN
+#  Copyright (C) 2013-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+#  Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
+#  Copyright (C) 2013-2014 by Sunny Giken Inc., JAPAN
+#  Copyright (C) 2013-2014 by TOSHIBA CORPORATION, JAPAN
+#  Copyright (C) 2013-2014 by Witz Corporation, JAPAN
+#
+#  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+# $Id: configure.py 164 2015-06-03 01:22:29Z t_ishikawa $
+#
+
+import os.path
+import os
+
+os.chdir(os.path.dirname(project.Path))
+
+# set relative path from top proj
+proj_rel_dir = ""
+
+# call definition file
+common.Source("./def.py")
+
+# path
+src_abs_path = os.path.abspath(SRCDIR)
+
+# call common file
+common.Source(src_abs_path + "/arch/ccrh/configure_body.py")
Index: /atk2-sc3_fl850f1l/arch/ccrh/configure/def.py
===================================================================
--- /atk2-sc3_fl850f1l/arch/ccrh/configure/def.py	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ccrh/configure/def.py	(revision 117)
@@ -0,0 +1,81 @@
+#!python
+# -*- coding: euc-jp -*-
+#
+#  TOPPERS ATK2
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+#      Automotive Kernel Version 2
+#
+#  Copyright (C) 2013-2015 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#  Copyright (C) 2013-2014 by FUJI SOFT INCORPORATED, JAPAN
+#  Copyright (C) 2013-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+#  Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
+#  Copyright (C) 2013-2014 by Sunny Giken Inc., JAPAN
+#  Copyright (C) 2013-2014 by TOSHIBA CORPORATION, JAPAN
+#  Copyright (C) 2013-2014 by Witz Corporation, JAPAN
+#
+#  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+# $Id: def.py 182 2015-06-24 07:14:37Z t_ishikawa $
+#
+
+# Source Dir
+SRCDIR = "../../"
+
+# Configfile name
+CFGNAME = ['sample1','target_hw_counter','target_serial','uart', 'target_mem', 'prc_mem']
+
+# Target board
+TARGET = "fl850f1l_ccrh"
+#TARGET = "hsbrh850f1l_ccrh"
+
+# Target mcu
+TARGET_MCU = 'R7F701035xAFP'
+#TARGET_MCU = 'R7F701025xAFP'
+
+# Application files
+app_app_files = ['sample1.c', 'sample2.c', 'sample_asm.asm']
+
+# Addition Dir list (relative path from srcdir)
+USER_INCLUDE = []
+
+# Addition Macro Definitions
+USER_MACRO = ['USE_KERNEL_LIBRARY_SYSLOG']
+
+# Copy sample1
+COPY_SAMPLE1 = True
+
+# MPU Region
+MPU_REGION_NUM = 4
Index: /atk2-sc3_fl850f1l/arch/ccrh/configure_body.py
===================================================================
--- /atk2-sc3_fl850f1l/arch/ccrh/configure_body.py	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ccrh/configure_body.py	(revision 117)
@@ -0,0 +1,325 @@
+#!python
+# -*- coding: euc-jp -*-
+#
+#  TOPPERS ATK2
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+#      Automotive Kernel Version 2
+#
+#  Copyright (C) 2013-2015 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#  Copyright (C) 2013-2014 by FUJI SOFT INCORPORATED, JAPAN
+#  Copyright (C) 2013-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+#  Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
+#  Copyright (C) 2013-2014 by Sunny Giken Inc., JAPAN
+#  Copyright (C) 2013-2014 by TOSHIBA CORPORATION, JAPAN
+#  Copyright (C) 2013-2014 by Witz Corporation, JAPAN
+#
+#  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+# $Id: configure_body.py 182 2015-06-24 07:14:37Z t_ishikawa $
+#
+
+import os.path
+import os
+import shutil
+
+# call common file
+common.Source(src_abs_path + "/arch/ccrh/common.py")
+
+src_abs_path = os.path.abspath(SRCDIR)
+wd_abs_path = os.path.abspath('.')
+cfg_mtsp = wd_abs_path + r"\cfg\cfg.mtsp"
+kernel_mtsp = wd_abs_path + r"\kernel\kernel.mtsp"
+cfg_pass4_mtsp = wd_abs_path + r"\cfg_pass4\cfg_pass4.mtsp"
+atk2_sc3_mtpj = wd_abs_path + r"\atk2-sc3.mtpj"
+
+if COPY_SAMPLE1:
+	shutil.copy(src_abs_path + r'/sample/sample1.c', '.')
+	shutil.copy(src_abs_path + r'/sample/sample2.c', '.')
+	shutil.copy(src_abs_path + r'/sample/sample.h', '.')
+	shutil.copy(src_abs_path + r'/sample/sample1.h', '.')
+	shutil.copy(src_abs_path + r'/sample/sample2.h', '.')
+	shutil.copy(src_abs_path + r'/sample/sample1.arxml', '.')
+	shutil.copy(src_abs_path + r'/sample/Rte_Type.h', '.')
+	shutil.copy(src_abs_path + r'/sample/sample_asm.asm', '.')
+
+#
+# close project
+#
+#project.Close() 
+print wd_abs_path + "\\atk2-sc3"
+project.Create(wd_abs_path + "\\atk2-sc3",
+				MicomType.RH850, 
+				TARGET_MCU, 
+				ProjectKind.Empty,
+				Compiler.CC_RH,
+				False)
+
+project.Create(wd_abs_path + "\\cfg\\cfg",
+				MicomType.RH850, 
+				TARGET_MCU, 
+				ProjectKind.Empty,
+				Compiler.CC_RH,
+				True)
+
+project.Create(wd_abs_path + "\\kernel\\kernel",
+				MicomType.RH850, 
+				TARGET_MCU, 
+				ProjectKind.Library,
+				Compiler.CC_RH,
+				True)
+
+project.Create(wd_abs_path + "\\cfg_pass4\\cfg_pass4",
+				MicomType.RH850, 
+				TARGET_MCU, 
+				ProjectKind.Empty,
+				Compiler.CC_RH,
+				True)
+
+#
+# Change debug tool
+#
+debugger.DebugTool.Change(DebugTool.E1Lpd)
+
+#
+# Add files for atk2-sc3 project
+#
+for file in app_app_files:
+	project.File.Add(wd_abs_path + "\\" + file, u"app")
+
+for file in app_sysmod_files:
+	project.File.Add(src_abs_path + "\\" + file, u"sysmod")
+
+for file in app_library_files:
+	project.File.Add(src_abs_path + "\\" + file, u"library")
+
+for file in app_configuration_files:
+        if file == 'kernel_mem.c':
+	    project.File.Add(wd_abs_path + "\\cfg_pass4\\" + file, u"configuration4")
+        else:
+            project.File.Add(wd_abs_path + "\\cfg\\" + file, u"configuration")
+
+str = src_abs_path + '\\' + statup_file
+project.File.Add(str, u"スタートアップ")
+
+#
+# Add files fot cfg project
+#
+project.Change(cfg_mtsp)
+
+file_list = project.File.Information()
+for file in file_list:
+	project.File.Remove(file)
+
+str = src_abs_path + '\\' + statup_file
+project.File.Add(str, u"スタートアップ")
+
+for file in cfg_configuration_files:
+	project.File.Add(wd_abs_path + "\\cfg\\" + file, u"configuration")
+
+#
+# Add files fot kernel project
+#
+project.Change(kernel_mtsp)
+
+file_list = project.File.Information()
+for file in file_list:
+	project.File.Remove(file)
+
+for file in kernel_kernel_files:
+	project.File.Add(src_abs_path + "\\" + file, u"kernel")
+
+for file in kernel_arch_files:
+	project.File.Add(src_abs_path + "\\" + file, u"arch")
+
+for file in kernel_target_files:
+	project.File.Add(src_abs_path + "\\" + file, u"target")
+
+#
+# Add files for cfg_pass4 project
+#
+project.Change(cfg_pass4_mtsp)
+
+file_list = project.File.Information()
+for file in file_list:
+	project.File.Remove(file)
+
+for file in app_app_files:
+	project.File.Add(wd_abs_path + "\\" + file, u"app")
+
+for file in app_sysmod_files:
+	project.File.Add(src_abs_path + "\\" + file, u"sysmod")
+
+for file in app_library_files:
+	project.File.Add(src_abs_path + "\\" + file, u"library")
+
+for file in app_configuration_files:
+        if file == 'kernel_mem.c':
+            file = 'kernel_mem2.c'
+	project.File.Add(wd_abs_path + "\\cfg\\" + file, u"configuration")
+
+str = src_abs_path + '\\' + statup_file
+project.File.Add(str, u"スタートアップ")
+
+project.Close(True)
+
+#
+# Modify atk2-sc3.mtpfj
+#
+inputstr = ReadFile('atk2-sc3.mtpj')
+
+# Set cx include path
+inputstr = NewSetCCRHIncludes(inputstr, atk2_sc3_rel_includes, INCLUDES, SRCDIR)
+# Set libary path and file
+#inputstr = NewSetLibIncludes(inputstr, atk2_sc3_lib_includes, [], SRCDIR)
+inputstr = NewSetLibFiles(inputstr, atk2_sc3_lib_files)
+# change Option
+inputstr = ChangeItemXml(inputstr, 'OutputMessageFormat-0', '%Program% %Options%')
+#inputstr = ChangeItemXml(inputstr, 'UseProEpiRuntimeLibrary-0', 'False')
+#inputstr = ChangeItemXml(inputstr, 'HexadecimalFileFormat-0','MotrolaSType32Bit')
+inputstr = ChangeItemXml(inputstr, 'HexOptionOutputFileName-0', r'%ProjectName%.srec')
+#inputstr = ChangeItemXml(inputstr, 'OutputLinkMapFile-0', 'True')
+inputstr = ChangeItemXml(inputstr, 'LinkOptionPadding-0', 'True')
+inputstr = ChangeItemXml(inputstr, 'LinkOptionShowSymbol-0', 'True')
+#inputstr = ChangeItemXml(inputstr, 'OutputSymbolInformationToLinkMapFile-0', 'True')
+inputstr = ChangeItemXml(inputstr, 'DebuggerProperty-EssentialProperty-Clock-MainClockGeneration', MAIN_CLK)
+inputstr = ChangeItemXml(inputstr, 'GeneralOptionXreserveR2-0', 'True')
+inputstr = ChangeItemXml(inputstr, 'COptionOsize-0', 'AdvancedSpeed')
+# Change linkoption if link_option is exist.
+try:
+	link_option = link_option
+	inputstr = ChangeItemXml(inputstr, 'LinkOptionStart-0', link_option)
+except NameError:
+	link_option = ''
+
+
+                                    
+# Set user macro definitions
+inputstr = NewSetDefine(inputstr, USER_MACRO)
+
+# Set Prebuild/Postbuile
+# inputstr = NewSetPrebuild(inputstr, atk2_sc3_pre_python_files, "./")
+
+WriteFile('atk2-sc3.mtpj', inputstr)
+
+#
+# Modify ./cfg/cfg.mtsp
+#
+inputstr = ReadFile('./cfg/cfg.mtsp')
+
+# Set cx include path
+inputstr = NewSetCCRHIncludes(inputstr, cfg_rel_includes, INCLUDES, "../" + SRCDIR)
+
+# change Option
+inputstr = ChangeItemXml(inputstr, 'OutputMessageFormat-0', '%Program% %Options%')
+#inputstr = ChangeItemXml(inputstr, 'UseProEpiRuntimeLibrary-0', 'False')
+#inputstr = ChangeItemXml(inputstr, 'HexadecimalFileFormat-0','MotrolaSType32Bit')
+inputstr = ChangeItemXml(inputstr, 'HexOptionOutputFileName-0', 'cfg1_out.srec')
+#inputstr = ChangeItemXml(inputstr, 'OutputLinkMapFile-0', 'True')
+inputstr = ChangeItemXml(inputstr, 'LinkOptionShowSymbol-0', 'True')
+inputstr = ChangeItemXml(inputstr, 'HexOptionOutputFolder-0', '.')
+
+# Set Prebuild/Postbuile
+inputstr = NewSetPrebuild(inputstr, cfg_pre_python_files, "../" + SRCDIR)
+inputstr = NewSetPostbuild(inputstr, cfg_post_python_files, "../" + SRCDIR)
+
+# Set user macro definitions
+inputstr = NewSetDefine(inputstr, USER_MACRO)
+
+WriteFile('./cfg/cfg.mtsp', inputstr)
+
+#
+# Mofity ./kernel/kernel.mtsp
+#
+inputstr = ReadFile('./kernel/kernel.mtsp')
+
+# Add user macro definitions
+kernel_define = kernel_define + USER_MACRO
+
+# Set cx include path
+inputstr = NewSetCCRHIncludes(inputstr, kernel_rel_includes, INCLUDES, "../" + SRCDIR)
+# Set cx define
+inputstr = NewSetDefine(inputstr, kernel_define)
+# Set cx addition option
+inputstr = NewSetCAddOpt(inputstr, kernel_c_addopt)
+inputstr = NewSetAsmAddOpt(inputstr, kernel_asm_addopt)
+
+# change Option
+inputstr = ChangeItemXml(inputstr, 'OutputMessageFormat-0', '%Program% %Options%')
+#inputstr = ChangeItemXml(inputstr, 'UseProEpiRuntimeLibrary-0', 'False')
+inputstr = ChangeItemXml(inputstr, 'GeneralOptionXreserveR2-0', 'True')
+inputstr = ChangeItemXml(inputstr, 'COptionOsize-0', 'AdvancedSpeed')
+
+WriteFile('./kernel/kernel.mtsp', inputstr)
+
+#
+# Modify cfg_pass4.mtpfj
+#
+inputstr = ReadFile('./cfg_pass4/cfg_pass4.mtsp')
+
+# Set cx include path
+inputstr = NewSetCCRHIncludes(inputstr, kernel_rel_includes, INCLUDES, "../" + SRCDIR)
+# Set libary path and file
+#inputstr = NewSetLibIncludes(inputstr, atk2_sc3_lib_includes, [], SRCDIR)
+inputstr = NewSetLibFiles(inputstr, cfg_pass4_lib_files)
+# change Option
+inputstr = ChangeItemXml(inputstr, 'OutputMessageFormat-0', '%Program% %Options%')
+#inputstr = ChangeItemXml(inputstr, 'UseProEpiRuntimeLibrary-0', 'False')
+#inputstr = ChangeItemXml(inputstr, 'HexadecimalFileFormat-0','MotrolaSType32Bit')
+inputstr = ChangeItemXml(inputstr, 'HexOptionOutputFileName-0', r'%ProjectName%.srec')
+#inputstr = ChangeItemXml(inputstr, 'OutputLinkMapFile-0', 'True')
+inputstr = ChangeItemXml(inputstr, 'LinkOptionPadding-0', 'True')
+inputstr = ChangeItemXml(inputstr, 'LinkOptionShowSymbol-0', 'True')
+#inputstr = ChangeItemXml(inputstr, 'OutputSymbolInformationToLinkMapFile-0', 'True')
+inputstr = ChangeItemXml(inputstr, 'DebuggerProperty-EssentialProperty-Clock-MainClockGeneration', MAIN_CLK)
+inputstr = ChangeItemXml(inputstr, 'GeneralOptionXreserveR2-0', 'True')
+inputstr = ChangeItemXml(inputstr, 'COptionOsize-0', 'AdvancedSpeed')
+# Change linkoption if link_option is exist.
+try:
+	link_option = link_option
+	inputstr = ChangeItemXml(inputstr, 'LinkOptionStart-0', link_option)
+except NameError:
+	link_option = ''
+                                    
+# Set user macro definitions
+inputstr = NewSetDefine(inputstr, USER_MACRO)
+
+# Set Prebuild/Postbuile
+inputstr = NewSetPostbuild(inputstr, cfg_pass4_post_python_files, "../" + SRCDIR)
+
+WriteFile('./cfg_pass4/cfg_pass4.mtsp', inputstr)
+
+project.Open(wd_abs_path + r'\atk2-sc3.mtpj')
+project.Change(atk2_sc3_mtpj)
Index: /atk2-sc3_fl850f1l/arch/ccrh/gcc2ccrh.rb
===================================================================
--- /atk2-sc3_fl850f1l/arch/ccrh/gcc2ccrh.rb	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ccrh/gcc2ccrh.rb	(revision 117)
@@ -0,0 +1,68 @@
+#! ruby -Ke
+
+if ARGV.size != 1 then
+    puts "Argment Error!"
+    exit
+end
+
+#Input from gcc file
+begin
+    gcc_asm_file = open(ARGV[0])
+rescue
+    puts "File Open Error!"
+    exit
+end
+
+
+cx_asm = ""
+
+#Convert 
+while line = gcc_asm_file.gets
+    line = line.gsub('.section .reset.text', "RESET .cseg text")
+    
+    line = line.sub('/*', ';/*')
+    
+    line = line.sub(/^(\s*)\*/, '\1;*')
+    
+    line = line.sub(/.macro\s+(\w+)/, '\1 .macro')
+    
+    line = line.sub(/#include\s+[<"](.+)[>"]/, '$include (\1)')
+    
+    line = line.sub('.global', '.extern')    
+
+    line = line.sub('.globl', '.public')    
+    
+    line = line.gsub(/AMARG\((\w+)\)/, '\1')
+    
+    line = line.gsub(/FLABEL\((\w+)\)/, '\1:')
+        
+    line = line.gsub('~', '!')
+    
+    line = line.gsub('#ifdef', '$ifdef')
+    
+    line = line.gsub('#ifndef', '$ifndef')    
+    
+    line = line.gsub('#endif', '$endif')
+    
+    line = line.gsub('#else', '$else')    
+
+    line = line.gsub('#elif', '$elseif')    
+    
+    line = line.gsub('.section', '.cseg')
+    
+    line = line.gsub(/\.endr/i, '.endm')
+    
+    line = line.gsub(/\.text/i, 'text')
+
+    line = line.gsub('.word', '.dw')
+    
+    cx_asm = cx_asm  + line
+end
+
+cx_asm_file_name = File::basename(ARGV[0].sub(".S", ".asm"))
+print sprintf("Output %s\n", cx_asm_file_name)
+
+#Output to asm file
+File.open(cx_asm_file_name, 'w') {|file|
+ file.write cx_asm 
+}
Index: /atk2-sc3_fl850f1l/arch/ccrh/kernel_inline_symbols.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/ccrh/kernel_inline_symbols.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ccrh/kernel_inline_symbols.h	(revision 117)
@@ -0,0 +1,91 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2013-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: kernel_inline_symbols.h 164 2015-06-03 01:22:29Z t_ishikawa $
+ */
+
+/*
+ *		コンパイラ依存定義
+ */
+
+#ifndef KERNEL_INLINE_SYMBOL_H
+#define KERNEL_INLINE_SYMBOL_H
+
+/*
+ *	共通インクルードのInline関数のシンボル登録
+ */
+
+/* queue.h	*/
+#pragma inline queue_initialize
+#pragma inline queue_insert_prev
+#pragma inline queue_insert_next
+#pragma inline queue_delete
+#pragma inline queue_delete_next
+#pragma inline queue_empty
+
+/*
+ *	ターゲット非依存部のInline関数のシンボル登録
+ */
+
+/* counter.h	*/
+#pragma inline add_tick
+#pragma inline diff_tick
+#pragma inline get_curval
+
+/* task.c	*/
+#pragma inline bitmap_search
+#pragma inline primap_empty
+#pragma inline primap_search
+#pragma inline primap_set
+#pragma inline primap_clear
+
+/* t_syslog.h	*/
+#pragma inline syslog
+#pragma inline _syslog_0
+#pragma inline _syslog_1
+#pragma inline _syslog_2
+#pragma inline _syslog_3
+#pragma inline _syslog_4
+#pragma inline _syslog_5
+#pragma inline _syslog_6
+
+#endif /* KERNEL_INLINE_SYMBOL_H */
Index: /atk2-sc3_fl850f1l/arch/ccrh/ldscript.tf
===================================================================
--- /atk2-sc3_fl850f1l/arch/ccrh/ldscript.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ccrh/ldscript.tf	(revision 117)
@@ -0,0 +1,199 @@
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$  Copyright (C) 2014-2015 by Center for Embedded Computing Systems
+$              Graduate School of Information Science, Nagoya Univ., JAPAN
+$
+$  上記著作権者は，以下の(1)~(4)の条件を満たす場合に限り，本ソフトウェ
+$  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+$  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+$  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+$      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+$      スコード中に含まれていること．
+$  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+$      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+$      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+$      の無保証規定を掲載すること．
+$  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+$      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+$      と．
+$    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+$        作権表示，この利用条件および下記の無保証規定を掲載すること．
+$    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+$        報告すること．
+$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+$      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+$      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+$      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+$      免責すること．
+$
+$  AUTOSAR（AUTomotive Open System ARchitecture）は，AUTOSAR仕様に基づ
+$  いたソフトウェアを商用目的で利用する者に対して，AUTOSARパートナーに
+$  なることを求めている．
+$
+$  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+$  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+$  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$  の責任を負わない．
+$
+$  $Id: ldscript.tf 189 2015-06-26 01:54:57Z t_ishikawa $
+$
+
+$ =====================================================================
+$  リンカスクリプト（ldscript.py）の生成
+$ =====================================================================
+
+$
+$  生成するファイルの指定
+$
+$FILE "ldscript.py"$
+# This file is generated by ccrh/ldscript.tf$NL$
+$NL$
+import os.path$NL$
+import os$NL$
+import shutil$NL$
+os.chdir(os.path.dirname(project.Path))$NL$
+proj_rel_dir = "../"$NL$
+common.Source("../def.py")$NL$
+src_abs_path = os.path.abspath(SRCDIR)$NL$
+# call common file$NL$
+common.Source("../../../arch/ccrh/common.py")$NL$
+$NL$
+
+$
+$  変数の初期化
+$
+$reset_lma = 0$
+
+$provide_gp = 0$
+$data_flg = 0$
+
+$reg_initdata = REG.REGNAME[STANDARD_ROM]$
+$ROMtoRAMsection = "ROMtoRAMsection"$
+$AlignSection = "AlignSection"$
+
+# initialize variables$NL$
+$FOREACH regid REG.ORDER_LIST$
+    $REG.REGNAME[regid]$ = []$NL$
+$END$
+$ROMtoRAMsection$ = []$NL$
+$AlignSection$ = []$NL$
+$NL$
+
+$
+$  リンク指定の生成
+$
+# preprocess for OsMemorySection$NL$
+$ ターゲット依存のセクション記述の生成
+$IF ISFUNCTION("GENERATE_SECTION_FIRST")$
+	$GENERATE_SECTION_FIRST()$
+$END$
+
+$FOREACH moid MO_ORDER$
+	$IF MO.LINKER[moid]$
+$		// セクションの開始記述の生成
+		$IF (MO.SEFLAG[moid] & 0x01) != 0$
+$           // セクションを配置するリージョンの取得
+            $reg = REG.REGNAME[MO.MEMREG[moid]]$
+			$IF !OMIT_IDATA && !EQ(MO.ILABEL[moid], "")$
+                $AlignSection$.append("$MO.SECTION[moid]$.R")$NL$
+            $END$
+            $AlignSection$.append("$MO.SECTION[moid]$")$NL$
+        $END$
+
+$		// リンクするファイル記述の生成
+		$section_dscr = SECTION_DESCRIPTION(MO.SECTION[moid])$
+		$IF MO.TYPE[moid] == TOPPERS_ATTSEC$
+			$IF !OMIT_IDATA && !EQ(MO.ILABEL[moid], "")$
+                $reg$.append("$MO.SECTION[moid]$.R")$NL$
+                $reg_initdata$.append("$MO.SECTION[moid]$")$NL$
+                $ROMtoRAMsection$.append($FORMAT("\'%1%=%1%.R\'", MO.SECTION[moid])$)$NL$
+            $ELSE$
+                $reg$.append("$MO.SECTION[moid]$")$NL$
+            $END$
+		$ELSE$
+$           // ユーザスタック領域 
+			$reg$.append("$MO.SECTION[moid]$")$NL$
+		$END$
+
+$		// アライン記述の生成
+		$IF (MO.SEFLAG[moid] & 0x20) != 0$
+			$IF !OMIT_IDATA && !EQ(MO.ILABEL[moid], "")$
+                $AlignSection$.append("$MO.SECTION[moid]$.R")$NL$
+            $END$
+            $AlignSection$.append("$MO.SECTION[moid]$")$NL$
+		$END$
+
+$		// メモリリージョン末でアラインさせるためのダミーセクションの生成
+		$IF (MO.SEFLAG[moid] & 0x80) != 0$
+			$IF !OMIT_IDATA && !EQ(MO.ILABEL[moid], "")$
+                $AlignSection$.append("$MO.SECTION[moid]$.R")$NL$
+            $END$
+            $AlignSection$.append("$MO.SECTION[moid]$")$NL$
+		$END$
+
+        $preid = moid$
+	$END$
+$END$
+$NL$
+
+# preprocess for OsLinkSection$NL$
+$FOREACH lsid RANGE(1, numls)$
+    $REG.REGNAME[LNKSEC.MEMREG[lsid]]$.append("$LNKSEC.SECTION[lsid]$")$NL$
+$END$
+$NL$
+
+sections = ""$NL$
+$FOREACH regid REG.ORDER_LIST$
+    if sections != "":$NL$
+    $TAB$sections += ","$NL$
+    sections += ",".join($REG.REGNAME[regid]$)$NL$
+    sections += $FORMAT("\"/%x\"", +REG.BASE[regid])$$NL$ 
+$END$
+
+$NL$
+wd_abs_path = os.path.abspath('..')$NL$
+project.Change(wd_abs_path + r'\atk2-sc3.mtpj')$NL$
+project.Close(True)$NL$
+inputstr = ReadFile('../atk2-sc3.mtpj')$NL$
+print sections$NL$
+# build.Link.SectionStartAddress = sections$NL$
+inputstr = NewSetItemXml(inputstr, 'LinkOptionStart-0', sections)$NL$
+inputstr = ChangeItemXml(inputstr, 'LinkOptionStart-0', sections)$NL$
+print $ROMtoRAMsection$$NL$
+# build.Link.SectionROMtoRAM = $ROMtoRAMsection$$NL$
+inputstr = NewSetItemXml(inputstr, 'LinkOptionRom-0', "\n".join($ROMtoRAMsection$))$NL$
+inputstr = ChangeItemXml(inputstr, 'LinkOptionRom-0', "\n".join($ROMtoRAMsection$))$NL$
+print sorted(set($AlignSection$), key=$AlignSection$.index)$NL$
+# build.Link.SectionAlignment = sorted(set($AlignSection$), key=$AlignSection$.index)$NL$
+inputstr = NewSetItemXml(inputstr, 'LinkOptionAlignedSection-0', 
+            "\n".join(sorted(set($AlignSection$), key=$AlignSection$.index)))$NL$
+inputstr = ChangeItemXml(inputstr, 'LinkOptionAlignedSection-0', 
+            "\n".join(sorted(set($AlignSection$), key=$AlignSection$.index)))$NL$
+WriteFile('../atk2-sc3.mtpj', inputstr)$NL$
+$NL$
+inputstr = ReadFile('../cfg_pass4/cfg_pass4.mtsp')$NL$
+print sections$NL$
+# build.Link.SectionStartAddress = sections$NL$
+inputstr = NewSetItemXml(inputstr, 'LinkOptionStart-0', sections)$NL$
+inputstr = ChangeItemXml(inputstr, 'LinkOptionStart-0', sections)$NL$
+print $ROMtoRAMsection$$NL$
+# build.Link.SectionROMtoRAM = $ROMtoRAMsection$$NL$
+inputstr = NewSetItemXml(inputstr, 'LinkOptionRom-0', "\n".join($ROMtoRAMsection$))$NL$
+inputstr = ChangeItemXml(inputstr, 'LinkOptionRom-0', "\n".join($ROMtoRAMsection$))$NL$
+print sorted(set($AlignSection$), key=$AlignSection$.index)$NL$
+# build.Link.SectionAlignment = sorted(set($AlignSection$), key=$AlignSection$.index)$NL$
+inputstr = NewSetItemXml(inputstr, 'LinkOptionAlignedSection-0', 
+            "\n".join(sorted(set($AlignSection$), key=$AlignSection$.index)))$NL$
+inputstr = ChangeItemXml(inputstr, 'LinkOptionAlignedSection-0', 
+            "\n".join(sorted(set($AlignSection$), key=$AlignSection$.index)))$NL$
+WriteFile('../cfg_pass4/cfg_pass4.mtsp', inputstr)$NL$
+$NL$
+wd_abs_path = os.path.abspath('..')$NL$
+project.Open(wd_abs_path + r'\atk2-sc3.mtpj')$NL$
+project.Change(wd_abs_path + r'\cfg\cfg.mtsp')$NL$
+$NL$
+
Index: /atk2-sc3_fl850f1l/arch/ccrh/post_atk2.py
===================================================================
--- /atk2-sc3_fl850f1l/arch/ccrh/post_atk2.py	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ccrh/post_atk2.py	(revision 117)
@@ -0,0 +1,130 @@
+#!python
+# -*- coding: euc-jp -*-
+#
+#  TOPPERS ATK2
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+#      Automotive Kernel Version 2
+#
+#  Copyright (C) 2013-2014 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#  Copyright (C) 2013-2014 by FUJI SOFT INCORPORATED, JAPAN
+#  Copyright (C) 2013-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+#  Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
+#  Copyright (C) 2013-2014 by Sunny Giken Inc., JAPAN
+#  Copyright (C) 2013-2014 by TOSHIBA CORPORATION, JAPAN
+#  Copyright (C) 2013-2014 by Witz Corporation, JAPAN
+#
+#  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+# $Id: post_atk2.py 164 2015-06-03 01:22:29Z t_ishikawa $
+#
+
+import subprocess
+import os
+import sys
+import re  # for regular expression
+import shutil
+
+# set relative path from top proj
+proj_rel_dir = ""
+
+# call definition file
+common.Source("./def.py")
+
+# path
+src_abs_path = os.path.abspath(SRCDIR)
+
+# call common file
+common.Source(src_abs_path + "/arch/ccrh/common.py")
+
+#
+# convert map file
+#
+inputfile = open("./DefaultBuild/atk2-sc1.map")
+outputfile = open("./DefaultBuild/atk2-sc1.syms", 'w')
+
+r = re.compile("^\s+([0-9a-f]+)\s+[0-9a-f]+\s+\w+\s+,\w+\s+\*\s+")
+line = inputfile.readline() 
+pre_line = line
+while line:
+    line = line.replace('\r\n','')   #delete newline
+    m = r.search(line)
+    if m:
+        outputfile.write(m.group(1) + " T " + pre_line + "\n")
+    pre_line = line
+    line = inputfile.readline()
+
+inputfile.close()
+outputfile.close()
+
+#
+# copy pass 1 generated files
+#
+print "Copy pass 1 generated file"
+shutil.copy("./cfg/cfg1_out.srec", ".")
+shutil.copy("./cfg/cfg1_out.syms", ".")
+shutil.copy("./cfg/cfg2_out.tf", ".")
+
+#
+# Execute cfg path 3
+#
+# make command
+cfg_command = cfg + " --pass 3 " + "--kernel " + CFG_KERNEL 
+cfg_command += " --api-table " + cfg_api_table
+cfg_command += " " + cfg_cfg1_def_tables + cfg_includes 
+cfg_command += " --rom-image ./DefaultBuild/atk2-sc1.srec --symbol-table ./DefaultBuild/atk2-sc1.syms"
+cfg_command += " -T " + cfg_check_tf
+cfg_command += " --ini-file " + cfg_ini_file
+cfg_command += " " + cfg_input_str
+
+print cfg_command
+
+# Execute 
+try:
+   output = subprocess.check_output(cfg_command, stderr=subprocess.STDOUT,)
+except subprocess.CalledProcessError, e:
+    print "ERROR!! : ", e.output
+    sys.exit()
+
+output.replace('\r','')
+print output
+
+#
+# dlete pass 1 generated files
+#
+print "Delete pass 1 generated file"
+os.remove("cfg1_out.srec")
+os.remove("cfg1_out.syms")
+os.remove("cfg2_out.tf")
Index: /atk2-sc3_fl850f1l/arch/ccrh/post_cfg.py
===================================================================
--- /atk2-sc3_fl850f1l/arch/ccrh/post_cfg.py	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ccrh/post_cfg.py	(revision 117)
@@ -0,0 +1,162 @@
+#!python
+# -*- coding: euc-jp -*-
+#
+#  TOPPERS ATK2
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+#      Automotive Kernel Version 2
+#
+#  Copyright (C) 2013-2014 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#  Copyright (C) 2013-2014 by FUJI SOFT INCORPORATED, JAPAN
+#  Copyright (C) 2013-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+#  Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
+#  Copyright (C) 2013-2014 by Sunny Giken Inc., JAPAN
+#  Copyright (C) 2013-2014 by TOSHIBA CORPORATION, JAPAN
+#  Copyright (C) 2013-2014 by Witz Corporation, JAPAN
+#
+#  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+# $Id: post_cfg.py 181 2015-06-12 10:02:03Z t_ishikawa $
+#
+
+import subprocess
+import os
+import sys
+import re  # for regular expression
+import shutil
+import os.path
+
+# set relative path from top proj
+proj_rel_dir = "../"
+
+# call definition file
+common.Source(proj_rel_dir + "def.py")
+
+# path
+src_abs_path = os.path.abspath(proj_rel_dir + SRCDIR)
+
+# call common file
+common.Source(src_abs_path + "/arch/ccrh/common.py")
+
+#
+# convert map file
+#
+inputfile = open("./DefaultBuild/cfg.map")
+outputfile = open("cfg1_out.syms", 'w')
+
+r = re.compile("^\s+([0-9a-f]+)\s+[0-9a-f]+\s+\w+\s+,\w+\s+\*\s+")
+line = inputfile.readline() 
+pre_line = line
+while line:
+    line = line.replace('\r\n','')   #delete newline
+    m = r.search(line)
+    if m:
+        outputfile.write(m.group(1) + " T " + pre_line + "\n")
+    pre_line = line
+    line = inputfile.readline()
+
+inputfile.close()
+outputfile.close()
+
+# remove Os_Lcfg.c
+if os.path.isfile('Os_Lcfg.c'):
+	os.remove('Os_Lcfg.c')
+
+#
+# Execute cfg path 2
+#
+# make command
+cfg_command = cfg + " --pass 2 " + "--kernel " + CFG_KERNEL 
+cfg_command += " --api-table " + cfg_api_table
+cfg_command += " " + cfg_cfg1_def_tables + cfg_includes 
+cfg_command += " -T " + cfg_tf
+cfg_command += " --ini-file " + cfg_ini_file
+cfg_command += " " + cfg_input_str
+
+print cfg_command
+
+# Execute 
+try:
+   output = subprocess.check_output(cfg_command, stderr=subprocess.STDOUT,)
+except subprocess.CalledProcessError, e:
+    print "ERROR!! : ", e.output
+    sys.exit()
+
+output.replace('\r','')
+print output
+
+#
+# mov Os_Cfg_tmp.h Os_Cfg.h
+#
+import filecmp
+if not os.path.isfile(r'Os_Cfg.h'):
+	print "Rename Os_Cfg_tmp.h to Os_Cfg.h"
+	shutil.move("Os_Cfg_tmp.h", "Os_Cfg.h")
+else:
+	print "compare Os_Cfg_tmp.h and Os_Cfg.h"
+	if not filecmp.cmp(r'Os_Cfg_tmp.h', r'Os_Cfg.h'):
+		print "Rename Os_Cfg_tmp.h to Os_Cfg.h"
+		shutil.move("Os_Cfg_tmp.h", "Os_Cfg.h")
+	else:
+		print "Delete Os_Cfg_tmp.h"
+		os.remove("Os_Cfg_tmp.h")
+
+#
+# Execute cfg path 3
+#
+# make command
+cfg_command = cfg + " --pass 3 " + "--kernel " + CFG_KERNEL 
+cfg_command += " --api-table " + cfg_api_table
+cfg_command += " " + cfg_cfg1_def_tables + cfg_includes 
+cfg_command += " --rom-image cfg1_out.srec --symbol-table cfg1_out.syms"
+cfg_command += " -T " + cfg_offset_tf
+cfg_command += " --ini-file " + cfg_ini_file
+cfg_command += " " + cfg_input_str
+
+
+print cfg_command
+
+# Execute 
+try:
+   output = subprocess.check_output(cfg_command, stderr=subprocess.STDOUT,)
+except subprocess.CalledProcessError, e:
+    print "ERROR!! : ", e.output
+    sys.exit()
+
+output.replace('\r','')
+print output
+
+common.Source("./ldscript.py")
+
Index: /atk2-sc3_fl850f1l/arch/ccrh/post_cfg_pass4.py
===================================================================
--- /atk2-sc3_fl850f1l/arch/ccrh/post_cfg_pass4.py	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ccrh/post_cfg_pass4.py	(revision 117)
@@ -0,0 +1,124 @@
+#!python
+# -*- coding: euc-jp -*-
+#
+#  TOPPERS ATK2
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+#      Automotive Kernel Version 2
+#
+#  Copyright (C) 2013-2014 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#  Copyright (C) 2013-2014 by FUJI SOFT INCORPORATED, JAPAN
+#  Copyright (C) 2013-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+#  Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
+#  Copyright (C) 2013-2014 by Sunny Giken Inc., JAPAN
+#  Copyright (C) 2013-2014 by TOSHIBA CORPORATION, JAPAN
+#  Copyright (C) 2013-2014 by Witz Corporation, JAPAN
+#
+#  上記著作権者は，以下の(1)~(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+# $Id: post_cfg_pass4.py 181 2015-06-12 10:02:03Z t_ishikawa $
+#
+
+import subprocess
+import os
+import sys
+import re  # for regular expression
+import shutil
+
+# set relative path from top proj
+proj_rel_dir = "../"
+
+# call definition file
+common.Source(proj_rel_dir + "def.py")
+
+# path
+src_abs_path = os.path.abspath(proj_rel_dir + SRCDIR)
+
+# call common file
+common.Source(src_abs_path + "/arch/ccrh/common.py")
+
+#
+# convert map file
+#
+inputfile = open("./DefaultBuild/cfg_pass4.map")
+outputfile = open("./DefaultBuild/cfg_pass4.syms", 'w')
+
+r = re.compile("^\s+([0-9a-f]+)\s+[0-9a-f]+\s+\w+\s+,\w+\s+\*\s+")
+line = inputfile.readline() 
+pre_line = line
+while line:
+    line = line.replace('\r\n','')   #delete newline
+    m = r.search(line)
+    if m:
+        outputfile.write(m.group(1) + " T " + pre_line + "\n")
+    pre_line = line
+    line = inputfile.readline()
+
+inputfile.close()
+outputfile.close()
+
+#
+# copy pass 1 generated files
+#
+print "Copy pass 1 generated file"
+shutil.copy("../cfg/cfg1_out.srec", ".")
+shutil.copy("../cfg/cfg1_out.syms", ".")
+shutil.copy("../cfg/cfg2_out.tf", ".")
+shutil.copy("../cfg/cfg2_out.tf", "./cfg3_out.tf")
+
+#
+# Execute cfg path 3
+#
+# make command
+cfg_command = cfg + " --pass 4 " + "--kernel " + CFG_KERNEL 
+cfg_command += " --api-table " + cfg_api_table
+cfg_command += " " + cfg_cfg1_def_tables + cfg_includes 
+cfg_command += " --rom-image ./DefaultBuild/cfg_pass4.srec --symbol-table ./DefaultBuild/cfg_pass4.syms"
+cfg_command += " -T " + cfg_mem_tf
+cfg_command += " --ini-file " + cfg_ini_file
+cfg_command += " " + cfg_input_str
+
+print cfg_command
+
+# Execute 
+try:
+   output = subprocess.check_output(cfg_command, stderr=subprocess.STDOUT,)
+except subprocess.CalledProcessError, e:
+    print "ERROR!! : ", e.output
+    sys.exit()
+
+output.replace('\r','')
+print output
+
Index: /atk2-sc3_fl850f1l/arch/ccrh/pre_cfg.py
===================================================================
--- /atk2-sc3_fl850f1l/arch/ccrh/pre_cfg.py	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ccrh/pre_cfg.py	(revision 117)
@@ -0,0 +1,89 @@
+#!python
+# -*- coding: euc-jp -*-
+#
+#  TOPPERS ATK2
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+#      Automotive Kernel Version 2
+#
+#  Copyright (C) 2013-2014 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#  Copyright (C) 2013-2014 by FUJI SOFT INCORPORATED, JAPAN
+#  Copyright (C) 2013-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+#  Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
+#  Copyright (C) 2013-2014 by Sunny Giken Inc., JAPAN
+#  Copyright (C) 2013-2014 by TOSHIBA CORPORATION, JAPAN
+#  Copyright (C) 2013-2014 by Witz Corporation, JAPAN
+#
+#  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+# $Id: pre_cfg.py 164 2015-06-03 01:22:29Z t_ishikawa $
+#
+
+import subprocess
+import os
+import sys
+
+# set relative path from top proj
+proj_rel_dir = "../"
+
+# call definition file
+common.Source(proj_rel_dir + "def.py")
+
+# path
+src_abs_path = os.path.abspath(proj_rel_dir + SRCDIR)
+
+# call common file
+common.Source(src_abs_path + "/arch/ccrh/common.py")
+
+#
+# make command
+#
+cfg_command = cfg + " --pass 1 " + "--kernel " + CFG_KERNEL 
+cfg_command += " --api-table " + cfg_api_table
+cfg_command += " " + cfg_cfg1_def_tables + cfg_includes 
+cfg_command += " --ini-file " + cfg_ini_file
+cfg_command += " " + cfg_input_str
+
+print cfg_command
+
+#
+# Execute cfg path 1
+#
+try:
+   output = subprocess.check_output(cfg_command, stderr=subprocess.STDOUT,)
+except subprocess.CalledProcessError, e:
+    print "ERROR!! : ", e.output
+
+print output
Index: /atk2-sc3_fl850f1l/arch/ccrh/sample/Rte_Type.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/ccrh/sample/Rte_Type.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ccrh/sample/Rte_Type.h	(revision 117)
@@ -0,0 +1,59 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2013-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2013-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2013-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2013-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2013-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2013-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: Rte_Type.h 115 2014-12-10 01:33:17Z t_ishikawa $
+ */
+
+/*
+ *  サンプル用ヘッダファイル(Rte_Type.hはRTEジェネレータが生成する)
+ */
+
+#ifndef RTE_TYPE_H
+#define RTE_TYPE_H
+
+#endif /* RTE_TYPE_H */
Index: /atk2-sc3_fl850f1l/arch/ccrh/sample/sample.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/ccrh/sample/sample.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ccrh/sample/sample.h	(revision 117)
@@ -0,0 +1,116 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2011-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: sample.h 115 2014-12-10 01:33:17Z t_ishikawa $
+ */
+
+/*
+ *		サンプルプログラムの共通ヘッダファイル
+ */
+
+#ifndef TOPPERS_SAMPLE_H
+#define TOPPERS_SAMPLE_H
+
+#include "Os.h"
+#include "t_syslog.h"
+#include "t_stdlib.h"
+#include "sysmod/serial.h"
+#include "sysmod/syslog.h"
+
+#include "sysmod/banner.h"
+#include "target_sysmod.h"
+#include "target_serial.h"
+
+/*
+ *  ターゲット依存の定義
+ */
+#include "target_test.h"
+
+/*
+ *  関数のプロトタイプ宣言
+ */
+#ifndef TOPPERS_MACRO_ONLY
+/*
+ *  APIエラーログマクロ
+ *
+ *  ErrorHookが有効の場合はErrorHookから
+ *  エラーログを出力し, ErrorHookが無効の場合は
+ *  以下のマクロよりエラーログ出力を行う
+ */
+#if defined(CFG_USE_ERRORHOOK)
+#define error_log(api)	(api)
+#else /* !defined( CFG_USE_ERRORHOOK ) */
+#define	error_log(api)										   \
+	{														   \
+		StatusType ercd;									   \
+		ercd = api;     /* 各API実行 */						   \
+		if (ercd != E_OK) {									   \
+			syslog(LOG_INFO, "Error:%d", atk2_strerror(ercd)); \
+		}													   \
+	}
+#endif /* defined( CFG_USE_ERRORHOOK ) */
+
+/*
+ *  パラメータ構造体の定義
+ *  信頼関数提供者がヘッダファイルで提供する
+ */
+struct parameter_struct {
+	sint32		*name1;
+	sint32		name2;
+	TaskType	task_no;
+	StatusType	ercd;
+	StatusType	return_value;   /* 返戻値は構造体に含む */
+};
+
+extern void TaskProk(uint8 task_no);
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_SAMPLE_H */
Index: /atk2-sc3_fl850f1l/arch/ccrh/sample/sample1.arxml
===================================================================
--- /atk2-sc3_fl850f1l/arch/ccrh/sample/sample1.arxml	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ccrh/sample/sample1.arxml	(revision 117)
@@ -0,0 +1,2438 @@
+<?xml version="1.0" encoding="EUC-JP"?>
+<!-- Generated by ABREX Ver. 1.1.0 -->
+<AUTOSAR xmlns="http://autosar.org/schema/r4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://autosar.org/schema/r4.0 AUTOSAR_4-0-3_STRICT.xsd">
+	<AR-PACKAGES>
+		<AR-PACKAGE>
+			<SHORT-NAME>ImplementationDataTypes</SHORT-NAME>
+			<ELEMENTS>
+				<IMPLEMENTATION-DATA-TYPE>
+					<SHORT-NAME>uint8</SHORT-NAME>
+					<CATEGORY>VALUE</CATEGORY>
+				</IMPLEMENTATION-DATA-TYPE>
+			</ELEMENTS>
+		</AR-PACKAGE>
+		<AR-PACKAGE>
+			<SHORT-NAME>Ecuc</SHORT-NAME>
+			<ELEMENTS>
+				<ECUC-MODULE-CONFIGURATION-VALUES>
+					<SHORT-NAME>Os</SHORT-NAME>
+					<DEFINITION-REF DEST="ECUC-MODULE-DEF">/AUTOSAR/EcucDefs/Os</DEFINITION-REF>
+					<ECUC-DEF-EDITION>4.2.0</ECUC-DEF-EDITION>
+					<IMPLEMENTATION-CONFIG-VARIANT>VARIANT-PRE-COMPILE</IMPLEMENTATION-CONFIG-VARIANT>
+					<CONTAINERS>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>OsInclude1</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsInclude</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsInclude/OsIncludeFileName</DEFINITION-REF>
+									<VALUE>sample1.h</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>OsInclude2</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsInclude</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsInclude/OsIncludeFileName</DEFINITION-REF>
+									<VALUE>sample2.h</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>OsOS</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsOS</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsStackMonitoring</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsUseGetServiceId</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsUseParameterAccess</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsScalabilityClass</DEFINITION-REF>
+									<VALUE>SC3</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsMemoryProtectionLevel</DEFINITION-REF>
+									<VALUE>Level2</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsViolationHandlingLevel</DEFINITION-REF>
+									<VALUE>Level2</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsStatus</DEFINITION-REF>
+									<VALUE>EXTENDED</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsHooks</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsHooks</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsHooks/OsErrorHook</DEFINITION-REF>
+											<VALUE>true</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsHooks/OsPostTaskHook</DEFINITION-REF>
+											<VALUE>true</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsHooks/OsPreTaskHook</DEFINITION-REF>
+											<VALUE>true</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsHooks/OsProtectionHook</DEFINITION-REF>
+											<VALUE>true</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsHooks/OsShutdownHook</DEFINITION-REF>
+											<VALUE>true</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsHooks/OsStartupHook</DEFINITION-REF>
+											<VALUE>true</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsHookStack</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsHookStack</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsHookStack/OsHookStackSize</DEFINITION-REF>
+											<VALUE>0x200U</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>TskLevelRes</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsResource</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsResource/OsResourceProperty</DEFINITION-REF>
+									<VALUE>STANDARD</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsResource/OsResourceAccessingApplication</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/NT_osap1</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>CntRes</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsResource</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsResource/OsResourceProperty</DEFINITION-REF>
+									<VALUE>STANDARD</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsResource/OsResourceAccessingApplication</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/NT_osap1</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>GroupRes</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsResource</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsResource/OsResourceProperty</DEFINITION-REF>
+									<VALUE>INTERNAL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsResource/OsResourceAccessingApplication</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/NT_osap1</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>SampleCnt</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsCounter</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterMaxAllowedValue</DEFINITION-REF>
+									<VALUE>99U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterMinCycle</DEFINITION-REF>
+									<VALUE>10</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterTicksPerBase</DEFINITION-REF>
+									<VALUE>10U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterType</DEFINITION-REF>
+									<VALUE>SOFTWARE</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>SampleCnt2</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsCounter</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterMaxAllowedValue</DEFINITION-REF>
+									<VALUE>99U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterMinCycle</DEFINITION-REF>
+									<VALUE>10</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterTicksPerBase</DEFINITION-REF>
+									<VALUE>10U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterType</DEFINITION-REF>
+									<VALUE>SOFTWARE</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>SampleCnt3</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsCounter</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterMaxAllowedValue</DEFINITION-REF>
+									<VALUE>99U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterMinCycle</DEFINITION-REF>
+									<VALUE>10</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterTicksPerBase</DEFINITION-REF>
+									<VALUE>10U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterType</DEFINITION-REF>
+									<VALUE>SOFTWARE</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>NonPriTask</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>8U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>1</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>NON</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>Task6</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>5U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>9</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackStartAddress</DEFINITION-REF>
+									<VALUE>stack_00</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>Task7</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>5U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>8</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackStartAddress</DEFINITION-REF>
+									<VALUE>stack_00</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAccessingApplication</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/NT_osap1</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>MainTask</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>1U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>14</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>NON</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskEventRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/MainEvt</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAccessingApplication</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/NT_osap1</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsTaskAutostart</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAutostart</DEFINITION-REF>
+									<REFERENCE-VALUES>
+										<ECUC-REFERENCE-VALUE>
+											<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAutostart/OsTaskAppModeRef</DEFINITION-REF>
+											<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/AppMode1</VALUE-REF>
+										</ECUC-REFERENCE-VALUE>
+										<ECUC-REFERENCE-VALUE>
+											<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAutostart/OsTaskAppModeRef</DEFINITION-REF>
+											<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/AppMode2</VALUE-REF>
+										</ECUC-REFERENCE-VALUE>
+										<ECUC-REFERENCE-VALUE>
+											<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAutostart/OsTaskAppModeRef</DEFINITION-REF>
+											<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/AppMode3</VALUE-REF>
+										</ECUC-REFERENCE-VALUE>
+									</REFERENCE-VALUES>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>HighPriorityTask</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>1U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>15</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>Task1</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>8U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>4</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskResourceRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/CntRes</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskResourceRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/TskLevelRes</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsTaskAutostart</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAutostart</DEFINITION-REF>
+									<REFERENCE-VALUES>
+										<ECUC-REFERENCE-VALUE>
+											<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAutostart/OsTaskAppModeRef</DEFINITION-REF>
+											<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/AppMode2</VALUE-REF>
+										</ECUC-REFERENCE-VALUE>
+									</REFERENCE-VALUES>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>Task2</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>1U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>7</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAccessingApplication</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/NT_osap2</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskResourceRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/CntRes</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskResourceRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/TskLevelRes</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskEventRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/T2Evt</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>MainCycArm</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm</DEFINITION-REF>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmCounterRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/MAIN_HW_COUNTER</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsAlarmAction</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction</DEFINITION-REF>
+									<SUB-CONTAINERS>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsAlarmSetEvent</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent/OsAlarmSetEventTaskRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/MainTask</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent/OsAlarmSetEventRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/MainEvt</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+									</SUB-CONTAINERS>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsAlarmAutostart</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAlarmTime</DEFINITION-REF>
+											<VALUE>TICK_FOR_10MS</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmCycleTime</DEFINITION-REF>
+											<VALUE>TICK_FOR_10MS</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-TEXTUAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAutostartType</DEFINITION-REF>
+											<VALUE>ABSOLUTE</VALUE>
+										</ECUC-TEXTUAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+									<REFERENCE-VALUES>
+										<ECUC-REFERENCE-VALUE>
+											<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAppModeRef</DEFINITION-REF>
+											<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/AppMode1</VALUE-REF>
+										</ECUC-REFERENCE-VALUE>
+										<ECUC-REFERENCE-VALUE>
+											<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAppModeRef</DEFINITION-REF>
+											<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/AppMode2</VALUE-REF>
+										</ECUC-REFERENCE-VALUE>
+										<ECUC-REFERENCE-VALUE>
+											<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAppModeRef</DEFINITION-REF>
+											<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/AppMode3</VALUE-REF>
+										</ECUC-REFERENCE-VALUE>
+									</REFERENCE-VALUES>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>ActTskArm</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm</DEFINITION-REF>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmCounterRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/MAIN_HW_COUNTER</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsAlarmAction</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction</DEFINITION-REF>
+									<SUB-CONTAINERS>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsAlarmActivateTask</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmActivateTask</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmActivateTask/OsAlarmActivateTaskRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task1</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+									</SUB-CONTAINERS>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>Task3</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>1U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>12</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskResourceRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/CntRes</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskEventRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/T3Evt</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsTaskAutostart</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAutostart</DEFINITION-REF>
+									<REFERENCE-VALUES>
+										<ECUC-REFERENCE-VALUE>
+											<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAutostart/OsTaskAppModeRef</DEFINITION-REF>
+											<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/AppMode3</VALUE-REF>
+										</ECUC-REFERENCE-VALUE>
+									</REFERENCE-VALUES>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>Task4</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>5U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>6</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAccessingApplication</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/NT_osap2</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskResourceRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/GroupRes</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskResourceRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/CntRes</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskResourceRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/TskLevelRes</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>scheduletable1</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableDuration</DEFINITION-REF>
+									<VALUE>60U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableRepeating</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableCounterRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/SchtblSampleCnt</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsScheduleTableExpiryPoint_0</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTblExpPointOffset</DEFINITION-REF>
+											<VALUE>10</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+									<SUB-CONTAINERS>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsScheduleTableTaskActivation_0</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableTaskActivation</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableTaskActivation/OsScheduleTableActivateTaskRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task10</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsScheduleTableTaskActivation_1</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableTaskActivation</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableTaskActivation/OsScheduleTableActivateTaskRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task11</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsScheduleTableTaskActivation_2</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableTaskActivation</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableTaskActivation/OsScheduleTableActivateTaskRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task12</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+									</SUB-CONTAINERS>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsScheduleTableExpiryPoint_1</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTblExpPointOffset</DEFINITION-REF>
+											<VALUE>20</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+									<SUB-CONTAINERS>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsScheduleTableEventSetting_0</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting/OsScheduleTableSetEventRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/T10Evt</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting/OsScheduleTableSetEventTaskRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task10</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsScheduleTableEventSetting_1</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting/OsScheduleTableSetEventRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/T11Evt</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting/OsScheduleTableSetEventTaskRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task11</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsScheduleTableEventSetting_2</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting/OsScheduleTableSetEventRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/T12Evt</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting/OsScheduleTableSetEventTaskRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task12</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+									</SUB-CONTAINERS>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsScheduleTableSync</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableSync</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-TEXTUAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableSync/OsScheduleTblSyncStrategy</DEFINITION-REF>
+											<VALUE>NONE</VALUE>
+										</ECUC-TEXTUAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>Task5</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>5U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>9</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskResourceRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/GroupRes</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskResourceRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/CntRes</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskResourceRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/TskLevelRes</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>scheduletable2</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableDuration</DEFINITION-REF>
+									<VALUE>50U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableRepeating</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableCounterRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/SchtblSampleCnt</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsScheduleTableExpiryPoint_0</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTblExpPointOffset</DEFINITION-REF>
+											<VALUE>20</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+									<SUB-CONTAINERS>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsScheduleTableTaskActivation_0</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableTaskActivation</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableTaskActivation/OsScheduleTableActivateTaskRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task12</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsScheduleTableTaskActivation_1</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableTaskActivation</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableTaskActivation/OsScheduleTableActivateTaskRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task11</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+									</SUB-CONTAINERS>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsScheduleTableExpiryPoint_1</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTblExpPointOffset</DEFINITION-REF>
+											<VALUE>30</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+									<SUB-CONTAINERS>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsScheduleTableEventSetting_0</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting/OsScheduleTableSetEventRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/T12Evt</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting/OsScheduleTableSetEventTaskRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task12</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+									</SUB-CONTAINERS>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsScheduleTableExpiryPoint_2</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTblExpPointOffset</DEFINITION-REF>
+											<VALUE>40</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+									<SUB-CONTAINERS>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsScheduleTableEventSetting_0</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting/OsScheduleTableSetEventRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/T11Evt</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting/OsScheduleTableSetEventTaskRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task11</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+									</SUB-CONTAINERS>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsScheduleTableSync</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableSync</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-TEXTUAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableSync/OsScheduleTblSyncStrategy</DEFINITION-REF>
+											<VALUE>NONE</VALUE>
+										</ECUC-TEXTUAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>SetEvtArm</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm</DEFINITION-REF>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmCounterRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/MAIN_HW_COUNTER</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsAlarmAction</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction</DEFINITION-REF>
+									<SUB-CONTAINERS>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsAlarmSetEvent</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent/OsAlarmSetEventTaskRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task3</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent/OsAlarmSetEventRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/T3Evt</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+									</SUB-CONTAINERS>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>SampleAlm1</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm</DEFINITION-REF>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmCounterRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/SampleCnt2</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsAlarmAction</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction</DEFINITION-REF>
+									<SUB-CONTAINERS>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsAlarmIncrementCounter</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmIncrementCounter</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmIncrementCounter/OsAlarmIncrementCounterRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/SampleCnt3</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+									</SUB-CONTAINERS>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsAlarmAutostart</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAlarmTime</DEFINITION-REF>
+											<VALUE>10U</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmCycleTime</DEFINITION-REF>
+											<VALUE>10U</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-TEXTUAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAutostartType</DEFINITION-REF>
+											<VALUE>ABSOLUTE</VALUE>
+										</ECUC-TEXTUAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+									<REFERENCE-VALUES>
+										<ECUC-REFERENCE-VALUE>
+											<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAppModeRef</DEFINITION-REF>
+											<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/AppMode1</VALUE-REF>
+										</ECUC-REFERENCE-VALUE>
+										<ECUC-REFERENCE-VALUE>
+											<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAppModeRef</DEFINITION-REF>
+											<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/AppMode2</VALUE-REF>
+										</ECUC-REFERENCE-VALUE>
+										<ECUC-REFERENCE-VALUE>
+											<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAppModeRef</DEFINITION-REF>
+											<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/AppMode3</VALUE-REF>
+										</ECUC-REFERENCE-VALUE>
+									</REFERENCE-VALUES>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>SchtblSampleCnt</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsCounter</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterMaxAllowedValue</DEFINITION-REF>
+									<VALUE>99U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterMinCycle</DEFINITION-REF>
+									<VALUE>10</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterTicksPerBase</DEFINITION-REF>
+									<VALUE>10U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterType</DEFINITION-REF>
+									<VALUE>SOFTWARE</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>SampleAlm2</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm</DEFINITION-REF>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmCounterRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/SampleCnt3</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsAlarmAction</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction</DEFINITION-REF>
+									<SUB-CONTAINERS>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsAlarmSetEvent</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent/OsAlarmSetEventTaskRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/MainTask</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent/OsAlarmSetEventRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/MainEvt</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+									</SUB-CONTAINERS>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsAlarmAutostart</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAlarmTime</DEFINITION-REF>
+											<VALUE>10U</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmCycleTime</DEFINITION-REF>
+											<VALUE>10U</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-TEXTUAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAutostartType</DEFINITION-REF>
+											<VALUE>ABSOLUTE</VALUE>
+										</ECUC-TEXTUAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+									<REFERENCE-VALUES>
+										<ECUC-REFERENCE-VALUE>
+											<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAppModeRef</DEFINITION-REF>
+											<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/AppMode1</VALUE-REF>
+										</ECUC-REFERENCE-VALUE>
+										<ECUC-REFERENCE-VALUE>
+											<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAppModeRef</DEFINITION-REF>
+											<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/AppMode2</VALUE-REF>
+										</ECUC-REFERENCE-VALUE>
+										<ECUC-REFERENCE-VALUE>
+											<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAppModeRef</DEFINITION-REF>
+											<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/AppMode3</VALUE-REF>
+										</ECUC-REFERENCE-VALUE>
+									</REFERENCE-VALUES>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>Task10</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>1U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>13</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>NON</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskEventRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/T10Evt</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>Task11</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>1U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>13</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>NON</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskEventRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/T11Evt</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>Task12</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>1U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>13</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>NON</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskEventRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/T12Evt</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>Task13</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>5U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>9</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackStartAddress</DEFINITION-REF>
+									<VALUE>stack_1</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackStartAddress</DEFINITION-REF>
+									<VALUE>stack_2</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>Task14</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>5U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>8</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackStartAddress</DEFINITION-REF>
+									<VALUE>stack_1</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackStartAddress</DEFINITION-REF>
+									<VALUE>stack_2</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>IocTask1</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>1U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>9</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAccessingApplication</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/NT_osap2</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>IocTask2</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>1U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>9</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAccessingApplication</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/NT_osap1</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>IocTask3</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>1U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>9</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>IocTask4</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>1U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>9</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>AppMode1</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAppMode</DEFINITION-REF>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>AppMode2</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAppMode</DEFINITION-REF>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>AppMode3</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAppMode</DEFINITION-REF>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>MainEvt</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsEvent</DEFINITION-REF>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>T2Evt</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsEvent</DEFINITION-REF>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>T3Evt</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsEvent</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsEvent/OsEventMask</DEFINITION-REF>
+									<VALUE>65536</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>T10Evt</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsEvent</DEFINITION-REF>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>T11Evt</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsEvent</DEFINITION-REF>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>T12Evt</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsEvent</DEFINITION-REF>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>KT_osap1</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsTrusted</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/MainTask</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/NonPriTask</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task6</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task7</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/IocTask3</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsApplicationHooks</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppErrorHook</DEFINITION-REF>
+											<VALUE>false</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppShutdownHook</DEFINITION-REF>
+											<VALUE>true</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppStartupHook</DEFINITION-REF>
+											<VALUE>true</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>tfnt1</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction/OsTrustedFunctionStackSize</DEFINITION-REF>
+											<VALUE>32</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-TEXTUAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-FUNCTION-NAME-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction/OsTrustedFunctionName</DEFINITION-REF>
+											<VALUE>TRUSTED_tfnt1</VALUE>
+										</ECUC-TEXTUAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>tfnt2</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction/OsTrustedFunctionStackSize</DEFINITION-REF>
+											<VALUE>32</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-TEXTUAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-FUNCTION-NAME-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction/OsTrustedFunctionName</DEFINITION-REF>
+											<VALUE>TRUSTED_tfnt2</VALUE>
+										</ECUC-TEXTUAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>tfnt3</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction/OsTrustedFunctionStackSize</DEFINITION-REF>
+											<VALUE>32</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-TEXTUAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-FUNCTION-NAME-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction/OsTrustedFunctionName</DEFINITION-REF>
+											<VALUE>TRUSTED_tfnt3</VALUE>
+										</ECUC-TEXTUAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>tfnt4</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction/OsTrustedFunctionStackSize</DEFINITION-REF>
+											<VALUE>32</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-TEXTUAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-FUNCTION-NAME-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction/OsTrustedFunctionName</DEFINITION-REF>
+											<VALUE>TRUSTED_tfnt4</VALUE>
+										</ECUC-TEXTUAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>actioctask3</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction/OsTrustedFunctionStackSize</DEFINITION-REF>
+											<VALUE>32</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-TEXTUAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-FUNCTION-NAME-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction/OsTrustedFunctionName</DEFINITION-REF>
+											<VALUE>TRUSTED_actioctask3</VALUE>
+										</ECUC-TEXTUAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>KT_osap2</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsTrusted</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/IocTask4</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppMemorySectionRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecu/Os/sdata_trusted</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsApplicationHooks</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppErrorHook</DEFINITION-REF>
+											<VALUE>false</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppShutdownHook</DEFINITION-REF>
+											<VALUE>false</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppStartupHook</DEFINITION-REF>
+											<VALUE>false</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>actioctask4</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction/OsTrustedFunctionStackSize</DEFINITION-REF>
+											<VALUE>32</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-TEXTUAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-FUNCTION-NAME-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction/OsTrustedFunctionName</DEFINITION-REF>
+											<VALUE>TRUSTED_actioctask4</VALUE>
+										</ECUC-TEXTUAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>NT_osap1</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsTrusted</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppCounterRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/SampleCnt</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppCounterRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/SchtblSampleCnt</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppCounterRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/SampleCnt2</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppCounterRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/SampleCnt3</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/HighPriorityTask</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task1</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task2</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task3</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task4</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task5</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task10</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task11</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task12</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task13</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task14</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/IocTask1</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppAlarmRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/MainCycArm</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppAlarmRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/ActTskArm</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppAlarmRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/SetEvtArm</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppAlarmRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/SampleAlm1</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppAlarmRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/SampleAlm2</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppScheduleTableRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/scheduletable1</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppScheduleTableRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/scheduletable2</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppMemorySectionRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecu/Os/sbss_nt</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsApplicationHooks</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppErrorHook</DEFINITION-REF>
+											<VALUE>false</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppShutdownHook</DEFINITION-REF>
+											<VALUE>false</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppStartupHook</DEFINITION-REF>
+											<VALUE>false</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>OsLinkSection</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsLinkSection</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsLinkSection/OsLinkSectionName</DEFINITION-REF>
+									<VALUE>.stack_section</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsLinkSection/OsLinkSectionMemoryRegionRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/RAM</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>text_shared</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionName</DEFINITION-REF>
+									<VALUE>.text</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionWritable</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionReadable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExecutable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionShort</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionCacheable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionDevice</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExport</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionMemoryRegionRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/FLASH</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>const_shared</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionName</DEFINITION-REF>
+									<VALUE>.const</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionWritable</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionReadable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExecutable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionShort</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionCacheable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionDevice</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExport</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionMemoryRegionRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/FLASH</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>data_shared</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionName</DEFINITION-REF>
+									<VALUE>.data</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionWritable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionReadable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExecutable</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionShort</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionInitialize</DEFINITION-REF>
+									<VALUE>DATA</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionCacheable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionDevice</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExport</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionMemoryRegionRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/RAM</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>sdata_trusted</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionName</DEFINITION-REF>
+									<VALUE>.sdata</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionWritable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionReadable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExecutable</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionShort</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionInitialize</DEFINITION-REF>
+									<VALUE>DATA</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionCacheable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionDevice</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExport</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionMemoryRegionRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/RAM</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>bss_shared</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionName</DEFINITION-REF>
+									<VALUE>.bss</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionWritable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionReadable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExecutable</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionShort</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionInitialize</DEFINITION-REF>
+									<VALUE>BSS</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionCacheable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionDevice</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExport</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionMemoryRegionRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/RAM</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>sbss_nt</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionName</DEFINITION-REF>
+									<VALUE>.sbss</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionWritable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionReadable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExecutable</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionShort</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionInitialize</DEFINITION-REF>
+									<VALUE>BSS</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionCacheable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionDevice</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExport</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionMemoryRegionRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/RAM</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>Task8</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>5U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>8</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x250U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>Task9</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>5U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>8</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x300U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>ActOtherOSAPTskArmCnt</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsCounter</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterMaxAllowedValue</DEFINITION-REF>
+									<VALUE>99U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterMinCycle</DEFINITION-REF>
+									<VALUE>10</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterTicksPerBase</DEFINITION-REF>
+									<VALUE>10U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterType</DEFINITION-REF>
+									<VALUE>SOFTWARE</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>ActOtherOSAPTskArm</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm</DEFINITION-REF>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmCounterRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/ActOtherOSAPTskArmCnt</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsAlarmAction</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction</DEFINITION-REF>
+									<SUB-CONTAINERS>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsAlarmActivateTask</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmActivateTask</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmActivateTask/OsAlarmActivateTaskRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task4</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+									</SUB-CONTAINERS>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsAlarmAutostart</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAlarmTime</DEFINITION-REF>
+											<VALUE>5U</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmCycleTime</DEFINITION-REF>
+											<VALUE>0U</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-TEXTUAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAutostartType</DEFINITION-REF>
+											<VALUE>ABSOLUTE</VALUE>
+										</ECUC-TEXTUAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+									<REFERENCE-VALUES>
+										<ECUC-REFERENCE-VALUE>
+											<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAppModeRef</DEFINITION-REF>
+											<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/AppMode1</VALUE-REF>
+										</ECUC-REFERENCE-VALUE>
+										<ECUC-REFERENCE-VALUE>
+											<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAppModeRef</DEFINITION-REF>
+											<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/AppMode2</VALUE-REF>
+										</ECUC-REFERENCE-VALUE>
+										<ECUC-REFERENCE-VALUE>
+											<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAppModeRef</DEFINITION-REF>
+											<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/AppMode3</VALUE-REF>
+										</ECUC-REFERENCE-VALUE>
+									</REFERENCE-VALUES>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>NT_osap2</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsTrusted</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task8</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task9</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/IocTask2</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppCounterRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/ActOtherOSAPTskArmCnt</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppAlarmRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/ActOtherOSAPTskArm</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsApplicationHooks</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppErrorHook</DEFINITION-REF>
+											<VALUE>true</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppShutdownHook</DEFINITION-REF>
+											<VALUE>true</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppStartupHook</DEFINITION-REF>
+											<VALUE>true</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>IOC</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsIoc</DEFINITION-REF>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>IOC_QUE</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocBufferLength</DEFINITION-REF>
+											<VALUE>3</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+									<SUB-CONTAINERS>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>IOC_QUE_DATA</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties</DEFINITION-REF>
+											<PARAMETER-VALUES>
+												<ECUC-TEXTUAL-PARAM-VALUE>
+													<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties/OsIocInitValue</DEFINITION-REF>
+													<VALUE>1</VALUE>
+												</ECUC-TEXTUAL-PARAM-VALUE>
+											</PARAMETER-VALUES>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-FOREIGN-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties/OsIocDataTypeRef</DEFINITION-REF>
+													<VALUE-REF DEST="IMPLEMENTATION-DATA-TYPE">/ImplementationDataTypes/uint8</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>IOC_QUE_RCV</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocReceiverProperties</DEFINITION-REF>
+											<PARAMETER-VALUES>
+												<ECUC-TEXTUAL-PARAM-VALUE>
+													<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocReceiverProperties/OsIocFunctionImplementationKind</DEFINITION-REF>
+													<VALUE>FUNCTION</VALUE>
+												</ECUC-TEXTUAL-PARAM-VALUE>
+											</PARAMETER-VALUES>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocReceiverProperties/OsIocReceivingOsApplicationRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/NT_osap2</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>IOC_QUE_SND0</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties</DEFINITION-REF>
+											<PARAMETER-VALUES>
+												<ECUC-NUMERICAL-PARAM-VALUE>
+													<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties/OsIocSenderId</DEFINITION-REF>
+													<VALUE>0</VALUE>
+												</ECUC-NUMERICAL-PARAM-VALUE>
+												<ECUC-TEXTUAL-PARAM-VALUE>
+													<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties/OsIocFunctionImplementationKind</DEFINITION-REF>
+													<VALUE>FUNCTION</VALUE>
+												</ECUC-TEXTUAL-PARAM-VALUE>
+											</PARAMETER-VALUES>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties/OsIocSendingOsApplicationRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/NT_osap1</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>IOC_QUE_SND1</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties</DEFINITION-REF>
+											<PARAMETER-VALUES>
+												<ECUC-NUMERICAL-PARAM-VALUE>
+													<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties/OsIocSenderId</DEFINITION-REF>
+													<VALUE>1</VALUE>
+												</ECUC-NUMERICAL-PARAM-VALUE>
+												<ECUC-TEXTUAL-PARAM-VALUE>
+													<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties/OsIocFunctionImplementationKind</DEFINITION-REF>
+													<VALUE>FUNCTION</VALUE>
+												</ECUC-TEXTUAL-PARAM-VALUE>
+											</PARAMETER-VALUES>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties/OsIocSendingOsApplicationRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/KT_osap1</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+									</SUB-CONTAINERS>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>IOC_DEQUE</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication</DEFINITION-REF>
+									<SUB-CONTAINERS>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>IOC_DEQUE_DATA0</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties</DEFINITION-REF>
+											<PARAMETER-VALUES>
+												<ECUC-NUMERICAL-PARAM-VALUE>
+													<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties/OsIocDataPropertyIndex</DEFINITION-REF>
+													<VALUE>0</VALUE>
+												</ECUC-NUMERICAL-PARAM-VALUE>
+												<ECUC-TEXTUAL-PARAM-VALUE>
+													<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties/OsIocInitValue</DEFINITION-REF>
+													<VALUE>0U</VALUE>
+												</ECUC-TEXTUAL-PARAM-VALUE>
+											</PARAMETER-VALUES>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-FOREIGN-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties/OsIocDataTypeRef</DEFINITION-REF>
+													<VALUE-REF DEST="IMPLEMENTATION-DATA-TYPE">/ImplementationDataTypes/uint8</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>IOC_DEQUE_DATA1</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties</DEFINITION-REF>
+											<PARAMETER-VALUES>
+												<ECUC-NUMERICAL-PARAM-VALUE>
+													<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties/OsIocDataPropertyIndex</DEFINITION-REF>
+													<VALUE>1</VALUE>
+												</ECUC-NUMERICAL-PARAM-VALUE>
+												<ECUC-TEXTUAL-PARAM-VALUE>
+													<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties/OsIocInitValue</DEFINITION-REF>
+													<VALUE>10U</VALUE>
+												</ECUC-TEXTUAL-PARAM-VALUE>
+											</PARAMETER-VALUES>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-FOREIGN-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties/OsIocDataTypeRef</DEFINITION-REF>
+													<VALUE-REF DEST="IMPLEMENTATION-DATA-TYPE">/ImplementationDataTypes/uint8</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>IOC_DEQUE_DATA2</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties</DEFINITION-REF>
+											<PARAMETER-VALUES>
+												<ECUC-NUMERICAL-PARAM-VALUE>
+													<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties/OsIocDataPropertyIndex</DEFINITION-REF>
+													<VALUE>2</VALUE>
+												</ECUC-NUMERICAL-PARAM-VALUE>
+												<ECUC-TEXTUAL-PARAM-VALUE>
+													<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties/OsIocInitValue</DEFINITION-REF>
+													<VALUE>20U</VALUE>
+												</ECUC-TEXTUAL-PARAM-VALUE>
+											</PARAMETER-VALUES>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-FOREIGN-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties/OsIocDataTypeRef</DEFINITION-REF>
+													<VALUE-REF DEST="IMPLEMENTATION-DATA-TYPE">/ImplementationDataTypes/uint8</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>IOC_DEQUE_RCV</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocReceiverProperties</DEFINITION-REF>
+											<PARAMETER-VALUES>
+												<ECUC-TEXTUAL-PARAM-VALUE>
+													<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocReceiverProperties/OsIocFunctionImplementationKind</DEFINITION-REF>
+													<VALUE>FUNCTION</VALUE>
+												</ECUC-TEXTUAL-PARAM-VALUE>
+											</PARAMETER-VALUES>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocReceiverProperties/OsIocReceivingOsApplicationRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/KT_osap2</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>IOC_DEQUE_SND</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties</DEFINITION-REF>
+											<PARAMETER-VALUES>
+												<ECUC-TEXTUAL-PARAM-VALUE>
+													<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties/OsIocFunctionImplementationKind</DEFINITION-REF>
+													<VALUE>FUNCTION</VALUE>
+												</ECUC-TEXTUAL-PARAM-VALUE>
+											</PARAMETER-VALUES>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties/OsIocSendingOsApplicationRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/KT_osap1</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+									</SUB-CONTAINERS>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+					</CONTAINERS>
+				</ECUC-MODULE-CONFIGURATION-VALUES>
+			</ELEMENTS>
+		</AR-PACKAGE>
+	</AR-PACKAGES>
+</AUTOSAR>
Index: /atk2-sc3_fl850f1l/arch/ccrh/sample/sample1.c
===================================================================
--- /atk2-sc3_fl850f1l/arch/ccrh/sample/sample1.c	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ccrh/sample/sample1.c	(revision 117)
@@ -0,0 +1,1413 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2004-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)~(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: sample1.c 181 2015-06-12 10:02:03Z t_ishikawa $
+ */
+
+/*
+ *		信頼OSアプリケーション所属サンプルプログラムの本体
+ *
+ *  ATK2-SC3の基本的な動作を確認するためのサンプルプログラム．
+ *
+ *  プログラムの概要：PCとボード間でシリアル通信を行い，ユーザ入力
+ *  コマンドに応じた動作とログ出力を行なう．
+ *
+ *  ＜コマンド一覧＞
+ *  ・タスク指定
+ *    '1' : 以降のコマンドを Task1 に対して行う
+ *    '2' : 以降のコマンドを Task2 に対して行う
+ *    '3' : 以降のコマンドを Task3 に対して行う
+ *    '4' : 以降のコマンドを Task4 に対して行う
+ *    '5' : 以降のコマンドを Task5 に対して行う
+ *    '6' : 以降のコマンドを Task6 に対して行う
+ *    '7' : 以降のコマンドを Task7 に対して行う
+ *    '8' : 以降のコマンドを Task8 に対して行う(一部タスク管理コマンド使用できない)
+ *    '9' : 以降のコマンドを Task9 に対して行う(一部タスク管理コマンド使用できない)
+ *  ・タスク管理機能
+ *    'a' : ActivateTask にてタスクを起動する．
+ *    'A' : TerminateTask にてタスクを終了する．
+ *    '!'(Shift+1) : ChainTask にてタスクを終了し，Task1 を起動する
+ *    '"'(Shift+2) : ChainTask にてタスクを終了し，Task2 を起動する
+ *    '#'(Shift+3) : ChainTask にてタスクを終了し，Task3 を起動する
+ *    '$'(Shift+4) : ChainTask にてタスクを終了し，Task4 を起動する
+ *    '%'(Shift+5) : ChainTask にてタスクを終了し，Task5 を起動する
+ *    's' : ノンプリエンプティブ属性であるタスク MainTask にて最高
+ *          優先度タスク HighPriorityTask を起動し，Schedule にて
+ *          再スケジューリングを行う．
+ *    'S' : ノンプリエンプティブタスク NonPriTask を起動する
+ *          ノンプリエンプティブタスク NonPriTask にて最高優先度
+ *          タスク HighPriorityTask を起動し，タスク終了する
+ *    'y' : タスク11(スタック共有)を呼び出し，信頼関数で処理を行う
+ *    'Y' : タスク12(スタック共有)を呼び出し，信頼関数で処理を行う
+ *          タスク不正終了により，エラーコードはE_OS_MISSINGENDで
+ *          エラーフックが呼ばれる
+ *    'z' : 実行中のタスクから GetTaskID を実行して，実行状態の TaskID を取得する
+ *    'Z' : メインタスクから GetTaskState を実行して，対象タスクの状態を取得する
+ *    'x' : div命令を実行して，未定義命令例外を発生させる
+ *  ・割込み管理機能
+ *    'd' : DisableAllInterrupts を実行後，割込みタイマー値を3回表
+ *          示し， EnableAllInterrupts を実行する
+ *    'D' : SuspendAllInterrupts を実行後，割込みタイマー値を3回表
+ *          示し，さらに SuspendAllInterrupts を実行後，割込みタイ
+ *          マー値を3回表示し，ResumeAllInterrupts を実行後，割込み
+ *          タイマー値を3回表示し，ResumeAllInterrupts を実行する
+ *    'f' : SuspendOSInterrupts を実行後，割込みタイマー値を3回表
+ *          示し，さらに SuspendOSInterrupts を実行後，割込みタイ
+ *          マー値を3回表示し，さらに SuspendAllInterruptsを実行
+ *          後，割込みタイマー値を3回表示し， ResumeAllInterrupts
+ *          を実行後，割込みタイマー値を3回表示し，
+ *          ResumeOSInterrupts を実行後割込みタイマー値を3回表示し，
+ *          ResumeOSInterrupts を実行する
+ *    'T' : 割込みタイマー値を3回表示する
+ *  ・リソース管理機能
+ *    'k' : GetResource にてリソース TskLevelRes を取得する．なお，
+ *          Task3 は，このリソースより優先度が高いためエラーとなる
+ *    'K' : ReleaseResource にてリソース TskLevelRes を解放する
+ *    'i' : GetResource にてリソース CntRes を取得後，割込み
+ *          タイマー値を3回表示し，ReleaseResource にてリソース
+ *          CntRes を解放する
+ *  ・イベント制御機能
+ *    'e' : SetEvent にてイベントを設定する．Task2 と Task3 以外は
+ *          割り当てがないためエラーとなる
+ *    'w' : ClearEvent にて自タスクのイベントをクリアする．Task2 と
+ *          Task3 以外は割り当てがないためエラーとなる
+ *    'E' : GetEvent にてイベント状態を取得する．Task2 と Task3
+ *          以外は割り当てがないためエラーとなる
+ *    'W' : WaitEvent にて自タスクのイベントを待つ．Task3 と Task4
+ *          以外はエラーとなる
+ *  ・アラーム機能
+ *    'b' : GetAlarmBase にてアラーム MainCycArm のアラームベース
+ *          情報を取得する
+ *    'B' : GetAlarm にてアラーム MainCycArm の残りカウント値を2回
+ *          連続で取得する
+ *    'v' : SetRelAlarm にてアラーム ActTskArm を起動し，500ms 後に
+ *          タスク Task1 を起動する
+ *    'V' : SetRelAlarm にてアラーム SetEvtArm を起動し，500ms 後に
+ *          イベント T3Evt を設定する
+ *    'h' : CancelAlarm にてアラーム ActTskArm をキャンセルする
+ *  ・カウンタ操作機能
+ *    'c' : タスクにて IncrementCounter を実行し，カウンタ SampleCnt
+ *          にシグナル通知する
+ *          1 シグナルでアラーム SampleArm が満了し，コールバックを
+ *          実行する
+ *    'C' : タスクにて IncrementCounter を実行し，カウンタ SampleCnt2
+ *          にシグナル通知する
+ *          1 シグナルでアラーム SampleArm1 が満了し，SampleCnt3 を
+ *          インクリメントする． SampleCnt3 は 1 シグナルで SampleAlm2
+ *          が満了しコールバックを実行する
+ *    'j' : タスクにて GetCounterValue を実行する
+ *          取得した値は保存する
+ *    'J' : タスクにて GetEalsedCounterValue を実行する
+ *          元の値は前回のGetCounterValue または GetEalsedCounterValue にて取得
+ *          した値とする．初回，または，GetCounterValueを実行していない場合は0
+ *          とする
+ *
+ *    'r' : タスクにて GetISRIDを実行する
+ *          タスクコンテキストからはGetISRIDを呼出した場合はエラーとして
+ *          INVALID_ISRが返却される
+ *
+ *          割込みコンテキストからのGetISRID発行は，SystemTimerCntのコールバック
+ *          ルーチン（'n' コマンドで実行）にて行う
+ *
+ *          タスクコンテキストからのGetISRID発行は，SampleCnt2のコールバック
+ *          ルーチン（'C' または 'c' コマンドで実行）にて行う
+ *
+ *  ・スケジュールテーブル制御機能
+ *    't' : スケジュールテーブル動作制御ON/OFF
+ *
+ *        'i' : SchtblSampleCntカウンタをインクリメントする
+ *              SchtblSampleCntカウンタはスケジュールテーブルの駆動カウンタ
+ *        '1' : 以降のコマンドを scheduletable1 に対して行う(デフォルト値)
+ *        '2' : 以降のコマンドを scheduletable2 に対して行う
+ *        '3' : 以降のコマンドを scheduletable3(存在しないID) に対して行う
+ *              コマンドのエラー確認にも使用する
+ *        's' : StartScheduleTableRelを実行し，相対値(5)でスケジュールテーブルを開始する
+ *        'S' : StartScheduleTableAbsを実行し，絶対値(5)でスケジュールテーブルを開始する
+ *        'f' : StopScheduleTableを実行し，スケジュールテーブルを停止する
+ *        'n' : NextScheduleTableを実行し，scheduletable2に切替える
+ *        'N' : NextScheduleTableを実行し，scheduletable1に切替える
+ *        'g' : GetScheduleTableStatusを実行し，スケジュールテーブル状態を取得する
+ *        'q' : ShutdownOS( E_OK ) OS実行制御機能の'q'と同等機能
+ *        'Q' : ShutdownOS( E_OS_STATE ) OS実行制御機能の'Q'と同等機能
+ *
+ *  ・OS実行制御機能
+ *    'p' : GetActiveApplicationMode にてアプリケーションモードを
+ *          取得する
+ *    'q' : ShutdownOS をコード E_OK で実行し，サンプルプログラムを
+ *          終了する
+ *    'Q' : ShutdownOS をコード E_OS_STATE で実行し，サンプルプログラム
+ *          を終了する
+ *
+ *  ・IOC送受信機能
+ *    'I' : IOC送受信モード
+ *
+ *        IOC APIを使用するタスク(IocTaskX)を選択
+ *        '1' : IocTask1(NT_osap1に所属)
+ *        '2' : IocTask2(NT_osap2に所属)
+ *        '3' : IocTask3(KT_osap1に所属)
+ *        '4' : IocTask4(KT_osap2に所属)
+ *
+ *        IOC APIを選択
+ *        '1' : IocSend_IOC_QUE_0(uint8 in1)
+ *        '2' : IocSend_IOC_QUE_1(uint8 in1)
+ *        '3' : IocWriteGroup_IOC_DEQUE(uint8 in1, uint8 in2, uint8 in3)
+ *        '4' : IocReceive_IOC_QUE(uint8 *out1)
+ *        '5' : IocReadGroup_IOC_DEQUE(uint8 *out1, uint8 *out2, uint8 *out3)
+ *        '6' : IocEmptyQueue_IOC_QUE(void)
+ *
+ *        送信API選択時，送信データを入力する
+ *
+ *  ＜オブジェクト一覧＞
+ *  ・OS
+ *    スタートアップフック：使用
+ *    シャットダウンフック：使用
+ *    エラーフック：使用
+ *    プレタスクフック：未使用
+ *    ポストタスクフック：未使用
+ *  ・タスク
+ *    メインタスク
+ *      タスクID：MainTask
+ *      優先度：14
+ *      多重起動数：1
+ *      スケジュール：ノンプリエンプティブ
+ *      自動起動：AppMode1, AppMode2, AppMode3
+ *      概要：ユーザインタフェース（シリアルIOよりコマンドを受信し，
+ *            それに対応した動作を行なう）
+ *            周期アラーム MainCycArm により，10msごとに待ち解除し
+ *            コマンドの受信有無をポーリングする
+ *            イベント（ID：MainEvt）を関連付けている
+ *    最高優先度タスク
+ *      タスクID：HighPriorityTask
+ *      優先度：15
+ *      多重起動数：1
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      概要：起動ログを出力して終了する．ノンプリエンプティブタスク
+ *            から起動され，プリエンプトしているかどうかの確認用
+ *    ノンプリエンプティブタスク
+ *      タスクID：NonPriTask
+ *      優先度：1
+ *      多重起動数：8
+ *      スケジュール：ノンプリエンプティブ
+ *      自動起動：なし
+ *      信頼OSアプリケーションに所属
+ *      概要：起動ログを出力し，最高優先度タスク HighPriorityTask を
+ *            起動後，終了ログを出力してタスクを終了する
+ *    タスク1
+ *      タスクID：Task1
+ *      優先度：4
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：AppMode2
+ *      多重起動数：8
+ *      概要：並列処理タスク（メインタスクからの指令により動作）
+ *            起動されすると無限ループに入り，コマンド処理を実行する
+ *            リソース TskLevelRes を関連付けている
+ *            リソース CntRes を関連付けている
+ *    タスク2
+ *      タスクID：Task2
+ *      優先度：7
+ *      多重起動数：1
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      概要：並列処理タスク（メインタスクからの指令により動作）
+ *            起動されすると無限ループに入り，コマンド処理を実行する
+ *            リソース TskLevelRes を関連付けている
+ *            リソース CntRes を関連付けている
+ *            イベント T2Evt を関連付けている
+ *    タスク3
+ *      タスクID：Task3
+ *      優先度：12
+ *      多重起動数：1
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：AppMode3
+ *      概要：並列処理タスク（メインタスクからの指令により動作）
+ *            起動されすると無限ループに入り，コマンド処理を実行する
+ *            イベント待ちすることが可能である
+ *            リソース CntRes を関連付けている
+ *            イベント T3Evt を関連付けている
+ *    タスク4
+ *      タスクID：Task4
+ *      優先度：6
+ *      多重起動数：5
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      概要：並列処理タスク（メインタスクからの指令により動作）
+ *            起動されすると無限ループに入り，コマンド処理を実行する
+ *            リソース TskLevelRes を関連付けている
+ *            リソース CntRes を関連付けている
+ *            内部リソース GroupRes を関連付けている
+ *    タスク5
+ *      タスクID：Task5
+ *      優先度：9
+ *      多重起動数：5
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      概要：並列処理タスク（メインタスクからの指令により動作）
+ *            起動されすると無限ループに入り，コマンド処理を実行する
+ *            リソース TskLevelRes を関連付けている
+ *            リソース CntRes を関連付けている
+ *            内部リソース GroupRes を関連付けている
+ *    タスク6
+ *      タスクID：Task6
+ *      優先度：9
+ *      多重起動数：-
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      信頼OSアプリケーションに所属
+ *      概要：並列処理タスク（メインタスクからの指令により動作）
+ *            SC3ではシステムタスクとして起動
+ *            起動されすると即時関数を終了する
+ *            この場合でも正しくTerminateTaskが実行されるかを確認
+ *            何度起動してもOKとなる
+ *            Task7とスタックを共有
+ *    タスク7
+ *      タスクID：Task7
+ *      優先度：8
+ *      多重起動数：-
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      信頼OSアプリケーションに所属
+ *      概要：並列処理タスク（メインタスクからの指令により動作）
+ *            SC3ではユーザタスクとして起動
+ *            起動されすると即時関数を終了する
+ *            この場合でも正しくTerminateTaskが実行されるかを確認
+ *            何度起動してもOKとなる
+ *            Task6とスタックを共有
+ *    タスク8
+ *      タスクID：Task8
+ *      優先度：8
+ *      多重起動数：1
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      概要：起動メッセージ出力し　，アクセス権限のないTask1に対して
+ *            GetTaskState()を発行して，エラーフックが上がる
+ *    タスク9
+ *      タスクID：Task9
+ *      優先度：8
+ *      多重起動数：1
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      概要：起動メッセージ出力し，アクセス権限のあるTask2に対して
+ *            GetTaskState()を発行して，Task2のステータスを出力する
+ *    タスク10
+ *      タスクID：Task10
+ *      優先度：14
+ *      多重起動数：1
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      概要：起動メッセージ出力し，イベント(T10Evt)を待ち
+ *    タスク11
+ *      タスクID：Task11
+ *      優先度：14
+ *      多重起動数：1
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      概要：起動メッセージ出力し，イベント(T11Evt)を待ち
+ *    タスク12
+ *      タスクID：Task12
+ *      優先度：14
+ *      多重起動数：1
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      概要：起動メッセージ出力し，イベント(T12Evt)を待ち
+ *    タスク13
+ *      タスクID：Task13
+ *      優先度：9
+ *      多重起動数：1
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      概要：信頼関数動作確認用(メインタスクからの指令により動作)
+ *            非信頼OSアプリケーションに所属
+ *            起動されする信頼関数実行後TerminateTaskで終了する
+ *            Task12とスタックを共有
+ *    タスク14
+ *      タスクID：Task14
+ *      優先度：8
+ *      多重起動数：1
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      概要：信頼関数動作確認用(メインタスクからの指令により動作)
+ *            非信頼OSアプリケーションに所属
+ *            起動されする信頼関数実行後関数を終了する
+ *            この場合でも正しくTerminateTaskが実行されるかを確認
+ *            Task11とスタックを共有
+ *    IocTask1
+ *      タスクID：IocTask1
+ *      優先度：9
+ *      多重起動数：1
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      概要：IOC通信処理(IOC APIの選択，送信データ設定，実行)を行う
+ *            非信頼OSアプリケーションに所属
+ *    IocTask2
+ *      タスクID：IocTask2
+ *      優先度：9
+ *      多重起動数：1
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      概要：IOC通信処理(IOC APIの選択，送信データ設定，実行)を行う
+ *            非信頼OSアプリケーションに所属
+ *    IocTask3
+ *      タスクID：IocTask3
+ *      優先度：9
+ *      多重起動数：1
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      概要：IOC通信処理(IOC APIの選択，送信データ設定，実行)を行う
+ *            信頼OSアプリケーションに所属
+ *    IocTask4
+ *      タスクID：IocTask4
+ *      優先度：9
+ *      多重起動数：1
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      概要：IOC通信処理(IOC APIの選択，送信データ設定，実行)を行う
+ *            非信頼OSアプリケーションに所属
+ *
+ *  ・割込みサービスルーチン
+ *    シリアルIO受信割込み
+ *      ISRID：RxHwSerialInt
+ *      優先度：2
+ *      カテゴリ：2
+ *      概要：コマンドを受信する
+ *  ・リソース
+ *    タスクレベルリソース
+ *      リソースID：TskLevelRes
+ *      プロパティ：標準
+ *    タスク用カウンタリソース
+ *      リソースID：CntRes
+ *      プロパティ：標準
+ *    タスクグループリソース
+ *      リソースID：GroupRes
+ *      プロパティ：内部
+ *  ・イベント
+ *    メインタスクイベント
+ *      イベントID：MainEvt
+ *    タスク2イベント
+ *      イベントID：T2Evt
+ *    タスク3イベント
+ *      イベントID：T3Evt
+ *  ・カウンタ
+ *    システムタイマカウンタ
+ *      カウンタID：MAIN_HW_COUNTER
+ *      カウント値：0~999
+ *      加算値：1
+ *    サンプルカウンタ
+ *      カウンタID：SampleCnt
+ *      カウント値：0~99
+ *      加算値：10
+ *  ・アラーム
+ *    メイン周期アラーム
+ *      アラームID：MainCycArm
+ *      ベースカウンタID：MAIN_HW_COUNTER
+ *      アクション：イベント設定 MainEvt
+ *      自動起動：AppMode1, AppMode2, AppMode3
+ *      設定：カウンタ100，周期100
+ *    タスク起動アラーム
+ *      アラームID：ActTskArm
+ *      ベースカウンタID：MAIN_HW_COUNTER
+ *      アクション：タスク起動 Task1
+ *      自動起動：なし
+ *    イベント設定アラーム
+ *      アラームID：SetEvtArm
+ *      ベースカウンタID：MAIN_HW_COUNTER
+ *      アクション：イベント設定 T3Evt
+ *      自動起動：なし
+ *    IncrementCounter確認用アラーム
+ *      アラームID：SampleArm
+ *      ベースカウンタID：SampleCnt
+ *      アクション：コールバック関数実行
+ *      自動起動：なし
+ *    他OSAP所属タスク起動アラーム
+ *      アラームID：ActOtherOSAPTskArm
+ *      ベースカウンタID：SchtblSampleCnt
+ *      アクション：タスク起動 Task4
+ *      自動起動：AppMode1, AppMode2, AppMode3
+ *      設定：カウンタ5，周期0(単発)
+ *  ・アプリケーションモード
+ *    自動起動なしモード(MainTaskのみ自動起動)
+ *      アプリケーションモードID：AppMode1
+ *    Task1自動起動モード
+ *      アプリケーションモードID：AppMode2
+ *    Task3自動起動モード
+ *      アプリケーションモードID：AppMode3
+ *  ・信頼関数
+ *    信頼関数tfnt1
+ *      非信頼OSアプリケーションから渡された
+ *      ポインタ引数の読書き操作して，計算結果を
+ *      非信頼OSアプリケーションに返す
+ *    信頼関数tfnt2
+ *      非信頼OSアプリケーションから渡された
+ *      ポインタ引数の読書き操作して，計算結果を
+ *      非信頼OSアプリケーションに返す
+ *    信頼関数tfnt3
+ *      非信頼OSアプリケーションからのShutdownOSを
+ *      受け付ける
+ *    信頼関数tfnt4
+ *      非信頼OSアプリケーションから信頼OSアプリ
+ *      ケーションに所属するタスクを起動する
+ *
+ *  本ファイルは信頼OSアプリケーションに
+ *  所属しているオブジェクト,sample2.cでは
+ *  非信頼OSアプリケーションに所属している
+ *  オブジェクトを記述している
+ */
+
+#define TOPPERS_SVC_FUNCCALL
+
+#include "sample.h"
+#include "sample1.h"
+#include "Ioc.h"
+
+#define GetAppModeInfo()	(0)
+
+/*
+ *  プロテクション発生時の処理レベル
+ */
+#ifdef CFG_USE_PROTECTIONHOOK
+static const char8	*faulty_context_tbl[6] = {
+	"FC_INVALID",
+	"FC_TASK",
+	"FC_C2ISR",
+	"FC_SYSTEM_HOOK",
+	"FC_OSAP_HOOK",
+	"FC_TRUSTED_FUNC"
+};
+#endif /* CFG_USE_PROTECTIONHOOK */
+
+/*
+ *  ファイル名，行番号の参照用の変数
+ */
+extern const char8	*fatal_file_name;   /* ファイル名 */
+extern sint32		fatal_line_num;     /* 行番号 */
+
+/*
+ *  内部関数プロトタイプ宣言
+ */
+sint32 main(void);
+
+#pragma section kernel
+StackType stack_00[COUNT_STK_T(0x200)];
+#pragma section default
+
+#pragma section gp_disp16
+uint8 sbss_test;
+uint8 sdata_test = 100;
+#pragma section default
+
+extern uint8 GetCommand(void);
+extern void PutActTsk(uint8 task_no);
+extern void PutActNonPriTsk(void);
+extern void PutTermTsk(uint8 task_no);
+extern void PutChainTsk(uint8 from_task_no, uint8 to_task_no);
+extern void PutSchedule(void);
+extern void PutTaskID(void);
+extern void PutTaskState(uint8 task_no);
+extern void PutDisAllInt(void);
+extern void PutSusAllInt(void);
+extern void PutSusOSInt(void);
+extern void PutHwCnt3(void);
+extern void PutGetCntRes(void);
+extern void PutGetTskRes(void);
+extern void PutRelTskRes(void);
+extern void PutSetEvt(uint8 task_no);
+extern void PutClrEvt(uint8 task_no);
+extern void PutGetEvt(uint8 task_no);
+extern void PutWaitEvt(uint8 task_no);
+extern void PutArmBase(void);
+extern void PutArmTick(void);
+extern void PutSetRel(uint8 alarm_no, uint8 tick_no, uint8 cycle_no);
+extern void PutCanArm(void);
+extern void PutAppMode(void);
+extern void PutActIocTsk(void);
+extern void schedule_table_sample_routine(void);
+
+TASK(IocTask3);
+TASK(IocTask4);
+static void IocProk2(void);
+static uint8 GetCommandNoWait1(void);
+
+/*
+ *  内部データバッファ
+ */
+extern volatile uint8 command_tbl[14];                   /* コマンド引渡しテーブル */
+
+/*
+ *  APIエラーログマクロ
+ *
+ *  ErrorHookが有効の場合はErrorHookから
+ *  エラーログを出力し, ErrorHookが無効の場合は
+ *  以下のマクロよりエラーログ出力を行う
+ */
+#if defined(CFG_USE_ERRORHOOK)
+#define error_log(api)	(api)
+#define error_log_ioc(api)	(api)
+#else /* !defined( CFG_USE_ERRORHOOK ) */
+#define	error_log(api)										   \
+	{														   \
+		StatusType ercd;									   \
+		ercd = api;     /* 各API実行 */						   \
+		if (ercd != E_OK) {									   \
+			syslog(LOG_INFO, "Error:%d", atk2_strerror(ercd)); \
+		}													   \
+	}
+
+#define	error_log_ioc(api)										   \
+	{															   \
+		StatusType ercd;										   \
+		ercd = api;     /* 各API実行 */							   \
+		if (ercd != E_OK) {										   \
+			syslog(LOG_INFO, "Error:%d", atk2_ioc_strerror(ercd)); \
+		}														   \
+	}
+#endif /* defined( CFG_USE_ERRORHOOK ) */
+
+/*
+ *  信頼関数tfnt1
+ *    非信頼OSアプリケーションから渡された
+ *    ポインタ引数の読書き操作して，計算結果を
+ *    非信頼OSアプリケーションに返す
+ */
+TRUSTEDFUNCTION(TRUSTED_tfnt1, FunctionIndex, FunctionParams)
+{
+	struct parameter_struct *local = FunctionParams;
+
+	sint32					*p1;
+	sint32					p2;
+
+	p1 = local->name1;
+	p2 = local->name2;
+
+	local->return_value = (StatusType) ((*p1 * 2) + p2);
+	return(E_OK);
+}
+
+/*
+ *  信頼関数tfnt2
+ *    非信頼OSアプリケーションから渡された
+ *    ポインタ引数の読書き操作して，計算結果を
+ *    非信頼OSアプリケーションに返す
+ */
+TRUSTEDFUNCTION(TRUSTED_tfnt2, FunctionIndex, FunctionParams)
+{
+	struct parameter_struct *local = FunctionParams;
+
+	sint32					*p1;
+	sint32					p2;
+
+	p1 = local->name1;
+	p2 = local->name2;
+
+	local->return_value = (StatusType) ((*p1 * 4) + p2);
+	return(E_OK);
+}
+
+/*
+ *  信頼関数tfnt3
+ *    非信頼OSアプリケーションからのShutdownOSを
+ *    受け付ける
+ */
+TRUSTEDFUNCTION(TRUSTED_tfnt3, FunctionIndex, FunctionParams)
+{
+	struct parameter_struct *local = FunctionParams;
+
+	StatusType				ercd;
+
+	ercd = local->ercd;
+	ShutdownOS(ercd);
+
+	return(E_OK);
+}
+
+/*
+ *  信頼関数tfnt4
+ *    非信頼OSアプリケーションから信頼OSアプリ
+ *    ケーションに所属するタスクを起動する
+ */
+TRUSTEDFUNCTION(TRUSTED_tfnt4, FunctionIndex, FunctionParams)
+{
+	struct parameter_struct *local = FunctionParams;
+
+	TaskType				task_no;
+
+	task_no = local->task_no;
+
+	error_log(ActivateTask(task_no));
+
+	return(E_OK);
+}
+
+/*
+ *  メインタスク
+ *
+ *  ユーザコマンドの受信と，コマンドごとの処理実行
+ */
+TASK(MainTask)
+{
+	uint8					command;
+	uint8					task_no;
+	uint32					i;
+	struct parameter_struct	local;
+
+	TickType				val = 0U;
+	TickType				eval = 0U;
+
+	/*
+	 *  タスク番号・コマンドバッファ初期化
+	 */
+	task_no = (uint8) (0);
+	for (i = 0U; i < (sizeof(command_tbl) / sizeof(command_tbl[0])); i++) {
+		command_tbl[i] = 0U;
+	}
+
+	/*
+	 *  コマンド実行ループ
+	 */
+	while (1) {
+		WaitEvent(MainEvt);     /* 10msの作業時間待ち */
+		ClearEvent(MainEvt);
+
+		/*
+		 *  入力コマンド取得
+		 */
+		syslog(LOG_INFO, "Input Command:");
+		command = GetCommand();
+
+		/*
+		 *  入力コマンドチェック
+		 */
+		if ((command <= (uint8) (0x1fU)) || (command >= (uint8) (0x80U))) {
+			syslog(LOG_INFO, "Not ASCII character");
+		}
+		else {
+#ifndef OMIT_ECHO
+			syslog(LOG_INFO, "%c", command);
+#endif /* OMIT_ECHO */
+
+			/*
+			 *  コマンド判別
+			 */
+			switch (command) {
+			case '1':
+			case '2':
+			case '3':
+			case '4':
+			case '5':
+			case '6':
+			case '7':
+			case '8':
+			case '9':
+				/*
+				 *  処理対象タスクの変更
+				 */
+				task_no = (uint8) (command - '1');
+				break;
+			case 'A':
+			case '!':
+			case '"':
+			case '#':
+			case '$':
+			case '%':
+			case 'z':
+			case 'k':
+			case 'K':
+			case 'l':
+			case 'i':
+			case 'w':
+			case 'W':
+				/*
+				 *  タスクへのコマンド通知
+				 */
+				command_tbl[task_no] = command;
+				break;
+			/*
+			 *  以降はメインタスクでコマンド処理
+			 */
+			case 'a':
+				PutActTsk(task_no);
+				break;
+			case 's':
+				PutSchedule();
+				break;
+			case 'S':
+				PutActNonPriTsk();
+				break;
+			case 'Z':
+				PutTaskState(task_no);
+				break;
+			case 'x':
+				syslog(LOG_INFO, "call RAISE_CPU_EXCEPTION");
+				RAISE_CPU_EXCEPTION;
+				break;
+			case 'd':
+				PutDisAllInt();
+				break;
+			case 'D':
+				PutSusAllInt();
+				break;
+			case 'f':
+				PutSusOSInt();
+				break;
+			case 'T':
+				PutHwCnt3();
+				break;
+			case 'e':
+				PutSetEvt(task_no);
+				break;
+			case 'E':
+				PutGetEvt(task_no);
+				break;
+			case 'b':
+				PutArmBase();
+				break;
+			case 'B':
+				PutArmTick();
+				PutArmTick();
+				break;
+			case 'v':
+				/* SetRelAlarm(ActTskArm, 500, 0)を実行 */
+				PutSetRel(0U, 0U, 0U);
+				break;
+			case 'V':
+				/* SetRelAlarm(SetEvtArm, 500, 0)を実行 */
+				PutSetRel(1U, 0U, 0U);
+				break;
+			case 'h':
+				/* CancelAlarm(CallBackArm)を実行 */
+				PutCanArm();
+				break;
+			case 'c':
+				syslog(LOG_INFO, "Call IncrementCounter(SampleCnt)");
+				IncrementCounter(SampleCnt);
+				break;
+			case 'C':
+				syslog(LOG_INFO, "Call IncrementCounter(SampleCnt2)");
+				IncrementCounter(SampleCnt2);
+				break;
+			case 'j':
+				syslog(LOG_INFO, "GetCounterValue(MAIN_HW_COUNTER, val)");
+				GetCounterValue(MAIN_HW_COUNTER, &val);
+				syslog(LOG_INFO, " val = %d", val);
+				break;
+			case 'J':
+				syslog(LOG_INFO, "Pre val = %d", val);
+				syslog(LOG_INFO, "GetElapsedValue(MAIN_HW_COUNTER, val ,eval)");
+				GetElapsedValue(MAIN_HW_COUNTER, &val, &eval);
+				syslog(LOG_INFO, " val = %d", val);
+				syslog(LOG_INFO, " eval = %d", eval);
+				break;
+			case 'r':
+				syslog(LOG_INFO, "GetISRID() Call from Task Context");
+				syslog(LOG_INFO, "GetISRID() = %d", GetISRID());
+				break;
+			case 'p':
+				PutAppMode();
+				break;
+			case 't':
+				schedule_table_sample_routine();
+				break;
+			case 'q':
+				local.ercd = E_OK;
+				CallTrustedFunction(tfnt3, &local); /* ShutdownOS( E_OK ) */
+				break;
+			case 'Q':
+				local.ercd = E_OS_STATE;
+				CallTrustedFunction(tfnt3, &local); /* ShutdownOS( E_OS_STATE ) */
+				break;
+			case 'y':
+				PutActTsk(10U);
+				break;
+			case 'Y':
+				PutActTsk(11U);
+				break;
+			case 'I':
+				PutActIocTsk();
+				break;
+			default:
+				/* 上記のコマンド以外の場合，処理を行わない */
+				break;
+			}
+		}
+	}
+
+	/*
+	 *  ここにはこない
+	 */
+	syslog(LOG_INFO, "MainTask TERMINATE");
+	error_log(TerminateTask());
+}   /* TASK( MainTask ) */
+
+/*
+ *  ノンプリエンプティブタスク
+ *
+ *  実行中はプリエンプトしないことの確認用
+ */
+TASK(NonPriTask)
+{
+	syslog(LOG_INFO, "NonPriTask ACTIVATE");
+	syslog(LOG_INFO, "Call ActivateTask(HighPriorityTask)");
+	error_log(ActivateTask(HighPriorityTask));
+	syslog(LOG_INFO, "NonPriTask TERMINATE");
+
+	error_log(TerminateTask());
+}   /* TASK( NonPriTask ) */
+
+/*
+ *  並列実行タスク6
+ */
+TASK(Task6)
+{
+	TaskProk(5U);
+}   /* TASK( Task6 ) */
+
+/*
+ *  並列実行タスク7
+ */
+TASK(Task7)
+{
+	TaskProk(6U);
+}   /* TASK( Task7 ) */
+
+/*
+ *  IOC確認用タスク3
+ */
+TASK(IocTask3)
+{
+	syslog(LOG_INFO, "IocTask3 ACTIVATE");
+
+	IocProk2();
+
+	syslog(LOG_INFO, "IocTask3 TERMINATE");
+	TerminateTask();
+}   /* TASK( IocTask3 ) */
+
+/*
+ *  IOC確認用タスク4
+ */
+TASK(IocTask4)
+{
+	syslog(LOG_INFO, "IocTask4 ACTIVATE");
+
+	IocProk2();
+
+	syslog(LOG_INFO, "IocTask4 TERMINATE");
+	TerminateTask();
+}   /* TASK( IocTask4 ) */
+
+/*
+ *  IOC確認用タスク内部処理
+ *
+ */
+static void
+IocProk2(void)
+{
+	uint8			api;        /* コマンド受信バッファ(API) */
+	uint8			data[3];    /* 通信バッファ */
+
+	volatile sint32 i;
+	Std_ReturnType	ercd;
+
+	syslog(LOG_INFO, "Select IOC API:");
+	api = GetCommandNoWait1();
+#ifndef OMIT_ECHO
+	syslog(LOG_INFO, "%c", api);
+#endif /* OMIT_ECHO */
+
+	switch (api) {
+	case '1':
+		syslog(LOG_INFO, "Input send data:");
+		data[0] = GetCommandNoWait1();
+#ifndef OMIT_ECHO
+		syslog(LOG_INFO, "%c", data[0]);
+#endif /* OMIT_ECHO */
+		syslog(LOG_INFO, "Call IocSend_IOC_QUE_0");
+		error_log_ioc(IocSend_IOC_QUE_0(data[0]));
+		break;
+	case '2':
+		syslog(LOG_INFO, "Input send data:");
+		data[0] = GetCommandNoWait1();
+#ifndef OMIT_ECHO
+		syslog(LOG_INFO, "%c", data[0]);
+#endif /* OMIT_ECHO */
+
+		syslog(LOG_INFO, "Call IocSend_IOC_QUE_1");
+		error_log_ioc(IocSend_IOC_QUE_1(data[0]));
+		break;
+	case '3':
+		for (i = 0; i < 3U; i++) {
+			syslog(LOG_INFO, "Input send data%d:", i);
+			data[i] = GetCommandNoWait1();
+#ifndef OMIT_ECHO
+			syslog(LOG_INFO, "%c", data[i]);
+#endif /* OMIT_ECHO */
+		}
+		syslog(LOG_INFO, "Call IocWriteGroup_IOC_DEQUE");
+		error_log_ioc(IocWriteGroup_IOC_DEQUE(data[0], data[1], data[2]));
+		break;
+	case '4':
+		syslog(LOG_INFO, "Call IocReceive_IOC_QUE");
+		ercd = IocReceive_IOC_QUE(&data[0]);
+#if !defined(CFG_USE_ERRORHOOK)
+		if (ercd != E_OK) {
+			syslog(LOG_INFO, "Error:%d", atk2_ioc_strerror(ercd));
+		}
+#endif /* !defined( CFG_USE_ERRORHOOK ) */
+		if ((ercd == IOC_E_OK) || (ercd == IOC_E_LOST_DATA)) {
+			syslog(LOG_INFO, "recv data:%c", data[0]);
+		}
+		break;
+	case '5':
+		syslog(LOG_INFO, "Call IocReadGroup_IOC_DEQUE");
+		error_log_ioc(IocReadGroup_IOC_DEQUE(&data[0], &data[1], &data[2]));
+		for (i = 0; i < 3U; i++) {
+			syslog(LOG_INFO, "recv data%d:%c", i, data[i]);
+		}
+		break;
+	case '6':
+		syslog(LOG_INFO, "Call IocEmptyQueue_IOC_QUE");
+		error_log_ioc(IocEmptyQueue_IOC_QUE());
+		break;
+	default:
+		syslog(LOG_INFO, "undefined command");
+		break;
+	}
+}   /* IocProk2 */
+
+/*
+ *  コマンド受信処理(ウェイト無し)
+ */
+uint8
+GetCommandNoWait1(void)
+{
+	uint8 command;          /* コマンド受信バッファ */
+
+	/*
+	 *  コマンドを受信するまでループ
+	 */
+	command = '\0';
+	do {
+		RecvPolSerialChar(&command);    /* 受信バッファポーリング */
+		if (command == '\n') {
+			command = '\0';
+		}
+	} while (command == '\0');
+
+
+	return(command);
+}   /* GetCommandNoWait1 */
+
+/*
+ *  ユーザメイン関数
+ *
+ *  アプリケーションモードの判断と，カーネル起動
+ */
+sint32
+main(void)
+{
+	AppModeType	crt_app_mode;
+
+	/*
+	 *  アプリケーションモードの判断
+	 */
+	switch (GetAppModeInfo()) {
+	case 0:
+		crt_app_mode = AppMode1;
+		break;
+	case 1:
+		crt_app_mode = AppMode2;
+		break;
+	default:
+		crt_app_mode = AppMode3;
+		break;
+	}
+
+	/*
+	 *  カーネル起動
+	 */
+	StartOS(crt_app_mode);
+
+	while (1) {
+	}
+}   /* main */
+
+/*
+ *  システム定義エラーフックルーチン
+ */
+#ifdef CFG_USE_SYSTEM_ERRORHOOK
+void
+ErrorHook(StatusType Error)
+{
+
+	/*
+	 *  エラー要因ごとのパラメータログ出力
+	 */
+	switch (OSErrorGetServiceId()) {
+	case OSServiceId_ActivateTask:
+		syslog(LOG_INFO, "Error:%s=ActivateTask(%d)", atk2_strerror(Error), OSError_ActivateTask_TaskID());
+		break;
+	case OSServiceId_TerminateTask:
+		syslog(LOG_INFO, "Error:%s=TerminateTask()", atk2_strerror(Error));
+		break;
+	case OSServiceId_ChainTask:
+		syslog(LOG_INFO, "Error:%s=ChainTask(%d)", atk2_strerror(Error), OSError_ChainTask_TaskID());
+		break;
+	case OSServiceId_Schedule:
+		syslog(LOG_INFO, "Error:%s=Schedule()", atk2_strerror(Error));
+		break;
+	case OSServiceId_GetTaskID:
+		syslog(LOG_INFO, "Error:%s=GetTaskID(0x%p)", atk2_strerror(Error), OSError_GetTaskID_TaskID());
+		break;
+	case OSServiceId_GetTaskState:
+		syslog(LOG_INFO, "Error:%s=GetTaskState(%d, 0x%p)", atk2_strerror(Error),
+			   OSError_GetTaskState_TaskID(), OSError_GetTaskState_State());
+		break;
+	case OSServiceId_EnableAllInterrupts:
+		syslog(LOG_INFO, "Error:%s=EnableAllInterrupts()", atk2_strerror(Error));
+		break;
+	case OSServiceId_DisableAllInterrupts:
+		syslog(LOG_INFO, "Error:%s=DisableAllInterrupts()", atk2_strerror(Error));
+		break;
+	case OSServiceId_ResumeAllInterrupts:
+		syslog(LOG_INFO, "Error:%s=ResumeAllInterrupts()", atk2_strerror(Error));
+		break;
+	case OSServiceId_SuspendAllInterrupts:
+		syslog(LOG_INFO, "Error:%s=SuspendAllInterrupts()", atk2_strerror(Error));
+		break;
+	case OSServiceId_ResumeOSInterrupts:
+		syslog(LOG_INFO, "Error:%s=ResumeOSInterrupts()", atk2_strerror(Error));
+		break;
+	case OSServiceId_SuspendOSInterrupts:
+		syslog(LOG_INFO, "Error:%s=SuspendOSInterrupts()", atk2_strerror(Error));
+		break;
+	case OSServiceId_GetISRID:
+		syslog(LOG_INFO, "Error:%s=GetISRID()", atk2_strerror(Error));
+		break;
+	case OSServiceId_GetResource:
+		syslog(LOG_INFO, "Error:%s=GetResource(%d)", atk2_strerror(Error), OSError_GetResource_ResID());
+		break;
+	case OSServiceId_ReleaseResource:
+		syslog(LOG_INFO, "Error:%s=ReleaseResource(%d)", atk2_strerror(Error), OSError_ReleaseResource_ResID());
+		break;
+	case OSServiceId_SetEvent:
+		syslog(LOG_INFO, "Error:%s=SetEvent(%d, 0x%x)", atk2_strerror(Error),
+			   OSError_SetEvent_TaskID(), OSError_SetEvent_Mask());
+		break;
+	case OSServiceId_ClearEvent:
+		syslog(LOG_INFO, "Error:%s=ClearEvent(0x%x)", atk2_strerror(Error), OSError_ClearEvent_Mask());
+		break;
+	case OSServiceId_GetEvent:
+		syslog(LOG_INFO, "Error:%s=GetEvent(%d, 0x%p)", atk2_strerror(Error),
+			   OSError_GetEvent_TaskID(), OSError_GetEvent_Event());
+		break;
+	case OSServiceId_WaitEvent:
+		syslog(LOG_INFO, "Error:%s=WaitEvent(0x%x)", atk2_strerror(Error), OSError_WaitEvent_Mask());
+		break;
+	case OSServiceId_GetAlarmBase:
+		syslog(LOG_INFO, "Error:%s=GetAlarmBase(0x%p)", atk2_strerror(Error), OSError_GetAlarmBase_AlarmID());
+		break;
+	case OSServiceId_GetAlarm:
+		syslog(LOG_INFO, "Error:%s=GetAlarm(%d, 0x%p)", atk2_strerror(Error),
+			   OSError_GetAlarm_AlarmID(), OSError_GetAlarm_Tick());
+		break;
+	case OSServiceId_SetRelAlarm:
+		syslog(LOG_INFO, "Error:%s=SetRelAlarm(%d, %d, %d)", atk2_strerror(Error),
+			   OSError_SetRelAlarm_AlarmID(), OSError_SetRelAlarm_increment(), OSError_SetRelAlarm_cycle());
+		break;
+	case OSServiceId_SetAbsAlarm:
+		syslog(LOG_INFO, "Error:%s=SetAbsAlarm(%d, %d, %d)", atk2_strerror(Error),
+			   OSError_SetAbsAlarm_AlarmID(), OSError_SetAbsAlarm_start(), OSError_SetAbsAlarm_cycle());
+		break;
+	case OSServiceId_CancelAlarm:
+		syslog(LOG_INFO, "Error:%s=CancelAlarm(%d)", atk2_strerror(Error), OSError_CancelAlarm_AlarmID());
+		break;
+	case OSServiceId_StartScheduleTableRel:
+		syslog(LOG_INFO, "Error:%s=StartScheduleTableRel(%d, %d)", atk2_strerror(Error),
+			   OSError_StartScheduleTableRel_ScheduleTableID(), OSError_StartScheduleTableRel_Offset());
+		break;
+	case OSServiceId_StartScheduleTableAbs:
+		syslog(LOG_INFO, "Error:%s=StartScheduleTableAbs(%d, %d)", atk2_strerror(Error),
+			   OSError_StartScheduleTableAbs_ScheduleTableID(), OSError_StartScheduleTableAbs_Start());
+		break;
+	case OSServiceId_StopScheduleTable:
+		syslog(LOG_INFO, "Error:%s=StopScheduleTable(%d)", atk2_strerror(Error), OSError_StopScheduleTable_ScheduleTableID());
+		break;
+	case OSServiceId_NextScheduleTable:
+		syslog(LOG_INFO, "Error:%s=NextScheduleTable(%d, %d)", atk2_strerror(Error),
+			   OSError_NextScheduleTable_ScheduleTableID_From(), OSError_NextScheduleTable_ScheduleTableID_To());
+		break;
+	case OSServiceId_GetScheduleTableStatus:
+		syslog(LOG_INFO, "Error:%s=GetScheduleTableStatus(%d, 0x%p)", atk2_strerror(Error),
+			   OSError_GetScheduleTableStatus_ScheduleTableID(), OSError_GetScheduleTableStatus_ScheduleStatus());
+		break;
+	case OSServiceId_GetActiveApplicationMode:
+		syslog(LOG_INFO, "Error:%s=GetActiveApplicationMode()", atk2_strerror(Error));
+		break;
+	case OSServiceId_StartOS:
+		syslog(LOG_INFO, "Error:%s=StartOS()", atk2_strerror(Error));
+		break;
+	case OSServiceId_ShutdownOS:
+		syslog(LOG_INFO, "Error:%s=ShutdownOS()", atk2_strerror(Error));
+		break;
+	case OSServiceId_IncrementCounter:
+		syslog(LOG_INFO, "Error:%s=IncrementCounter(%d)", atk2_strerror(Error), OSError_IncrementCounter_CounterID());
+		break;
+	case OSServiceId_TaskMissingEnd:
+		syslog(LOG_INFO, "Error:%s=MissingEnd()", atk2_strerror(Error));
+		break;
+	case IOCServiceId_IOC_Send:
+		syslog(LOG_INFO, "Error:%s=MissingEnd()", atk2_ioc_strerror(Error));
+		break;
+	case IOCServiceId_IOC_Write:
+		syslog(LOG_INFO, "Error:%s=MissingEnd()", atk2_ioc_strerror(Error));
+		break;
+	case IOCServiceId_IOC_SendGroup:
+		syslog(LOG_INFO, "Error:%s=MissingEnd()", atk2_ioc_strerror(Error));
+		break;
+	case IOCServiceId_IOC_WriteGroup:
+		syslog(LOG_INFO, "Error:%s=MissingEnd()", atk2_ioc_strerror(Error));
+		break;
+	case IOCServiceId_IOC_Receive:
+		syslog(LOG_INFO, "Error:%s=MissingEnd()", atk2_ioc_strerror(Error));
+		break;
+	case IOCServiceId_IOC_Read:
+		syslog(LOG_INFO, "Error:%s=MissingEnd()", atk2_ioc_strerror(Error));
+		break;
+	case IOCServiceId_IOC_ReceiveGroup:
+		syslog(LOG_INFO, "Error:%s=MissingEnd()", atk2_ioc_strerror(Error));
+		break;
+	case IOCServiceId_IOC_ReadGroup:
+		syslog(LOG_INFO, "Error:%s=MissingEnd()", atk2_ioc_strerror(Error));
+		break;
+	case IOCServiceId_IOC_EmptyQueue:
+		syslog(LOG_INFO, "Error:%s=MissingEnd()", atk2_ioc_strerror(Error));
+		break;
+	default:
+		syslog(LOG_INFO, "Error:%s=UnKnownFunc()", atk2_strerror(Error));
+		break;
+	}
+
+}
+#endif /* CFG_USE_SYSTEM_ERRORHOOK */
+
+/*
+ *  プレタスクフックルーチン
+ *
+ *  Task13/Task14実行前のプレタスクフックの場合，メッセージを出力
+ */
+#ifdef CFG_USE_PRETASKHOOK
+void
+PreTaskHook(void)
+{
+	TaskType tskid;
+
+	GetTaskID(&tskid);
+	if (tskid == Task13) {
+		syslog(LOG_INFO, "\nPreTaskHook before Task13!\n");
+	}
+	if (tskid == Task14) {
+		syslog(LOG_INFO, "\nPreTaskHook before Task14!\n");
+	}
+}
+#endif /* CFG_USE_PRETASKHOOK */
+
+/*
+ *  ポストタスクフックルーチン
+ *
+ *  Task13/Task14実行後のポストタスクフックの場合，メッセージを出力
+ */
+#ifdef CFG_USE_POSTTASKHOOK
+void
+PostTaskHook(void)
+{
+	TaskType tskid;
+
+	GetTaskID(&tskid);
+	if (tskid == Task13) {
+		syslog(LOG_INFO, "\nPostTaskHook after Task13!\n");
+	}
+	if (tskid == Task14) {
+		syslog(LOG_INFO, "\nPostTaskHook after Task14!\n");
+	}
+}
+#endif /* CFG_USE_POSTTASKHOOK */
+
+/*
+ *  システム定義スタートアップフックルーチン
+ */
+#ifdef CFG_USE_SYSTEM_STARTUPHOOK
+#ifdef TOPPERS_ENABLE_SYS_TIMER
+extern void target_timer_initialize(void);
+#endif /* TOPPERS_ENABLE_SYS_TIMER */
+
+void
+StartupHook(void)
+{
+#ifdef TOPPERS_ENABLE_SYS_TIMER
+	target_timer_initialize();
+#endif /* TOPPERS_ENABLE_SYS_TIMER */
+	syslog_initialize();
+	syslog_msk_log(LOG_UPTO(LOG_INFO));
+	InitSerial();
+	print_banner();
+}
+#endif /* CFG_USE_SYSTEM_STARTUPHOOK */
+
+/*
+ *  システム定義シャットダウンフックルーチン
+ */
+#ifdef CFG_USE_SYSTEM_SHUTDOWNHOOK
+#ifdef TOPPERS_ENABLE_SYS_TIMER
+extern void target_timer_terminate(void);
+#endif /* TOPPERS_ENABLE_SYS_TIMER */
+
+void
+ShutdownHook(StatusType Error)
+{
+	/* 終了ログ出力 */
+	syslog(LOG_INFO, "Sample System ShutDown");
+	syslog(LOG_INFO, "ShutDownCode:%s", atk2_strerror(Error));
+	syslog(LOG_INFO, "");
+
+	if (Error == E_OS_SYS_ASSERT_FATAL) {
+		syslog(LOG_INFO, "fatal_file_name:%s", fatal_file_name);
+		syslog(LOG_INFO, "fatal_line_num:%d", fatal_line_num);
+	}
+
+#ifdef TOPPERS_ENABLE_SYS_TIMER
+	target_timer_terminate();
+#endif /* TOPPERS_ENABLE_SYS_TIMER */
+	TermSerial();
+
+}
+#endif /* CFG_USE_SYSTEM_SHUTDOWNHOOK */
+
+/*
+ *  プロテクションフックルーチン
+ */
+#ifdef CFG_USE_PROTECTIONHOOK
+ProtectionReturnType
+ProtectionHook(StatusType FatalError)
+{
+	StatusType			ercd;
+	FaultyContextType	faulty_context;
+	TaskType			taskid;
+
+	syslog(LOG_INFO, "ProtectionHook");
+
+	if (FatalError == E_OS_STACKFAULT) {
+		syslog(LOG_INFO, "E_OS_STACKFAULT");
+		ercd = PRO_SHUTDOWN;
+	}
+	else if (FatalError == E_OS_PROTECTION_EXCEPTION) {
+		faulty_context = GetFaultyContext();
+		syslog(LOG_INFO, "E_OS_PROTECTION_EXCEPTION and GetFaultyContext() = %s", faulty_context_tbl[faulty_context]);
+
+		switch (faulty_context) {
+		case FC_TASK:
+			ercd = GetTaskID(&taskid);
+			if (taskid == MainTask) {
+				ercd = PRO_IGNORE;
+			}
+			else {
+				ercd = PRO_TERMINATETASKISR;
+			}
+			break;
+		case FC_C2ISR:
+			ercd = PRO_TERMINATETASKISR;
+			break;
+		case FC_OSAP_HOOK:
+			ercd = PRO_TERMINATEAPPL;
+			break;
+		case FC_SYSTEM_HOOK:
+			ercd = PRO_IGNORE;
+			break;
+		case FC_TRUSTED_FUNC:
+			ercd = PRO_IGNORE;
+			break;
+		case FC_INVALID:
+			ercd = PRO_SHUTDOWN;
+			break;
+		default:
+			ercd = PRO_SHUTDOWN;
+			syslog(LOG_INFO, "unknown error fo GetFaultyContext() = %d", faulty_context);
+		}
+	}
+	else {
+		ercd = PRO_SHUTDOWN;
+	}
+
+	return(ercd);
+}
+#endif /* CFG_USE_PROTECTIONHOOK */
+
+/*
+ *  OSAP定義スタートアップフックルーチン
+ */
+#ifdef CFG_USE_OSAP_STARTUPHOOK
+void
+StartupHook_KT_osap(void)
+{
+	syslog(LOG_INFO, "Sample StartupHook_KT_osap!\n");
+}
+#endif /* CFG_USE_OSAP_SHUTDOWNHOOK */
+
+void
+StartupHook_KT_osap1(void)
+{
+	syslog(LOG_INFO, "Sample StartupHook_KT_osap1!\n");
+}
+void
+ShutdownHook_KT_osap1(StatusType err)
+{
+	syslog(LOG_INFO, "Sample ShutdownHook_KT_osap1!\n");
+}
+
Index: /atk2-sc3_fl850f1l/arch/ccrh/sample/sample1.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/ccrh/sample/sample1.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ccrh/sample/sample1.h	(revision 117)
@@ -0,0 +1,74 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2011-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: sample1.h 115 2014-12-10 01:33:17Z t_ishikawa $
+ */
+
+/*
+ *		信頼OSアプリケーション所属サンプルプログラムのヘッダファイル
+ */
+
+#ifndef TOPPERS_SAMPLE1_H
+#define TOPPERS_SAMPLE1_H
+
+#include "target_test.h"
+
+#define TIMER_ISR_PARAM		(TIMER_CONTROL_CONT | TIMER_CONTROL_ITO | TIMER_CONTROL_START)
+
+/*
+ *  関数のプロトタイプ宣言
+ */
+#ifndef TOPPERS_MACRO_ONLY
+
+extern StackType stack_00[COUNT_STK_T(0x200)];
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_SAMPLE1_H */
Index: /atk2-sc3_fl850f1l/arch/ccrh/sample/sample1.yaml
===================================================================
--- /atk2-sc3_fl850f1l/arch/ccrh/sample/sample1.yaml	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ccrh/sample/sample1.yaml	(revision 117)
@@ -0,0 +1,678 @@
+#
+#  TOPPERS ATK2
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+#      Automotive Kernel Version 2
+#
+#  Copyright (C) 2013-2014 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#  Copyright (C) 2013-2014 by FUJI SOFT INCORPORATED, JAPAN
+#  Copyright (C) 2013-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+#  Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
+#  Copyright (C) 2013-2014 by Sunny Giken Inc., JAPAN
+#  Copyright (C) 2013-2014 by TOSHIBA CORPORATION, JAPAN
+#  Copyright (C) 2013-2014 by Witz Corporation, JAPAN
+#
+#  上記著作権者は，以下の(1)~(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+#  $Id: sample1.yaml 170 2015-06-04 08:23:01Z t_ishikawa $
+#
+
+Ecuc:
+  Os:
+    OsInclude1:
+      DefinitionRef: OsInclude
+      OsIncludeFileName: sample1.h
+    OsInclude2:
+      DefinitionRef: OsInclude
+      OsIncludeFileName: sample2.h
+    OsOS:
+      OsStackMonitoring: true
+      OsUseGetServiceId: true
+      OsUseParameterAccess: true
+      OsScalabilityClass: SC3
+      OsMemoryProtectionLevel: Level2
+      OsViolationHandlingLevel: Level2
+      OsStatus: EXTENDED
+      OsHooks:
+        OsErrorHook: true
+        OsPostTaskHook: true
+        OsPreTaskHook: true
+        OsProtectionHook: true
+        OsShutdownHook: true
+        OsStartupHook: true
+      OsHookStack:
+        OsHookStackSize: 0x200U
+    TskLevelRes:
+      DefinitionRef: OsResource
+      OsResourceProperty: STANDARD
+      OsResourceAccessingApplication: /Ecuc/Os/NT_osap1
+    CntRes:
+      DefinitionRef: OsResource
+      OsResourceProperty: STANDARD
+      OsResourceAccessingApplication: /Ecuc/Os/NT_osap1
+    GroupRes:
+      DefinitionRef: OsResource
+      OsResourceProperty: INTERNAL
+      OsResourceAccessingApplication: /Ecuc/Os/NT_osap1
+    SampleCnt:
+      DefinitionRef: OsCounter
+      OsCounterMaxAllowedValue: 99U
+      OsCounterMinCycle: 10
+      OsCounterTicksPerBase: 10U
+      OsCounterType: SOFTWARE
+    SampleCnt2:
+      DefinitionRef: OsCounter
+      OsCounterMaxAllowedValue: 99U
+      OsCounterMinCycle: 10
+      OsCounterTicksPerBase: 10U
+      OsCounterType: SOFTWARE
+    SampleCnt3:
+      DefinitionRef: OsCounter
+      OsCounterMaxAllowedValue: 99U
+      OsCounterMinCycle: 10
+      OsCounterTicksPerBase: 10U
+      OsCounterType: SOFTWARE
+    NonPriTask:
+      DefinitionRef: OsTask
+      OsTaskActivation: 8U
+      OsTaskPriority: 1
+      OsTaskStackSize: 0x200U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: NON
+    Task6:
+      DefinitionRef: OsTask
+      OsTaskActivation: 5U
+      OsTaskPriority: 9
+      OsTaskStackSize: 0x200U
+      OsTaskStackStartAddress: stack_00
+      OsTaskSchedule: FULL
+    Task7:
+      DefinitionRef: OsTask
+      OsTaskActivation: 5U
+      OsTaskPriority: 8
+      OsTaskStackSize: 0x200U
+      OsTaskStackStartAddress: stack_00
+      OsTaskSchedule: FULL
+      OsTaskAccessingApplication: /Ecuc/Os/NT_osap1
+    MainTask:
+      DefinitionRef: OsTask
+      OsTaskActivation: 1U
+      OsTaskPriority: 14
+      OsTaskStackSize: 0x200U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: NON
+      OsTaskEventRef: /Ecuc/Os/MainEvt
+      OsTaskAutostart:
+        OsTaskAppModeRef:
+          - /Ecuc/Os/AppMode1
+          - /Ecuc/Os/AppMode2
+          - /Ecuc/Os/AppMode3
+      OsTaskAccessingApplication: /Ecuc/Os/NT_osap1
+    HighPriorityTask:
+      DefinitionRef: OsTask
+      OsTaskActivation: 1U
+      OsTaskPriority: 15
+      OsTaskStackSize: 0x200U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: FULL
+    Task1:
+      DefinitionRef: OsTask
+      OsTaskActivation: 8U
+      OsTaskPriority: 4
+      OsTaskStackSize: 0x200U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: FULL
+      OsTaskResourceRef:
+        - /Ecuc/Os/CntRes
+        - /Ecuc/Os/TskLevelRes
+      OsTaskAutostart:
+        OsTaskAppModeRef: /Ecuc/Os/AppMode2
+    Task2:
+      DefinitionRef: OsTask
+      OsTaskActivation: 1U
+      OsTaskPriority: 7
+      OsTaskStackSize: 0x200U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: FULL
+      OsTaskAccessingApplication: /Ecuc/Os/NT_osap2
+      OsTaskResourceRef:
+        - /Ecuc/Os/CntRes
+        - /Ecuc/Os/TskLevelRes
+      OsTaskEventRef: /Ecuc/Os/T2Evt
+    MainCycArm:
+      DefinitionRef: OsAlarm
+      OsAlarmCounterRef: /Ecuc/Os/MAIN_HW_COUNTER
+      OsAlarmAction:
+        OsAlarmSetEvent:
+          OsAlarmSetEventTaskRef: /Ecuc/Os/MainTask
+          OsAlarmSetEventRef: /Ecuc/Os/MainEvt
+      OsAlarmAutostart:
+        OsAlarmAlarmTime: TICK_FOR_10MS
+        OsAlarmCycleTime: TICK_FOR_10MS
+        OsAlarmAutostartType: ABSOLUTE
+        OsAlarmAppModeRef:
+          - /Ecuc/Os/AppMode1
+          - /Ecuc/Os/AppMode2
+          - /Ecuc/Os/AppMode3
+    ActTskArm:
+      DefinitionRef: OsAlarm
+      OsAlarmCounterRef: /Ecuc/Os/MAIN_HW_COUNTER
+      OsAlarmAction:
+        OsAlarmActivateTask:
+          OsAlarmActivateTaskRef: /Ecuc/Os/Task1
+    Task3:
+      DefinitionRef: OsTask
+      OsTaskActivation: 1U
+      OsTaskPriority: 12
+      OsTaskStackSize: 0x200U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: FULL
+      OsTaskResourceRef: /Ecuc/Os/CntRes
+      OsTaskEventRef: /Ecuc/Os/T3Evt
+      OsTaskAutostart:
+        OsTaskAppModeRef: /Ecuc/Os/AppMode3
+    Task4:
+      DefinitionRef: OsTask
+      OsTaskActivation: 5U
+      OsTaskPriority: 6
+      OsTaskStackSize: 0x200U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: FULL
+      OsTaskAccessingApplication: /Ecuc/Os/NT_osap2
+      OsTaskResourceRef:
+        - /Ecuc/Os/GroupRes
+        - /Ecuc/Os/CntRes
+        - /Ecuc/Os/TskLevelRes
+    scheduletable1:
+      DefinitionRef: OsScheduleTable
+      OsScheduleTableDuration: 60U
+      OsScheduleTableRepeating: true
+      OsScheduleTableCounterRef: /Ecuc/Os/SchtblSampleCnt
+      OsScheduleTableExpiryPoint_0:
+        DefinitionRef: OsScheduleTableExpiryPoint
+        OsScheduleTblExpPointOffset: 10
+        OsScheduleTableTaskActivation_0:
+          DefinitionRef: OsScheduleTableTaskActivation
+          OsScheduleTableActivateTaskRef: /Ecuc/Os/Task10
+        OsScheduleTableTaskActivation_1:
+          DefinitionRef: OsScheduleTableTaskActivation
+          OsScheduleTableActivateTaskRef: /Ecuc/Os/Task11
+        OsScheduleTableTaskActivation_2:
+          DefinitionRef: OsScheduleTableTaskActivation
+          OsScheduleTableActivateTaskRef: /Ecuc/Os/Task12
+      OsScheduleTableExpiryPoint_1:
+        DefinitionRef: OsScheduleTableExpiryPoint
+        OsScheduleTblExpPointOffset: 20
+        OsScheduleTableEventSetting_0:
+          DefinitionRef: OsScheduleTableEventSetting
+          OsScheduleTableSetEventRef: /Ecuc/Os/T10Evt
+          OsScheduleTableSetEventTaskRef: /Ecuc/Os/Task10
+        OsScheduleTableEventSetting_1:
+          DefinitionRef: OsScheduleTableEventSetting
+          OsScheduleTableSetEventRef: /Ecuc/Os/T11Evt
+          OsScheduleTableSetEventTaskRef: /Ecuc/Os/Task11
+        OsScheduleTableEventSetting_2:
+          DefinitionRef: OsScheduleTableEventSetting
+          OsScheduleTableSetEventRef: /Ecuc/Os/T12Evt
+          OsScheduleTableSetEventTaskRef: /Ecuc/Os/Task12
+      OsScheduleTableSync:
+        OsScheduleTblSyncStrategy: NONE
+    Task5:
+      DefinitionRef: OsTask
+      OsTaskActivation: 5U
+      OsTaskPriority: 9
+      OsTaskStackSize: 0x200U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: FULL
+      OsTaskResourceRef:
+        - /Ecuc/Os/GroupRes
+        - /Ecuc/Os/CntRes
+        - /Ecuc/Os/TskLevelRes
+    scheduletable2:
+      DefinitionRef: OsScheduleTable
+      OsScheduleTableDuration: 50U
+      OsScheduleTableRepeating: true
+      OsScheduleTableCounterRef: /Ecuc/Os/SchtblSampleCnt
+      OsScheduleTableExpiryPoint_0:
+        DefinitionRef: OsScheduleTableExpiryPoint
+        OsScheduleTblExpPointOffset: 20
+        OsScheduleTableTaskActivation_0:
+          DefinitionRef: OsScheduleTableTaskActivation
+          OsScheduleTableActivateTaskRef: /Ecuc/Os/Task12
+        OsScheduleTableTaskActivation_1:
+          DefinitionRef: OsScheduleTableTaskActivation
+          OsScheduleTableActivateTaskRef: /Ecuc/Os/Task11
+      OsScheduleTableExpiryPoint_1:
+        DefinitionRef: OsScheduleTableExpiryPoint
+        OsScheduleTblExpPointOffset: 30
+        OsScheduleTableEventSetting_0:
+          DefinitionRef: OsScheduleTableEventSetting
+          OsScheduleTableSetEventRef: /Ecuc/Os/T12Evt
+          OsScheduleTableSetEventTaskRef: /Ecuc/Os/Task12
+      OsScheduleTableExpiryPoint_2:
+        DefinitionRef: OsScheduleTableExpiryPoint
+        OsScheduleTblExpPointOffset: 40
+        OsScheduleTableEventSetting_0:
+          DefinitionRef: OsScheduleTableEventSetting
+          OsScheduleTableSetEventRef: /Ecuc/Os/T11Evt
+          OsScheduleTableSetEventTaskRef: /Ecuc/Os/Task11
+      OsScheduleTableSync:
+        OsScheduleTblSyncStrategy: NONE
+    SetEvtArm:
+      DefinitionRef: OsAlarm
+      OsAlarmCounterRef: /Ecuc/Os/MAIN_HW_COUNTER
+      OsAlarmAction:
+        OsAlarmSetEvent:
+          OsAlarmSetEventTaskRef: /Ecuc/Os/Task3
+          OsAlarmSetEventRef: /Ecuc/Os/T3Evt
+    SampleAlm1:
+      DefinitionRef: OsAlarm
+      OsAlarmCounterRef: /Ecuc/Os/SampleCnt2
+      OsAlarmAction:
+        OsAlarmIncrementCounter:
+          OsAlarmIncrementCounterRef: /Ecuc/Os/SampleCnt3
+      OsAlarmAutostart:
+        OsAlarmAlarmTime: 10U
+        OsAlarmCycleTime: 10U
+        OsAlarmAutostartType: ABSOLUTE
+        OsAlarmAppModeRef:
+          - /Ecuc/Os/AppMode1
+          - /Ecuc/Os/AppMode2
+          - /Ecuc/Os/AppMode3
+    SchtblSampleCnt:
+      DefinitionRef: OsCounter
+      OsCounterMaxAllowedValue: 99U
+      OsCounterMinCycle: 10
+      OsCounterTicksPerBase: 10U
+      OsCounterType: SOFTWARE
+    SampleAlm2:
+      DefinitionRef: OsAlarm
+      OsAlarmCounterRef: /Ecuc/Os/SampleCnt3
+      OsAlarmAction:
+        OsAlarmSetEvent:
+          OsAlarmSetEventTaskRef: /Ecuc/Os/MainTask
+          OsAlarmSetEventRef: /Ecuc/Os/MainEvt
+      OsAlarmAutostart:
+        OsAlarmAlarmTime: 10U
+        OsAlarmCycleTime: 10U
+        OsAlarmAutostartType: ABSOLUTE
+        OsAlarmAppModeRef:
+          - /Ecuc/Os/AppMode1
+          - /Ecuc/Os/AppMode2
+          - /Ecuc/Os/AppMode3
+    Task10:
+      DefinitionRef: OsTask
+      OsTaskActivation: 1U
+      OsTaskPriority: 13
+      OsTaskStackSize: 0x200U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: NON
+      OsTaskEventRef: /Ecuc/Os/T10Evt
+    Task11:
+      DefinitionRef: OsTask
+      OsTaskActivation: 1U
+      OsTaskPriority: 13
+      OsTaskStackSize: 0x200U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: NON
+      OsTaskEventRef: /Ecuc/Os/T11Evt
+    Task12:
+      DefinitionRef: OsTask
+      OsTaskActivation: 1U
+      OsTaskPriority: 13
+      OsTaskStackSize: 0x200U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: NON
+      OsTaskEventRef: /Ecuc/Os/T12Evt
+    Task13:
+      DefinitionRef: OsTask
+      OsTaskActivation: 5U
+      OsTaskPriority: 9
+      OsTaskStackSize: 0x200U
+      OsTaskStackStartAddress: stack_1
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSystemStackStartAddress: stack_2
+      OsTaskSchedule: FULL
+    Task14:
+      DefinitionRef: OsTask
+      OsTaskActivation: 5U
+      OsTaskPriority: 8
+      OsTaskStackSize: 0x200U
+      OsTaskStackStartAddress: stack_1
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSystemStackStartAddress: stack_2
+      OsTaskSchedule: FULL
+    IocTask1:
+      DefinitionRef: OsTask
+      OsTaskActivation: 1U
+      OsTaskPriority: 9
+      OsTaskStackSize: 0x200U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: FULL
+      OsTaskAccessingApplication: /Ecuc/Os/NT_osap2
+    IocTask2:
+      DefinitionRef: OsTask
+      OsTaskActivation: 1U
+      OsTaskPriority: 9
+      OsTaskStackSize: 0x200U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: FULL
+      OsTaskAccessingApplication: /Ecuc/Os/NT_osap1
+    IocTask3:
+      DefinitionRef: OsTask
+      OsTaskActivation: 1U
+      OsTaskPriority: 9
+      OsTaskStackSize: 0x200U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: FULL
+    IocTask4:
+      DefinitionRef: OsTask
+      OsTaskActivation: 1U
+      OsTaskPriority: 9
+      OsTaskStackSize: 0x200U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: FULL
+    AppMode1:
+      DefinitionRef: OsAppMode
+    AppMode2:
+      DefinitionRef: OsAppMode
+    AppMode3:
+      DefinitionRef: OsAppMode
+    MainEvt:
+      DefinitionRef: OsEvent
+    T2Evt:
+      DefinitionRef: OsEvent
+    T3Evt:
+      DefinitionRef: OsEvent
+      OsEventMask: 0x00010000
+    T10Evt:
+      DefinitionRef: OsEvent
+    T11Evt:
+      DefinitionRef: OsEvent
+    T12Evt:
+      DefinitionRef: OsEvent
+    KT_osap1:
+      DefinitionRef: OsApplication
+      OsTrusted: true
+      OsAppTaskRef:
+        - /Ecuc/Os/MainTask
+        - /Ecuc/Os/NonPriTask
+        - /Ecuc/Os/Task6
+        - /Ecuc/Os/Task7
+        - /Ecuc/Os/IocTask3
+      OsApplicationHooks:
+        OsAppErrorHook: false
+        OsAppShutdownHook: true
+        OsAppStartupHook: true
+      tfnt1:
+        DefinitionRef: OsApplicationTrustedFunction
+        OsTrustedFunctionStackSize: 32
+        OsTrustedFunctionName: TRUSTED_tfnt1
+      tfnt2:
+        DefinitionRef: OsApplicationTrustedFunction
+        OsTrustedFunctionStackSize: 32
+        OsTrustedFunctionName: TRUSTED_tfnt2
+      tfnt3:
+        DefinitionRef: OsApplicationTrustedFunction
+        OsTrustedFunctionStackSize: 32
+        OsTrustedFunctionName: TRUSTED_tfnt3
+      tfnt4:
+        DefinitionRef: OsApplicationTrustedFunction
+        OsTrustedFunctionStackSize: 32
+        OsTrustedFunctionName: TRUSTED_tfnt4
+      actioctask3:
+        DefinitionRef: OsApplicationTrustedFunction
+        OsTrustedFunctionStackSize: 32
+        OsTrustedFunctionName: TRUSTED_actioctask3
+    KT_osap2:
+      DefinitionRef: OsApplication
+      OsTrusted: true
+      OsAppTaskRef: /Ecuc/Os/IocTask4
+      OsAppMemorySectionRef: /Ecu/Os/sdata_trusted
+      OsApplicationHooks:
+        OsAppErrorHook: false
+        OsAppShutdownHook: false
+        OsAppStartupHook: false
+      actioctask4:
+        DefinitionRef: OsApplicationTrustedFunction
+        OsTrustedFunctionStackSize: 32
+        OsTrustedFunctionName: TRUSTED_actioctask4
+    NT_osap1:
+      DefinitionRef: OsApplication
+      OsTrusted: false
+      OsAppCounterRef:
+        - /Ecuc/Os/SampleCnt
+        - /Ecuc/Os/SchtblSampleCnt
+        - /Ecuc/Os/SampleCnt2
+        - /Ecuc/Os/SampleCnt3
+      OsAppTaskRef:
+        - /Ecuc/Os/HighPriorityTask
+        - /Ecuc/Os/Task1
+        - /Ecuc/Os/Task2
+        - /Ecuc/Os/Task3
+        - /Ecuc/Os/Task4
+        - /Ecuc/Os/Task5
+        - /Ecuc/Os/Task10
+        - /Ecuc/Os/Task11
+        - /Ecuc/Os/Task12
+        - /Ecuc/Os/Task13
+        - /Ecuc/Os/Task14
+        - /Ecuc/Os/IocTask1
+      OsAppAlarmRef:
+        - /Ecuc/Os/MainCycArm
+        - /Ecuc/Os/ActTskArm
+        - /Ecuc/Os/SetEvtArm
+        - /Ecuc/Os/SampleAlm1
+        - /Ecuc/Os/SampleAlm2
+      OsAppScheduleTableRef:
+        - /Ecuc/Os/scheduletable1
+        - /Ecuc/Os/scheduletable2
+      OsAppMemorySectionRef: /Ecu/Os/sbss_nt
+      OsApplicationHooks:
+        OsAppErrorHook: false
+        OsAppShutdownHook: false
+        OsAppStartupHook: false
+    OsLinkSection:
+      OsLinkSectionName: .stack_section
+      OsLinkSectionMemoryRegionRef: /Ecuc/Os/RAM
+    text_shared:
+      DefinitionRef: OsMemorySection
+      OsMemorySectionName: ".text"
+      OsMemorySectionMemoryRegionRef: /Ecuc/Os/FLASH
+      OsMemorySectionWritable: false
+      OsMemorySectionReadable: true
+      OsMemorySectionExecutable: true
+      OsMemorySectionShort: false
+      OsMemorySectionCacheable: true
+      OsMemorySectionDevice: false
+      OsMemorySectionExport: false
+    const_shared:
+      DefinitionRef: OsMemorySection
+      OsMemorySectionName: ".const"
+      OsMemorySectionMemoryRegionRef: /Ecuc/Os/FLASH
+      OsMemorySectionWritable: false
+      OsMemorySectionReadable: true
+      OsMemorySectionExecutable: true
+      OsMemorySectionShort: false
+      OsMemorySectionCacheable: true
+      OsMemorySectionDevice: false
+      OsMemorySectionExport: false
+    data_shared:
+      DefinitionRef: OsMemorySection
+      OsMemorySectionName: ".data"
+      OsMemorySectionMemoryRegionRef: /Ecuc/Os/RAM
+      OsMemorySectionWritable: true
+      OsMemorySectionReadable: true
+      OsMemorySectionExecutable: false
+      OsMemorySectionShort: false
+      OsMemorySectionInitialize: DATA
+      OsMemorySectionCacheable: true
+      OsMemorySectionDevice: false
+      OsMemorySectionExport: true
+    sdata_trusted:
+      DefinitionRef: OsMemorySection
+      OsMemorySectionName: ".sdata"
+      OsMemorySectionMemoryRegionRef: /Ecuc/Os/RAM
+      OsMemorySectionWritable: true
+      OsMemorySectionReadable: true
+      OsMemorySectionExecutable: false
+      OsMemorySectionShort: true
+      OsMemorySectionInitialize: DATA
+      OsMemorySectionCacheable: true
+      OsMemorySectionDevice: false
+      OsMemorySectionExport: true
+    bss_shared:
+      DefinitionRef: OsMemorySection
+      OsMemorySectionName: ".bss"
+      OsMemorySectionMemoryRegionRef: /Ecuc/Os/RAM
+      OsMemorySectionWritable: true
+      OsMemorySectionReadable: true
+      OsMemorySectionExecutable: false
+      OsMemorySectionShort: false
+      OsMemorySectionInitialize: BSS
+      OsMemorySectionCacheable: true
+      OsMemorySectionDevice: false
+      OsMemorySectionExport: true
+    sbss_nt:
+      DefinitionRef: OsMemorySection
+      OsMemorySectionName: ".sbss"
+      OsMemorySectionMemoryRegionRef: /Ecuc/Os/RAM
+      OsMemorySectionWritable: true
+      OsMemorySectionReadable: true
+      OsMemorySectionExecutable: false
+      OsMemorySectionShort: true
+      OsMemorySectionInitialize: BSS
+      OsMemorySectionCacheable: true
+      OsMemorySectionDevice: false
+      OsMemorySectionExport: true
+    Task8:
+      DefinitionRef: OsTask
+      OsTaskActivation: 5U
+      OsTaskPriority: 8
+      OsTaskStackSize: 0x250U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: FULL
+    Task9:
+      DefinitionRef: OsTask
+      OsTaskActivation: 5U
+      OsTaskPriority: 8
+      OsTaskStackSize: 0x300U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: FULL
+    ActOtherOSAPTskArmCnt:
+      DefinitionRef: OsCounter
+      OsCounterMaxAllowedValue: 99U
+      OsCounterMinCycle: 10
+      OsCounterTicksPerBase: 10U
+      OsCounterType: SOFTWARE
+    ActOtherOSAPTskArm:
+      DefinitionRef: OsAlarm
+      OsAlarmCounterRef: /Ecuc/Os/ActOtherOSAPTskArmCnt
+      OsAlarmAction:
+        OsAlarmActivateTask:
+          OsAlarmActivateTaskRef: /Ecuc/Os/Task4
+      OsAlarmAutostart:
+        OsAlarmAlarmTime: 5U
+        OsAlarmCycleTime: 0U
+        OsAlarmAutostartType: ABSOLUTE
+        OsAlarmAppModeRef:
+          - /Ecuc/Os/AppMode1
+          - /Ecuc/Os/AppMode2
+          - /Ecuc/Os/AppMode3
+    NT_osap2:
+      DefinitionRef: OsApplication
+      OsTrusted: false
+      OsAppTaskRef:
+        - /Ecuc/Os/Task8
+        - /Ecuc/Os/Task9
+        - /Ecuc/Os/IocTask2
+      OsAppCounterRef: /Ecuc/Os/ActOtherOSAPTskArmCnt
+      OsAppAlarmRef: /Ecuc/Os/ActOtherOSAPTskArm
+      OsApplicationHooks:
+        OsAppErrorHook: true
+        OsAppShutdownHook: true
+        OsAppStartupHook: true
+    IOC:
+      DefinitionRef: OsIoc
+      IOC_QUE:
+        DefinitionRef: OsIocCommunication
+        OsIocBufferLength: 3
+        IOC_QUE_DATA:
+          DefinitionRef: OsIocDataProperties
+          OsIocInitValue: 1
+          OsIocDataTypeRef: /ImplementationDataTypes/uint8
+        IOC_QUE_RCV:
+          DefinitionRef: OsIocReceiverProperties
+          OsIocFunctionImplementationKind: FUNCTION
+          OsIocReceivingOsApplicationRef: /Ecuc/Os/NT_osap2
+        IOC_QUE_SND0:
+          DefinitionRef: OsIocSenderProperties
+          OsIocSenderId: 0
+          OsIocFunctionImplementationKind: FUNCTION
+          OsIocSendingOsApplicationRef: /Ecuc/Os/NT_osap1
+        IOC_QUE_SND1:
+          DefinitionRef: OsIocSenderProperties
+          OsIocSenderId: 1
+          OsIocFunctionImplementationKind: FUNCTION
+          OsIocSendingOsApplicationRef: /Ecuc/Os/KT_osap1
+      IOC_DEQUE:
+        DefinitionRef: OsIocCommunication
+        IOC_DEQUE_DATA0:
+          DefinitionRef: OsIocDataProperties
+          OsIocDataPropertyIndex: 0
+          OsIocInitValue: 0U
+          OsIocDataTypeRef: /ImplementationDataTypes/uint8
+        IOC_DEQUE_DATA1:
+          DefinitionRef: OsIocDataProperties
+          OsIocDataPropertyIndex: 1
+          OsIocInitValue: 10U
+          OsIocDataTypeRef: /ImplementationDataTypes/uint8
+        IOC_DEQUE_DATA2:
+          DefinitionRef: OsIocDataProperties
+          OsIocDataPropertyIndex: 2
+          OsIocInitValue: 20U
+          OsIocDataTypeRef: /ImplementationDataTypes/uint8
+        IOC_DEQUE_RCV:
+          DefinitionRef: OsIocReceiverProperties
+          OsIocFunctionImplementationKind: FUNCTION
+          OsIocReceivingOsApplicationRef: /Ecuc/Os/KT_osap2
+        IOC_DEQUE_SND:
+          DefinitionRef: OsIocSenderProperties
+          OsIocFunctionImplementationKind: FUNCTION
+          OsIocSendingOsApplicationRef: /Ecuc/Os/KT_osap1
+
+IMPLEMENTATION-DATA-TYPE:
+  uint8:
+    CATEGORY: VALUE
Index: /atk2-sc3_fl850f1l/arch/ccrh/sample/sample2.c
===================================================================
--- /atk2-sc3_fl850f1l/arch/ccrh/sample/sample2.c	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ccrh/sample/sample2.c	(revision 117)
@@ -0,0 +1,1179 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2004-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)~(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: sample2.c 181 2015-06-12 10:02:03Z t_ishikawa $
+ */
+
+/*
+ *		非信頼OSアプリケーション所属サンプルプログラムの本体
+ *
+ *  サンプルプログラムの動作はsample1.cのコメント参照
+ *  本ファイルは非信頼OSアプリケーションに所属している
+ *  オブジェクトを記述している
+ */
+
+#include "sample.h"
+#include "sample2.h"
+#include "Ioc.h"
+
+#define GetHwCnt(x, y)
+
+/*
+ *  内部関数プロトタイプ宣言
+ */
+uint8 GetCommand(void);
+void PutActTsk(uint8 task_no);
+void PutActNonPriTsk(void);
+void PutTermTsk(uint8 task_no);
+void PutChainTsk(uint8 from_task_no, uint8 to_task_no);
+void PutSchedule(void);
+void PutTaskID(void);
+void PutTaskState(uint8 task_no);
+void PutDisAllInt(void);
+void PutSusAllInt(void);
+void PutSusOSInt(void);
+void PutHwCnt3(void);
+void PutGetCntRes(void);
+void PutGetTskRes(void);
+void PutRelTskRes(void);
+void PutSetEvt(uint8 task_no);
+void PutClrEvt(uint8 task_no);
+void PutGetEvt(uint8 task_no);
+void PutWaitEvt(uint8 task_no);
+void PutArmBase(void);
+void PutArmTick(void);
+void PutSetRel(uint8 alarm_no, uint8 tick_no, uint8 cycle_no);
+void PutCanArm(void);
+void PutAppMode(void);
+void schedule_table_sample_routine(void);
+
+TASK(IocTask1);
+TASK(IocTask2);
+static void IocProk1(void);
+static uint8 GetCommandNoWait2(void);
+
+/*
+ *  APIエラーログマクロ
+ *
+ *  ErrorHookが有効の場合はErrorHookから
+ *  エラーログを出力し, ErrorHookが無効の場合は
+ *  以下のマクロよりエラーログ出力を行う
+ */
+#if defined(CFG_USE_ERRORHOOK)
+#define error_log(api)	(api)
+#define error_log_ioc(api)	(api)
+#else /* !defined( CFG_USE_ERRORHOOK ) */
+#define	error_log(api)										   \
+	{														   \
+		StatusType ercd;									   \
+		ercd = api;     /* 各API実行 */						   \
+		if (ercd != E_OK) {									   \
+			syslog(LOG_INFO, "Error:%d", atk2_strerror(ercd)); \
+		}													   \
+	}
+
+#define	error_log_ioc(api)										   \
+	{															   \
+		StatusType ercd;										   \
+		ercd = api;     /* 各API実行 */							   \
+		if (ercd != E_OK) {										   \
+			syslog(LOG_INFO, "Error:%d", atk2_ioc_strerror(ercd)); \
+		}														   \
+	}
+#endif /* defined( CFG_USE_ERRORHOOK ) */
+
+/*
+ *  内部データバッファ
+ */
+volatile uint8				command_tbl[14]; /* コマンド引渡しテーブル */
+
+/*
+ *  内部定数データテーブル
+ */
+/* 無効イベントマスク値 */
+#define invalid_mask	(EventMaskType) (0)
+
+/* イベントマスクテーブル */
+static const EventMaskType	event_mask_tbl[5] = {
+	invalid_mask,
+	T2Evt,
+	T3Evt,
+	invalid_mask,
+	invalid_mask
+};
+
+/* タスクIDテーブル */
+static const TaskType		task_id_tbl[14] = {
+	Task1,
+	Task2,
+	Task3,
+	Task4,
+	Task5,
+	Task6,
+	Task7,
+	Task8,
+	Task9,
+	Task10,
+	Task11,
+	Task12,
+	Task13,
+	Task14
+};
+
+/* アラームIDテーブル */
+static const AlarmType		alarm_id_tbl[2] = {
+	ActTskArm,
+	SetEvtArm
+};
+
+/* ティック値テーブル */
+static const TickType		tick_tbl[2] = {
+	(TickType) 500,
+	(TickType) 900
+};
+
+/* サイクル値テーブル */
+static const TickType		cycle_tbl[2] = {
+	(TickType) 0,
+	(TickType) 500
+};
+
+/* イベントマスク名文字列テーブル */
+static const char8			*event_name_tbl[5] = {
+	"Invalid",
+	"T2Evt",
+	"T3Evt",
+	"Invalid",
+	"Invalid"
+};
+
+/* タスク名文字列テーブル */
+static const char8			*task_name_tbl[14] = {
+	"Task1",
+	"Task2",
+	"Task3",
+	"Task4",
+	"Task5",
+	"Task6",
+	"Task7",
+	"Task8",
+	"Task9",
+	"Task10",
+	"Task11",
+	"Task12"
+	"Task13"
+	"Task14"
+};
+
+/* タスク状態文字列テーブル */
+static const char8			*task_state_tbl[4] = {
+	"SUSPENDED",
+	"RUNNING",
+	"READY",
+	"WAITING"
+};
+
+/* アラーム名文字列テーブル */
+static const char8			*alarm_name_tbl[2] = {
+	"ActTskArm",
+	"SetEvtArm"
+};
+
+#pragma section sample1.stack
+StackType stack_1[COUNT_STK_T(0x200)];
+#pragma section default
+#pragma section kernel
+StackType stack_2[COUNT_STK_T(0x200)];
+#pragma section default
+
+/*
+ *  最高優先度タスク
+ *
+ *  各タスクのプリエンプト確認用
+ */
+TASK(HighPriorityTask)
+{
+	syslog(LOG_INFO, "HighPriorityTask ACTIVATE");
+	error_log(TerminateTask());
+}   /* TASK( HighPriorityTask ) */
+
+/*
+ *  並列実行タスク1
+ */
+TASK(Task1)
+{
+	TaskProk(0U);
+}   /* TASK( Task1 ) */
+
+
+/*
+ *  並列実行タスク2
+ */
+TASK(Task2)
+{
+	TaskProk(1U);
+}   /* TASK( Task2 ) */
+
+
+/*
+ *  並列実行タスク3
+ */
+TASK(Task3)
+{
+	TaskProk(2U);
+}   /* TASK( Task3 ) */
+
+
+/*
+ *  並列実行タスク4
+ */
+TASK(Task4)
+{
+	TaskProk(3U);
+}   /* TASK( Task4 ) */
+
+
+/*
+ *  並列実行タスク5
+ */
+TASK(Task5)
+{
+	TaskProk(4U);
+}   /* TASK( Task5 ) */
+
+
+/*
+ *  並列実行タスク内部処理
+ *
+ *  メインタスクから通知されたコマンドごとの処理実行
+ */
+extern uint8 sbss_test;
+extern uint8 sdata_test;
+void
+TaskProk(uint8 task_no)
+{
+	uint8 command;          /* コマンド退避バッファ */
+
+	/*
+	 *  タスク起動ログ出力
+	 */
+	syslog(LOG_INFO, "%s ACTIVATE", task_name_tbl[task_no]);
+	syslog(LOG_INFO, "sbss_test is %d", sbss_test);
+	sbss_test++;
+
+	/*
+	 *  コマンド実行ループ
+	 */
+	while (1) {
+
+		/*
+		 *  コマンド取得
+		 */
+		while (command_tbl[task_no] == '\0') {
+		}
+		command = command_tbl[task_no];
+		command_tbl[task_no] = 0U;
+
+		/*
+		 *  コマンド判定
+		 */
+		switch (command) {
+		case 'A':
+			PutTermTsk(task_no);
+			break;
+		case '!':
+		case '"':
+		case '#':
+		case '$':
+		case '%':
+			PutChainTsk(task_no, (command - '!'));
+			break;
+		case 'z':
+			PutTaskID();
+			break;
+		case 'k':
+			PutGetTskRes();
+			break;
+		case 'K':
+			PutRelTskRes();
+			break;
+		case 'i':
+			PutGetCntRes();
+			break;
+		case 'w':
+			if (task_no < 5U) {
+				PutClrEvt(task_no);
+			}
+			break;
+		case 'W':
+			if (task_no < 5U) {
+				PutWaitEvt(task_no);
+			}
+			break;
+		default:
+			/* 上記のコマンド以外の場合，処理は行わない */
+			break;
+		}
+	}
+}   /* TaskProk */
+
+/*
+ *  コマンド受信処理
+ */
+uint8
+GetCommand(void)
+{
+	uint8 command;          /* コマンド受信バッファ */
+
+	/*
+	 *  コマンドを受信するまでループ
+	 */
+	command = '\0';
+	do {
+		WaitEvent(MainEvt);     /* 10msウェイト */
+		ClearEvent(MainEvt);
+		RecvPolSerialChar(&command);    /* 受信バッファポーリング */
+		if (command == '\n') {
+			command = '\0';
+		}
+	} while (command == '\0');
+
+
+	return(command);
+}   /* GetCommand */
+
+/*
+ *  ActivateTask 実行・ログ出力処理
+ */
+void
+PutActTsk(uint8 task_no)
+{
+	struct parameter_struct local;
+
+	syslog(LOG_INFO, "Call ActivateTask(%s)", task_name_tbl[task_no]);
+
+	if (task_no < 5U) {
+		error_log(ActivateTask(task_id_tbl[task_no]));
+	}
+	else {
+		local.task_no = task_id_tbl[task_no];
+		CallTrustedFunction(tfnt4, &local); /* ActivateTask(task_name_tbl[task_no]) */
+	}
+
+}   /* PutActTsk	*/
+
+/*
+ *  ActivateTask 実行(NonPriTask)・ログ出力処理
+ */
+void
+PutActNonPriTsk(void)
+{
+	struct parameter_struct local;
+
+	syslog(LOG_INFO, "Call ActivateTask(NonPriTask)");
+
+	local.task_no = NonPriTask;
+	CallTrustedFunction(tfnt4, &local); /* ActivateTask(NonPriTask) */
+
+}   /* PutActNonPriTsk	*/
+
+/*
+ *  TerminateTask 実行・ログ出力処理
+ */
+void
+PutTermTsk(uint8 task_no)
+{
+	StatusType ercd;        /* エラーコード */
+
+	syslog(LOG_INFO, "%s TERMINATE", task_name_tbl[task_no]);
+
+	ercd = TerminateTask();
+	ShutdownOS(ercd);
+}
+
+/*
+ *  ChainTask 実行・ログ出力処理
+ */
+void
+PutChainTsk(uint8 from_task_no, uint8 to_task_no)
+{
+	StatusType ercd;            /* エラーコード */
+
+	syslog(LOG_INFO, "Call ChainTask(%s)", task_name_tbl[to_task_no]);
+	syslog(LOG_INFO, "%s TERMINATE", task_name_tbl[from_task_no]);
+
+	ercd = ChainTask(task_id_tbl[to_task_no]);
+	if (ercd == E_OS_LIMIT) {
+		syslog(LOG_INFO, "Call TerminateTask()");
+		syslog(LOG_INFO, "Because of ChainTask E_OS_LIMIT return");
+		ercd = TerminateTask();
+	}
+	ShutdownOS(ercd);
+}   /* PutChainTsk */
+
+/*
+ *  Schedule 実行・ログ出力処理
+ */
+void
+PutSchedule(void)
+{
+	syslog(LOG_INFO, "Call ActivateTask(HighPriorityTask)");
+
+	error_log(ActivateTask(HighPriorityTask));
+	syslog(LOG_INFO, "Call Schedule()");
+
+	error_log(Schedule());
+	syslog(LOG_INFO, "Retrun Schedule()");
+}   /* PutSchedule	*/
+
+/*
+ *  GetTaskID 実行・ログ出力処理
+ */
+void
+PutTaskID(void)
+{
+	TaskType task_id;           /* タスクID取得バッファ */
+
+	error_log(GetTaskID(&task_id));
+
+	syslog(LOG_INFO, "TaskID:%d", task_id);
+}   /* PutTaskID	*/
+
+/*
+ *  GetTaskState 実行・ログ出力処理
+ *  Task1~Task5，Task7取得時エラーとならない
+ *  Task6取得時エラーとなる
+ */
+void
+PutTaskState(uint8 task_no)
+{
+	TaskStateType state;        /* タスクID取得バッファ */
+
+	error_log(GetTaskState(task_id_tbl[task_no], &state));
+
+	syslog(LOG_INFO, task_name_tbl[task_no]);
+	syslog(LOG_INFO, " State:%s", task_state_tbl[state]);
+}   /* PutTaskState	*/
+
+/*
+ *  DisableAllInterrupts/EnableAllInterrupts 実行・ログ出力処理
+ */
+void
+PutDisAllInt(void)
+{
+	syslog(LOG_INFO, "Call DisableAllInterrupts");
+
+	DisableAllInterrupts();
+
+	PutHwCnt3();
+	syslog(LOG_INFO, "Call EnableAllInterrupts");
+
+	EnableAllInterrupts();
+}   /* PutDisAllInt	*/
+
+/*
+ *  SuspendAllInterrupts/ResumeAllInterrupts 実行・ログ出力処理
+ */
+void
+PutSusAllInt(void)
+{
+	syslog(LOG_INFO, "Call SuspendAllInterrupts");
+
+	SuspendAllInterrupts();
+
+	PutHwCnt3();
+	syslog(LOG_INFO, "Call SuspendAllInterrupts");
+
+	SuspendAllInterrupts();
+
+	PutHwCnt3();
+	syslog(LOG_INFO, "Call ResumeAllInterrupts");
+
+	ResumeAllInterrupts();
+
+	PutHwCnt3();
+	syslog(LOG_INFO, "Call ResumeAllInterrupts");
+
+	ResumeAllInterrupts();
+}   /* PutSusAllInt	*/
+
+/*
+ *  SuspendOSInterrupts/ResumeOSInterrupts 実行・ログ出力処理
+ */
+void
+PutSusOSInt(void)
+{
+	syslog(LOG_INFO, "Call SuspendOSInterrupts");
+
+	SuspendOSInterrupts();
+
+	PutHwCnt3();
+	syslog(LOG_INFO, "Call SuspendOSInterrupts");
+
+	SuspendOSInterrupts();
+
+	PutHwCnt3();
+	syslog(LOG_INFO, "Call SuspendAllInterrupts");
+
+	SuspendAllInterrupts();
+
+	PutHwCnt3();
+	syslog(LOG_INFO, "Call ResumeAllInterrupts");
+
+	ResumeAllInterrupts();
+
+	PutHwCnt3();
+	syslog(LOG_INFO, "Call ResumeOSInterrupts");
+
+	ResumeOSInterrupts();
+
+	PutHwCnt3();
+	syslog(LOG_INFO, "Call ResumeOSInterrupts");
+
+	ResumeOSInterrupts();
+}   /* PutSusOSInt */
+
+/*
+ *  割込み動作テスト用HWカウンタ値のログ出力処理
+ */
+void
+PutHwCnt3(void)
+{
+	uint32	isr1_cnt = 0U;      /* C1ISR カウント値取得バッファ */
+	uint32	isr2_cnt = 0U;      /* C2ISR カウント値取得バッファ */
+	uint8	cnt;                /* 出力回数カウンタ */
+
+	for (cnt = 0U; cnt < 3U; cnt++) {
+		GetHwCnt(&isr1_cnt, &isr2_cnt);
+		syslog(LOG_INFO, "C1ISR Cnt:%d, C2ISR Cnt:%d",
+			   isr1_cnt, isr2_cnt);
+	}
+}   /* PutHwCnt3 */
+
+/*
+ *  GetResource/ReleaseResource 実行(割込みレベル)・ログ出力処理
+ */
+void
+PutGetCntRes(void)
+{
+	syslog(LOG_INFO, "Call GetResource(CntRes)");
+	error_log(GetResource(CntRes));
+
+	PutHwCnt3();
+	syslog(LOG_INFO, "Call ReleaseResource(CntRes)");
+
+	error_log(ReleaseResource(CntRes));
+}   /* PutGetCntRes	*/
+
+/*
+ *  GetResource 実行(タスクレベル)・ログ出力処理
+ */
+void
+PutGetTskRes(void)
+{
+	syslog(LOG_INFO, "Call GetResource(TskLevelRes)");
+
+	error_log(GetResource(TskLevelRes));
+}   /* PutGetTskRes */
+
+/*
+ *  ReleaseResource 実行(タスクレベル)・ログ出力処理
+ */
+void
+PutRelTskRes(void)
+{
+	syslog(LOG_INFO, "Call ReleaseResource(TskLevelRes)");
+
+	error_log(ReleaseResource(TskLevelRes));
+}
+
+/*
+ *  SetEvent 実行・ログ出力処理
+ */
+void
+PutSetEvt(uint8 task_no)
+{
+	syslog(LOG_INFO, "Call SetEvent(%s, %s)",
+		   task_name_tbl[task_no], event_name_tbl[task_no]);
+
+	error_log(SetEvent(task_id_tbl[task_no], event_mask_tbl[task_no]));
+}   /* PutSetEvt */
+
+/*
+ *  ClearEvent 実行・ログ出力処理
+ */
+void
+PutClrEvt(uint8 task_no)
+{
+	syslog(LOG_INFO, "Call ClearEvent(%s)", event_name_tbl[task_no]);
+
+	error_log(ClearEvent(event_mask_tbl[task_no]));
+}   /* PutClrEvt */
+
+/*
+ *  GetEvent 実行・ログ出力処理
+ */
+void
+PutGetEvt(uint8 task_no)
+{
+	EventMaskType mask;             /* イベントマスク取得バッファ */
+
+	error_log(GetEvent(task_id_tbl[task_no], &mask));
+
+	syslog(LOG_INFO, "%s Event Mask:0x%x", task_name_tbl[task_no], mask);
+}   /* PutGetEvt */
+
+/*
+ *  WaitEvent 実行・ログ出力処理
+ */
+void
+PutWaitEvt(uint8 task_no)
+{
+	syslog(LOG_INFO, "Call WaitEvent(%s)", event_name_tbl[task_no]);
+
+	error_log(WaitEvent(event_mask_tbl[task_no]));
+	syslog(LOG_INFO, "Return WaitEvent(%s)", event_name_tbl[task_no]);
+}   /* PutWaitEvt */
+
+/*
+ *  GetAlarmBase 実行・ログ出力処理
+ */
+void
+PutArmBase(void)
+{
+	AlarmBaseType info;             /* アラームベース情報取得バッファ */
+
+	error_log(GetAlarmBase(MainCycArm, &info));
+
+	syslog(LOG_INFO, "MainCycArm Base:");
+	syslog(LOG_INFO, "\tMAXALLOWEDVALUE=%d", info.maxallowedvalue);
+	syslog(LOG_INFO, "\tTICKSPERBASE=%d", info.ticksperbase);
+	syslog(LOG_INFO, "\tMINCYCLE=%d", info.mincycle);
+}   /* PutArmBase */
+
+/*
+ *  PutArmTick 実行・ログ出力処理
+ */
+void
+PutArmTick(void)
+{
+	TickType tick;              /* 残りティック取得バッファ */
+
+	error_log(GetAlarm(MainCycArm, &tick));
+
+	syslog(LOG_INFO, "MainCycArm Tick:%d", tick);
+}   /* PutArmTick */
+
+/*
+ *  SetRelAlarm 実行・ログ出力処理
+ */
+void
+PutSetRel(uint8 alarm_no, uint8 tick_no, uint8 cycle_no)
+{
+	syslog(LOG_INFO, "Call SetRelAlarm(%s, %d, %d)",
+		   alarm_name_tbl[alarm_no], tick_tbl[tick_no], cycle_tbl[cycle_no]);
+
+	error_log(SetRelAlarm(alarm_id_tbl[alarm_no],
+						  tick_tbl[tick_no], cycle_tbl[cycle_no]));
+}   /* PutSetRel	*/
+
+/*
+ *  CancelAlarm 実行・ログ出力処理
+ */
+void
+PutCanArm(void)
+{
+	syslog(LOG_INFO, "Call CancelAlarm(ActTskArm)");
+
+	error_log(CancelAlarm(ActTskArm));
+}   /* PutCanArm */
+
+/*
+ *  GetActiveApplicationMode 実行・ログ出力処理
+ */
+void
+PutAppMode(void)
+{
+	switch (GetActiveApplicationMode()) {
+	case AppMode1:
+		syslog(LOG_INFO, "ActiveApplicationMode:AppMode1");
+		break;
+	case AppMode2:
+		syslog(LOG_INFO, "ActiveApplicationMode:AppMode2");
+		break;
+	case AppMode3:
+		syslog(LOG_INFO, "ActiveApplicationMode:AppMode3");
+		break;
+	default:
+		syslog(LOG_INFO, "ActiveApplicationMode:Non");
+		break;
+	}
+}   /* PutAppMode */
+
+/*
+ *  スケジュールテーブルテスト用メインループ
+ *
+ *  ユーザコマンドの受信と，コマンドごとの処理実行
+ */
+void
+schedule_table_sample_routine(void)
+{
+	uint8					command;                /* コマンドバッファ */
+	ScheduleTableType		scheduletable_id;       /* コマンド引数バッファ */
+	ScheduleTableStatusType	status;                 /* スケジュール状態引数 */
+	TickType				val;                    /* カウンタの現在値 */
+	uint8					flag = FALSE;           /* リターンするか判定するためのフラグ */
+
+	syslog(LOG_INFO, "\t[ schedule table sample routine IN, press 't' OUT ]");
+	syslog(LOG_INFO, "");
+
+	scheduletable_id = scheduletable1;
+	/*
+	 *  コマンド実行ループ
+	 */
+	while (1) {
+
+		WaitEvent(MainEvt);     /* 10msの作業時間待ち */
+		ClearEvent(MainEvt);
+
+		/*
+		 *  入力コマンド取得
+		 */
+		syslog(LOG_INFO, "Input Command:");
+		command = GetCommand();
+		syslog(LOG_INFO, "%c", command);
+
+		/*
+		 *  コマンド判定
+		 */
+		switch (command) {
+		case '1':
+			scheduletable_id = scheduletable1;
+			break;
+		case '2':
+			scheduletable_id = scheduletable2;
+			break;
+		case 'i':
+			IncrementCounter(SchtblSampleCnt);
+			val = 0U;
+			GetCounterValue(SchtblSampleCnt, &val);
+			if ((val % 5U) == 0U) {
+				syslog(LOG_INFO, "\tGetCounterValue(SchtblSampleCnt ) = %d", val);
+			}
+			break;
+		case 's':
+			syslog(LOG_INFO, "\tStartScheduleTableRel(scheduletable%d, 5)", scheduletable_id + 1U);
+			error_log(StartScheduleTableRel(scheduletable_id, 5U));
+			break;
+		case 'S':
+			syslog(LOG_INFO, "\tStartScheduleTableAbs(scheduletable%d, 5)", scheduletable_id + 1U);
+			error_log(StartScheduleTableAbs(scheduletable_id, 5U));
+			break;
+		case 'f':
+			syslog(LOG_INFO, "\tStopScheduleTable(scheduletable%d)", scheduletable_id + 1U);
+			error_log(StopScheduleTable(scheduletable_id));
+			break;
+		case 'n':
+			syslog(LOG_INFO, "\tNextScheduleTable(scheduletable%d, scheduletable%d)", scheduletable_id + 1U, scheduletable2 + 1U);
+			error_log(NextScheduleTable(scheduletable_id, scheduletable2));
+			break;
+		case 'N':
+			syslog(LOG_INFO, "\tNextScheduleTable(scheduletable%d, scheduletable%d)", scheduletable_id + 1U, scheduletable1 + 1U);
+			error_log(NextScheduleTable(scheduletable_id, scheduletable1));
+			break;
+		case 'g':
+			status = 0U;
+			syslog(LOG_INFO, "\tGetScheduleTableStatus(scheduletable%d, status)", scheduletable_id + 1U);
+			error_log(GetScheduleTableStatus(scheduletable_id, &status));
+			syslog(LOG_INFO, "\tstatus = %d", status);
+			break;
+		case 't':
+			syslog(LOG_INFO, "\t[ schedule table sample routine OUT, press 't' IN ]");
+			flag = TRUE;
+			break;
+		default:
+			/* コマンドが上記のケース以外なら処理は行わない */
+			break;
+		}
+		/*  フラグが立っていた場合，リターンする  */
+		if (flag == TRUE) {
+			return;
+		}
+	}
+}   /* schedule_table_sample_routine */
+
+/*
+ *  スケジュールテーブル確認用タスク6
+ */
+TASK(Task10)
+{
+	/*
+	 *  タスク起動ログ出力
+	 */
+	syslog(LOG_INFO, "Task10 ACTIVATE");
+	WaitEvent(T10Evt);
+	syslog(LOG_INFO, "Task10 FINISH");
+	TerminateTask();
+}   /* TASK( Task10 ) */
+
+
+/*
+ *  スケジュールテーブル確認用タスク7
+ */
+TASK(Task11)
+{
+	/*
+	 *  タスク起動ログ出力
+	 */
+	syslog(LOG_INFO, "Task11 ACTIVATE");
+	WaitEvent(T11Evt);
+	syslog(LOG_INFO, "Task11 FINISH");
+	TerminateTask();
+}   /* TASK( Task11 ) */
+
+
+/*
+ *  スケジュールテーブル確認用タスク8
+ */
+TASK(Task12)
+{
+	/*
+	 *  タスク起動ログ出力
+	 */
+	syslog(LOG_INFO, "Task12 ACTIVATE");
+	WaitEvent(T12Evt);
+	syslog(LOG_INFO, "Task12 FINISH");
+	TerminateTask();
+}   /* TASK( Task12 ) */
+
+/*
+ *  信頼関数動作確認用タスク11
+ */
+TASK(Task13)
+{
+	struct parameter_struct	local;
+	sint32					pp = 10;
+
+	local.name1 = (sint32 *) &pp;
+	local.name2 = 2;
+
+	CallTrustedFunction(tfnt1, &local); /* 10*2 + 2 = 22 */
+	syslog(LOG_NOTICE, "Task13 tfnt1 ret = %d", local.return_value);
+
+	TerminateTask();
+}   /* TASK( Task13 ) */
+
+/*
+ *  信頼関数動作確認用タスク12
+ */
+TASK(Task14)
+{
+	struct parameter_struct	local;
+	sint32					pp = 20;
+
+	local.name1 = (sint32 *) &pp;
+	local.name2 = 4;
+
+	CallTrustedFunction(tfnt2, &local); /* 20*4 + 4 = 84 */
+	syslog(LOG_NOTICE, "Task14 tfnt2 ret = %d", local.return_value);
+
+}   /* TASK( Task14 ) */
+
+/*
+ *  非信頼OSアプリケーション間アクセス権確認用タスク
+ */
+TASK(Task8)
+{
+	TaskStateType state;
+	/*
+	 *  タスク起動ログ出力
+	 */
+	syslog(LOG_INFO, "Task8 ACTIVATE");
+	syslog(LOG_INFO, "sbss_test is %d", sbss_test);
+	sbss_test++;
+	if (E_OK == GetTaskState(Task1, &state)) {
+		syslog(LOG_INFO, "GetTaskState(Task1, &state), state = %s", task_state_tbl[state]);
+	}
+	syslog(LOG_INFO, "Task8 FINISH");
+	TerminateTask();
+}   /* TASK( Task8 ) */
+
+/*
+ *  非信頼OSアプリケーション間アクセス権確認用タスク
+ */
+TASK(Task9)
+{
+	TaskStateType state;
+	/*
+	 *  タスク起動ログ出力
+	 */
+	syslog(LOG_INFO, "Task9 ACTIVATE");
+	syslog(LOG_INFO, "sdata_test is %d", sdata_test);
+	sdata_test++;
+	if (E_OK == GetTaskState(Task2, &state)) {
+		syslog(LOG_INFO, "GetTaskState(Task2, &state), state = %s", task_state_tbl[state]);
+	}
+	syslog(LOG_INFO, "Task9 FINISH");
+	TerminateTask();
+}   /* TASK( Task8 ) */
+
+/*
+ *  IOC確認用タスク1
+ */
+TASK(IocTask1)
+{
+	syslog(LOG_INFO, "IocTask1 ACTIVATE");
+
+	IocProk1();
+
+	syslog(LOG_INFO, "IocTask1 TERMINATE");
+
+	TerminateTask();
+}   /* TASK( IocTask1 ) */
+
+/*
+ *  IOC確認用タスク2
+ */
+TASK(IocTask2)
+{
+	syslog(LOG_INFO, "IocTask2 ACTIVATE");
+
+	IocProk1();
+
+	syslog(LOG_INFO, "IocTask2 TERMINATE");
+
+	TerminateTask();
+}   /* TASK( IocTask2 ) */
+
+/*
+ *  IOC確認用タスク内部処理
+ *
+ */
+static void
+IocProk1(void)
+{
+	uint8			api;        /* コマンド受信バッファ(API) */
+	uint8			data[3];    /* 通信バッファ */
+
+	volatile sint32 i;
+	Std_ReturnType	ercd;
+
+	syslog(LOG_INFO, "Select IOC API:");
+	api = GetCommandNoWait2();
+#ifndef OMIT_ECHO
+	syslog(LOG_INFO, "%c", api);
+#endif /* OMIT_ECHO */
+
+	switch (api) {
+	case '1':
+		syslog(LOG_INFO, "Input send data:");
+		data[0] = GetCommandNoWait2();
+#ifndef OMIT_ECHO
+		syslog(LOG_INFO, "%c", data[0]);
+#endif /* OMIT_ECHO */
+		syslog(LOG_INFO, "Call IocSend_IOC_QUE_0");
+		error_log_ioc(IocSend_IOC_QUE_0(data[0]));
+		break;
+	case '2':
+		syslog(LOG_INFO, "Input send data:");
+		data[0] = GetCommandNoWait2();
+#ifndef OMIT_ECHO
+		syslog(LOG_INFO, "%c", data[0]);
+#endif /* OMIT_ECHO */
+
+		syslog(LOG_INFO, "Call IocSend_IOC_QUE_1");
+		error_log_ioc(IocSend_IOC_QUE_1(data[0]));
+		break;
+	case '3':
+		for (i = 0; i < 3U; i++) {
+			syslog(LOG_INFO, "Input send data%d:", i);
+			data[i] = GetCommandNoWait2();
+#ifndef OMIT_ECHO
+			syslog(LOG_INFO, "%c", data[i]);
+#endif /* OMIT_ECHO */
+		}
+		syslog(LOG_INFO, "Call IocWriteGroup_IOC_DEQUE");
+		error_log_ioc(IocWriteGroup_IOC_DEQUE(data[0], data[1], data[2]));
+		break;
+	case '4':
+		syslog(LOG_INFO, "Call IocReceive_IOC_QUE");
+		ercd = IocReceive_IOC_QUE(&data[0]);
+#if !defined(CFG_USE_ERRORHOOK)
+		if (ercd != E_OK) {
+			syslog(LOG_INFO, "Error:%d", atk2_ioc_strerror(ercd));
+		}
+#endif /* !defined( CFG_USE_ERRORHOOK ) */
+		if ((ercd == IOC_E_OK) || (ercd == IOC_E_LOST_DATA)) {
+			syslog(LOG_INFO, "recv data:%c", data[0]);
+		}
+		break;
+	case '5':
+		syslog(LOG_INFO, "Call IocReadGroup_IOC_DEQUE");
+		error_log_ioc(IocReadGroup_IOC_DEQUE(&data[0], &data[1], &data[2]));
+		for (i = 0; i < 3U; i++) {
+			syslog(LOG_INFO, "recv data%d:%c", i, data[i]);
+		}
+		break;
+	case '6':
+		syslog(LOG_INFO, "Call IocEmptyQueue_IOC_QUE");
+		error_log_ioc(IocEmptyQueue_IOC_QUE());
+		break;
+	default:
+		syslog(LOG_INFO, "undefined command");
+		break;
+	}
+}   /* IocProk1 */
+
+/*
+ *  コマンド受信処理(ウェイト無し)
+ */
+uint8
+GetCommandNoWait2(void)
+{
+	uint8 command;          /* コマンド受信バッファ */
+
+	/*
+	 *  コマンドを受信するまでループ
+	 */
+	command = '\0';
+	do {
+		RecvPolSerialChar(&command);    /* 受信バッファポーリング */
+		if (command == '\n') {
+			command = '\0';
+		}
+	} while (command == '\0');
+
+
+	return(command);
+}   /* GetCommandNoWait2 */
+
+
+/*
+ *  ActivateTask(IOC用) 実行・ログ出力処理
+ */
+void
+PutActIocTsk(void)
+{
+	uint8 command;          /* コマンド受信バッファ */
+
+	syslog(LOG_INFO, "Select IocTask:");
+	command = GetCommand();
+#ifndef OMIT_ECHO
+	syslog(LOG_INFO, "%c", command);
+#endif /* OMIT_ECHO */
+
+	switch (command) {
+	case '1':
+		error_log(ActivateTask(IocTask1));
+		break;
+	case '2':
+		error_log(ActivateTask(IocTask2));
+		break;
+	case '3':
+		error_log(CallTrustedFunction(actioctask3, NULL));
+		break;
+	case '4':
+		error_log(CallTrustedFunction(actioctask4, NULL));
+		break;
+	default:
+		syslog(LOG_INFO, "undefined command");
+		break;
+	}
+}   /* PutActIocTsk	*/
+
+TRUSTEDFUNCTION(TRUSTED_actioctask3, FunctionIndex, FunctionParams)
+{
+	error_log(ActivateTask(IocTask3));
+
+	return(E_OK);
+}
+
+TRUSTEDFUNCTION(TRUSTED_actioctask4, FunctionIndex, FunctionParams)
+{
+	error_log(ActivateTask(IocTask4));
+
+	return(E_OK);
+}
+
+
+/*
+ *  OSAP定義エラーフックルーチン
+ */
+#ifdef CFG_USE_OSAP_ERRORHOOK
+void
+ErrorHook_NT_osap2(StatusType Error)
+{
+	syslog(LOG_INFO, "ErrorHook_NT_osap2 Error:%s", atk2_strerror(Error));
+}
+#endif /* CFG_USE_OSAP_ERRORHOOK */
+
+/*
+ *  OSAP定義スタートアップフックルーチン
+ */
+#ifdef CFG_USE_OSAP_STARTUPHOOK
+void
+StartupHook_NT_osap2(void)
+{
+	syslog(LOG_INFO, "Sample StartupHook_NT_osap2!\n");
+}
+#endif /* CFG_USE_OSAP_STARTUPHOOK */
+
+/*
+ *  OSAP定義シャットダウンフックルーチン
+ */
+#ifdef CFG_USE_OSAP_SHUTDOWNHOOK
+void
+ShutdownHook_NT_osap2(StatusType Error)
+{
+	syslog(LOG_INFO, "Sample ShutdownHook_NT_osap2!\n");
+}
+#endif /* CFG_USE_OSAP_SHUTDOWNHOOK */
Index: /atk2-sc3_fl850f1l/arch/ccrh/sample/sample2.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/ccrh/sample/sample2.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ccrh/sample/sample2.h	(revision 117)
@@ -0,0 +1,73 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2011-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: sample2.h 115 2014-12-10 01:33:17Z t_ishikawa $
+ */
+
+/*
+ *		非信頼OSアプリケーション所属サンプルプログラムのヘッダファイル
+ */
+
+#ifndef TOPPERS_SAMPLE2_H
+#define TOPPERS_SAMPLE2_H
+
+#include "target_test.h"
+
+/*
+ *  関数のプロトタイプ宣言
+ */
+#ifndef TOPPERS_MACRO_ONLY
+
+extern StackType	stack_1[COUNT_STK_T(0x200)];
+extern StackType	stack_2[COUNT_STK_T(0x200)];
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_SAMPLE2_H */
Index: /atk2-sc3_fl850f1l/arch/ccrh/sample/sample_asm.asm
===================================================================
--- /atk2-sc3_fl850f1l/arch/ccrh/sample/sample_asm.asm	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ccrh/sample/sample_asm.asm	(revision 117)
@@ -0,0 +1,62 @@
+;/*
+ ;*  TOPPERS ATK2
+ ;*      Toyohashi Open Platform for Embedded Real-Time Systems
+ ;*      Automotive Kernel Version 2
+ ;*
+ ;*  Copyright (C) 2012-2015 by Center for Embedded Computing Systems
+ ;*              Graduate School of Information Science, Nagoya Univ., JAPAN
+ ;*  Copyright (C) 2012-2013 by FUJISOFT INCORPORATED, JAPAN
+ ;*  Copyright (C) 2012-2013 by FUJITSU VLSI LIMITED, JAPAN
+ ;*  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ ;*  Copyright (C) 2012-2013 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ ;*  Copyright (C) 2012-2013 by Renesas Electronics Corporation, JAPAN
+ ;*  Copyright (C) 2012-2013 by Sunny Giken Inc., JAPAN
+ ;*  Copyright (C) 2012-2013 by TOSHIBA CORPORATION, JAPAN
+ ;*  Copyright (C) 2012-2013 by Witz Corporation, JAPAN
+ ;*  Copyright (C) 2013 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プロジェクトを
+ ;*      免責すること．
+ ;*
+ ;*  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ ;*  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ ;*  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ ;*  用する者に対して，AUTOSARパートナーになることを求めている．
+ ;*
+ ;*  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ ;*  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ ;*  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ ;*  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ ;*  の責任を負わない．
+ ;*
+ ;*  $Id: start.asm 187 2015-06-25 03:39:04Z t_ishikawa $
+ ;*/
+
+;-----------------------------------------------------------------------------
+;	dummy section to avoid linker warning
+;-----------------------------------------------------------------------------
+	.section	"sample1.stack.bss", bss
+	.align 16
+.L.dummy.sample1.stack.bss:
+
Index: /atk2-sc3_fl850f1l/arch/ccrh/stdint.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/ccrh/stdint.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ccrh/stdint.h	(revision 117)
@@ -0,0 +1,57 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: stdint.h 164 2015-06-03 01:22:29Z t_ishikawa $
+ */
+
+/*
+ *		CC-RHはstdint.hがないため，必要なもののみ定義
+ */
+
+#ifndef TOPPERS_STDINT_H
+#define TOPPERS_STDINT_H
+
+#define INT64_MIN 	(-9223372036854775807LL-1LL)
+#define INT64_MAX 	 9223372036854775807LL
+#define UINT64_MAX 	18446744073709551615ULL
+
+#endif /* TOPPERS_STDINT_H */
Index: /atk2-sc3_fl850f1l/arch/ccrh/tool_cfg1_out.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/ccrh/tool_cfg1_out.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ccrh/tool_cfg1_out.h	(revision 117)
@@ -0,0 +1,71 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-13 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プロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: tool_cfg1_out.h 164 2015-06-03 01:22:29Z t_ishikawa $
+ */
+
+/*
+ *		cfg1_out.cをリンクするために必要なスタブの定義
+ */
+
+/*
+ *	CXコンパイラでは，条件によっては「意図せずインライン化が無効化される」
+ *	ケースが存在する．そのため，ヘッダファイルから呼び出される可能性のある
+ *	スタブを本ファイルで定義する．
+ */
+
+/*
+ *  counter.h
+ */
+const CounterType	tnum_hardcounter;
+CNTCB				cntcb_table[];
+const HWCNTINIB		hwcntinib_table[];
+
+/*
+ *  kernel_impl.h
+ */
+void
+internal_shutdownos(StatusType ercd)
+{
+}
+const char8			*fatal_file_name = NULL;
+sint32				fatal_line_num = 0;
Index: /atk2-sc3_fl850f1l/arch/ccrh/tool_svc.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/ccrh/tool_svc.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ccrh/tool_svc.h	(revision 117)
@@ -0,0 +1,558 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2014-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ã(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ *
+ *  $Id: tool_svc.h 182 2015-06-24 07:14:37Z t_ishikawa $
+ */
+
+/*  This file is generated from svc.def by gensvc_atk. */
+
+#ifndef TOPPERS_TOOL_SVC_H
+#define TOPPERS_TOOL_SVC_H
+
+#define SVC_TRAP(system_service) _trap_ ## system_service
+
+#ifndef TOPPERS_SVC_FUNCCALL
+#define StartOS _trap_StartOS
+#define ShutdownOS _trap_ShutdownOS
+#define ActivateTask _trap_ActivateTask
+#define TerminateTask _trap_TerminateTask
+#define ChainTask _trap_ChainTask
+#define Schedule _trap_Schedule
+#define GetTaskID _trap_GetTaskID
+#define GetTaskState _trap_GetTaskState
+#define EnableAllInterrupts _trap_EnableAllInterrupts
+#define DisableAllInterrupts _trap_DisableAllInterrupts
+#define ResumeAllInterrupts _trap_ResumeAllInterrupts
+#define SuspendAllInterrupts _trap_SuspendAllInterrupts
+#define ResumeOSInterrupts _trap_ResumeOSInterrupts
+#define SuspendOSInterrupts _trap_SuspendOSInterrupts
+#define GetISRID _trap_GetISRID
+#define DisableInterruptSource _trap_DisableInterruptSource
+#define EnableInterruptSource _trap_EnableInterruptSource
+#define GetResource _trap_GetResource
+#define ReleaseResource _trap_ReleaseResource
+#define SetEvent _trap_SetEvent
+#define ClearEvent _trap_ClearEvent
+#define GetEvent _trap_GetEvent
+#define WaitEvent _trap_WaitEvent
+#define GetAlarmBase _trap_GetAlarmBase
+#define GetAlarm _trap_GetAlarm
+#define SetRelAlarm _trap_SetRelAlarm
+#define SetAbsAlarm _trap_SetAbsAlarm
+#define CancelAlarm _trap_CancelAlarm
+#define IncrementCounter _trap_IncrementCounter
+#define GetCounterValue _trap_GetCounterValue
+#define GetElapsedValue _trap_GetElapsedValue
+#define CheckISRMemoryAccess _trap_CheckISRMemoryAccess
+#define CheckTaskMemoryAccess _trap_CheckTaskMemoryAccess
+#define CheckTaskAccess _trap_CheckTaskAccess
+#define CheckISRAccess _trap_CheckISRAccess
+#define CheckAlarmAccess _trap_CheckAlarmAccess
+#define CheckResourceAccess _trap_CheckResourceAccess
+#define CheckCounterAccess _trap_CheckCounterAccess
+#define CheckScheduleTableAccess _trap_CheckScheduleTableAccess
+#define CheckTaskOwnership _trap_CheckTaskOwnership
+#define CheckISROwnership _trap_CheckISROwnership
+#define CheckAlarmOwnership _trap_CheckAlarmOwnership
+#define CheckCounterOwnership _trap_CheckCounterOwnership
+#define CheckScheduleTableOwnership _trap_CheckScheduleTableOwnership
+#define GetApplicationID _trap_GetApplicationID
+#define CallTrustedFunction _trap_CallTrustedFunction
+#define GetApplicationState _trap_GetApplicationState
+#define GetActiveApplicationMode _trap_GetActiveApplicationMode
+#define StartScheduleTableRel _trap_StartScheduleTableRel
+#define StartScheduleTableAbs _trap_StartScheduleTableAbs
+#define StopScheduleTable _trap_StopScheduleTable
+#define NextScheduleTable _trap_NextScheduleTable
+#define GetScheduleTableStatus _trap_GetScheduleTableStatus
+#define GetFaultyContext _trap_GetFaultyContext
+#define ioc_send_generic _trap_ioc_send_generic
+#define ioc_write_generic _trap_ioc_write_generic
+#define ioc_receive_generic _trap_ioc_receive_generic
+#define ioc_read_generic _trap_ioc_read_generic
+#define ioc_empty_queue_generic _trap_ioc_empty_queue_generic
+#define AllowAccess _trap_AllowAccess
+#define TerminateApplication _trap_TerminateApplication
+#endif
+
+#ifndef TOPPERS_MACRO_ONLY
+
+#pragma inline _trap_StartOS
+LOCAL_INLINE void
+_trap_StartOS(AppModeType Mode)
+{
+	 CAL_SVC_1N(void, TFN_STARTOS, AppModeType, Mode);
+}
+
+#pragma inline _trap_ShutdownOS
+LOCAL_INLINE void
+_trap_ShutdownOS(StatusType Error)
+{
+	 CAL_SVC_1N(void, TFN_SHUTDOWNOS, StatusType, Error);
+}
+
+#pragma inline _trap_ActivateTask
+LOCAL_INLINE StatusType
+_trap_ActivateTask(TaskType TaskID)
+{
+	return CAL_SVC_1M(StatusType, TFN_ACTIVATETASK, TaskType, TaskID);
+}
+
+#pragma inline _trap_TerminateTask
+LOCAL_INLINE StatusType
+_trap_TerminateTask(void)
+{
+	return CAL_SVC_0M(StatusType, TFN_TERMINATETASK);
+}
+
+#pragma inline _trap_ChainTask
+LOCAL_INLINE StatusType
+_trap_ChainTask(TaskType TaskID)
+{
+	return CAL_SVC_1M(StatusType, TFN_CHAINTASK, TaskType, TaskID);
+}
+
+#pragma inline _trap_Schedule
+LOCAL_INLINE StatusType
+_trap_Schedule(void)
+{
+	return CAL_SVC_0M(StatusType, TFN_SCHEDULE);
+}
+
+#pragma inline _trap_GetTaskID
+LOCAL_INLINE StatusType
+_trap_GetTaskID(TaskRefType TaskID)
+{
+	return CAL_SVC_1M(StatusType, TFN_GETTASKID, TaskRefType, TaskID);
+}
+
+#pragma inline _trap_GetTaskState
+LOCAL_INLINE StatusType
+_trap_GetTaskState(TaskType TaskID, TaskStateRefType State)
+{
+	return CAL_SVC_2M(StatusType, TFN_GETTASKSTATE, TaskType, TaskID, TaskStateRefType, State);
+}
+
+#pragma inline _trap_EnableAllInterrupts
+LOCAL_INLINE void
+_trap_EnableAllInterrupts(void)
+{
+	 CAL_SVC_0N(void, TFN_ENABLEALLINTERRUPTS);
+}
+
+#pragma inline _trap_DisableAllInterrupts
+LOCAL_INLINE void
+_trap_DisableAllInterrupts(void)
+{
+	 CAL_SVC_0N(void, TFN_DISABLEALLINTERRUPTS);
+}
+
+#pragma inline _trap_ResumeAllInterrupts
+LOCAL_INLINE void
+_trap_ResumeAllInterrupts(void)
+{
+	 CAL_SVC_0N(void, TFN_RESUMEALLINTERRUPTS);
+}
+
+#pragma inline _trap_SuspendAllInterrupts
+LOCAL_INLINE void
+_trap_SuspendAllInterrupts(void)
+{
+	 CAL_SVC_0N(void, TFN_SUSPENDALLINTERRUPTS);
+}
+
+#pragma inline _trap_ResumeOSInterrupts
+LOCAL_INLINE void
+_trap_ResumeOSInterrupts(void)
+{
+	 CAL_SVC_0N(void, TFN_RESUMEOSINTERRUPTS);
+}
+
+#pragma inline _trap_SuspendOSInterrupts
+LOCAL_INLINE void
+_trap_SuspendOSInterrupts(void)
+{
+	 CAL_SVC_0N(void, TFN_SUSPENDOSINTERRUPTS);
+}
+
+#pragma inline _trap_GetISRID
+LOCAL_INLINE ISRType
+_trap_GetISRID(void)
+{
+	return CAL_SVC_0M(ISRType, TFN_GETISRID);
+}
+
+#pragma inline _trap_DisableInterruptSource
+LOCAL_INLINE StatusType
+_trap_DisableInterruptSource(ISRType DisableISR)
+{
+	return CAL_SVC_1M(StatusType, TFN_DISABLEINTERRUPTSOURCE, ISRType, DisableISR);
+}
+
+#pragma inline _trap_EnableInterruptSource
+LOCAL_INLINE StatusType
+_trap_EnableInterruptSource(ISRType EnableISR)
+{
+	return CAL_SVC_1M(StatusType, TFN_ENABLEINTERRUPTSOURCE, ISRType, EnableISR);
+}
+
+#pragma inline _trap_GetResource
+LOCAL_INLINE StatusType
+_trap_GetResource(ResourceType ResID)
+{
+	return CAL_SVC_1M(StatusType, TFN_GETRESOURCE, ResourceType, ResID);
+}
+
+#pragma inline _trap_ReleaseResource
+LOCAL_INLINE StatusType
+_trap_ReleaseResource(ResourceType ResID)
+{
+	return CAL_SVC_1M(StatusType, TFN_RELEASERESOURCE, ResourceType, ResID);
+}
+
+#pragma inline _trap_SetEvent
+LOCAL_INLINE StatusType
+_trap_SetEvent(TaskType TaskID, EventMaskType Mask)
+{
+	return CAL_SVC_2M(StatusType, TFN_SETEVENT, TaskType, TaskID, EventMaskType, Mask);
+}
+
+#pragma inline _trap_ClearEvent
+LOCAL_INLINE StatusType
+_trap_ClearEvent(EventMaskType Mask)
+{
+	return CAL_SVC_1M(StatusType, TFN_CLEAREVENT, EventMaskType, Mask);
+}
+
+#pragma inline _trap_GetEvent
+LOCAL_INLINE StatusType
+_trap_GetEvent(TaskType TaskID, EventMaskRefType Event)
+{
+	return CAL_SVC_2M(StatusType, TFN_GETEVENT, TaskType, TaskID, EventMaskRefType, Event);
+}
+
+#pragma inline _trap_WaitEvent
+LOCAL_INLINE StatusType
+_trap_WaitEvent(EventMaskType Mask)
+{
+	return CAL_SVC_1M(StatusType, TFN_WAITEVENT, EventMaskType, Mask);
+}
+
+#pragma inline _trap_GetAlarmBase
+LOCAL_INLINE StatusType
+_trap_GetAlarmBase(AlarmType AlarmID, AlarmBaseRefType Info)
+{
+	return CAL_SVC_2M(StatusType, TFN_GETALARMBASE, AlarmType, AlarmID, AlarmBaseRefType, Info);
+}
+
+#pragma inline _trap_GetAlarm
+LOCAL_INLINE StatusType
+_trap_GetAlarm(AlarmType AlarmID, TickRefType Tick)
+{
+	return CAL_SVC_2M(StatusType, TFN_GETALARM, AlarmType, AlarmID, TickRefType, Tick);
+}
+
+#pragma inline _trap_SetRelAlarm
+LOCAL_INLINE StatusType
+_trap_SetRelAlarm(AlarmType AlarmID, TickType increment, TickType cycle)
+{
+	return CAL_SVC_3M(StatusType, TFN_SETRELALARM, AlarmType, AlarmID, TickType, increment, TickType, cycle);
+}
+
+#pragma inline _trap_SetAbsAlarm
+LOCAL_INLINE StatusType
+_trap_SetAbsAlarm(AlarmType AlarmID, TickType start, TickType cycle)
+{
+	return CAL_SVC_3M(StatusType, TFN_SETABSALARM, AlarmType, AlarmID, TickType, start, TickType, cycle);
+}
+
+#pragma inline _trap_CancelAlarm
+LOCAL_INLINE StatusType
+_trap_CancelAlarm(AlarmType AlarmID)
+{
+	return CAL_SVC_1M(StatusType, TFN_CANCELALARM, AlarmType, AlarmID);
+}
+
+#pragma inline _trap_IncrementCounter
+LOCAL_INLINE StatusType
+_trap_IncrementCounter(CounterType CounterID)
+{
+	return CAL_SVC_1M(StatusType, TFN_INCREMENTCOUNTER, CounterType, CounterID);
+}
+
+#pragma inline _trap_GetCounterValue
+LOCAL_INLINE StatusType
+_trap_GetCounterValue(CounterType CounterID, TickRefType Value)
+{
+	return CAL_SVC_2M(StatusType, TFN_GETCOUNTERVALUE, CounterType, CounterID, TickRefType, Value);
+}
+
+#pragma inline _trap_GetElapsedValue
+LOCAL_INLINE StatusType
+_trap_GetElapsedValue(CounterType CounterID, TickRefType Value, TickRefType ElapsedValue)
+{
+	return CAL_SVC_3M(StatusType, TFN_GETELAPSEDVALUE, CounterType, CounterID, TickRefType, Value, TickRefType, ElapsedValue);
+}
+
+#pragma inline _trap_CheckISRMemoryAccess
+LOCAL_INLINE AccessType
+_trap_CheckISRMemoryAccess(ISRType ISRID, MemoryStartAddressType Address, MemorySizeType Size)
+{
+	return CAL_SVC_3M(AccessType, TFN_CHECKISRMEMORYACCESS, ISRType, ISRID, MemoryStartAddressType, Address, MemorySizeType, Size);
+}
+
+#pragma inline _trap_CheckTaskMemoryAccess
+LOCAL_INLINE AccessType
+_trap_CheckTaskMemoryAccess(TaskType TaskID, MemoryStartAddressType Address, MemorySizeType Size)
+{
+	return CAL_SVC_3M(AccessType, TFN_CHECKTASKMEMORYACCESS, TaskType, TaskID, MemoryStartAddressType, Address, MemorySizeType, Size);
+}
+
+#pragma inline _trap_CheckTaskAccess
+LOCAL_INLINE ObjectAccessType
+_trap_CheckTaskAccess(ApplicationType ApplID, TaskType TaskID)
+{
+	return CAL_SVC_2M(ObjectAccessType, TFN_CHECKTASKACCESS, ApplicationType, ApplID, TaskType, TaskID);
+}
+
+#pragma inline _trap_CheckISRAccess
+LOCAL_INLINE ObjectAccessType
+_trap_CheckISRAccess(ApplicationType ApplID, ISRType ISRID)
+{
+	return CAL_SVC_2M(ObjectAccessType, TFN_CHECKISRACCESS, ApplicationType, ApplID, ISRType, ISRID);
+}
+
+#pragma inline _trap_CheckAlarmAccess
+LOCAL_INLINE ObjectAccessType
+_trap_CheckAlarmAccess(ApplicationType ApplID, AlarmType AlarmID)
+{
+	return CAL_SVC_2M(ObjectAccessType, TFN_CHECKALARMACCESS, ApplicationType, ApplID, AlarmType, AlarmID);
+}
+
+#pragma inline _trap_CheckResourceAccess
+LOCAL_INLINE ObjectAccessType
+_trap_CheckResourceAccess(ApplicationType ApplID, ResourceType ResID)
+{
+	return CAL_SVC_2M(ObjectAccessType, TFN_CHECKRESOURCEACCESS, ApplicationType, ApplID, ResourceType, ResID);
+}
+
+#pragma inline _trap_CheckCounterAccess
+LOCAL_INLINE ObjectAccessType
+_trap_CheckCounterAccess(ApplicationType ApplID, CounterType CounterID)
+{
+	return CAL_SVC_2M(ObjectAccessType, TFN_CHECKCOUNTERACCESS, ApplicationType, ApplID, CounterType, CounterID);
+}
+
+#pragma inline _trap_CheckScheduleTableAccess
+LOCAL_INLINE ObjectAccessType
+_trap_CheckScheduleTableAccess(ApplicationType ApplID, ScheduleTableType ScheduleTableID)
+{
+	return CAL_SVC_2M(ObjectAccessType, TFN_CHECKSCHEDULETABLEACCESS, ApplicationType, ApplID, ScheduleTableType, ScheduleTableID);
+}
+
+#pragma inline _trap_CheckTaskOwnership
+LOCAL_INLINE ApplicationType
+_trap_CheckTaskOwnership(TaskType TaskID)
+{
+	return CAL_SVC_1M(ApplicationType, TFN_CHECKTASKOWNERSHIP, TaskType, TaskID);
+}
+
+#pragma inline _trap_CheckISROwnership
+LOCAL_INLINE ApplicationType
+_trap_CheckISROwnership(ISRType ISRID)
+{
+	return CAL_SVC_1M(ApplicationType, TFN_CHECKISROWNERSHIP, ISRType, ISRID);
+}
+
+#pragma inline _trap_CheckAlarmOwnership
+LOCAL_INLINE ApplicationType
+_trap_CheckAlarmOwnership(AlarmType AlarmID)
+{
+	return CAL_SVC_1M(ApplicationType, TFN_CHECKALARMOWNERSHIP, AlarmType, AlarmID);
+}
+
+#pragma inline _trap_CheckCounterOwnership
+LOCAL_INLINE ApplicationType
+_trap_CheckCounterOwnership(CounterType CounterID)
+{
+	return CAL_SVC_1M(ApplicationType, TFN_CHECKCOUNTEROWNERSHIP, CounterType, CounterID);
+}
+
+#pragma inline _trap_CheckScheduleTableOwnership
+LOCAL_INLINE ApplicationType
+_trap_CheckScheduleTableOwnership(ScheduleTableType ScheduleTableID)
+{
+	return CAL_SVC_1M(ApplicationType, TFN_CHECKSCHEDULETABLEOWNERSHIP, ScheduleTableType, ScheduleTableID);
+}
+
+#pragma inline _trap_GetApplicationID
+LOCAL_INLINE ApplicationType
+_trap_GetApplicationID(void)
+{
+	return CAL_SVC_0M(ApplicationType, TFN_GETAPPLICATIONID);
+}
+
+#pragma inline _trap_CallTrustedFunction
+LOCAL_INLINE StatusType
+_trap_CallTrustedFunction(TrustedFunctionIndexType FunctionIndex, TrustedFunctionParameterRefType FunctionParams)
+{
+	return CAL_SVC_2M(StatusType, TFN_CALLTRUSTEDFUNCTION, TrustedFunctionIndexType, FunctionIndex, TrustedFunctionParameterRefType, FunctionParams);
+}
+
+#pragma inline _trap_GetApplicationState
+LOCAL_INLINE StatusType
+_trap_GetApplicationState(ApplicationType Application, ApplicationStateRefType Value)
+{
+	return CAL_SVC_2M(StatusType, TFN_GETAPPLICATIONSTATE, ApplicationType, Application, ApplicationStateRefType, Value);
+}
+
+#pragma inline _trap_GetActiveApplicationMode
+LOCAL_INLINE AppModeType
+_trap_GetActiveApplicationMode(void)
+{
+	return CAL_SVC_0M(AppModeType, TFN_GETACTIVEAPPLICATIONMODE);
+}
+
+#pragma inline _trap_StartScheduleTableRel
+LOCAL_INLINE StatusType
+_trap_StartScheduleTableRel(ScheduleTableType ScheduleTableID, TickType Offset)
+{
+	return CAL_SVC_2M(StatusType, TFN_STARTSCHEDULETABLEREL, ScheduleTableType, ScheduleTableID, TickType, Offset);
+}
+
+#pragma inline _trap_StartScheduleTableAbs
+LOCAL_INLINE StatusType
+_trap_StartScheduleTableAbs(ScheduleTableType ScheduleTableID, TickType Start)
+{
+	return CAL_SVC_2M(StatusType, TFN_STARTSCHEDULETABLEABS, ScheduleTableType, ScheduleTableID, TickType, Start);
+}
+
+#pragma inline _trap_StopScheduleTable
+LOCAL_INLINE StatusType
+_trap_StopScheduleTable(ScheduleTableType ScheduleTableID)
+{
+	return CAL_SVC_1M(StatusType, TFN_STOPSCHEDULETABLE, ScheduleTableType, ScheduleTableID);
+}
+
+#pragma inline _trap_NextScheduleTable
+LOCAL_INLINE StatusType
+_trap_NextScheduleTable(ScheduleTableType ScheduleTableID_From, ScheduleTableType ScheduleTableID_To)
+{
+	return CAL_SVC_2M(StatusType, TFN_NEXTSCHEDULETABLE, ScheduleTableType, ScheduleTableID_From, ScheduleTableType, ScheduleTableID_To);
+}
+
+#pragma inline _trap_GetScheduleTableStatus
+LOCAL_INLINE StatusType
+_trap_GetScheduleTableStatus(ScheduleTableType ScheduleTableID, ScheduleTableStatusRefType ScheduleStatus)
+{
+	return CAL_SVC_2M(StatusType, TFN_GETSCHEDULETABLESTATUS, ScheduleTableType, ScheduleTableID, ScheduleTableStatusRefType, ScheduleStatus);
+}
+
+#pragma inline _trap_GetFaultyContext
+LOCAL_INLINE FaultyContextType
+_trap_GetFaultyContext(void)
+{
+	return CAL_SVC_0M(FaultyContextType, TFN_GETFAULTYCONTEXT);
+}
+
+#pragma inline _trap_ioc_send_generic
+LOCAL_INLINE Std_ReturnType
+_trap_ioc_send_generic(IocType IocWrapperId, const void *in)
+{
+	return CAL_SVC_2M(Std_ReturnType, TFN_IOC_SEND_GENERIC, IocType, IocWrapperId, const void *, in);
+}
+
+#pragma inline _trap_ioc_write_generic
+LOCAL_INLINE Std_ReturnType
+_trap_ioc_write_generic(IocType IocWrapperId, const void *in)
+{
+	return CAL_SVC_2M(Std_ReturnType, TFN_IOC_WRITE_GENERIC, IocType, IocWrapperId, const void *, in);
+}
+
+#pragma inline _trap_ioc_receive_generic
+LOCAL_INLINE Std_ReturnType
+_trap_ioc_receive_generic(IocType IocId, void *out)
+{
+	return CAL_SVC_2M(Std_ReturnType, TFN_IOC_RECEIVE_GENERIC, IocType, IocId, void *, out);
+}
+
+#pragma inline _trap_ioc_read_generic
+LOCAL_INLINE Std_ReturnType
+_trap_ioc_read_generic(IocType IocId, void *out)
+{
+	return CAL_SVC_2M(Std_ReturnType, TFN_IOC_READ_GENERIC, IocType, IocId, void *, out);
+}
+
+#pragma inline _trap_ioc_empty_queue_generic
+LOCAL_INLINE Std_ReturnType
+_trap_ioc_empty_queue_generic(IocType IocId)
+{
+	return CAL_SVC_1M(Std_ReturnType, TFN_IOC_EMPTY_QUEUE_GENERIC, IocType, IocId);
+}
+
+#pragma inline _trap_AllowAccess
+LOCAL_INLINE StatusType
+_trap_AllowAccess(void)
+{
+	return CAL_SVC_0M(StatusType, TFN_ALLOWACCESS);
+}
+
+#pragma inline _trap_TerminateApplication
+LOCAL_INLINE StatusType
+_trap_TerminateApplication(ApplicationType Application, RestartType RestartOption)
+{
+	return CAL_SVC_2M(StatusType, TFN_TERMINATEAPPLICATION, ApplicationType, Application, RestartType, RestartOption);
+}
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_TOOL_SVC_H */
Index: /atk2-sc3_fl850f1l/arch/ccrh/updatepath.py
===================================================================
--- /atk2-sc3_fl850f1l/arch/ccrh/updatepath.py	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ccrh/updatepath.py	(revision 117)
@@ -0,0 +1,70 @@
+#!python
+# -*- coding: euc-jp -*-
+#
+#  TOPPERS ATK2
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+#      Automotive Kernel Version 2
+#
+#  Copyright (C) 2013-2014 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#  Copyright (C) 2013-2014 by FUJI SOFT INCORPORATED, JAPAN
+#  Copyright (C) 2013-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+#  Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
+#  Copyright (C) 2013-2014 by Sunny Giken Inc., JAPAN
+#  Copyright (C) 2013-2014 by TOSHIBA CORPORATION, JAPAN
+#  Copyright (C) 2013-2014 by Witz Corporation, JAPAN
+#
+#  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+# $Id: updatepath.py 164 2015-06-03 01:22:29Z t_ishikawa $
+#
+
+import os
+
+os.chdir(os.path.dirname(project.Path))
+
+ADDITIONAL_INCLUDES = []
+
+# set relative path from top proj
+proj_rel_dir = ""
+
+# call definition file
+execfile("./def.py")
+
+# path
+src_abs_path = os.path.abspath(SRCDIR)
+
+# call common file
+execfile(src_abs_path + "/arch/cx/common.py")
Index: /atk2-sc3_fl850f1l/arch/gcc/Compiler.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/gcc/Compiler.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/gcc/Compiler.h	(revision 117)
@@ -0,0 +1,87 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2011-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: Compiler.h 115 2014-12-10 01:33:17Z t_ishikawa $
+ */
+
+/*
+ *		コンパイラ依存定義
+ */
+
+#ifndef TOPPERS_COMPILER_H
+#define TOPPERS_COMPILER_H
+
+#include "Compiler_Cfg.h"
+
+#define AUTOMATIC
+#define TYPEDEF
+#define NULL_PTR	((void *) 0)
+
+#define FUNC(rettype, memclass)						rettype
+#define FUNC_P2CONST(rettype, ptrclass, memclass)	const rettype *
+#define FUNC_P2VAR(rettype, ptrclass, memclass)		rettype *
+#define P2VAR(ptrtype, memclass, ptrclass)			ptrtype *
+#define P2CONST(ptrtype, memclass, ptrclass)		const ptrtype *
+#define CONSTP2VAR(ptrtype, memclass, ptrclass)		ptrtype * const
+#define CONSTP2CONST(ptrtype, memclass, ptrclass)	const ptrtype * const
+#define P2FUNC(rettype, ptrclass, fctname)			rettype (*fctname)
+#define CONST(consttype, memclass)					const consttype
+#define VAR(vartype, memclass)						vartype
+
+#define INLINE			__inline__
+#define LOCAL_INLINE	static __inline__
+
+#define Asm		__asm__ volatile    /* インラインアセンブラ（最適化抑止）*/
+
+#define NoReturn	__attribute__((__noreturn__))
+
+#define DEFINE_VAR_SEC(type, var, sec)	type __attribute__((section(sec))) var
+
+#endif /* TOPPERS_COMPILER_H */
Index: /atk2-sc3_fl850f1l/arch/gcc/Compiler_Cfg.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/gcc/Compiler_Cfg.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/gcc/Compiler_Cfg.h	(revision 117)
@@ -0,0 +1,79 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2011-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: Compiler_Cfg.h 115 2014-12-10 01:33:17Z t_ishikawa $
+ */
+
+#ifndef TOPPERS_COMPILER_CFG_H
+#define TOPPERS_COMPILER_CFG_H
+
+/*
+ *  ATK2共通定義
+ */
+#ifndef UINT_C
+#define UINT_C(val)		(val ## U)      /* 符号無し整数型の定数を作るマクロ */
+#endif /* UINT_C */
+
+/*
+ *  型に関する情報を取り出すためのマクロ
+ */
+#ifndef offsetof
+#define offsetof(structure, field)	((uintptr) & (((structure *) 0)->field))
+#endif /* offsetof */
+
+#ifndef alignof
+#define alignof(type)	offsetof(struct { uint8 field1; type field2; }, field2)
+#endif /* alignof */
+
+#ifndef ALIGNED_TYPE    /* アラインメントのチェック */
+#define ALIGNED_TYPE(addr, type)	(boolean) ((((uintptr) (addr)) & (alignof(type) - 1U)) == 0U)
+#endif /* ALIGNED_TYPE */
+
+#endif /* TOPPERS_COMPILER_CFG_H */
Index: /atk2-sc3_fl850f1l/arch/gcc/MANIFEST
===================================================================
--- /atk2-sc3_fl850f1l/arch/gcc/MANIFEST	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/gcc/MANIFEST	(revision 117)
@@ -0,0 +1,7 @@
+PACKAGE atk2-sc3
+
+MANIFEST
+Compiler.h
+Compiler_Cfg.h
+ldscript.tf
+tool_svc.h
Index: /atk2-sc3_fl850f1l/arch/gcc/ldscript.tf
===================================================================
--- /atk2-sc3_fl850f1l/arch/gcc/ldscript.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/gcc/ldscript.tf	(revision 117)
@@ -0,0 +1,327 @@
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$  Copyright (C) 2007-2014 by Center for Embedded Computing Systems
+$              Graduate School of Information Science, Nagoya Univ., JAPAN
+$  Copyright (C) 2011-2014 by FUJI SOFT INCORPORATED, JAPAN
+$  Copyright (C) 2011-2013 by Spansion LLC, USA
+$  Copyright (C) 2011-2013 by NEC Communication Systems, Ltd., JAPAN
+$  Copyright (C) 2011-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+$  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+$  Copyright (C) 2011-2014 by Sunny Giken Inc., JAPAN
+$  Copyright (C) 2011-2014 by TOSHIBA CORPORATION, JAPAN
+$  Copyright (C) 2011-2014 by Witz Corporation, JAPAN
+$
+$  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+$  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+$  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+$  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+$      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+$      スコード中に含まれていること．
+$  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+$      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+$      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+$      の無保証規定を掲載すること．
+$  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+$      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+$      と．
+$    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+$        作権表示，この利用条件および下記の無保証規定を掲載すること．
+$    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+$        報告すること．
+$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+$      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+$      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+$      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+$      免責すること．
+$
+$  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+$  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+$  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+$  用する者に対して，AUTOSARパートナーになることを求めている．
+$
+$  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+$  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+$  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$  の責任を負わない．
+$
+$  $Id: ldscript.tf 115 2014-12-10 01:33:17Z t_ishikawa $
+$
+
+$ =====================================================================
+$  仮のリンカスクリプト（cfg2_out.ld）の生成
+$ =====================================================================
+
+$
+$  生成するファイルの指定
+$
+$FILE "cfg2_out.ld"$
+
+$
+$  ターゲット依存のOUTPUT記述の生成
+$
+$IF ISFUNCTION("GENERATE_OUTPUT")$
+	$GENERATE_OUTPUT()$
+$END$
+
+$
+$  MEMORY記述の生成
+$
+MEMORY {$NL$
+$FOREACH reg REG.ORDER_LIST$
+	$TAB$$FORMAT("%s : ORIGIN = 0x%x, LENGTH = 0x%x",
+				REG.REGNAME[reg], +REG.BASE[reg], +REG.SIZE[reg])$$NL$
+$END$
+$IF ISFUNCTION("GENERATE_MEMORY")$
+	$GENERATE_MEMORY()$
+$END$
+}$NL$
+$NL$
+
+$
+$  ターゲット依存のPROVIDE記述の生成
+$
+$IF ISFUNCTION("GENERATE_PROVIDE")$
+	$GENERATE_PROVIDE()$
+$END$
+
+$
+$  変数の初期化
+$
+$reset_lma = 0$
+
+$provide_gp = 0$
+
+$
+$  リンク指定の生成
+$
+SECTIONS {$NL$
+$ ターゲット依存のセクション記述の生成
+$IF ISFUNCTION("GENERATE_SECTION_FIRST")$
+	$GENERATE_SECTION_FIRST()$
+$END$
+
+$IF TOPPERS_LABEL_ASM$
+	$PREFIX_START = "___start_"$
+	$PREFIX_END   = "___end_"$
+	$PREFIX_LIMIT = "___limit_"$
+$ELSE$
+	$PREFIX_START = "__start_"$
+	$PREFIX_END   = "__end_"$
+	$PREFIX_LIMIT = "__limit_"$
+$END$
+
+$FOREACH moid MO_ORDER$
+	$IF MO.LINKER[moid]$
+$		// セクションの開始記述の生成
+		$IF (MO.SEFLAG[moid] & 0x01) != 0$
+			$TAB$.$MO.SLABEL[moid]$$SPC$
+			$IF (MO.SEFLAG[moid] & 0x40) == 0$
+				ALIGN($TARGET_SEC_ALIGN_STR$)$SPC$
+			$END$
+			$IF (MO.MEMATR[moid] & TA_NOWRITE) == 0
+							&& (MO.MEMATR[moid] & TA_MEMINI) == 0$
+				(NOLOAD)$SPC$
+			$END$
+			:$SPC$
+			$IF !EQ(MO.ILABEL[moid], "")$
+				ALIGN($TARGET_SEC_ALIGN_STR$)$SPC$
+			$END$
+			{$NL$
+		$END$
+
+$		// セクションとメモリオブジェクトの開始ラベルの生成
+		$IF (MO.SEFLAG[moid] & 0x400) != 0$
+			$IF ISFUNCTION("GENERATE_GP_LABEL")$
+				$GENERATE_GP_LABEL()$
+			$END$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x100) != 0$
+			$IF (MO.MEMATR[moid] & TA_SDATA) == 0$
+				$TAB$$TAB$$PREFIX_START$srpw_all = .;$NL$
+			$ELSE$
+				$TAB$$TAB$$PREFIX_START$ssrpw_all = .;$NL$
+			$END$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x10) != 0$
+			$IF !EQ(MO.PLABEL[moid], "")$
+				$TAB$$TAB$$PREFIX_START$$MO.PLABEL[moid]$ = .;$NL$
+			$END$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x01) != 0$
+			$IF !EQ(MO.SLABEL[moid], ALT(omit_start_slabel,""))$
+				$TAB$$TAB$$PREFIX_START$$MO.SLABEL[moid]$ = .;$NL$
+			$END$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x04) != 0$
+			$IF (MO.SEFLAG[moid] & 0x01) == 0$
+				$NL$
+			$END$
+			$IF !EQ(MO.MLABEL[moid], MO.SLABEL[moid])
+					&& !EQ(MO.MLABEL[moid], ALT(omit_start_mlabel,""))$
+				$TAB$$TAB$$PREFIX_START$$MO.MLABEL[moid]$ = .;$NL$
+			$END$
+			$TAB$$TAB$
+		$END$
+
+$		// リンクするファイル記述の生成
+		$section_dscr = SECTION_DESCRIPTION(MO.SECTION[moid])$
+		$IF MO.TYPE[moid] == TOPPERS_ATTMOD$
+			$IF EQ(MO.MODULE[moid], "kernel_mem.o")$
+				kernel_mem2.o
+			$ELSE$
+				$MO.MODULE[moid]$
+			$END$
+			($section_dscr$)$SPC$
+		$ELIF MO.TYPE[moid] == TOPPERS_ATTSEC$
+			*($section_dscr$)$SPC$
+		$ELSE$
+$			// ユーザスタック領域
+			Os_Lcfg.o($section_dscr$)$SPC$
+		$END$
+
+$		// セクションとメモリオブジェクトの終了ラベルの生成
+		$IF (MO.SEFLAG[moid] & 0x08) != 0$
+			$NL$
+			$IF !EQ(MO.MLABEL[moid], MO.SLABEL[moid])$
+				$TAB$$TAB$$PREFIX_END$$MO.MLABEL[moid]$ = .;$NL$
+			$END$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x02) != 0$
+			$TAB$$TAB$$PREFIX_END$$MO.SLABEL[moid]$ = .;$NL$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x200) != 0$
+			$IF (MO.MEMATR[moid] & TA_SDATA) == 0$
+				$TAB$$TAB$$PREFIX_END$srpw_all = .;$NL$
+			$ELSE$
+				$TAB$$TAB$$PREFIX_END$ssrpw_all = .;$NL$
+			$END$
+		$END$
+
+$		// セクションの終了記述の生成
+		$IF (MO.SEFLAG[moid] & 0x02) != 0$
+			$TAB$} > $REG.REGNAME[MO.MEMREG[moid]]$
+			$IF !OMIT_IDATA$
+				$IF !EQ(MO.ILABEL[moid], "")$
+					$SPC$AT > $REG.REGNAME[STANDARD_ROM]$
+					$reset_lma = 1$
+				$ELIF reset_lma$
+					$SPC$AT > $REG.REGNAME[MO.MEMREG[moid]]$
+					$reset_lma = 0$
+				$END$
+			$END$
+			$IF ISFUNCTION("TARGET_CODE_FILLER")$
+				$TARGET_CODE_FILLER(moid)$
+			$END$
+			$NL$
+			$IF !OMIT_IDATA && !EQ(MO.ILABEL[moid], "")$
+				$TAB$$PREFIX_START$$MO.ILABEL[moid]$ = LOADADDR(.$MO.SLABEL[moid]$);$NL$
+			$END$
+		$END$
+
+$		// アライン記述の生成
+		$IF (MO.SEFLAG[moid] & 0x20) != 0$
+			$TAB$. = ALIGN($TARGET_PAGE_SIZE_STR$);$NL$
+		$ELIF (MO.SEFLAG[moid] & 0x08) != 0$
+$			// セクションが継続している場合には，TABを1つ出力
+			$IF (MO.SEFLAG[moid] & 0x02) == 0$$TAB$$END$
+			$TAB$. = ALIGN($TARGET_SEC_ALIGN_STR$);$NL$
+		$END$
+
+$		// セクションとメモリオブジェクトの上限ラベルの生成
+		$IF (MO.SEFLAG[moid] & 0x08) != 0$
+			$IF !EQ(MO.MLABEL[moid], MO.SLABEL[moid])$
+$				// セクションが継続している場合には，TABを1つ出力
+				$IF (MO.SEFLAG[moid] & 0x02) == 0$$TAB$$END$
+				$TAB$$PREFIX_LIMIT$$MO.MLABEL[moid]$ = .;$NL$
+			$END$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x02) != 0$
+			$TAB$$PREFIX_LIMIT$$MO.SLABEL[moid]$ = .;$NL$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x20) != 0$
+			$IF !EQ(MO.PLABEL[moid], "")$
+				$TAB$$PREFIX_LIMIT$$MO.PLABEL[moid]$ = .;$NL$
+			$END$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x200) != 0$
+			$IF (MO.MEMATR[moid] & TA_SDATA) == 0$
+				$TAB$$PREFIX_LIMIT$srpw_all = .;$NL$
+			$ELSE$
+				$TAB$$PREFIX_LIMIT$ssrpw_all = .;$NL$
+			$END$
+		$END$
+
+		$IF (MO.SEFLAG[moid] & 0x02) != 0$
+			$NL$
+		$END$
+
+$		// メモリリージョン末でアラインさせるためのダミーセクションの生成
+		$IF (MO.SEFLAG[moid] & 0x80) != 0$
+			$TAB$.$REG.REGNAME[MO.MEMREG[moid]]$_align$SPC$
+					ALIGN($TARGET_SEC_ALIGN_STR$) : {$NL$
+			$TAB$$TAB$__$REG.REGNAME[MO.MEMREG[moid]]$_align = .;$NL$
+			$TAB$} > $REG.REGNAME[MO.MEMREG[moid]]$$NL$
+			$NL$
+		$END$
+	$END$
+$END$
+
+$FOREACH lsid RANGE(1, numls)$
+	$TAB$$LNKSEC.SECTION[lsid]$ : {$NL$
+	$TAB$$TAB$*($LNKSEC.SECTION[lsid]$)$NL$
+	$TAB$} > $REG.REGNAME[LNKSEC.MEMREG[lsid]]$$NL$
+	$NL$
+$END$
+
+$	// C++testで必要な標準ライブラリで使用するセクション
+$TAB$.dummy_rom_for_cpptest : {$NL$
+$TAB$$TAB$*(.ctors.65535) *(.eh_frame)$NL$
+$TAB$} > $REG.REGNAME[STANDARD_ROM]$$NL$
+$TAB$. = ALIGN(64);$NL$$NL$
+$TAB$.dummy_ram_for_cpptest : {$NL$
+$TAB$$TAB$_end = .;$NL$
+$TAB$} > $REG.REGNAME[STANDARD_RAM]$$NL$
+$TAB$. = ALIGN(64);$NL$$NL$
+
+$TAB$/DISCARD/ : {$NL$
+$TAB$$TAB$*(.rel.dyn)$NL$
+$TAB$}$NL$
+$NL$
+
+$TAB$/* DWARF debug sections.$NL$
+$TAB$Symbols in the DWARF debugging sections are relative to $NL$
+$TAB$the beginning of the section so we begin them at 0.  */$NL$
+$NL$
+$TAB$/* DWARF 1 */$NL$
+$TAB$.debug          0 : { *(.debug) }$NL$
+$TAB$.line           0 : { *(.line) }$NL$
+$NL$
+$TAB$/* GNU DWARF 1 extensions */$NL$
+$TAB$.debug_srcinfo  0 : { *(.debug_srcinfo) }$NL$
+$TAB$.debug_sfnames  0 : { *(.debug_sfnames) }$NL$
+$NL$
+$TAB$/* DWARF 1.1 and DWARF 2 */$NL$
+$TAB$.debug_aranges  0 : { *(.debug_aranges) }$NL$
+$TAB$.debug_pubnames 0 : { *(.debug_pubnames) }$NL$
+$NL$
+$TAB$/* DWARF 2 */$NL$
+$TAB$.debug_info     0 : { *(.debug_info) }$NL$
+$TAB$.debug_abbrev   0 : { *(.debug_abbrev) }$NL$
+$TAB$.debug_line     0 : { *(.debug_line) }$NL$
+$TAB$.debug_frame    0 : { *(.debug_frame) }$NL$
+$TAB$.debug_str      0 : { *(.debug_str) }$NL$
+$TAB$.debug_loc      0 : { *(.debug_loc) }$NL$
+$TAB$.debug_macinfo  0 : { *(.debug_macinfo) }$NL$
+$TAB$.debug_ranges   0 : { *(.debug_ranges) }$NL$
+$NL$
+$TAB$/* SGI/MIPS DWARF 2 extensions */$NL$
+$TAB$.debug_weaknames 0 : { *(.debug_weaknames) }$NL$
+$TAB$.debug_funcnames 0 : { *(.debug_funcnames) }$NL$
+$TAB$.debug_typenames 0 : { *(.debug_typenames) }$NL$
+$TAB$.debug_varnames  0 : { *(.debug_varnames) }$NL$
+$NL$
+}$NL$
Index: /atk2-sc3_fl850f1l/arch/gcc/tool_svc.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/gcc/tool_svc.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/gcc/tool_svc.h	(revision 117)
@@ -0,0 +1,495 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2011-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: tool_svc.h 186 2015-06-25 00:37:32Z t_ishikawa $
+ */
+
+/*  This file is generated from svc.def by gensvc_atk. */
+
+#ifndef TOPPERS_TOOL_SVC_H
+#define TOPPERS_TOOL_SVC_H
+
+#define SVC_TRAP(system_service)	_trap_ ## system_service
+
+#ifndef TOPPERS_SVC_FUNCCALL
+#define StartOS						_trap_StartOS
+#define ShutdownOS					_trap_ShutdownOS
+#define ActivateTask				_trap_ActivateTask
+#define TerminateTask				_trap_TerminateTask
+#define ChainTask					_trap_ChainTask
+#define Schedule					_trap_Schedule
+#define GetTaskID					_trap_GetTaskID
+#define GetTaskState				_trap_GetTaskState
+#define EnableAllInterrupts			_trap_EnableAllInterrupts
+#define DisableAllInterrupts		_trap_DisableAllInterrupts
+#define ResumeAllInterrupts			_trap_ResumeAllInterrupts
+#define SuspendAllInterrupts		_trap_SuspendAllInterrupts
+#define ResumeOSInterrupts			_trap_ResumeOSInterrupts
+#define SuspendOSInterrupts			_trap_SuspendOSInterrupts
+#define GetISRID					_trap_GetISRID
+#define DisableInterruptSource		_trap_DisableInterruptSource
+#define EnableInterruptSource		_trap_EnableInterruptSource
+#define GetResource					_trap_GetResource
+#define ReleaseResource				_trap_ReleaseResource
+#define SetEvent					_trap_SetEvent
+#define ClearEvent					_trap_ClearEvent
+#define GetEvent					_trap_GetEvent
+#define WaitEvent					_trap_WaitEvent
+#define GetAlarmBase				_trap_GetAlarmBase
+#define GetAlarm					_trap_GetAlarm
+#define SetRelAlarm					_trap_SetRelAlarm
+#define SetAbsAlarm					_trap_SetAbsAlarm
+#define CancelAlarm					_trap_CancelAlarm
+#define IncrementCounter			_trap_IncrementCounter
+#define GetCounterValue				_trap_GetCounterValue
+#define GetElapsedValue				_trap_GetElapsedValue
+#define CheckISRMemoryAccess		_trap_CheckISRMemoryAccess
+#define CheckTaskMemoryAccess		_trap_CheckTaskMemoryAccess
+#define CheckTaskAccess				_trap_CheckTaskAccess
+#define CheckISRAccess				_trap_CheckISRAccess
+#define CheckAlarmAccess			_trap_CheckAlarmAccess
+#define CheckResourceAccess			_trap_CheckResourceAccess
+#define CheckCounterAccess			_trap_CheckCounterAccess
+#define CheckScheduleTableAccess	_trap_CheckScheduleTableAccess
+#define CheckTaskOwnership			_trap_CheckTaskOwnership
+#define CheckISROwnership			_trap_CheckISROwnership
+#define CheckAlarmOwnership			_trap_CheckAlarmOwnership
+#define CheckCounterOwnership		_trap_CheckCounterOwnership
+#define CheckScheduleTableOwnership	_trap_CheckScheduleTableOwnership
+#define GetApplicationID			_trap_GetApplicationID
+#define CallTrustedFunction			_trap_CallTrustedFunction
+#define GetApplicationState			_trap_GetApplicationState
+#define GetActiveApplicationMode	_trap_GetActiveApplicationMode
+#define StartScheduleTableRel		_trap_StartScheduleTableRel
+#define StartScheduleTableAbs		_trap_StartScheduleTableAbs
+#define StopScheduleTable			_trap_StopScheduleTable
+#define NextScheduleTable			_trap_NextScheduleTable
+#define GetScheduleTableStatus		_trap_GetScheduleTableStatus
+#define GetFaultyContext			_trap_GetFaultyContext
+#define ioc_send_generic			_trap_ioc_send_generic
+#define ioc_write_generic			_trap_ioc_write_generic
+#define ioc_receive_generic			_trap_ioc_receive_generic
+#define ioc_read_generic			_trap_ioc_read_generic
+#define ioc_empty_queue_generic		_trap_ioc_empty_queue_generic
+#define AllowAccess					_trap_AllowAccess
+#define TerminateApplication		_trap_TerminateApplication
+#endif
+
+#ifndef TOPPERS_MACRO_ONLY
+
+LOCAL_INLINE void
+_trap_StartOS(AppModeType Mode)
+{
+	CAL_SVC_1N(void, TFN_STARTOS, AppModeType, Mode);
+}
+
+LOCAL_INLINE void
+_trap_ShutdownOS(StatusType Error)
+{
+	CAL_SVC_1N(void, TFN_SHUTDOWNOS, StatusType, Error);
+}
+
+LOCAL_INLINE StatusType
+_trap_ActivateTask(TaskType TaskID)
+{
+	CAL_SVC_1M(StatusType, TFN_ACTIVATETASK, TaskType, TaskID);
+}
+
+LOCAL_INLINE StatusType
+_trap_TerminateTask(void)
+{
+	CAL_SVC_0M(StatusType, TFN_TERMINATETASK);
+}
+
+LOCAL_INLINE StatusType
+_trap_ChainTask(TaskType TaskID)
+{
+	CAL_SVC_1M(StatusType, TFN_CHAINTASK, TaskType, TaskID);
+}
+
+LOCAL_INLINE StatusType
+_trap_Schedule(void)
+{
+	CAL_SVC_0M(StatusType, TFN_SCHEDULE);
+}
+
+LOCAL_INLINE StatusType
+_trap_GetTaskID(TaskRefType TaskID)
+{
+	CAL_SVC_1M(StatusType, TFN_GETTASKID, TaskRefType, TaskID);
+}
+
+LOCAL_INLINE StatusType
+_trap_GetTaskState(TaskType TaskID, TaskStateRefType State)
+{
+	CAL_SVC_2M(StatusType, TFN_GETTASKSTATE, TaskType, TaskID, TaskStateRefType, State);
+}
+
+LOCAL_INLINE void
+_trap_EnableAllInterrupts(void)
+{
+	CAL_SVC_0N(void, TFN_ENABLEALLINTERRUPTS);
+}
+
+LOCAL_INLINE void
+_trap_DisableAllInterrupts(void)
+{
+	CAL_SVC_0N(void, TFN_DISABLEALLINTERRUPTS);
+}
+
+LOCAL_INLINE void
+_trap_ResumeAllInterrupts(void)
+{
+	CAL_SVC_0N(void, TFN_RESUMEALLINTERRUPTS);
+}
+
+LOCAL_INLINE void
+_trap_SuspendAllInterrupts(void)
+{
+	CAL_SVC_0N(void, TFN_SUSPENDALLINTERRUPTS);
+}
+
+LOCAL_INLINE void
+_trap_ResumeOSInterrupts(void)
+{
+	CAL_SVC_0N(void, TFN_RESUMEOSINTERRUPTS);
+}
+
+LOCAL_INLINE void
+_trap_SuspendOSInterrupts(void)
+{
+	CAL_SVC_0N(void, TFN_SUSPENDOSINTERRUPTS);
+}
+
+LOCAL_INLINE ISRType
+_trap_GetISRID(void)
+{
+	CAL_SVC_0M(ISRType, TFN_GETISRID);
+}
+
+LOCAL_INLINE StatusType
+_trap_DisableInterruptSource(ISRType DisableISR)
+{
+	CAL_SVC_1M(StatusType, TFN_DISABLEINTERRUPTSOURCE, ISRType, DisableISR);
+}
+
+LOCAL_INLINE StatusType
+_trap_EnableInterruptSource(ISRType EnableISR)
+{
+	CAL_SVC_1M(StatusType, TFN_ENABLEINTERRUPTSOURCE, ISRType, EnableISR);
+}
+
+LOCAL_INLINE StatusType
+_trap_GetResource(ResourceType ResID)
+{
+	CAL_SVC_1M(StatusType, TFN_GETRESOURCE, ResourceType, ResID);
+}
+
+LOCAL_INLINE StatusType
+_trap_ReleaseResource(ResourceType ResID)
+{
+	CAL_SVC_1M(StatusType, TFN_RELEASERESOURCE, ResourceType, ResID);
+}
+
+LOCAL_INLINE StatusType
+_trap_SetEvent(TaskType TaskID, EventMaskType Mask)
+{
+	CAL_SVC_2M(StatusType, TFN_SETEVENT, TaskType, TaskID, EventMaskType, Mask);
+}
+
+LOCAL_INLINE StatusType
+_trap_ClearEvent(EventMaskType Mask)
+{
+	CAL_SVC_1M(StatusType, TFN_CLEAREVENT, EventMaskType, Mask);
+}
+
+LOCAL_INLINE StatusType
+_trap_GetEvent(TaskType TaskID, EventMaskRefType Event)
+{
+	CAL_SVC_2M(StatusType, TFN_GETEVENT, TaskType, TaskID, EventMaskRefType, Event);
+}
+
+LOCAL_INLINE StatusType
+_trap_WaitEvent(EventMaskType Mask)
+{
+	CAL_SVC_1M(StatusType, TFN_WAITEVENT, EventMaskType, Mask);
+}
+
+LOCAL_INLINE StatusType
+_trap_GetAlarmBase(AlarmType AlarmID, AlarmBaseRefType Info)
+{
+	CAL_SVC_2M(StatusType, TFN_GETALARMBASE, AlarmType, AlarmID, AlarmBaseRefType, Info);
+}
+
+LOCAL_INLINE StatusType
+_trap_GetAlarm(AlarmType AlarmID, TickRefType Tick)
+{
+	CAL_SVC_2M(StatusType, TFN_GETALARM, AlarmType, AlarmID, TickRefType, Tick);
+}
+
+LOCAL_INLINE StatusType
+_trap_SetRelAlarm(AlarmType AlarmID, TickType increment, TickType cycle)
+{
+	CAL_SVC_3M(StatusType, TFN_SETRELALARM, AlarmType, AlarmID, TickType, increment, TickType, cycle);
+}
+
+LOCAL_INLINE StatusType
+_trap_SetAbsAlarm(AlarmType AlarmID, TickType start, TickType cycle)
+{
+	CAL_SVC_3M(StatusType, TFN_SETABSALARM, AlarmType, AlarmID, TickType, start, TickType, cycle);
+}
+
+LOCAL_INLINE StatusType
+_trap_CancelAlarm(AlarmType AlarmID)
+{
+	CAL_SVC_1M(StatusType, TFN_CANCELALARM, AlarmType, AlarmID);
+}
+
+LOCAL_INLINE StatusType
+_trap_IncrementCounter(CounterType CounterID)
+{
+	CAL_SVC_1M(StatusType, TFN_INCREMENTCOUNTER, CounterType, CounterID);
+}
+
+LOCAL_INLINE StatusType
+_trap_GetCounterValue(CounterType CounterID, TickRefType Value)
+{
+	CAL_SVC_2M(StatusType, TFN_GETCOUNTERVALUE, CounterType, CounterID, TickRefType, Value);
+}
+
+LOCAL_INLINE StatusType
+_trap_GetElapsedValue(CounterType CounterID, TickRefType Value, TickRefType ElapsedValue)
+{
+	CAL_SVC_3M(StatusType, TFN_GETELAPSEDVALUE, CounterType, CounterID, TickRefType, Value, TickRefType, ElapsedValue);
+}
+
+LOCAL_INLINE AccessType
+_trap_CheckISRMemoryAccess(ISRType ISRID, MemoryStartAddressType Address, MemorySizeType Size)
+{
+	CAL_SVC_3M(AccessType, TFN_CHECKISRMEMORYACCESS, ISRType, ISRID, MemoryStartAddressType, Address, MemorySizeType, Size);
+}
+
+LOCAL_INLINE AccessType
+_trap_CheckTaskMemoryAccess(TaskType TaskID, MemoryStartAddressType Address, MemorySizeType Size)
+{
+	CAL_SVC_3M(AccessType, TFN_CHECKTASKMEMORYACCESS, TaskType, TaskID, MemoryStartAddressType, Address, MemorySizeType, Size);
+}
+
+LOCAL_INLINE ObjectAccessType
+_trap_CheckTaskAccess(ApplicationType ApplID, TaskType TaskID)
+{
+	CAL_SVC_2M(ObjectAccessType, TFN_CHECKTASKACCESS, ApplicationType, ApplID, TaskType, TaskID);
+}
+
+LOCAL_INLINE ObjectAccessType
+_trap_CheckISRAccess(ApplicationType ApplID, ISRType ISRID)
+{
+	CAL_SVC_2M(ObjectAccessType, TFN_CHECKISRACCESS, ApplicationType, ApplID, ISRType, ISRID);
+}
+
+LOCAL_INLINE ObjectAccessType
+_trap_CheckAlarmAccess(ApplicationType ApplID, AlarmType AlarmID)
+{
+	CAL_SVC_2M(ObjectAccessType, TFN_CHECKALARMACCESS, ApplicationType, ApplID, AlarmType, AlarmID);
+}
+
+LOCAL_INLINE ObjectAccessType
+_trap_CheckResourceAccess(ApplicationType ApplID, ResourceType ResID)
+{
+	CAL_SVC_2M(ObjectAccessType, TFN_CHECKRESOURCEACCESS, ApplicationType, ApplID, ResourceType, ResID);
+}
+
+LOCAL_INLINE ObjectAccessType
+_trap_CheckCounterAccess(ApplicationType ApplID, CounterType CounterID)
+{
+	CAL_SVC_2M(ObjectAccessType, TFN_CHECKCOUNTERACCESS, ApplicationType, ApplID, CounterType, CounterID);
+}
+
+LOCAL_INLINE ObjectAccessType
+_trap_CheckScheduleTableAccess(ApplicationType ApplID, ScheduleTableType ScheduleTableID)
+{
+	CAL_SVC_2M(ObjectAccessType, TFN_CHECKSCHEDULETABLEACCESS, ApplicationType, ApplID, ScheduleTableType, ScheduleTableID);
+}
+
+LOCAL_INLINE ApplicationType
+_trap_CheckTaskOwnership(TaskType TaskID)
+{
+	CAL_SVC_1M(ApplicationType, TFN_CHECKTASKOWNERSHIP, TaskType, TaskID);
+}
+
+LOCAL_INLINE ApplicationType
+_trap_CheckISROwnership(ISRType ISRID)
+{
+	CAL_SVC_1M(ApplicationType, TFN_CHECKISROWNERSHIP, ISRType, ISRID);
+}
+
+LOCAL_INLINE ApplicationType
+_trap_CheckAlarmOwnership(AlarmType AlarmID)
+{
+	CAL_SVC_1M(ApplicationType, TFN_CHECKALARMOWNERSHIP, AlarmType, AlarmID);
+}
+
+LOCAL_INLINE ApplicationType
+_trap_CheckCounterOwnership(CounterType CounterID)
+{
+	CAL_SVC_1M(ApplicationType, TFN_CHECKCOUNTEROWNERSHIP, CounterType, CounterID);
+}
+
+LOCAL_INLINE ApplicationType
+_trap_CheckScheduleTableOwnership(ScheduleTableType ScheduleTableID)
+{
+	CAL_SVC_1M(ApplicationType, TFN_CHECKSCHEDULETABLEOWNERSHIP, ScheduleTableType, ScheduleTableID);
+}
+
+LOCAL_INLINE ApplicationType
+_trap_GetApplicationID(void)
+{
+	CAL_SVC_0M(ApplicationType, TFN_GETAPPLICATIONID);
+}
+
+LOCAL_INLINE StatusType
+_trap_CallTrustedFunction(TrustedFunctionIndexType FunctionIndex, TrustedFunctionParameterRefType FunctionParams)
+{
+	CAL_SVC_2M(StatusType, TFN_CALLTRUSTEDFUNCTION, TrustedFunctionIndexType, FunctionIndex, TrustedFunctionParameterRefType, FunctionParams);
+}
+
+LOCAL_INLINE StatusType
+_trap_GetApplicationState(ApplicationType Application, ApplicationStateRefType Value)
+{
+	CAL_SVC_2M(StatusType, TFN_GETAPPLICATIONSTATE, ApplicationType, Application, ApplicationStateRefType, Value);
+}
+
+LOCAL_INLINE AppModeType
+_trap_GetActiveApplicationMode(void)
+{
+	CAL_SVC_0M(AppModeType, TFN_GETACTIVEAPPLICATIONMODE);
+}
+
+LOCAL_INLINE StatusType
+_trap_StartScheduleTableRel(ScheduleTableType ScheduleTableID, TickType Offset)
+{
+	CAL_SVC_2M(StatusType, TFN_STARTSCHEDULETABLEREL, ScheduleTableType, ScheduleTableID, TickType, Offset);
+}
+
+LOCAL_INLINE StatusType
+_trap_StartScheduleTableAbs(ScheduleTableType ScheduleTableID, TickType Start)
+{
+	CAL_SVC_2M(StatusType, TFN_STARTSCHEDULETABLEABS, ScheduleTableType, ScheduleTableID, TickType, Start);
+}
+
+LOCAL_INLINE StatusType
+_trap_StopScheduleTable(ScheduleTableType ScheduleTableID)
+{
+	CAL_SVC_1M(StatusType, TFN_STOPSCHEDULETABLE, ScheduleTableType, ScheduleTableID);
+}
+
+LOCAL_INLINE StatusType
+_trap_NextScheduleTable(ScheduleTableType ScheduleTableID_From, ScheduleTableType ScheduleTableID_To)
+{
+	CAL_SVC_2M(StatusType, TFN_NEXTSCHEDULETABLE, ScheduleTableType, ScheduleTableID_From, ScheduleTableType, ScheduleTableID_To);
+}
+
+LOCAL_INLINE StatusType
+_trap_GetScheduleTableStatus(ScheduleTableType ScheduleTableID, ScheduleTableStatusRefType ScheduleStatus)
+{
+	CAL_SVC_2M(StatusType, TFN_GETSCHEDULETABLESTATUS, ScheduleTableType, ScheduleTableID, ScheduleTableStatusRefType, ScheduleStatus);
+}
+
+LOCAL_INLINE FaultyContextType
+_trap_GetFaultyContext(void)
+{
+	CAL_SVC_0M(FaultyContextType, TFN_GETFAULTYCONTEXT);
+}
+
+LOCAL_INLINE Std_ReturnType
+_trap_ioc_send_generic(IocType IocWrapperId, const void *in)
+{
+	CAL_SVC_2M(Std_ReturnType, TFN_IOC_SEND_GENERIC, IocType, IocWrapperId, const void *, in);
+}
+
+LOCAL_INLINE Std_ReturnType
+_trap_ioc_write_generic(IocType IocWrapperId, const void *in)
+{
+	CAL_SVC_2M(Std_ReturnType, TFN_IOC_WRITE_GENERIC, IocType, IocWrapperId, const void *, in);
+}
+
+LOCAL_INLINE Std_ReturnType
+_trap_ioc_receive_generic(IocType IocId, void *out)
+{
+	CAL_SVC_2M(Std_ReturnType, TFN_IOC_RECEIVE_GENERIC, IocType, IocId, void *, out);
+}
+
+LOCAL_INLINE Std_ReturnType
+_trap_ioc_read_generic(IocType IocId, void *out)
+{
+	CAL_SVC_2M(Std_ReturnType, TFN_IOC_READ_GENERIC, IocType, IocId, void *, out);
+}
+
+LOCAL_INLINE Std_ReturnType
+_trap_ioc_empty_queue_generic(IocType IocId)
+{
+	CAL_SVC_1M(Std_ReturnType, TFN_IOC_EMPTY_QUEUE_GENERIC, IocType, IocId);
+}
+
+LOCAL_INLINE StatusType
+_trap_AllowAccess(void)
+{
+	CAL_SVC_0M(StatusType, TFN_ALLOWACCESS);
+}
+
+LOCAL_INLINE StatusType
+_trap_TerminateApplication(ApplicationType Application, RestartType RestartOption)
+{
+	CAL_SVC_2M(StatusType, TFN_TERMINATEAPPLICATION, ApplicationType, Application, RestartType, RestartOption);
+}
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_TOOL_SVC_H */
Index: /atk2-sc3_fl850f1l/arch/ghs/Compiler.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/ghs/Compiler.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ghs/Compiler.h	(revision 117)
@@ -0,0 +1,103 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2013 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2013 by FUJISOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by FUJITSU VLSI LIMITED, JAPAN
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2013 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2013 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2013 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2013 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2013 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  @(#) $Id: Compiler.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		コンパイラ依存定義
+ */
+
+#ifndef TOPPERS_COMPILER_H
+#define TOPPERS_COMPILER_H
+
+#include "Compiler_Cfg.h"
+
+#define AUTOMATIC
+#define TYPEDEF
+#define NULL_PTR	((void *) 0)
+
+#define FUNC(rettype, memclass)						rettype
+#define FUNC_P2CONST(rettype, ptrclass, memclass)	const rettype *
+#define FUNC_P2VAR(rettype, ptrclass, memclass)		rettype *
+#define P2VAR(ptrtype, memclass, ptrclass)			ptrtype *
+#define P2CONST(ptrtype, memclass, ptrclass)		const ptrtype *
+#define CONSTP2VAR(ptrtype, memclass, ptrclass)		ptrtype * const
+#define CONSTP2CONST(ptrtype, memclass, ptrclass)	const ptrtype * const
+#define P2FUNC(rettype, ptrclass, fctname)			rettype (*fctname)
+#define CONST(consttype, memclass)					const consttype
+#define VAR(vartype, memclass)						vartype
+
+#define INLINE			__inline__
+#define LOCAL_INLINE	static __inline__
+
+#define Asm		asm     /* インラインアセンブラ（最適化抑止）*/
+
+#define NoReturn	__attribute__((__noreturn__))
+
+/* コンパイラ依存のデータ型の定義 */
+#ifndef TOPPERS_MACRO_ONLY
+
+#include <limits.h>
+
+/*
+ *  空ラベルの定義
+ *    ghsでは大きさゼロの配列はコンパイルエラーになるため、
+ *    ここで別途定義する。
+ */
+#define TOPPERS_EMPTY_LABEL(x, y)	x y[1]
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+
+
+
+
+#endif /* TOPPERS_COMPILER_H */
Index: /atk2-sc3_fl850f1l/arch/ghs/Compiler_Cfg.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/ghs/Compiler_Cfg.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ghs/Compiler_Cfg.h	(revision 117)
@@ -0,0 +1,79 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2013 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2013 by FUJISOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by FUJITSU VLSI LIMITED, JAPAN
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2013 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2013 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2013 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2013 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2013 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  @(#) $Id: Compiler_Cfg.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+#ifndef TOPPERS_COMPILER_CFG_H
+#define TOPPERS_COMPILER_CFG_H
+
+/*
+ *  ATK2共通定義
+ */
+#ifndef UINT_C
+#define UINT_C(val)		(val ## U)      /* 符号無し整数型の定数を作るマクロ */
+#endif /* UINT_C */
+
+/*
+ *  型に関する情報を取り出すためのマクロ
+ */
+#ifndef offsetof
+#define offsetof(structure, field)	((uintptr) & (((structure *) 0)->field))
+#endif /* offsetof */
+
+#ifndef alignof
+#define alignof(type)	offsetof(struct { uint8 field1; type field2; }, field2)
+#endif /* alignof */
+#ifndef ALIGNED_TYPE    /* アラインメントのチェック */
+#define aligntypeof(type)	offsetof(struct { uint8 field1; type field2; }, field2)
+#define ALIGNED_TYPE(addr, type)	(boolean)((((uintptr) (addr)) & (alignof(type) - 1U)) == 0U)
+#endif /* ALIGNED_TYPE */
+
+#endif /* TOPPERS_COMPILER_CFG_H */
Index: /atk2-sc3_fl850f1l/arch/ghs/MANIFEST
===================================================================
--- /atk2-sc3_fl850f1l/arch/ghs/MANIFEST	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ghs/MANIFEST	(revision 117)
@@ -0,0 +1,8 @@
+PACKAGE atk2-sc3
+
+MANIFEST
+Compiler.h
+Compiler_Cfg.h
+ldscript.tf
+tool_svc.h
+
Index: /atk2-sc3_fl850f1l/arch/ghs/ldscript.tf
===================================================================
--- /atk2-sc3_fl850f1l/arch/ghs/ldscript.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ghs/ldscript.tf	(revision 117)
@@ -0,0 +1,375 @@
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$  Copyright (C) 2007-2013 by Center for Embedded Computing Systems
+$              Graduate School of Information Science, Nagoya Univ., JAPAN
+$  Copyright (C) 2011-2013 by FUJISOFT INCORPORATED, JAPAN
+$  Copyright (C) 2011-2013 by FUJITSU VLSI LIMITED, JAPAN
+$  Copyright (C) 2011-2013 by NEC Communication Systems, Ltd., JAPAN
+$  Copyright (C) 2011-2013 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+$  Copyright (C) 2011-2013 by Renesas Electronics Corporation, JAPAN
+$  Copyright (C) 2011-2013 by Sunny Giken Inc., JAPAN
+$  Copyright (C) 2011-2013 by TOSHIBA CORPORATION, JAPAN
+$  Copyright (C) 2011-2013 by Witz Corporation, JAPAN
+$
+$  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+$  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+$  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+$  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+$      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+$      スコード中に含まれていること．
+$  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+$      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+$      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+$      の無保証規定を掲載すること．
+$  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+$      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+$      と．
+$    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+$        作権表示，この利用条件および下記の無保証規定を掲載すること．
+$    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+$        報告すること．
+$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+$      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+$      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+$      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+$      免責すること．
+$
+$  AUTOSAR（AUTomotive Open System ARchitecture）は，AUTOSAR仕様に基づ
+$  いたソフトウェアを商用目的で利用する者に対して，AUTOSARパートナーに
+$  なることを求めている．
+$
+$  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+$  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+$  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$  の責任を負わない．
+$
+$  $Id: ldscript.tf 115 2014-12-10 01:33:17Z t_ishikawa $
+$
+
+$ =====================================================================
+$  仮のリンカスクリプト（cfg2_out.ld）の生成
+$ =====================================================================
+
+$
+$  生成するファイルの指定
+$
+$FILE "cfg2_out.ld"$
+
+$
+$  ターゲット依存のOUTPUT記述の生成
+$
+$IF ISFUNCTION("GENERATE_OUTPUT")$
+	$GENERATE_OUTPUT()$
+$END$
+
+
+$
+$  MEMORY記述の生成
+$
+MEMORY {$NL$
+$FOREACH reg REG.ORDER_LIST$
+	$TAB$$FORMAT("%s : ORIGIN = 0x%x, LENGTH = 0x%x",
+				REG.REGNAME[reg], +REG.BASE[reg], +REG.SIZE[reg])$$NL$
+$END$
+$IF ISFUNCTION("GENERATE_MEMORY")$
+	$GENERATE_MEMORY()$
+$END$
+}$NL$
+$NL$
+
+$
+$  変数の初期化
+$
+$reset_lma = 0$
+
+$provide_gp = 0$
+$data_flg = 0$
+
+$
+$  リンク指定の生成
+$
+SECTIONS {$NL$
+$
+$  ターゲット依存のPROVIDE記述の生成
+$
+$IF ISFUNCTION("GENERATE_PROVIDE")$
+	$GENERATE_PROVIDE()$
+$END$
+
+$ ターゲット依存のセクション記述の生成
+$IF ISFUNCTION("GENERATE_SECTION_FIRST")$
+	$GENERATE_SECTION_FIRST()$
+$END$
+
+$IF TOPPERS_LABEL_ASM$
+	$PREFIX_START = "___start_"$
+	$PREFIX_END   = "___end_"$
+	$PREFIX_LIMIT = "___limit_"$
+$ELSE$
+	$PREFIX_START = "__start_"$
+	$PREFIX_END   = "__end_"$
+	$PREFIX_LIMIT = "__limit_"$
+$END$
+
+$FOREACH moid MO_ORDER$
+	$IF MO.LINKER[moid]$
+$		// セクションの開始記述の生成
+		$IF (MO.SEFLAG[moid] & 0x01) != 0$
+            $data_flg = 0$
+$           // small data section の先頭に.rosdataセクションを配置するための
+$           // ダミーセクション配置
+			$IF (MO.SEFLAG[moid] & 0x400) != 0$
+                $TAB$.rosdata : {$NL$
+$               // .rosdataを削除させないためのダミーデータ領域
+                $TAB$$TAB$. += $TARGET_PAGE_SIZE_STR$;$NL$
+                $TAB$} > $REG.REGNAME[STANDARD_RAM]$$NL$
+                $NL$$NL$
+			$END$
+$           // .idataセクションを配置するためのダミーセクション配置
+$           // およびアライン記述
+			$IF !OMIT_IDATA && !EQ(MO.ILABEL[moid], "")$
+                $IF !LENGTH(pre_data_ilabel)$
+                    $TAB$.dummy.$MO.SLABEL[moid]$.rom : {$NL$
+                    $TAB$$TAB$. = ALIGN($TARGET_SEC_ALIGN_STR$);$NL$
+                    $TAB$$TAB$$PREFIX_START$$MO.ILABEL[moid]$ = .;$NL$
+                    $TAB$} > $REG.REGNAME[STANDARD_ROM]$$NL$
+                $ELSE$
+                    $TAB$$PREFIX_START$$MO.ILABEL[moid]$ = $PREFIX_END$$pre_data_slabel$ - $PREFIX_START$$pre_data_slabel$ + $PREFIX_START$$pre_data_ilabel$;$NL$
+                $END$
+                $TAB$.dummy.$MO.SLABEL[moid]$.ram : {$NL$
+                $IF LENGTH(preid) && (MO.SEFLAG[preid] & 0x20) != 0$
+                    $TAB$$TAB$. = ALIGN($TARGET_PAGE_SIZE_STR$);$NL$
+                $ELSE$
+                    $TAB$$TAB$. = ALIGN($TARGET_SEC_SIZE_STR$);$NL$
+                $END$
+				$TAB$$TAB$$PREFIX_START$$MO.SLABEL[moid]$ = .;$NL$
+                $TAB$} > $REG.REGNAME[STANDARD_RAM]$$NL$
+                $data_flg = 1$
+                $pre_data_ilabel = MO.ILABEL[moid]$
+                $pre_data_slabel = MO.SLABEL[moid]$
+			$END$
+			$TAB$.$MO.SLABEL[moid]$$SPC$
+			$IF (MO.SEFLAG[moid] & 0x40) == 0 && data_flg == 0$
+                ALIGN($TARGET_SEC_ALIGN_STR$)$SPC$
+            $ELIF data_flg == 1$
+                ($PREFIX_START$$MO.SLABEL[moid]$)$SPC$
+            $END$
+			$IF (MO.MEMATR[moid] & TA_NOWRITE) == 0
+							&& (MO.MEMATR[moid] & TA_MEMINI) == 0$
+				(NOLOAD)$SPC$
+			$END$
+			:$SPC$
+			$IF !OMIT_IDATA && !EQ(MO.ILABEL[moid], "")$
+				AT($PREFIX_START$$MO.ILABEL[moid]$)$SPC$
+			$END$
+			{$NL$
+        $END$
+
+$		// セクションとメモリオブジェクトの開始ラベルの生成
+		$IF (MO.SEFLAG[moid] & 0x400) != 0$
+			$IF ISFUNCTION("GENERATE_GP_LABEL")$
+				$GENERATE_GP_LABEL()$
+			$END$
+		$END$
+        $IF (MO.SEFLAG[moid] & 0x100) != 0$
+            $IF (MO.MEMATR[moid] & TA_SDATA) == 0$
+                $TAB$$TAB$$PREFIX_START$srpw_all = .;$NL$
+            $ELSE$
+                $TAB$$TAB$$PREFIX_START$ssrpw_all = .;$NL$
+            $END$
+        $END$
+        $IF (MO.SEFLAG[moid] & 0x10) != 0$
+            $IF !EQ(MO.PLABEL[moid], "")$
+                $TAB$$TAB$$PREFIX_START$$MO.PLABEL[moid]$ = .;$NL$
+            $END$
+        $END$
+        $IF (MO.SEFLAG[moid] & 0x01) != 0$
+$       // =begin added for ghs        
+            $IF !EQ(MO.SLABEL[moid], ALT(omit_start_slabel,""))$
+                $IF data_flg == 0$
+                    $TAB$$TAB$$PREFIX_START$$MO.SLABEL[moid]$ = .;$NL$
+                $END$
+            $END$
+$       // =end added for ghs        
+        $END$
+        $IF (MO.SEFLAG[moid] & 0x04) != 0$
+            $IF (MO.SEFLAG[moid] & 0x01) == 0$
+                $NL$
+            $END$
+            $IF !EQ(MO.MLABEL[moid], MO.SLABEL[moid])
+                && !EQ(MO.MLABEL[moid], ALT(omit_start_mlabel,""))$
+                $TAB$$TAB$$PREFIX_START$$MO.MLABEL[moid]$ = .;$NL$
+            $END$
+            $TAB$$TAB$
+        $END$
+
+$		// リンクするファイル記述の生成
+		$section_dscr = SECTION_DESCRIPTION(MO.SECTION[moid])$
+		$IF MO.TYPE[moid] == TOPPERS_ATTMOD$
+			$IF EQ(MO.MODULE[moid], "kernel_mem.o")$
+				kernel_mem2.o($MO.SECTION[moid]$)$SPC$
+				kernel_mem2.o($section_dscr$)$SPC$
+			$ELSE$
+				$module_name = REGEX_REPLACE(MO.MODULE[moid],"\.a$","\.a(\*")$
+				$module_name$($MO.SECTION[moid]$)
+                $IF !EQ(MO.MODULE[moid], module_name)$
+                    )
+                $END$
+                $SPC$
+				$module_name$($section_dscr$)
+                $IF !EQ(MO.MODULE[moid], module_name)$
+                    )
+                $END$
+                $SPC$
+			$END$
+		$ELIF MO.TYPE[moid] == TOPPERS_ATTSEC$
+			*($MO.SECTION[moid]$)$SPC$
+			*($section_dscr$)$SPC$
+		$ELSE$
+$           // ユーザスタック領域 
+			Os_Lcfg.o($section_dscr$)$SPC$
+		$END$
+
+$		// セクションとメモリオブジェクトの終了ラベルの生成
+		$IF (MO.SEFLAG[moid] & 0x08) != 0$
+			$NL$
+			$IF !EQ(MO.MLABEL[moid], MO.SLABEL[moid])$
+				$TAB$$TAB$$PREFIX_END$$MO.MLABEL[moid]$ = .;$NL$
+			$END$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x02) != 0$
+			$TAB$$TAB$$PREFIX_END$$MO.SLABEL[moid]$ = .;$NL$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x200) != 0$
+			$IF (MO.MEMATR[moid] & TA_SDATA) == 0$
+				$TAB$$TAB$$PREFIX_END$srpw_all = .;$NL$
+			$ELSE$
+				$TAB$$TAB$$PREFIX_END$ssrpw_all = .;$NL$
+			$END$
+		$END$
+
+$		// セクションの終了記述の生成
+		$IF (MO.SEFLAG[moid] & 0x02) != 0$
+			$TAB$} > $REG.REGNAME[MO.MEMREG[moid]]$
+			$IF !OMIT_IDATA$
+				$IF !EQ(MO.ILABEL[moid], "")$
+					$SPC$
+					$reset_lma = 1$
+				$ELIF reset_lma$
+					$SPC$
+					$reset_lma = 0$
+				$END$
+			$END$
+			$IF ISFUNCTION("TARGET_CODE_FILLER")$
+				$TARGET_CODE_FILLER(moid)$
+			$END$
+			$NL$
+$           // =begin deleted for ghs
+$ 			$IF !OMIT_IDATA && !EQ(MO.ILABEL[moid], "")$
+$ 				$TAB$$PREFIX_START$$MO.ILABEL[moid]$ = LOADADDR(.$MO.SLABEL[moid]$);$NL$
+$ 			$END$
+$           // =end deleted for ghs
+		$END$
+
+$		// アライン記述の生成
+		$IF (MO.SEFLAG[moid] & 0x20) != 0$
+			$TAB$. = ALIGN($TARGET_PAGE_SIZE_STR$);$NL$
+		$ELIF (MO.SEFLAG[moid] & 0x02) != 0$
+$			// セクションが継続している場合には，TABを1つ出力
+			$IF (MO.SEFLAG[moid] & 0x02) == 0$$TAB$$END$
+			$TAB$. = ALIGN($TARGET_SEC_ALIGN_STR$);$NL$
+		$END$
+
+$		// セクションとメモリオブジェクトの上限ラベルの生成
+		$IF (MO.SEFLAG[moid] & 0x08) != 0$
+			$IF !EQ(MO.MLABEL[moid], MO.SLABEL[moid])$
+$				// セクションが継続している場合には，TABを1つ出力
+				$IF (MO.SEFLAG[moid] & 0x02) == 0$$TAB$$END$
+				$TAB$$PREFIX_LIMIT$$MO.MLABEL[moid]$ = .;$NL$
+			$END$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x02) != 0$
+			$TAB$$PREFIX_LIMIT$$MO.SLABEL[moid]$ = .;$NL$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x20) != 0$
+			$IF !EQ(MO.PLABEL[moid], "")$
+				$TAB$$PREFIX_LIMIT$$MO.PLABEL[moid]$ = .;$NL$
+			$END$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x200) != 0$
+			$IF (MO.MEMATR[moid] & TA_SDATA) == 0$
+				$TAB$$PREFIX_LIMIT$srpw_all = .;$NL$
+			$ELSE$
+				$TAB$$PREFIX_LIMIT$ssrpw_all = .;$NL$
+			$END$
+		$END$
+
+		$IF (MO.SEFLAG[moid] & 0x02) != 0$
+			$NL$
+		$END$
+
+$		// メモリリージョン末でアラインさせるためのダミーセクションの生成
+		$IF (MO.SEFLAG[moid] & 0x80) != 0$
+			$TAB$.$REG.REGNAME[MO.MEMREG[moid]]$_align$SPC$
+					ALIGN($TARGET_SEC_ALIGN_STR$) : {$NL$
+			$TAB$$TAB$__$REG.REGNAME[MO.MEMREG[moid]]$_align = .;$NL$
+			$TAB$} > $REG.REGNAME[MO.MEMREG[moid]]$$NL$
+			$NL$
+		$END$
+
+        $preid = moid$
+	$END$
+$END$
+
+$FOREACH lsid RANGE(1, numls)$
+	$TAB$$LNKSEC.SECTION[lsid]$ ALIGN(16) : {$NL$
+	$TAB$$TAB$*($LNKSEC.SECTION[lsid]$)$NL$
+	$TAB$} > $REG.REGNAME[LNKSEC.MEMREG[lsid]]$$NL$
+	$NL$
+$END$
+
+$	// C++testで必要な標準ライブラリで使用するセクション
+$TAB$.dummy_rom_for_cpptest : {$NL$
+$TAB$$TAB$*(.ctors.65535) *(.eh_frame)$NL$
+$TAB$} > $REG.REGNAME[STANDARD_ROM]$$NL$
+$TAB$. = ALIGN(64);$NL$$NL$
+$TAB$.dummy_ram_for_cpptest : {$NL$
+$TAB$$TAB$_end = .;$NL$
+$TAB$} > $REG.REGNAME[STANDARD_RAM]$$NL$
+$TAB$. = ALIGN(64);$NL$$NL$
+
+$TAB$.sdabase  : {$NL$
+$TAB$} > $REG.REGNAME[STANDARD_RAM]$$NL$
+$TAB$.tdata ALIGN (4) :$NL$
+$TAB${$NL$
+$TAB$	PROVIDE(__ep = .);$NL$
+$TAB$	*(.tbyte)$NL$
+$TAB$	*(.tcommon_byte)$NL$
+$TAB$	*(.tdata)$NL$
+$TAB$	*(.tbss)$NL$
+$TAB$	*(.tcommon)$NL$
+$TAB$} > $REG.REGNAME[STANDARD_RAM]$$NL$
+$NL$$NL$
+	
+$TAB$/DISCARD/ : {$NL$
+$TAB$$TAB$*(.rel.dyn)$NL$
+$TAB$}$NL$
+$NL$
+
+$TAB$/* DWARF debug sections.$NL$
+$TAB$Symbols in the DWARF debugging sections are relative to $NL$
+$TAB$the beginning of the section so we begin them at 0.  */$NL$
+$NL$
+$TAB$/* DWARF 1 */$NL$
+$TAB$.debug          0 : { *(.debug) }$NL$
+$TAB$.line           0 : { *(.line) }$NL$
+$NL$
+$TAB$/* GNU DWARF 1 extensions */$NL$
+$TAB$.debug_srcinfo  0 : { *(.debug_srcinfo) }$NL$
+$TAB$.debug_sfnames  0 : { *(.debug_sfnames) }$NL$
+$NL$
+}$NL$
Index: /atk2-sc3_fl850f1l/arch/ghs/tool_svc.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/ghs/tool_svc.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/ghs/tool_svc.h	(revision 117)
@@ -0,0 +1,490 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2011-2013 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2013 by FUJISOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by FUJITSU VLSI LIMITED, JAPAN
+ *  Copyright (C) 2011-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2013 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2013 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2013 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2013 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2013 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: tool_svc.h 115 2014-12-10 01:33:17Z t_ishikawa $
+ */
+
+/*  This file is generated from svc.def by gensvc_atk. */
+
+#ifndef TOPPERS_TOOL_SVC_H
+#define TOPPERS_TOOL_SVC_H
+
+#define SVC_TRAP(system_service)	_trap_ ## system_service
+
+#ifndef TOPPERS_SVC_FUNCCALL
+#define StartOS						_trap_StartOS
+#define ShutdownOS					_trap_ShutdownOS
+#define ActivateTask				_trap_ActivateTask
+#define TerminateTask				_trap_TerminateTask
+#define ChainTask					_trap_ChainTask
+#define Schedule					_trap_Schedule
+#define GetTaskID					_trap_GetTaskID
+#define GetTaskState				_trap_GetTaskState
+#define EnableAllInterrupts			_trap_EnableAllInterrupts
+#define DisableAllInterrupts		_trap_DisableAllInterrupts
+#define ResumeAllInterrupts			_trap_ResumeAllInterrupts
+#define SuspendAllInterrupts		_trap_SuspendAllInterrupts
+#define ResumeOSInterrupts			_trap_ResumeOSInterrupts
+#define SuspendOSInterrupts			_trap_SuspendOSInterrupts
+#define GetISRID					_trap_GetISRID
+#define DisableInterruptSource		_trap_DisableInterruptSource
+#define EnableInterruptSource		_trap_EnableInterruptSource
+#define GetResource					_trap_GetResource
+#define ReleaseResource				_trap_ReleaseResource
+#define SetEvent					_trap_SetEvent
+#define ClearEvent					_trap_ClearEvent
+#define GetEvent					_trap_GetEvent
+#define WaitEvent					_trap_WaitEvent
+#define GetAlarmBase				_trap_GetAlarmBase
+#define GetAlarm					_trap_GetAlarm
+#define SetRelAlarm					_trap_SetRelAlarm
+#define SetAbsAlarm					_trap_SetAbsAlarm
+#define CancelAlarm					_trap_CancelAlarm
+#define IncrementCounter			_trap_IncrementCounter
+#define GetCounterValue				_trap_GetCounterValue
+#define GetElapsedValue				_trap_GetElapsedValue
+#define CheckISRMemoryAccess		_trap_CheckISRMemoryAccess
+#define CheckTaskMemoryAccess		_trap_CheckTaskMemoryAccess
+#define CheckTaskAccess				_trap_CheckTaskAccess
+#define CheckISRAccess				_trap_CheckISRAccess
+#define CheckAlarmAccess			_trap_CheckAlarmAccess
+#define CheckResourceAccess			_trap_CheckResourceAccess
+#define CheckCounterAccess			_trap_CheckCounterAccess
+#define CheckScheduleTableAccess	_trap_CheckScheduleTableAccess
+#define CheckTaskOwnership			_trap_CheckTaskOwnership
+#define CheckISROwnership			_trap_CheckISROwnership
+#define CheckAlarmOwnership			_trap_CheckAlarmOwnership
+#define CheckCounterOwnership		_trap_CheckCounterOwnership
+#define CheckScheduleTableOwnership	_trap_CheckScheduleTableOwnership
+#define GetApplicationID			_trap_GetApplicationID
+#define CallTrustedFunction			_trap_CallTrustedFunction
+#define GetApplicationState			_trap_GetApplicationState
+#define GetActiveApplicationMode	_trap_GetActiveApplicationMode
+#define StartScheduleTableRel		_trap_StartScheduleTableRel
+#define StartScheduleTableAbs		_trap_StartScheduleTableAbs
+#define StopScheduleTable			_trap_StopScheduleTable
+#define NextScheduleTable			_trap_NextScheduleTable
+#define GetScheduleTableStatus		_trap_GetScheduleTableStatus
+#define GetFaultyContext			_trap_GetFaultyContext
+#define ioc_send_generic			_trap_ioc_send_generic
+#define ioc_write_generic			_trap_ioc_write_generic
+#define ioc_receive_generic			_trap_ioc_receive_generic
+#define ioc_read_generic			_trap_ioc_read_generic
+#define ioc_empty_queue_generic		_trap_ioc_empty_queue_generic
+#define AllowAccess					_trap_AllowAccess
+#define TerminateApplication		_trap_TerminateApplication
+#endif
+
+#ifndef TOPPERS_MACRO_ONLY
+
+LOCAL_INLINE void
+_trap_StartOS(AppModeType Mode)
+{
+	CAL_SVC_1N(void, TFN_STARTOS, AppModeType, Mode);
+}
+
+LOCAL_INLINE void
+_trap_ShutdownOS(StatusType Error)
+{
+	CAL_SVC_1N(void, TFN_SHUTDOWNOS, StatusType, Error);
+}
+
+LOCAL_INLINE StatusType
+_trap_ActivateTask(TaskType TaskID)
+{
+	return CAL_SVC_1M(StatusType, TFN_ACTIVATETASK, TaskType, TaskID);
+}
+
+LOCAL_INLINE StatusType
+_trap_TerminateTask(void)
+{
+	return CAL_SVC_0M(StatusType, TFN_TERMINATETASK);
+}
+
+LOCAL_INLINE StatusType
+_trap_ChainTask(TaskType TaskID)
+{
+	return CAL_SVC_1M(StatusType, TFN_CHAINTASK, TaskType, TaskID);
+}
+
+LOCAL_INLINE StatusType
+_trap_Schedule(void)
+{
+	return CAL_SVC_0M(StatusType, TFN_SCHEDULE);
+}
+
+LOCAL_INLINE StatusType
+_trap_GetTaskID(TaskRefType TaskID)
+{
+	return CAL_SVC_1M(StatusType, TFN_GETTASKID, TaskRefType, TaskID);
+}
+
+LOCAL_INLINE StatusType
+_trap_GetTaskState(TaskType TaskID, TaskStateRefType State)
+{
+	return CAL_SVC_2M(StatusType, TFN_GETTASKSTATE, TaskType, TaskID, TaskStateRefType, State);
+}
+
+LOCAL_INLINE void
+_trap_EnableAllInterrupts(void)
+{
+	CAL_SVC_0N(void, TFN_ENABLEALLINTERRUPTS);
+}
+
+LOCAL_INLINE void
+_trap_DisableAllInterrupts(void)
+{
+	CAL_SVC_0N(void, TFN_DISABLEALLINTERRUPTS);
+}
+
+LOCAL_INLINE void
+_trap_ResumeAllInterrupts(void)
+{
+	CAL_SVC_0N(void, TFN_RESUMEALLINTERRUPTS);
+}
+
+LOCAL_INLINE void
+_trap_SuspendAllInterrupts(void)
+{
+	CAL_SVC_0N(void, TFN_SUSPENDALLINTERRUPTS);
+}
+
+LOCAL_INLINE void
+_trap_ResumeOSInterrupts(void)
+{
+	CAL_SVC_0N(void, TFN_RESUMEOSINTERRUPTS);
+}
+
+LOCAL_INLINE void
+_trap_SuspendOSInterrupts(void)
+{
+	CAL_SVC_0N(void, TFN_SUSPENDOSINTERRUPTS);
+}
+
+LOCAL_INLINE ISRType
+_trap_GetISRID(void)
+{
+	return CAL_SVC_0M(ISRType, TFN_GETISRID);
+}
+
+LOCAL_INLINE StatusType
+_trap_DisableInterruptSource(ISRType DisableISR)
+{
+	return CAL_SVC_1M(StatusType, TFN_DISABLEINTERRUPTSOURCE, ISRType, DisableISR);
+}
+
+LOCAL_INLINE StatusType
+_trap_EnableInterruptSource(ISRType EnableISR)
+{
+	return CAL_SVC_1M(StatusType, TFN_ENABLEINTERRUPTSOURCE, ISRType, EnableISR);
+}
+
+LOCAL_INLINE StatusType
+_trap_GetResource(ResourceType ResID)
+{
+	return CAL_SVC_1M(StatusType, TFN_GETRESOURCE, ResourceType, ResID);
+}
+
+LOCAL_INLINE StatusType
+_trap_ReleaseResource(ResourceType ResID)
+{
+	return CAL_SVC_1M(StatusType, TFN_RELEASERESOURCE, ResourceType, ResID);
+}
+
+LOCAL_INLINE StatusType
+_trap_SetEvent(TaskType TaskID, EventMaskType Mask)
+{
+	return CAL_SVC_2M(StatusType, TFN_SETEVENT, TaskType, TaskID, EventMaskType, Mask);
+}
+
+LOCAL_INLINE StatusType
+_trap_ClearEvent(EventMaskType Mask)
+{
+	return CAL_SVC_1M(StatusType, TFN_CLEAREVENT, EventMaskType, Mask);
+}
+
+LOCAL_INLINE StatusType
+_trap_GetEvent(TaskType TaskID, EventMaskRefType Event)
+{
+	return CAL_SVC_2M(StatusType, TFN_GETEVENT, TaskType, TaskID, EventMaskRefType, Event);
+}
+
+LOCAL_INLINE StatusType
+_trap_WaitEvent(EventMaskType Mask)
+{
+	return CAL_SVC_1M(StatusType, TFN_WAITEVENT, EventMaskType, Mask);
+}
+
+LOCAL_INLINE StatusType
+_trap_GetAlarmBase(AlarmType AlarmID, AlarmBaseRefType Info)
+{
+	return CAL_SVC_2M(StatusType, TFN_GETALARMBASE, AlarmType, AlarmID, AlarmBaseRefType, Info);
+}
+
+LOCAL_INLINE StatusType
+_trap_GetAlarm(AlarmType AlarmID, TickRefType Tick)
+{
+	return CAL_SVC_2M(StatusType, TFN_GETALARM, AlarmType, AlarmID, TickRefType, Tick);
+}
+
+LOCAL_INLINE StatusType
+_trap_SetRelAlarm(AlarmType AlarmID, TickType increment, TickType cycle)
+{
+	return CAL_SVC_3M(StatusType, TFN_SETRELALARM, AlarmType, AlarmID, TickType, increment, TickType, cycle);
+}
+
+LOCAL_INLINE StatusType
+_trap_SetAbsAlarm(AlarmType AlarmID, TickType start, TickType cycle)
+{
+	return CAL_SVC_3M(StatusType, TFN_SETABSALARM, AlarmType, AlarmID, TickType, start, TickType, cycle);
+}
+
+LOCAL_INLINE StatusType
+_trap_CancelAlarm(AlarmType AlarmID)
+{
+	return CAL_SVC_1M(StatusType, TFN_CANCELALARM, AlarmType, AlarmID);
+}
+
+LOCAL_INLINE StatusType
+_trap_IncrementCounter(CounterType CounterID)
+{
+	return CAL_SVC_1M(StatusType, TFN_INCREMENTCOUNTER, CounterType, CounterID);
+}
+
+LOCAL_INLINE StatusType
+_trap_GetCounterValue(CounterType CounterID, TickRefType Value)
+{
+	return CAL_SVC_2M(StatusType, TFN_GETCOUNTERVALUE, CounterType, CounterID, TickRefType, Value);
+}
+
+LOCAL_INLINE StatusType
+_trap_GetElapsedValue(CounterType CounterID, TickRefType Value, TickRefType ElapsedValue)
+{
+	return CAL_SVC_3M(StatusType, TFN_GETELAPSEDVALUE, CounterType, CounterID, TickRefType, Value, TickRefType, ElapsedValue);
+}
+
+LOCAL_INLINE AccessType
+_trap_CheckISRMemoryAccess(ISRType ISRID, MemoryStartAddressType Address, MemorySizeType Size)
+{
+	return CAL_SVC_3M(AccessType, TFN_CHECKISRMEMORYACCESS, ISRType, ISRID, MemoryStartAddressType, Address, MemorySizeType, Size);
+}
+
+LOCAL_INLINE AccessType
+_trap_CheckTaskMemoryAccess(TaskType TaskID, MemoryStartAddressType Address, MemorySizeType Size)
+{
+	return CAL_SVC_3M(AccessType, TFN_CHECKTASKMEMORYACCESS, TaskType, TaskID, MemoryStartAddressType, Address, MemorySizeType, Size);
+}
+
+LOCAL_INLINE ObjectAccessType
+_trap_CheckTaskAccess(ApplicationType ApplID, TaskType TaskID)
+{
+	return CAL_SVC_2M(ObjectAccessType, TFN_CHECKTASKACCESS, ApplicationType, ApplID, TaskType, TaskID);
+}
+
+LOCAL_INLINE ObjectAccessType
+_trap_CheckISRAccess(ApplicationType ApplID, ISRType ISRID)
+{
+	return CAL_SVC_2M(ObjectAccessType, TFN_CHECKISRACCESS, ApplicationType, ApplID, ISRType, ISRID);
+}
+
+LOCAL_INLINE ObjectAccessType
+_trap_CheckAlarmAccess(ApplicationType ApplID, AlarmType AlarmID)
+{
+	return CAL_SVC_2M(ObjectAccessType, TFN_CHECKALARMACCESS, ApplicationType, ApplID, AlarmType, AlarmID);
+}
+
+LOCAL_INLINE ObjectAccessType
+_trap_CheckResourceAccess(ApplicationType ApplID, ResourceType ResID)
+{
+	return CAL_SVC_2M(ObjectAccessType, TFN_CHECKRESOURCEACCESS, ApplicationType, ApplID, ResourceType, ResID);
+}
+
+LOCAL_INLINE ObjectAccessType
+_trap_CheckCounterAccess(ApplicationType ApplID, CounterType CounterID)
+{
+	return CAL_SVC_2M(ObjectAccessType, TFN_CHECKCOUNTERACCESS, ApplicationType, ApplID, CounterType, CounterID);
+}
+
+LOCAL_INLINE ObjectAccessType
+_trap_CheckScheduleTableAccess(ApplicationType ApplID, ScheduleTableType ScheduleTableID)
+{
+	return CAL_SVC_2M(ObjectAccessType, TFN_CHECKSCHEDULETABLEACCESS, ApplicationType, ApplID, ScheduleTableType, ScheduleTableID);
+}
+
+LOCAL_INLINE ApplicationType
+_trap_CheckTaskOwnership(TaskType TaskID)
+{
+	return CAL_SVC_1M(ApplicationType, TFN_CHECKTASKOWNERSHIP, TaskType, TaskID);
+}
+
+LOCAL_INLINE ApplicationType
+_trap_CheckISROwnership(ISRType ISRID)
+{
+	return CAL_SVC_1M(ApplicationType, TFN_CHECKISROWNERSHIP, ISRType, ISRID);
+}
+
+LOCAL_INLINE ApplicationType
+_trap_CheckAlarmOwnership(AlarmType AlarmID)
+{
+	return CAL_SVC_1M(ApplicationType, TFN_CHECKALARMOWNERSHIP, AlarmType, AlarmID);
+}
+
+LOCAL_INLINE ApplicationType
+_trap_CheckCounterOwnership(CounterType CounterID)
+{
+	return CAL_SVC_1M(ApplicationType, TFN_CHECKCOUNTEROWNERSHIP, CounterType, CounterID);
+}
+
+LOCAL_INLINE ApplicationType
+_trap_CheckScheduleTableOwnership(ScheduleTableType ScheduleTableID)
+{
+	return CAL_SVC_1M(ApplicationType, TFN_CHECKSCHEDULETABLEOWNERSHIP, ScheduleTableType, ScheduleTableID);
+}
+
+LOCAL_INLINE ApplicationType
+_trap_GetApplicationID(void)
+{
+	return CAL_SVC_0M(ApplicationType, TFN_GETAPPLICATIONID);
+}
+
+LOCAL_INLINE StatusType
+_trap_CallTrustedFunction(TrustedFunctionIndexType FunctionIndex, TrustedFunctionParameterRefType FunctionParams)
+{
+	return CAL_SVC_2M(StatusType, TFN_CALLTRUSTEDFUNCTION, TrustedFunctionIndexType, FunctionIndex, TrustedFunctionParameterRefType, FunctionParams);
+}
+
+LOCAL_INLINE StatusType
+_trap_GetApplicationState(ApplicationType Application, ApplicationStateRefType Value)
+{
+	return CAL_SVC_2M(StatusType, TFN_GETAPPLICATIONSTATE, ApplicationType, Application, ApplicationStateRefType, Value);
+}
+
+LOCAL_INLINE AppModeType
+_trap_GetActiveApplicationMode(void)
+{
+	return CAL_SVC_0M(AppModeType, TFN_GETACTIVEAPPLICATIONMODE);
+}
+
+LOCAL_INLINE StatusType
+_trap_StartScheduleTableRel(ScheduleTableType ScheduleTableID, TickType Offset)
+{
+	return CAL_SVC_2M(StatusType, TFN_STARTSCHEDULETABLEREL, ScheduleTableType, ScheduleTableID, TickType, Offset);
+}
+
+LOCAL_INLINE StatusType
+_trap_StartScheduleTableAbs(ScheduleTableType ScheduleTableID, TickType Start)
+{
+	return CAL_SVC_2M(StatusType, TFN_STARTSCHEDULETABLEABS, ScheduleTableType, ScheduleTableID, TickType, Start);
+}
+
+LOCAL_INLINE StatusType
+_trap_StopScheduleTable(ScheduleTableType ScheduleTableID)
+{
+	return CAL_SVC_1M(StatusType, TFN_STOPSCHEDULETABLE, ScheduleTableType, ScheduleTableID);
+}
+
+LOCAL_INLINE StatusType
+_trap_NextScheduleTable(ScheduleTableType ScheduleTableID_From, ScheduleTableType ScheduleTableID_To)
+{
+	return CAL_SVC_2M(StatusType, TFN_NEXTSCHEDULETABLE, ScheduleTableType, ScheduleTableID_From, ScheduleTableType, ScheduleTableID_To);
+}
+
+LOCAL_INLINE StatusType
+_trap_GetScheduleTableStatus(ScheduleTableType ScheduleTableID, ScheduleTableStatusRefType ScheduleStatus)
+{
+	return CAL_SVC_2M(StatusType, TFN_GETSCHEDULETABLESTATUS, ScheduleTableType, ScheduleTableID, ScheduleTableStatusRefType, ScheduleStatus);
+}
+
+LOCAL_INLINE FaultyContextType
+_trap_GetFaultyContext(void)
+{
+	return CAL_SVC_0M(FaultyContextType, TFN_GETFAULTYCONTEXT);
+}
+
+LOCAL_INLINE Std_ReturnType
+_trap_ioc_send_generic(IocType IocWrapperId, const void *in)
+{
+	return CAL_SVC_2M(Std_ReturnType, TFN_IOC_SEND_GENERIC, IocType, IocWrapperId, const void *, in);
+}
+
+LOCAL_INLINE Std_ReturnType
+_trap_ioc_write_generic(IocType IocWrapperId, const void *in)
+{
+	return CAL_SVC_2M(Std_ReturnType, TFN_IOC_WRITE_GENERIC, IocType, IocWrapperId, const void *, in);
+}
+
+LOCAL_INLINE Std_ReturnType
+_trap_ioc_receive_generic(IocType IocId, void *out)
+{
+	return CAL_SVC_2M(Std_ReturnType, TFN_IOC_RECEIVE_GENERIC, IocType, IocId, void *, out);
+}
+
+LOCAL_INLINE Std_ReturnType
+_trap_ioc_read_generic(IocType IocId, void *out)
+{
+	return CAL_SVC_2M(Std_ReturnType, TFN_IOC_READ_GENERIC, IocType, IocId, void *, out);
+}
+
+LOCAL_INLINE Std_ReturnType
+_trap_ioc_empty_queue_generic(IocType IocId)
+{
+	return CAL_SVC_1M(Std_ReturnType, TFN_IOC_EMPTY_QUEUE_GENERIC, IocType, IocId);
+}
+
+LOCAL_INLINE StatusType
+_trap_AllowAccess(void)
+{
+	return CAL_SVC_0M(StatusType, TFN_ALLOWACCESS);
+}
+
+LOCAL_INLINE StatusType
+_trap_TerminateApplication(ApplicationType Application, RestartType RestartOption)
+{
+	return CAL_SVC_2M(StatusType, TFN_TERMINATEAPPLICATION, ApplicationType, Application, RestartType, RestartOption);
+}
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_TOOL_SVC_H */
Index: /atk2-sc3_fl850f1l/arch/logtrace/MANIFEST
===================================================================
--- /atk2-sc3_fl850f1l/arch/logtrace/MANIFEST	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/logtrace/MANIFEST	(revision 117)
@@ -0,0 +1,6 @@
+PACKAGE atk2-sc3
+
+MANIFEST
+trace_config.c
+trace_config.h
+trace_dump.c
Index: /atk2-sc3_fl850f1l/arch/logtrace/trace_config.c
===================================================================
--- /atk2-sc3_fl850f1l/arch/logtrace/trace_config.c	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/logtrace/trace_config.c	(revision 117)
@@ -0,0 +1,279 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: trace_config.c 115 2014-12-10 01:33:17Z t_ishikawa $
+ */
+
+/*
+ *		トレースログ機能
+ */
+
+#include "kernel_impl.h"
+#include "task.h"
+
+#include "target_timer.h"
+
+/*
+ *  本来はtrace_config.hにプロトタイプ宣言を置くべきだが，TCBが
+ *  定義される前なので，コンパイルが通らないためここに置く
+ */
+extern void log_dsp_enter(const TCB *p_tcb);
+extern void log_dsp_leave(const TCB *p_tcb);
+
+/*
+ *  内部関数プロトタイプ宣言
+ */
+static StatusType trace_wri_log(TRACE *p_trace);
+
+/*
+ *  トレースログバッファとそれにアクセスするためのポインタ
+ */
+static TRACE			trace_buffer[TCNT_TRACE_BUFFER];    /* トレースログバッファ */
+static uint32			trace_count;                        /* トレースログバッファ中のログの数 */
+static uint32			trace_head;                         /* 先頭のトレースログの格納位置 */
+static uint32			trace_tail;                         /* 次のトレースログの格納位置 */
+static TraceModeType	trace_mode = TRACE_AUTOSTOP;        /* トレースモード */
+
+/*
+ *  トレースログ機能の初期化
+ */
+void
+trace_initialize(uintptr exinf)
+{
+	TraceModeType mode = ((TraceModeType) exinf);
+
+	trace_count = 0U;
+	trace_head = 0U;
+	trace_tail = 0U;
+	trace_mode = mode;
+}
+
+/*
+ *  トレースログの開始
+ */
+StatusType
+trace_sta_log(TraceModeType mode)
+{
+	if ((mode & TRACE_CLEAR) != 0U) {
+		trace_count = 0U;
+		trace_head = 0U;
+		trace_tail = 0U;
+	}
+	trace_mode = mode;
+	return(E_OK);
+}
+
+/*
+ *  トレースログの書込み
+ */
+static StatusType
+trace_wri_log(TRACE *p_trace)
+{
+	SIL_PRE_LOC;
+
+	if (trace_mode != TRACE_STOP) {
+		SIL_LOC_INT();
+
+		/*
+		 *  トレース時刻の設定
+		 *
+		 *  LOG_WRI_LOG_ENTERから呼ばれた場合にp_trace->logtimを書き換
+		 *  えてしまうのは気持ちが悪いが，wri_logの方で上書きするため問
+		 *  題はない
+		 */
+		p_trace->logtim = GET_UTIM();
+
+		/*
+		 *  トレースバッファに記録
+		 */
+		trace_buffer[trace_tail] = *p_trace;
+		trace_tail++;
+		if (trace_tail >= TCNT_TRACE_BUFFER) {
+			trace_tail = 0U;
+		}
+		if (trace_count < TCNT_TRACE_BUFFER) {
+			trace_count++;
+			if ((trace_count >= TCNT_TRACE_BUFFER)
+				&& ((trace_mode & TRACE_AUTOSTOP) != 0U)) {
+				trace_mode = TRACE_STOP;
+			}
+		}
+		else {
+			trace_head = trace_tail;
+		}
+
+		SIL_UNL_INT();
+	}
+	return(E_OK);
+}
+
+/*
+ *  トレースログの読出し
+ */
+StatusType
+trace_rea_log(TRACE *p_trace)
+{
+	StatusType ercd;
+	SIL_PRE_LOC;
+
+	SIL_LOC_INT();
+
+	/*
+	 *  トレースログバッファからの取出し
+	 */
+	if (trace_count > 0U) {
+		*p_trace = trace_buffer[trace_head];
+		trace_count--;
+		trace_head++;
+		if (trace_head >= TCNT_TRACE_BUFFER) {
+			trace_head = 0U;
+		}
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_NOT_OK;
+	}
+
+	SIL_UNL_INT();
+	return(ercd);
+}
+
+/*
+ *  トレースログを出力するためのライブラリ関数
+ */
+
+void
+trace_write_0(uint32 type)
+{
+	TRACE trace;
+
+	trace.logtype = type;
+	(void) trace_wri_log(&trace);
+}
+
+void
+trace_write_1(uint32 type, const uintptr arg1)
+{
+	TRACE trace;
+
+	trace.logtype = type;
+	trace.loginfo[0] = arg1;
+	(void) trace_wri_log(&trace);
+}
+
+void
+trace_write_2(uint32 type, uintptr arg1, uintptr arg2)
+{
+	TRACE trace;
+
+	trace.logtype = type;
+	trace.loginfo[0] = arg1;
+	trace.loginfo[1] = arg2;
+	(void) trace_wri_log(&trace);
+}
+
+void
+trace_write_3(uint32 type, uintptr arg1, uintptr arg2, uintptr arg3)
+{
+	TRACE trace;
+
+	trace.logtype = type;
+	trace.loginfo[0] = arg1;
+	trace.loginfo[1] = arg2;
+	trace.loginfo[2] = arg3;
+	(void) trace_wri_log(&trace);
+}
+
+void
+trace_write_4(uint32 type, uintptr arg1, uintptr arg2, uintptr arg3,
+			  uintptr arg4)
+{
+	TRACE trace;
+
+	trace.logtype = type;
+	trace.loginfo[0] = arg1;
+	trace.loginfo[1] = arg2;
+	trace.loginfo[2] = arg3;
+	trace.loginfo[3] = arg4;
+	(void) trace_wri_log(&trace);
+}
+
+void
+trace_write_5(uint32 type, uintptr arg1, uintptr arg2, uintptr arg3,
+			  uintptr arg4, uintptr arg5)
+{
+	TRACE trace;
+
+	trace.logtype = type;
+	trace.loginfo[0] = arg1;
+	trace.loginfo[1] = arg2;
+	trace.loginfo[2] = arg3;
+	trace.loginfo[3] = arg4;
+	trace.loginfo[4] = arg5;
+	(void) trace_wri_log(&trace);
+}
+
+/*
+ *  アセンブリ言語で記述されるコードからトレースログを出力するための関
+ *  数
+ */
+void
+log_dsp_enter(const TCB *p_tcb)
+{
+	trace_1(LOG_TYPE_DSP | LOG_ENTER, (const uintptr) p_tcb);
+}
+
+void
+log_dsp_leave(const TCB *p_tcb)
+{
+	trace_1(LOG_TYPE_DSP | LOG_LEAVE, (const uintptr) p_tcb);
+}
Index: /atk2-sc3_fl850f1l/arch/logtrace/trace_config.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/logtrace/trace_config.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/logtrace/trace_config.h	(revision 117)
@@ -0,0 +1,400 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: trace_config.h 115 2014-12-10 01:33:17Z t_ishikawa $
+ */
+
+/*
+ *		トレースログに関する設定
+ */
+
+#ifndef TOPPERS_TRACE_CONFIG_H
+#define TOPPERS_TRACE_CONFIG_H
+
+#ifdef TOPPERS_ENABLE_TRACE
+
+/*
+ *  トレースログバッファのサイズ
+ */
+#ifndef TCNT_TRACE_BUFFER
+#define TCNT_TRACE_BUFFER	UINT_C(8192)
+
+#endif /* TCNT_TRACE_BUFFER */
+
+/*
+ *  トレース時刻の取得方法
+ */
+#ifndef GET_UTIM
+#define GET_UTIM()		(get_tim_utime())
+#endif /* GET_UTIM */
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  トレースログのデータ構造
+ *
+ *  システムログ機能のログ情報のデータ構造と同じものを用いる
+ */
+#include "t_syslog.h"
+typedef	SYSLOG TRACE;
+
+typedef	uint32 TraceModeType;                 /* サービスコールの動作モード */
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+/*
+ *  トレースモードの定義
+ */
+#define TRACE_STOP			UINT_C(0x00)    /* トレース停止 */
+#define TRACE_RINGBUF		UINT_C(0x01)    /* リングバッファモード */
+#define TRACE_AUTOSTOP		UINT_C(0x02)    /* 自動停止モード */
+#define TRACE_CLEAR			UINT_C(0x04)    /* トレースログのクリア */
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  トレースログ機能の初期化
+ *
+ *  トレースログ機能を初期化する．初期化ルーチンとして登録することを想
+ *  定している．引数により次の動作を行う
+ *
+ *  TRACE_STOP：初期化のみでトレースは開始しない
+ *  TRACE_RINGBUF：リングバッファモードでトレースを開始
+ *  TRACE_AUTOSTOP：自動停止モードでトレースを開始
+ */
+extern void trace_initialize(uintptr exinf);
+
+/*
+ *  トレースログの開始
+ *
+ *  トレースログの記録を開始／停止する．引数により次の動作を行う
+ *
+ *  TRACE_STOP：トレースを停止
+ *  TRACE_RINGBUF：リングバッファモードでトレースを開始
+ *  TRACE_AUTOSTOP：自動停止モードでトレースを開始
+ *  TRACE_CLEAR：トレースログをクリア
+ */
+extern StatusType trace_sta_log(TraceModeType mode);
+
+/*
+ *  トレースログの読出し
+ */
+extern StatusType trace_rea_log(TRACE *p_trace);
+
+/*
+ *  トレースログのダンプ（trace_dump.c）
+ *
+ *  トレースログをダンプする．終了処理ルーチンとして登録することも想定
+ *  している．引数として，ダンプ先となる文字出力関数へのポインタを渡す
+ *  ターゲット依存の低レベル文字出力を利用する場合には，target_putcを渡
+ *  す
+ */
+extern void trace_dump(void (*exinf)(char8 c));
+
+/*
+ *  トレースログを出力するためのライブラリ関数
+ */
+extern void trace_write_0(uint32 type);
+extern void trace_write_1(uint32 type, const uintptr arg1);
+extern void trace_write_2(uint32 type, uintptr arg1, uintptr arg2);
+extern void trace_write_3(uint32 type, uintptr arg1, uintptr arg2, uintptr arg3);
+extern void trace_write_4(uint32 type, uintptr arg1, uintptr arg2, uintptr arg3, uintptr arg4);
+extern void trace_write_5(uint32 type, uintptr arg1, uintptr arg2, uintptr arg3, uintptr arg4, uintptr arg5);
+
+/*
+ *  トレースログを出力するためのマクロ
+ */
+
+#define trace_0(type)								trace_write_0((type))
+#define trace_1(type, arg1)							trace_write_1((type), (arg1))
+#define trace_2(type, arg1, arg2)					trace_write_2((type), (arg1), (arg2))
+#define trace_3(type, arg1, arg2, arg3)				trace_write_3((type), (arg1), (arg2), (arg3))
+#define trace_4(type, arg1, arg2, arg3, arg4)		trace_write_4((type), (arg1), (arg2), (arg3), (arg4))
+#define trace_5(type, arg1, arg2, arg3, arg4, arg5)	trace_write_5((type), (arg1), (arg2), (arg3), (arg4), (arg5))
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+/*
+ *  トレースログ方法の設定
+ */
+
+/*
+ *  割込みサービスルーチンの前後
+ */
+#define LOG_ISR_ENTER(isrid)	trace_1(LOG_TYPE_ISR | LOG_ENTER, (isrid))
+#define LOG_ISR_LEAVE(isrid)	trace_1(LOG_TYPE_ISR | LOG_LEAVE, (isrid))
+
+/*
+ *  アラームハンドラの前後
+ */
+#define LOG_ALM_ENTER(p_almcb)	trace_1(LOG_TYPE_ALM | LOG_ENTER, (uintptr) (p_almcb))
+#define LOG_ALM_LEAVE(p_almcb)	trace_1(LOG_TYPE_ALM | LOG_LEAVE, (uintptr) (p_almcb))
+
+/*
+ *  スケジュールテーブル満了処理の前後
+ */
+#define LOG_SCHTBL_ENTER(p_schtblcb)	trace_1(LOG_TYPE_SCHTBL | LOG_ENTER, (uintptr) (p_schtblcb))
+#define LOG_SCHTBL_LEAVE(p_schtblcb)	trace_1(LOG_TYPE_SCHTBL | LOG_LEAVE, (uintptr) (p_schtblcb))
+
+/*
+ *  タスクの状態変更
+ */
+#define LOG_TSKSTAT(p_tcb)	trace_2(LOG_TYPE_TSKSTAT, (uintptr) (p_tcb), (uintptr) (p_tcb)->tstat)
+
+/*
+ *  ディスパッチャの前後
+ */
+#define LOG_DSP_ENTER(p_tcb)	trace_1(LOG_TYPE_DSP | LOG_ENTER, (p_tcb))
+#define LOG_DSP_LEAVE(p_tcb)	trace_1(LOG_TYPE_DSP | LOG_LEAVE, (p_tcb))
+
+/*
+ * ユーザーマーク
+ */
+#define LOG_TYPE_USER_MARK	UINT_C(0x100)
+#define LOG_USER_MARK(str)	trace_1(LOG_TYPE_USER_MARK, &(str))
+
+
+/*
+ *  システムコール
+ */
+
+/*
+ *  タスク管理機能
+ */
+
+#define LOG_ACTTSK_ENTER(tskid)			trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_ACTIVATETASK, (uintptr) (tskid))
+#define LOG_ACTTSK_LEAVE(ercd)			trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_ACTIVATETASK, (uintptr) (ercd))
+#define LOG_TERTSK_ENTER()				trace_1(LOG_TYPE_SVC | LOG_ENTER, TFN_TERMINATETASK)
+#define LOG_TERTSK_LEAVE(ercd)			trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_TERMINATETASK, (uintptr) (ercd))
+#define LOG_CHNTSK_ENTER(tskid)			trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_CHAINTASK, (uintptr) (tskid))
+#define LOG_CHNTSK_LEAVE(ercd)			trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CHAINTASK, (uintptr) (ercd))
+#define LOG_SCHED_ENTER()				trace_1(LOG_TYPE_SVC | LOG_ENTER, TFN_SCHEDULE)
+#define LOG_SCHED_LEAVE(ercd)			trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_SCHEDULE, (uintptr) (ercd))
+#define LOG_GETTID_ENTER()				trace_1(LOG_TYPE_SVC | LOG_ENTER, TFN_GETTASKID)
+#define LOG_GETTID_LEAVE(ercd, p_tskid)	trace_3(LOG_TYPE_SVC | LOG_LEAVE, TFN_GETTASKID, (uintptr) (ercd), ((ercd) == E_OK ? (uintptr) (*(p_tskid)) : 0U))
+#define LOG_GETTST_ENTER(tskid)			trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_GETTASKSTATE, (uintptr) (tskid))
+#define LOG_GETTST_LEAVE(ercd, p_state)	trace_3(LOG_TYPE_SVC | LOG_LEAVE, TFN_GETTASKSTATE, (uintptr) (ercd), ((ercd) == E_OK ? (uintptr) (*(p_state)) : 0U))
+
+/*
+ * イベント機能
+ */
+#define LOG_SETEVT_ENTER(tskid, mask)			trace_3(LOG_TYPE_SVC | LOG_ENTER, TFN_SETEVENT, (uintptr) (tskid), (uintptr) (mask))
+#define LOG_SETEVT_LEAVE(ercd)					trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_SETEVENT, (uintptr) (ercd))
+#define LOG_CLREVT_ENTER(p_runtsk, mask)		trace_3(LOG_TYPE_SVC | LOG_ENTER, TFN_CLEAREVENT, (uintptr) (p_runtsk), (uintptr) (mask))
+#define LOG_CLREVT_LEAVE(ercd)					trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CLEAREVENT, (uintptr) (ercd))
+#define LOG_GETEVT_ENTER(tskid)					trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_GETEVENT, (uintptr) (tskid))
+#define LOG_GETEVT_LEAVE(ercd, tskid, p_mask)	trace_4(LOG_TYPE_SVC | LOG_LEAVE, TFN_GETEVENT, (uintptr) (ercd), (uintptr) (tskid), ((ercd) == E_OK ? (uintptr) (*(p_mask)) : 0U))
+#define LOG_WAIEVT_ENTER(p_runtsk, mask)		trace_3(LOG_TYPE_SVC | LOG_ENTER, TFN_WAITEVENT, (uintptr) (p_runtsk), (uintptr) (mask))
+#define LOG_WAIEVT_LEAVE(ercd)					trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_WAITEVENT, (uintptr) (ercd))
+
+/*
+ * リソース機能
+ */
+#define LOG_GETRES_ENTER(resid)	trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_GETRESOURCE, (uintptr) (resid))
+#define LOG_GETRES_LEAVE(ercd)	trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_GETRESOURCE, (uintptr) (ercd))
+#define LOG_RELRES_ENTER(resid)	trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_RELEASERESOURCE, (uintptr) (resid))
+#define LOG_RELRES_LEAVE(ercd)	trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_RELEASERESOURCE, (uintptr) (ercd))
+
+/*
+ * アラーム機能
+ */
+#define LOG_GETALB_ENTER(almid)					trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_GETALARMBASE, (uintptr) (almid))
+#define LOG_GETALB_LEAVE(ercd, info)			trace_5(LOG_TYPE_SVC | LOG_LEAVE, TFN_GETALARMBASE, (uintptr) (ercd), ((ercd) == E_OK ? ((info)->maxallowedvalue) : (0U)), ((ercd) == E_OK ? ((info)->ticksperbase) : (0U)), ((ercd) == E_OK ? ((info)->mincycle) : (0U)))
+#define LOG_GETALM_ENTER(almid)					trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_GETALARM, (uintptr) (almid))
+#define LOG_GETALM_LEAVE(ercd, p_tick)			trace_3(LOG_TYPE_SVC | LOG_LEAVE, TFN_GETALARM, (uintptr) (ercd), ((ercd) == E_OK ? (uintptr) (*(p_tick)) : 0U))
+#define LOG_SETREL_ENTER(almid, incr, cycle)	trace_4(LOG_TYPE_SVC | LOG_ENTER, TFN_SETRELALARM, (uintptr) (almid), (uintptr) (incr), (uintptr) (cycle))
+#define LOG_SETREL_LEAVE(ercd)					trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_SETRELALARM, (uintptr) (ercd))
+#define LOG_SETABS_ENTER(almid, start, cycle)	trace_4(LOG_TYPE_SVC | LOG_ENTER, TFN_SETABSALARM, (uintptr) (almid), (uintptr) (start), (uintptr) (cycle))
+#define LOG_SETABS_LEAVE(ercd)					trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_SETABSALARM, (uintptr) (ercd))
+#define LOG_CANALM_ENTER(almid)					trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_CANCELALARM, (uintptr) (almid))
+#define LOG_CANALM_LEAVE(ercd)					trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CANCELALARM, (uintptr) (ercd))
+
+/*
+ * カウンタ機能
+ */
+#define LOG_INCCNT_ENTER(cntid)					trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_INCREMENTCOUNTER, (uintptr) (cntid))
+#define LOG_INCCNT_LEAVE(ercd)					trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_INCREMENTCOUNTER, (uintptr) (ercd))
+#define LOG_GETCNT_ENTER(cntid)					trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_GETCOUNTERVALUE, (uintptr) (cntid))
+#define LOG_GETCNT_LEAVE(ercd, p_val)			trace_3(LOG_TYPE_SVC | LOG_LEAVE, TFN_GETCOUNTERVALUE, (uintptr) (ercd), ((ercd) == E_OK ? (uintptr) (*(p_val)) : 0U))
+#define LOG_GETEPS_ENTER(cntid, p_val)			trace_3(LOG_TYPE_SVC | LOG_ENTER, TFN_GETELAPSEDVALUE, (uintptr) (cntid), ((p_val) == NULL ? 0U : *(p_val)))
+#define LOG_GETEPS_LEAVE(ercd, p_val, p_eval)	trace_4(LOG_TYPE_SVC | LOG_LEAVE, TFN_GETELAPSEDVALUE, (uintptr) (ercd), ((ercd) == E_OK ? (uintptr) (*(p_val)) : 0U), ((ercd) == E_OK ? (uintptr) (*(p_eval)) : 0U))
+
+/*
+ * スケジュールテーブル機能
+ */
+#define LOG_STASCHTBLREL_ENTER(schtblid, offset)	trace_3(LOG_TYPE_SVC | LOG_ENTER, TFN_STARTSCHEDULETABLEREL, (uintptr) (schtblid), (uintptr) (offset))
+#define LOG_STASCHTBLREL_LEAVE(ercd)				trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_STARTSCHEDULETABLEREL, (uintptr) (ercd))
+#define LOG_STASCHTBLABS_ENTER(schtblid, start)		trace_3(LOG_TYPE_SVC | LOG_ENTER, TFN_STARTSCHEDULETABLEABS, (uintptr) (schtblid), (uintptr) (start))
+#define LOG_STASCHTBLABS_LEAVE(ercd)				trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_STARTSCHEDULETABLEABS, (uintptr) (ercd))
+#define LOG_STPSCHTBL_ENTER(schtblid)				trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_STOPSCHEDULETABLE, (uintptr) (schtblid))
+#define LOG_STPSCHTBL_LEAVE(ercd)					trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_STOPSCHEDULETABLE, (uintptr) (ercd))
+#define LOG_NXTSCHTBL_ENTER(from, to)				trace_3(LOG_TYPE_SVC | LOG_ENTER, TFN_NEXTSCHEDULETABLE, (uintptr) (from), (uintptr) (to))
+#define LOG_NXTSCHTBL_LEAVE(ercd)					trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_NEXTSCHEDULETABLE, (uintptr) (ercd))
+#define LOG_GETSCHTBLST_ENTER(schtblid)				trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_GETSCHEDULETABLESTATUS, (uintptr) (schtblid))
+#define LOG_GETSCHTBLST_LEAVE(ercd, p_status)		trace_3(LOG_TYPE_SVC | LOG_LEAVE, TFN_GETSCHEDULETABLESTATUS, (uintptr) (ercd), ((ercd) == E_OK ? (uintptr) (*(p_status)) : 0U))
+
+/*
+ *  割込み管理機能
+ */
+#define LOG_DISINT_ENTER()			trace_1(LOG_TYPE_SVC | LOG_ENTER, TFN_DISABLEALLINTERRUPTS)
+#define LOG_DISINT_LEAVE()			trace_1(LOG_TYPE_SVC | LOG_LEAVE, TFN_DISABLEALLINTERRUPTS)
+#define LOG_ENAINT_ENTER()			trace_1(LOG_TYPE_SVC | LOG_ENTER, TFN_ENABLEALLINTERRUPTS)
+#define LOG_ENAINT_LEAVE()			trace_1(LOG_TYPE_SVC | LOG_LEAVE, TFN_ENABLEALLINTERRUPTS)
+#define LOG_SUSALL_ENTER()			trace_1(LOG_TYPE_SVC | LOG_ENTER, TFN_SUSPENDALLINTERRUPTS)
+#define LOG_SUSALL_LEAVE()			trace_1(LOG_TYPE_SVC | LOG_LEAVE, TFN_SUSPENDALLINTERRUPTS)
+#define LOG_RSMALL_ENTER()			trace_1(LOG_TYPE_SVC | LOG_ENTER, TFN_RESUMEALLINTERRUPTS)
+#define LOG_RSMALL_LEAVE()			trace_1(LOG_TYPE_SVC | LOG_LEAVE, TFN_RESUMEALLINTERRUPTS)
+#define LOG_SUSOSI_ENTER()			trace_1(LOG_TYPE_SVC | LOG_ENTER, TFN_SUSPENDOSINTERRUPTS)
+#define LOG_SUSOSI_LEAVE()			trace_1(LOG_TYPE_SVC | LOG_LEAVE, TFN_SUSPENDOSINTERRUPTS)
+#define LOG_RSMOSI_ENTER()			trace_1(LOG_TYPE_SVC | LOG_ENTER, TFN_RESUMEOSINTERRUPTS)
+#define LOG_RSMOSI_LEAVE()			trace_1(LOG_TYPE_SVC | LOG_LEAVE, TFN_RESUMEOSINTERRUPTS)
+#define LOG_GETISRID_ENTER()		trace_1(LOG_TYPE_SVC | LOG_ENTER, TFN_GETISRID)
+#define LOG_GETISRID_LEAVE(isrid)	trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_GETISRID, (uintptr) (isrid))
+#define LOG_DISINTSRC_ENTER(isrid)	trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_DISABLEINTERRUPTSOURCE, (uintptr) (isrid))
+#define LOG_DISINTSRC_LEAVE(ercd)	trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_DISABLEINTERRUPTSOURCE, (uintptr) (ercd))
+#define LOG_ENAINTSRC_ENTER(isrid)	trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_ENABLEINTERRUPTSOURCE, (uintptr) (isrid))
+#define LOG_ENAINTSRC_LEAVE(ercd)	trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_ENABLEINTERRUPTSOURCE, (uintptr) (ercd))
+
+/*
+ *  カーネルの初期化と終了処理
+ */
+#define LOG_STAOS_ENTER(mode)
+#define LOG_STAOS_LEAVE()
+#define LOG_STUTOS_ENTER(ercd)					trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_SHUTDOWNOS, (uintptr) (ercd))
+#define LOG_STUTOS_LEAVE()
+#define LOG_GETAAM_ENTER()						trace_1(LOG_TYPE_SVC | LOG_ENTER, TFN_GETACTIVEAPPLICATIONMODE)
+#define LOG_GETAAM_LEAVE(mode)					trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_GETACTIVEAPPLICATIONMODE, (uintptr) (mode))
+#define LOG_STAHOOK_ENTER()						trace_0(LOG_TYPE_STAHOOK | LOG_ENTER)
+#define LOG_STAHOOK_LEAVE()						trace_0(LOG_TYPE_STAHOOK | LOG_LEAVE)
+#define LOG_ERRHOOK_ENTER(ercd)					trace_1(LOG_TYPE_ERRHOOK | LOG_ENTER, (uintptr) (ercd))
+#define LOG_ERRHOOK_LEAVE()						trace_0(LOG_TYPE_ERRHOOK | LOG_LEAVE)
+#define LOG_PROHOOK_ENTER(ercd)					trace_1(LOG_TYPE_PROHOOK | LOG_ENTER, (uintptr) (ercd))
+#define LOG_PROHOOK_LEAVE(pret)					trace_1(LOG_TYPE_PROHOOK | LOG_LEAVE, (uintptr) (pret))
+#define LOG_SHUTHOOK_ENTER(ercd)				trace_1(LOG_TYPE_SHUTHOOK | LOG_ENTER, (uintptr) (ercd))
+#define LOG_SHUTHOOK_LEAVE()					trace_0(LOG_TYPE_SHUTHOOK | LOG_LEAVE)
+#define LOG_STAHOOKOSAP_ENTER(id)				trace_1(LOG_TYPE_STAHOOKOSAP | LOG_ENTER, (uintptr) (id))
+#define LOG_STAHOOKOSAP_LEAVE(id)				trace_1(LOG_TYPE_STAHOOKOSAP | LOG_LEAVE, (uintptr) (id))
+#define LOG_ERRHOOKOSAP_ENTER(p_runosap, ercd)	trace_2(LOG_TYPE_ERRHOOKOSAP | LOG_ENTER, (uintptr) (p_runosap), (uintptr) (ercd))
+#define LOG_ERRHOOKOSAP_LEAVE(p_runosap)		trace_1(LOG_TYPE_ERRHOOKOSAP | LOG_LEAVE, (uintptr) (p_runosap))
+#define LOG_SHUTHOOKOSAP_ENTER(index, ercd)		trace_2(LOG_TYPE_SHUTHOOKOSAP | LOG_ENTER, (uintptr) (index), (uintptr) (ercd))
+#define LOG_SHUTHOOKOSAP_LEAVE(index)			trace_1(LOG_TYPE_SHUTHOOKOSAP | LOG_LEAVE, (uintptr) (index))
+
+/*
+ *  システムログ機能
+ */
+#define LOG_SYSLOG_WRI_LOG_LEAVE(ercd)
+#define LOG_SYSLOG_REA_LOG_ENTER(p_syslog)
+#define LOG_SYSLOG_REA_LOG_LEAVE(ercd, p_syslog)
+#define LOG_SYSLOG_MSK_LOG_ENTER(lowmask)
+#define LOG_SYSLOG_MSK_LOG_LEAVE(ercd)
+#define LOG_SYSLOG_REF_LOG_ENTER(pk_rlog)
+#define LOG_SYSLOG_REF_LOG_LEAVE(pk_rlog)
+
+/*
+ *  OSAP機能
+ */
+#define LOG_GETOSAPID_ENTER()							trace_1(LOG_TYPE_SVC | LOG_ENTER, TFN_GETAPPLICATIONID)
+#define LOG_GETOSAPID_LEAVE(id)							trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_GETAPPLICATIONID, (uintptr) (id))
+#define LOG_GETAST_ENTER(id)							trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_GETAPPLICATIONSTATE, (uintptr) (id))
+#define LOG_GETAST_LEAVE(ercd, p_value)					trace_3(LOG_TYPE_SVC | LOG_LEAVE, TFN_GETAPPLICATIONSTATE, (uintptr) (ercd), ((ercd) == E_OK ? (uintptr) (*(p_value)) : 0U))
+#define LOG_CALTFN_ENTER(index)							trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_CALLTRUSTEDFUNCTION, (uintptr) (index))
+#define LOG_CALTFN_LEAVE(ercd)							trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CALLTRUSTEDFUNCTION, (uintptr) (ercd))
+#define LOG_TFN_ENTER(index)							trace_1(LOG_TYPE_TFN | LOG_ENTER, (uintptr) (index))
+#define LOG_TFN_LEAVE(index, ercd)						trace_2(LOG_TYPE_TFN | LOG_LEAVE, (uintptr) (index), (uintptr) (ercd))
+#define LOG_CHKTSKACS_ENTER(ApplID, TaskID)				trace_3(LOG_TYPE_SVC | LOG_ENTER, TFN_CHECKTASKACCESS, (uintptr) (ApplID), (uintptr) (TaskID))
+#define LOG_CHKTSKACS_LEAVE(access)						trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CHECKTASKACCESS, (uintptr) (access))
+#define LOG_CHKISRACS_ENTER(ApplID, ISRID)				trace_3(LOG_TYPE_SVC | LOG_ENTER, TFN_CHECKISRACCESS, (uintptr) (ApplID), (uintptr) (ISRID))
+#define LOG_CHKISRACS_LEAVE(access)						trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CHECKISRACCESS, (uintptr) (access))
+#define LOG_CHKALMACS_ENTER(ApplID, AlarmID)			trace_3(LOG_TYPE_SVC | LOG_ENTER, TFN_CHECKALARMACCESS, (uintptr) (ApplID), (uintptr) (AlarmID))
+#define LOG_CHKALMACS_LEAVE(access)						trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CHECKALARMACCESS, (uintptr) (access))
+#define LOG_CHKRESACS_ENTER(ApplID, ResID)				trace_3(LOG_TYPE_SVC | LOG_ENTER, TFN_CHECKRESOURCEACCESS, (uintptr) (ApplID), (uintptr) (ResID))
+#define LOG_CHKRESACS_LEAVE(access)						trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CHECKRESOURCEACCESS, (uintptr) (access))
+#define LOG_CHKCNTACS_ENTER(ApplID, CounterID)			trace_3(LOG_TYPE_SVC | LOG_ENTER, TFN_CHECKCOUNTERACCESS, (uintptr) (ApplID), (uintptr) (CounterID))
+#define LOG_CHKCNTACS_LEAVE(access)						trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CHECKCOUNTERACCESS, (uintptr) (access))
+#define LOG_CHKSCHTBLACS_ENTER(ApplID, ScheduleTableID)	trace_3(LOG_TYPE_SVC | LOG_ENTER, TFN_CHECKSCHEDULETABLEACCESS, (uintptr) (ApplID), (uintptr) (ScheduleTableID))
+#define LOG_CHKSCHTBLACS_LEAVE(access)					trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CHECKSCHEDULETABLEACCESS, (uintptr) (access))
+#define LOG_CHKTSKOWN_ENTER(TaskID)						trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_CHECKTASKOWNERSHIP, (uintptr) (TaskID))
+#define LOG_CHKTSKOWN_LEAVE(owner)						trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CHECKTASKOWNERSHIP, (uintptr) (owner))
+#define LOG_CHKISROWN_ENTER(ISRID)						trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_CHECKISROWNERSHIP, (uintptr) (ISRID))
+#define LOG_CHKISROWN_LEAVE(owner)						trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CHECKISROWNERSHIP, (uintptr) (owner))
+#define LOG_CHKALMOWN_ENTER(AlarmID)					trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_CHECKALARMOWNERSHIP, (uintptr) (AlarmID))
+#define LOG_CHKALMOWN_LEAVE(owner)						trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CHECKALARMOWNERSHIP, (uintptr) (owner))
+#define LOG_CHKCNTOWN_ENTER(CounterID)					trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_CHECKCOUNTEROWNERSHIP, (uintptr) (CounterID))
+#define LOG_CHKCNTOWN_LEAVE(owner)						trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CHECKCOUNTEROWNERSHIP, (uintptr) (owner))
+#define LOG_CHKSCHTBLOWN_ENTER(ScheduleTableID)			trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_CHECKSCHEDULETABLEOWNERSHIP, (uintptr) (ScheduleTableID))
+#define LOG_CHKSCHTBLOWN_LEAVE(owner)					trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CHECKSCHEDULETABLEOWNERSHIP, (uintptr) (owner))
+
+/*
+ * IOC機能
+ */
+#define LOG_IOCSEND_ENTER(senderid)		trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_IOC_SEND_GENERIC, (uintptr) (senderid))
+#define LOG_IOCSEND_LEAVE(ercd)			trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_IOC_SEND_GENERIC, (uintptr) (ercd))
+#define LOG_IOCWRITE_ENTER(senderid)	trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_IOC_WRITE_GENERIC, (uintptr) (senderid))
+#define LOG_IOCWRITE_LEAVE(ercd)		trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_IOC_WRITE_GENERIC, (uintptr) (ercd))
+#define LOG_IOCRECEIVE_ENTER(iocid)		trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_IOC_RECEIVE_GENERIC, (uintptr) (iocid))
+#define LOG_IOCRECEIVE_LEAVE(ercd)		trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_IOC_RECEIVE_GENERIC, (uintptr) (ercd))
+#define LOG_IOCREAD_ENTER(iocid)		trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_IOC_READ_GENERIC, (uintptr) (iocid))
+#define LOG_IOCREAD_LEAVE(ercd)			trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_IOC_READ_GENERIC, (uintptr) (ercd))
+#define LOG_IOCEMPTYQUEUE_ENTER(iocid)	trace_2(LOG_TYPE_SVC | LOG_ENTER, TFN_IOC_EMPTY_QUEUE_GENERIC, (uintptr) (iocid))
+#define LOG_IOCEMPTUQUEUE_LEAVE(ercd)	trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_IOC_EMPTY_QUEUE_GENERIC, (uintptr) (ercd))
+
+/*
+ *  メモリアクセス関連機能
+ */
+#define LOG_CHKISRMEMACS_ENTER(ISRID, Address, Size)	trace_4(LOG_TYPE_SVC | LOG_ENTER, TFN_CHECKISRMEMORYACCESS, (uintptr) (ISRID), (uintptr) (Address), (uintptr) (Size))
+#define LOG_CHKISRMEMACS_LEAVE(access)					trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CHECKISRMEMORYACCESS, (uintptr) (access))
+#define LOG_CHKTSKMEMACS_ENTER(TaskID, Address, Size)	trace_4(LOG_TYPE_SVC | LOG_ENTER, TFN_CHECKTASKMEMORYACCESS, (uintptr) (TaskID), (uintptr) (Address), (uintptr) (Size))
+#define LOG_CHKTSKMEMACS_LEAVE(access)					trace_2(LOG_TYPE_SVC | LOG_LEAVE, TFN_CHECKTASKMEMORYACCESS, (uintptr) (access))
+
+#endif /* TOPPERS_ENABLE_TRACE */
+
+#endif /* TOPPERS_TRACE_CONFIG_H */
Index: /atk2-sc3_fl850f1l/arch/logtrace/trace_dump.c
===================================================================
--- /atk2-sc3_fl850f1l/arch/logtrace/trace_dump.c	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/logtrace/trace_dump.c	(revision 117)
@@ -0,0 +1,2167 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2007-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: trace_dump.c 115 2014-12-10 01:33:17Z t_ishikawa $
+ */
+
+/*
+ *		トレースログのダンプ
+ */
+
+#include "kernel_impl.h"
+#include "task.h"
+#include "alarm.h"
+#include "scheduletable.h"
+#include "log_output.h"
+#include "Os_Lcfg.h"
+#include "t_stdlib.h" /* atk2_strerror */
+
+/*
+ *  処理単位の種別
+ */
+typedef enum {
+	PR_UNIT_TASK,       /* タスク */
+	PR_UNIT_ALARM,      /* アラーム満了処理 */
+	PR_UNIT_ISR,        /* C2ISR */
+	PR_UNIT_SCHTBL,     /* スケジュールテーブル満了処理 */
+	PR_UNIT_STA,        /* スタートアップフック */
+	PR_UNIT_ERR,        /* エラーフック */
+	PR_UNIT_PRO,        /* プロテクションフック */
+	PR_UNIT_SHUT,       /* シャットダウンフック */
+	PR_UNIT_TFN,        /* 信頼関数 */
+	PR_UNIT_STAOSAP,    /* OSAP固有スタートアップフック */
+	PR_UNIT_ERROSAP,    /* OSAP固有エラーフック */
+	PR_UNIT_SHUTOSAP    /* OSAP固有シャットダウンフック */
+} PR_UNIT_TYPE;
+
+/*
+ *  処理単位のID
+ */
+typedef struct {
+	PR_UNIT_TYPE	type;   /* 処理単位の種別 */
+	ObjectIDType	id;     /* 処理単位のID */
+} OBJ_ID;
+
+
+/* 内部関数のプロトタイプ宣言 */
+static const char8 *trace_proret_str(ProtectionReturnType ret);
+static const char8 *trace_schtblstatus_str(ScheduleTableStatusType status);
+static const char8 *atk2_task_state_str(TaskStateType state);
+static const char8 *atk2_osap_state_str(ApplicationStateType state);
+static const char8 *atk2_access_str(ObjectAccessType access);
+static uintptr trace_get_tskid(uintptr info);
+static const char8 *trace_print_tskenter(const TRACE *trace, uintptr info[]);
+static const char8 *trace_print_tskleave(const TRACE *trace, uintptr info[]);
+static const char8 *trace_print_evententer(const TRACE *trace, uintptr info[]);
+static const char8 *trace_print_eventleave(const TRACE *trace, uintptr info[]);
+static const char8 *trace_print_resenter(const TRACE *trace, uintptr info[]);
+static const char8 *trace_print_resleave(const TRACE *trace, uintptr info[]);
+static const char8 *trace_print_almenter(const TRACE *trace, uintptr info[]);
+static const char8 *trace_print_almleave(const TRACE *trace, uintptr info[]);
+static const char8 *trace_print_schtblenter(const TRACE *trace, uintptr info[]);
+static const char8 *trace_print_schtblleave(const TRACE *trace, uintptr info[]);
+static const char8 *trace_print_intenter(const TRACE *trace, uintptr info[]);
+static const char8 *trace_print_intleave(const TRACE *trace, uintptr info[]);
+static const char8 *trace_print_sysenter(const TRACE *trace, uintptr info[]);
+static const char8 *trace_print_sysleave(const TRACE *trace, uintptr info[]);
+static const char8 *trace_print_kerenter(const TRACE *trace, uintptr info[], void (*outputc)(char8 c));
+static const char8 *trace_print_osapenter(const TRACE *trace, uintptr info[]);
+static const char8 *trace_print_osapleave(const TRACE *trace, uintptr info[]);
+static const char8 *trace_print_memoryenter(const TRACE *trace, uintptr info[]);
+static void trace_get_memory_access(AccessType access, uintptr info[]);
+static const char8 *trace_print_memoryleave(const TRACE *trace, uintptr info[]);
+static const char8 *trace_print_svcenter(const TRACE *trace, uintptr info[], void (*outputc)(char8 c));
+static const char8 *trace_print_svcleave(const TRACE *trace, uintptr info[]);
+static void trace_set_context(PR_UNIT_TYPE type, ObjectIDType id);
+static void trace_push_context(PR_UNIT_TYPE type, ObjectIDType id);
+static void trace_get_context(uintptr *p_obj_type_str, uintptr *p_id);
+static void trace_pop_context(uintptr *p_obj_type_str, uintptr *p_id);
+static void trace_change_context(PR_UNIT_TYPE type, ObjectIDType id);
+static void trace_resume_context(void);
+static void trace_print(const TRACE *p_trace, void (*outputc)(char8 c));
+static const char8 *trace_print_iocleave(const TRACE *trace, uintptr info[]);
+static const char8 *trace_print_iocenter(const TRACE *trace, uintptr info[]);
+
+/*
+ *  プロテクションフックの返り値を文字列変換
+ */
+static const char8 *
+trace_proret_str(ProtectionReturnType ret)
+{
+	const char8 *proretstr;
+
+	switch (ret) {
+	case PRO_IGNORE:
+		proretstr = "IGNORE";
+		break;
+	case PRO_SHUTDOWN:
+		proretstr = "SHUTDOWN";
+		break;
+	default:
+		proretstr = "";
+		break;
+	}
+	return(proretstr);
+}
+
+/*
+ *  スケジュールテーブルの状態を文字列変換
+ */
+static const char8 *
+trace_schtblstatus_str(ScheduleTableStatusType status)
+{
+	const char8 *schtblstr;
+
+	switch (status) {
+	case SCHEDULETABLE_STOPPED:
+		schtblstr = "STOPPED";
+		break;
+	case SCHEDULETABLE_NEXT:
+		schtblstr = "NEXT";
+		break;
+	case SCHEDULETABLE_WAITING:
+		schtblstr = "WAITING";
+		break;
+	case SCHEDULETABLE_RUNNING:
+		schtblstr = "RUNNING";
+		break;
+	case SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS:
+		schtblstr = "RUNNING_AND_SYNCHRONOUS";
+		break;
+	default:
+		schtblstr = "";
+		break;
+	}
+	return(schtblstr);
+}
+
+/*
+ *  タスク状態を文字列変換
+ */
+static const char8 *
+atk2_task_state_str(TaskStateType state)
+{
+	const char8 *taskstatstr;
+
+	switch (state) {
+	case SUSPENDED:
+		taskstatstr = "SUSPENDED";
+		break;
+	case RUNNING:
+		taskstatstr = "RUNNING";
+		break;
+	case READY:
+		taskstatstr = "READY";
+		break;
+	case WAITING:
+		taskstatstr = "WAITING";
+		break;
+	default:
+		taskstatstr = "unknown state";
+		break;
+	}
+	return(taskstatstr);
+}
+
+/*
+ *  OSAP状態を文字列変換
+ */
+static const char8 *
+atk2_osap_state_str(ApplicationStateType state)
+{
+	const char8 *osapstatstr;
+
+	switch (state) {
+	case APPLICATION_ACCESSIBLE:
+		osapstatstr = "ACCESSIBLE";
+		break;
+	case APPLICATION_RESTARTING:
+		osapstatstr = "RESTARTING";
+		break;
+	case APPLICATION_TERMINATED:
+		osapstatstr = "TERMINATED";
+		break;
+	default:
+		osapstatstr = "unknown state";
+		break;
+	}
+	return(osapstatstr);
+}
+
+/*
+ *  ObjectAccessTypeを文字列変換
+ */
+static const char8 *
+atk2_access_str(ObjectAccessType access)
+{
+	const char8 *accessstr;
+
+	switch (access) {
+	case ACCESS:
+		accessstr = "ACCESS";
+		break;
+	case NO_ACCESS:
+		accessstr = "NO_ACCESS";
+		break;
+	default:
+		accessstr = "";
+		break;
+	}
+	return(accessstr);
+}
+
+/*
+ *  PR_UNIT_TYPEの処理単位種別に対応する文字列
+ */
+static const char8	*obj_type_to_str[] = {
+	"task",
+	"alarm",
+	"isr",
+	"schtbl",
+	"sta",
+	"err",
+	"pro",
+	"shut",
+	"tfn",
+	"staosap",
+	"errosap",
+	"shutosap"
+};
+
+/*
+ *  2つの引数の大きい方を返す
+ */
+#define MAX(a, b)	((a) < (b) ? (b) : (a))
+
+/*
+ *  処理単位のネストを管理するスタック
+ */
+static OBJ_ID		context_stack[MAX(4U, 1U + TNUM_ISR2)];
+
+/*
+ *  タスクが実行しているアラーム満了処理，スケジュールテーブル満了処理，
+ *  信頼関数を管理する
+ *  アラーム満了処理はIncrementCounterによりネストする場合がある
+ *  スケジュールテーブル満了処理のネストはない
+ */
+static OBJ_ID		task_exec[TNUM_TASK][TNUM_ALARM + TNUM_TFN + 1U];
+
+/*
+ *  タスクがアラーム満了処理，スケジュールテーブル満了処理，信頼関数を
+ *  実行している場合の，task_exec[task_id][index]のindexを示す
+ *  満了処理を実行していない場合は-1にする
+ */
+static sint32		task_context_index[TNUM_TASK];
+
+/*
+ *  task_execのC2ISR版
+ */
+static OBJ_ID		isr_exec[TNUM_ISR2][TNUM_ALARM + TNUM_TFN + 1U];
+
+/*
+ *  task_context_indexのC2ISR版
+ */
+static sint32		isr_context_index[TNUM_ISR2];
+
+/*
+ *  context_stackの現在のインデックス(ネスト数)を示す
+ */
+static uint32		context_index;
+
+/*
+ *  tcbからタスクIDを取得
+ */
+static uintptr
+trace_get_tskid(uintptr info)
+{
+	TCB			*p_tcb;
+	TaskType	tskid;
+
+	p_tcb = (TCB *) info;
+	if (p_tcb == NULL) {
+		tskid = 0U;
+	}
+	else {
+		tskid = TSKID(p_tcb);
+	}
+	return((uintptr) tskid);
+}
+
+
+/*
+ *  タスク管理 - 入口ログ
+ */
+static const char8 *
+trace_print_tskenter(const TRACE *trace, uintptr info[])
+{
+	uint32		type;
+	const char8	*tracemsg;
+
+	type = (const uint32) trace->loginfo[0];
+
+	switch (type) {
+
+	case TFN_ACTIVATETASK:
+		info[0] = (uintptr) atk2_tskid_str((TaskType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		tracemsg = "enter to ActivateTask TaskID=%s(%d).";
+		break;
+
+	case TFN_TERMINATETASK:
+		tracemsg = "enter to TerminateTask.";
+		break;
+
+	case TFN_CHAINTASK:
+		info[0] = (uintptr) atk2_tskid_str((TaskType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		tracemsg = "enter to ChainTask TaskID=%s(%d).";
+		break;
+
+	case TFN_SCHEDULE:
+		tracemsg = "enter to Schedule.";
+		break;
+
+	default:
+		tracemsg = "unknown service call";
+		break;
+	}
+
+	return(tracemsg);
+}
+
+
+/*
+ *  タスク管理 - 出口ログ
+ */
+static const char8 *
+trace_print_tskleave(const TRACE *trace, uintptr info[])
+{
+	uint32		type;
+	const char8	*tracemsg;
+
+	type = (const uint32) trace->loginfo[0];
+
+	switch (type) {
+
+	case TFN_ACTIVATETASK:
+		info[0] = (uintptr) atk2_strerror((StatusType) trace->loginfo[1]);
+		tracemsg = "leave from ActivateTask %s.";
+		break;
+
+	case TFN_TERMINATETASK:
+		info[0] = (uintptr) atk2_strerror((StatusType) trace->loginfo[1]);
+		tracemsg = "leave from TerminateTask %s.";
+		break;
+
+	case TFN_CHAINTASK:
+		info[0] = (uintptr) atk2_strerror((StatusType) trace->loginfo[1]);
+		tracemsg = "leave from ChainTask %s.";
+		break;
+
+	case TFN_SCHEDULE:
+		info[0] = (uintptr) atk2_strerror((StatusType) trace->loginfo[1]);
+		tracemsg = "leave from Schedule %s.";
+		break;
+
+	default:
+		tracemsg = "unknown tsk service call";
+		break;
+	}
+
+	return(tracemsg);
+}
+
+
+/*
+ *  イベント機能 - 入口ログ
+ */
+static const char8 *
+trace_print_evententer(const TRACE *trace, uintptr info[])
+{
+	uint32		type;
+	const char8	*tracemsg;
+
+	type = (const uint32) trace->loginfo[0];
+
+	switch (type) {
+	case TFN_SETEVENT:
+		info[0] = (uintptr) atk2_tskid_str((TaskType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		info[2] = (uintptr) atk2_evtid_str((TaskType) trace->loginfo[1], (EventMaskType) trace->loginfo[2]);
+		info[3] = trace->loginfo[2];
+		tracemsg = "enter to SetEvent TaskID=%s(%d)/Mask=%s(0x%x).";
+		break;
+
+	case TFN_CLEAREVENT:
+		info[0] = (uintptr) atk2_evtid_str((TaskType) trace_get_tskid(trace->loginfo[1]), (EventMaskType) trace->loginfo[2]);
+		info[1] = trace->loginfo[2];
+		tracemsg = "enter to ClearEvent Mask=%s(0x%x).";
+		break;
+
+	case TFN_GETEVENT:
+		info[0] = (uintptr) atk2_tskid_str((TaskType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		tracemsg = "enter to GetEvent TaskID=%s(%d).";
+		break;
+
+	case TFN_WAITEVENT:
+		info[0] = (uintptr) atk2_evtid_str((TaskType) trace_get_tskid(trace->loginfo[1]), (EventMaskType) trace->loginfo[2]);
+		info[1] = trace->loginfo[2];
+		tracemsg = "enter to WaitEvent Mask=%s(0x%x).";
+		break;
+
+	default:
+		tracemsg = "unknown service call";
+		break;
+	}
+
+	return(tracemsg);
+}
+
+
+/*
+ *  イベント機能 - 出口ログ
+ */
+static const char8 *
+trace_print_eventleave(const TRACE *trace, uintptr info[])
+{
+	uint32		type;
+	const char8	*tracemsg;
+
+	type = (const uint32) trace->loginfo[0];
+
+	switch (type) {
+	case TFN_SETEVENT:
+		info[0] = (uintptr) atk2_strerror((StatusType) trace->loginfo[1]);
+		tracemsg = "leave from SetEvent %s.";
+		break;
+
+	case TFN_CLEAREVENT:
+		info[0] = (uintptr) atk2_strerror((StatusType) trace->loginfo[1]);
+		tracemsg = "leave from ClearEvent %s.";
+		break;
+
+	case TFN_GETEVENT:
+		info[0] = (uintptr) atk2_strerror((StatusType) trace->loginfo[1]);
+		/* 返り値がE_OKの場合のみ，有効値が入る */
+		if (trace->loginfo[1] == E_OK) {
+			info[1] = (uintptr) atk2_evtid_str((TaskType) trace->loginfo[2], (EventMaskType) trace->loginfo[3]);
+			info[2] = trace->loginfo[3];
+			tracemsg = "leave from GetEvent %s/Mask=%s(0x%x).";
+		}
+		else {
+			tracemsg = "leave from GetEvent %s.";
+		}
+		break;
+
+	case TFN_WAITEVENT:
+		info[0] = (uintptr) atk2_strerror((StatusType) trace->loginfo[1]);
+		tracemsg = "leave from WaitEvent %s.";
+		break;
+
+	default:
+		tracemsg = "unknown servic call";
+		break;
+	}
+
+	return(tracemsg);
+}
+
+
+/*
+ *  リソース機能 - 入口ログ
+ */
+static const char8 *
+trace_print_resenter(const TRACE *trace, uintptr info[])
+{
+	uint32		type;
+	const char8	*tracemsg;
+
+	type = (const uint32) trace->loginfo[0];
+
+	switch (type) {
+	case TFN_GETRESOURCE:
+		info[0] = (uintptr) atk2_resid_str((ResourceType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		tracemsg = "enter to GetResource ResID=%s(%d).";
+		break;
+
+	case TFN_RELEASERESOURCE:
+		info[0] = (uintptr) atk2_resid_str((ResourceType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		tracemsg = "enter to ReleaseResource ResID=%s(%d).";
+		break;
+
+	default:
+		tracemsg = "unknown service call";
+		break;
+	}
+
+	return(tracemsg);
+}
+
+
+/*
+ *  リソース機能 - 出口ログ
+ */
+static const char8 *
+trace_print_resleave(const TRACE *trace, uintptr info[])
+{
+	uint32		type;
+	const char8	*tracemsg;
+
+	type = (const uint32) trace->loginfo[0];
+
+	switch (type) {
+	case TFN_GETRESOURCE:
+		info[0] = (uintptr) atk2_strerror((StatusType) trace->loginfo[1]);
+		tracemsg = "leave from GetResource %s.";
+		break;
+
+	case TFN_RELEASERESOURCE:
+		info[0] = (uintptr) atk2_strerror((StatusType) trace->loginfo[1]);
+		tracemsg = "leave from ReleaseResource %s.";
+		break;
+
+	default:
+		tracemsg = "unknown servic call";
+		break;
+	}
+
+	return(tracemsg);
+}
+
+/*
+ *  アラーム機能 - 入口ログ
+ */
+static const char8 *
+trace_print_almenter(const TRACE *trace, uintptr info[])
+{
+	uint32		type;
+	const char8	*tracemsg;
+
+	type = (const uint32) trace->loginfo[0];
+
+	switch (type) {
+	case TFN_GETALARMBASE:
+		info[0] = (uintptr) atk2_almid_str((AlarmType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		tracemsg = "enter to GetAlarmBase AlarmID=%s(%d).";
+		break;
+
+	case TFN_GETALARM:
+		info[0] = (uintptr) atk2_almid_str((AlarmType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		tracemsg = "enter to GetAlarm AlarmID=%s(%d).";
+		break;
+
+	case TFN_SETRELALARM:
+		info[0] = (uintptr) atk2_almid_str((AlarmType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		info[2] = trace->loginfo[2];
+		info[3] = trace->loginfo[3];
+		tracemsg = "enter to SetRelAlarm AlarmID=%s(%d)/increment=%d/cycle=%d.";
+		break;
+
+	case TFN_SETABSALARM:
+		info[0] = (uintptr) atk2_almid_str((AlarmType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		info[2] = trace->loginfo[2];
+		info[3] = trace->loginfo[3];
+		tracemsg = "enter to SetAbsAlarm AlarmID=%s(%d)/start=%d/cycle=%d.";
+		break;
+
+	case TFN_CANCELALARM:
+		info[0] = (uintptr) atk2_almid_str((AlarmType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		tracemsg = "enter to CancelAlarm AlarmID=%s(%d).";
+		break;
+
+	case TFN_INCREMENTCOUNTER:
+		info[0] = (uintptr) atk2_cntid_str((CounterType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		tracemsg = "enter to IncrementCounter CounterID=%s(%d).";
+		break;
+
+	case TFN_GETCOUNTERVALUE:
+		info[0] = (uintptr) atk2_cntid_str((CounterType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		tracemsg = "enter to GetCounterValue CounterID=%s(%d).";
+		break;
+
+	case TFN_GETELAPSEDVALUE:
+		info[0] = (uintptr) atk2_cntid_str((CounterType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		info[2] = trace->loginfo[2];
+		tracemsg = "enter to GetElapsedValue CounterID=%s(%d) Value=%d.";
+		break;
+
+	default:
+		tracemsg = "unknown service call";
+		break;
+	}
+
+	return(tracemsg);
+}
+
+
+/*
+ *  アラーム機能 - 出口ログ
+ */
+static const char8 *
+trace_print_almleave(const TRACE *trace, uintptr info[])
+{
+	uint32		type;
+	const char8	*tracemsg;
+
+	type = (const uint32) trace->loginfo[0];
+
+	switch (type) {
+	case TFN_GETALARMBASE:
+		info[0] = (uintptr) atk2_strerror((StatusType) trace->loginfo[1]);
+		/* 返り値がE_OKの場合のみ，有効値が入る */
+		if (trace->loginfo[1] == E_OK) {
+			info[1] = trace->loginfo[2];
+			info[2] = trace->loginfo[3];
+			info[3] = trace->loginfo[4];
+			tracemsg = "leave from GetAlarmBase %s/maxval=%d/tickbase=%d/mincyc=%d.";
+		}
+		else {
+			tracemsg = "leave from GetAlarmBase %s.";
+		}
+		break;
+
+	case TFN_GETALARM:
+		info[0] = (uintptr) atk2_strerror((StatusType) trace->loginfo[1]);
+		/* 返り値がE_OKの場合のみ，有効値が入る */
+		if (trace->loginfo[1] == E_OK) {
+			info[1] = trace->loginfo[2];
+			tracemsg = "leave from GetAlarm %s/Tick=%d.";
+		}
+		else {
+			tracemsg = "leave from GetAlarm %s.";
+		}
+		break;
+
+	case TFN_SETRELALARM:
+		info[0] = (uintptr) atk2_strerror((StatusType) trace->loginfo[1]);
+		tracemsg = "leave from SetRelAlarm %s.";
+		break;
+
+	case TFN_SETABSALARM:
+		info[0] = (uintptr) atk2_strerror((StatusType) trace->loginfo[1]);
+		tracemsg = "leave from SetAbsAlarm %s.";
+		break;
+
+	case TFN_CANCELALARM:
+		info[0] = (uintptr) atk2_strerror((StatusType) trace->loginfo[1]);
+		tracemsg = "leave from CancelAlarm %s.";
+		break;
+
+	case TFN_INCREMENTCOUNTER:
+		info[0] = (uintptr) atk2_strerror((StatusType) trace->loginfo[1]);
+		tracemsg = "leave from IncrementCounter %s.";
+		break;
+
+	case TFN_GETCOUNTERVALUE:
+		info[0] = (uintptr) atk2_strerror((StatusType) trace->loginfo[1]);
+		/* 返り値がE_OKの場合のみ，有効値が入る */
+		if (trace->loginfo[1] == E_OK) {
+			info[1] = trace->loginfo[2];
+			tracemsg = "leave from GetCounterValue %s/Value=%d.";
+		}
+		else {
+			tracemsg = "leave from GetCounterValue %s.";
+		}
+		break;
+
+	case TFN_GETELAPSEDVALUE:
+		info[0] = (uintptr) atk2_strerror((StatusType) trace->loginfo[1]);
+		/* 返り値がE_OKの場合のみ，有効値が入る */
+		if (trace->loginfo[1] == E_OK) {
+			info[1] = trace->loginfo[2];
+			info[2] = trace->loginfo[3];
+			tracemsg = "leave from GetElapsedValue %s/Value=%d/ElapsedValue=%d.";
+		}
+		else {
+			tracemsg = "leave from GetElapsedValue %s.";
+		}
+		break;
+
+	default:
+		tracemsg = "unknown servic call";
+		break;
+	}
+
+	return(tracemsg);
+}
+
+/*
+ *  スケジュールテーブル機能 - 入口ログ
+ */
+static const char8 *
+trace_print_schtblenter(const TRACE *trace, uintptr info[])
+{
+	uint32		type;
+	const char8	*tracemsg;
+
+	type = (const uint32) trace->loginfo[0];
+
+	switch (type) {
+	case TFN_STARTSCHEDULETABLEREL:
+		info[0] = (uintptr) atk2_schtblid_str((ScheduleTableType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		info[2] = trace->loginfo[2];
+		tracemsg = "enter to StartScheduleTableRel SchtblID=%s(%d)/offset=%d.";
+		break;
+
+	case TFN_STARTSCHEDULETABLEABS:
+		info[0] = (uintptr) atk2_schtblid_str((ScheduleTableType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		info[2] = trace->loginfo[2];
+		tracemsg = "enter to StartScheduleTableAbs SchtblID=%s(%d)/start=%d.";
+		break;
+
+	case TFN_STOPSCHEDULETABLE:
+		info[0] = (uintptr) atk2_schtblid_str((ScheduleTableType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		tracemsg = "enter to StopScheduleTable SchtblID=%s(%d).";
+		break;
+
+	case TFN_NEXTSCHEDULETABLE:
+		info[0] = (uintptr) atk2_schtblid_str((ScheduleTableType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		info[2] = (uintptr) atk2_schtblid_str((ScheduleTableType) trace->loginfo[2]);
+		info[3] = trace->loginfo[2];
+		tracemsg = "enter to NextScheduleTable From_ID=%s(%d)/To_ID=%s(%d).";
+		break;
+
+	case TFN_GETSCHEDULETABLESTATUS:
+		info[0] = (uintptr) atk2_schtblid_str((ScheduleTableType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		tracemsg = "enter to GetScheduleTableStatus SchtblID=%s(%d).";
+		break;
+
+	default:
+		tracemsg = "unknown service call";
+		break;
+	}
+
+	return(tracemsg);
+}
+
+/*
+ *  スケジュールテーブル - 出口ログ
+ */
+static const char8 *
+trace_print_schtblleave(const TRACE *trace, uintptr info[])
+{
+	uint32		type;
+	const char8	*tracemsg;
+
+	type = (const uint32) trace->loginfo[0];
+
+	switch (type) {
+	case TFN_STARTSCHEDULETABLEREL:
+		info[0] = (uintptr) atk2_strerror((StatusType) trace->loginfo[1]);
+		tracemsg = "leave from StartScheduleTableRel %s.";
+		break;
+
+	case TFN_STARTSCHEDULETABLEABS:
+		info[0] = (uintptr) atk2_strerror((StatusType) trace->loginfo[1]);
+		tracemsg = "leave from StartScheduleTableAbs %s.";
+		break;
+
+	case TFN_STOPSCHEDULETABLE:
+		info[0] = (uintptr) atk2_strerror((StatusType) trace->loginfo[1]);
+		tracemsg = "leave from StopScheduleTable %s.";
+		break;
+
+	case TFN_NEXTSCHEDULETABLE:
+		info[0] = (uintptr) atk2_strerror((StatusType) trace->loginfo[1]);
+		tracemsg = "leave from NextScheduleTable %s.";
+		break;
+
+	case TFN_GETSCHEDULETABLESTATUS:
+		info[0] = (uintptr) atk2_strerror((StatusType) trace->loginfo[1]);
+		/* 返り値がE_OKの場合のみ，有効値が入る */
+		if (trace->loginfo[1] == E_OK) {
+			info[1] = (uintptr) trace_schtblstatus_str((ScheduleTableStatusType) trace->loginfo[2]);
+			tracemsg = "leave from GetScheduleTableStatus %s/status=%s.";
+		}
+		else {
+			tracemsg = "leave from GetScheduleTableStatus %s.";
+		}
+		break;
+
+	default:
+		tracemsg = "unknown servic call";
+		break;
+	}
+
+	return(tracemsg);
+}
+
+/*
+ *  割込み管理機能 - 入口ログ
+ */
+static const char8 *
+trace_print_intenter(const TRACE *trace, uintptr info[])
+{
+	uint32		type;
+	const char8	*tracemsg;
+
+	type = (const uint32) trace->loginfo[0];
+
+	switch (type) {
+	case TFN_DISABLEALLINTERRUPTS:
+		tracemsg = "enter to DisableAllInterrupts.";
+		break;
+
+	case TFN_SUSPENDALLINTERRUPTS:
+		tracemsg = "enter to SuspendAllInterrupts.";
+		break;
+
+	case TFN_SUSPENDOSINTERRUPTS:
+		tracemsg = "enter to SuspendOSInterrupts.";
+		break;
+
+	case TFN_ENABLEALLINTERRUPTS:
+		tracemsg = "enter to EnableAllInterrupts.";
+		break;
+
+	case TFN_RESUMEALLINTERRUPTS:
+		tracemsg = "enter to ResumeAllInterrupts.";
+		break;
+
+	case TFN_RESUMEOSINTERRUPTS:
+		tracemsg = "enter to ResumeOSInterrupts.";
+		break;
+
+	case TFN_GETISRID:
+		tracemsg = "enter to GetISRID.";
+		break;
+
+	case TFN_DISABLEINTERRUPTSOURCE:
+		info[0] = (uintptr) atk2_isrid_str((ISRType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		tracemsg = "enter to DisableInterruptSource ISRID=%s(%d).";
+		break;
+
+	case TFN_ENABLEINTERRUPTSOURCE:
+		info[0] = (uintptr) atk2_isrid_str((ISRType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		tracemsg = "enter to EnableInterruptSource ISRID=%s(%d).";
+		break;
+
+	default:
+		tracemsg = "unknown service call";
+		break;
+	}
+
+	return(tracemsg);
+}
+
+
+/*
+ *  割込み管理機能 - 出口ログ
+ */
+static const char8 *
+trace_print_intleave(const TRACE *trace, uintptr info[])
+{
+	uint32		type;
+	const char8	*tracemsg;
+
+	type = (const uint32) trace->loginfo[0];
+
+	switch (type) {
+	case TFN_DISABLEALLINTERRUPTS:
+		tracemsg = "leave from DisableAllInterrupts.";
+		break;
+
+	case TFN_SUSPENDALLINTERRUPTS:
+		tracemsg = "leave from SuspendAllInterrupts.";
+		break;
+
+	case TFN_SUSPENDOSINTERRUPTS:
+		tracemsg = "leave from SuspendOSInterrupts.";
+		break;
+
+	case TFN_ENABLEALLINTERRUPTS:
+		tracemsg = "leave from EnableAllInterrupts.";
+		break;
+
+	case TFN_RESUMEALLINTERRUPTS:
+		tracemsg = "leave from ResumeAllInterrupts.";
+		break;
+
+	case TFN_RESUMEOSINTERRUPTS:
+		tracemsg = "leave from ResumeOSInterrupts.";
+		break;
+
+	case TFN_GETISRID:
+		info[0] = (uintptr) atk2_isrid_str((ISRType) trace->loginfo[1]);
+		info[1] = (const uintptr) trace->loginfo[1];
+		tracemsg = "leave from GetISRID id=%s(%d).";
+		break;
+
+	case TFN_DISABLEINTERRUPTSOURCE:
+		info[0] = (uintptr) atk2_strerror((StatusType) trace->loginfo[1]);
+		tracemsg = "leave from DisableInterruptSource %s.";
+		break;
+
+	case TFN_ENABLEINTERRUPTSOURCE:
+		info[0] = (uintptr) atk2_strerror((StatusType) trace->loginfo[1]);
+		tracemsg = "leave from EnableInterruptSource %s.";
+		break;
+
+	default:
+		tracemsg = "unknown servic call";
+		break;
+	}
+
+	return(tracemsg);
+}
+
+
+/*
+ *  システム状態管理機能 - 入口ログ
+ */
+static const char8 *
+trace_print_sysenter(const TRACE *trace, uintptr info[])
+{
+	uint32		type;
+	const char8	*tracemsg;
+
+	type = (const uint32) trace->loginfo[0];
+
+	switch (type) {
+	case TFN_GETTASKID:
+		tracemsg = "enter to GetTaskID.";
+		break;
+
+	case TFN_GETTASKSTATE:
+		info[0] = (uintptr) atk2_tskid_str((TaskType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		tracemsg = "enter to GetTaskState TaskID=%s(%d).";
+		break;
+
+	case TFN_GETACTIVEAPPLICATIONMODE:
+		tracemsg = "enter to GetActiveApplicationMode.";
+		break;
+
+	default:
+		tracemsg = "unknown servic call";
+		break;
+	}
+
+	return(tracemsg);
+}
+
+
+/*
+ *  システム状態管理機能 - 出口ログ
+ */
+static const char8 *
+trace_print_sysleave(const TRACE *trace, uintptr info[])
+{
+	uint32		type;
+	const char8	*tracemsg;
+
+	type = (const uint32) trace->loginfo[0];
+
+	switch (type) {
+	case TFN_GETTASKID:
+		info[0] = (uintptr) atk2_strerror((StatusType) trace->loginfo[1]);
+		/* 返り値がE_OKの場合のみ，有効値が入る */
+		if (trace->loginfo[1] == E_OK) {
+			info[1] = (uintptr) atk2_tskid_str(trace->loginfo[2]);
+			tracemsg = "leave from GetTaskID %s/TaskID=%s.";
+		}
+		else {
+			tracemsg = "leave from GetTaskID %s.";
+		}
+		break;
+
+	case TFN_GETTASKSTATE:
+		info[0] = (uintptr) atk2_strerror((StatusType) trace->loginfo[1]);
+		/* 返り値がE_OKの場合のみ，有効値が入る */
+		if (trace->loginfo[1] == E_OK) {
+			info[1] = (uintptr) atk2_task_state_str((TaskStateType) trace->loginfo[2]);
+			tracemsg = "leave from GetTaskState %s/State=%s.";
+		}
+		else {
+			tracemsg = "leave from GetTaskState %s.";
+		}
+		break;
+
+	case TFN_GETACTIVEAPPLICATIONMODE:
+		info[0] = (uintptr) atk2_appid_str((AppModeType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		tracemsg = "leave from GetActiveApplicationMode mode=%s(%d).";
+		break;
+
+	default:
+		tracemsg = "unknown servic call";
+		break;
+	}
+
+	return(tracemsg);
+}
+
+
+/*
+ *  カーネルの初期化と終了処理
+ */
+static const char8 *
+trace_print_kerenter(const TRACE *trace, uintptr info[], void (*outputc)(char8 c))
+{
+	uint32		type;
+	const char8	*tracemsg;
+	uintptr		traceinfo[TMAX_LOGINFO + 1U];
+	uint32		i;
+
+	type = (const uint32) trace->loginfo[0];
+
+	/* シャットダウン時にすべてのタスクがSUSPENDED状態となるようにする */
+	for (i = 0U; i < TNUM_TASK; i++) {
+		traceinfo[0] = (uintptr) i;
+		syslog_printf("task %d becomes SUSPENDED.\n", traceinfo, outputc);
+		traceinfo[0] = (uintptr) (trace->logtim);
+		syslog_printf("[%d] ", traceinfo, outputc);
+	}
+
+	if (type == TFN_SHUTDOWNOS) {
+		info[0] = trace->loginfo[1];
+		tracemsg = "enter to ShutdownOS Error=%d.";
+	}
+	else {
+		tracemsg = "unknown service call";
+	}
+
+	return(tracemsg);
+}
+
+/*
+ *  OSAP機能 - 入口ログ
+ */
+static const char8 *
+trace_print_osapenter(const TRACE *trace, uintptr info[])
+{
+	uint32		type;
+	const char8	*tracemsg;
+
+	type = (const uint32) trace->loginfo[0];
+
+	switch (type) {
+	case TFN_GETAPPLICATIONID:
+		tracemsg = "enter to GetApplicationID.";
+		break;
+
+	case TFN_GETAPPLICATIONSTATE:
+		info[0] = (uintptr) atk2_osapid_str((ApplicationType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		tracemsg = "enter to GetApplicationState OsapID=%s(%d).";
+		break;
+
+	case TFN_CALLTRUSTEDFUNCTION:
+		info[0] = (uintptr) atk2_tfnid_str((TrustedFunctionIndexType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		tracemsg = "enter to CallTrustedFunction FunctionID=%s(%d).";
+		break;
+
+	case TFN_CHECKTASKACCESS:
+		info[0] = (uintptr) atk2_osapid_str((ApplicationType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		info[2] = (uintptr) atk2_tskid_str((TaskType) trace->loginfo[2]);
+		info[3] = trace->loginfo[2];
+		tracemsg = "enter to CheckTaskAccess ApplID=%s(%d)/TaskID=%s(%d).";
+		break;
+
+	case TFN_CHECKISRACCESS:
+		info[0] = (uintptr) atk2_osapid_str((ApplicationType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		info[2] = (uintptr) atk2_isrid_str((ISRType) trace->loginfo[2]);
+		info[3] = trace->loginfo[2];
+		tracemsg = "enter to CheckISRAccess ApplID=%s(%d)/ISRID=%s(%d).";
+		break;
+
+	case TFN_CHECKALARMACCESS:
+		info[0] = (uintptr) atk2_osapid_str((ApplicationType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		info[2] = (uintptr) atk2_almid_str((AlarmType) trace->loginfo[2]);
+		info[3] = trace->loginfo[2];
+		tracemsg = "enter to CheckAlarmAccess ApplID=%s(%d)/AlarmID=%s(%d).";
+		break;
+
+	case TFN_CHECKRESOURCEACCESS:
+		info[0] = (uintptr) atk2_osapid_str((ApplicationType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		info[2] = (uintptr) atk2_resid_str((ResourceType) trace->loginfo[2]);
+		info[3] = trace->loginfo[2];
+		tracemsg = "enter to CheckResourceAccess ApplID=%s(%d)/ResID=%s(%d).";
+		break;
+
+	case TFN_CHECKCOUNTERACCESS:
+		info[0] = (uintptr) atk2_osapid_str((ApplicationType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		info[2] = (uintptr) atk2_cntid_str((CounterType) trace->loginfo[2]);
+		info[3] = trace->loginfo[2];
+		tracemsg = "enter to CheckCounterAccess ApplID=%s(%d)/CounterID=%s(%d).";
+		break;
+
+	case TFN_CHECKSCHEDULETABLEACCESS:
+		info[0] = (uintptr) atk2_osapid_str((ApplicationType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		info[2] = (uintptr) atk2_schtblid_str((ScheduleTableType) trace->loginfo[2]);
+		info[3] = trace->loginfo[2];
+		tracemsg = "enter to CheckScheduleTableAccess ApplID=%s(%d)/ScheduleTableID=%s(%d).";
+		break;
+
+	case TFN_CHECKTASKOWNERSHIP:
+		info[0] = (uintptr) atk2_tskid_str((TaskType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		tracemsg = "enter to CheckTaskOwnership TaskID=%s(%d).";
+		break;
+
+	case TFN_CHECKISROWNERSHIP:
+		info[0] = (uintptr) atk2_isrid_str((ISRType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		tracemsg = "enter to CheckISROwnership ISRID=%s(%d).";
+		break;
+
+	case TFN_CHECKALARMOWNERSHIP:
+		info[0] = (uintptr) atk2_almid_str((AlarmType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		tracemsg = "enter to CheckAlarmOwnership AlarmID=%s(%d).";
+		break;
+
+	case TFN_CHECKCOUNTEROWNERSHIP:
+		info[0] = (uintptr) atk2_cntid_str((CounterType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		tracemsg = "enter to CheckCounterOwnership CounterID=%s(%d).";
+		break;
+
+	case TFN_CHECKSCHEDULETABLEOWNERSHIP:
+		info[0] = (uintptr) atk2_schtblid_str((ScheduleTableType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		tracemsg = "enter to CheckScheduleTableOwnership ScheduleTableID=%s(%d).";
+		break;
+
+	default:
+		tracemsg = "unknown service call";
+		break;
+	}
+
+	return(tracemsg);
+}
+
+
+/*
+ *  OSAP機能 - 出口ログ
+ */
+static const char8 *
+trace_print_osapleave(const TRACE *trace, uintptr info[])
+{
+	uint32		type;
+	const char8	*tracemsg;
+
+	type = (const uint32) trace->loginfo[0];
+
+	switch (type) {
+	case TFN_GETAPPLICATIONID:
+		info[0] = (uintptr) atk2_osapid_str((ApplicationType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		tracemsg = "leave from GetApplicationID id=%s.";
+		break;
+
+	case TFN_GETAPPLICATIONSTATE:
+		info[0] = (uintptr) atk2_strerror((StatusType) trace->loginfo[1]);
+		/* 返り値がE_OKの場合のみ，有効値が入る */
+		if (trace->loginfo[1] == E_OK) {
+			info[1] = (uintptr) atk2_osap_state_str((ApplicationStateType) trace->loginfo[2]);
+			tracemsg = "leave from GetApplicationState %s/state=%s.";
+		}
+		else {
+			tracemsg = "leave from GetApplicationState %s.";
+		}
+		break;
+
+	case TFN_CALLTRUSTEDFUNCTION:
+		info[0] = (uintptr) atk2_strerror((StatusType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		tracemsg = "leave from CallTrustedFunction %s(%d).";
+		break;
+
+	case TFN_CHECKTASKACCESS:
+		info[0] = (uintptr) atk2_access_str((ObjectAccessType) trace->loginfo[1]);
+		tracemsg = "leave from CheckTaskAccess %s.";
+		break;
+
+	case TFN_CHECKISRACCESS:
+		info[0] = (uintptr) atk2_access_str((ObjectAccessType) trace->loginfo[1]);
+		tracemsg = "leave from CheckISRAccess %s.";
+		break;
+
+	case TFN_CHECKALARMACCESS:
+		info[0] = (uintptr) atk2_access_str((ObjectAccessType) trace->loginfo[1]);
+		tracemsg = "leave from CheckAlarmAccess %s.";
+		break;
+
+	case TFN_CHECKRESOURCEACCESS:
+		info[0] = (uintptr) atk2_access_str((ObjectAccessType) trace->loginfo[1]);
+		tracemsg = "leave from CheckResourceAccess %s.";
+		break;
+
+	case TFN_CHECKCOUNTERACCESS:
+		info[0] = (uintptr) atk2_access_str((ObjectAccessType) trace->loginfo[1]);
+		tracemsg = "leave from CheckCounterAccess %s.";
+		break;
+
+	case TFN_CHECKSCHEDULETABLEACCESS:
+		info[0] = (uintptr) atk2_access_str((ObjectAccessType) trace->loginfo[1]);
+		tracemsg = "leave from CheckScheduleTableAccess %s.";
+		break;
+
+	case TFN_CHECKTASKOWNERSHIP:
+		info[0] = (uintptr) atk2_osapid_str((ApplicationType) trace->loginfo[1]);
+		tracemsg = "leave from CheckTaskOwnership %s.";
+		break;
+
+	case TFN_CHECKISROWNERSHIP:
+		info[0] = (uintptr) atk2_osapid_str((ApplicationType) trace->loginfo[1]);
+		tracemsg = "leave from CheckISROwnership %s.";
+		break;
+
+	case TFN_CHECKALARMOWNERSHIP:
+		info[0] = (uintptr) atk2_osapid_str((ApplicationType) trace->loginfo[1]);
+		tracemsg = "leave from CheckAlarmOwnership %s.";
+		break;
+
+	case TFN_CHECKCOUNTEROWNERSHIP:
+		info[0] = (uintptr) atk2_osapid_str((ApplicationType) trace->loginfo[1]);
+		tracemsg = "leave from CheckCounterOwnership %s.";
+		break;
+
+	case TFN_CHECKSCHEDULETABLEOWNERSHIP:
+		info[0] = (uintptr) atk2_osapid_str((ApplicationType) trace->loginfo[1]);
+		tracemsg = "leave from CheckScheduleTableOwnership %s.";
+		break;
+
+	default:
+		tracemsg = "unknown servic call";
+		break;
+	}
+
+	return(tracemsg);
+}
+
+
+/*
+ *  IOC - 入口ログ
+ */
+static const char8 *
+trace_print_iocenter(const TRACE *trace, uintptr info[])
+{
+	uint32		type;
+	const char8	*tracemsg;
+
+	type = (const uint32) trace->loginfo[0];
+
+	switch (type) {
+
+	case TFN_IOC_SEND_GENERIC:
+		info[0] = trace->loginfo[1];
+		tracemsg = "enter to IocSend Sender ID=%d.";
+		break;
+
+	case TFN_IOC_WRITE_GENERIC:
+		info[0] = trace->loginfo[1];
+		tracemsg = "enter to IocWrite Sender ID=%d.";
+		break;
+
+	case TFN_IOC_RECEIVE_GENERIC:
+		info[0] = (uintptr) atk2_iocid_str((IocType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		tracemsg = "enter to IocReceive IOC ID=%s(%d).";
+		break;
+
+	case TFN_IOC_READ_GENERIC:
+		info[0] = (uintptr) atk2_iocid_str((IocType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		tracemsg = "enter to IocRead IOC ID=%s(%d).";
+		break;
+
+	case TFN_IOC_EMPTY_QUEUE_GENERIC:
+		info[0] = (uintptr) atk2_iocid_str((IocType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		tracemsg = "enter to IocEmptyQueue IOC ID=%s(%d).";
+		break;
+
+	default:
+		tracemsg = "unknown service call";
+		break;
+	}
+
+	return(tracemsg);
+}
+
+
+/*
+ *  IOC - 出口ログ
+ */
+static const char8 *
+trace_print_iocleave(const TRACE *trace, uintptr info[])
+{
+	uint32		type;
+	const char8	*tracemsg;
+
+	type = (const uint32) trace->loginfo[0];
+
+	switch (type) {
+
+	case TFN_IOC_SEND_GENERIC:
+		info[0] = (uintptr) atk2_ioc_strerror((StatusType) trace->loginfo[1]);
+		tracemsg = "leave from IocSend %s.";
+		break;
+
+	case TFN_IOC_WRITE_GENERIC:
+		info[0] = (uintptr) atk2_ioc_strerror((StatusType) trace->loginfo[1]);
+		tracemsg = "leave from IocWrite %s.";
+		break;
+
+	case TFN_IOC_RECEIVE_GENERIC:
+		info[0] = (uintptr) atk2_ioc_strerror((StatusType) trace->loginfo[1]);
+		tracemsg = "leave from IocReceive %s.";
+		break;
+
+	case TFN_IOC_READ_GENERIC:
+		info[0] = (uintptr) atk2_ioc_strerror((StatusType) trace->loginfo[1]);
+		tracemsg = "leave from IocRead %s.";
+		break;
+
+	case TFN_IOC_EMPTY_QUEUE_GENERIC:
+		info[0] = (uintptr) atk2_ioc_strerror((StatusType) trace->loginfo[1]);
+		tracemsg = "leave from IocEmptyQueue %s.";
+		break;
+
+	default:
+		tracemsg = "unknown tsk service call";
+		break;
+	}
+
+	return(tracemsg);
+}
+
+/*
+ *  メモリアクセス関連機能 - 入口ログ
+ */
+static const char8 *
+trace_print_memoryenter(const TRACE *trace, uintptr info[])
+{
+	uint32		type;
+	const char8	*tracemsg;
+
+	type = (const uint32) trace->loginfo[0];
+
+	switch (type) {
+	case TFN_CHECKISRMEMORYACCESS:
+		info[0] = (uintptr) atk2_isrid_str((ISRType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		info[2] = trace->loginfo[2];
+		info[3] = trace->loginfo[3];
+		tracemsg = "enter to CheckISRMemoryAccess ISRID=%s(%d)/Address=0x%x/Size=0x%x.";
+		break;
+
+	case TFN_CHECKTASKMEMORYACCESS:
+		info[0] = (uintptr) atk2_isrid_str((ISRType) trace->loginfo[1]);
+		info[1] = trace->loginfo[1];
+		info[2] = trace->loginfo[2];
+		info[3] = trace->loginfo[3];
+		tracemsg = "enter to CheckTaskMemoryAccess TaskID=%s(%d)/Address=0x%x/Size=0x%x.";
+		break;
+
+	default:
+		tracemsg = "unknown servic call";
+		break;
+	}
+
+	return(tracemsg);
+}
+
+/*
+ *  AccessTypeを文字列変換
+ */
+static void
+trace_get_memory_access(AccessType access, uintptr info[])
+{
+	boolean add_slash = FALSE;
+
+	info[0] = (uintptr) "";
+	info[1] = (uintptr) "";
+	info[2] = (uintptr) "";
+	info[3] = (uintptr) "";
+
+	if (OSMEMORY_IS_STACKSPACE(access) != AP_NoAccess) {
+		info[3] = (uintptr) "Stack";
+		add_slash = TRUE;
+	}
+	if (OSMEMORY_IS_EXECUTABLE(access) != AP_NoAccess) {
+		if (add_slash != FALSE) {
+			info[2] = (uintptr) "Exec/";
+		}
+		else {
+			info[2] = (uintptr) "Exec";
+		}
+		add_slash = TRUE;
+	}
+	if (OSMEMORY_IS_WRITEABLE(access) != AP_NoAccess) {
+		if (add_slash != FALSE) {
+			info[1] = (uintptr) "Write/";
+		}
+		else {
+			info[1] = (uintptr) "Write";
+		}
+		add_slash = TRUE;
+	}
+	if (OSMEMORY_IS_READABLE(access) != AP_NoAccess) {
+		if (add_slash != FALSE) {
+			info[0] = (uintptr) "Read/";
+		}
+		else {
+			info[0] = (uintptr) "Read";
+		}
+		add_slash = TRUE;
+	}
+	if (add_slash == FALSE) {
+		info[0] = (uintptr) "NoAccess";
+	}
+}
+
+/*
+ *  メモリアクセス関連機能 - 出口ログ
+ */
+static const char8 *
+trace_print_memoryleave(const TRACE *trace, uintptr info[])
+{
+	uint32		type;
+	const char8	*tracemsg;
+
+	type = (const uint32) trace->loginfo[0];
+
+	switch (type) {
+	case TFN_CHECKISRMEMORYACCESS:
+		trace_get_memory_access((AccessType) trace->loginfo[1], info);
+		tracemsg = "leave from CheckISRMemoryAccess %s%s%s%s.";
+		break;
+
+	case TFN_CHECKTASKMEMORYACCESS:
+		trace_get_memory_access((AccessType) trace->loginfo[1], info);
+		tracemsg = "leave from CheckTaskMemoryAccess %s%s%s%s.";
+		break;
+
+	default:
+		tracemsg = "unknown servic call";
+		break;
+	}
+
+	return(tracemsg);
+}
+
+
+/*
+ *  システムコールの入口ログ(LOG_TYPE_SVC|ENTER)
+ */
+static const char8 *
+trace_print_svcenter(const TRACE *trace, uintptr info[], void (*outputc)(char8 c))
+{
+	uint32		type;
+	const char8	*tracemsg;
+
+	type = (const uint32) trace->loginfo[0];
+
+	switch (type) {
+
+	/* タスク管理 */
+	case TFN_ACTIVATETASK:
+	case TFN_TERMINATETASK:
+	case TFN_CHAINTASK:
+	case TFN_SCHEDULE:
+		tracemsg = trace_print_tskenter(trace, info);
+		break;
+
+	/* イベント機能 */
+	case TFN_SETEVENT:
+	case TFN_CLEAREVENT:
+	case TFN_GETEVENT:
+	case TFN_WAITEVENT:
+		tracemsg = trace_print_evententer(trace, info);
+		break;
+
+	/* リソース機能 */
+	case TFN_RELEASERESOURCE:
+	case TFN_GETRESOURCE:
+		tracemsg = trace_print_resenter(trace, info);
+		break;
+
+	/* アラーム機能 */
+	case TFN_GETALARMBASE:
+	case TFN_GETALARM:
+	case TFN_SETRELALARM:
+	case TFN_SETABSALARM:
+	case TFN_CANCELALARM:
+	case TFN_INCREMENTCOUNTER:
+	case TFN_GETCOUNTERVALUE:
+	case TFN_GETELAPSEDVALUE:
+		tracemsg = trace_print_almenter(trace, info);
+		break;
+
+	/* スケジュールテーブル機能 */
+	case TFN_STARTSCHEDULETABLEREL:
+	case TFN_STARTSCHEDULETABLEABS:
+	case TFN_STOPSCHEDULETABLE:
+	case TFN_NEXTSCHEDULETABLE:
+	case TFN_GETSCHEDULETABLESTATUS:
+		tracemsg = trace_print_schtblenter(trace, info);
+		break;
+
+	/* 割込み管理機能 */
+	case TFN_DISABLEALLINTERRUPTS:
+	case TFN_SUSPENDALLINTERRUPTS:
+	case TFN_SUSPENDOSINTERRUPTS:
+	case TFN_ENABLEALLINTERRUPTS:
+	case TFN_RESUMEALLINTERRUPTS:
+	case TFN_RESUMEOSINTERRUPTS:
+	case TFN_GETISRID:
+	case TFN_DISABLEINTERRUPTSOURCE:
+	case TFN_ENABLEINTERRUPTSOURCE:
+		tracemsg = trace_print_intenter(trace, info);
+		break;
+
+	/* システム状態管理機能 */
+	case TFN_GETTASKID:
+	case TFN_GETTASKSTATE:
+	case TFN_GETACTIVEAPPLICATIONMODE:
+		tracemsg = trace_print_sysenter(trace, info);
+		break;
+
+	/* カーネルの初期化と終了処理 */
+	case TFN_SHUTDOWNOS:
+		tracemsg = trace_print_kerenter(trace, info, outputc);
+		break;
+
+	/* OSAP機能 */
+	case TFN_GETAPPLICATIONID:
+	case TFN_GETAPPLICATIONSTATE:
+	case TFN_CALLTRUSTEDFUNCTION:
+	case TFN_CHECKTASKACCESS:
+	case TFN_CHECKISRACCESS:
+	case TFN_CHECKALARMACCESS:
+	case TFN_CHECKRESOURCEACCESS:
+	case TFN_CHECKCOUNTERACCESS:
+	case TFN_CHECKSCHEDULETABLEACCESS:
+	case TFN_CHECKTASKOWNERSHIP:
+	case TFN_CHECKISROWNERSHIP:
+	case TFN_CHECKALARMOWNERSHIP:
+	case TFN_CHECKCOUNTEROWNERSHIP:
+	case TFN_CHECKSCHEDULETABLEOWNERSHIP:
+		tracemsg = trace_print_osapenter(trace, info);
+		break;
+
+	/* IOC機能 */
+	case TFN_IOC_SEND_GENERIC:
+	case TFN_IOC_WRITE_GENERIC:
+	case TFN_IOC_RECEIVE_GENERIC:
+	case TFN_IOC_READ_GENERIC:
+	case TFN_IOC_EMPTY_QUEUE_GENERIC:
+		tracemsg = trace_print_iocenter(trace, info);
+		break;
+
+	/* メモリアクセス関連機能 */
+	case TFN_CHECKISRMEMORYACCESS:
+	case TFN_CHECKTASKMEMORYACCESS:
+		tracemsg = trace_print_memoryenter(trace, info);
+		break;
+
+	default:
+		tracemsg = "unknown LOG_TYPE_SVC|ENTER service call";
+		break;
+	}
+	return(tracemsg);
+}
+
+
+/*
+ *  システムコールの出口ログ(LOG_TYPE_SVC|LEAVE)
+ */
+static const char8 *
+trace_print_svcleave(const TRACE *trace, uintptr info[])
+{
+	uint32		type;
+	const char8	*tracemsg;
+
+	type = (const uint32) trace->loginfo[0];
+
+	switch (type) {
+	case TFN_ACTIVATETASK:
+	case TFN_TERMINATETASK:
+	case TFN_CHAINTASK:
+	case TFN_SCHEDULE:
+		/* タスク管理 */
+		tracemsg = trace_print_tskleave(trace, info);
+		break;
+
+	/* イベント機能 */
+	case TFN_SETEVENT:
+	case TFN_CLEAREVENT:
+	case TFN_GETEVENT:
+	case TFN_WAITEVENT:
+		tracemsg = trace_print_eventleave(trace, info);
+		break;
+
+	/* リソース機能 */
+	case TFN_RELEASERESOURCE:
+	case TFN_GETRESOURCE:
+		tracemsg = trace_print_resleave(trace, info);
+		break;
+
+	/* アラーム機能 */
+	case TFN_GETALARMBASE:
+	case TFN_GETALARM:
+	case TFN_SETRELALARM:
+	case TFN_SETABSALARM:
+	case TFN_CANCELALARM:
+	case TFN_INCREMENTCOUNTER:
+	case TFN_GETCOUNTERVALUE:
+	case TFN_GETELAPSEDVALUE:
+		tracemsg = trace_print_almleave(trace, info);
+		break;
+
+	/* スケジュールテーブル機能 */
+	case TFN_STARTSCHEDULETABLEREL:
+	case TFN_STARTSCHEDULETABLEABS:
+	case TFN_STOPSCHEDULETABLE:
+	case TFN_NEXTSCHEDULETABLE:
+	case TFN_GETSCHEDULETABLESTATUS:
+		tracemsg = trace_print_schtblleave(trace, info);
+		break;
+
+	/* 割込み管理機能 */
+	case TFN_DISABLEALLINTERRUPTS:
+	case TFN_SUSPENDALLINTERRUPTS:
+	case TFN_SUSPENDOSINTERRUPTS:
+	case TFN_ENABLEALLINTERRUPTS:
+	case TFN_RESUMEALLINTERRUPTS:
+	case TFN_RESUMEOSINTERRUPTS:
+	case TFN_GETISRID:
+	case TFN_DISABLEINTERRUPTSOURCE:
+	case TFN_ENABLEINTERRUPTSOURCE:
+		tracemsg = trace_print_intleave(trace, info);
+		break;
+
+	/* システム状態管理機能 */
+	case TFN_GETTASKID:
+	case TFN_GETTASKSTATE:
+	case TFN_GETACTIVEAPPLICATIONMODE:
+		tracemsg = trace_print_sysleave(trace, info);
+		break;
+
+	/* OSAP機能 */
+	case TFN_GETAPPLICATIONID:
+	case TFN_GETAPPLICATIONSTATE:
+	case TFN_CALLTRUSTEDFUNCTION:
+	case TFN_CHECKTASKACCESS:
+	case TFN_CHECKISRACCESS:
+	case TFN_CHECKALARMACCESS:
+	case TFN_CHECKRESOURCEACCESS:
+	case TFN_CHECKCOUNTERACCESS:
+	case TFN_CHECKSCHEDULETABLEACCESS:
+	case TFN_CHECKTASKOWNERSHIP:
+	case TFN_CHECKISROWNERSHIP:
+	case TFN_CHECKALARMOWNERSHIP:
+	case TFN_CHECKCOUNTEROWNERSHIP:
+	case TFN_CHECKSCHEDULETABLEOWNERSHIP:
+		tracemsg = trace_print_osapleave(trace, info);
+		break;
+
+	/* IOC機能 */
+	case TFN_IOC_SEND_GENERIC:
+	case TFN_IOC_WRITE_GENERIC:
+	case TFN_IOC_RECEIVE_GENERIC:
+	case TFN_IOC_READ_GENERIC:
+	case TFN_IOC_EMPTY_QUEUE_GENERIC:
+		tracemsg = trace_print_iocleave(trace, info);
+		break;
+
+	/* メモリアクセス関連機能 */
+	case TFN_CHECKISRMEMORYACCESS:
+	case TFN_CHECKTASKMEMORYACCESS:
+		tracemsg = trace_print_memoryleave(trace, info);
+		break;
+
+
+	default:
+		tracemsg = "unknown LOG_TYPE_SVC|LEAVE servic call";
+		break;
+	}
+
+	return(tracemsg);
+}
+
+/*
+ *  処理単位を切り替える
+ *  通常はtrace_push_contextから呼ばれるが，
+ *  trace_push_contextを経由しない場合もある(タスク，スタートアップフック)
+ */
+static void
+trace_set_context(PR_UNIT_TYPE type, ObjectIDType id)
+{
+	context_stack[context_index].type = type;
+	context_stack[context_index].id = id;
+}
+
+/*
+ *  処理単位スタックにtype, idで指定される処理単位をプッシュする
+ */
+static void
+trace_push_context(PR_UNIT_TYPE type, ObjectIDType id)
+{
+	context_index++;
+	trace_set_context(type, id);
+}
+
+/*
+ *  現在の処理単位を返す
+ *  p_obj_type_strには処理単位種別の文字列を入れる
+ *  p_idには処理単位のIDを入れる
+ *  タスク，C2ISR実行中の場合で，アラーム満了処理，
+ *  スケジュールテーブル満了処理，信頼関数を行なっている場合は，それらを
+ *  現在の処理単位として返す
+ */
+static void
+trace_get_context(uintptr *p_obj_type_str, uintptr *p_id)
+{
+	PR_UNIT_TYPE	type;
+	ObjectIDType	id;
+	sint32			index;
+
+	type = context_stack[context_index].type;
+	id = context_stack[context_index].id;
+	if (type == PR_UNIT_TASK) {
+		index = task_context_index[id];
+		if (index >= 0) {
+			id = task_exec[id][index].id;
+			type = task_exec[id][index].type;
+		}
+	}
+	else if (type == PR_UNIT_ISR) {
+		index = isr_context_index[id];
+		if (index >= 0) {
+			id = isr_exec[id][index].id;
+			type = isr_exec[id][index].type;
+		}
+	}
+	else {
+		/* typeが上記以外の場合，処理は行わない */
+	}
+	*p_obj_type_str = (const uintptr) obj_type_to_str[type];
+	*p_id = (uintptr) id;
+}
+
+/*
+ *  trace_push_contextでプッシュした処理単位をポップ（取り除く）する
+ *  1つ前の処理単位を返す
+ */
+static void
+trace_pop_context(uintptr *p_obj_type_str, uintptr *p_id)
+{
+	context_index--;
+	trace_get_context(p_obj_type_str, p_id);
+}
+
+/*
+ *  タスク，C2ISR実行中にアラーム満了処理，スケジュールテーブ
+ *  ル満了処理，信頼関数が発生した場合に，現在の処理単位をそれらの満了処理にする
+ */
+static void
+trace_change_context(PR_UNIT_TYPE type, ObjectIDType id)
+{
+	sint32		index;
+	TaskType	tskid;
+	ISRType		isrid;
+	if (context_stack[context_index].type == PR_UNIT_TASK) {
+		tskid = context_stack[context_index].id;
+		task_context_index[tskid]++;
+		index = task_context_index[tskid];
+		task_exec[tskid][index].id = id;
+		task_exec[tskid][index].type = type;
+	}
+	else if (context_stack[context_index].type == PR_UNIT_ISR) {
+		isrid = context_stack[context_index].id;
+		isr_context_index[isrid]++;
+		index = isr_context_index[isrid];
+		isr_exec[isrid][index].id = id;
+		isr_exec[isrid][index].type = type;
+	}
+	else {
+		/* ここには来ない．万が一来た場合，以降のログ内容が未保証となる */
+	}
+}
+
+/*
+ *  タスク，C2ISR実行中のアラーム満了処理，スケジュールテーブ
+ *  ル満了処理，信頼関数の終了時に呼び出し，処理単位を戻す
+ */
+static void
+trace_resume_context(void)
+{
+	TaskType	tskid;
+	ISRType		isrid;
+	if (context_stack[context_index].type == PR_UNIT_TASK) {
+		tskid = context_stack[context_index].id;
+		task_context_index[tskid]--;
+	}
+	else if (context_stack[context_index].type == PR_UNIT_ISR) {
+		isrid = context_stack[context_index].id;
+		isr_context_index[isrid]--;
+	}
+	else {
+		/* ここには来ない．万が一来た場合，以降のログ内容が未保証となる */
+	}
+}
+
+/*
+ *  トレースログの表示
+ */
+static void
+trace_print(const TRACE *p_trace, void (*outputc)(char8 c))
+{
+	uintptr				traceinfo[TMAX_LOGINFO + 1U];
+	const char8			*tracemsg;
+	uint32				i;
+	TaskType			tskid;
+	AlarmType			almid;
+	ISRType				isrid;
+	ScheduleTableType	schtblid;
+	ApplicationType		osapid;
+
+	traceinfo[0] = (uintptr) (p_trace->logtim);
+	syslog_printf("[%d] ", traceinfo, outputc);
+
+	switch (p_trace->logtype) {
+	/* C2ISRの開始 */
+	case LOG_TYPE_ISR | LOG_ENTER:
+		isrid = p_trace->loginfo[0];
+		trace_push_context(PR_UNIT_ISR, isrid);
+
+		traceinfo[0] = (uintptr) isrid;
+		tracemsg = "enter to isr %d.";
+		break;
+
+	/* C2ISRの終了 */
+	case LOG_TYPE_ISR | LOG_LEAVE:
+		isrid = p_trace->loginfo[0];
+
+		traceinfo[0] = (uintptr) isrid;
+		trace_pop_context(&(traceinfo[1]), &(traceinfo[2]));
+		tracemsg = "leave from isr %d, context is %s %d.";
+		break;
+
+	/* アラーム満了処理の開始 */
+	case LOG_TYPE_ALM | LOG_ENTER:
+		almid = (uintptr) (((ALMCB *) (p_trace->loginfo[0])) - almcb_table);
+		trace_change_context(PR_UNIT_ALARM, almid);
+
+		traceinfo[0] = (uintptr) almid;
+		tracemsg = "enter to alarm %d.";
+		break;
+
+	/* アラーム満了処理の終了 */
+	case LOG_TYPE_ALM | LOG_LEAVE:
+		almid = (uintptr) (((ALMCB *) (p_trace->loginfo[0])) - almcb_table);
+		trace_resume_context();
+
+		traceinfo[0] = (uintptr) almid;
+		trace_get_context(&(traceinfo[1]), &(traceinfo[2]));
+		tracemsg = "leave from alarm %d, context is %s %d.";
+		break;
+
+	/* スケジュールテーブル満了処理の開始 */
+	case LOG_TYPE_SCHTBL | LOG_ENTER:
+		schtblid = (uintptr) (((SCHTBLCB *) (p_trace->loginfo[0])) - schtblcb_table);
+		trace_change_context(PR_UNIT_SCHTBL, schtblid);
+
+		traceinfo[0] = (uintptr) schtblid;
+		tracemsg = "enter to scheduletable %d.";
+		break;
+
+	/* スケジュールテーブル満了処理の終了 */
+	case LOG_TYPE_SCHTBL | LOG_LEAVE:
+		schtblid = (uintptr) (((SCHTBLCB *) (p_trace->loginfo[0])) - schtblcb_table);
+		trace_resume_context();
+
+		traceinfo[0] = (uintptr) schtblid;
+		trace_get_context(&(traceinfo[1]), &(traceinfo[2]));
+		tracemsg = "leave from scheduletable %d, context is %s %d.";
+		break;
+
+	/* スタートアップフックの開始 */
+	case LOG_TYPE_STAHOOK | LOG_ENTER:
+		trace_set_context(PR_UNIT_STA, 0U);
+		tracemsg = "enter to startup hook.";
+		break;
+
+	/* スタートアップフックの終了 */
+	case LOG_TYPE_STAHOOK | LOG_LEAVE:
+		tracemsg = "leave from startup hook.";
+		break;
+
+	/* エラーフックの開始 */
+	case LOG_TYPE_ERRHOOK | LOG_ENTER:
+		trace_push_context(PR_UNIT_ERR, 0U);
+
+		traceinfo[0] = (uintptr) atk2_strerror((StatusType) p_trace->loginfo[0]);
+		tracemsg = "enter to error hook ercd=%s.";
+		break;
+
+	/* エラーフックの終了 */
+	case LOG_TYPE_ERRHOOK | LOG_LEAVE:
+		trace_pop_context(&(traceinfo[0]), &(traceinfo[1]));
+		tracemsg = "leave from error hook, context is %s %d.";
+		break;
+
+	/* プロテクションフックの開始 */
+	case LOG_TYPE_PROHOOK | LOG_ENTER:
+		trace_push_context(PR_UNIT_PRO, 0U);
+
+		traceinfo[0] = (uintptr) atk2_strerror((StatusType) p_trace->loginfo[0]);
+		tracemsg = "enter to protection hook ercd=%s.";
+		break;
+
+	/* プロテクションフックの終了 */
+	case LOG_TYPE_PROHOOK | LOG_LEAVE:
+		traceinfo[0] = (uintptr) trace_proret_str((ProtectionReturnType) p_trace->loginfo[0]);
+		trace_pop_context(&(traceinfo[1]), &(traceinfo[2]));
+		tracemsg = "leave from protection hook ercd=%s, context is %s %d.";
+		break;
+
+	/* シャットダウンフックの開始 */
+	case LOG_TYPE_SHUTHOOK | LOG_ENTER:
+		trace_push_context(PR_UNIT_SHUT, 0U);
+
+		traceinfo[0] = (uintptr) atk2_strerror((StatusType) p_trace->loginfo[0]);
+		tracemsg = "enter to shutdown hook ercd=%s.";
+		break;
+
+	/* シャットダウンフックの終了 */
+	case LOG_TYPE_SHUTHOOK | LOG_LEAVE:
+		trace_pop_context(&(traceinfo[0]), &(traceinfo[1]));
+		tracemsg = "leave from shutdown hook.";
+		break;
+
+	/* 信頼関数の開始 */
+	case LOG_TYPE_TFN | LOG_ENTER:
+		trace_change_context(PR_UNIT_TFN, p_trace->loginfo[0]);
+
+		traceinfo[0] = (const uintptr) p_trace->loginfo[0];
+		tracemsg = "enter to trusted function %d.";
+		break;
+
+	/* 信頼関数の終了 */
+	case LOG_TYPE_TFN | LOG_LEAVE:
+		trace_resume_context();
+
+		traceinfo[0] = (const uintptr) p_trace->loginfo[0];
+		traceinfo[1] = (uintptr) atk2_strerror((StatusType) p_trace->loginfo[1]);
+		traceinfo[2] = p_trace->loginfo[1];
+		trace_get_context(&(traceinfo[3]), &(traceinfo[4]));
+		tracemsg = "leave from trusted function %d ercd=%s(%d), context is %s %d.";
+		break;
+
+	/* OSAP固有スタートアップフックの開始 */
+	case LOG_TYPE_STAHOOKOSAP | LOG_ENTER:
+		trace_set_context(PR_UNIT_STAOSAP, p_trace->loginfo[0]);
+
+		traceinfo[0] = (const uintptr) p_trace->loginfo[0];
+		tracemsg = "enter to startup hook OSAP %d.";
+		break;
+
+	/* OSAP固有スタートアップフックの終了 */
+	case LOG_TYPE_STAHOOKOSAP | LOG_LEAVE:
+		traceinfo[0] = (const uintptr) p_trace->loginfo[0];
+		tracemsg = "leave from startup hook OSAP %d.";
+		break;
+
+	/* OSAP固有エラーフックの開始 */
+	case LOG_TYPE_ERRHOOKOSAP | LOG_ENTER:
+		osapid = OSAPID((const OSAPCB *) p_trace->loginfo[0]);
+		trace_push_context(PR_UNIT_ERROSAP, (ObjectIDType) osapid);
+
+		traceinfo[0] = (uintptr) osapid;
+		traceinfo[1] = (uintptr) atk2_strerror((StatusType) p_trace->loginfo[1]);
+		tracemsg = "enter to error hook OSAP %d ercd=%s.";
+		break;
+
+	/* OSAP固有エラーフックの終了 */
+	case LOG_TYPE_ERRHOOKOSAP | LOG_LEAVE:
+		osapid = OSAPID((const OSAPCB *) p_trace->loginfo[0]);
+
+		traceinfo[0] = (uintptr) osapid;
+		trace_pop_context(&(traceinfo[1]), &(traceinfo[2]));
+		tracemsg = "leave from error hook OSAP %d, context is %s %d.";
+		break;
+
+	/* OSAP固有シャットダウンフックの開始 */
+	case LOG_TYPE_SHUTHOOKOSAP | LOG_ENTER:
+		trace_push_context(PR_UNIT_SHUTOSAP, p_trace->loginfo[0]);
+
+		traceinfo[0] = (const uintptr) p_trace->loginfo[0];
+		traceinfo[1] = (uintptr) atk2_strerror((StatusType) p_trace->loginfo[1]);
+		tracemsg = "enter to shutdown hook OSAP %d ercd=%s.";
+		break;
+
+	/* OSAP固有シャットダウンフックの終了 */
+	case LOG_TYPE_SHUTHOOKOSAP | LOG_LEAVE:
+		traceinfo[0] = (const uintptr) p_trace->loginfo[0];
+		trace_pop_context(&(traceinfo[1]), &(traceinfo[2]));
+		tracemsg = "leave from shutdown hook OSAP %d.";
+		break;
+
+	/* タスク状態の変化 */
+	case LOG_TYPE_TSKSTAT:
+		traceinfo[0] = trace_get_tskid(p_trace->loginfo[0]);
+		traceinfo[1] = (uintptr) atk2_task_state_str((TaskStateType) p_trace->loginfo[1]);
+		tracemsg = "task %d becomes %s.";
+		break;
+
+	/* ディスパッチャの入口 */
+	case LOG_TYPE_DSP | LOG_ENTER:
+		traceinfo[0] = trace_get_tskid(p_trace->loginfo[0]);
+		tracemsg = "dispatch from task %d.";
+		break;
+
+	/* ディスパッチャの出口 */
+	case LOG_TYPE_DSP | LOG_LEAVE:
+		tskid = (TaskType) trace_get_tskid(p_trace->loginfo[0]);
+		traceinfo[0] = (uintptr) tskid;
+		trace_set_context(PR_UNIT_TASK, tskid);
+		/* 満了処理をしているかもしれないので，現在の処理単位を取得する */
+		trace_get_context(&(traceinfo[1]), &(traceinfo[2]));
+
+		if (traceinfo[1] != (const uintptr) obj_type_to_str[PR_UNIT_TASK]) {
+			tracemsg = "dispatch to task %d, executing %s %d.";
+		}
+		else {
+			tracemsg = "dispatch to task %d.";
+		}
+		break;
+
+	/* システムサービスの入口 */
+	case LOG_TYPE_SVC | LOG_ENTER:
+		tracemsg = trace_print_svcenter(p_trace, traceinfo, outputc);
+		break;
+
+	/* システムサービスの出口 */
+	case LOG_TYPE_SVC | LOG_LEAVE:
+		tracemsg = trace_print_svcleave(p_trace, traceinfo);
+		break;
+
+	case LOG_TYPE_COMMENT:
+		for (i = 1U; i < TMAX_LOGINFO; i++) {
+			traceinfo[i - 1U] = p_trace->loginfo[i];
+		}
+		tracemsg = (const char8 *) (p_trace->loginfo[0]);
+		break;
+
+	case LOG_TYPE_ASSERT:
+		traceinfo[0] = p_trace->loginfo[0];
+		traceinfo[1] = p_trace->loginfo[1];
+		traceinfo[2] = p_trace->loginfo[2];
+		tracemsg = "%s:%u: Assertion '%s' failed.";
+		break;
+
+	case LOG_TYPE_USER_MARK:
+		traceinfo[0] = p_trace->loginfo[0];
+		tracemsg = "user mark=%s.";
+		break;
+
+	default:
+		traceinfo[0] = p_trace->logtype;
+		tracemsg = "unknown trace log type: %d.";
+		break;
+	}
+	syslog_printf(tracemsg, traceinfo, outputc);
+	(*outputc)('\n');
+}
+
+/*
+ *  トレースログのダンプ
+ */
+void
+trace_dump(void (*exinf)(char8 c))
+{
+	TRACE	trace;
+	void	(*outputc)(char8 c);
+	uint32	i;
+
+	for (i = 0U; i < TNUM_TASK; i++) {
+		task_context_index[i] = -1;
+	}
+	for (i = 0U; i < TNUM_ISR2; i++) {
+		isr_context_index[i] = -1;
+	}
+
+	outputc = exinf;
+	while (trace_rea_log(&trace) == E_OK) {
+		trace_print(&trace, outputc);
+	}
+	syslog(LOG_NOTICE, "sizeof TRACE=%d", sizeof(TRACE));
+
+}
Index: /atk2-sc3_fl850f1l/arch/v850_ccrh/MANIFEST
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ccrh/MANIFEST	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ccrh/MANIFEST	(revision 117)
@@ -0,0 +1,26 @@
+PACKAGE atk2-sc3
+
+MANIFEST
+Platform_Types.h
+prc.py
+prc.tf
+prc_asm.tf
+prc_cfg1_out.h
+prc_def.csv
+prc_inline_symbols.h
+prc_insn.h
+prc_kernel.h
+prc_mem.arxml
+prc_mem.tf
+prc_mem.yaml
+prc_meminib.tf
+prc_offset.tf
+prc_support.asm
+prc_svc.h
+prc_tool.c
+prc_tool.h
+prc_tool_asm.asm
+prc_user.txt
+prc_design.txt
+start.asm
+v850asm.inc
Index: /atk2-sc3_fl850f1l/arch/v850_ccrh/Platform_Types.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ccrh/Platform_Types.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ccrh/Platform_Types.h	(revision 117)
@@ -0,0 +1,130 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2013 by FUJISOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by FUJITSU VLSI LIMITED, JAPAN
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2013 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2013 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2013 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2013 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2013 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013 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: Platform_Types.h 182 2015-06-24 07:14:37Z t_ishikawa $
+ */
+
+/*
+ *		AUTOSAR platform types header file
+ */
+
+#ifndef TOPPERS_PLATFORM_TYPES_H
+#define TOPPERS_PLATFORM_TYPES_H
+
+/*
+ *  Symbol definitions - general
+ */
+#define CPU_TYPE_8		UINT_C(8)
+#define CPU_TYPE_16		UINT_C(16)
+#define CPU_TYPE_32		UINT_C(32)
+
+#define MSB_FIRST		UINT_C(0)
+#define LSB_FIRST		UINT_C(1)
+
+#define HIGH_BYTE_FIRST	UINT_C(0)
+#define LOW_BYTE_FIRST	UINT_C(1)
+
+#ifndef TRUE
+#define TRUE			UINT_C(1)
+#endif /* TRUE */
+
+#ifndef FALSE
+#define FALSE			UINT_C(0)
+#endif /* FALSE */
+
+/*
+ *  Symbol definitions - platform
+ */
+#define CPU_TYPE		(CPU_TYPE_32)
+#define CPU_BIT_ORDER	(MSB_FIRST)
+#define CPU_BYTE_ORDER	(LOW_BYTE_FIRST)
+
+/*
+ *  Stack definitions - platform
+ *  セクション配置はpragmaで実施するため，
+ *  prc_tool.c で非依存部で必要な変数の
+ *  セクション配置指定を実施する
+ */
+#define DEFINE_VAR_SEC_NOBITS(type, var, sec)   extern type var
+
+/*
+ *  Type definitions
+ */
+#ifndef TOPPERS_MACRO_ONLY
+
+typedef unsigned char boolean;
+
+typedef char				char8;
+typedef unsigned char		uint8;
+typedef signed char			sint8;
+typedef unsigned short		uint16;
+typedef signed short		sint16;
+typedef unsigned int		uint32;
+typedef signed int			sint32;
+typedef unsigned long long	uint64;
+typedef signed long long	sint64;
+
+typedef unsigned long	uint8_least;
+typedef unsigned long	uint16_least;
+typedef unsigned long	uint32_least;
+typedef signed long		sint8_least;
+typedef signed long		sint16_least;
+typedef signed long		sint32_least;
+
+typedef float	float32;
+typedef double	float64;
+
+typedef uint32	uintptr;                /* ポインタを格納できる符号無し整数 */
+typedef sint32	sintptr;                /* ポインタを格納できる符号付き整数 */
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#if !defined(TOPPERS_CFG1_OUT) && defined(TOPPERS_KERNEL_IMPL_H)
+#pragma section kernel
+#endif
+
+#endif /* TOPPERS_PLATFORM_TYPES_H */
Index: /atk2-sc3_fl850f1l/arch/v850_ccrh/prc.py
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ccrh/prc.py	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ccrh/prc.py	(revision 117)
@@ -0,0 +1,50 @@
+#!python
+# -*- coding: euc-jp -*-
+#
+#  TOPPERS ATK2
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+#      Automotive Kernel Version 2
+#
+#  Copyright (C) 2014-2015 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#
+#  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+# $Id: prc.py 182 2015-06-24 07:14:37Z t_ishikawa $
+#
+
+CFG1_DEF_TABLES = CFG1_DEF_TABLES + ["arch/v850_ccrh/prc_def.csv", "arch/v850_gcc/prc_def.csv"]
+INCLUDES = INCLUDES + ["arch/v850_ccrh", "arch/v850_gcc", "arch/ccrh"]
+kernel_arch_files = ['arch/v850_gcc/prc_config.c', 'arch/v850_ccrh/prc_support.asm', 'arch/v850_ccrh/prc_tool.c','arch/v850_gcc/prc_mpu.c', 'arch/v850_ccrh/prc_tool_asm.asm']
Index: /atk2-sc3_fl850f1l/arch/v850_ccrh/prc.tf
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ccrh/prc.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ccrh/prc.tf	(revision 117)
@@ -0,0 +1,379 @@
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$  Copyright (C) 2013-2015 by Center for Embedded Computing Systems
+$              Graduate School of Information Science, Nagoya Univ., JAPAN
+$  Copyright (C) 2013-2014 by FUJI SOFT INCORPORATED, JAPAN
+$  Copyright (C) 2013-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+$  Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
+$  Copyright (C) 2013-2014 by Sunny Giken Inc., JAPAN
+$  Copyright (C) 2013-2014 by TOSHIBA CORPORATION, JAPAN
+$  Copyright (C) 2013-2014 by Witz Corporation, JAPAN
+$
+$  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+$  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+$  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+$  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+$      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+$      スコード中に含まれていること．
+$  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+$      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+$      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+$      の無保証規定を掲載すること．
+$  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+$      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+$      と．
+$    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+$        作権表示，この利用条件および下記の無保証規定を掲載すること．
+$    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+$        報告すること．
+$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+$      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+$      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+$      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+$      免責すること．
+$
+$  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+$  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+$  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+$  用する者に対して，AUTOSARパートナーになることを求めている．
+$
+$  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+$  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+$  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$  の責任を負わない．
+$
+$  $Id: prc.tf 189 2015-06-26 01:54:57Z t_ishikawa $
+$
+
+$
+$     パス2のアーキテクチャ依存テンプレート（V850用）
+$
+
+$FILE "kernel_mem2.c"$
+#pragma section kernel
+
+$FILE "Os_Lcfg.c"$
+#pragma section kernel
+
+$ 
+$  kernel/kernel.tf のターゲット依存部
+$ 
+
+$ 
+$  ユーザスタック領域を確保するコードを出力する
+$  ARGV[1]：タスクID
+$  ARGV[2]：スタックサイズ
+$ 
+$FUNCTION ALLOC_USTACK$
+    #pragma section $FORMAT(".user_stack.%s", ARGV[1])$$NL$
+    StackType _kernel_ustack_$ARGV[1]$[COUNT_STK_T($ARGV[2]$)];$NL$
+    #pragma section kernel$NL$
+
+    $TSK.TINIB_USTKSZ[ARGV[1]] = VALUE(FORMAT("ROUND_STK_T(%s)", ARGV[2]), +ARGV[2])$
+    $TSK.TINIB_USTK[ARGV[1]] = FORMAT("_kernel_ustack_%s", ARGV[1])$
+$END$
+
+$ 
+$  ユーザスタック領域のセクション名を返す
+$  ARGV[1]：タスクID
+$ 
+$FUNCTION SECTION_USTACK$
+    $RESULT = FORMAT(".user_stack.%s.bss", ARGV[1])$
+$END$
+
+$
+$  ユーザスタックのアライメント制約に合わせたサイズを返す
+$  ARGV[1]：スタックサイズ（アライン前）
+$  kernel.tfから呼ばれる
+$
+$FUNCTION USTACK_ALIGN_SIZE$
+	$RESULT = (ARGV[1] + CHECK_USTKSZ_ALIGN - 1) & ~(CHECK_USTKSZ_ALIGN - 1)$
+$END$
+
+$
+$  基本タスクの共有スタックの確保
+$  ARGV[1]：共有スタック名
+$  ARGV[2]：共有スタックID(タスク優先度)
+$  ARGV[3]：スタックサイズ(アライメント調整済み)
+$  kernel.tfから呼ばれる
+$
+$FUNCTION ALLOC_SHARED_USTACK$
+    #pragma section $FORMAT(".shared_user_stack.%s", ARGV[2])$$NL$
+	StackType $ARGV[1]$[COUNT_STK_T(ROUND_STK_T($ARGV[3]$))];$NL$
+    #pragma section kernel$NL$
+$END$
+
+$
+$  基本タスクの共有スタックのセクション名
+$  ARGV[1]：共有スタックID(タスク優先度)
+$  kernel.tfから呼ばれる
+$
+$FUNCTION SECTION_SHARED_USTACK$
+	$RESULT = FORMAT(".shared_user_stack.%s.bss", ARGV[1])$
+$END$
+
+$
+$  非信頼フックスタックの確保
+$  ARGV[1]：スタック名
+$  ARGV[2]：スタックサイズ
+$  kernel.tfから呼ばれる
+$
+$FUNCTION ALLOC_HSTACK$
+	$name = ARGV[1]$
+	$size = ARGV[2]$
+    #pragma section $FORMAT("kernel.srpw")$$NL$
+	StackType $name$[COUNT_STK_T(ROUND_STK_T($HSTACK_SIZE_STR(size)$))];$NL$
+    #pragma section kernel$NL$
+$END$
+
+$
+$  非信頼フックスタックサイズのアライメント制約を満たすように拡張したサイズの文字列
+$  ARGV[1]：スタックサイズ
+$  kernel.tfから呼ばれる
+$
+$FUNCTION HSTACK_SIZE_STR$
+	TOPPERS_ROUND_SZ($ARGV[1]$, CHECK_USTKSZ_ALIGN)
+$END$
+
+$ 
+$  OsMemoryModule はサポートしない
+$ 
+$TOPPERS_SUPPORT_ATT_MOD = 0$
+$FUNCTION HOOK_ERRORCHECK_MOD$
+    $ERROR$
+        OsMemoryModule is not supported.$NL$
+    $END$
+$END$
+
+$ 
+$  共有リード専有ライトのみサポート
+$ 
+$FUNCTION HOOK_ERRORCHECK_SEC$
+    $IF !EQ(SEC.OSAPID[ARGV[1]], "") &&
+        (SEC.OSAPID[ARGV[1]] != TDOM_KERNEL) &&
+        !OSAP.TRUSTED[SEC.OSAPID[ARGV[1]]] &&
+        !SEC.EXPORT[ARGV[1]]$
+        $ERROR$
+            OsMemorySectionExport of OsMemorySection $SEC.SECTION[ARGV[1]]$ must be true.$NL$
+        $END$
+    $END$
+$END$
+
+$ 
+$  OsMemoryArea はサポートしない
+$ 
+$FUNCTION HOOK_ERRORCHECK_MEM$
+    $ERROR$
+        OsMemoryArea is not supported.$NL$
+    $END$
+$END$
+
+$ 
+$  標準のセクションのメモリオブジェクト属性の定義
+$ 
+$MEMATR_TEXT = (TA_NOWRITE|TA_EXEC)$
+$MEMATR_RODATA = (TA_NOWRITE|TA_EXEC)$
+$MEMATR_DATA = TA_MEMINI$
+$MEMATR_BSS = TA_NULL$
+$MEMATR_PRSV = TA_MEMPRSV$
+$MEMATR_ROSDATA = (TA_SDATA|TA_MEMINI|TA_NOWRITE|TA_EXEC)$
+$MEMATR_SDATA = (TA_SDATA|TA_MEMINI)$
+$MEMATR_SBSS = TA_SDATA$
+
+$TARGET_MEMATR_USTACK = TA_NULL$
+
+$FUNCTION GENERATE_TARGET_MPUINFOB$
+$ 
+$  保護ドメイン初期化ブロックの変更部を生成
+$ 
+    $FILE "Os_Lcfg.h"$
+    extern const uint32 tnum_shared_mem;$NL$
+    extern uint8 * const shared_meminib_table[];$NL$
+    $NL$
+
+    $FILE "kernel_mem2.c"$
+
+$END$
+
+$ 
+$  TSKINICTXBの初期化情報を生成
+$ 
+$DOMINICTXB_KERNEL = "{ NULL }"$
+
+$FUNCTION GENERATE_OSAPINIB_MPUINFOB$
+    $TAB$$TAB${ 
+    $IF !OSAP.TRUSTED[ARGV[1]]$
+$   共有リード専用ライト
+        $TAB$$TAB$$TAB$/*dummy at pass2*/$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)0 ),/* MPLA 1 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)0 ),/* MPUA 1 */$NL$
+$   共有リード専用ライト（ショートデータ）
+        $TAB$$TAB$$TAB$( (uint8 *)0 ),/* MPLA 2 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)0 ),/* MPUA 2 */$NL$
+        $TAB$$TAB$$TAB$( (uint32)0 ),/* MPRC */$NL$
+    $ELSE$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* MPLA 1 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* MPUA 1 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* MPLA 2 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* MPUA 2 */$NL$
+        $TAB$$TAB$$TAB$( (uint32)0 ),/* MPRC */$NL$
+    $END$
+    $TAB$$TAB$}$NL$
+    $NL$
+$END$
+
+$FUNCTION GENERATE_TSKINICTXB$
+	$TAB$$TAB${$NL$
+    $TAB$$TAB$$TAB$$TSK.TINIB_SSTKSZ[ARGV[1]]$,$NL$
+	$TAB$$TAB$$TAB$((void *)((uint8 *)($TSK.TINIB_SSTK[ARGV[1]]$)
+    $SPC$+ ($TSK.TINIB_SSTKSZ[ARGV[1]]$))),$NL$
+	$IF OSAP.TRUSTED[TSK.OSAPID[ARGV[1]]]$
+        $TAB$$TAB$$TAB$0,$NL$
+        $TAB$$TAB$$TAB$0,$NL$
+    $ELSE$
+        $TAB$$TAB$$TAB$$TSK.TINIB_USTKSZ[ARGV[1]]$,$NL$ 
+        $TAB$$TAB$$TAB$((void *)((uint8 *)($TSK.TINIB_USTK[ARGV[1]]$)
+        $SPC$+ ($TSK.TINIB_USTKSZ[ARGV[1]]$))),$NL$
+    $END$
+	$TAB$$TAB$},$NL$
+$END$
+
+$FUNCTION GENERATE_STKMPUINFOB$
+	$TAB$$TAB${$NL$
+	$IF OSAP.TRUSTED[TSK.OSAPID[ARGV[1]]]$
+        $TAB$$TAB$$TAB$0,$NL$
+        $TAB$$TAB$$TAB$0,$NL$
+    $ELSE$
+		$IF EQ(TSK.STK[ARGV[1]],"NULL")$
+$			// stkがNULLの場合の処理
+            $IF LENGTH(TSK.SHARED_USTK_ID[ARGV[1]])$
+$               // 共有スタック
+                $TAB$$TAB$$TAB$/*dummy at pass2*/$NL$
+                $TAB$$TAB$$TAB$0,$NL$
+                $TAB$$TAB$$TAB$0,$NL$
+            $ELSE$
+$               // 固有スタック
+                $TAB$$TAB$$TAB$/*dummy at pass2*/$NL$
+                $TAB$$TAB$$TAB$0,$NL$
+                $TAB$$TAB$$TAB$0,$NL$
+            $END$
+        $ELSE$
+$			// stkがNULLでない場合の処理
+            $TAB$$TAB$$TAB$$FORMAT("(uint8 *)%s", TSK.TINIB_USTK[ARGV[1]])$,$NL$
+            $TAB$$TAB$$TAB$$FORMAT("(uint8 *)((uint32)%s + %d)", TSK.TINIB_USTK[ARGV[1]], TSK.TINIB_USTKSZ[ARGV[1]])$,$NL$
+        $END$
+    $END$
+	$TAB$$TAB$},$NL$
+$END$
+
+
+$INCLUDE "arch/v850_gcc/prc_common.tf"$
+
+$IF __v850e3v5__$
+
+$	VECTOR_INTBP()$
+$	ELSE$
+
+$
+$ テーブル参照方式用ベクタテーブル(v850e3v5)
+$
+
+$FILE "Os_Lcfg_asm.asm"$
+
+.extern _interrupt$NL$
+
+$NL$$FOREACH intno INTNO_VALID$
+	$isrid = INT.ISRID[intno]$
+	$IF LENGTH(isrid)$
+		$IF EQ(ISR.CATEGORY[isrid], "CATEGORY_1")$
+			.extern _$ISR.INT_ENTRY[isrid]$$NL$
+		$END$
+	$END$
+$END$
+$NL$
+	.section "EIINTTBL", const$NL$
+	.extern _intbp_tbl$NL$
+	.align 512$NL$
+	_intbp_tbl:$NL$
+$JOINEACH intno INTNO_VALID "\n"$
+	$isrid = INT.ISRID[intno]$
+	$IF LENGTH(isrid) && EQ(ISR.CATEGORY[isrid], "CATEGORY_1")$
+		$TAB$.dw #_$ISR.INT_ENTRY[isrid]$
+	$ELSE$
+		$TAB$.dw #_interrupt
+	$END$
+	$TAB$$FORMAT(";/* %d */", intno)$
+$END$
+
+$NL$
+;/* in order to restrain warning */$NL$
+$NL$
+$FOREACH mo MO_ORDER$
+	$IF MO.LINKER[mo]$
+        $seg = ""$
+        $e = REGEX_REPLACE(MO.SECTION[mo], ".*\\.text$", "")$
+        $IF !EQ(e, MO.SECTION[mo])$
+            $seg = "text"$
+        $END$
+        $e = REGEX_REPLACE(MO.SECTION[mo], ".*\\.const$", "")$
+        $IF !EQ(e, MO.SECTION[mo])$
+            $seg = "const"$
+        $END$
+        $e = REGEX_REPLACE(MO.SECTION[mo], ".*\\.data$", "")$
+        $IF !EQ(e, MO.SECTION[mo])$
+            $seg = "data"$
+        $END$
+        $e = REGEX_REPLACE(MO.SECTION[mo], ".*\\.bss$", "")$
+        $IF !EQ(e, MO.SECTION[mo])$
+            $seg = "bss"$
+        $END$
+        $IF !EQ(seg, "")$
+            $TAB$.section "$MO.SECTION[mo]$", $seg$$NL$
+            _dummy$MO.SECTION[mo]$:$NL$
+            $NL$
+        $END$
+    $END$
+$END$
+
+$END$
+$   //$IF __v850e3v5__$
+
+$ 
+$  arch/ccrh/ldscript.tfのターゲット依存部
+$ 
+
+$ 
+$  CCRH依存部のテンプレートファイルのインクルード
+$ 
+$INCLUDE "ccrh/ldscript.tf"$ 
+
+$FILE "kernel_mem2.c"$
+
+$TNUM_SHARED_REGION = 1$
+const uint32 tnum_shared_mem = $TNUM_SHARED_REGION * 2$;$NL$
+uint8 * const shared_meminib_table[$TNUM_SHARED_REGION * 2$] = {$NL$
+$TAB$/*dummy at pass2*/$NL$
+$TAB$((uint8 *)NULL),$TAB$/* MPLA 3 */$NL$
+$TAB$((uint8 *)NULL),$TAB$/* MPUA 3 */$NL$
+};$NL$
+$NL$
+
+$FILE "cfg2_out.tf"$
+$ LNKSEC.*の出力
+$$numls = $numls$$$$NL$
+$NL$
+$FOREACH lsid RANGE(1, numls)$
+	$$LNKSEC.MEMREG[$lsid$] = $LNKSEC.MEMREG[lsid]$$$$NL$
+	$$LNKSEC.SECTION[$lsid$] = $ESCSTR(LNKSEC.SECTION[lsid])$$$$NL$
+	$NL$
+$END$
+
+$JOINEACH tskid TSK.ID_LIST "\n"$
+	$$TSK.ID[$+tskid$] = $TSK.ID[tskid]$$$
+$END$
+$NL$
+
Index: /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_asm.tf
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_asm.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_asm.tf	(revision 117)
@@ -0,0 +1,99 @@
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$  Copyright (C) 2013-2015 by Center for Embedded Computing Systems
+$              Graduate School of Information Science, Nagoya Univ., JAPAN
+$  Copyright (C) 2013-2014 by FUJI SOFT INCORPORATED, JAPAN
+$  Copyright (C) 2013-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+$  Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
+$  Copyright (C) 2013-2014 by Sunny Giken Inc., JAPAN
+$  Copyright (C) 2013-2014 by TOSHIBA CORPORATION, JAPAN
+$  Copyright (C) 2013-2014 by Witz Corporation, JAPAN
+$
+$  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+$  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+$  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+$  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+$      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+$      スコード中に含まれていること．
+$  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+$      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+$      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+$      の無保証規定を掲載すること．
+$  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+$      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+$      と．
+$    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+$        作権表示，この利用条件および下記の無保証規定を掲載すること．
+$    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+$        報告すること．
+$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+$      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+$      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+$      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+$      免責すること．
+$
+$  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+$  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+$  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+$  用する者に対して，AUTOSARパートナーになることを求めている．
+$
+$  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+$  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+$  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$  の責任を負わない．
+$
+$  $Id: prc_asm.tf 182 2015-06-24 07:14:37Z t_ishikawa $
+$
+
+$
+$  set ディレクティブの再定義
+$
+$FUNCTION DEFINE$
+	$TAB$$ARGV[1]$$TAB$.set$TAB$$FORMAT("%d", +ARGV[2])$$NL$
+$END$
+
+$DEFINE("TCL_TASK", TCL_TASK)$
+$DEFINE("TCL_ISR2", TCL_ISR2)$
+$DEFINE("TSYS_ISR1", TSYS_ISR1)$
+$DEFINE("E_OS_PROTECTION_EXCEPTION", E_OS_PROTECTION_EXCEPTION)$
+$DEFINE("TSYS_DISALLINT", TSYS_DISALLINT)$
+
+$IF HOOK.PROTECTIONHOOK[1]$
+	$DEFINE("CFG_USE_PROTECTIONHOOK", 1)$
+$END$
+
+$IF OS.STACKMONITORING[1]$
+	$DEFINE("CFG_USE_STACKMONITORING", 1)$
+	$DEFINE("STACK_MAGIC_NUMBER", STACK_MAGIC_NUMBER)$
+	$DEFINE("E_OS_STACKFAULT", E_OS_STACKFAULT)$
+$END$
+
+$IF HOOK.PRETASKHOOK[1]$
+	$DEFINE("CFG_USE_PRETASKHOOK", 1)$
+$END$
+
+$IF HOOK.POSTTASKHOOK[1]$
+	$DEFINE("CFG_USE_POSTTASKHOOK", 1)$
+$END$
+
+$IF ENABLE_RETURN_MAIN$
+	$DEFINE("ENABLE_RETURN_MAIN", 1)$
+$END$
+
+$IF LOG_DSP_ENTER$
+	$DEFINE("LOG_DSP_ENTER", 1)$
+$END$
+
+$IF LOG_DSP_LEAVE$
+	$DEFINE("LOG_DSP_LEAVE", 1)$
+$END$
+
+$FOREACH isrid ISR.ID_LIST$
+	$IF EQ(ISR.CATEGORY[isrid], "CATEGORY_1")$
+		$DEFINE(ISR.INT_ENTRY[isrid], 1)$
+	$END$
+$END$
Index: /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_cfg1_out.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_cfg1_out.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_cfg1_out.h	(revision 117)
@@ -0,0 +1,82 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: prc_cfg1_out.h 182 2015-06-24 07:14:37Z t_ishikawa $
+ */
+
+/*
+ *		cfg1_out.cをリンクするために必要なスタブの定義
+ */
+int
+main(void)
+{
+	return(0);
+}
+
+StackType * const	_ostkpt = UINT_C(0x00);
+const uint32			tnum_datasec;
+const DATASECINIB	datasecinib_table[1];
+const uint32		tnum_bsssec;
+const BSSSECINIB	bsssecinib_table[1];
+void * const	    syscall_table[1];
+
+/*
+ *  オフセットファイルを生成するための定義
+ */
+const uint8			MAGIC_1 = UINT_C(0x12);
+const uint16		MAGIC_2 = UINT_C(0x1234);
+const uint32		MAGIC_4 = UINT_C(0x12345678);
+
+/*
+ *	CXコンパイラでは，条件によっては「意図せずインライン化が無効化される」
+ *	ケースが存在する．そのため，ヘッダファイルから呼び出される可能性のある
+ *	スタブを定義する．
+ */
+
+/*
+ *  prc_config.h
+ */
+const uint16		pmr_isr1_mask;
+const uint16		pmr_isr2_mask;
+volatile uint8		nested_lock_os_int_cnt;
+uint8				current_iintpri;
+const uint16		pmr_setting_tbl[];
Index: /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_def.csv
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_def.csv	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_def.csv	(revision 117)
@@ -0,0 +1,9 @@
+TCL_TASK,TCL_TASK
+TCL_ISR2,TCL_ISR2
+TSYS_ISR1,TSYS_ISR1
+TSYS_DISALLINT,TSYS_DISALLINT
+STACK_MAGIC_NUMBER,STACK_MAGIC_NUMBER
+E_OS_STACKFAULT,E_OS_STACKFAULT
+ENABLE_RETURN_MAIN,#defined(ENABLE_RETURN_MAIN)
+LOG_DSP_ENTER,#defined(LOG_DSP_ENTER)
+LOG_DSP_LEAVE,#defined(LOG_DSP_LEAVE)
Index: /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_design.txt
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_design.txt	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_design.txt	(revision 117)
@@ -0,0 +1,208 @@
+
+		TOPPERS/ATK2-SC3
+        ï¼RH850ãã­ã»ããµä¾å­é¨è¨­è¨æ¹é(CCRHç)ï¼
+
+----------------------------------------------------------------------
+TOPPERS ATK2
+    Toyohashi Open Platform for Embedded Real-Time Systems
+    Automotive Kernel Version 2
+
+Copyright (C) 2014-2015 by Center for Embedded Computing Systems
+            Graduate School of Information Science, Nagoya Univ., JAPAN
+
+ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ã(3)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ãã­ã¥ã¡
+ã³ãï¼æ¬ãã­ã¥ã¡ã³ããæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+(1) æ¬ãã­ã¥ã¡ã³ããå©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶
+    ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ãã­ã¥ã¡ã³ãä¸­ã«å«ã¾ãã¦
+    ãããã¨ï¼
+(2) æ¬ãã­ã¥ã¡ã³ããæ¹å¤ããå ´åã«ã¯ï¼ãã­ã¥ã¡ã³ããæ¹å¤ããæ¨ã®è¨è¿°
+    ãï¼æ¹å¤å¾ã®ãã­ã¥ã¡ã³ãä¸­ã«å«ãããã¨ï¼ãã ãï¼æ¹å¤å¾ã®ãã­ã¥ã¡
+    ã³ããï¼TOPPERSãã­ã¸ã§ã¯ãæå®ã®éçºææç©ã§ããå ´åã«ã¯ï¼ãã®é
+    ãã§ã¯ãªãï¼
+(3) æ¬ãã­ã¥ã¡ã³ãã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³
+    ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼ã¾ãï¼
+    æ¬ãã­ã¥ã¡ã³ãã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãçç±ã«åºã¥
+    ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+
+æ¬ãã­ã¥ã¡ã³ãã¯ï¼AUTOSARï¼AUTomotive Open System ARchitectureï¼ä»æ§
+ã«åºã¥ãã¦ããï¼ä¸è¨ã®è¨±è«¾ã¯ï¼AUTOSARã®ç¥çè²¡ç£æ¨©ãè¨±è«¾ãããã®ã§ã¯ãª
+ãï¼AUTOSARã¯ï¼AUTOSARä»æ§ã«åºã¥ããã½ããã¦ã§ã¢ãåç¨ç®çã§å©ç¨ãã
+è
+ã«å¯¾ãã¦ï¼AUTOSARãã¼ããã¼ã«ãªããã¨ãæ±ãã¦ããï¼
+
+æ¬ãã­ã¥ã¡ã³ãã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ãã
+ã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ãã­ã¥ã¡ã³ãã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®çã«å¯¾ã
+ãé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ãã­ã¥ã¡ã³ãã®å©ç¨
+ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² 
+ããªãï¼
+
+$Id: prc_design.txt 164 2015-06-03 01:22:29Z t_ishikawa $
+----------------------------------------------------------------------
+
+âæ¦è¦
+
+æ¬ãã­ã¥ã¡ã³ãã§ã¯ï¼GCCããCCRHã«åãã¦å¤æ´ããè¨­è¨äºé 
+ããã£ããã¨
+è¨é²ããï¼
+
+â¯ ã¿ã¼ã²ããå®ç¾©ã®ã»ã¯ã·ã§ã³
+
+ã«ã¼ãã«ã®ã¿ã¼ã²ããä¾å­é¨ãå®ç¾©ããã»ã¯ã·ã§ã³åã®å¯¾å¿ã¯ä¸è¨ã®ã¨ãã
+ã§ããï¼prc_mem.yaml|arxmlã«ãã£ã¦å®ç¾©ãã
+
+å¡ä¾ï¼gccä¾å­é¨ã§ã®ã»ã¯ã·ã§ã³å â ccrhä¾å­é¨ã§ã®ã»ã¯ã·ã§ã³å
+ .text_kernel â kernel.text
+ .rodata_kernel â kernel.const
+ .data_kernel â kernel.data
+ .bss_kernel â kernel.bss
+ .srpw_kernel â kernel.srpw.bss
+ .text_shared â shared.text
+ .rodata_shared â shared.const
+ .data_shared â shared.data
+ .bss_shared â shared.bss
+
+ã¾ãï¼ä¸è¨ã»ã¯ã·ã§ã³ãé
+ç½®ãããOSAPã¯ä¸è¨ã®ã¨ãã
+å¡ä¾ï¼OSAPå - æå±ããã»ã¯ã·ã§ã³å
+ prc_osap_kernel (ä¿¡é ¼OSAP)
+  - kernel.text
+  - kernel.const
+  - kernel.data
+  - kernel.bss
+  - kernel.srpw.bss
+ (ç¡æå±)
+  - shared.text
+  - shared.const
+  - shared.data
+  - shared.bss
+
+ã¾ãï¼ã¸ã§ãã¬ã¼ã¿ãèªåçã«å®ç¾©ããã»ã¯ã·ã§ã³åï¼å
+·ä½çã«ã¯ã¦ã¼ã¶
+ã¹ã¿ãã¯ã®ã»ã¯ã·ã§ã³åã¯ä¸è¨ã®ã¨ããï¼
+å¡ä¾ï¼gccä¾å­é¨ã§ã®ã»ã¯ã·ã§ã³å â ccrhä¾å­é¨ã§ã®ã»ã¯ã·ã§ã³å
+ .user_stack.<task ID> â .user_stack.<task ID>.bss
+ .shared_user_stack.<priority> â .shared_user_stack.<priority>.bss
+ 
+â¯ prc_support.asm
+
+ã¾ãï¼v850_gcc/prc_support.S ãã ccrh/gcc2ccrh.rb ã«ããã¢ã»ã³ããªã
+çæããï¼
+
+ããã¦ï¼ä¸è¨ã»ã¯ã·ã§ã³åã®å¤æè¦åã«å¾ãï¼ã»ã¯ã·ã§ã³é
+ç½®æå®ãå¤æ´ããï¼
+
+ã¾ãï¼ccrhã§ã¯ï¼Cè¨èªã®ãã¯ã­ãã¢ã»ã³ããªã«åãè¾¼ããªãããï¼v850asm.inc
+ã«ãã¯ã­å®ç¾©ãè¨è¿°ããï¼
+
+â»prc_asm.tf ã§åºåããæ¡ãèãããã
+
+â¯ DEFINE_VAR_SEC_NOBITS(type, var, sec)
+
+éä¾å­é¨ã§å®ç¾©ããå¤æ°ãï¼ç¹å®ã®ã»ã¯ã·ã§ã³ã«é
+ç½®ããããã®ãã¯ã­ã§ããï¼
+ç¾ç¶ã§ã¯ï¼å
+±æãªã¼ãå°æã©ã¤ãã®ã«ã¼ãã«å¤æ°ãã»ã¯ã·ã§ã³é
+ç½®ããç®çã§
+ã®ã¿ä½¿ç¨ãã¦ããï¼
+ccrhã§ã¯pragmaã«ããã»ã¯ã·ã§ã³é
+ç½®ãè¡ãããï¼ä¸è¨ãã¯ã­ã§ã¯externå®£è¨
+ãããããã«å¤æ´ãï¼prc_tool.c ã§å¤æ°ã®å®ä½ã®å®£è¨ããã³ã»ã¯ã·ã§ã³é
+ç½®ã
+æå®ããï¼
+
+â»defineãã¯ã­ã«ããã¦pragmaãå±éãããã¨ã¯ã§ããªãã£ãï¼
+â»defineãã¯ã­ã«ããã¦ã»ã¯ã·ã§ã³åãå±éãããã¨ã¯ã§ããªãã£ãï¼
+  #define SECTION section1
+  #pragma section SECTION
+  ã¨ããã¨ï¼SECTIONã¨ããã»ã¯ã·ã§ã³ã«é
+ç½®ããã
+
+â¯ ã«ã¼ãã«å¤æ°ï¼ã³ã¼ãã®ã»ã¯ã·ã§ã³é
+ç½®æå®
+
+éä¾å­é¨ã§å®ç¾©ããã¦ããå¤æ°ããã³é¢æ°ãªã©ãï¼kernel.xxxxã»ã¯ã·ã§ã³ã«
+é
+ç½®ããããã«ï¼Platfrom_Types.hã«ããã¦ï¼kernel_impl.hããincludeããã
+å ´åã«ï¼#pragma section kernel ãçæããããã«ããï¼
+
+ããã§ï¼cfgã®ãã¹1ã«ããã¦kernelã»ã¯ã·ã§ã³ã«é
+ç½®ããããã¨ãé²ãããã«ï¼
+ã¬ã¼ããããã¦ããï¼
+cfgã®ãã¹1ã§ã¯ï¼ccrhããã©ã«ãã®ã»ã¯ã·ã§ã³é
+ç½®æå®ãä½¿ç¨ããããï¼kernel
+ã¨ããã»ã¯ã·ã§ã³ã¯å­å¨ããªãï¼
+
+ã¾ãï¼Os_Lcfg.c / kernel_mem.c ã«çæããããã¼ã¿ãé¢æ°ãkernelã»ã¯ã·ã§ã³
+ã«é
+ç½®ããããï¼prc.tfã«ããã¦ï¼#pragma section kernel ãçæããããã«ããï¼
+
+â¯ tf
+
+ã»OsMemoryModuleããµãã¼ãããªãããï¼TOPPERS_SUPPORT_ATT_MOD ã0ã«ããï¼
+
+ã»MPUã«ã»ããããçªå°ã«ã¤ãã¦ï¼ccrhã§ã¯ã»ã¯ã·ã§ã³ã®å¢çãç¤ºãã©ãã«åãï¼
+ã'.'ãå«ãããï¼Cè¨èªã§ä½¿ç¨ãããã¨ãã§ããªã(æ§é ä½ã®ã¡ã³ãã¨ãã¦æ±ã
+ããã¦ãã¾ã)ï¼ãã®ããï¼ãã¹2ã§ã¯0ãMPUåæåãã­ãã¯ã«åºåãã¦ããï¼
+ããã¹4ã§ï¼ã¡ã¢ãªãªãã¸ã§ã¯ãã¨ãã¦ç»é²ãããã»ã¯ã·ã§ã³ã®ã©ãã«åãã
+ãé
+ç½®ã¢ãã¬ã¹ãSYMBOLã§åå¾ãã¦ï¼MPUåæåãã­ãã¯ã«åºåããï¼
+
+ã»ccrhã§ã¯ï¼ãµã¤ãºãç©ºã®ã»ã¯ã·ã§ã³ãé
+ç½®ããã¨ï¼è­¦åãçºããï¼
+ããã®è­¦åãåé¿ããããã«ï¼arxmlã§ç»é²ããããã¹ã¦ã®ã»ã¯ã·ã§ã³ã«å¯¾ãã¦ï¼
+ãããã¼ã®ã·ã³ãã«ãçæãï¼Os_Lcfg_asm.asm ã«åºåããï¼
+
+ã»ccrh/ldscript.tf ã«ããã¦ï¼CS+ã§ãªã³ã¯ãªãã·ã§ã³ãæå®ããããã®
+ãpythonã¹ã¯ãªããï¼ldscript.pyãåºåããï¼
+
+ããã®pythonã¹ã¯ãªãããå®è¡ããæ¹æ³ã¨ãã¦ï¼ä»¥ä¸ã®æ¹æ³ãæ¤è¨ããï¼
+
+ã(1) ãã¹4ã¨atk2-sc3æ¬ä½ã®ãã«ãåã«ã¦ã¼ã¶ã«å®è¡ãã¦ãããï¼
+ã - ã¦ã¼ã¶ã®æéã«ãªãï¼å®è¡ãå¿ãã«ããã¨ã©ã¼ãèµ·ããå¯è½æ§ãããï¼
+ã(2) ãã¹4ã¨atk2-sc3æ¬ä½ã®ãã«ãåã«CS+ã«ãã¬ãã«ãèªåå®è¡ãã¦ãããï¼
+ã - ãã¬ãã«ãæã«ãã«ããªãã·ã§ã³ãæ¸ãæãããã¨ã¯ã§ããªãã£ãããå´ä¸ï¼
+ã(3) CS+ã«ãã¹2ã®ãã«ãå¾ã«ãã¹ããã«ãèªåå®è¡ãã¦ãããï¼ãã¹4ã¨
+ãããatk2-sc3æ¬ä½ã®ãã­ã¸ã§ã¯ããã¡ã¤ã«(xml)ãæ¸ãæããï¼
+ã - ãã¹2ã®ãã¨ã«æ¸ãæãããã­ã¸ã§ã¯ããã¡ã¤ã«ãèªåã§éãç´ãã¨ããã§
+ã   ã¨ã©ã¼ã¨ãªãï¼ã¦ã¼ã¶ã«ååº¦ãã­ã¸ã§ã¯ããéãç´ãã¦ãããå¿
+è¦ãããï¼
+  ç¾ç¶ã¯(3)ã§å®è£
+ãã¦ããï¼
+
+ãæ¬ã¹ã¯ãªããã§ã¯ï¼ã»ã¯ã·ã§ã³ã®é
+ç½®é ï¼ROMåãããã¼ã¿ã»ã¯ã·ã§ã³ï¼
+ãã¢ã©ã¤ã¡ã³ãããã»ã¯ã·ã§ã³ã®ããã®ãªã³ã¯ãªãã·ã§ã³ãæå®ããï¼
+
+ã»ccrhã§ã¯ï¼åºåã»ã¯ã·ã§ã³ã¨ããæ¦å¿µããªãï¼å
+¥åã»ã¯ã·ã§ã³ãã¡ã¢ãª
+ããªãã¸ã§ã¯ããã¨ã«ã¾ã¨ããåºåã»ã¯ã·ã§ã³ãçæãï¼ãã®å¢çå¤ãåå¾ãã
+ããã¨ã§ï¼MPUã®è¨­å®æ
+å ±ãçæããã¨ããå¾æ¥ææ³(GCCä¾å­é¨)ãä½¿ç¨ã§ããªãï¼
+ããã®ããï¼MPUã«è¨­å®ããã¢ãã¬ã¹ãåå¾ããããã«ï¼ãã¹ã¦ã®ã»ã¯ã·ã§ã³ã
+ãã¡ã¢ãªãªãã¸ã§ã¯ããã¨ã«ï¼ãªã³ã¯é ã«ãµã¼ããï¼å§ãã¦è¦ã¤ãã£ãç©ºã§ãªã
+ãã»ã¯ã·ã§ã³ã®éå§çªå°ããã®ã¡ã¢ãªãªãã¸ã§ã¯ãã®éå§çªå°ã¨ãã¦ï¼æå¾ã«
+ãè¦ã¤ãã£ãç©ºã§ãªãã»ã¯ã·ã§ã³ã®çµäºçªå°ããã®ã¡ã¢ãªãªãã¸ã§ã¯ãã®çµäº
+ãçªå°ã¨ãã¦ããï¼
+
+ã»ã»ã¯ã·ã§ã³ã®ã©ãã«åã®å¶ç´ã«ããï¼kernel_mem.tf ã«ãããæ¨æºã®ã¡ã¢ãª
+ããªãã¸ã§ã¯ãåæåãã­ãã¯ãçæã§ããªãï¼
+ããã®é¨åã«ã¤ãã¦ã¯ï¼prc_meminib.tf ã§çæããï¼
+
+â TIPS
+
+ã»sdata/sbss ã¯ï¼pragmaã§å¤æ°ãgp_dispxxã»ã¯ã·ã§ã³ã«é
+ç½®ããã¨çæããã
+ã»sdata/sbss ã¯ï¼ããã©ã«ãã§ã¯gpç¸å¯¾ã§ã¢ã¯ã»ã¹ãããªãï¼-MApãªãã·ã§ã³ã
+ãã¤ãã¦ãªã³ã¯ããçµæåºåãããblsãã¡ã¤ã«ãï¼ã³ã³ãã¤ã«ãªãã·ã§ã³-Omap=
+ãã§æå®ãããã¨ã§ï¼gpç¸å¯¾ã§ã¢ã¯ã»ã¹ãããã³ã¼ããçæãããï¼
+ãgpç¸å¯¾ãä½¿ãã®ã§ããã°ï¼ãã¹4ã®ãã«ãæã«ãgpç¸å¯¾ãä½¿ãããã«ãã«ããã¹ã
+ãã¨èããããï¼
+
Index: /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_inline_symbols.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_inline_symbols.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_inline_symbols.h	(revision 117)
@@ -0,0 +1,104 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2013-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: prc_inline_symbols.h 182 2015-06-24 07:14:37Z t_ishikawa $
+ */
+
+/*
+ *		コンパイラ依存定義
+ */
+
+#ifndef PRC_INLINE_SYMBOL_H
+#define PRC_INLINE_SYMBOL_H
+
+#include "kernel_inline_symbols.h"
+
+/* v850.h */
+#pragma inline set_pmr
+#pragma inline get_ispr
+#pragma inline clear_ispr
+
+/* prc_config.h */
+#pragma inline x_lock_all_int
+#pragma inline x_unlock_all_int
+#pragma inline x_nested_lock_os_int
+#pragma inline x_nested_unlock_os_int
+#pragma inline x_suspend_lock_os_int
+#pragma inline x_resume_unlock_os_int
+#pragma inline x_set_ipm
+#pragma inline x_get_ipm
+#pragma inline x_disable_int
+#pragma inline x_enable_int
+#pragma inline x_clear_int
+#pragma inline x_probe_int
+#pragma inline i_begin_int
+#pragma inline i_end_int
+
+/* prc_insn.h */
+#pragma inline disable_int
+#pragma inline enable_int
+#pragma inline current_psw
+#pragma inline set_psw
+
+/* prc_sil.h */
+#pragma inline sil_reb_mem
+#pragma inline sil_wrb_mem
+#pragma inline sil_reh_mem
+#pragma inline sil_wrh_mem
+#pragma inline sil_rew_mem
+#pragma inline sil_wrw_mem
+#pragma inline TOPPERS_disint
+#pragma inline TOPPERS_enaint
+
+/* taua_timer.h */
+#pragma inline target_timer_get_current
+#pragma inline target_timer_probe_int
+
+/* uart.h */
+#pragma inline uart_putc
+
+/* uart.c */
+#pragma inline uart_getready
+#pragma inline uart_getchar
+
+
+#endif /* PRC_INLINE_SYMBOL_H */
Index: /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_insn.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_insn.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_insn.h	(revision 117)
@@ -0,0 +1,159 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: prc_insn.h 182 2015-06-24 07:14:37Z t_ishikawa $
+ */
+
+/*
+ *		プロセッサの特殊命令のインライン関数定義（V850用）
+ */
+#ifndef TOPPERS_PRC_INSN_H
+#define TOPPERS_PRC_INSN_H
+
+#include <prc_tool.h>
+
+/*
+ *  V850E3V5のみサポート
+ */
+#ifndef __v850e3v5__
+#error Only support v850e3v5 architecture!!
+#endif /* __v850e3v5__ */
+
+#ifndef TOPPERS_MACRO_ONLY
+
+#define SYNCM	__syncm();
+
+LOCAL_INLINE void
+disable_int(void)
+{
+	__DI();
+}
+
+LOCAL_INLINE void
+enable_int(void)
+{
+	__EI();
+}
+
+LOCAL_INLINE uint32
+current_psw(void)
+{
+	return(__stsr_rh(5, 0));
+}
+
+LOCAL_INLINE void
+set_psw(uint32 psw)
+{
+	__ldsr_rh(5, 0, psw);
+}
+
+/*
+ *  V850E3V5用の割込みコントローラ操作ルーチン
+ */
+LOCAL_INLINE void
+set_pmr(uint16 pmr)
+{
+	uint32 psw;
+
+	/* PMR must be set in di sate(PSW.ID = 1) */
+	psw = current_psw();
+	disable_int();
+
+	__ldsr_rh(11, 2, pmr);
+
+	set_psw(psw);
+}
+
+LOCAL_INLINE uint16
+get_ispr(void)
+{
+	return(__stsr_rh(10, 2));
+}
+
+LOCAL_INLINE void
+clear_ispr(void)
+{
+	uint32 psw;
+
+	/* ISPR must be set in di sate(PSW.ID = 1) */
+	psw = current_psw();
+	disable_int();
+
+	__ldsr_rh(13, 2, 1);    /* INTCFG = 1; ISPR を書き換え可能に */
+	__ldsr_rh(10, 2, 0);    /* ISPR = 0 */
+	__ldsr_rh(13, 2, 0);    /* INTCFG = 0; ISPR を書き換え禁止に(自動更新に) */
+	__syncp();
+
+	set_psw(psw);
+}
+
+LOCAL_INLINE void
+set_intbp(uint32 intbp)
+{
+	uint32 psw;
+
+	/* INTBP must be set in di sate(PSW.ID = 1) */
+	psw = current_psw();
+	disable_int();
+
+	__ldsr_rh(4, 1, intbp);
+
+	set_psw(psw);
+}
+
+#define LDSR_REG(reg, sel, val) {\
+    __ldsr_rh(reg, sel, val);\
+}
+
+#define STSR_REG(reg, sel, val) {\
+    val = __stsr_rh(reg, sel); \
+}
+
+#define MPA_WRITE(mpuid, mpla, mpua, mpat) { \
+    __ldsr_rh(mpuid*4, 6, mpla); \
+    __ldsr_rh(mpuid*4+1, 6, mpua); \
+    __ldsr_rh(mpuid*4+2, 6, mpat); \
+}
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_PRC_INSN_H */
Index: /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_kernel.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_kernel.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_kernel.h	(revision 117)
@@ -0,0 +1,91 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2013 by FUJISOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by FUJITSU VLSI LIMITED, JAPAN
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2013 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2013 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2013 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2013 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2013 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013 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: prc_kernel.h 182 2015-06-24 07:14:37Z t_ishikawa $
+ */
+
+/*
+ *		Os.hのプロセッサ依存部（V850E2/FL4用）
+ *
+ *  このインクルードファイルは，Os.hでインクルードされる．他のファ
+ *  イルから直接インクルードすることはない
+ */
+
+#ifndef TOPPERS_PRC_KERNEL_H
+#define TOPPERS_PRC_KERNEL_H
+
+#ifndef TOPPERS_MACRO_ONLY
+
+typedef uint32	SystemTimeMsType;
+typedef uint32	SystemTimeUsType;
+typedef uint32	SystemTime100NsType;
+
+#ifdef CFG_USE_PROTECTIONHOOK
+/*
+ *  CPU例外要因情報保持変数外部参照宣言（prc_config.c）
+ *  ユーザ作成するプロテクションフックから参照するため，
+ *  Os.hからインクルードされるprc_kernel.hで参照宣言
+ */
+/* CPU例外発生時，CPU例外要因番号を保持する変数 */
+extern uint32	v850_cpu_exp_no;
+
+/* CPU例外発生時，プログラムカウンタ（PC - 4）を保持する変数 */
+extern uint32	v850_cpu_exp_pc;
+
+/* CPU例外発生時，スタックポインタを保持する変数 */
+extern uint32	v850_cpu_exp_sp;
+#endif /* CFG_USE_PROTECTIONHOOK */
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+/*
+ *  サポートする機能の定義
+ */
+#define TOPPERS_SUPPORT_GET_UTM         /* get_utmをサポートする */
+
+
+#endif /* TOPPERS_PRC_KERNEL_H */
Index: /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_mem.arxml
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_mem.arxml	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_mem.arxml	(revision 117)
@@ -0,0 +1,487 @@
+<?xml version="1.0" encoding="EUC-JP"?>
+<!-- Generated by ABREX Ver. 1.1.0 -->
+<AUTOSAR xmlns="http://autosar.org/schema/r4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://autosar.org/schema/r4.0 AUTOSAR_4-0-3_STRICT.xsd">
+	<AR-PACKAGES>
+		<AR-PACKAGE>
+			<SHORT-NAME>Ecuc</SHORT-NAME>
+			<ELEMENTS>
+				<ECUC-MODULE-CONFIGURATION-VALUES>
+					<SHORT-NAME>Os</SHORT-NAME>
+					<DEFINITION-REF DEST="ECUC-MODULE-DEF">/AUTOSAR/EcucDefs/Os</DEFINITION-REF>
+					<ECUC-DEF-EDITION>4.2.0</ECUC-DEF-EDITION>
+					<IMPLEMENTATION-CONFIG-VARIANT>VARIANT-PRE-COMPILE</IMPLEMENTATION-CONFIG-VARIANT>
+					<CONTAINERS>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>kernel_text</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionName</DEFINITION-REF>
+									<VALUE>kernel.text</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionWritable</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionReadable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExecutable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionShort</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionCacheable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionDevice</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExport</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionMemoryRegionRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/FLASH</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>kernel_const</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionName</DEFINITION-REF>
+									<VALUE>kernel.const</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionWritable</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionReadable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExecutable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionShort</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionCacheable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionDevice</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExport</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionMemoryRegionRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/FLASH</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>kernel_data</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionName</DEFINITION-REF>
+									<VALUE>kernel.data</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionWritable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionReadable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExecutable</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionShort</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionInitialize</DEFINITION-REF>
+									<VALUE>DATA</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionCacheable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionDevice</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExport</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionMemoryRegionRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/RAM</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>kernel_bss</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionName</DEFINITION-REF>
+									<VALUE>kernel.bss</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionWritable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionReadable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExecutable</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionShort</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionInitialize</DEFINITION-REF>
+									<VALUE>BSS</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionCacheable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionDevice</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExport</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionMemoryRegionRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/RAM</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>kernel_srpw</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionName</DEFINITION-REF>
+									<VALUE>kernel.srpw.bss</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionWritable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionReadable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExecutable</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionShort</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionInitialize</DEFINITION-REF>
+									<VALUE>NO_INITIALIZE</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionCacheable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionDevice</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExport</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionMemoryRegionRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/RAM</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>prc_osap_kernel</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsTrusted</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppMemorySectionRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/kernel_text</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppMemorySectionRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/kernel_const</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppMemorySectionRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/kernel_data</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppMemorySectionRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/kernel_bss</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppMemorySectionRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/kernel_srpw</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsApplicationHooks</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppErrorHook</DEFINITION-REF>
+											<VALUE>false</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppShutdownHook</DEFINITION-REF>
+											<VALUE>false</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppStartupHook</DEFINITION-REF>
+											<VALUE>false</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>shared_text</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionName</DEFINITION-REF>
+									<VALUE>shared.text</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionWritable</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionReadable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExecutable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionShort</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionCacheable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionDevice</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExport</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionMemoryRegionRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/FLASH</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>shared_const</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionName</DEFINITION-REF>
+									<VALUE>shared.const</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionWritable</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionReadable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExecutable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionShort</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionCacheable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionDevice</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExport</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionMemoryRegionRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/FLASH</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>shared_data</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionName</DEFINITION-REF>
+									<VALUE>shared.data</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionWritable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionReadable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExecutable</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionShort</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionInitialize</DEFINITION-REF>
+									<VALUE>DATA</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionCacheable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionDevice</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExport</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionMemoryRegionRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/RAM</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>shared_bss</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionName</DEFINITION-REF>
+									<VALUE>shared.bss</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionWritable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionReadable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExecutable</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionShort</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionInitialize</DEFINITION-REF>
+									<VALUE>BSS</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionCacheable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionDevice</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExport</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionMemoryRegionRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/RAM</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+					</CONTAINERS>
+				</ECUC-MODULE-CONFIGURATION-VALUES>
+			</ELEMENTS>
+		</AR-PACKAGE>
+	</AR-PACKAGES>
+</AUTOSAR>
Index: /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_mem.tf
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_mem.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_mem.tf	(revision 117)
@@ -0,0 +1,495 @@
+$ ======================================================================
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$  Copyright (C) 2013-2015 by Center for Embedded Computing Systems
+$              Graduate School of Information Science, Nagoya Univ., JAPAN
+$   Copyright (C) 2013 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プロジェクトは，本ソフトウェアに関して，特定の使用目的
+$   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$   の責任を負わない．
+$
+$  
+$ =====================================================================
+
+$DEBUG_OPT_TF = 1$
+
+$FILE "kernel_mem.c"$
+#pragma section kernel
+
+$ 
+$  パス4のプロセッサ依存テンプレート（V850E2M用）
+$  
+$FUNCTION GET_SSTK_TSKINICTXB$
+    $bottom = PEEK(ARGV[1] + offsetof_TINIB_TSKINICTXB_sstk_bottom, sizeof_void_ptr)$
+    $size = PEEK(ARGV[1] + offsetof_TINIB_TSKINICTXB_sstksz, sizeof_StackType)$
+    $RESULT = (bottom - size)$
+$END$
+
+$FUNCTION GET_USTK_TSKINICTXB$
+    $bottom = PEEK(ARGV[1] + offsetof_TINIB_TSKINICTXB_stk_bottom, sizeof_void_ptr)$
+    $size = PEEK(ARGV[1] + offsetof_TINIB_TSKINICTXB_stksz, sizeof_StackType)$
+    $RESULT = (bottom - size)$
+$END$
+
+$ 
+$  OSAP.ID_LISTを読み込むため
+$ 
+$INCLUDE "cfg2_out.tf"$
+
+$
+$  保護ドメインのラベルの作成
+$	OSAP.LABEL[domid]：保護ドメインのラベル
+$
+$OSAP.LABEL[TDOM_KERNEL] = "kernel"$
+$FOREACH domid OSAP.ID_LIST$
+	$OSAP.LABEL[domid] = domid$
+$END$
+$OSAP.LABEL[TDOM_NONE] = "shared"$
+
+$ 
+$  標準のセクションのメモリオブジェクト属性の定義
+$ 
+$MEMATR_TEXT = (TA_NOWRITE|TA_EXEC)$
+$MEMATR_RODATA = (TA_NOWRITE|TA_EXEC)$
+$MEMATR_DATA = TA_MEMINI$
+$MEMATR_BSS = TA_NULL$
+$MEMATR_PRSV = TA_MEMPRSV$
+$MEMATR_ROSDATA = (TA_SDATA|TA_MEMINI|TA_NOWRITE|TA_EXEC)$
+$MEMATR_SDATA = (TA_SDATA|TA_MEMINI)$
+$MEMATR_SBSS = TA_SDATA$
+
+$ 
+$  保護ドメイン毎のデフォルトのアクセス許可パターンの作成
+$ 
+$DEFAULT_ACPTN[TDOM_KERNEL] = VALUE("TACP_KERNEL", TACP_KERNEL)$
+$FOREACH domid OSAP.ID_LIST$
+	$DEFAULT_ACPTN[domid] = VALUE(FORMAT("TACP(%1%)", domid), 1 << (domid - 1))$
+$END$
+$DEFAULT_ACPTN[TDOM_NONE] = VALUE("TACP_SHARED", TACP_SHARED)$
+
+$ 
+$  ユーザスタック領域のセクション名を返す
+$  ARGV[1]：タスクID
+$ 
+$FUNCTION SECTION_USTACK$
+    $RESULT = FORMAT(".user_stack.%s.bss", ARGV[1])$
+$END$
+
+$
+$  基本タスクの共有スタックのセクション名
+$  ARGV[1]：共有スタックID(タスク優先度)
+$  kernel.tfから呼ばれる
+$
+$FUNCTION SECTION_SHARED_USTACK$
+	$RESULT = FORMAT(".shared_user_stack.%s.bss", ARGV[1])$
+$END$
+
+$FUNCTION START_SYMBOL$
+    $symbol = CONCAT("__s", MO.SECTION[ARGV[1]])$
+    $IF !EQ(MO.ILABEL[ARGV[1]], "")$
+        $symbol = CONCAT(symbol, ".R")$
+    $END$
+	$RESULT = SYMBOL(symbol)$
+$END$
+
+$FUNCTION LIMIT_SYMBOL$
+    $symbol = CONCAT("__e", MO.SECTION[ARGV[1]])$
+    $IF !EQ(MO.ILABEL[ARGV[1]], "")$
+        $symbol = CONCAT(symbol, ".R")$
+    $END$
+	$RESULT = SYMBOL(symbol)$
+$END$
+
+$ 
+$  MPU設定情報生成の準備
+$ 
+$check = 0$
+$FOREACH mo MO_MPROTECT_LIST$
+    $IF LENGTH(pre_mo) && check >= 2$
+$       // 空でないメモリオブジェクトを探す
+        $FOREACH at RANGE(FIND(MO_ORDER, pre_mo), FIND(MO_ORDER, mo) - 1)$
+            $cur_mo = AT(MO_ORDER, at)$
+            $start = START_SYMBOL(cur_mo)$
+            $limit = LIMIT_SYMBOL(cur_mo)$
+            $IF LENGTH(start)$
+                $IF !LENGTH(start_sym)$
+                    $start_sym = start$
+                $END$
+                $IF LENGTH(limit)$
+                    $limit_sym = limit$
+                $END$
+            $END$
+        $END$
+    $END$
+
+    $IF check == 1$
+        $NOOP()$
+    $ELIF check == 2$
+$       // 共有領域の終端番地
+        $IF !LENGTH(shared_mo_start)$
+            $shared_mo_start = start_sym$
+        $END$
+        $shared_mo_limit = limit_sym$
+    $ELIF check == 3$
+$       // 共有リード専有ライトsdata領域の終端番地
+        $sosap_mo_start[MO.OSAPID[pre_mo]] = start_sym$
+        $sosap_mo_limit[MO.OSAPID[pre_mo]] = limit_sym$
+    $ELIF check == 4$
+$       // 共有リード専有ライト領域の終端番地
+        $osap_mo_start[MO.OSAPID[pre_mo]] = start_sym$
+        $osap_mo_limit[MO.OSAPID[pre_mo]] = limit_sym$
+    $END$
+
+    $start_sym = START_SYMBOL(mo)$
+    $limit_sym = LIMIT_SYMBOL(mo)$
+    $IF EQ(MO.TYPE[mo], "TOPPERS_USTACK")$
+$       // ユーザスタック
+        $ustk_mo = APPEND(ustk_mo, mo)$
+        $check = 1$
+    $ELIF EQ(MO.ACPTN_W[mo], "TACP_SHARED")$
+$       // 共有リードライト        
+        $IF LENGTH(shared_mo_start)$
+            $ERROR$
+                shared mo duplicate
+            $END$
+        $END$
+        $shared_mo_start = start_sym$
+        $check = 2$
+    $ELIF !EQ(MO.ACPTN_W[mo], "TACP_KERNEL")$
+$       // 共有リード専有ライト        
+        $IF (MO.MEMATR[mo] & TA_SDATA) != 0$
+$           // sdata        
+            $sosap_mo_start[MO.OSAPID[mo]] = start_sym$
+            $check = 3$
+        $ELSE$
+$           // not sdata        
+            $osap_mo_start[MO.OSAPID[mo]] = start_sym$
+            $check = 4$
+        $END$
+    $ELSE$
+        $check = 0$
+    $END$
+
+    $pre_mo = mo$
+$END$
+$IF check >= 2$
+$       // 空でないメモリオブジェクトを探す
+    $FOREACH at RANGE(FIND(MO_ORDER, pre_mo), FIND(MO_ORDER, mo))$
+        $cur_mo = AT(MO_ORDER, at)$
+        $start = START_SYMBOL(cur_mo)$
+        $limit = LIMIT_SYMBOL(cur_mo)$
+        $IF LENGTH(start)$
+            $IF !LENGTH(start_sym)$
+                $start_sym = start$
+            $END$
+            $IF LENGTH(limit)$
+                $limit_sym = limit$
+            $END$
+        $END$
+    $END$
+$END$
+
+$IF check == 1$
+    $NOOP()$
+$ELIF check == 2$
+$   // 共有領域の終端番地
+    $shared_mo_start = start_sym$
+    $shared_mo_limit = limit_sym$
+$ELIF check == 3$
+$   // 共有リード専有ライトsdata領域の終端番地
+    $sosap_mo_start[MO.OSAPID[pre_mo]] = start_sym$
+    $sosap_mo_limit[MO.OSAPID[pre_mo]] = limit_sym$
+$ELIF check == 4$
+$   // 共有リード専有ライト領域の終端番地
+    $osap_mo_start[MO.OSAPID[pre_mo]] = start_sym$
+    $osap_mo_limit[MO.OSAPID[pre_mo]] = limit_sym$
+$END$
+
+
+$FUNCTION GENERATE_TARGET_MPUINFOB$
+$ 
+$   ドメインごとのMPU設定情報を生成
+$ 
+    $FOREACH info RANGE(3,3)$
+        $start_address = 0$
+        $end_address = 0$
+        $IF LENGTH(shared_mo_start)$
+$       // 領域の開始アドレスを読み込む 
+            $start_address = shared_mo_start$
+$       // 領域の終了アドレスを読み込む 
+            $end_address = shared_mo_limit$
+        $END$
+        $ipal = (start_address & 0xfffffff0)$ 
+        $ipau = (end_address & 0xfffffff0)$ 
+        $WARNING$
+            $FORMAT("info%d: start=0x%x, end=0x%x", info, start_address, end_address)$
+        $END$
+        $IF (ipal != start_address) || (ipau != end_address)$
+            $ERROR$
+                $FORMAT("Not aligned: start=0x%x, end=0x%x", start_address, end_address)$
+            $END$
+        $END$
+        $IF ipal != ipau$
+            $valid[info] = 0x01$
+            $ipau = (ipau - 0x1) & 0xfffffffc$
+            $FOREACH osap OSAP.ID_LIST$
+                $IF !OSAP.TRUSTED[osap]$
+                    $OSAP.MPRC[osap] = 0x09$
+                $END$
+            $END$
+        $ELSE$
+            $valid[info] = 0x00$
+        $END$
+        $WARNING$
+            $FORMAT("info%d: ipal=0x%x, ipau=0x%x", info, ipal, ipau)$
+        $END$
+    $END$
+
+$END$
+
+$ 
+$  TSKINICTXBの初期化情報を生成
+$ 
+$DOMINICTXB_KERNEL = "{ NULL }"$
+
+$FUNCTION GENERATE_OSAPINIB_MPUINFOB$
+
+    $IF !LENGTH(OSAP.MPRC[ARGV[1]])$
+        $OSAP.MPRC[ARGV[1]] = 0x01$
+    $END$
+    $info = 1$
+    $TAB$$TAB${$NL$
+    $start_address = 0$
+    $end_address = 0$
+    $IF LENGTH(osap_mo_start[ARGV[1]])$
+$       // 領域の開始アドレスを読み込む 
+        $start_address = osap_mo_start[ARGV[1]]$
+$       // 領域の終了アドレスを読み込む 
+        $end_address = osap_mo_limit[ARGV[1]]$
+    $END$
+
+    $TRACE(ARGV[1])$ 
+    $TRACE(start_address)$ 
+    $TRACE(end_address)$ 
+
+    $ipal = (start_address & 0xfffffff0)$ 
+    $ipau = (end_address & 0xfffffff0)$ 
+    $IF (ipal != start_address) || (ipau != end_address)$
+        $ERROR$
+            $FORMAT("osap is %s, info is %d", ARGV[1], info)$$NL$
+            $FORMAT("Not aligned: start=0x%x, end=0x%x", start_address, end_address)$$NL$
+            $FORMAT("ipal=0x%x, ipau=0x%x", ipal, ipau)$
+        $END$
+    $END$
+    $IF ipal != ipau$
+        $valid[1] = 0x01$
+        $ipau = (ipau - 0x1) & 0xfffffffc$
+        $OSAP.MPRC[ARGV[1]] = OSAP.MPRC[ARGV[1]] | 0x02$
+    $ELSE$
+        $valid[1] = 0x00$
+    $END$
+
+    $IF !OSAP.TRUSTED[ARGV[1]]$
+        $TAB$$TAB$$TAB$( (uint8 *)($FORMAT("0x%x", ipal)$) ), /* MPLA0 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)($FORMAT("0x%x", ipau)$) ), /* MPLA0 */$NL$
+    $ELSE$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ), /* MPLA$info$ : $FORMAT("0x%x", ipal)$ */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ), /* MPUA$info$ : $FORMAT("0x%x", ipau)$ */$NL$
+    $END$
+
+    $info = 2$
+    $start_address = 0$
+    $end_address = 0$
+    $IF LENGTH(sosap_mo_start[ARGV[1]])$
+$       // 領域の開始アドレスを読み込む 
+        $start_address = sosap_mo_start[ARGV[1]]$
+$       // 領域の終了アドレスを読み込む 
+        $end_address = sosap_mo_limit[ARGV[1]]$
+    $END$
+
+    $ipal = (start_address & 0xfffffff0)$ 
+    $ipau = (end_address & 0xfffffff0)$ 
+    $IF (ipal != start_address) || (ipau != end_address)$
+        $ERROR$
+            $FORMAT("osap is %s, info is %d", ARGV[1], info)$$NL$
+            $FORMAT("Not aligned: start=0x%x, end=0x%x", start_address, end_address)$$NL$
+            $FORMAT("ipal=0x%x, ipau=0x%x", ipal, ipau)$
+        $END$
+    $END$
+    $IF ipal != ipau$
+        $valid[2] = 0x01$
+        $ipau = (ipau - 0x1) & 0xfffffffc$
+        $OSAP.MPRC[ARGV[1]] = OSAP.MPRC[ARGV[1]] | 0x04$
+    $ELSE$
+        $valid[2] = 0x00$
+    $END$
+
+    $IF !OSAP.TRUSTED[ARGV[1]]$
+        $TAB$$TAB$$TAB$( (uint8 *)($FORMAT("0x%x", ipal)$) ), /* MPLA1 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)($FORMAT("0x%x", ipau)$) ), /* MPLA1 */$NL$
+    $ELSE$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ), /* MPLA$info$ : $FORMAT("0x%x", ipal)$ */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ), /* MPUA$info$ : $FORMAT("0x%x", ipau)$ */$NL$
+    $END$
+    $IF !OSAP.TRUSTED[ARGV[1]]$
+        $OSAP.MPRC[ARGV[1]] = OSAP.MPRC[ARGV[1]] | 0x01$
+        $TAB$$TAB$$TAB$( (uint32)($FORMAT("0x%x", OSAP.MPRC[ARGV[1]])$) ), /* MPRC */$NL$
+    $ELSE$
+        $TAB$$TAB$$TAB$( (uint32)0 ), /* MPRC */$NL$
+    $END$
+    $TAB$$TAB$}$NL$
+    $NL$
+$END$
+
+$FUNCTION GENERATE_TSKINICTXB$
+	$TAB$$TAB${$NL$
+    $TAB$$TAB$$TAB$$TSK.TINIB_SSTKSZ[ARGV[1]]$,$NL$
+	$TAB$$TAB$$TAB$((void *)((uint8 *)($TSK.TINIB_SSTK[ARGV[1]]$)
+    $SPC$+ ($TSK.TINIB_SSTKSZ[ARGV[1]]$))),$NL$
+	$IF OSAP.TRUSTED[TSK.OSAPID[ARGV[1]]]$
+        $TAB$$TAB$$TAB$0,$NL$
+        $TAB$$TAB$$TAB$0,$NL$
+    $ELSE$
+        $TAB$$TAB$$TAB$$TSK.TINIB_USTKSZ[ARGV[1]]$,$NL$ 
+        $TAB$$TAB$$TAB$((void *)((uint8 *)($TSK.TINIB_USTK[ARGV[1]]$)
+        $SPC$+ ($TSK.TINIB_USTKSZ[ARGV[1]]$))),$NL$
+    $END$
+	$TAB$$TAB$},$NL$
+$END$
+
+$FUNCTION GENERATE_STKMPUINFOB$
+	$TAB$$TAB${$NL$
+	$IF OSAP.TRUSTED[TSK.OSAPID[ARGV[1]]]$
+        $TAB$$TAB$$TAB$0,$NL$
+        $TAB$$TAB$$TAB$0,$NL$
+    $ELSE$
+		$IF EQ(TSK.STK[ARGV[1]],"NULL")$
+$			// stkがNULLの場合の処理
+            $IF LENGTH(TSK.SHARED_USTK_ID[ARGV[1]])$
+$               // 共有スタック
+                $section = SECTION_SHARED_USTACK(TSK.SHARED_USTK_ID[ARGV[1]])$
+                $start_address = SYMBOL(CONCAT("__s", section))$
+                $end_address = SYMBOL(CONCAT("__e", section))$
+            $ELSE$
+$               // 固有スタック
+                $section = SECTION_USTACK(ARGV[1])$
+                $start_address = SYMBOL(CONCAT("__s", section))$
+                $end_address = SYMBOL(CONCAT("__e", section))$
+            $END$
+        $ELSE$
+$			// stkがNULLでない場合の処理
+            $p_tinib = SYMBOL("tinib_table")$
+            $p_tinib = p_tinib + TSK.ID[ARGV[1]] * sizeof_TINIB$
+            $start_address = PEEK(p_tinib + offsetof_TINIB_STKMPUINFOB_start_ustk, 4)$
+            $end_address = PEEK(p_tinib + offsetof_TINIB_STKMPUINFOB_limit_ustk, 4)$
+        $END$
+        $mpl = (start_address & 0xfffffff0)$ 
+        $mpu = (end_address & 0xfffffff0)$ 
+        $IF (mpl != start_address) || (mpu != end_address)$
+            $ERROR$
+                $FORMAT("task is %s", ARGV[1])$$NL$
+                $FORMAT("user stack in not aligned: start=0x%x, end=0x%x", start_address, end_address)$$NL$
+                $FORMAT("mpla=0x%x, mpua=0x%x", mpl, mpu)$
+            $END$
+        $END$
+        $IF mpl == mpu$
+            $ERROR$
+                $FORMAT("task is %s", ARGV[1])$$NL$
+                $FORMAT("user stack size is 0: start=0x%x, end=0x%x", start_address, end_address)$$NL$
+                $FORMAT("mpla=0x%x, mpua=0x%x", mpl, mpu)$
+            $END$
+        $END$
+        $mpu = (mpu - 0x1) & 0xfffffffc$
+        $TAB$$TAB$$TAB$$FORMAT("(void *)0x%x /* &__start_user_stack %s */", mpl, ARGV[1])$,$NL$
+        $TAB$$TAB$$TAB$$FORMAT("(void *)0x%x /* &__limit_user_stack %s */", mpu, ARGV[1])$,$NL$
+    $END$
+	$TAB$$TAB$},$NL$
+$END$
+
+$ 
+$  meminibの依存部の読込み
+$ 
+$INCLUDE "arch/v850_ccrh/prc_meminib.tf"$
+
+$ 
+$  非依存部の読込み
+$ 
+$INCLUDE "kernel/kernel_mem.tf"$
+
+$FILE "kernel_mem.c"$
+
+$ 
+$  共有のMPU設定情報を生成
+$  kernel_mem3.cの宣言位置と合わせる
+$ 
+
+$comment[3] = "MPU 3"$
+
+$shared_meminib = SYMBOL("shared_meminib_table")$
+$TNUM_SHARED_REGION = 1$
+const uint32 tnum_shared_mem = $TNUM_SHARED_REGION * 2$;$NL$
+uint8 * const shared_meminib_table[$TNUM_SHARED_REGION * 2$] = {$NL$
+$FOREACH info RANGE(3,3)$
+    $start_address = 0$
+    $end_address = 0$
+    $IF LENGTH(shared_mo_start)$
+$       // 領域の開始アドレスを読み込む 
+        $start_address = shared_mo_start$
+$       // 領域の終了アドレスを読み込む 
+        $end_address = shared_mo_limit$
+    $END$
+    $ipal = (start_address & 0xfffffff0)$ 
+    $ipau = (end_address & 0xfffffff0)$ 
+    $WARNING$
+        $FORMAT("info%d: start=0x%x, end=0x%x", info, start_address, end_address)$
+    $END$
+    $IF (ipal != start_address) || (ipau != end_address)$
+        $ERROR$
+            $FORMAT("Not aligned: start=0x%x, end=0x%x", start_address, end_address)$
+        $END$
+    $END$
+    $IF ipal != ipau$
+        $valid[info] = 0x01$
+        $ipau = (ipau - 0x1) & 0xfffffffc$
+    $ELSE$
+        $valid[info] = 0x00$
+    $END$
+    $WARNING$
+        $FORMAT("info%d: ipal=0x%x, ipau=0x%x", info, ipal, ipau)$
+    $END$
+    $TAB$$TAB$$FORMAT("( (uint8 *)0x%x )", ipal)$, /* MPLA($comment[info]$) */$NL$
+    $TAB$$TAB$$FORMAT("( (uint8 *)0x%x )", ipau)$, /* MPUA($comment[info]$) */$NL$
+$END$
+};$NL$
+$NL$
+
Index: /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_mem.yaml
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_mem.yaml	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_mem.yaml	(revision 117)
@@ -0,0 +1,164 @@
+#
+#  TOPPERS ATK2
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+#      Automotive Kernel Version 2
+#
+#  Copyright (C) 2014-2015 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#
+#  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  AUTOSAR（AUTomotive Open System ARchitecture）は，AUTOSAR仕様に基づ
+#  いたソフトウェアを商用目的で利用する者に対して，AUTOSARパートナーに
+#  なることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+#  $Id: prc_mem.yaml 182 2015-06-24 07:14:37Z t_ishikawa $
+#
+
+Ecuc:
+  Os:
+    kernel_text:
+      DefinitionRef: OsMemorySection
+      OsMemorySectionName: "kernel.text"
+      OsMemorySectionMemoryRegionRef: /Ecuc/Os/FLASH
+      OsMemorySectionWritable: false
+      OsMemorySectionReadable: true
+      OsMemorySectionExecutable: true
+      OsMemorySectionShort: false
+      OsMemorySectionCacheable: true
+      OsMemorySectionDevice: false
+      OsMemorySectionExport: false
+    kernel_const:
+      DefinitionRef: OsMemorySection
+      OsMemorySectionName: "kernel.const"
+      OsMemorySectionMemoryRegionRef: /Ecuc/Os/FLASH
+      OsMemorySectionWritable: false
+      OsMemorySectionReadable: true
+      OsMemorySectionExecutable: true
+      OsMemorySectionShort: false
+      OsMemorySectionCacheable: true
+      OsMemorySectionDevice: false
+      OsMemorySectionExport: false
+    kernel_data:
+      DefinitionRef: OsMemorySection
+      OsMemorySectionName: "kernel.data"
+      OsMemorySectionMemoryRegionRef: /Ecuc/Os/RAM
+      OsMemorySectionWritable: true
+      OsMemorySectionReadable: true
+      OsMemorySectionExecutable: false
+      OsMemorySectionShort: false
+      OsMemorySectionInitialize: DATA
+      OsMemorySectionCacheable: true
+      OsMemorySectionDevice: false
+      OsMemorySectionExport: false
+    kernel_bss:
+      DefinitionRef: OsMemorySection
+      OsMemorySectionName: "kernel.bss"
+      OsMemorySectionMemoryRegionRef: /Ecuc/Os/RAM
+      OsMemorySectionWritable: true
+      OsMemorySectionReadable: true
+      OsMemorySectionExecutable: false
+      OsMemorySectionShort: false
+      OsMemorySectionInitialize: BSS
+      OsMemorySectionCacheable: true
+      OsMemorySectionDevice: false
+      OsMemorySectionExport: false
+    kernel_srpw:
+      DefinitionRef: OsMemorySection
+      OsMemorySectionName: "kernel.srpw.bss"
+      OsMemorySectionMemoryRegionRef: /Ecuc/Os/RAM
+      OsMemorySectionWritable: true
+      OsMemorySectionReadable: true
+      OsMemorySectionExecutable: false
+      OsMemorySectionShort: false
+      OsMemorySectionInitialize: NO_INITIALIZE
+      OsMemorySectionCacheable: true
+      OsMemorySectionDevice: false
+      OsMemorySectionExport: false
+    prc_osap_kernel:
+      DefinitionRef: OsApplication
+      OsTrusted: true
+      OsAppMemorySectionRef: 
+        - /Ecuc/Os/kernel_text
+        - /Ecuc/Os/kernel_const
+        - /Ecuc/Os/kernel_data
+        - /Ecuc/Os/kernel_bss
+        - /Ecuc/Os/kernel_srpw
+      OsApplicationHooks:
+        OsAppErrorHook: false
+        OsAppShutdownHook: false
+        OsAppStartupHook: false
+    shared_text:
+      DefinitionRef: OsMemorySection
+      OsMemorySectionName: "shared.text"
+      OsMemorySectionMemoryRegionRef: /Ecuc/Os/FLASH
+      OsMemorySectionWritable: false
+      OsMemorySectionReadable: true
+      OsMemorySectionExecutable: true
+      OsMemorySectionShort: false
+      OsMemorySectionCacheable: true
+      OsMemorySectionDevice: false
+      OsMemorySectionExport: false
+    shared_const:
+      DefinitionRef: OsMemorySection
+      OsMemorySectionName: "shared.const"
+      OsMemorySectionMemoryRegionRef: /Ecuc/Os/FLASH
+      OsMemorySectionWritable: false
+      OsMemorySectionReadable: true
+      OsMemorySectionExecutable: true
+      OsMemorySectionShort: false
+      OsMemorySectionCacheable: true
+      OsMemorySectionDevice: false
+      OsMemorySectionExport: false
+    shared_data:
+      DefinitionRef: OsMemorySection
+      OsMemorySectionName: "shared.data"
+      OsMemorySectionMemoryRegionRef: /Ecuc/Os/RAM
+      OsMemorySectionWritable: true
+      OsMemorySectionReadable: true
+      OsMemorySectionExecutable: false
+      OsMemorySectionShort: false
+      OsMemorySectionInitialize: DATA
+      OsMemorySectionCacheable: true
+      OsMemorySectionDevice: false
+      OsMemorySectionExport: true
+    shared_bss:
+      DefinitionRef: OsMemorySection
+      OsMemorySectionName: "shared.bss"
+      OsMemorySectionMemoryRegionRef: /Ecuc/Os/RAM
+      OsMemorySectionWritable: true
+      OsMemorySectionReadable: true
+      OsMemorySectionExecutable: false
+      OsMemorySectionShort: false
+      OsMemorySectionInitialize: BSS
+      OsMemorySectionCacheable: true
+      OsMemorySectionDevice: false
+      OsMemorySectionExport: true
+
Index: /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_meminib.tf
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_meminib.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_meminib.tf	(revision 117)
@@ -0,0 +1,337 @@
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$  Copyright (C) 2014-2015 by Center for Embedded Computing Systems
+$              Graduate School of Information Science, Nagoya Univ., JAPAN
+$
+$  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+$  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+$  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+$  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+$      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+$      スコード中に含まれていること．
+$  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+$      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+$      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+$      の無保証規定を掲載すること．
+$  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+$      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+$      と．
+$    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+$        作権表示，この利用条件および下記の無保証規定を掲載すること．
+$    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+$        報告すること．
+$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+$      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+$      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+$      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+$      免責すること．
+$
+$  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+$  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+$  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+$  用する者に対して，AUTOSARパートナーになることを求めている．
+$
+$  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+$  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+$  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$  の責任を負わない．
+$
+$  $Id: prc_meminib.tf 189 2015-06-26 01:54:57Z t_ishikawa $
+$
+
+$ =====================================================================
+$ kernel_mem.cの共通部分の生成
+$ =====================================================================
+
+$FILE "kernel_mem.c"$
+
+$ =====================================================================
+$ シンボルと仮メモリオブジェクト初期化ブロックの読込みと前処理
+$ =====================================================================
+
+$
+$ シンボルと仮メモリオブジェクト初期化ブロックの読込み
+$
+$ MO.BASEADDR[moid]：メモリオブジェクトの先頭番地
+$ MO.LIMITADDR[moid]：メモリオブジェクトの上限番地
+$ MO.POFFSET[moid]：物理アドレスとのオフセット
+$ MO_MEMTOP_LIST：サイズが0でないメモリオブジェクトのリスト
+
+$OMIT_STANDARD_MEMINIB = 1$
+$IF OMIT_STANDARD_MEMINIB$
+	$MO_MEMTOP_LIST = {}$
+	$memtop_table = SYMBOL("memtop_table")$
+	$offset = 0$
+	$FOREACH moid MO_START_LIST$
+		$IF MO.LINKER[moid]$
+            $next = AT(MO_START_LIST, (FIND(MO_START_LIST, moid) + 1))$
+            $IF LENGTH(next)$
+                $last = FIND(MO_ORDER, next) - 1$
+            $ELSE$
+                $last = LENGTH(MO_ORDER) - 1$
+            $END$
+            $TRACE(MO.SECTION[moid])$
+            $FOREACH moid2 RANGE(FIND(MO_ORDER, moid), last)$
+                $moid2 = AT(MO_ORDER, moid2)$
+                $TRACE(MO.SECTION[moid2])$
+                $IF !LENGTH(MO.BASEADDR[moid])$
+                    $MO.BASEADDR[moid] = START_SYMBOL(moid2)$
+                $END$
+                $IF LENGTH(LIMIT_SYMBOL(moid2))$
+                    $MO.LIMITADDR[moid] = LIMIT_SYMBOL(moid2)$
+                $END$
+            $END$
+            $IF !LENGTH(MO.BASEADDR[moid])$
+                $IF LENGTH(MO.LIMITADDR[moid])$
+                    $ERROR$conflict MO BASE and LIMIT$END$
+                $END$
+                $MO.BASEADDR[moid] = 0xffffffff$
+                $MO.LIMITADDR[moid] = 0xffffffff$
+            $END$
+            $IF LENGTH(MO.BASEADDR[moid])$
+                $IF !LENGTH(MO.LIMITADDR[moid])$
+                    $ERROR$conflict MO BASE and LIMIT$END$
+                $END$
+            $END$
+			$MO.POFFSET[moid] = 0$
+		$ELSE$
+			$MO.BASEADDR[moid] = PEEK(memtop_table + offset, sizeof_void_ptr)$
+			$offset = offset + sizeof_void_ptr$
+			$MO.LIMITADDR[moid] = (MO.BASEADDR[moid] + MO.SIZE[moid]) & ((1 << sizeof_void_ptr * 8) - 1)$
+			$IF LENGTH(MO.PADDR[moid])$
+				$MO.POFFSET[moid] = MO.PADDR[moid] - MO.BASEADDR[moid]$
+			$ELSE$
+				$MO.POFFSET[moid] = 0$
+			$END$
+		$END$
+
+		$IF MO.BASEADDR[moid] != MO.LIMITADDR[moid]$
+			$IF MO.BASEADDR[moid] < MO.LIMITADDR[moid]
+											|| MO.LIMITADDR[moid] == 0$
+				$MO_MEMTOP_LIST = APPEND(MO_MEMTOP_LIST, moid)$
+			$ELIF MO.TYPE[moid] == TOPPERS_ATTMEM$
+				$ERROR MO.TEXT_LINE[moid]$ 
+					$FORMAT(_("%1% `%2%\' is too large"),
+								"size", MO.SIZE[moid])$
+				$END$
+			$ELSE$
+				$ERROR MO.TEXT_LINE[moid]$
+					$FORMAT(_("illegal memory object size"))$$NL$
+                    $FORMAT("0x%x", MO.BASEADDR[moid])$$NL$
+                    $FORMAT("0x%x", MO.LIMITADDR[moid])$
+				$END$
+			$END$
+		$END$
+	$END$
+$END$
+
+$ =====================================================================
+$ メモリオブジェクト初期化ブロックの生成
+$ =====================================================================
+
+$FUNCTION GENERATE_MEMINIB_TABLE$
+$	// メモリオブジェクト初期化ブロックに出力するエントリの決定
+$
+$	// tnum_meminib：メモリオブジェクト初期化ブロックに出力するエントリ数
+$	// genzero：アドレス0に対応するエントリを出力する
+	$tnum_meminib = 0$
+	$prev = 0$
+	$TRACE(MO_MEMTOP_ORDER)$
+	$FOREACH moid MO_MEMTOP_ORDER$
+		$IF !prev && MO.BASEADDR[moid] != 0$
+			$genzero = 1$
+			$tnum_meminib = tnum_meminib + 1$
+		$END$
+		$IF LENGTH(MO.SUPPRESSLIMIT[moid])$
+			$tnum_meminib = tnum_meminib + 1$
+		$ELSE$
+			$tnum_meminib = tnum_meminib + 2$
+		$END$
+		$prev = moid$
+	$END$
+
+$	// tsize_meminibの妥当性チェック
+	$IF tsize_meminib < tnum_meminib$
+		$ERROR$$FORMAT(_("illegal memory object initialization block size"))$$END$
+	$END$
+
+$	// tnum_meminibの生成
+	const uint32 tnum_meminib = $tnum_meminib$U;$NL$
+	$NL$
+
+$	// memtop_tableの生成
+	void *const memtop_table[$tsize_meminib$] = {$NL$
+	$IF LENGTH(genzero)$
+		$TAB$0,$NL$
+	$END$
+	$JOINEACH moid MO_MEMTOP_ORDER ",\n"$
+		$IF MO.LINKER[moid]$
+			$TAB$$FORMAT("(void *)0x%x", MO.BASEADDR[moid])$
+			$SPC$/* #__s$MO.SECTION[moid]$ */
+			$IF !LENGTH(MO.SUPPRESSLIMIT[moid])$
+				 ,$NL$$TAB$$FORMAT("(void *)0x%x", MO.LIMITADDR[moid])$
+				$SPC$/* #__e$MO.SECTION[ALT(MO.MERGELAST[moid],moid)]$ */
+			$END$
+		$ELSE$
+			$TAB$(void *)($MO.BASE[moid]$)
+			$SPC$/* $FORMAT("%x", MO.BASEADDR[moid])$ */
+			$IF !LENGTH(MO.SUPPRESSLIMIT[moid])$
+				,$NL$$TAB$(void *)(((uint8 *)($MO.BASE[moid]$)) + ($MO.SIZE[moid]$))
+				$SPC$/* $FORMAT("%x", MO.LIMITADDR[moid])$ */
+			$END$
+		$END$
+	$END$
+	$IF tnum_meminib < tsize_meminib$
+		$FOREACH i RANGE(tnum_meminib + 1, tsize_meminib)$
+			,$NL$$TAB$NULL
+		$END$
+	$END$$NL$
+	};$NL$
+	$NL$
+
+$	// meminib_tableの生成
+	const MEMINIB meminib_table[$tsize_meminib$] = {$NL$
+	$IF LENGTH(genzero)$
+		$TAB${ TA_NULL, TACP_KERNEL, TACP_KERNEL, TACP_KERNEL },$NL$
+	$END$
+	$JOINEACH moid MO_MEMTOP_ORDER ",\n"$
+		$TAB${
+		$IF MO.TYPE[moid] == TOPPERS_USTACK$
+			$SPC$TOPPERS_USTACK|($MO.MEMATR[moid]$),
+		$ELSE$
+			$IF MO.TYPE[moid] == TOPPERS_ATTMEM$
+				$SPC$TOPPERS_ATTMEM|($FORMAT("0x%xU", +MO.MEMATR[moid])$),
+			$ELSE$
+				$SPC$TOPPERS_ATTSEC|($FORMAT("0x%xU", +MO.MEMATR[moid])$),
+			$END$
+		$END$
+		$SPC$$MO.ACPTN_R[moid]$,
+		$SPC$$MO.ACPTN_W[moid]$,
+		$SPC$$MO.ACPTN_X[moid]$
+		$SPC$}
+		$IF !LENGTH(MO.SUPPRESSLIMIT[moid])$
+			,$NL$$TAB${ TA_NULL, TACP_KERNEL, TACP_KERNEL, TACP_KERNEL }
+		$END$
+	$END$
+	$IF tnum_meminib < tsize_meminib$
+		$FOREACH i RANGE(tnum_meminib + 1, tsize_meminib)$
+			,$NL$$TAB${ 0U, 0U, 0U, 0U }
+		$END$
+	$END$$NL$
+	};$NL$
+	$NL$
+
+$ 
+$  dataセクション初期化ブロックの生成
+$ 
+    $IF !OMIT_IDATA && LENGTH(DATASEC_LIST) && !LENGTH(DATASEC_LIST_OPTIMIZED)$
+$	// サイズが0でないdataセクションのリスト（MO_DATASEC_LIST）を作成
+$	// パス3で作成していない場合には，ここで作成する．
+        $MO_DATASEC_LIST = {}$
+        $FOREACH moid DATASEC_LIST$
+            $IF MO.BASEADDR[moid] != MO.LIMITADDR[moid]$
+                $MO_DATASEC_LIST = APPEND(MO_DATASEC_LIST, moid)$
+            $END$
+        $END$
+    $END$
+
+    $IF OMIT_STANDARD_DATASECINIB$
+        /*$NL$
+        $SPC$*	Data Section Management Functions$NL$
+        $SPC$*/$NL$
+        $NL$
+
+$	// dataセクションの数
+        #define TNUM_DATASEC		$IF !OMIT_IDATA$$LENGTH(MO_DATASEC_LIST)$U$ELSE$0$END$$NL$
+        #define TNUM_DATASEC_TBL	$IF !OMIT_IDATA$$LENGTH(DATASEC_LIST)$U$ELSE$0$END$$NL$
+        $NL$
+
+        $IF ISFUNCTION("DEFINE_CONST_VAR")$
+            $DEFINE_CONST_VAR("const uint32", "tnum_datasec")$ = TNUM_DATASEC;$NL$
+        $ELSE$
+            const uint32 tnum_datasec = TNUM_DATASEC;$NL$
+        $END$
+        $NL$
+
+        $IF !OMIT_IDATA && LENGTH(DATASEC_LIST)$
+            $IF ISFUNCTION("DEFINE_CONST_VAR")$
+                $DEFINE_CONST_VAR("const DATASECINIB", "datasecinib_table[TNUM_DATASEC_TBL]")$ = {
+            $ELSE$
+                const DATASECINIB datasecinib_table[TNUM_DATASEC_TBL] = {
+            $END$
+            $IF LENGTH(MO_DATASEC_LIST)$
+                $NL$
+                $JOINEACH moid MO_DATASEC_LIST ",\n"$
+                    $IF LENGTH(START_SYMBOL(moid))$ 
+                        $TAB${ $FORMAT("(void *)0x%xU, (void *)0x%xU, (void *)0x%xU", START_SYMBOL(moid), LIMIT_SYMBOL(moid), 
+                        SYMBOL(FORMAT("__s%s", MO.SECTION[moid])))$ }
+                    $ELSE$
+                        $TAB${ 0U, 0U, 0U }
+                    $END$
+                    $SPC$ /* #__s$MO.SECTION[moid]$, &__e$MO.SECTION[moid]$, 
+                    &__s$MO.SECTION[moid]$.R */
+                $END$$NL$
+            $ELSE$
+                { 0U, 0U, 0U }
+            $END$
+            };$NL$
+        $ELSE$
+            TOPPERS_EMPTY_LABEL(const DATASECINIB, datasecinib_table);$NL$
+        $END$$NL$
+    $END$
+
+$ 
+$  bssセクション初期化ブロックの生成
+$ 
+    $IF LENGTH(BSSSEC_LIST) && !LENGTH(BSSSEC_LIST_OPTIMIZED)$
+$	// サイズが0でないbssセクションのリスト（MO_BSSSEC_LIST）を作成
+        $MO_BSSSEC_LIST = {}$
+        $FOREACH moid BSSSEC_LIST$
+            $IF MO.BASEADDR[moid] != MO.LIMITADDR[moid]$
+                $MO_BSSSEC_LIST = APPEND(MO_BSSSEC_LIST, moid)$
+            $END$
+        $END$
+    $END$
+
+    $IF OMIT_STANDARD_BSSSECINIB$
+        /*$NL$
+        $SPC$*	BSS Section Management Functions$NL$
+        $SPC$*/$NL$
+        $NL$
+
+        $IF LENGTH(BSSSEC_LIST)$
+$		// bssセクションの数
+            const uint32 tnum_bsssec = $LENGTH(MO_BSSSEC_LIST)$U;$NL$
+            $NL$
+
+$		// bssセクション初期化ブロック
+            const BSSSECINIB bsssecinib_table[$LENGTH(BSSSEC_LIST)$] = {
+            $IF LENGTH(MO_BSSSEC_LIST)$
+                $NL$
+                $JOINEACH moid MO_BSSSEC_LIST ",\n"$
+                    $IF LENGTH(START_SYMBOL(moid))$ 
+                        $TAB${ $FORMAT("(void *)0x%xU, (void *)0x%xU", START_SYMBOL(moid), LIMIT_SYMBOL(moid))$ } 
+                    $ELSE$
+                        $TAB${ 0, 0 }
+                    $END$
+                    $SPC$ /* #__s$MO.SECTION[moid]$, #__e$MO.SECTION[moid]$ */
+                $END$$NL$
+            $ELSE$
+                { 0, 0 }
+            $END$
+            };$NL$
+        $ELSE$
+            const uint32 tnum_bsssec = 0U;$NL$
+            TOPPERS_EMPTY_LABEL(const BSSSECINIB, bsssecinib_table);$NL$
+        $END$$NL$
+    $END$
+
+$END$
+
+$OMIT_STANDARD_DATASECINIB = 1$
+$OMIT_STANDARD_BSSSECINIB = 1$
+
Index: /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_offset.tf
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_offset.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_offset.tf	(revision 117)
@@ -0,0 +1,66 @@
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$  Copyright (C) 2013-2014 by Center for Embedded Computing Systems
+$              Graduate School of Information Science, Nagoya Univ., JAPAN
+$  Copyright (C) 2013-2014 by FUJI SOFT INCORPORATED, JAPAN
+$  Copyright (C) 2013-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+$  Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
+$  Copyright (C) 2013-2014 by Sunny Giken Inc., JAPAN
+$  Copyright (C) 2013-2014 by TOSHIBA CORPORATION, JAPAN
+$  Copyright (C) 2013-2014 by Witz Corporation, JAPAN
+$
+$  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+$  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+$  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+$  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+$      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+$      スコード中に含まれていること．
+$  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+$      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+$      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+$      の無保証規定を掲載すること．
+$  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+$      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+$      と．
+$    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+$        作権表示，この利用条件および下記の無保証規定を掲載すること．
+$    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+$        報告すること．
+$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+$      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+$      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+$      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+$      免責すること．
+$
+$  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+$  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+$  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+$  用する者に対して，AUTOSARパートナーになることを求めている．
+$
+$  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+$  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+$  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$  の責任を負わない．
+$
+$  $Id: prc_offset.tf 164 2015-06-03 01:22:29Z t_ishikawa $
+$
+
+$
+$       オフセットファイル生成用テンプレートファイル（V850用）
+$
+
+$
+$  set ディレクティブの再定義
+$
+$FUNCTION DEFINE$
+	$TAB$$ARGV[1]$$TAB$.set$TAB$$FORMAT("%d", +ARGV[2])$$NL$
+$END$
+
+$
+$  コア依存テンプレートのインクルード（V850E2M用）
+$
+$INCLUDE "v850_gcc/prc_offset.tf"$
Index: /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_support.asm
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_support.asm	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_support.asm	(revision 117)
@@ -0,0 +1,3225 @@
+;/* 
+ ;*  TOPPERS ATK2
+ ;*      Toyohashi Open Platform for Embedded Real-Time Systems
+ ;*      Automotive Kernel Version 2
+ ;*
+ ;*  Copyright (C) 2012-2015 by Center for Embedded Computing Systems
+ ;*              Graduate School of Information Science, Nagoya Univ., JAPAN
+ ;*  Copyright (C) 2012-2013 by FUJISOFT INCORPORATED, JAPAN
+ ;*  Copyright (C) 2012-2013 by FUJITSU VLSI LIMITED, JAPAN
+ ;*  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ ;*  Copyright (C) 2012-2013 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ ;*  Copyright (C) 2012-2013 by Renesas Electronics Corporation, JAPAN
+ ;*  Copyright (C) 2012-2013 by Sunny Giken Inc., JAPAN
+ ;*  Copyright (C) 2012-2013 by TOSHIBA CORPORATION, JAPAN
+ ;*  Copyright (C) 2012-2013 by Witz Corporation, JAPAN
+ ;*  Copyright (C) 2013 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プロジェクトを
+ ;*      免責すること．
+ ;*
+ ;*  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ ;*  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ ;*  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ ;*  用する者に対して，AUTOSARパートナーになることを求めている．
+ ;*
+ ;*  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ ;*  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ ;*  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ ;*  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ ;*  の責任を負わない．
+ ;*
+ ;*  $Id: prc_support.asm 189 2015-06-26 01:54:57Z t_ishikawa $
+ ;*/
+
+;/*
+ ;*		ターゲット依存情報の定義
+ ;*/
+$include (v850asm.inc)
+$include (offset.h)
+
+$ifdef USE_ASMCONFIG_INC
+$include (asm_config.inc)
+$endif ;/* USE_ASMCONFIG_INC */
+
+$ifdef __v850e2v3__
+
+;/*
+ ;*  V850E2用の割込みコントローラ操作ルーチン
+ ;*/
+GET_ISPR .macro reg
+	mov		ISPR_H, reg
+	ld.h	0[reg],reg
+.endm
+
+CLEAR_ISPR .macro reg1, reg2
+	mov		ISPC_H,reg1
+	mov		0xffff,reg2
+	st.h	reg2,0[reg1]
+	mov		ISPR_H, reg1
+	st.h	r0,0[reg1]
+.endm
+
+SET_PMR .macro reg_val, reg_tmp
+	mov     PMR, reg_tmp
+	st.h    reg_val, 0[reg_tmp]  ;/* set interrupt level */
+	syncm
+.endm
+
+$endif ;/* __v850e2v3__ */
+
+$ifdef __v850e3v5__
+
+;/*
+ ;*  V850E3V5用の割込みコントローラ操作ルーチン
+ ;*/
+GET_ISPR .macro reg
+	stsr 10, reg, 2
+.endm
+
+SET_ISPR .macro val, reg 
+	movea val,r0,reg
+	ldsr reg, 10, 2
+	syncp
+.endm
+
+SET_INTCFG .macro val, reg 
+	movea val,r0,reg
+	ldsr reg, 13, 2
+	syncp
+.endm
+
+CLEAR_ISPR .macro reg1, reg2
+	SET_INTCFG 1, reg1 ;/* ISPR を書き換え可能に */
+	SET_ISPR   0, reg1 ;/* ISPR のクリア */
+	SET_INTCFG 0, reg1 ;/* ISPR を書き換え禁止に(自動更新に) */
+.endm
+
+GET_PMR .macro reg
+	stsr 11, reg, 2
+.endm
+
+SET_PMR .macro reg_val, reg_tmp
+	stsr psw, reg_tmp
+	di
+	ldsr reg_val, 11, 2
+	ldsr reg_tmp, psw
+	syncp
+.endm
+
+GET_ICSR .macro reg
+	stsr sr12, reg, 2
+.endm
+
+SET_ICSR .macro val, reg 
+	movea val,r0,reg
+	ldsr \reg, sr12, 2
+.endm
+
+$endif ;/* !__v850e3v5__ */
+
+
+;/*
+ ;*  OS割込み禁止マクロ
+ ;*  ネストの一番外側で呼び出されることを想定している
+ ;*/
+OUTER_LOCK_OS_INT .macro   reg12, reg13
+
+    ;/* pmr_isr2_mask -> PMR */
+    Lea     _pmr_isr2_mask, reg13
+    ld.h    0[reg13], reg13
+    SET_PMR reg13, reg12
+
+    ;/* nested_lock_os_int_cnt = 1 */
+    Lea     _nested_lock_os_int_cnt, reg12
+    mov     1, reg13
+    st.b    reg13, 0[reg12]
+
+.endm
+
+;/*
+ ;*  OS割込み禁止解除マクロ
+ ;*  ネストの一番外側で呼び出されることを想定している
+ ;*/
+OUTER_UNLOCK_OS_INT .macro  reg12, reg13
+
+    ;/* nested_lock_os_int_cnt = 0 */
+    Lea     _nested_lock_os_int_cnt, reg12
+    mov     r0, reg13
+    st.b    reg13, 0[reg12]
+
+    ;/* pmr_setting_tbl[current_iintpri] -> PMR */
+    Lea     _current_iintpri, reg12
+    ld.bu   0[reg12], reg12
+    shl     1, reg12
+
+    Lea     _pmr_setting_tbl, reg13
+    add     reg12, reg13
+    ld.h    0[reg13], reg13
+    SET_PMR reg13, reg12  ;/* set interrupt level */
+
+.endm
+
+;/* =begin modified for SC3 */
+;/*
+ ;*  OS割込み禁止マクロ
+ ;*  ネストあり
+ ;*/
+NESTED_LOCK_OS_INT .macro   reg12, reg13
+
+    ;/* nested_lock_os_int_cnt == 0 ? */
+    Lea     _nested_lock_os_int_cnt, reg13
+    ld.b    0[reg13], reg12
+    cmp     r0, reg12
+    bne     increment_nest_lock
+
+    ;/* pmr_isr2_mask -> PMR */
+    Lea     _pmr_isr2_mask, reg13
+    ld.h    0[reg13], reg13
+    SET_PMR reg13, reg12  ;/* set interrupt level */
+    Lea     _nested_lock_os_int_cnt, reg13
+    mov     r0, reg12                ;/* nested_lock_os_int_cnt = 0 */
+
+increment_nest_lock:
+    ;/* nested_lock_os_int_cnt += 1 */
+    add     1, reg12
+    st.b    reg12, 0[reg13]
+
+.endm
+
+;/*
+ ;*  OS割込み禁止解除マクロ
+ ;*  ネストあり
+ ;*/
+NESTED_UNLOCK_OS_INT .macro  reg12, reg13
+
+    ;/* nested_lock_os_int_cnt -= 1 */
+    Lea     _nested_lock_os_int_cnt, reg12
+    ld.b    0[reg12], reg13
+    add     -1, reg13
+    st.b    reg13, 0[reg12]
+    cmp     r0, reg13
+    bne     nested_unlock_exit
+
+    ;/* pmr_setting_tbl[current_iintpri] -> PMR */
+    Lea     _current_iintpri, reg12
+    ld.bu   0[reg12], reg12
+    shl     1, reg12
+
+    Lea     _pmr_setting_tbl, reg13
+    add     reg12, reg13
+    ld.h    0[reg13], reg13
+    SET_PMR reg13, reg12  ;/* set interrupt level */
+
+nested_unlock_exit:
+.endm
+
+;/* =end modified for SC3 */
+
+	;/*
+	 ;* 割込み例外入り口でのレジスタの保存マクロ
+	 ;*/
+INT_EXC_SAVEREG .macro
+$ifdef TOPPERS_USE_HFLOAT
+	addi    -88 , sp , sp
+$else ;/* !TOPPERS_USE_HFLOAT */
+	addi    -84 , sp , sp
+$endif ;/* TOPPERS_USE_HFLOAT */
+	st.w    r30, 12[sp]  ;/* r30(ep) */
+    ;/*
+     ;* 割込み発生前のr2はeiwrに保存されている
+     ;* ここで，r2はすでにワークレジスタとして
+     ;* 使用中であるため，上書きしない
+     ;* r2に入っている割込み番号を破壊しないように
+     ;*/
+    stsr    eiwr, r30    ;/* r2->r30に復帰 */
+	st.w    r30, 76[sp]
+	mov     sp, ep 
+	sst.w   r1, 80[ep]
+	sst.w   r5, 72[ep]
+	sst.w   r6, 68[ep]
+	sst.w   r7, 64[ep]
+	sst.w   r8, 60[ep]
+	sst.w   r9, 56[ep]
+	sst.w   r10, 52[ep]
+	sst.w   r11, 48[ep]
+	sst.w   r12, 44[ep]
+	sst.w   r13, 40[ep]
+	sst.w   r14, 36[ep]
+	sst.w   r15, 32[ep]
+	sst.w   r16, 28[ep]
+	sst.w   r17, 24[ep]
+	sst.w   r18, 20[ep]
+	sst.w   r19, 16[ep]
+	sst.w   r31, 8[ep]
+$ifdef TOPPERS_USE_HFLOAT
+	stsr    fpsr, r19     ;/* load FPSR */
+	sst.w   r19, 84[ep]
+$endif ;/* TOPPERS_USE_HFLOAT */
+.endm
+
+	;/*
+	 ;* 割込み例外入り口でのレジスタの復帰マクロ
+	 ;*/
+INT_EXC_RESTOREREG .macro
+$ifdef TOPPERS_USE_HFLOAT
+	sld.w   84[ep], r19
+	ldsr    r19, fpsr     ;/* store FPSR */
+$endif ;/* TOPPERS_USE_HFLOAT */
+	sld.w   80[ep], r1
+	sld.w   76[ep], r2
+	sld.w   72[ep], r5
+	sld.w   68[ep], r6
+	sld.w   64[ep], r7
+	sld.w   60[ep], r8
+	sld.w   56[ep], r9
+	sld.w   52[ep], r10
+	sld.w   48[ep], r11
+	sld.w   44[ep], r12
+	sld.w   40[ep], r13
+	sld.w   36[ep], r14
+	sld.w   32[ep], r15
+	sld.w   28[ep], r16
+	sld.w   24[ep], r17
+	sld.w   20[ep], r18
+	sld.w   16[ep], r19
+	sld.w    8[ep], r31
+$ifdef TOPPERS_USE_HFLOAT
+	addi    88, ep, sp
+$else ;/* !TOPPERS_USE_HFLOAT */
+	addi    84, ep, sp
+$endif ;/* TOPPERS_USE_HFLOAT */
+	sld.w   12[ep], r30 ;/* r30(ep) */
+    ldsr    r2, eiwr    ;/* r2を退避 */
+.endm
+
+
+$ifdef __v850e3v5__
+	;/* 
+	 ;* V850E3V5用ベクタ
+	 ;* ここにRBASEが設定されることを想定（ここが電源投入時の開始アドレス）
+	 ;* (EIレベル割込みはテーブル参照方式を使用するため本ベクタは使用しない)
+	 ;*/
+	RESET .cseg text
+	.extern __reset
+__reset:
+	jr __start
+	.rept 6
+	nop
+	.endm
+__syserr: ;/* 0x0010 */
+    ldsr  r2, eiwr
+    movea E_OS_PROTECTION_EXCEPTION, r0, r2
+	jr _fe_exception_entry
+	.rept 2
+	nop
+	.endm
+__hvtrap: ;/* 0x0020 */
+    ldsr  r2, eiwr
+    movea E_OS_PROTECTION_EXCEPTION, r0, r2
+	jr _fe_exception_entry
+	.rept 2
+	nop
+	.endm
+__fetrap: ;/* 0x0030 */
+    ldsr  r2, eiwr
+    movea E_OS_PROTECTION_EXCEPTION, r0, r2
+	jr _fe_exception_entry
+	.rept 2
+	nop
+	.endm
+__trap0:  ;/* 0x0040 */
+    ldsr  r2, eiwr
+    movea E_OS_PROTECTION_EXCEPTION, r0, r2
+	jr _ei_exception_entry
+	.rept 2
+	nop
+	.endm
+__trap1:  ;/* 0x0050 */
+    ldsr  r2, eiwr
+    movea E_OS_PROTECTION_EXCEPTION, r0, r2
+	jr _ei_exception_entry
+	.rept 2
+	nop
+	.endm
+__rie:    ;/* 0x0060 */
+    ldsr  r2, eiwr
+    movea E_OS_PROTECTION_EXCEPTION, r0, r2
+	jr _ei_exception_entry
+	.rept 2
+	nop
+	.endm
+__fppfpi: ;/* 0x0070 */
+    ldsr  r2, eiwr
+    movea E_OS_PROTECTION_EXCEPTION, r0, r2
+	jr _ei_exception_entry
+	.rept 2
+	nop
+	.endm
+__ucpop:  ;/* 0x080 */
+    ldsr  r2, eiwr
+    movea E_OS_PROTECTION_EXCEPTION, r0, r2
+	jr _fe_exception_entry
+	.rept 2
+	nop
+	.endm
+__mip:    ;/* 0x0090 */
+    ldsr  r2, eiwr
+    movea E_OS_PROTECTION_MEMORY, r0, r2
+	jr _fe_exception_entry
+	.rept 2
+	nop
+	.endm
+__pie:   ;/* 0x00a0 */
+    ldsr  r2, eiwr
+    movea E_OS_PROTECTION_EXCEPTION, r0, r2
+	jr _fe_exception_entry
+	.rept 2
+	nop
+	.endm
+__debug:  ;/* 0x00b0 */
+	jr __debug
+	.rept 6
+	nop
+	.endm
+__mae:    ;/* 0x00c0 */
+    ldsr  r2, eiwr
+    movea E_OS_PROTECTION_EXCEPTION, r0, r2
+	jr _fe_exception_entry
+	.rept 2
+	nop
+	.endm
+__rfu:    ;/* 0x00d0 */
+	jr __rfu
+	.rept 6
+	nop
+	.endm
+__fenmi:  ;/* 0x00e0 */
+    ldsr  r2, eiwr
+    movea E_OS_PROTECTION_EXCEPTION, r0, r2
+	jr _fe_exception_entry
+	.rept 2
+	nop
+	.endm
+__feint:  ;/* 0x00f0 */
+    ldsr  r2, eiwr
+    movea E_OS_PROTECTION_EXCEPTION, r0, r2
+	jr _fe_exception_entry
+	.rept 2
+	nop
+	.endm
+__eiintn0:  ;/*（優先度0） 0x0100 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endm
+__eiintn1:  ;/*（優先度1） 0x0110 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endm
+__eiintn2:  ;/*（優先度2） 0x0120 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endm
+__eiintn3:  ;/*（優先度3） 0x0130 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endm
+__eiintn4:  ;/*（優先度4） 0x0140 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endm
+__eiintn5:  ;/*（優先度5） 0x0150 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endm
+__eiintn6:  ;/*（優先度6） 0x0160 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endm
+__eiintn7:  ;/*（優先度7） 0x0170 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endm
+__eiintn8:  ;/*（優先度8） 0x0180 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endm
+__eiintn9:  ;/*（優先度9） 0x0190 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endm
+__eiintn10: ;/*（優先度10） 0x01a0 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endm
+__eiintn11: ;/*（優先度11） 0x01b0 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endm
+__eiintn12: ;/*（優先度12） 0x01c0 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endm
+__eiintn13: ;/*（優先度13） 0x01d0 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endm
+__eiintn14: ;/*（優先度14） 0x01e0 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endm
+__eiintn15: ;/*（優先度15） 0x01f0 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endm
+
+$endif ;/* __v850e3v5__ */
+
+    kernel.text .cseg text
+	;/*
+	 ;*  例外エントリ（feretでリターンする例外用）
+     ;*  ここで，CY = FEPSW.IMP，r2 = error code
+     ;*  r2は例外エントリでスタックに保存済み
+	 ;*/
+	.extern _fe_exception_entry
+_fe_exception_entry:
+    ldsr    r2, fewr                ;/* エラーコードを保存 */
+    stsr    fepsw, r2
+    shl     PSW_SV, r2              ;/* r2 << PSW_SV により例外発生時のモード取得 */
+    stsr    fewr, r2                ;/* エラーコードを復帰 */
+    bnc     fe_exception_0          ;/* 特権からの例外ならばスキップ */
+    ldsr    r5, fewr                ;/* tp（r5）を退避 */
+    Lea     _hook_savedsp, r5
+    ld.w    0[r5], r5
+    cmp     r0, r5
+    be      fe_exception_from_utask
+    ;/*
+     ;*  ユーザフックからの例外
+     ;*  hook_savedspをユーザスタック上に保存
+     ;*  +------------------+ <- sp
+     ;*  | 前のhook_savedsp |
+     ;*  +------------------+ <- 前のhook_savedsp
+     ;*  | ................ |
+     ;*  +------------------+
+     ;*/
+    addi    -4, r5, r5
+    st.w    sp, 0[r5]               ;/* *(hook_savedsp - 4) = sp */
+    mov     r5, sp                  ;/* sp = hook_savedsp - 4 */   
+    stsr    fewr, r5                ;/* tp（r5）を復帰 */
+    br      fe_exception_0
+fe_exception_from_utask:
+    ;/*
+     ;*  ユーザタスクからの例外
+     ;*/
+    Lea     _p_runtsk, r5
+    ld.w    0[r5], r5
+    st.w    sp, TCB_usp[r5]         ;/* uspをTCBに保存 */
+    ld.w    TCB_p_tinib[r5], r5
+    ld.w    TINIB_sstk_bottom[r5], sp         ;/* sspを復帰 */
+    stsr    fewr, r5                ;/* tp（r5）を復帰 */
+fe_exception_0:
+    ;/* スクラッチレジスタを保存 */
+    INT_EXC_SAVEREG
+
+	;/* 多重割込みのため，現在のFEPCとFEPSWを保存 */
+	stsr    fepc, r6
+	sst.w   r6, 4[ep]
+	stsr    fepsw, r6
+	sst.w   r6, 0[ep]
+
+	;/*
+	 ;* プロテクションフックはOS処理レベルで実行するためOS割込み禁止状態にする
+	 ;* OS割込み禁止状態で例外が発生する可能性があるため，ネスト管理を行う．
+	 ;* 例外は次の条件で発生する
+	 ;*  ・ISR1実行状態で発生した場合
+	 ;*  ・ISR1実行状態以外で発生した場合
+	 ;*  ・OS割込み解除状態で発生した場合
+	 ;*  ・OS割込み禁止状態で発生した場合
+	 ;*/
+
+	;/*
+	 ;* カテゴリ1の割込み以外で例外が発生したかの判断する
+	 ;* カテゴリ1で例外が発生：fe_exception_1へジャンプ
+	 ;*/
+	GET_ISPR r6
+	Lea     _pmr_isr1_mask, r7
+	ld.h    0[r7], r7
+	and     r7, r6
+	cmp     r0, r6
+	bne     fe_exception_1
+
+	;/*
+	 ;*  ISR1実行状態以外で発生した場合
+	 ;*/
+	Lea     _nested_lock_os_int_cnt, r12
+	ld.b    0[r12], r13
+	mov     1, r14
+	add     r14, r13
+	st.b    r13, 0[r12]
+	cmp     1, r13
+	bne     fe_exception_1
+
+	;/*
+	 ;* OS割込み解除状態で発生した場合
+	 ;* OS割込み禁止状態とする
+	 ;*/
+	Lea     _pmr_isr2_mask, r7
+	ld.h    0[r7], r7
+	SET_PMR r7, r6  ;/* pmr_isr2_mask -> PMR */
+
+fe_exception_1:
+	;/*
+	 ;*  割込み発生時に変更されるので割込み解除前に取得
+	 ;*/
+	stsr    feic, r19                   ;/* 例外要因 */
+	stsr    fepc, r18                   ;/* 例外発生PC */
+
+	;/* 
+	 ;* C1ISRを受け付けるため，NPbit クリア 
+	 ;*/
+	stsr    psw, r12
+	mov     !0x0080, r13
+	and     r12, r13
+	ldsr    r13, psw
+
+fe_exception_2:
+	;/*
+	 ;*  カーネル起動していない場合に起きたCPU例外は，無限ループへ
+	 ;*/
+	Lea   _kerflg, r12          ;/* kerflgがFALSEなら無限ループ */
+	ld.b  0[r12], r12
+	cmp   r0, r12
+infinity_loop_fe:
+	be    infinity_loop_fe
+
+	;/*
+	 ;* 多重割込みか判定
+	 ;*/
+	Lea     _except_nest_cnt, r12
+	ld.w    0[r12], r13
+	mov     1, r14                      ;/*  割込み・例外のネスト回数のインクリメント */
+	add     r14, r13
+	st.w    r13, 0[r12]
+
+	mov     sp, r9                      ;/* sp をr9に退避 */
+
+	cmp     1, r13
+	bne     fe_exception_3              ;/* _nested_lock_os_int_cnt > 1 -> fe_exception_3 */
+
+	;/*
+	 ;* C1ISR実行状態で発生した場合はスタックポインタの入れ替えしない
+	 ;*/
+	GET_ISPR r6
+	Lea     _pmr_isr1_mask, r7
+	ld.h    0[r7], r7
+	and     r7, r6
+	cmp     r0, r6
+	bne     fe_exception_3
+
+	;/* スタックポインタの保存と入れ替え */
+	Lea     __ostkpt, r12
+	ld.w    0[r12], r12
+	add     -4, r12
+	st.w    sp, 0[r12]                      ;/* スタックポインタの保存 */
+	mov     r12, sp                         ;/* スタックポインタの切り替え */
+
+fe_exception_3:
+	UNLOCK_ALL_INT
+
+$ifdef CFG_USE_PROTECTIONHOOK
+	;/* v850_cpu_exp_*を退避するスペースを確保 */
+	addi    -12, sp, sp
+
+	;/* v850_cpu_exp_spの退避と設定 */
+	Lea     _v850_cpu_exp_sp, r12
+	st.w    r9, 0[r12]
+	st.w    ep, 0[sp]
+	mov     sp, ep
+
+	;/* v850_cpu_exp_noの退避と設定 */
+	Lea     _v850_cpu_exp_no, r12
+	ld.w    0[r12], r13
+	sst.w   r13, 8[ep]
+	st.w    r19, 0[r12]                     ;/* r19 例外要因 */
+
+	;/* v850_cpu_exp_pcの退避と設定 */
+	Lea     _v850_cpu_exp_pc, r12
+	ld.w    0[r12], r13
+	sst.w   r13, 4[ep]
+	mov     r18, r17                        ;/* r18:fepc */
+	add     -4, r17
+	st.w    r17, 0[r12]
+
+$endif ;/* CFG_USE_PROTECTIONHOOK */
+
+	;/*
+	 ;* CPU例外が発生した場合，OSはE_OS_PROTECTION_EXCEPTIONをパラメータとして
+	 ;* プロテクションフックを呼び出す
+	 ;*/
+    ;/* =begin modified for SC3 */
+    ;/*
+     ;*  例外要因がMIP or 0xMDPのときのみ
+     ;*  E_OS_PROTECTION_MEMORYをパラメータとする
+     ;*/
+    andi    FE_MP_MASK, r19, r6
+    addi    FE_MP_BIT, r0, ep
+    cmp     ep, r6
+    be      fe_exception_4
+    mov     E_OS_PROTECTION_EXCEPTION, r2
+
+fe_exception_4:
+	mov     r2, r6
+    ;/* =end modified for SC3 */
+	jarl    _call_protectionhk_main, r31
+
+$ifdef CFG_USE_PROTECTIONHOOK
+	mov     sp, ep
+
+	;/* v850_cpu_exp_noを復帰 */
+	Lea     _v850_cpu_exp_no, r12
+	sld.w   8[ep], r13
+	st.w    r13, 0[r12]
+
+	;/* v850_cpu_exp_pcを復帰 */
+	Lea     _v850_cpu_exp_pc, r12
+	sld.w   4[ep], r13
+	st.w    r13, 0[r12]
+
+	;/* v850_cpu_exp_sp退避 */
+	Lea     _v850_cpu_exp_sp, r12
+	sld.w   0[ep], r13
+	st.w    r13, 0[r12]
+
+	;/* v850_cpu_exp_*を退避したスペースを戻す */
+	addi    12, sp, sp
+$endif ;/* CFG_USE_PROTECTIONHOOK */
+
+fe_ret_exc:
+	LOCK_ALL_INT
+
+	;/*
+	 ;* プロテクションフックはOS割込み禁止状態で実行する
+	 ;*/
+
+	;/*
+	 ;*  割込み・例外のネスト回数のデクリメント
+	 ;*/
+	Lea     _except_nest_cnt, r12
+	ld.w    0[r12], r13
+	mov     -1, r14
+	add     r14, r13
+	st.w    r13, 0[r12]
+
+	;/*
+	 ;*  OS割込み禁止状態の解除
+	 ;*/
+	;/*
+	 ;* ISR1実行状態で発生した場合は
+	 ;* (1)スタックポインタの入れ替えをしない
+	 ;* (2)OS割込み禁止状態の解除をしない
+	;*/
+	GET_ISPR r6
+	Lea     _pmr_isr1_mask, r7
+	ld.h    0[r7], r7
+	and     r7, r6
+	cmp     r0, r6
+	bne     ret_exc_2
+
+	;/*
+	 ;*  ネスト回数が1以上なら割込み元がISRなため例外発生元へ復帰
+	 ;*  スタックポインタの入れ替えしない
+	 ;*/
+	cmp     r0, r13
+	bne     ret_exc_1
+
+	;/*
+	 ;*  戻り先がタスクなためスタックを戻す
+	 ;*/
+	ld.w    0[sp], sp
+
+ret_exc_1:
+	;/*
+	 ;*  ISR1実行状態以外で発生した場合，OS割込み禁止状態の解除
+	 ;*/
+	Lea     _nested_lock_os_int_cnt, r12
+	ld.b    0[r12], r13
+	mov     -1, r14
+	add     r14, r13
+	st.b    r13, 0[r12]
+	cmp     r0, r13
+	bne     ret_exc_2
+
+	;/* OS割込みを解除 */
+	;/* pmr_setting_tbl[current_iintpri] -> PMR */
+	Lea     _current_iintpri, r12
+	ld.bu   0[r12], r12
+	shl     1, r12
+
+	Lea     _pmr_setting_tbl, r13
+	add     r12, r13
+	ld.h    0[r13], r13
+	SET_PMR r13, r12     ;/* set interrupt level */
+
+	;/*
+	 ;*  例外発生元へ復帰
+	 ;*/
+ret_exc_2:
+	;/*
+	 ;* レジスタを復帰
+	 ;*/
+	mov     sp, ep
+	sld.w    4[ep], r10
+	ldsr    r10, fepc
+	sld.w   0[ep], r10
+	ldsr    r10, fepsw
+
+    ;/* スクラッチレジスタの復帰 */
+    INT_EXC_RESTOREREG
+
+    ldsr    r2, fewr
+	stsr    fepsw, r2   ;/* r2 = fepsw */
+    shl     PSW_SV, r2         ;/* r2 << PSW_SV により例外発生時のモード取得 */
+    bnc     return_from_fe_exception    ;/* 特権からの例外ならばスキップ */
+    Lea     _hook_savedsp, r2
+    ld.w    0[r2], r2
+    cmp     r0, r2
+    be      fe_exception_to_utask
+    addi    -4, r2, r2
+    ld.w    0[r2], sp               ;/* sp *(hook_savedsp - 4) */
+    ;/*
+     ;*  ここで，hook_savedspを更新する必要はない
+     ;*/
+    br      return_from_fe_exception
+fe_exception_to_utask:
+    Lea     _p_runtsk, r2
+    ld.w    0[r2], r2
+    ld.w    TCB_usp[r2], sp         ;/* uspを復帰 */
+return_from_fe_exception:
+    stsr    eiwr, r2
+	feret
+
+	;/*
+	 ;*  例外エントリ（eiretでリターンする例外用）
+     ;*  ここで，CY = EIPSW.IMP，r2 = error code
+     ;*  r2はOS側で予約する（割込み・例外の出入口の
+     ;*  ワークレジスタとして使用する）ため，
+     ;*  スタックに保存しない
+	 ;*/
+	.extern _ei_exception_entry
+_ei_exception_entry:
+    ldsr    r2, fewr                ;/* エラーコードを保存 */
+    stsr    eipsw, r2
+    shl     PSW_SV, r2              ;/* r2 << PSW_SV により例外発生時のモード取得 */
+    stsr    fewr, r2                ;/* エラーコードを復帰 */
+    bnc     ei_exception_0          ;/* 特権からの例外ならばスキップ */
+    ldsr    r5, fewr                ;/* tp（r5）を退避 */
+    Lea     _hook_savedsp, r5
+    ld.w    0[r5], r5
+    cmp     r0, r5
+    be      ei_exception_from_utask
+    ;/*
+     ;*  ユーザフックからの例外
+     ;*  hook_savedspをユーザスタック上に保存
+     ;*  +------------------+ <- sp
+     ;*  | 前のhook_savedsp |
+     ;*  +------------------+ <- 前のhook_savedsp
+     ;*  | ................ |
+     ;*  +------------------+
+     ;*/
+    addi    -4, r5, r5
+    st.w    sp, 0[r5]               ;/* *(hook_savedsp - 4) = sp */
+    mov     r5, sp                  ;/* sp = hook_savedsp - 4 */   
+    stsr    fewr, r5                ;/* tp（r5）を復帰 */
+    br      ei_exception_0
+ei_exception_from_utask:
+    ;/*
+     ;*  ユーザタスクからの例外
+     ;*/
+    Lea     _p_runtsk, r5
+    ld.w    0[r5], r5
+    st.w    sp, TCB_usp[r5]         ;/* uspを保存 */
+    ld.w    TCB_p_tinib[r5], r5
+    ld.w    TINIB_sstk_bottom[r5], sp         ;/* sspを復帰 */
+    stsr    fewr, r5                ;/* tp（r5）を復帰 */
+ei_exception_0:
+    ;/* スクラッチレジスタの保存 */
+    INT_EXC_SAVEREG
+
+	;/* 多重割込みのため，現在のEIPCとEIPSWを保存 */
+	stsr    eipc, r6
+	sst.w   r6, 4[ep]
+	stsr    eipsw, r6
+	sst.w   r6, 0[ep]
+
+	;/*
+	 ;* プロテクションフックはOS処理レベルで実行するためOS割込み禁止状態にする
+	 ;* OS割込み禁止状態で例外が発生する可能性があるため，ネスト管理を行う．
+	 ;* 例外は次の条件で発生する
+	 ;*  ・ISR1実行状態で発生した場合
+	 ;*  ・ISR1実行状態以外で発生した場合
+	 ;*  ・OS割込み解除状態で発生した場合
+	 ;*  ・OS割込み禁止状態で発生した場合
+	 ;*/
+
+	;/*
+	 ;* カテゴリ1の割り込み以外で例外が発生したかの判断する
+	 ;* カテゴリ1で例外が発生：ei_exception_1へジャンプ
+	 ;*/
+	GET_ISPR r6
+	Lea     _pmr_isr1_mask, r7
+	ld.h    0[r7], r7
+	and     r7, r6
+	cmp     r0, r6
+	bne     ei_exception_1
+
+	;/*
+	 ;*  ISR1実行状態以外で発生した場合
+	 ;*/
+	Lea     _nested_lock_os_int_cnt, r12
+	ld.b    0[r12], r13
+	mov     1, r14
+	add     r14, r13
+	st.b    r13, 0[r12]
+	cmp     1, r13
+	bne     ei_exception_1
+
+	;/*
+	 ;* OS割込み解除状態で発生した場合
+	 ;* OS割込み禁止状態とする
+	 ;*/
+	Lea     _pmr_isr2_mask, r7
+	ld.h    0[r7], r7
+	SET_PMR r7, r6                   ;/* pmr_isr2_mask -> PMR */
+
+ei_exception_1:
+	;/*
+	 ;*  割込み発生時に変更されるので割込み解除前に取得
+	 ;*/
+	stsr    eiic, r19                   ;/* 例外要因 */
+	stsr    eipc, r18                   ;/* 例外発生PC */
+
+
+ei_exception_2:
+	;/*
+	 ;*  カーネル起動していない場合に起きたCPU例外は，無限ループへ
+	 ;*/
+	Lea   _kerflg, r12          ;/* kerflgがFALSEなら無限ループ */
+	ld.b  0[r12], r12
+	cmp   r0, r12
+infinity_loop_ei:
+	be    infinity_loop_ei
+
+	;/*
+	 ;* 多重割込みか判定
+	 ;*/
+	Lea     _except_nest_cnt, r12
+	ld.w    0[r12], r13
+	mov     1, r14                      ;/*  割込み・例外のネスト回数のインクリメント */
+	add     r14, r13
+	st.w    r13, 0[r12]
+
+	mov     sp, r9                      ;/* sp をr9に退避 */
+
+	cmp     1, r13
+	bne     ei_exception_3             ;/* _nested_lock_os_int_cnt > 1 -> ei_exception_3 */
+
+	;/*
+	 ;* ISR1実行状態で発生した場合はスタックポインタの入れ替えしない
+	 ;*/
+	GET_ISPR r6
+	Lea     _pmr_isr1_mask, r7
+	ld.h    0[r7], r7
+	and     r7, r6
+	cmp     r0, r6
+	bne     ei_exception_3
+
+	;/* スタックポインタの保存と入れ替え */
+	Lea     __ostkpt, r12
+	ld.w    0[r12], r12
+	add     -4, r12
+	st.w    sp, 0[r12]                      ;/* スタックポインタの保存 */
+	mov     r12, sp                         ;/* スタックポインタの切り替え */
+
+ei_exception_3:
+	UNLOCK_ALL_INT
+
+$ifdef CFG_USE_PROTECTIONHOOK
+	;/* v850_cpu_exp_*を退避するスペースを確保 */
+	addi    -12, sp, sp
+
+	;/* v850_cpu_exp_spの退避と設定 */
+	Lea     _v850_cpu_exp_sp, r12
+	st.w    r9, 0[r12]
+	st.w    ep, 0[sp]
+	mov     sp, ep
+
+	;/* v850_cpu_exp_noの退避と設定 */
+	Lea     _v850_cpu_exp_no, r12
+	ld.w    0[r12], r13
+	sst.w   r13, 8[ep]
+	st.w    r19, 0[r12]                     ;/* r19 例外要因 */
+
+	;/* v850_cpu_exp_pcの退避と設定 */
+	Lea     _v850_cpu_exp_pc, r12
+	ld.w    0[r12], r13
+	sst.w   r13, 4[ep]
+	mov     r18, r17                        ;/* r18:fepc */
+	add     -4, r17
+	st.w    r17, 0[r12]
+
+$endif ;/* CFG_USE_PROTECTIONHOOK */
+
+	;/*
+	 ;* CPU例外が発生した場合，OSはE_OS_PROTECTION_EXCEPTIONをパラメータとして
+	 ;* プロテクションフックを呼び出す
+	 ;*/
+    ;/* =begin modified for SC3 */
+	mov     r2, r6
+    ;/* =end modified for SC3 */
+	jarl    _call_protectionhk_main, r31
+
+$ifdef CFG_USE_PROTECTIONHOOK
+	mov     sp, ep
+
+	;/* v850_cpu_exp_noを復帰 */
+	Lea     _v850_cpu_exp_no, r12
+	sld.w   8[ep], r13
+	st.w    r13, 0[r12]
+
+	;/* v850_cpu_exp_pcを復帰 */
+	Lea     _v850_cpu_exp_pc, r12
+	sld.w   4[ep], r13
+	st.w    r13, 0[r12]
+
+	;/* v850_cpu_exp_sp退避 */
+	Lea     _v850_cpu_exp_sp, r12
+	sld.w   0[ep], r13
+	st.w    r13, 0[r12]
+
+	;/* v850_cpu_exp_*を退避したスペースを戻す */
+	addi    12, sp, sp
+$endif ;/* CFG_USE_PROTECTIONHOOK */
+
+ei_ret_exc:
+	LOCK_ALL_INT
+
+	;/*
+	 ;* プロテクションフックはOS割込み禁止状態で実行する
+	 ;*/
+
+	;/*
+	 ;*  割込み・例外のネスト回数のデクリメント
+	 ;*/
+	Lea     _except_nest_cnt, r12
+	ld.w    0[r12], r13
+	mov     -1, r14
+	add     r14, r13
+	st.w    r13, 0[r12]
+
+	;/*
+	 ;*  OS割込み禁止状態の解除
+	 ;*/
+	;/*
+	 ;* ISR1実行状態で発生した場合は
+	 ;* (1)スタックポインタの入れ替えをしない
+	 ;* (2)OS割込み禁止状態の解除をしない
+	;*/
+	GET_ISPR r6
+	Lea     _pmr_isr1_mask, r7
+	ld.h    0[r7], r7
+	and     r7, r6
+	cmp     r0, r6
+	bne     ei_ret_exc_2
+
+	;/*
+	 ;*  ネスト回数が1以上なら割込み元がISRなため例外発生元へ復帰
+	 ;*  スタックポインタの入れ替えしない
+	 ;*/
+	cmp     r0, r13
+	bne     ei_ret_exc_1
+
+	;/*
+	 ;*  戻り先がタスクなためスタックを戻す
+	 ;*/
+	ld.w    0[sp], sp
+
+ei_ret_exc_1:
+	;/*
+	 ;*  ISR1実行状態以外で発生した場合，OS割込み禁止状態の解除
+	 ;*/
+	Lea     _nested_lock_os_int_cnt, r12
+	ld.b    0[r12], r13
+	mov     -1, r14
+	add     r14, r13
+	st.b    r13, 0[r12]
+	cmp     r0, r13
+	bne     ei_ret_exc_2
+
+	;/* OS割込みを解除 */
+	;/* pmr_setting_tbl[current_iintpri] -> PMR */
+	Lea     _current_iintpri, r12
+	ld.bu   0[r12], r12
+	shl     1, r12
+
+	Lea     _pmr_setting_tbl, r13
+	add     r12, r13
+	ld.h    0[r13], r13
+	SET_PMR r13, r12             ;/* set interrupt level */
+
+	;/*
+	 ;*  例外発生元へ復帰
+	 ;*/
+ei_ret_exc_2:
+	;/*
+	 ;* レジスタを復帰
+	 ;*/
+	mov     sp, ep
+	sld.w    4[ep], r10
+	ldsr    r10, eipc
+	sld.w   0[ep], r10
+	ldsr    r10, eipsw
+
+    ;/* スクラッチレジスタの復帰 */
+    INT_EXC_RESTOREREG
+
+	stsr    eipsw, r2   ;/* r2 = eipsw */
+    shl     PSW_SV, r2  ;/* r2 << PSW_SV により例外発生時のモード取得 */
+    bnc     return_from_ei_exception    ;/* 特権からの例外ならばスキップ */
+    Lea     _hook_savedsp, r2
+    ld.w    0[r2], r2
+    cmp     r0, r2
+    be      ei_exception_to_utask
+    addi    -4, r2, r2
+    ld.w    0[r2], sp                ;/* sp *(hook_savedsp - 4) */
+    ;/*
+     ;*  ここで，hook_savedspを更新する必要はない
+     ;*/
+    br      return_from_ei_exception
+ei_exception_to_utask:
+    Lea     _p_runtsk, r2
+    ld.w    0[r2], r2
+    ld.w    TCB_usp[r2], sp         ;/* uspを復帰 */
+return_from_ei_exception:
+    stsr    eiwr, r2
+	eiret
+
+	;/*
+	 ;*  カーネル起動していない場合に起きたCPU例外の無限ループ
+	 ;*/
+infinity_loop:
+	br infinity_loop
+
+	;/*
+	 ;*  割り込みエントリ
+	 ;*  V850E2
+	 ;*   ベクターテーブルから Os_Lcfg.c に生成される各割込みの割込みエントリ
+	 ;*   からジャンプし，r2に割込み番号が保存された状態で実行される
+	 ;*  V850E3V5
+	 ;*   ベクターテーブルから直接実行されるため，スタックの確保やレジスタの保存は
+	 ;*   特に行われていない状態で実行される
+	 ;*/
+	.extern _interrupt
+_interrupt:
+$ifdef __v850e3v5__
+    ldsr    r2, eiwr
+	;/* 割込み要因の特定 */
+	stsr	eiic,   r2
+	;/* EIC割込みは0x1000 から */
+	addi   -0x1000, r2, r2
+$endif ;/* __v850e3v5__ */
+	;/*
+	 ;*  残りのレジスタ退避， EPでのアクセスに切り替えて行う
+     ;* ここで，CY = EIPSW.IMP，r2[31:16] = intno
+     ;*  r2はOS側で予約する（割込み・例外の出入口の
+     ;*  ワークレジスタとして使用する）ため，
+     ;*  スタックに保存しない
+	 ;*/
+    ldsr    r2, fewr                ;/* エラーコードを保存 */
+    stsr    eipsw, r2
+    shl     PSW_SV, r2              ;/* r2 << PSW_SV により例外発生時のモード取得 */
+    stsr    fewr, r2                ;/* エラーコードを復帰 */
+    bnc     interrupt_0             ;/* 特権からの割込みならばスキップ */
+    ldsr    r5, fewr                ;/* tp（r5）を退避 */
+    Lea     _hook_savedsp, r5
+    ld.w    0[r5], r5
+    cmp     r0, r5
+    be      interrupt_from_utask
+    ;/*
+     ;*  ユーザフックへの割込み
+     ;*  hook_savedspをユーザスタック上に保存
+     ;*  +------------------+ <- sp
+     ;*  | 前のhook_savedsp |
+     ;*  +------------------+ <- 前のhook_savedsp
+     ;*  | ................ |
+     ;*  +------------------+
+     ;*/
+    addi    -4, r5, r5
+    st.w    sp, 0[r5]               ;/* *(hook_savedsp - 4) = sp */
+    mov     r5, sp                  ;/* sp = hook_savedsp - 4 */   
+    stsr    fewr, r5                ;/* tp（r5）を復帰 */
+    br      interrupt_0
+interrupt_from_utask:
+    ;/*
+     ;*  ユーザタスクへの割込み
+     ;*/
+    Lea     _p_runtsk, r5
+    ld.w    0[r5], r5
+    st.w    sp, TCB_usp[r5]         ;/* uspを保存 */
+    ld.w    TCB_p_tinib[r5], r5
+    ld.w    TINIB_sstk_bottom[r5], sp         ;/* sspを復帰 */
+    stsr    fewr, r5                ;/* tp（r5）を復帰 */
+interrupt_0:
+    ;/* スクラッチレジスタの保存 */
+    INT_EXC_SAVEREG
+
+	;/* 多重割込みのため，現在のEIPCとEIPSWを保存 */
+	stsr    eipc, r6
+	sst.w   r6, 4[ep]
+	stsr    eipsw, r6
+	sst.w   r6, 0[ep]
+
+$if 0
+$ifdef __v850e3v5__
+	;/* 割込み要因の特定 */
+	stsr	eiic,   r12
+	;/* EIC割込みは0x1000 から */
+	addi   -0x1000, r12, r12
+$else ;/* __v850e2v3__ */
+	;/* 
+	 ;* V850E2V3では，Os_Lcfg.c.xxにより割込み要因がr2に設定され，
+	 ;* _interrupt が呼び出される．
+	 ;* r2 は割込みの許可により上書きされるためr12を使用する． 
+	 ;*/
+	mov     r2, r12
+$endif ;/* __v850e3v5__ */
+$else
+	mov     r2, r12
+$endif
+
+	;/* 割込み優先度を取得(r11) */
+	GET_ISPR r13
+	sch1r	r13, r11   
+	add		-1,r11
+
+	;/* 
+	 ;*  _current_iintpri の更新 
+	 ;*  割り込み処理中はISPRが自動的に設定されているため，PMRは設定する必要がない．
+	 ;*/
+	Lea     _current_iintpri, r6
+	ld.bu   0[r6], r19
+	st.b    r11,0[r6]
+
+	;/*
+	 ;*  多重割込みか判定
+	 ;*/
+	Lea     _except_nest_cnt, r13
+	ld.w    0[r13], r6
+
+	;/*
+	 ;*  割込み・例外のネスト回数のインクリメント
+	 ;*/
+	add     1,  r6
+	st.w    r6, 0[r13]
+	cmp     1,  r6
+	bne     interrupt_1     ;/* ネストしている場合はスタック切替無し */
+
+	;/*
+	 ;*  タスクに割込んだ場合
+	 ;*  スタックポインタの保存と入れ替え
+	 ;*/
+	mov     sp , r13
+	Lea     __ostkpt, sp
+	ld.w    0[r3], r3
+	add     -4, sp
+	st.w    r13, 0[sp]
+
+interrupt_1:
+    ;/*
+     ;*  割込み発生時の割込み優先度マスクをスタックに保存
+     ;*/
+    add     -4, sp
+    st.w    r19, 0[sp]
+
+	UNLOCK_ALL_INT
+
+$ifdef CFG_USE_STACKMONITORING
+    ;/* 
+     ;*  割込み番号の保存
+     ;*  スタックオーバフローのプロテクションフックで破壊される可能性がある
+     ;*/
+    push    r12 
+	;/*
+	 ;*  タスクスタックのオーバフローチェック
+	 ;*/
+
+	;/*
+	 ;* 多重割込みの場合はタスクスタックのスタックモニタリングを行わない
+	 ;*/
+	cmp     1,  r6
+	bne     int_nested
+
+	;/*
+	 ;*  スタックポインタチェック方式
+	 ;*/
+	Lea     _p_runtsk, r6                   ;/* 管理ブロックの先頭アドレス取得 */
+	ld.w    0[r6], r6
+	ld.w    TCB_p_tinib[r6], r6             ;/* タスク初期化ブロック先頭アドレス取得 */
+    ;/* =begin modified for SC3 */
+    ;/* システムスタックモニタリング */
+	ld.w    TINIB_sstksz[r6], r7            ;/* タスクシステムスタックサイズ取得 */
+	ld.w    TINIB_sstk_bottom[r6], r6       ;/* タスクシステムスタック終端アドレス取得 */
+    sub     r7, r6
+    mov     r0, r9
+	mov     PEOB_STACKMONITORING_INTERRUPT, r8  ;/* ISR入口でのスタックモニタリング */
+	cmp     r6, r13                         ;/* スタックポインタ <= スタックの先頭の場合NG  */
+    Lea     stack_monitoring_exit, lp     
+    ;/* =end modified for SC3 */
+	bnh      stack_monitoring_error_isr
+
+	;/*
+	 ;* マジックナンバーチェック方式
+	 ;*/
+    ld.w    0[r6], r6
+    mov     STACK_MAGIC_NUMBER, r7
+	;/*
+	 ;*  マジックナンバー未破壊なら，割込み処理に飛ぶ
+	 ;*  タスクに割込んだ場合，割込みスタックをチェックしない
+	 ;*/
+	cmp     r7, r6
+	be      stack_monitoring_exit
+    ;/* =begin modified for SC3 */
+    Lea     stack_monitoring_exit, lp     
+    ;/* =end modified for SC3 */
+	br      stack_monitoring_error_isr
+
+	;/* 
+	 ;* 多重割込みの場合 
+	 ;*/
+int_nested:
+	;/*
+	 ;*  割込みスタックのオーバフローチェック
+	 ;*/
+
+	;/*
+	 ;*  スタック残量チェック方式
+	 ;*/
+	Lea     _isr_p_isrcb_tbl, r7
+	mov     r12, r11
+	shl     2, r11                          ;/* 割込み番号を4倍してオフセットを生成  */
+	add     r11, r7
+    ld.w    0[r7], r7                       ;/* r7 = &isrcb_table[x] */
+    ;/* =begin modified for SC3 */
+	ld.w    ISRCB_p_isrinib[r7], r7         
+	ld.w    ISRINIB_p_intinib[r7], r7
+    mov     1, r9
+	mov     PEOB_STACKMONITORING_INTERRUPT, r8  ;/* ISR入口でのスタックモニタリング */
+    ;/* =end modified for SC3 */
+	ld.w    INTINIB_remain_stksz[r7], r7    ;/* 割込み番号に対応したスタックサイズの取得 */
+	Lea     __ostk, r6                      ;/* 割込みスタックの先頭アドレス取得 */
+	ld.w    0[r6], r6
+	add     r6, r7                          ;/* 先頭アドレス＋ISRの使用するスタックサイズ */
+	cmp     r7, sp                          ;/* スタックポインタ <= 先頭アドレス＋ISRの使用するスタックサイズの場合OK  */
+    ;/* =begin modified for SC3 */
+    Lea     stack_monitoring_exit, lp     
+    ;/* =end modified for SC3 */
+	bnh     stack_monitoring_error_isr
+
+	;/*
+	 ;* マジックナンバーチェック方式
+	 ;*/
+	ld.w    0[r6], r6                       ;/* このアドレスの示す先にマジックナンバーが入っている */
+	mov     STACK_MAGIC_NUMBER, r7
+	cmp     r7, r6
+    ;/* =begin modified for SC3 */
+    Lea     stack_monitoring_exit, lp     
+    ;/* =end modified for SC3 */
+	bne     stack_monitoring_error_isr
+
+stack_monitoring_exit:
+    pop     r12 
+$endif ;/* CFG_USE_STACKMONITORING */
+
+	;/*
+	 ;*  _callevel_stat 保存
+	 ;*/
+	Lea     _callevel_stat, r6
+	ld.h    0[r6], r7
+	Push    r7
+
+	;/*
+	 ;*  _callevel_stat 設定
+	 ;*/
+	mov     TCL_ISR2, r8
+	or      r8, r7
+	st.h    r7, 0[r6]
+
+    ;/* =begin added for SC3 */
+	;/*
+	 ;*  run_trusted 保存
+	 ;*/
+    Lea     _run_trusted, r6
+    ld.b    0[r6], r7
+    Push    r7
+
+	;/*
+	 ;*  run_trusted 設定
+	 ;*/
+	mov     TRUE, r8
+    st.b    r8, 0[r6]
+
+	;/*
+	 ;*  p_runosap 保存
+	 ;*/
+    Lea     _p_runosap, r6
+    ld.w    0[r6], r7
+	Push    r7
+    ;/* =end added for SC3 */
+
+	;/*
+	 ;* p_runisr 保存
+	 ;*/
+	Lea     _p_runisr, r6
+	ld.w    0[r6], r7
+	Push    r7
+
+	;/*
+	 ;* p_runisr 設定
+	 ;*/
+	Lea     _isr_p_isrcb_tbl, r7
+	shl     2, r12                      ;/* 割込み番号を4倍してオフセットを生成  */
+	add     r12, r7
+	Lea     _p_runisr, r8
+	ld.w    0[r7], r7
+	st.w    r7, 0[r8]
+
+	;/*
+	 ;*  割込みハンドラのアドレスを読み込む
+	 ;*/
+	Lea     _isr_tbl, r6
+	add     r12, r6
+
+    ;/* =begin modified for SC3 */
+    ;/*
+     ;*  p_runosap 設定
+     ;*/
+    cmp     r7, r0                      ;/* r7 = p_runisr == NULL ? */
+    be      int_handler_call            ;/* p_runisr が NULL でなければスキップ */
+    ld.w    ISRCB_p_isrinib[r7], ep     ;/* ep = p_runisr->p_isrinib */
+    sld.w   ISRINIB_p_osapcb[ep], r8    ;/* r8 = p_runisr->p_isrinib->p_osapcb */
+    Lea     _p_runosap, ep
+    sst.w   r8, 0[ep]                   ;/* p_runosap = p_runisr->p_isrinib->p_osapcb */
+
+int_handler_call:
+    ;/* =end modified for SC3 */
+	;/*
+	 ;*  割込みハンドラ呼び出し
+	 ;*/
+	Lea     end_int_handler, r31
+	ld.w    0[r6], r6
+	jmp     [r6]
+
+	;/*
+	 ;*  スタックオーバフロー時の処理
+	 ;*/
+$ifdef CFG_USE_STACKMONITORING
+	;/*
+	 ;*  スタックオーバフロー時プロテクションフックを呼び出し
+	 ;*  スタックを更に壊さないため，割込みスタックの初期値を使用する
+     ;*  ISRの出入口から相対ジャンプできるようにここに置く
+     ;*  stack_monitoring_errorへの踏み台
+	 ;*/
+stack_monitoring_error_isr:
+    br  stack_monitoring_error
+$endif ;/* CFG_USE_STACKMONITORING */
+
+end_int_handler:
+
+$ifdef CFG_USE_STACKMONITORING
+	;/*
+	 ;*  割込みスタックのオーバフローチェック
+	 ;*  割込みから戻った時，スタックポインタも戻ったはずなので，
+	 ;*  マジックナンバーチェック方式のみ実施
+	 ;*/
+
+	;/*
+	 ;* マジックナンバーチェック方式
+	 ;*/
+	Lea     __ostk, r6                       ;/* 割込みスタックの先頭アドレス取得 */
+	ld.w    0[r6], r6
+	ld.w    0[r6], r6                       ;/* このアドレスの示す先にマジックナンバーが入っている */
+    ;/* =begin modified for SC3 */
+    mov     1, r9
+	mov     PEOB_STACKMONITORING_INTERRUPT, r8  ;/* ISRでのスタックモニタリング */
+	mov     STACK_MAGIC_NUMBER, r7
+	cmp     r7, r6
+    Lea     stack_monitoring_exit2, lp     
+	bne     stack_monitoring_error_isr
+
+stack_monitoring_exit2:
+    ;/* =end modified for SC3 */
+$endif ;/* CFG_USE_STACKMONITORING */
+
+	;/*
+	 ;* ISR2の不正終了チェック
+	 ;*/
+	jarl    _exit_isr2, r31
+
+	;/*
+	 ;* p_runisr の復帰
+	 ;*/
+	Lea     _p_runisr, r7
+	Pop     r6
+	st.w    r6, 0[r7]
+
+    ;/* =begin modified for SC3 */
+	;/*
+	 ;*  p_runosap 復帰
+	 ;*/
+    Lea     _p_runosap, r7
+	Pop     r6
+    st.w    r6, 0[r7]
+
+	;/*
+	 ;*  run_trusted 復帰
+	 ;*/
+    Lea     _run_trusted, r7
+	Pop     r6
+    st.b    r6, 0[r7]
+    ;/* =end modified for SC3 */
+
+
+	;/*
+	 ;* _callevel_stat の復帰
+	 ;*/
+	Lea     _callevel_stat, r7
+	Pop     r6
+	st.h    r6, 0[r7]
+
+;/*
+ ;*  割込みハンドラ出口処理
+ ;*/
+ret_int:
+	;/*
+	 ;* _except_nest_cntの操作とスタック切り替えの間はOS割込み禁止にする
+	 ;* 必要がある
+	 ;* この先，割込み先へのリターンか，遅延ディスパッチに分岐する．
+	 ;* 割込み先へのリターンには全割込みが必要であり，遅延ディスパッチ時には
+	 ;* ネスト管理のOS割込み禁止にする必要があるため，ここでは一旦全割込み禁
+	 ;* 止とする
+	 ;*/
+
+	LOCK_ALL_INT
+
+    ;/*
+     ;*  割込み発生時の割込み優先度マスクをスタックから復帰
+     ;*/
+    ld.w    0[sp], r19
+    add     4, sp
+	Lea     _current_iintpri, r6
+	st.b    r19, 0[r6]              ;/* current_iintpriを復帰 */
+
+	;/*
+	 ;*  割込み・例外のネスト回数のデクリメント
+	 ;*/
+	Lea     _except_nest_cnt, r6
+	ld.w    0[r6], r7
+	add     -1, r7
+	st.w    r7, 0[r6]
+
+	;/*
+	 ;*  ネスト回数が0なら，割込み元がタスク
+	 ;*/
+	cmp     r0, r7
+	be      ret_int_task
+
+	;/*
+	 ;*  ISR2割込みからのリターン時は割込み元が
+	 ;*  ISR2であるためそのままリターン
+	 ;*/
+	br      ret_int_1
+
+
+	;/*
+	 ;*  割込み元がタスクの場合
+	 ;*/
+ret_int_task:
+	ld.w    0[sp], sp                       ;/* スタックポインタを戻す     */
+
+	;/*  
+     ;*  割込み優先度マスクを変えるAPIがないため，
+     ;*  ATK2では割込み優先度マスクの復帰処理は不要
+     ;*/
+	;/*
+	 ;*  割込みハンドラ実行時には，ISPRで優先度が自動的に上がるため，
+	 ;*  PMRは変更していないが，割り込みハンドラ内で x_nested_unlock_os_int() を
+	 ;*  呼び出すとPMRが書き換わる．ディスパッチが必要でない場合は，ret_int_1で
+	 ;*  PMRを元の値に戻す．ディスパッチが必要な場合は，OS割り込み禁止とするため，
+	 ;*  ここで，PMRを更新する必要はない．
+	 ;*/
+
+	;/*
+	 ;*  戻り先がタスクの場合，ディスパッチの必要があるかチェック
+	 ;*/
+	Lea     _p_runtsk, r6
+	ld.w    0[r6], r6
+	Lea     _p_schedtsk, r7
+	ld.w    0[r7], r7
+	cmp     r6, r7
+	be      ret_int_1      ;/* ディスパッチの必要がなければ割込み元へ戻る */
+
+	;/*
+	 ;*  ここでは，戻り先がタスクであり，スタックは，タスクスタックに
+	 ;*  スクラッチレジスタのみが保存された状態になっている．また，
+	 ;*  全割込みを禁止した状態となっている
+	 ;*/
+
+	;/* 
+	 ;*  優先度マスクのクリア 
+	 ;*  eiretを実行しないため，eiretによる割込みコントローラの優先度マスク
+	 ;*  (インサービスプライオリティ)のクリアが行われないため，代わりにISPC
+	 ;*  を用いてクリアする．
+	 ;*/
+	CLEAR_ISPR r10, r12
+
+	;/*
+	 ;*  OS割込み禁止状態に移行する
+	 ;*
+	 ;*  この時点でOS割込み禁止状態とするのは，dispatcherを実行する際に
+	 ;*  OS割込み禁止状態になっている必要があるためである
+	 ;*
+	 ;*  (モデル上の)割込み優先度マスクは0であるため，ISR1以外の割込みは全て禁止する
+	 ;*/
+
+	OUTER_LOCK_OS_INT r12, r13
+	;/* ret_int で全割込み禁止状態としたため解除 */
+	UNLOCK_ALL_INT
+
+	;/*
+	 ;* コンテキストの退避 
+	 ;*/
+	addi    -48, sp, sp
+	mov     sp, ep
+	sst.w   r10, 44[ep]
+	sst.w   r11, 40[ep]
+	sst.w   r20, 36[ep]
+	sst.w   r21, 32[ep]
+	sst.w   r22, 28[ep]
+	sst.w   r23, 24[ep]
+	sst.w   r24, 20[ep]
+	sst.w   r25, 16[ep]
+	sst.w   r26, 12[ep]
+	sst.w   r27, 8[ep]
+	sst.w   r28, 4[ep]
+	sst.w   r29, 0[ep]
+
+	;/* スタックと次の起動番地を保存 */
+	Lea     _p_runtsk, ep
+	sld.w   0[ep], ep
+    ;/* =begin modified for SC3 */
+	sst.w   sp, TCB_ssp[ep]
+    ;/* =end modified for SC3 */
+	Lea     ret_int_r, r6
+	sst.w   r6, TCB_pc[ep]
+	br      dispatcher
+
+	;/*
+	 ;*  割込み・例外でコンテキスト保存した場合の復帰ルーチン
+	 ;*/
+ret_int_r:
+	;/*
+	 ;* コンテキストの復帰
+	 ;*/
+	mov     sp, ep
+	sld.w   44[ep], r10
+	sld.w   40[ep], r11
+	sld.w   36[ep], r20
+	sld.w   32[ep], r21
+	sld.w   28[ep], r22
+	sld.w   24[ep], r23
+	sld.w   20[ep], r24
+	sld.w   16[ep], r25
+	sld.w   12[ep], r26
+	sld.w   8[ep], r27
+	sld.w   4[ep], r28
+	sld.w   0[ep], r29
+	addi    48, ep, sp
+
+	LOCK_ALL_INT
+
+	OUTER_UNLOCK_OS_INT r12, r13
+	;/*
+	 ;*  割込みからの復帰ルーチン
+	 ;*/
+ret_int_1:
+	;/*
+	 ;* レジスタを復帰
+	 ;*/
+	mov     sp, ep
+
+	;/*  
+     ;*  割込み優先度マスクを変えるAPIがないため，
+     ;*  ATK2では割込み優先度マスクの復帰処理は不要
+     ;*/
+	;/*
+	 ;*  PMRを元に戻す．
+	 ;*  割込みハンドラ実行時には，ISPRで優先度が自動的に上がるため，
+	 ;*  PMRは変更していないが，割り込みハンドラ内で x_nested_unlock_os_int() を
+	 ;*  呼び出すとPMRが書き換わるためここで元の値に戻す．
+	 ;*  OUTER_UNLOCK_OS_INT は nested_lock_os_int_cnt を0にするが，
+	 ;*  ここでは既に0であるため問題ない．
+	 ;*/
+	OUTER_UNLOCK_OS_INT  r1, r6
+	sld.w    4[ep], r10
+	ldsr    r10, eipc
+	sld.w   0[ep], r10
+	ldsr    r10, eipsw
+
+    ;/* スクラッチレジスタを復帰 */
+    INT_EXC_RESTOREREG
+
+	stsr    eipsw, r2           ;/* r2 = eipsw */
+    shl     PSW_SV, r2          ;/* r2 << PSW_SV により例外発生時のモード取得 */
+    bnc     return_from_int     ;/* 特権からの割込みならばスキップ */
+    Lea     _hook_savedsp, r2
+    ld.w    0[r2], r2
+    cmp     r0, r2
+    be      int_to_utask
+    addi    -4, r2, r2
+    ld.w    0[r2], sp                ;/* sp *(hook_savedsp - 4) */
+    ;/*
+     ;*  ここで，hook_savedspを更新する必要はない
+     ;*/
+    br      return_from_int
+int_to_utask:
+    Lea     _p_runtsk, r2
+    ld.w    0[r2], r2
+    ld.w    TCB_usp[r2], sp     ;/* uspを復帰 */
+return_from_int:
+    stsr    eiwr, r2
+	eiret
+
+;/*
+ ;* タスクディスパッチ
+ ;*/
+	.extern _dispatch
+_dispatch:
+	;/*
+	 ;*  このルーチンは，タスクコンテキスト・OS割込み禁止状態・ディスパッチ
+	 ;*  許可状態・（モデル上の）割込み優先度マスク全解除状態で呼び出さ
+	 ;*  れる
+	 ;*/
+	addi    -60, sp, sp
+	st.w    ep,  0[sp]
+	mov     sp,  ep
+	sst.w   r2,  56[ep]
+	sst.w   r10, 52[ep]
+	sst.w   r11, 48[ep]
+	sst.w   r20, 44[ep]
+	sst.w   r21, 40[ep]
+	sst.w   r22, 36[ep]
+	sst.w   r23, 32[ep]
+	sst.w   r24, 28[ep]
+	sst.w   r25, 24[ep]
+	sst.w   r26, 20[ep]
+	sst.w   r27, 16[ep]
+	sst.w   r28, 12[ep]
+	sst.w   r29, 8[ep]
+	sst.w   r31, 4[ep]
+	;/* スタックと次の起動番地を保存 */
+	Lea     _p_runtsk, ep
+	sld.w   0[ep], ep
+    ;/* =begin modified for SC3 */
+	sst.w   sp, TCB_ssp[ep]
+    ;/* =end modified for SC3 */
+	Lea     dispatch_r, r10
+	sst.w   r10, TCB_pc[ep]
+$ifdef CFG_USE_STACKMONITORING
+	;/*
+	 ;*  実行中タスクのタスクスタックのオーバフローチェック
+	 ;*/
+	;/*
+	 ;*  スタックポインタチェック方式
+	 ;*/
+	Lea     _p_runtsk, r6                   ;/* 管理ブロックの先頭アドレス取得 */
+	ld.w    0[r6], r6
+	ld.w    TCB_p_tinib[r6], r6             ;/* タスク初期化ブロック先頭アドレス取得 */
+    ;/* =begin modified for SC3 */
+    ;/* システムスタックモニタリング */
+	ld.w    TINIB_sstksz[r6], r7            ;/* タスクシステムスタックサイズ取得 */
+	ld.w    TINIB_sstk_bottom[r6], r6       ;/* タスクシステムスタック終端アドレス取得 */
+    sub     r7, r6
+    mov     1, r9
+	mov     PEOB_STACKMONITORING_DISPATCH, r8  ;/* ディスパッチャでのスタックモニタリング */
+	cmp     r6, sp                          ;/* スタックポインタ <= スタックの先頭の場合NG  */
+    Lea     dispatcher, lp
+    ;/* =end modified for SC3 */
+	bnh      stack_monitoring_error
+	;/*
+	 ;* マジックナンバーチェック方式
+	 ;*/
+	ld.w    0[r6], r6
+	mov     STACK_MAGIC_NUMBER, r7
+	cmp     r7, r6
+    ;/* =begin modified for SC3 */
+    Lea     dispatcher, lp
+    ;/* =end modified for SC3 */
+	bne     stack_monitoring_error
+$endif ;/* CFG_USE_STACKMONITORING */
+	br      dispatcher
+
+	;/* 
+	 ;* ディスパッチャの復帰ルーチン 
+	 ;*/
+dispatch_r:
+	mov     sp, ep
+	sld.w   56[ep], r2
+	sld.w   52[ep], r10
+	sld.w   48[ep], r11
+	sld.w   44[ep], r20
+	sld.w   40[ep], r21
+	sld.w   36[ep], r22
+	sld.w   32[ep], r23
+	sld.w   28[ep], r24
+	sld.w   24[ep], r25
+	sld.w   20[ep], r26
+	sld.w   16[ep], r27
+	sld.w   12[ep], r28
+	sld.w    8[ep], r29
+	sld.w    4[ep], r31
+	addi    60, ep, sp
+	ld.w    0[sp], ep
+	jmp     [lp]
+
+	;/*
+	 ;*  スタックオーバフロー時の処理
+	 ;*/
+$ifdef CFG_USE_STACKMONITORING
+	;/*
+	 ;*  スタックオーバフロー時プロテクションフックを呼び出し
+	 ;*  スタックを更に壊さないため，割込みスタックの初期値を使用する
+     ;*  r8 = スタックモニタリングをした箇所
+     ;*   PEOB_STACKMONITORING_TERMTASK ||
+     ;*   PEOB_STACKMONITORING_DISPATCH ||
+     ;*   PEOB_STACKMONITORING_INTERRUPT
+     ;*  r9 = ostkptの初期値に切り替えるか?
+	 ;*/
+stack_monitoring_error:
+	;/*
+	 ;*  r9==0の場合でも，既に_ostkptを使っているので，
+	 ;*  except_nest_cntをインクリメントしても問題はない
+	 ;*/
+	Lea     _except_nest_cnt, r12               ;/* _ostkptを使う場合はexcept_nest_cntをインクリメントする */
+	ld.w    0[r12], r13
+	add     1, r13
+	st.w    r13, 0[r12]
+
+    ;/* =begin modified for SC3 */
+    cmp     r0, r9
+    be      stack_monitoring_error_1
+    ;/* =end modified for SC3 */
+
+	Lea    __ostkpt, r12                        ;/* スタックを更に壊さないため，割込みスタックの初期値を使用する */
+	ld.w    0[r12], r12
+	mov     r12, sp
+
+    ;/* =begin modified for SC3 */
+stack_monitoring_error_1:
+	;/*
+	 ;*  プロテクションフックはOS割込み禁止状態で呼び出す
+	 ;*/
+	NESTED_LOCK_OS_INT r12, r13
+    ;/* =end modified for SC3 */
+
+	mov     E_OS_STACKFAULT, r6                 ;/* プロテクションフックの引数を設定 */
+    or      r8, r6                              ;/* r6 = E_OS_STACKFAULT | PEOB_STACKMONITORING_XXX */
+    ;/* =begin modified for SC3 */
+    push    lp
+	jarl    _call_protectionhk_main, r31        ;/* プロテクションフックを呼び出し */
+    pop     lp
+
+	;/*
+	 ;*  except_nest_cntをデクリメント
+	 ;*/
+	Lea     _except_nest_cnt, r12
+	ld.w    0[r12], r13
+	add     -1, r13
+	st.w    r13, 0[r12]
+	;/*
+	 ;*  OS割込み禁止状態をアンネスト
+	 ;*/
+	NESTED_UNLOCK_OS_INT r12, r13
+    jmp     [lp]
+    ;/* =end modified for SC3 */
+$endif ;/* CFG_USE_STACKMONITORING */
+
+
+;/*
+ ;*  ディスパッチャの動作開始
+ ;*/
+	.extern _start_dispatch
+_start_dispatch:
+	;/*
+	 ;*  このルーチンは，カーネル起動時に，すべての割込みを禁止した状態
+	 ;* （全割込み禁止状態と同等）で呼び出される．また，割込みモード（非
+	 ;*  タスクコンテキストと同等）で呼び出されることを想定している
+	 ;*
+	 ;*  dispatcherは，OS割込み禁止状態で呼び出す．
+	 ;*/
+	;/* OS割込み禁止状態 */
+	OUTER_LOCK_OS_INT r12, r13
+	;/* 全割込み禁止解除状態へ */
+	UNLOCK_ALL_INT
+	br    dispatcher_0
+
+    ;/* =begin modified for SC3 */
+	.extern _exit_and_dispatch_nohook
+	;/*
+	 ;*  タスク強制終了の場合はPostTaskHookを呼出さない
+	 ;*  その場合のエントリである
+	 ;*/
+_exit_and_dispatch_nohook:
+
+	br    dispatcher_0
+    ;/* =end modified for SC3 */
+
+	;/*
+	 ;*  現在のコンテキストを捨ててディスパッチ
+	 ;*/
+	.extern _exit_and_dispatch
+_exit_and_dispatch:
+$ifdef CFG_USE_STACKMONITORING
+	;/*
+	 ;*  実行中のタスクスタックのオーバフローチェック
+	 ;*/
+	;/*
+	 ;*  スタックポインタチェック方式
+	 ;*/
+	Lea     _p_runtsk, r6                   ;/* 管理ブロックの先頭アドレス取得 */
+	ld.w    0[r6], r6
+	ld.w    TCB_p_tinib[r6], r6             ;/* タスク初期化ブロック先頭アドレス取得 */
+    ;/* =begin modified for SC3 */
+    ;/* システムスタックモニタリング */
+	ld.w    TINIB_sstksz[r6], r7            ;/* タスクシステムスタックサイズ取得 */
+	ld.w    TINIB_sstk_bottom[r6], r6       ;/* タスクシステムスタック終端アドレス取得 */
+    sub     r7, r6
+    mov     1, r9
+	mov     PEOB_STACKMONITORING_TERMTASK, r8  ;/* タスク終了時のスタックモニタリング */
+	cmp     r6, sp                          ;/* スタックポインタ <= スタックの先頭の場合NG  */
+    Lea     dispatcher, lp
+    ;/* =end modified for SC3 */
+	bnh      stack_monitoring_error
+	;/*
+	 ;* マジックナンバーチェック方式
+	 ;*/
+	ld.w    0[r6], r6
+	mov     STACK_MAGIC_NUMBER, r7
+	cmp     r7, r6
+    ;/* =begin modified for SC3 */
+    Lea     dispatcher, lp
+    ;/* =end modified for SC3 */
+	bne     stack_monitoring_error
+$endif ;/* CFG_USE_STACKMONITORING */
+	;/* ディスパッチャ本体（dispatcher）へ */
+
+dispatcher:
+	;/*
+	 ;*  PostTaskHookの呼び出し
+	 ;*/
+$ifdef CFG_USE_POSTTASKHOOK
+	Lea     _PostTaskHook, r20
+	cmp     r20, r0
+	be      dispatcher_0
+posttaskhook_call:
+	Lea     _call_posttaskhook, r6
+	jarl    _stack_change_and_call_func_1, r31
+$endif ;/* CFG_USE_POSTTASKHOOK */
+
+dispatcher_0:
+	;/*
+	 ;*  このルーチンは，タスクコンテキスト・OS割込み禁止状態・ディスパッチ
+	 ;*  許可状態・（モデル上の）割込み優先度マスク全解除状態で呼び出さ
+	 ;*  れる．実行再開番地へもこの状態のまま分岐する
+	 ;*/
+$ifdef LOG_DSP_ENTER
+	Lea     _p_runtsk, r21
+	ld.w    0[r21], r21
+	cmp     r0, r21
+	be      dispatcher_0_1
+	mov     r21, r6                            ;/* 引数に_p_runtskを指定 */
+	jarl    _log_dsp_enter, r31
+dispatcher_0_1:
+$endif	;/* LOG_DSP_ENTER */
+
+	Lea     _callevel_stat, r21
+	ld.h    0[r21], r22
+	mov     TSYS_DISALLINT, r20
+	and     r22, r20
+	be      dispatcher_1
+
+	mov     !TSYS_DISALLINT, r20
+	and     r22, r20
+	st.h    r20, 0[r21]
+	UNLOCK_ALL_INT                             ;/* 全割込み禁止解除状態へ */
+
+	;/*
+	 ;*  例外（割込み/CPU例外）のネスト回数はstart_dispatchや，dispatcher_3:
+	 ;*  から来た場合は'1'となっているため，タスクスタックに切り換え後，
+	 ;*  '0'に初期化する．
+	 ;*/
+dispatcher_1:
+	Lea     _p_runtsk, r21
+	Lea     _p_schedtsk, r20
+	ld.w    0[r20], r22
+	st.w    r22, 0[r21]
+	cmp     r22, r0
+	be      dispatcher_3
+
+	mov     r22, ep 
+    ;/* =begin modified for SC3 */
+	sld.w   TCB_ssp[ep], sp
+    ;/* =end modified for SC3 */
+	Lea     _except_nest_cnt, r20
+	st.w    r0, 0[r20]
+
+    ;/* =begin modified for SC3 */
+    sld.w   TCB_p_tinib[ep], ep
+    mov     ep, r25                     ;/* r25 = p_tinib */
+    sld.w   TINIB_p_osapcb[ep], r26     ;/* r26 = p_osapcb */
+    Lea     _p_runosap, ep              ;/* ep = &p_runosap */
+    sst.w   r26, 0[ep]                  ;/* p_runosap = p_osapcb */
+    ld.w    OSAPCB_p_osapinib[r26], r29 ;/* r29 = p_osapinib */
+    ld.bu   OSAPINIB_osap_trusted[r29], r24 ;/* r24 = trusted? */
+    Lea     _run_trusted, ep
+    sst.b   r24, 0[ep]                      ;/* run_trusted = trusted? */
+    cmp     r0, r24                         ;/* 信頼ならばスキップ */
+    bne     dispatcher_5
+
+$ifdef __v850e2v3__
+    ori     0x1001, r0, r27
+    ldsr    r27, bsel
+    ;/*
+     ;*  ユーザスタック領域
+     ;*/
+    mov     r25, ep
+    sld.w   TINIB_start_ustk[ep], r27   ;/* 先頭番地 */
+    ori     0x01, r27, r27
+    sld.w   TINIB_limit_ustk[ep], r28   ;/* 保護属性とサイズ */
+    ori     0x06, r28, r28
+    ldsr    r27, dpa0l
+    ldsr    r28, dpa0u
+$elseif defined(__v850e3v5__)
+    ;/*
+     ;*  ユーザスタック領域
+     ;*/
+    mov     r25, ep
+    sld.w   TINIB_start_ustk[ep], r27   ;/* 先頭番地 */
+    sld.w   TINIB_limit_ustk[ep], r28   ;/* 保護属性とサイズ */
+    ldsr    r27, 0, 6                   ;/* MPLA0 */
+    ldsr    r28, 1, 6                   ;/* MPUA0 */
+
+$endif ;/* __v850e2v3__ */
+
+   	;/*
+	 ;*  実行ドメインと保護ドメイン(MPUの設定)が同じならば，
+     ;*  ドメイン毎のコード領域・データ領域をMPUに設定し直す必要はない
+     ;*/
+    Lea     _p_ctxosap, ep      ;/* ep = &p_ctxosap */	
+    sld.w   0[ep], r27          ;/* r27 = p_ctxosap */
+	cmp     r27, r26            ;/* p_ctxosap == p_runosap ? */
+	be      dispatcher_5        ;/* 同じならdispatcher_5へ */
+    nop
+	sst.w   r26, 0[ep]          ;/* p_ctxosap = p_runosap : 保護ドメインを切替え */
+$ifdef __v850e2v3__
+    ldsr    r26, vmtid          ;/* メモリ保護違反タスク識別子をp_runosapとする */
+    mov     r29, ep             ;/* ep = p_osapinib */
+
+    ;/*
+     ;*  自保護ドメイン専用のrom領域
+     ;*/
+    sld.w   OSAPINIB_start_text[ep], r27  ;/* 先頭番地 */
+    sld.w   OSAPINIB_limit_text[ep], r28  ;/* 保護属性とサイズ */
+    ldsr    r27, ipa0l
+    ldsr    r28, ipa0u
+    ;/*
+     ;*  自保護ドメイン専用のrosdata領域
+     ;*/
+    sld.w   OSAPINIB_start_rosdata[ep], r27  ;/* 先頭番地 */
+    sld.w   OSAPINIB_limit_rosdata[ep], r28  ;/* 保護属性とサイズ */
+    ldsr    r27, ipa1l
+    ldsr    r28, ipa1u
+    ;/* 
+     ;* 自保護ドメイン専用のRWX領域
+     ;*/
+    sld.w   OSAPINIB_start_ram[ep], r27  ;/* 先頭番地 */
+    sld.w   OSAPINIB_limit_ram[ep], r28  ;/* 保護属性とサイズ */
+    ldsr    r27, dpa1l
+    ldsr    r28, dpa1u
+    ;/* 
+     ;* 自保護ドメイン専用のRWX領域(sdata)
+     ;*/
+    sld.w   OSAPINIB_start_sram[ep], r27  ;/* 先頭番地 */
+    sld.w   OSAPINIB_limit_sram[ep], r28  ;/* 保護属性とサイズ */
+    ldsr    r27, dpa2l
+    ldsr    r28, dpa2u
+    ;/*
+     ;* 共有リード/専用ライト領域の専用領域
+     ;*/
+    sld.w   OSAPINIB_start_srpw[ep], r27  ;/* 先頭番地 */
+    sld.w   OSAPINIB_limit_srpw[ep], r28  ;/* 保護属性とサイズ */
+    ldsr    r27, dpa3l
+    ldsr    r28, dpa3u
+     ;/*
+     ;* 共有リード/専用ライト領域の専用領域(sdata)
+     ;*/
+    sld.w   OSAPINIB_start_ssrpw[ep], r27  ;/* 先頭番地 */
+    sld.w   OSAPINIB_limit_ssrpw[ep], r28  ;/* 保護属性とサイズ */
+    ldsr    r27, dpa4l
+    ldsr    r28, dpa4u
+
+$elseif defined(__v850e3v5__)
+    mov     r29, ep             ;/* ep = p_osapinib */
+
+$ifdef MPU_REGION_11
+    ;/*
+     ;*  自保護ドメイン専用のrom領域
+     ;*/
+    sld.w   OSAPINIB_start_text[ep], r27  ;/* 先頭番地 */
+    sld.w   OSAPINIB_limit_text[ep], r28  ;/* 保護属性とサイズ */
+    ldsr    r27, 16, 6                     ;/* MPLA4 */
+    ldsr    r28, 17, 6                     ;/* MPUA4 */
+
+    ;/*
+     ;*  自保護ドメイン専用のrosdata領域
+     ;*/
+    sld.w   OSAPINIB_start_rosdata[ep], r27  ;/* 先頭番地 */
+    sld.w   OSAPINIB_limit_rosdata[ep], r28  ;/* 保護属性とサイズ */
+    ldsr    r27, 20, 6                     ;/* MPLA5 */
+    ldsr    r28, 21, 6                     ;/* MPUA5 */
+
+    ;/* 
+     ;* 自保護ドメイン専用のRWX領域
+     ;*/
+    sld.w   OSAPINIB_start_ram[ep], r27  ;/* 先頭番地 */
+    sld.w   OSAPINIB_limit_ram[ep], r28  ;/* 保護属性とサイズ */
+    ldsr    r27, 24, 6                     ;/* MPLA6 */
+    ldsr    r28, 25, 6                     ;/* MPUA6 */
+
+    ;/* 
+     ;* 自保護ドメイン専用のRWX領域(sdata)
+     ;*/
+    sld.w   OSAPINIB_start_sram[ep], r27  ;/* 先頭番地 */
+    sld.w   OSAPINIB_limit_sram[ep], r28  ;/* 保護属性とサイズ */
+    ldsr    r27, 28, 6                     ;/* MPLA7 */
+    ldsr    r28, 29, 6                     ;/* MPUA7 */
+
+$endif ;/* (MPU_REGION_NUM >= 11) */
+
+    ;/*
+     ;* 共有リード/専用ライト領域の専用領域
+     ;*/
+    sld.w   OSAPINIB_start_srpw[ep], r27  ;/* 先頭番地 */
+    sld.w   OSAPINIB_limit_srpw[ep], r28  ;/* 保護属性とサイズ */
+    ldsr    r27, 4, 6                     ;/* MPLA1 */
+    ldsr    r28, 5, 6                     ;/* MPUA1 */
+
+    ;/*
+     ;* 共有リード/専用ライト領域の専用領域(sdata)
+     ;*/
+    sld.w   OSAPINIB_start_ssrpw[ep], r27  ;/* 先頭番地 */
+    sld.w   OSAPINIB_limit_ssrpw[ep], r28  ;/* 保護属性とサイズ */
+    ldsr    r27, 8, 6                      ;/* MPLA2 */
+    ldsr    r28, 9, 6                      ;/* MPUA2 */
+
+    sld.w   OSAPINIB_mprc[ep], r27  ;/* MPRC */
+    ldsr    r27, 1, 5
+$endif ;/* __v850e2v3__ */
+
+dispatcher_5:
+$ifdef __v850e2v3__
+    ldsr    r0, bsel    ;/* bselを戻す */
+$endif ;/* __v850e2v3__ */
+    ;/* =end modified for SC3 */
+
+$ifdef LOG_DSP_LEAVE
+	ld.w    0[r21], r6                          ;/* 引数に_p_runtskを指定 */
+	jarl    _log_dsp_leave, r31
+$endif	;/* LOG_DSP_LEAVE */
+
+$ifdef CFG_USE_PRETASKHOOK
+	Lea     _PreTaskHook, r20
+	cmp     r20, r0
+	be      dispatcher_2
+
+pretaskhook_call:
+	Lea     _call_pretaskhook, r6
+	jarl    _stack_change_and_call_func_1, r31
+$endif ;/* CFG_USE_PRETASKHOOK */
+
+dispatcher_2:
+	Lea     _p_runtsk, r20
+	ld.w    0[r20], r22
+	mov     r22, ep
+	sld.w   TCB_pc[ep], r31
+	jmp     [r31]
+
+dispatcher_3:
+	;/*
+	 ;* OS割込み禁止状態の解除と，非タスクコンテキスト実行状態への
+	 ;* 準備をする
+	 ;*
+	 ;*  ここで非タスクコンテキストに切り替える（sp＝非タスクコンテキス
+	 ;*  ト用スタックポインタ，except_nest_cnt＝1)のは，OS割込み禁止解
+	 ;*  除後に発生する割込み処理にどのスタックを使うかという問題の解決
+	 ;*  と，割込みハンドラ内でのタスクディスパッチの防止という2つの意
+	 ;*  味がある
+	 ;*/
+	Lea     __ostkpt, r20		;/* 非タスクコンテキスト用のスタックの読み込みスタックポインタの入れ替え */
+	ld.w    0[r20], r3
+
+	Lea     _except_nest_cnt, r20
+	mov     1, r21
+	st.w    r21, 0[r20]
+
+	;/*
+	 ;*  OS割込み禁止解除状態へ
+	 ;*  割込みを許可し，非タスクコンテキスト実行状態とし割込みを待つ
+	 ;*
+	 ;*  プロセッサを割込み待ちに移行させる処理と，割込み許可とは，不可
+	 ;*  分に行なう必要がある
+	 ;*  これを不可分に行なわない場合，割込みを許可した直後に割込
+	 ;*  みが入り，その中でタスクが実行可能状態になると，実行すべきタス
+	 ;*  クがあるにもかかわらずプロセッサが割込み待ちになってしまう．
+	 ;*  不可分に行うため，diによりコアでの割り込みを禁止した状態で，
+	 ;*  INTCの割り込み優先度マスクを下げてからhaltを呼び出す．
+	 ;*  割り込みが発生した場合は，haltから復帰して次のeiでベクタに
+	 ;*  ジャンプする．
+	 ;*
+	 ;*  割込み待ちの間は，p_runtskをNULL（＝0）に設定しなければならない
+	 ;*  このように設定しないと，割込みハンドラからGetTaskIDを呼び出
+	 ;*  した際の動作が仕様に合致しなくなる
+	 ;*/
+
+	di
+	OUTER_UNLOCK_OS_INT r12, r13
+
+$if 0
+	nop
+	nop
+	nop
+	nop
+$else
+	halt
+$endif
+	ei
+
+	;/*
+	 ;*  OS割込み禁止状態へ
+	 ;*  (モデル上の)割込み優先度マスクは0であるため，ISR1以外の割込みは全て禁止する
+	 ;*  スタックは非タスクコンテキストのスタックを使用しているため，_except_nest_cntは，
+	 ;*  '1'のままとする
+	 ;*/
+	OUTER_LOCK_OS_INT r12, r13
+	br      dispatcher_1
+
+
+;/*
+ ;*  タスク開始時処理
+ ;*
+ ;*  dispatcherから呼び出される
+ ;*/
+    ;/* =begin modified for SC3 */
+	.extern _start_stask_r
+_start_stask_r:
+    Lea		_p_runtsk, ep                   ;/* ep = p_runtsk */
+	sld.w	0[ep], ep
+	;/*
+	 ;*  タスクが不正終了した場合は保護処理を行うよう
+	 ;*  戻りアドレスにexit_taskを設定
+	 ;*/
+	Lea     __kernel_exit_task, r31
+    mov     r0, r6
+    br      _start_r
+
+	.extern _start_utask_r
+_start_utask_r:
+$ifndef __v850e3v5__
+    ldsr    r0, bsel
+$endif
+    Lea		_p_runtsk, ep                   ;/* ep = p_runtsk */
+	sld.w	0[ep], ep
+    clr1    0, TCB_priv_mode[ep]            ;/* 特権モード実行を抜ける */
+    sld.w   TCB_p_tinib[ep], r20            ;/* ep = p_runtsk->p_tinib */
+    ld.w    TINIB_ustk_bottom[r20], r20     ;/* r20 = ユーザスタックポインタの初期値 */
+    mov     r20, sp
+	;/*
+	 ;*  タスクが不正終了した場合は保護処理を行うよう
+	 ;*  戻りアドレスにexit_utaskを設定
+	 ;*/
+    Lea     _exit_utask, lp                 ;/* lp = _exit_utask */
+    stsr    psw, r10
+
+    ;/* 
+     ;*  全割込み禁止状態へ
+     ;*  タスクコンテキストへのジャンプで解除される
+     ;*/
+    di
+
+    ;/* 
+	 ;* 非特権モードで動作するよう準備
+     ;* 保護機能有効（非信頼へ），割込み許可
+     ;* PP,NPV,DMP,IMP = 1, ID = 0
+     ;*/
+$ifdef __v850e2v3__
+    movhi   0x000f, r0, r7                  
+$elseif defined(__v850e3v5__)
+    movhi   0x4000, r0, r7  
+$endif ;/* __v850e2v3__ */
+    or      r7, r10         ;/* psw |= (PP|NPV|DMP|IMP) */
+	ldsr    r10, eipsw      ;/* eipsw = psw */
+    mov     1, r6
+
+	.extern _start_r
+_start_r:
+	ld.w    TCB_p_tinib[ep], r22
+$ifdef CFG_USE_STACKMONITORING
+	;/*
+	 ;*  SC3ではタスク強制終了があるので，タスク起動毎にマジックナンバー
+	 ;*  を初期化する
+	 ;*/
+	ld.w    TINIB_sstk_bottom[r22], r21
+    ld.w    TINIB_sstksz[r22], r10
+    sub     r10, r21
+	mov     STACK_MAGIC_NUMBER, r10
+	st.w	r10, 0[r21]
+$endif ;/* CFG_USE_STACKMONITORING */
+
+	;/*
+	 ;*  OS割込み禁止解除前に現在優先度(TCB.curpri)を実行優先度(TINIB.exepri)に
+	 ;*  変更(内部リソースを獲得)
+	 ;*/
+	ld.b    TINIB_exepri[r22], r21			;/* TINIB.exepri -> TCB.curpri */
+	st.b    r21, TCB_curpri[ep]
+
+	;/*
+	 ;*  OS割込み禁止解除状態へ
+	 ;*  (モデル上の)割込み優先度マスクは0であるため，有効な割込みは全て許可する
+	 ;*/
+
+	OUTER_UNLOCK_OS_INT r12, r13
+
+	ld.w    TCB_p_tinib[ep], r22
+	ld.w    TINIB_task[r22], r10
+    cmp     r0, r6
+    bne     _start_r_1              ;/* r6 != 0 ならば _start_r_1 へ*/
+	jmp     [r10]
+
+_start_r_1:
+	ldsr    r10, eipc               ;/* EIPC = pc */
+    eiret
+    ;/* =end modified for SC3 */
+
+    ;/*
+     ;*  ext_tskをsvc命令で呼び出す
+     ;*/
+    shared.text .cseg text
+    .align 4
+    .public _exit_utask
+_exit_utask:
+    mov     TFN_EXIT_TASK, r11
+    syscall NO_SVC
+    nop
+
+    kernel.text .cseg text
+	.extern _stack_change_and_call_func_1 
+	.extern _stack_change_and_call_func_2
+_stack_change_and_call_func_1:
+_stack_change_and_call_func_2:
+
+	Lea     _except_nest_cnt, r12
+	ld.w    0[r12], r13
+	add     1, r13
+	st.w    r13, 0[r12]
+	cmp     1, r13
+	bne     _stack_change_and_call_func_1_1
+
+	;/* スタックポインタの保存と入れ替え */
+	Lea     __ostkpt, r12
+	ld.w    0[r12], r12
+	add     -4, r12
+	st.w    sp, 0[r12]                      ;/* スタックポインタの保存 */
+	mov     r12, sp                         ;/* スタックポインタの切り替え */
+    
+
+_stack_change_and_call_func_1_1:
+	push    lp
+	Lea     stack_change_and_call_func_r, lp  ;/* 戻りアドレス */
+	mov     r6, r12
+	mov     r7, r6
+	mov     r8, r7
+	jmp     [r12]
+
+stack_change_and_call_func_r:
+	pop     lp
+	Lea     _except_nest_cnt, r12
+	ld.w    0[r12], r13
+	add     -1, r13
+	st.w    r13, 0[r12]
+	cmp     r0, r13
+	bne     stack_change_and_call_func_r_1
+
+	ld.w    0[sp], sp                    ;/* スタックポインタの復帰     */
+stack_change_and_call_func_r_1:
+	jmp     [lp]
+
+
+$ifdef ENABLE_RETURN_MAIN
+;/*
+ ;*  AKTSP用のmain()へのリターンコード
+ ;*/
+	.extern _return_main
+_return_main:
+	Lea   __ostkpt, sp
+	ld.w  0[sp],sp
+	jarl  _main, r31
+$endif ;/* ENABLE_RETURN_MAIN */
+
+    ;/* =begin modified for SC3 */
+;/*
+ ;*  SYSCALLテーブル
+ ;*  syscall命令は、scbp + scbp[x] の番地にジャンプする
+ ;*/
+    .public _syscall_table
+    kernel.text .cseg text
+    .align 4
+_syscall_table:
+    .dw (_syscall_error_handler - _syscall_table)
+    .dw (_svc_entry - _syscall_table)
+    .dw (_call_nontrusted_hook_trap_ret - _syscall_table)
+
+    .public _syscall_error_handler
+    .public _svc_entry
+;/*
+ ;*  SYSCALLエラーハンドラ
+ ;*/
+_syscall_error_handler:
+    br  _syscall_error_handler
+    nop
+
+;/*
+ ;*  サービスコールの出入口
+ ;*  PP,NPV,DMP,IMP = 0, ID,EP = 1
+ ;*  eipc = pc, eipsw = psw : eiする前に保存
+ ;*    r10 : 返り値
+ ;*    r11：関数コード
+ ;*    r6 - r9 : 引数（4つまで）
+ ;*    r20 : 第5引数
+ ;*    スクラッチレジスタ保存済み
+ ;*    lp保存済み
+ ;*/
+_svc_entry:
+    ;/*
+     ;*  呼出し元が特権モードか？
+     ;*  eipswをチェックする
+     ;*/
+$ifndef __v850e3v5__
+    ldsr    r0, bsel
+$endif
+    stsr    eipsw, r13
+    shl     PSW_SV, r13         ;/* r13 << PSW_SV により例外発生時のモード取得 */
+    bnc     svc_entry_2         ;/* 特権モードからの呼出しならばスキップ */
+
+    ;/*
+     ;*  呼出し元が非信頼フック実行中か？
+     ;*  hook_savedspをチェックする
+     ;*  非信頼フック実行中ならばスタック切替
+     ;*/
+    Lea     _hook_savedsp, ep
+    sld.w   0[ep], ep
+    cmp     r0, ep
+    be      svc_entry_1             ;/* hook_savedsp == 0:タスクコンテキスト */
+    addi    -4, ep, ep
+    sst.w   sp, 0[ep]               ;/* *(hook_savedsp - 4) = sp */
+    mov     ep, sp                  ;/* sp = hook_savedsp - 4 */   
+    br      svc_entry_2
+
+svc_entry_1:
+    ;/*
+     ;*  タスクコンテキストからの呼出しの場合
+     ;*/
+    ;/*
+     ;*  ユーザスタックとシステムスタックを入れ替える
+     ;*  タスクの状態を特権モード実行中に移行する
+     ;*  戻り先が非特権モードで非信頼フック実行中でなければ，
+     ;*  タスク実行中であるはずなので，p_runtskがNULLかどうかの
+     ;*  チェックは必要ないはず
+     ;*/
+    Lea     _p_runtsk, ep
+    sld.w   0[ep], ep
+    set1    0, TCB_priv_mode[ep]    ;/* p_runtsk->priv_mode |= 0x01 */
+    sst.w   sp, TCB_usp[ep]         ;/* uspを保存 */
+    sld.w   TCB_p_tinib[ep], ep
+    sld.w   TINIB_sstk_bottom[ep], sp         ;/* sspを復帰 */
+
+svc_entry_2:
+    ;/*
+     ;*  eipcとeipsw（syscall呼出し元のpcとpsw）を保存して
+     ;*  割込みからリターン
+     ;*  +--------------+ <- new sp
+     ;*  | eipsw        |
+     ;*  +--------------+
+     ;*  | eipc         |
+     ;*  +--------------+ <- old sp
+     ;*/
+    addi    -8, sp, sp
+    mov     sp, ep
+    stsr    eipc, r12
+    sst.w   r12, 4[ep]
+    stsr    eipsw, r12
+    sst.w   r12, 0[ep]
+    ;/*
+     ;*  eipswの保護関連ビットを0にする
+     ;*/
+$ifdef __v850e2v3__
+    movhi   0x000f, r0, r13
+$elseif defined(__v850e3v5__)
+    movhi   0x4000, r0, r13
+$endif ;/* __v850e2v3__ */
+    not     r13, r13
+    and     r13, r12
+    ldsr    r12, eipsw          ;/* PP,NPV,DMP,IMP = 0 */
+    Lea     svc_entry_3, r12
+    ldsr    r12, eipc
+    eiret
+
+svc_entry_3:
+    ;/*
+     ;*  機能コードのチェック
+     ;*/
+    mov     TMAX_SVCID, r12
+    cmp     r12, r11            ;/* 機能コードの上限チェック(TMAX_SVCID < r11) */
+    bgt     svc_entry_error     ;/* 上限をオーバしているならばエラー */
+
+    ;/*
+     ;*  サービスコールのテーブルを引き，
+     ;*  サービスコールの本体を呼ぶ
+     ;*/
+    Lea     _svc_table, r12
+    shl     2, r11                  ;/* r11 *= 4 */
+    add     r11, r12                ;/* r12 = &svc_table[r11] */
+	ld.w    0[r12], r12             ;/* テーブルを引く */
+    Lea     svc_entry_r, lp         ;/* 戻り番地を設定 */
+	jmp     [r12]                   ;/* サービスコール処理ルーチンを呼ぶ */
+    nop
+
+svc_entry_error:
+    jarl    _no_support_service, lp ;/* no_support_service を呼ぶ */
+
+svc_entry_r:
+    ;/*
+     ;*  この時点でのpswをr11に保存する
+     ;*  全割込み禁止で更新した時への対応
+     ;*/
+    stsr    psw, r11
+
+    ;/*
+     ;*  全割込み禁止状態へ
+     ;*/
+    di
+
+    ;/*
+     ;*  eipcとeipsw（syscall呼出し元のpcとpsw）を復帰
+     ;*  ここでは，割込み処理中でない（サービスコール呼出し前に
+     ;*  eiretを発行している）が，eiretを利用してリターンする
+     ;*  +--------------+ <- old sp
+     ;*  | eipc         |
+     ;*  +--------------+
+     ;*  | eipsw        |
+     ;*  +--------------+ <- new sp
+     ;*/
+    mov     sp, ep
+    sld.w   4[ep], r15
+    sld.w   0[ep], r16
+    addi    8, sp, sp
+
+    ;/*
+	 ;*  スタックを戻すかチェック
+	 ;*/
+    ;/*
+     ;*  呼出し元が特権モードか？
+     ;*  eipswをチェックする
+     ;*/
+$ifdef __v850e2v3__
+    ldsr    r0, bsel
+    movhi   0x000f, r0, r12
+$elseif defined(__v850e3v5__)
+    movhi   0x4000, r0, r12
+$endif ;/* __v850e2v3__ */
+    tst     r16, r12
+    be      svc_prv_r           ;/* 特権モードからの呼出しならばスキップ */
+
+    ;/*
+     ;*  呼出し元が非信頼フック実行中か？
+     ;*  hook_savedspをチェックする
+     ;*  非信頼フック実行中ならばスタック切替
+     ;*/
+    Lea     _hook_savedsp, ep
+    sld.w   0[ep], ep
+    cmp     r0, ep
+    be      svc_entry_r_1           ;/* hook_savedsp == 0:タスクコンテキストのチェックへ */
+    addi    -4, ep, ep
+    sld.w   0[ep], sp               ;/* sp = *(hook_savedsp - 4) */
+    ;/*
+     ;*  ここで，hook_savedspを更新する必要はない
+     ;*/
+    br      svc_prv_r
+
+svc_entry_r_1:
+    Lea     _p_runtsk, ep
+    sld.w   0[ep], ep
+    tst1    0, TCB_priv_mode[ep]    ;/* uspを保存したか？ */
+    be      svc_prv_r               ;/* uspを保存していないならばスキップ */
+
+svc_usr_r:
+    ;/* 
+     ;*  特権モード実行を抜ける
+     ;*  sstkとustkを入れ替える
+     ;*  戻り先がタスクコンテキストならば，タスク実行中であるはず
+     ;*  なので，p_runtskがNULLかどうかのチェックは必要ないはず
+     ;*/
+    clr1    0, TCB_priv_mode[ep]    ;/* p_runtsk->priv_mode &= !0x01 */
+    sld.w   TCB_usp[ep], sp         ;/* uspを復帰 */
+    
+svc_prv_r:
+    ;/*
+     ;*  システムサービスでセットされた割込み優先度マスクを反映する
+     ;*/
+    mov     0x20, r12
+    and     r12, r11    ;/* PSW.ID以外を0に */
+    not     r12, r12    ;/* r12 = !0x20 */
+    and     r12, r16    ;/* eipsw &= !0x20 */
+    or      r11, r16    ;/* eipsw |= r11 */
+    ldsr    r16, eipsw
+    ldsr    r15, eipc
+    eiret               ;/* 呼出し元へリターン */
+    nop
+
+    ;/*
+     ;*  信頼シャットダウンフックの呼出し
+     ;*  r6 = フックのアドレス
+     ;*  r7 = フックに渡すエラーコード
+     ;*/
+    .extern _call_trusted_hook
+_call_trusted_hook:
+    ;/*
+     ;*  関数呼出しで呼ばれるので，callee saved のみ保存
+     ;*/
+	addi    -68, sp, sp
+	st.w    ep,  0[sp]
+	mov     sp,  ep
+	sst.w   r2,  56[ep]
+	sst.w   r10, 52[ep]
+	sst.w   r11, 48[ep]
+	sst.w   r20, 44[ep]
+	sst.w   r21, 40[ep]
+	sst.w   r22, 36[ep]
+	sst.w   r23, 32[ep]
+	sst.w   r24, 28[ep]
+	sst.w   r25, 24[ep]
+	sst.w   r26, 20[ep]
+	sst.w   r27, 16[ep]
+	sst.w   r28, 12[ep]
+	sst.w   r29, 8[ep]
+	sst.w   r31, 4[ep]  ;/* lp */
+    ;/*
+     ;*  キャンセルしたときのために下記のデータを保存
+     ;*  except_nest_cntを保存
+     ;*   シャットダウンフック実行中にフックがネストするたびに+1される
+     ;*   のを戻すため
+     ;*  callevel_statを保存
+     ;*   シャットダウンフック実行中に追加されたcallevelを戻すため
+     ;*  sp を保存
+     ;*/
+    Lea     _except_nest_cnt, r2
+    ld.w    0[r2], r2
+    sst.w   r2, 64[ep]
+    Lea     _callevel_stat, r2
+    ld.h    0[r2], r2
+    sst.w   r2, 60[ep]
+    Lea     _trusted_hook_savedsp, ep
+    sst.w   sp, 0[ep]
+    ;/*
+     ;*  信頼フックを呼ぶ
+     ;*/
+    mov     r6, r11
+    mov     r7, r6
+    Lea     _trusted_hook_ret, lp
+    jmp     [r11]
+
+    .extern _exit_trusted_shutdown_hook
+_exit_trusted_shutdown_hook:
+    ;/*
+     ;*  sp を trusted_hook_savedsp から復帰
+     ;*/
+    Lea     _trusted_hook_savedsp, ep
+    sld.w   0[ep], sp
+    ld.h    60[sp], r2
+    Lea     _callevel_stat, r10
+    st.h    r2, 0[r10]
+    ld.w    64[sp], r2
+    Lea     _except_nest_cnt, r10
+    st.w    r2, 0[r10]    
+_trusted_hook_ret:
+    ;/*
+     ;*  trusted_hook_savedsp を0初期化
+     ;*/
+    Lea     _trusted_hook_savedsp, ep
+    sst.w   r0, 0[ep]
+	mov     sp, ep
+	sld.w   56[ep], r2
+	sld.w   52[ep], r10
+	sld.w   48[ep], r11
+	sld.w   44[ep], r20
+	sld.w   40[ep], r21
+	sld.w   36[ep], r22
+	sld.w   32[ep], r23
+	sld.w   28[ep], r24
+	sld.w   24[ep], r25
+	sld.w   20[ep], r26
+	sld.w   16[ep], r27
+	sld.w   12[ep], r28
+	sld.w    8[ep], r29
+	sld.w    4[ep], r31
+	addi    68, ep, sp
+	ld.w    0[sp], ep
+	jmp     [lp]
+
+    ;/*
+     ;*  非信頼フックの呼出し
+     ;*  r6 = フックのアドレス
+     ;*  r7 = フックに渡すエラーコード
+     ;*  r8 = フックの種別
+     ;*/
+    .extern _call_nontrusted_hook
+_call_nontrusted_hook:
+    ;/*
+     ;*  関数呼出しで呼ばれるので，callee saved のみ保存
+     ;*/
+	addi    -76, sp, sp
+	st.w    ep,  0[sp]
+	mov     sp,  ep
+	sst.w   r2,  56[ep]
+	sst.w   r10, 52[ep]
+	sst.w   r11, 48[ep]
+	sst.w   r20, 44[ep]
+	sst.w   r21, 40[ep]
+	sst.w   r22, 36[ep]
+	sst.w   r23, 32[ep]
+	sst.w   r24, 28[ep]
+	sst.w   r25, 24[ep]
+	sst.w   r26, 20[ep]
+	sst.w   r27, 16[ep]
+	sst.w   r28, 12[ep]
+	sst.w   r29, 8[ep]
+	sst.w   r31, 4[ep]
+    ;/*
+     ;*  hook_savedspをスタックに保存し，
+     ;*  sp をhook_savedspに保存
+     ;*  shutdown_hook_savedspをスタックに保存
+     ;*/
+    Lea     _hook_savedsp, r11
+    ld.w    0[r11], r10
+    sst.w   r10, 60[ep]
+    st.w    sp, 0[r11]
+    Lea     _shutdown_hook_savedsp, r2
+    ld.h    0[r2], r2
+    sst.w   r2, 72[ep]
+    ;/*
+     ;*  except_nest_cntを保存
+     ;*   シャットダウンフック実行中にフックがネストするたびに+1される
+     ;*   のを戻すため
+     ;*  callevel_statを保存
+     ;*   シャットダウンフック実行中に追加されたcallevelを戻すため
+     ;*/
+    Lea     _except_nest_cnt, r2
+    ld.w    0[r2], r2
+    sst.w   r2, 68[ep]
+    Lea     _callevel_stat, r2
+    ld.h    0[r2], r2
+    sst.w   r2, 64[ep]
+	;/*
+	 ;*  非信頼シャットダウンフックの強制終了のために下記のデータを保存
+     ;*  sp を保存
+     ;*    非信頼シャットダウンフック実行中かどうかを判断する
+     ;*/
+    mov     SHUTDOWN_HOOK, r11
+    cmp     r8, r11
+    bne     call_nontrusted_hook_1      ;/* シャットダウンフックでなければスキップ */
+    Lea     _shutdown_hook_savedsp, ep
+    sst.w   sp, 0[ep]
+call_nontrusted_hook_1:
+    ;/*
+     ;*  PSWをr13に退避
+     ;*  bselを切り替えるため全割込み禁止
+     ;*/
+    stsr    psw, r13
+    LOCK_ALL_INT
+
+    ;/*
+     ;*  システムレジスタのバンク切り替え
+     ;*  MPUの設定用
+     ;*/
+$ifdef __v850e2v3__
+    ori     0x1001, r0, r27
+    ldsr    r27, bsel
+$endif ;/* __v850e2v3__ */
+	;/*
+     ;*  非信頼フックがネストしていない場合は非信頼フック用スタックに切り替える
+	 ;*  前のhook_savedsp == 0の場合は非信頼フックルーチンがネストしていない
+	 ;*/
+    cmp     r0, r10                     ;/* 0 == hook_savedsp ? */
+    bne     call_nontrusted_hook_2
+
+    ;/*
+     ;*  MPUのスタック領域を切替え
+     ;*  非信頼フック用のスタック領域
+     ;*  非信頼フック実行中にはタスクコンテキストに切り替わらないため，
+     ;*  ネストしている場合にはMPUのスタック領域を切り替える必要がない
+     ;*/
+    Lea     __nthkstk, ep
+    sld.w   0[ep], r27      ;/* 先頭番地 */
+    Lea     __nthkstksz, ep
+    sld.w   0[ep], r28      ;/* サイズ */
+    add     r27, r28        ;/* 終端番地 */
+	
+    ;/*
+     ;*  非信頼フック用スタックに切り替える
+     ;*  call_nontrusted_hookは特権モードからのみ呼び出される．
+     ;*  よって，この時点でのspは非信頼フック用スタックでありえない．
+     ;*  ここでは非信頼フックはネストしていないので，スタックの底で初期化
+	 ;*/
+    mov     r28, sp
+
+$ifdef __v850e2v3__
+    ori     0x01, r27, r27  ;/* 有効ビット */
+    ori     0x06, r28, r28  ;/* RWを許可 */
+    ldsr    r27, dpa0l
+    ldsr    r28, dpa0u
+$elseif defined(__v850e3v5__)
+    ldsr    r27, 0, 6                   ;/* MPLA0 */
+    ldsr    r28, 1, 6                   ;/* MPUA0 */
+$endif ;/* __v850e2v3__ */
+
+    br      call_nontrusted_hook_3
+    
+call_nontrusted_hook_2:
+	;/*
+     ;*  非信頼フック用スタックに切り替える
+     ;*  call_nontrusted_hookは特権モードからのみ呼び出される．
+     ;*  よって，この時点でのspは非信頼フック用スタックでありえない．
+     ;*  ここでは非信頼フックがネストしており，非信頼フックから特権モード
+     ;*  に移行し，その中で非信頼フックが呼ばれた場合である．
+     ;*  非信頼フックから特権モードに切り替わるのは，trap命令発行時
+     ;*  （システムサービス呼出し），または，例外や割込み発生時である．
+     ;*  上記の特権モード切替時に非信頼フック実行中である場合には，
+     ;*  スタックを切り替えるときに，*(hook_savedsp-4)にspを保存することとする
+     ;*  hook_savedspはcall_nontrusted_hookでのみ変化し，
+     ;*  非信頼フック実行中には（タスクコンテキストに切り替わらないため）
+     ;*  hook_savedspがシステムスタックポインタとなるため，hook_savedspから
+     ;*  spの続きを求めることができる
+     ;*  非信頼フック用spを退避する専用の変数を設ける方法も考えられるが，
+     ;*  割込みや例外のエントリ部分が複雑となるため，本実装では使用しない
+	 ;*/
+    addi    -4, r10, r10
+    ld.w    0[r10], sp 
+
+call_nontrusted_hook_3:
+   	;/*
+	 ;*  実行ドメインと保護ドメイン(MPUの設定)が同じならば，
+     ;*  ドメイン毎のコード領域・データ領域をMPUに設定し直す必要はない
+     ;*/
+    Lea     _p_runosap, ep      ;/* ep = &p_runosap */	
+    sld.w   0[ep], r26          ;/* r26 = p_runosap */
+    Lea     _p_ctxosap, ep      ;/* ep = &p_ctxosap */	
+    sld.w   0[ep], r27          ;/* r27 = p_ctxosap */
+	cmp     r27, r26            ;/* p_ctxosap == p_runosap ? */
+	be      call_nontrusted_hook_4  ;/* 同じならcall_nontrusted_hook_4へ */
+    nop
+	sst.w   r26, 0[ep]          ;/* p_ctxosap = p_runosap : 保護ドメインを切替え */
+$ifdef __v850e2v3__
+    ldsr    r26, vmtid          ;/* メモリ保護違反タスク識別子をp_runosapとする */
+    ld.w    OSAPCB_p_osapinib[r26], ep  ;/* ep = p_osapinib */
+
+    ;/*
+     ;*  自保護ドメイン専用のrom領域
+     ;*/
+    sld.w   OSAPINIB_start_text[ep], r27  ;/* 先頭番地 */
+    sld.w   OSAPINIB_limit_text[ep], r28  ;/* 保護属性とサイズ */
+    ldsr    r27, ipa0l
+    ldsr    r28, ipa0u
+    ;/*
+     ;*  自保護ドメイン専用のrosdata領域
+     ;*/
+    sld.w   OSAPINIB_start_rosdata[ep], r27  ;/* 先頭番地 */
+    sld.w   OSAPINIB_limit_rosdata[ep], r28  ;/* 保護属性とサイズ */
+    ldsr    r27, ipa1l
+    ldsr    r28, ipa1u
+    ;/* 
+     ;* 自保護ドメイン専用のRWX領域
+     ;*/
+    sld.w   OSAPINIB_start_ram[ep], r27  ;/* 先頭番地 */
+    sld.w   OSAPINIB_limit_ram[ep], r28  ;/* 保護属性とサイズ */
+    ldsr    r27, dpa1l
+    ldsr    r28, dpa1u
+    ;/* 
+     ;* 自保護ドメイン専用のRWX領域(sdata)
+     ;*/
+    sld.w   OSAPINIB_start_sram[ep], r27  ;/* 先頭番地 */
+    sld.w   OSAPINIB_limit_sram[ep], r28  ;/* 保護属性とサイズ */
+    ldsr    r27, dpa2l
+    ldsr    r28, dpa2u
+    ;/*
+     ;* 共有リード/専用ライト領域の専用領域
+     ;*/
+    sld.w   OSAPINIB_start_srpw[ep], r27  ;/* 先頭番地 */
+    sld.w   OSAPINIB_limit_srpw[ep], r28  ;/* 保護属性とサイズ */
+    ldsr    r27, dpa3l
+    ldsr    r28, dpa3u
+     ;/*
+     ;* 共有リード/専用ライト領域の専用領域(sdata)
+     ;*/
+    sld.w   OSAPINIB_start_ssrpw[ep], r27  ;/* 先頭番地 */
+    sld.w   OSAPINIB_limit_ssrpw[ep], r28  ;/* 保護属性とサイズ */
+    ldsr    r27, dpa4l
+    ldsr    r28, dpa4u
+$elseif defined(__v850e3v5__)
+    ld.w    OSAPCB_p_osapinib[r26], ep  ;/* ep = p_osapinib */
+
+    ;/*
+     ;* 共有リード/専用ライト領域の専用領域
+     ;*/
+    sld.w   OSAPINIB_start_srpw[ep], r27  ;/* 先頭番地 */
+    sld.w   OSAPINIB_limit_srpw[ep], r28  ;/* 保護属性とサイズ */
+    ldsr    r27, 4, 6                     ;/* MPLA1 */
+    ldsr    r28, 5, 6                     ;/* MPUA1 */
+
+    ;/*
+     ;* 共有リード/専用ライト領域の専用領域(sdata)
+     ;*/
+    sld.w   OSAPINIB_start_ssrpw[ep], r27  ;/* 先頭番地 */
+    sld.w   OSAPINIB_limit_ssrpw[ep], r28  ;/* 保護属性とサイズ */
+    ldsr    r27, 8, 6                      ;/* MPLA2 */
+    ldsr    r28, 9, 6                      ;/* MPUA2 */
+
+    sld.w   OSAPINIB_mprc[ep], r27  ;/* MPRC */
+    ldsr    r27, 1, 5
+$endif ;/* __v850e2v3__ */
+
+
+call_nontrusted_hook_4:
+$ifdef __v850e2v3__
+    ldsr    r0, bsel    ;/* bselを戻す */
+$endif ;/* __v850e2v3__ */
+    
+    ;/*
+     ;*  非信頼フックのアドレスを準備
+     ;*  非信頼フックからの戻り番地をexit_nontrusted_hook_trapに指定
+     ;*/
+    ldsr    r6, eipc
+    Lea     _exit_nontrusted_hook_trap, lp
+
+    ;/*
+     ;*  非信頼フックの引数を準備
+     ;*/
+    mov     r7, r6      ;/* エラーコード */
+
+    ;/* 
+     ;* 保護機能有効（非信頼へ）
+     ;* 割込み禁止/許可を戻す
+     ;* PP,NPV,DMP,IMP = 1, ID = PSW.ID
+     ;*/
+$ifdef __v850e2v3__
+    movhi   0x000f, r0, r14                  
+$elseif defined(__v850e3v5__)
+    movhi   0x4000, r0, r14                  
+$endif ;/* __v850e2v3__ */
+    or      r14, r13            ;/* psw |= (PP|NPV|DMP|IMP) */
+	ldsr    r13, eipsw          ;/* eipsw = psw */
+    eiret
+    nop
+
+    .extern _exit_nontrusted_hook
+_exit_nontrusted_hook:
+    Lea     _hook_savedsp, ep
+    sld.w   0[ep], sp 
+    ld.h    64[sp], r2
+    Lea     _callevel_stat, r10
+    st.h    r2, 0[r10]
+    ld.w    68[sp], r2
+    Lea     _except_nest_cnt, r10
+    st.w    r2, 0[r10]    
+    ;/*
+     ;*  元のPSW.IDをr10に保存
+     ;*/
+    stsr    eipsw, r10
+    andi    0x20, r10, r10
+    br      call_nontrusted_hook_r_1
+
+	;/*
+	 ;*  スタックチェック関数
+	 ;*   入力 r6  使用するスタック量
+	 ;*   使用するスタック量が残っていない場合はエラー
+	 ;*/
+    .extern _trustedfunc_stack_check
+_trustedfunc_stack_check:
+    Lea     _callevel_stat, ep
+    sld.h   0[ep], r10
+    addi    TCL_ISR2, r0, r11     
+    tst     r11, r10
+    be      trustedfunc_stack_check_1       ;/* TCL_TASKの場合はスキップ */
+
+    ;/*
+     ;*  _ostkを使用中
+     ;*/
+    Lea     __ostk, ep
+    sld.w   0[ep], r11
+    br      trustedfunc_stack_check_2
+
+trustedfunc_stack_check_1:
+    ;/*
+     ;*  タスクのシステムスタックを使用中
+     ;*/
+    Lea     _p_runtsk, ep
+    sld.w   0[ep], ep
+    sld.w   TCB_p_tinib[ep], ep
+    sld.w   TINIB_sstk_bottom[ep], r11
+    sld.w   TINIB_sstksz[ep], r12
+    sub     r12, r11
+trustedfunc_stack_check_2:
+    ;/*
+     ;*  スタックの残量をチェック
+     ;*  r11 = スタックの先頭
+     ;*/
+    subr    sp, r6                      ;/* r6 = ssp - tf_stksz */
+    bl      trustedfunc_stack_check_3   ;/* ssp < tfstksz ならばエラー処理へ */
+    cmp     r11, r6                     ;/* r11 < r6 ？ */
+    bnh      trustedfunc_stack_check_3   ;/* そうでなければエラー処理へ */
+    addi    E_OK, r0, r10
+    jmp     [lp]
+
+trustedfunc_stack_check_3:
+    addi    E_OS_STACKINSUFFICIENT, r0, r10
+    jmp     [lp]
+
+    ;/*
+     ;*  非信頼フックからのリターン
+     ;*  syscallで呼ばれる
+     ;*/
+    .extern _call_nontrusted_hook_trap_ret
+_call_nontrusted_hook_trap_ret:
+    ;/*
+     ;*  sp を hook_savedspから復帰
+     ;*/
+    Lea     _hook_savedsp, ep
+    sld.w    0[ep], sp
+    ;/*
+     ;*  syscall前のPSW.IDをr10に保存
+     ;*/
+    stsr    eipsw, r10
+    andi    0x20, r10, r10
+
+call_nontrusted_hook_r_1:
+	;/*
+	 ;*  hook_savedspを退避していた値に戻す
+	 ;*  shutdown_hook_savedspを退避していた値に戻す
+	 ;*/
+    ld.w    72[sp], r2
+    sst.w   r2, 0[ep]
+    ld.w    60[sp], r20
+    Lea     _shutdown_hook_savedsp, ep
+    sst.w   r20, 0[ep]
+
+	;/*
+	 ;*  ネストの場合(hook_savedsp != 0)はここでリターン
+	 ;*  フック実行中はタスクが切り替わらないためMPU設定を復帰しない
+	 ;*/
+    cmp     r0, r20         ;/* hook_savedsp == NULL ? */
+    bne     call_nontrusted_hook_r_2
+    Lea     _p_runtsk, ep
+    sld.w   0[ep], ep
+    cmp     r0, ep          ;/* p_runtsk != NULL ? */
+    be      call_nontrusted_hook_r_2
+    sld.w   TCB_p_tinib[ep], ep
+
+    ;/*
+     ;*  bselを変更するため全割込み禁止
+     ;*/
+    LOCK_ALL_INT
+
+    ;/*
+     ;*  システムレジスタのバンク切り替え
+     ;*  MPUの設定用
+     ;*/
+$ifdef __v850e2v3__
+    ori     0x1001, r0, r27
+    ldsr    r27, bsel
+    ;/*
+     ;*  ユーザスタック領域
+     ;*/
+    sld.w   TINIB_start_ustk[ep], r27   ;/* 先頭番地 */
+    ori     0x01, r27, r27
+    sld.w   TINIB_limit_ustk[ep], r28   ;/* 保護属性とサイズ */
+    ori     0x06, r28, r28
+    ldsr    r27, dpa0l
+    ldsr    r28, dpa0u
+
+    ldsr    r0, bsel    ;/* bselを戻す */
+$elseif defined(__v850e3v5__)
+    ;/*
+     ;*  ユーザスタック領域
+     ;*/
+    sld.w   TINIB_start_ustk[ep], r27   ;/* 先頭番地 */
+    sld.w   TINIB_limit_ustk[ep], r28   ;/* 保護属性とサイズ */
+    ldsr    r27, 0, 6                   ;/* MPLA0 */
+    ldsr    r28, 1, 6                   ;/* MPUA0 */
+$endif ;/* __v850e2v3__ */
+
+$if 0
+    UNLOCK_ALL_INT
+$else
+    ;/*
+     ;*  PSW.IDを戻す
+     ;*/
+    mov     0x20, r11
+    tst     r10, r11
+    bnz     call_nontrusted_hook_r_2
+
+    UNLOCK_ALL_INT
+$endif ;/* 0 */
+
+call_nontrusted_hook_r_2:
+	mov     sp,  ep
+	sld.w   56[ep], r2
+	sld.w   52[ep], r10
+	sld.w   48[ep], r11
+	sld.w   44[ep], r20
+	sld.w   40[ep], r21
+	sld.w   36[ep], r22
+	sld.w   32[ep], r23
+	sld.w   28[ep], r24
+	sld.w   24[ep], r25
+	sld.w   20[ep], r26
+	sld.w   16[ep], r27
+	sld.w   12[ep], r28
+	sld.w    8[ep], r29
+	sld.w    4[ep], r31
+	sld.w    0[ep], ep
+	addi    76, sp, sp
+    jmp     [lp]
+
+    ;/*
+     ;* (6-22-2) void cancel_nontrusted_hook(void)
+     ;* cancel_nontrusted_hookはタスク強制終了時に，ターゲット非依存部から呼び出される．
+     ;* 非信頼フック実行中に非信頼フックスタック領域のMPU設定を無効化する．
+     ;*/
+    .extern _cancel_nontrusted_hook
+_cancel_nontrusted_hook:
+    ;/*
+     ;*  PSW.IDをr10に保存
+     ;*/
+    stsr    psw, r10
+    andi    0x20, r10, r10
+
+    Lea     _hook_savedsp, r11
+    ld.w    0[r11], r12
+	;/*
+	 ;*  ネストの場合(hook_savedsp == 0)はここでリターン
+	 ;*/
+    cmp     r0, r12         ;/* hook_savedsp == NULL ? */
+    be      cancel_nontrusted_hook_r
+    ;/*
+     ;*  hook_savedsp = 0
+     ;*/
+    st.w    r0, 0[r11]
+
+    ;/*
+     ;*  bselを変更するため全割込み禁止
+     ;*/
+    LOCK_ALL_INT
+
+$ifdef __v850e2v3__
+    ;/*
+     ;*  システムレジスタのバンク切り替え
+     ;*  MPUの設定用
+     ;*/
+    ori     0x1001, r0, r11
+    ldsr    r11, bsel
+    ;/*
+     ;*  ユーザスタック領域をNULLに設定
+     ;*/
+    ldsr    r0, dpa0l
+    ldsr    r0, dpa0u
+
+    ldsr    r0, bsel    ;/* bselを戻す */
+$elseif defined(__v850e3v5__)
+    ;/*
+     ;*  ユーザスタック領域
+     ;*/
+    ldsr    r0, 0, 6                   ;/* MPLA0 */
+    ldsr    r0, 1, 6                   ;/* MPUA0 */
+$endif ;/* __v850e2v3__ */
+
+    ;/*
+     ;*  PSW.IDを戻す
+     ;*/
+    mov     0x20, r11
+    tst     r10, r11
+    bnz     cancel_nontrusted_hook_r
+
+    UNLOCK_ALL_INT
+
+cancel_nontrusted_hook_r:
+    jmp     [lp]
+
+    shared.text .cseg text
+    .public  _exit_nontrusted_hook_trap
+_exit_nontrusted_hook_trap:
+    syscall NO_HOOK_RET
+    nop
+    ;/* =end modified for SC3 */
Index: /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_svc.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_svc.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_svc.h	(revision 117)
@@ -0,0 +1,91 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *	
+ *  Copyright (C) 2014-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *	Copyright (C) 2013 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プロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *	に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *	アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *	の責任を負わない．
+ *	
+ */
+
+
+#ifndef TOPPERS_PRC_SVC_H
+#define TOPPERS_PRC_SVC_H
+
+#ifndef TOPPERS_MACRO_ONLY
+
+typedef sint32 FunctionCodeType;                  /* 機能コードの型 */
+
+extern int cal_svc_0m(int fncd);
+extern int cal_svc_1m(int par1, int fncd);
+extern int cal_svc_2m(int par1, int par2, int fncd);
+extern int cal_svc_3m(int par1, int par2, int par3, int fncd);
+
+extern void cal_svc_0n(int fncd);
+extern void cal_svc_1n(int par1, int fncd);
+extern void cal_svc_2n(int par1, int par2, int fncd);
+extern void cal_svc_3n(int par1, int par2, int par3, int fncd);
+
+#define CAL_SVC_0M(TYPE, FNCD) cal_svc_0m((int)((FunctionCodeType)FNCD))
+
+#define CAL_SVC_1M(TYPE, FNCD, TYPE1, PAR1) \
+cal_svc_1m((int)((TYPE1)PAR1), (int)((FunctionCodeType)FNCD))
+
+#define CAL_SVC_2M(TYPE, FNCD, TYPE1, PAR1, TYPE2, PAR2) \
+cal_svc_2m((int)((TYPE1)PAR1), (int)((TYPE2)PAR2), (int)((FunctionCodeType)FNCD))
+
+#define CAL_SVC_3M(TYPE, FNCD, TYPE1, PAR1, \
+							TYPE2, PAR2, TYPE3, PAR3) \
+cal_svc_3m((int)((TYPE1)PAR1), (int)((TYPE2)PAR2), (int)((TYPE3)PAR3), (int)((FunctionCodeType)FNCD))
+
+#define CAL_SVC_0N(TYPE, FNCD) cal_svc_0n((int)((FunctionCodeType)FNCD))
+
+#define CAL_SVC_1N(TYPE, FNCD, TYPE1, PAR1) \
+cal_svc_1n((int)((TYPE1)PAR1), (int)((FunctionCodeType)FNCD))
+
+#define CAL_SVC_2N(TYPE, FNCD, TYPE1, PAR1, TYPE2, PAR2) \
+cal_svc_2n((int)((TYPE1)PAR1), (int)((TYPE2)PAR2), (int)((FunctionCodeType)FNCD))
+
+#define CAL_SVC_3N(TYPE, FNCD, TYPE1, PAR1, \
+							TYPE2, PAR2, TYPE3, PAR3) \
+cal_svc_3n((int)((TYPE1)PAR1), (int)((TYPE2)PAR2), (int)((TYPE3)PAR3), (int)((FunctionCodeType)FNCD))
+
+#ifndef TOPPERS_SVC_CALL
+#include "ccrh/tool_svc.h"
+#endif /* TOPPERS_SVC_CALL */
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_TARGET_SVC_H */
+
Index: /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_tool.c
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_tool.c	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_tool.c	(revision 117)
@@ -0,0 +1,62 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: prc_tool.c 182 2015-06-24 07:14:37Z t_ishikawa $
+ */
+
+/*
+ *		ツール依存モジュール（V850用）
+ */
+#include "kernel_impl.h"
+#include <prc_tool.h>
+
+/* 
+ * kernel/osctl.c:
+ * 共有リード専有ライト
+ */
+#pragma section kernel.srpw
+OSServiceIdType _errorhook_svcid;
+_ErrorHook_Par errorhook_par1;
+_ErrorHook_Par errorhook_par2;
+_ErrorHook_Par errorhook_par3;
+#pragma section default
+
Index: /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_tool.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_tool.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_tool.h	(revision 117)
@@ -0,0 +1,80 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: prc_tool.h 182 2015-06-24 07:14:37Z t_ishikawa $
+ */
+
+/*
+ *		ツール依存モジュール（V850用）
+ */
+#ifndef TOPPERS_PRC_TOOL_H
+#define TOPPERS_PRC_TOOL_H
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ * CFGの pass 1 で STACK_MAGIC_NUMBER を取得するために定義
+ */
+#ifdef TOPPERS_CFG1_OUT
+#define CFG_USE_STACKMONITORING
+#endif /* TOPPERS_CFG1_OUT */
+
+/*
+ *  関数のアライン単位
+ *  CXでは2バイト境界にも配置する．
+ */
+#define CHECK_FUNC_ALIGN	2
+
+/*
+ *  メモリ再読込が必要なことをコンパイラに伝えるためのダミー関数（prs_support.asm）
+ *  CX にはGNUのAsm("":::memory);相当がないため空の関数を呼び出す．
+ */
+extern void v850_memory_changed(void);
+
+/*
+ *  メモリの再読み込みが必要なことをコンパイラに伝える
+ */
+#define V850_MEMORY_CHANGED	v850_memory_changed();
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_PRC_TOOL_H */
Index: /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_tool_asm.asm
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_tool_asm.asm	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_tool_asm.asm	(revision 117)
@@ -0,0 +1,198 @@
+;/*
+ ;*  TOPPERS ATK2
+ ;*      Toyohashi Open Platform for Embedded Real-Time Systems
+ ;*      Automotive Kernel Version 2
+ ;*
+ ;*  Copyright (C) 2015 by Center for Embedded Computing Systems
+ ;*              Graduate School of Information Science, Nagoya Univ., JAPAN
+ ;* 
+ ;*  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ ;*  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ ;*  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ ;*  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ ;*      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ ;*      スコード中に含まれていること．
+ ;*  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ ;*      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ ;*      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ ;*      の無保証規定を掲載すること．
+ ;*  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ ;*      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ ;*      と．
+ ;*    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ ;*        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ ;*    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ ;*        報告すること．
+ ;*  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ ;*      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ ;*      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ ;*      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ ;*      免責すること．
+ ;*
+ ;*  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ ;*  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ ;*  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ ;*  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ ;*  の責任を負わない．  
+ ;*
+ ;*  $Id: prc_tool_asm.asm 180 2015-06-12 04:46:49Z t_ishikawa $  
+ ;*/
+
+;/*
+ ;*  V850用cal_svc実装
+ ;*  GHSにおけるインラインアセンブラでは，破壊レジスタの指定が
+ ;*  保証されないため，直接アセンブリで記述する
+ ;*/
+$include (v850asm.inc)
+$include (offset.h)
+
+$ifdef USE_ASMCONFIG_INC
+$include (asm_config.inc)
+$endif ;/* USE_ASMCONFIG_INC */
+
+    .section "kernel.text", text
+    .align 4
+;/*
+ ;*  メモリ再読込が必要なことをコンパイラに伝えるためのダミー関数
+ ;*/
+    .public _v850_memory_changed
+    ;/* 
+     ;*  void v850_memory_changed(void)
+     ;*/
+_v850_memory_changed:
+    jmp [lp]
+    nop
+
+    .public _v850_sync_memory
+    ;/* 
+     ;*  void v850_sync_memory(void)
+     ;*/
+_v850_sync_memory:
+    syncm
+    jmp [lp]
+    nop
+
+;/*
+ ;*  サービスコールの出入口
+ ;*    r10 : 返り値
+ ;*    r11：関数コード
+ ;*    r6 - r9 : 引数（4つまで）
+ ;*    スクラッチレジスタ保存（関数呼出しによりここでは保存済み）
+ ;*    lp保存
+ ;*    ep保存(RH850ではcallee saved)
+ ;*/
+    .section "shared.text", text
+    .align 4
+    .public _cal_svc_0m
+    ;/* 
+     ;* extern int cal_svc_0m(int fncd)
+     ;*   __attribute__((section("text_shared")));
+     ;*/
+_cal_svc_0m:
+    mov r6, r11
+    pushsp ep,lp
+    syscall 1
+    nop
+    popsp ep,lp
+    jmp [lp]
+    nop
+
+    .public _cal_svc_1m
+    ;/* 
+     ;* extern int cal_svc_1m(int par1, int fncd)
+     ;*   __attribute__((section("text_shared")));
+     ;*/
+_cal_svc_1m:
+    mov r7, r11
+    pushsp ep, lp
+    syscall 1
+    nop
+    popsp ep, lp
+    jmp [lp]
+    nop
+
+    .public _cal_svc_2m
+    ;/* 
+     ;* extern int cal_svc_2m(int par1, int par2, int fncd)
+     ;*   __attribute__((section("text_shared")));
+     ;*/
+_cal_svc_2m:
+    mov r8, r11
+    pushsp ep, lp
+    syscall 1
+    nop
+    popsp ep, lp
+    jmp [lp]
+    nop
+
+    .public _cal_svc_3m
+    ;/* 
+     ;* extern int cal_svc_3m(int par1, int par2, int par3, int fncd)
+     ;*   __attribute__((section("text_shared")));
+     ;*/
+_cal_svc_3m:
+    mov r9, r11
+    pushsp ep, lp
+    syscall 1
+    nop
+    popsp ep, lp
+    jmp [lp]
+    nop
+
+    .public _cal_svc_0n
+    ;/* 
+     ;* extern void cal_svc_0n(int fncd)
+     ;*   __attribute__((section("text_shared")));
+     ;*/
+_cal_svc_0n:
+    mov r6, r11
+    pushsp ep, lp
+    syscall 1
+    nop
+    popsp ep, lp
+    jmp [lp]
+    nop
+
+    .public _cal_svc_1n
+    ;/* 
+     ;* extern void cal_svc_1n(int par1, int fncd)
+     ;*   __attribute__((section("text_shared")));
+     ;*/
+_cal_svc_1n:
+    mov r7, r11
+    pushsp ep, lp
+    syscall 1
+    nop
+    popsp ep, lp
+    jmp [lp]
+    nop
+
+    .public _cal_svc_2n
+    ;/* 
+     ;* extern void cal_svc_2n(int par1, int par2, int fncd)
+     ;*   __attribute__((section("text_shared")));
+     ;*/
+_cal_svc_2n:
+    mov r8, r11
+    pushsp ep, lp
+    syscall 1
+    nop
+    popsp ep, lp
+    jmp [lp]
+    nop
+
+    .public _cal_svc_3n
+    ;/* 
+     ;* extern void cal_svc_3n(int par1, int par2, int par3, int fncd)
+     ;*   __attribute__((section("text_shared")));
+     ;*/
+_cal_svc_3n:
+    mov r9, r11
+    pushsp ep, lp
+    syscall 1
+    nop
+    popsp ep, lp
+    jmp [lp]
+    nop
+
+
Index: /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_user.txt
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_user.txt	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ccrh/prc_user.txt	(revision 117)
@@ -0,0 +1,147 @@
+
+		TOPPERS/ATK2-SC3
+        ＜RH850プロセッサ依存部マニュアル(CCRH版)＞
+
+このドキュメントはRH850プロセッサ依存部のCCRH版の情報を記述したものである．
+
+----------------------------------------------------------------------
+TOPPERS ATK2
+    Toyohashi Open Platform for Embedded Real-Time Systems
+    Automotive Kernel Version 2
+
+Copyright (C) 2014-2015 by Center for Embedded Computing Systems
+            Graduate School of Information Science, Nagoya Univ., JAPAN
+
+上記著作権者は，以下の (1)〜(3)の条件を満たす場合に限り，本ドキュメ
+ント（本ドキュメントを改変したものを含む．以下同じ）を使用・複製・改
+変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+(1) 本ドキュメントを利用する場合には，上記の著作権表示，この利用条件
+    および下記の無保証規定が，そのままの形でドキュメント中に含まれて
+    いること．
+(2) 本ドキュメントを改変する場合には，ドキュメントを改変した旨の記述
+    を，改変後のドキュメント中に含めること．ただし，改変後のドキュメ
+    ントが，TOPPERSプロジェクト指定の開発成果物である場合には，この限
+    りではない．
+(3) 本ドキュメントの利用により直接的または間接的に生じるいかなる損害
+    からも，上記著作権者およびTOPPERSプロジェクトを免責すること．また，
+    本ドキュメントのユーザまたはエンドユーザからのいかなる理由に基づ
+    く請求からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+
+本ドキュメントは，AUTOSAR（AUTomotive Open System ARchitecture）仕様
+に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するものではな
+い．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利用する
+者に対して，AUTOSARパートナーになることを求めている．
+
+本ドキュメントは，無保証で提供されているものである．上記著作権者およ
+びTOPPERSプロジェクトは，本ドキュメントに関して，特定の使用目的に対す
+る適合性も含めて，いかなる保証も行わない．また，本ドキュメントの利用
+により直接的または間接的に生じたいかなる損害に関しても，その責任を負
+わない．
+
+$Id: prc_user.txt 182 2015-06-24 07:14:37Z t_ishikawa $
+----------------------------------------------------------------------
+
+○概要
+
+RH850プロセッサ依存部（以下，RH850依存部）は，ルネサスエレクトロニクス
+のRH850(V850E3v5)を用いたLSIをサポートしている．
+
+現状サポートしているLSIは，次の通りである．RH850プロセッサ依存部では，
+プロセッサと割り込みコントローラのみを使用するため，他のG3M/G3Kコアを
+用いたLSIへのポーティングは容易である．
+
+ ・RH850/F1L
+ ・RH850/F1H 
+
+
+○開発環境
+
+カーネルのコンパイルは，CS+ 付属の CCRH を用いている．動作確認を行なっ
+たバージョンは，以下のものである．
+
+ ・CCRH V1.01.00
+
+デバッガは，CS+を使用して動作確認をしている．動作確認をしたバージョン
+は次の通りである．
+
+ ・V3.00.00
+ 
+ビルドのためのプロジェクトは，CubeSuite+に含まれているPytonスクリプト
+によって作成する．詳細に関しては，以下のファイルを参照のこと．
+
+ ./ccrh/configure/README.txt
+
+
+○周辺回路
+
+ATK2のSC1カーネルのサンプルを動作させるためには，周辺回路として，UART
+とタイマが必要となる．RH850依存部では，UARTとしては，RLIN3xを，タイマ
+としては，タイマアレイユニット（TAUJn）をサポートしている．使用するチ
+ャネルはターゲット毎に異なる．
+
+
+○割込み優先度
+
+CFG_INTに指定可能な割込み優先度としては，以下の値を設定可能である．
+
+G3M : -1 〜 -15 
+G3K : -1 〜 -7
+
+
+○割込み属性
+
+CFG_INTでサポートしている割込み属性はない．
+
+○未登録の割込み
+
+未登録の割込みが発生した場合は，prc_config.c で定義されている，
+default_int_handler() を呼び出す．default_int_handler() は，発生した割
+り込みの割込み番号をコンソールに出力した後，target_exit() を呼び出す．
+
+○C1ISRの扱い
+
+・C1ISRにはユーザによって以下の処理が記述されるべきである．
+    ・C1ISRで使用するレジスタの内容を退避
+    ・C1ISRが実行中であることを判別するための情報を保存する
+        ・現在の実装ではiipm
+    ・退避したレジスタの復帰
+    ・eret命令でC1ISRを終了する
+
+                
+○CPU例外要因情報取得
+
+・CPU例外発生した場合，ユーザは，プロテクションからCPU例外情報を取得で
+  き，取得できるのは，CPU例外発生時の以下の情報がある．
+    ・CPU例外要因番号(変数：v850_cpu_exp_no)
+    ・プログラムカウンタ(変数：v850_cpu_exp_pc)
+    ・スタックポインタ(変数：v850_cpu_exp_sp)
+        ・更に，CPU例外発生時に各レジスタはスタックに保存しているので，
+          v850_cpu_exp_spを使って保存してあるレジスタの値を取得するこ
+          とができる．保存してあるレジスタとアドレスの情報はアセンブリ
+          コードを参照する．
+                    
+・しかし，プロテクションフック無効の場合，上記のCPU例外要因保持用変数が
+  定義されないため，使用しないでください(使用した場合，コンパイルエラー
+  となる)．
+
+
+○制限事項
+
+ep相対でアクセスするtinyデータセクションはサポートしない．
+    
+
+○GCC版との関係
+
+RH版は，C言語のファイルは，基本的にはGCC版のものを用いている．
+prc_support.asmにに関しては，論理的には同じだが記法が異なるため，ツー
+ルによりGCC版のprc_support.Sを変換する．変換のためのスクリプトが，
+../ccrh/gcc2ccrh.rb にある．使用方法は次の通りである．
+
+../ccrh/gcc2ccrh.rb xxx.S
+
+    
+○変更履歴
+2015/06/26
+・SC3対応
+  
+以上．
Index: /atk2-sc3_fl850f1l/arch/v850_ccrh/start.asm
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ccrh/start.asm	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ccrh/start.asm	(revision 117)
@@ -0,0 +1,297 @@
+;/*
+ ;*  TOPPERS ATK2
+ ;*      Toyohashi Open Platform for Embedded Real-Time Systems
+ ;*      Automotive Kernel Version 2
+ ;*
+ ;*  Copyright (C) 2012-2015 by Center for Embedded Computing Systems
+ ;*              Graduate School of Information Science, Nagoya Univ., JAPAN
+ ;*  Copyright (C) 2012-2013 by FUJISOFT INCORPORATED, JAPAN
+ ;*  Copyright (C) 2012-2013 by FUJITSU VLSI LIMITED, JAPAN
+ ;*  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ ;*  Copyright (C) 2012-2013 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ ;*  Copyright (C) 2012-2013 by Renesas Electronics Corporation, JAPAN
+ ;*  Copyright (C) 2012-2013 by Sunny Giken Inc., JAPAN
+ ;*  Copyright (C) 2012-2013 by TOSHIBA CORPORATION, JAPAN
+ ;*  Copyright (C) 2012-2013 by Witz Corporation, JAPAN
+ ;*  Copyright (C) 2013 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プロジェクトを
+ ;*      免責すること．
+ ;*
+ ;*  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ ;*  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ ;*  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ ;*  用する者に対して，AUTOSARパートナーになることを求めている．
+ ;*
+ ;*  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ ;*  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ ;*  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ ;*  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ ;*  の責任を負わない．
+ ;*
+ ;*  $Id: start.asm 187 2015-06-25 03:39:04Z t_ishikawa $
+ ;*/
+
+;/*
+ ;*		カーネル対応のスタートアップモジュール（V850用）
+ ;*/
+
+#define OMIT_INCLUDE_OS_CFG		;/* Os_Cfg.hインクルード抑止 */
+
+$include (v850asm.inc)
+
+	# *****************************************************************************
+# CCRH予約シンボルの外部ラベル宣言(gp、ep用)
+# *****************************************************************************
+	.extern __gp_data, 4
+	.extern __ep_data, 4
+
+# *****************************************************************************
+# セクション初期化テーブル
+# *****************************************************************************
+	.section	".INIT_DSEC.const", const
+	.align	4
+	.dw	#__s.data,	#__e.data,	#__s.data.R
+
+	.section	".INIT_BSEC.const", const
+	.align	4
+	.dw	#__s.bss,	#__e.bss
+
+# *****************************************************************************
+# 関数の外部ラベル宣言
+# *****************************************************************************
+    .cseg text
+	.align  2
+	.extern __start
+	.extern __gp_data, 4
+	.extern __ep_data, 4
+    .extern _bsssecinib_table
+    .extern _tnum_bsssec
+    .extern _datasecinib_table
+    .extern _tnum_datasec
+    .extern _syscall_table
+__start:
+	di                                  ;/* 割り込み禁止 */
+
+	;/*
+	 ;* 各種ポインタの初期化(SP/TP/EP/GP/CTBP)
+	 ;*/
+	Lea     __ostkpt, r3
+	ld.w	0[r3],r3
+    ;/* =begin modified for SC3 */
+    ;/*
+     ;* ep, ctbpはとりあえず使用しない
+     ;* tp, gpはsdataアクセスでコンパイラが使用する
+     ;*/
+	mov 	#__gp_data , gp
+	mov 	#__ep_data , ep
+    ;/*
+     ;*  syscallの動作設定
+     ;*/
+$ifdef __v850e2v3__
+    mov     SYSCALL_SIZE, r6
+    ldsr    r6, sccfg
+    Lea     _syscall_table, r6
+    ldsr    r6, scbp
+$elseif defined(__v850e3v5__)
+    mov     SYSCALL_SIZE, r6
+    ldsr    r6, 11, 1
+    Lea     _syscall_table, r6
+    ldsr    r6, 12, 1
+    syncp
+$endif ;/* __v850e2v3__ */
+
+    ;/* =end modified for SC3 */
+
+$ifdef TOPPERS_USE_HFLOAT
+	;/* 
+	 ;*  FPUを有効に
+	 ;*/
+	stsr psw, r12       ;/* load psw */
+	mov  0x00010000,r13 ;/* PSW.CU0(PSW[16]) = 1 */
+	or   r13, r12
+	ldsr r12, psw       ;/* store psw */
+$endif ;/* TOPPERS_USE_HFLOAT */
+ 	
+	;/*
+	 ;*  hardware_init_hook の呼出し（0 でない場合）
+	 ;*
+	 ;*  ターゲットハードウェアに依存して必要な初期化処理がある場合
+	 ;*  は，hardware_init_hook という関数を用意する．
+	 ;*/
+	Lea		_hardware_init_hook, r6
+	cmp		r0, r6
+	be		hardware_init_hook_end
+	jarl	_hardware_init_hook, lp
+hardware_init_hook_end:
+	
+	;/*
+	 ;*  BSSセクション初期化
+     ;*  r0: ゼロレジスタ
+	 ;*/
+    mov     r0, r6                  ;/* r6: テーブルのインデックス i */
+    Lea     _tnum_bsssec, r7
+    ld.w    0[r7], r7               ;/* r7: テーブルの要素数 num */
+    Lea     _bsssecinib_table, r8   ;/* r8: テーブルのアドレス */
+bss_clear_start:
+    cmp     r7, r6                  ;/* ループ終了条件: i >= num */
+    bnl     bss_clear_end
+    ld.w    0[r8], ep               ;/* ep: bssの先頭番地 */
+    ld.w    4[r8], r9               ;/* r9: bssの終了番地 */
+	cmp     r9, ep                  ;/* bssが空か？ */
+	bnl 	bss_clear_start_hook    ;/* 空ならば次のbssへ */
+    nop
+bss_clear_body:
+    ;/*
+     ;*  bssの領域は，4byte境界にアラインされている
+     ;*  よって，4byteずつデータをコピーしている
+     ;*/
+	sst.w   r0, 0[ep]           ;/* bssの領域を0で初期化 */
+	add     4, ep              ;/* 次の番地へ */
+	cmp     r9, ep              ;/* bssの終了番地まで来たか？ */
+	bl      bss_clear_body      ;/* 終了番地でなければループ */
+$ifdef BSSSEC_ALIGN_MASK
+    ;/*
+     ;*  境界になるまで初期化を続ける
+     ;*/
+    mov     BSSSEC_ALIGN_MASK, r10
+bss_clear_body2:
+    tst     r10, ep         ;/* ep & 0xf == 0 ? */
+    bz      bss_clear_start_hook
+	sst.w	r0, 0[ep]       ;/* 0初期化 */
+    add     4, ep
+    jr      bss_clear_body2
+$endif ;/* BSSSEC_ALIGN_MASK */
+    nop
+bss_clear_start_hook:
+    add     8, r8 ;/* テーブルのアドレスをインクリメント 4byte * 2 -> 8 */
+    add     1, r6 ;/* テーブルのインデックスをインクリメント: i++ */
+    br      bss_clear_start
+    nop
+bss_clear_end:
+
+$ifndef OMIT_DATA_INIT
+	;/*
+	 ;*  dataセクションの初期化（ROM化対応）
+	 ;*
+	 ;*/
+    mov     r0, r6                  ;/* r6: テーブルのインデックス i */
+    Lea     _tnum_datasec, r7
+    ld.w    0[r7], r7               ;/* r7: テーブルの要素数 num */
+    Lea     _datasecinib_table, r8  ;/* r8: テーブルのアドレス */
+data_init_start:
+    cmp     r7, r6                  ;/* ループ終了条件: i >= num */
+    bnl     data_init_end
+    ld.w    0[r8], ep               ;/* ep : dataの先頭番地 */
+    ld.w    4[r8], r9               ;/* r9 : dataの終了番地 */
+    ld.w    8[r8], r2               ;/* r2: idataの先頭番地 */
+	cmp     r9, ep                  ;/* dataが空か？ */
+	bnl 	data_init_start_hook    ;/* 空ならば次のdataへ */
+    nop
+data_init_body:
+	ld.b	0[r2], r10      ;/* idataの値をロード */
+	sst.b	r10, 0[ep]      ;/* idataの値をdataのアドレスへストア */
+	add		1, ep           ;/* dataの次の番地へ */
+	add		1, r2           ;/* idataの次の番地へ */
+    cmp     r9, ep          ;/* dataの終了番地まで来たか？ */
+    bl      data_init_body  ;/* 終了番地でなければループ */
+$ifdef DATASEC_ALIGN_MASK
+    ;/*
+     ;*  境界になるまで初期化を続ける
+     ;*/
+    mov     DATASEC_ALIGN_MASK, r10
+data_init_body2:
+    tst     r10, ep         ;/* ep & 0xf == 0 ? */
+    bz      data_init_start_hook
+	sst.b	r0, 0[ep]       ;/* 0初期化 */
+    add     1, ep
+    jr      data_init_body2
+$endif ;/* DATASEC_ALIGN_MASK */
+    nop
+data_init_start_hook:        
+    add     12, r8  ;/* テーブルのアドレスをインクリメント 4byte * 3 -> 12 */
+    add     1, r6   ;/* テーブルのインデックスをインクリメント: i++ */
+	br		data_init_start         
+    nop
+data_init_end:
+$endif ;/* OMIT_DATA_INIT */
+
+	;/*
+	 ;*  software_init_hook を呼出し（0 でない場合）
+	 ;*
+	 ;*  ソフトウェア環境（特にライブラリ）に依存して必要な初期化処
+	 ;*  理がある場合は，software_init_hook という関数を用意すれば
+	 ;*  よい．
+	 ;*/
+
+	Lea		_software_init_hook, r6
+	cmp		r0, r6
+	be		software_init_hook_end
+	jarl	_software_init_hook, r31
+software_init_hook_end:
+
+	;/*
+	 ;*  カーネルを起動する．
+	 ;*/
+	jarl    _target_hardware_initialize, r31
+	jarl    _main, r31
+;-----------------------------------------------------------------------------
+; mainから戻ってきた後の処理
+;-----------------------------------------------------------------------------
+__exit:
+	halt
+__startend:
+
+;-----------------------------------------------------------------------------
+; Insted of PROVIDE
+;-----------------------------------------------------------------------------
+$ifndef OMIT_PRC_HARDWARE_INIT_HOOK
+	.public _hardware_init_hook
+_hardware_init_hook:
+	jmp	[lp]
+$endif ;/* OMIT_PRC_HARDWARE_INIT_HOOK */
+
+$ifndef OMIT_PRC_SOFTWARE_INIT_HOOK
+	.public _software_init_hook
+_software_init_hook:
+	jmp	[lp]
+$endif ;/* OMIT_PRC_SOFTWARE_INIT_HOOK */
+
+;-----------------------------------------------------------------------------
+;	dummy section to avoid linker warning
+;-----------------------------------------------------------------------------
+	.section	".data", data
+.L.dummy.data:
+	.section	".bss", bss
+.L.dummy.bss:
+	.section	".const", const
+.L.dummy.const:
+	.section	".stack.bss", bss
+.L.dummy.stack.bss:
+	.section	"RESET", text
+.L.dummy.RESET:
+	.section	"EIINTTBL", const
+	.align 512
+.L.dummy.EIINTTBL:
+
Index: /atk2-sc3_fl850f1l/arch/v850_ccrh/v850asm.inc
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ccrh/v850asm.inc	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ccrh/v850asm.inc	(revision 117)
@@ -0,0 +1,106 @@
+; 
+;  TOPPERS ATK2
+;      Toyohashi Open Platform for Embedded Real-Time Systems
+;      Automotive Kernel Version 2
+;
+;  Copyright (C) 2012-2015 by Center for Embedded Computing Systems
+;              Graduate School of Information Science, Nagoya Univ., JAPAN
+;
+;  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+;  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+;  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+;  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+;      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+;      スコード中に含まれていること．
+;  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+;      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+;      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+;      の無保証規定を掲載すること．
+;  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+;      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+;      と．
+;    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+;        作権表示，この利用条件および下記の無保証規定を掲載すること．
+;    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+;        報告すること．
+;  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+;      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+;      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+;      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+;      免責すること．
+;
+;  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+;  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+;  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+;  用する者に対して，AUTOSARパートナーになることを求めている．
+;
+;  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+;  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+;  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+;  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+;  の責任を負わない．
+;
+;  $Id: v850asm.inc 182 2015-06-24 07:14:37Z t_ishikawa $
+;
+
+;
+;  V850アセンブラ用定義ファイル
+;
+
+__ccrh__      .set    1
+__v850e3v5__  .set    1
+USE_ASMCONFIG_INC .set 1
+PSW_SV        .set    2
+NO_SVC        .set    1
+NO_HOOK_RET   .set    2
+SHUTDOWN_HOOK .set    1
+TMAX_SVCID    .set    63
+FE_MP_MASK    .set    0x9e
+FE_MP_BIT     .set    0x90
+TFN_EXIT_TASK .set    61	;/*(TMAX_SVCID - TARGET_SVC_NUM) */
+PEOB_STACKMONITORING_INTERRUPT  .set 0x80
+PEOB_STACKMONITORING_DISPATCH   .set 0x40
+PEOB_STACKMONITORING_TERMTASK   .set 0x20
+E_OS_PROTECTION_MEMORY .set 14
+E_OS_STACKINSUFFICIENT .set 28
+E_OK          .set    0
+TRUE          .set    1
+SYSCALL_SIZE  .set    2
+
+;/*****************************************************************************/
+;/* システムレジスタ番号の定義												  */
+;/*****************************************************************************/
+	eipc	.set	0
+	eipsw	.set	1
+	fepc	.set	2
+	fepsw	.set	3
+	ecr		.set	4
+	psw		.set	5
+	sccfg	.set	11
+	scbp	.set	12
+	eiic	.set	13
+	feic	.set	14
+	eiwr	.set	28
+	fewr	.set	29
+
+;/*
+; * ラベルロード Lea (Load Effective Address)
+; */
+Lea .macro name, destination
+;	ld.w $name, destination
+	mov32	#name, destination
+.endm
+
+;/*
+; *  全割込み禁止マクロ
+; */
+LOCK_ALL_INT .macro 
+    di
+.endm
+
+;/*
+; *  全割込み禁止解除マクロ
+; */
+UNLOCK_ALL_INT .macro 
+    ei
+.endm
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/MANIFEST
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/MANIFEST	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/MANIFEST	(revision 117)
@@ -0,0 +1,58 @@
+PACKAGE atk2-sc3
+
+conv2cs+.rb
+MANIFEST
+Makefile.prc
+Platform_Types.h
+SmpC1ISR.S
+ldscript.tf
+ostm.arxml
+ostm.c
+ostm.h
+ostm.yaml
+prc.tf
+prc_cfg1_out.h
+prc_common.tf
+prc_config.c
+prc_config.h
+prc_def.csv
+prc_design.txt
+prc_insn.h
+prc_kernel.h
+prc_mem.tf
+prc_mpu.c
+prc_mpu.h
+prc_offset.tf
+prc_opt.tf
+prc_sil.h
+prc_support.S
+prc_svc.h
+prc_syslog.h
+prc_user.txt
+rh850_f1h.c
+rh850_f1h.h
+rh850_f1l.c
+rh850_f1l.h
+rh850_f1l_2m.ld
+start.S
+taua_timer.arxml
+taua_timer.c
+taua_timer.h
+taua_timer.yaml
+tauj_hw_counter.c
+uart.arxml
+uart.c
+uart.h
+uart.yaml
+uart_rlin.c
+uart_rlin.h
+v850.h
+v850asm.inc
+v850e2_fg4_1m.ld
+v850e2_fg4_l_384k.ld
+v850e2_fl4_2m.ld
+v850e2_fx4.c
+v850e2_fx4.h
+v850e2_fx4l.h
+v850e2_px4.h
+v850e2_px4_3507.ld
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/Makefile.prc
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/Makefile.prc	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/Makefile.prc	(revision 117)
@@ -0,0 +1,182 @@
+#
+#  TOPPERS ATK2
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+#      Automotive Kernel Version 2
+#
+#  Copyright (C) 2012-2013 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#  Copyright (C) 2012-2013 by FUJISOFT INCORPORATED, JAPAN
+#  Copyright (C) 2012-2013 by FUJITSU VLSI LIMITED, JAPAN
+#  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+#  Copyright (C) 2012-2013 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+#  Copyright (C) 2012-2013 by Renesas Electronics Corporation, JAPAN
+#  Copyright (C) 2012-2013 by Sunny Giken Inc., JAPAN
+#  Copyright (C) 2012-2013 by TOSHIBA CORPORATION, JAPAN
+#  Copyright (C) 2012-2013 by Witz Corporation, JAPAN
+#  Copyright (C) 2013 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プロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+#  $Id: Makefile.prc 187 2015-06-25 03:39:04Z t_ishikawa $
+#
+
+#
+#		Makefile のプロセッサ依存部（V850用）
+#
+
+#
+#  プロセッサ名，開発環境名の定義
+#
+PRC  = v850
+TOOL = gcc
+
+#
+#  プロセッサ依存部ディレクトリ名の定義
+#
+PRCDIR = $(SRCDIR)/arch/$(PRC)_$(TOOL)
+
+#
+#  コンパイルオプション
+#
+INCLUDES := $(INCLUDES) -I$(PRCDIR) -I$(SRCDIR)/arch/$(TOOL)
+COPTS := $(COPTS) -mdisable-callt -mno-app-regs -mtda=0
+LIBS := $(LIBS) -lgcc -lc
+LDFLAGS :=  $(LDFLAGS) -Wl,-S # for CuteSuite+ debugger
+
+#
+#  アーキテクチャの切り替え
+#
+ifeq ($(ARCH),V850E2V3)
+	COPTS := $(COPTS) -mv850e2v3 -D__v850e2v3__ -Wa,-mno-bcond17
+	KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) Os_Lcfg_asm.o
+endif
+ifeq ($(ARCH),V850E3V5)
+	COPTS := $(COPTS) -mv850e3v5
+endif
+ 
+#
+#  コアタイプ(実装)による切り替え
+#
+ifeq ($(CORETYPE),RH850G3K)
+	COPTS := $(COPTS) -msoft-float
+endif
+ifeq ($(CORETYPE),RH850G3M)
+	ifeq ($(USE_HARD_FLOAT),true)
+		COPTS := $(COPTS) -mhard-float -DTOPPERS_USE_HFLOAT
+	else
+		COPTS := $(COPTS) -msoft-float
+	endif
+endif
+
+#
+#  カーネルに関する定義
+#
+KERNEL_DIR := $(KERNEL_DIR) $(PRCDIR)
+KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) prc_support.o
+# =begin modified for SC3
+KERNEL_COBJS := $(KERNEL_COBJS) prc_config.o prc_mpu.o
+# =end modified for SC3
+
+#
+#  スタートアップモジュールに関する定義
+#
+#  リンカスクリプトに「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
+ 
+# =begin modified for SC3
+#
+#  リンクに関する設定
+#
+
+LDFLAGS := -nostdlib $(LDFLAGS)
+LDFLAGS := -nostartfiles -lgcc -lc $(LDFLAGS)
+CFG1_OUT_LDFLAGS := -nostdlib
+CFG1_OUT_LDFLAGS := $(CFG1_OUT_LDFLAGS) $(LDFLAGS)
+CFG2_OUT_LDFLAGS := $(CFG2_OUT_LDFLAGS) $(LDFLAGS)
+CFG3_OUT_LDFLAGS := $(CFG3_OUT_LDFLAGS) $(LDFLAGS)
+
+# メモリ配置決定前の暫定的なリンカスクリプト
+CFG2_OUT_LDSCRIPT = cfg2_out.ld
+# メモリ配置決定時のリンカスクリプト
+CFG3_OUT_LDSCRIPT = cfg3_out.ld
+# 最終的なリンカスクリプト
+LDSCRIPT = ldscript.ld
+ifeq ($(ARCH),V850E2V3)
+	USE_CFG_PASS3 = true
+endif
+
+$(LDSCRIPT): kernel_cfg.timestamp
+$(CFG2_OUT_LDSCRIPT): kernel_cfg.timestamp
+# =end modified for SC3
+
+#
+#  依存関係の定義
+#
+cfg1_out.c: $(PRCDIR)/prc_def.csv
+Os_Lcfg.timestamp: $(PRCDIR)/prc.tf
+# =begin modified for SC3
+$(OBJFILE): $(PRCDIR)/prc_mem.tf
+# =end modified for SC3
+offset.h: $(PRCDIR)/prc_offset.tf
+
+#
+#  ジェネレータ関係の変数の定義
+#
+CFG_TABS := $(CFG_TABS) --cfg1-def-table $(PRCDIR)/prc_def.csv
+
+# =begin added for aktsp
+# vpath %.c $(SRCDIR)/aktsp/library/arch/v850e2/gcc/memory_protection/
+# 
+# KERNEL_COBJS := $(KERNEL_COBJS) t_osap1_share.o t_osap1.o nt_osap1_share.o nt_osap1.o nt_osap2_share.o nt_osap2.o common.o aktsp_target_lib_mem.o
+# =end added for aktsp
+
+
+
+#
+#  CS+用に変換
+#
+cs: $(OBJFILE)
+	v850-elf-objdump.exe -h $(OBJFILE) | $(SRCDIR)/arch/v850_gcc/conv2cs+.rb  $(OBJFILE)
+ 
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/Platform_Types.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/Platform_Types.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/Platform_Types.h	(revision 117)
@@ -0,0 +1,135 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2013 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2013 by FUJISOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by FUJITSU VLSI LIMITED, JAPAN
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2013 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2013 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2013 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2013 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2013 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013 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プロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: Platform_Types.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		AUTOSAR platform types header file
+ */
+
+#ifndef TOPPERS_PLATFORM_TYPES_H
+#define TOPPERS_PLATFORM_TYPES_H
+
+/*
+ *  Symbol definitions - general
+ */
+#define CPU_TYPE_8		UINT_C(8)
+#define CPU_TYPE_16		UINT_C(16)
+#define CPU_TYPE_32		UINT_C(32)
+
+#define MSB_FIRST		UINT_C(0)
+#define LSB_FIRST		UINT_C(1)
+
+#define HIGH_BYTE_FIRST	UINT_C(0)
+#define LOW_BYTE_FIRST	UINT_C(1)
+
+#ifndef TRUE
+#define TRUE			UINT_C(1)
+#endif /* TRUE */
+
+#ifndef FALSE
+#define FALSE			UINT_C(0)
+#endif /* FALSE */
+
+/*
+ *  Symbol definitions - platform
+ */
+#define CPU_TYPE		(CPU_TYPE_32)
+#define CPU_BIT_ORDER	(MSB_FIRST)
+#define CPU_BYTE_ORDER	(LOW_BYTE_FIRST)
+
+/*
+ *  Stack definitions - platform
+ */
+/* =begin modified for SC3 */
+#define DEFINE_VAR_SEC_NOBITS(type, var, sec)	type __attribute__((section(sec))) var
+#define DEFINE_VAR_SSTACK(type, var)			type __attribute__((section(".prsv_kernel"), aligned(4))) var
+#define DEFINE_VAR_USTACK(type, var, sec)		type __attribute__((section(sec), aligned(64))) var
+#define DEFINE_VAR_NTHKSTK(type, var)			type __attribute__((section(".prsv_kernel"), aligned(64))) var
+/* =end modified for SC3 */
+
+/*
+ *  Type definitions
+ */
+#ifndef TOPPERS_MACRO_ONLY
+
+#include <stdint.h>
+
+typedef unsigned char boolean;
+
+typedef char				char8;
+typedef unsigned char		uint8;
+typedef signed char			sint8;
+typedef unsigned short		uint16;
+typedef signed short		sint16;
+typedef unsigned int		uint32;
+typedef signed int			sint32;
+typedef unsigned long long	uint64;
+typedef signed long long	sint64;
+
+typedef unsigned long	uint8_least;
+typedef unsigned long	uint16_least;
+typedef unsigned long	uint32_least;
+typedef signed long		sint8_least;
+typedef signed long		sint16_least;
+typedef signed long		sint32_least;
+
+typedef float	float32;
+typedef double	float64;
+
+typedef uint32	uintptr;                /* ポインタを格納できる符号無し整数 */
+typedef sint32	sintptr;                /* ポインタを格納できる符号付き整数 */
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_PLATFORM_TYPES_H */
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/SmpC1ISR.S
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/SmpC1ISR.S	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/SmpC1ISR.S	(revision 117)
@@ -0,0 +1,162 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2013 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2013 by FUJISOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by FUJITSU VLSI LIMITED, JAPAN
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2013 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2013 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2013 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2013 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2013 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: SmpC1ISR.S 117 2014-12-10 03:58:03Z t_ishikawa $
+ */
+
+#define TOPPERS_MACRO_ONLY
+
+#define UINT_C(val)	(val)
+#define CAST(type, val)	(val)	/* 型キャストを行うマクロ */
+
+#include "v850asm.inc"
+#include "target_test.h"
+#include "kernel/kernel_impl.h"
+#include "target_timer.h"
+#include "v850.h"
+
+.global C1ISRMainSmpC1ISR
+.global _C1ISRMainSmpC1ISR
+
+C1ISRMainSmpC1ISR:
+_C1ISRMainSmpC1ISR:
+
+	/* レジスタの保存 */
+	addi    -80, sp, sp
+	st.w    ep, 12[sp]
+	mov     sp, ep 
+	sst.w   r1, 72[ep]
+	sst.w   r6, 68[ep]
+	sst.w   r7, 64[ep]
+	sst.w   r8, 60[ep]
+	sst.w   r9, 56[ep]
+	sst.w	r10, 52[ep]
+	sst.w	r11, 48[ep]
+	sst.w	r12, 44[ep]
+	sst.w   r13, 40[ep]
+	sst.w   r14, 36[ep]
+	sst.w   r15, 32[ep]
+	sst.w   r16, 28[ep]
+	sst.w   r17, 24[ep]
+	sst.w   r18, 20[ep]
+	sst.w   r19, 16[ep]
+	sst.w   r31, 8[ep]
+
+	/* 多重割込みのため，現在のEIPCとEIPSWを保存 */
+	stsr    eipc, r6
+	sst.w   r6, 4[ep]
+	stsr    eipsw, r6
+	sst.w   r6, 0[ep]
+
+    /* debug led4 on */
+    Lea     P24, r6
+    ld.h    0[r6], r7             /* P24 -> r7 */
+    mov     ~0x0800, r8
+    and     r7, r8
+    st.h    r8, 0[r6]
+
+	UNLOCK_ALL_INT      /* 全割込み解除 */
+
+	/* 割込み発生前のcallevel_statをスタックに保存 */
+	Lea     _callevel_stat, r6
+	ld.h    0[r6], r7
+	sst.w   r7, 76[ep]
+
+	/* callevel_statにC1ISRをセット */
+
+	Lea     TSYS_ISR1, r8
+	or      r8, r7
+	st.h    r7, 0[r6]
+
+	/*
+	 *  タイマ割込みをクリア
+	 */
+    Lea     ICTAUA0I(TAUA_CH7), r6
+    ld.h    0[r6], r7
+    mov     ~EIRFn, r8
+    and      r8, r7
+    st.h    r7, 0[r6]
+
+/*	jarl	_c1isr_syslog, r31  FIXME */
+
+	Lea     _callevel_stat, r6
+	sld.w    76[ep], r7
+	st.h    r7, 0[r6]
+
+	LOCK_ALL_INT      /* 全割込み設定 */
+
+   /* debug led4 off */
+    Lea     P24, r6
+    ld.h    0[r6], r7           /* P24 -> r7 */
+    mov     0x0800, r8
+    or     r7, r8
+    st.h    r8, 0[r6]
+
+	/* レジスタの復帰 */
+	mov     sp, ep
+	sld.w    4[ep], r10
+	ldsr    r10, eipc
+	sld.w   0[ep], r10
+	ldsr    r10, eipsw
+	sld.w   72[ep], r1
+	sld.w   68[ep], r6
+	sld.w   64[ep], r7
+	sld.w   60[ep], r8
+	sld.w   56[ep], r9
+	sld.w   52[ep], r10
+	sld.w   48[ep], r11
+	sld.w   44[ep], r12
+	sld.w   40[ep], r13
+	sld.w   36[ep], r14
+	sld.w   32[ep], r15
+	sld.w   28[ep], r16
+	sld.w   24[ep], r17
+	sld.w   20[ep], r18
+	sld.w   16[ep], r19
+	sld.w    8[ep], r31
+	addi    80, ep, sp
+	sld.w   12[ep], r30
+	eiret
+
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/conv2cs+.rb
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/conv2cs+.rb	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/conv2cs+.rb	(revision 117)
@@ -0,0 +1,17 @@
+#!ruby -Ke
+if ARGV.size != 1 then
+    puts "Argment Error!"
+    exit
+end
+
+while str = STDIN.gets
+    if /^.*\.data\s+[\dabcdef]+\s+[\dabcdef]+\s+([\dabcdef]+)\s+.*/ =~ str
+        command = 'v850-elf-objcopy  -R .bss ' + ARGV[0]
+        puts command
+        system(command)        
+        command = 'v850-elf-objcopy  --change-section-vma .data=0x' + $1 + ' ' + ARGV[0]
+        puts command
+        system(command)
+        exit(0)
+    end
+end
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/ldscript.tf
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/ldscript.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/ldscript.tf	(revision 117)
@@ -0,0 +1,341 @@
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$  Copyright (C) 2007-2013 by Center for Embedded Computing Systems
+$              Graduate School of Information Science, Nagoya Univ., JAPAN
+$  Copyright (C) 2011-2013 by FUJISOFT INCORPORATED, JAPAN
+$  Copyright (C) 2011-2013 by FUJITSU VLSI LIMITED, JAPAN
+$  Copyright (C) 2011-2013 by NEC Communication Systems, Ltd., JAPAN
+$  Copyright (C) 2011-2013 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+$  Copyright (C) 2011-2013 by Renesas Electronics Corporation, JAPAN
+$  Copyright (C) 2011-2013 by Sunny Giken Inc., JAPAN
+$  Copyright (C) 2011-2013 by TOSHIBA CORPORATION, JAPAN
+$  Copyright (C) 2011-2013 by Witz Corporation, JAPAN
+$
+$  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+$  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+$  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+$  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+$      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+$      スコード中に含まれていること．
+$  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+$      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+$      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+$      の無保証規定を掲載すること．
+$  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+$      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+$      と．
+$    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+$        作権表示，この利用条件および下記の無保証規定を掲載すること．
+$    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+$        報告すること．
+$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+$      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+$      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+$      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+$      免責すること．
+$
+$  AUTOSAR（AUTomotive Open System ARchitecture）は，AUTOSAR仕様に基づ
+$  いたソフトウェアを商用目的で利用する者に対して，AUTOSARパートナーに
+$  なることを求めている．
+$
+$  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+$  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+$  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$  の責任を負わない．
+$
+$  $Id: ldscript.tf 117 2014-12-10 03:58:03Z t_ishikawa $
+$
+
+$ =====================================================================
+$ リンカスクリプトの生成
+$ =====================================================================
+$FILE "cfg3_out.ld"$
+
+/* This file is generated by v850_gcc/ldscript.tf */$NL$
+
+$
+$  ターゲット依存のOUTPUT記述の生成
+$
+$IF ISFUNCTION("GENERATE_OUTPUT")$
+	$GENERATE_OUTPUT()$
+$END$
+
+$
+$  MEMORY記述の生成
+$
+MEMORY {$NL$
+$FOREACH reg REG.ORDER_LIST$
+	$TAB$$FORMAT("%s : ORIGIN = 0x%x, LENGTH = 0x%x",
+				REG.REGNAME[reg], +REG.BASE[reg], +REG.SIZE[reg])$$NL$
+$END$
+$IF ISFUNCTION("GENERATE_MEMORY")$
+	$GENERATE_MEMORY()$
+$END$
+}$NL$
+$NL$
+
+$
+$  ターゲット依存のPROVIDE記述の生成
+$
+$IF ISFUNCTION("GENERATE_PROVIDE")$
+	$GENERATE_PROVIDE()$
+$END$
+
+$
+$  変数の初期化
+$
+$reset_lma = 0$
+$provide_gp = 0$
+
+$
+$  リンク指定の生成
+$
+SECTIONS {$NL$
+$ ターゲット依存のセクション記述の生成
+$IF ISFUNCTION("GENERATE_SECTION_FIRST")$
+	$GENERATE_SECTION_FIRST()$
+$END$
+
+$IF TOPPERS_LABEL_ASM$
+	$PREFIX_START = "___start_"$
+	$PREFIX_END   = "___end_"$
+	$PREFIX_LIMIT = "___limit_"$
+$ELSE$
+	$PREFIX_START = "__start_"$
+	$PREFIX_END   = "__end_"$
+	$PREFIX_LIMIT = "__limit_"$
+$END$
+
+$FOREACH moid MO_ORDER$
+	$IF MO.LINKER[moid]$
+$		// セクションの開始記述の生成
+		$IF (MO.SEFLAG[moid] & 0x01) != 0$
+			$TAB$.$MO.SLABEL[moid]$$SPC$
+			$IF (MO.SEFLAG[moid] & 0x40) == 0$
+                $IF LENGTH(MO.REALBASE[moid])$
+				    ($FORMAT("0x%x", MO.REALBASE[moid])$)$SPC$
+                $ELSE$
+				    ALIGN($TARGET_SEC_ALIGN_STR$)$SPC$
+                $END$
+			$ELIF LENGTH(MO.REALBASE[moid])$
+                ($FORMAT("0x%x", MO.REALBASE[moid])$)$SPC$
+			$END$
+			$IF (MO.MEMATR[moid] & TA_NOWRITE) == 0
+							&& (MO.MEMATR[moid] & TA_MEMINI) == 0$
+				(NOLOAD)$SPC$
+			$END$
+            :$SPC$
+			$IF !EQ(MO.ILABEL[moid], "")$
+				ALIGN($TARGET_SEC_ALIGN_STR$)$SPC$
+			$END$
+			{
+            $IF LENGTH(MO.COMMENT[moid])$
+                $SPC$/* $MO.COMMENT[moid]$ */$SPC$
+            $END$
+            $NL$
+		$END$
+
+$		// セクションとメモリオブジェクトの開始ラベルの生成
+		$IF (MO.SEFLAG[moid] & 0x400) != 0$
+			$IF ISFUNCTION("GENERATE_GP_LABEL")$
+				$GENERATE_GP_LABEL()$
+			$END$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x100) != 0$
+			$IF (MO.MEMATR[moid] & TA_SDATA) == 0$
+				$TAB$$TAB$$PREFIX_START$srpw_all = .;$NL$
+			$ELSE$
+				$TAB$$TAB$$PREFIX_START$ssrpw_all = .;$NL$
+			$END$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x10) != 0$
+			$IF !EQ(MO.PLABEL[moid], "")$
+				$TAB$$TAB$$PREFIX_START$$MO.PLABEL[moid]$ = .;$NL$
+			$END$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x01) != 0$
+			$IF !EQ(MO.SLABEL[moid], ALT(omit_start_slabel,""))$
+				$TAB$$TAB$$PREFIX_START$$MO.SLABEL[moid]$ = .;$NL$
+			$END$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x04) != 0$
+			$IF (MO.SEFLAG[moid] & 0x01) == 0$
+				$NL$
+			$END$
+			$IF !EQ(MO.MLABEL[moid], MO.SLABEL[moid])
+					&& !EQ(MO.MLABEL[moid], ALT(omit_start_mlabel,""))$
+				$TAB$$TAB$$PREFIX_START$$MO.MLABEL[moid]$ = .;$NL$
+			$END$
+			$TAB$$TAB$
+		$END$
+
+$		// リンクするファイル記述の生成
+		$section_dscr = SECTION_DESCRIPTION(MO.SECTION[moid])$
+		$IF MO.TYPE[moid] == TOPPERS_ATTMOD$
+			$IF EQ(MO.MODULE[moid], "kernel_mem.o")$
+				kernel_mem3.o
+			$ELSE$
+				$MO.MODULE[moid]$
+			$END$
+			($section_dscr$)$SPC$
+		$ELIF MO.TYPE[moid] == TOPPERS_ATTSEC$
+			*($section_dscr$)$SPC$
+		$ELSE$
+$			// ユーザスタック領域
+			Os_Lcfg.o($section_dscr$)$SPC$
+		$END$
+
+$		// セクションとメモリオブジェクトの終了ラベルの生成
+		$IF (MO.SEFLAG[moid] & 0x08) != 0$
+			$NL$
+			$IF !EQ(MO.MLABEL[moid], MO.SLABEL[moid])$
+				$TAB$$TAB$$PREFIX_END$$MO.MLABEL[moid]$ = .;$NL$
+			$END$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x02) != 0$
+			$TAB$$TAB$$PREFIX_END$$MO.SLABEL[moid]$ = .;$NL$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x200) != 0$
+			$IF (MO.MEMATR[moid] & TA_SDATA) == 0$
+				$TAB$$TAB$$PREFIX_END$srpw_all = .;$NL$
+			$ELSE$
+				$TAB$$TAB$$PREFIX_END$ssrpw_all = .;$NL$
+			$END$
+		$END$
+
+$		// セクションの終了記述の生成
+		$IF (MO.SEFLAG[moid] & 0x02) != 0$
+			$TAB$} > $REG.REGNAME[MO.MEMREG[moid]]$
+			$IF !OMIT_IDATA$
+				$IF !EQ(MO.ILABEL[moid], "")$
+					$SPC$AT > $REG.REGNAME[STANDARD_ROM]$
+					$reset_lma = 1$
+				$ELIF reset_lma$
+					$SPC$AT > $REG.REGNAME[MO.MEMREG[moid]]$
+					$reset_lma = 0$
+				$END$
+			$END$$NL$
+			$IF !OMIT_IDATA && !EQ(MO.ILABEL[moid], "")$
+				$TAB$$PREFIX_START$$MO.ILABEL[moid]$ = LOADADDR(.$MO.SLABEL[moid]$);$NL$
+			$END$
+		$END$
+
+$		// アライン記述の生成
+        $IF LENGTH(MO.REALALIGN[moid])$
+			$TAB$. = ALIGN($FORMAT("0x%x", +MO.REALALIGN[moid])$); /* sdata_shared_align */$NL$
+		$ELIF (MO.SEFLAG[moid] & 0x20) != 0$
+			$TAB$. = ALIGN($TARGET_PAGE_SIZE_STR$);$NL$
+		$ELIF (MO.SEFLAG[moid] & 0x08) != 0$
+$			// セクションが継続している場合には，TABを1つ出力
+			$IF (MO.SEFLAG[moid] & 0x02) == 0$$TAB$$END$
+			$TAB$. = ALIGN($TARGET_SEC_ALIGN_STR$);$NL$
+		$END$
+
+$		// セクションとメモリオブジェクトの上限ラベルの生成
+		$IF (MO.SEFLAG[moid] & 0x08) != 0$
+			$IF !EQ(MO.MLABEL[moid], MO.SLABEL[moid])$
+$				// セクションが継続している場合には，TABを1つ出力
+				$IF (MO.SEFLAG[moid] & 0x02) == 0$$TAB$$END$
+				$TAB$$PREFIX_LIMIT$$MO.MLABEL[moid]$ = .;$NL$
+			$END$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x02) != 0$
+			$TAB$$PREFIX_LIMIT$$MO.SLABEL[moid]$ = .;$NL$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x20) != 0$
+			$IF !EQ(MO.PLABEL[moid], "")$
+				$TAB$$PREFIX_LIMIT$$MO.PLABEL[moid]$ = .;$NL$
+			$END$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x200) != 0$
+			$IF (MO.MEMATR[moid] & TA_SDATA) == 0$
+				$TAB$$PREFIX_LIMIT$srpw_all = .;$NL$
+			$ELSE$
+				$TAB$$PREFIX_LIMIT$ssrpw_all = .;$NL$
+			$END$
+		$END$
+
+		$IF (MO.SEFLAG[moid] & 0x02) != 0$
+			$NL$
+		$END$
+
+$		// メモリリージョン末でアラインさせるためのダミーセクションの生成
+		$IF (MO.SEFLAG[moid] & 0x80) != 0$
+			$TAB$.$REG.REGNAME[MO.MEMREG[moid]]$_align$SPC$
+            $IF LENGTH(REG.LIMIT_ALIGN[MO.MEMREG[moid]])$
+                ($FORMAT("0x%x", REG.LIMIT_ALIGN[MO.MEMREG[moid]])$)$SPC$
+            $ELSE$
+                ALIGN($TARGET_SEC_ALIGN_STR$)$SPC$
+            $END$
+            : ALIGN($TARGET_SEC_ALIGN_STR$) {$NL$
+			$TAB$$TAB$__$REG.REGNAME[MO.MEMREG[moid]]$_align = .;$NL$
+$           // 中身が空の出力セクションはリンカによって無視されるため，
+$           // ダミーのデータを入れておく
+            $TAB$$TAB$LONG(1); /*dummy*/$NL$
+			$TAB$} > $REG.REGNAME[MO.MEMREG[moid]]$ AT > $REG.REGNAME[MO.MEMREG[moid]]$$NL$
+			$TAB$. = ALIGN($TARGET_SEC_ALIGN_STR$);$NL$
+			$TAB$___$REG.REGNAME[MO.MEMREG[moid]]$_align = .;$NL$
+			$NL$
+		$END$
+	$END$
+$END$
+
+$FOREACH lsid RANGE(1, numls)$
+	$TAB$$LNKSEC.SECTION[lsid]$ : {$NL$
+	$TAB$$TAB$*($LNKSEC.SECTION[lsid]$)$NL$
+	$TAB$} > $REG.REGNAME[LNKSEC.MEMREG[lsid]]$ AT > $REG.REGNAME[LNKSEC.MEMREG[lsid]]$$NL$
+	$NL$
+$END$
+
+$	// C++testで必要な標準ライブラリで使用するセクション
+$TAB$.dummy_rom_for_cpptest : {$NL$
+$TAB$$TAB$*(.ctors.65535) *(.eh_frame)$NL$
+$TAB$} > $REG.REGNAME[STANDARD_ROM]$$NL$
+$TAB$. = ALIGN(64);$NL$$NL$
+$TAB$.dummy_ram_for_cpptest : {$NL$
+$TAB$$TAB$_end = .;$NL$
+$TAB$} > $REG.REGNAME[STANDARD_RAM]$$NL$
+$TAB$. = ALIGN(64);$NL$$NL$
+
+$TAB$/DISCARD/ : {$NL$
+$TAB$$TAB$*(.rel.dyn)$NL$
+$TAB$}$NL$
+$NL$
+
+$TAB$/* DWARF debug sections.$NL$
+$TAB$Symbols in the DWARF debugging sections are relative to $NL$
+$TAB$the beginning of the section so we begin them at 0.  */$NL$
+$NL$
+$TAB$/* DWARF 1 */$NL$
+$TAB$.debug          0 : { *(.debug) }$NL$
+$TAB$.line           0 : { *(.line) }$NL$
+$NL$
+$TAB$/* GNU DWARF 1 extensions */$NL$
+$TAB$.debug_srcinfo  0 : { *(.debug_srcinfo) }$NL$
+$TAB$.debug_sfnames  0 : { *(.debug_sfnames) }$NL$
+$NL$
+$TAB$/* DWARF 1.1 and DWARF 2 */$NL$
+$TAB$.debug_aranges  0 : { *(.debug_aranges) }$NL$
+$TAB$.debug_pubnames 0 : { *(.debug_pubnames) }$NL$
+$NL$
+$TAB$/* DWARF 2 */$NL$
+$TAB$.debug_info     0 : { *(.debug_info) }$NL$
+$TAB$.debug_abbrev   0 : { *(.debug_abbrev) }$NL$
+$TAB$.debug_line     0 : { *(.debug_line) }$NL$
+$TAB$.debug_frame    0 : { *(.debug_frame) }$NL$
+$TAB$.debug_str      0 : { *(.debug_str) }$NL$
+$TAB$.debug_loc      0 : { *(.debug_loc) }$NL$
+$TAB$.debug_macinfo  0 : { *(.debug_macinfo) }$NL$
+$TAB$.debug_ranges   0 : { *(.debug_ranges) }$NL$
+$NL$
+$TAB$/* SGI/MIPS DWARF 2 extensions */$NL$
+$TAB$.debug_weaknames 0 : { *(.debug_weaknames) }$NL$
+$TAB$.debug_funcnames 0 : { *(.debug_funcnames) }$NL$
+$TAB$.debug_typenames 0 : { *(.debug_typenames) }$NL$
+$TAB$.debug_varnames  0 : { *(.debug_varnames) }$NL$
+$NL$
+}$NL$
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/ostm.arxml
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/ostm.arxml	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/ostm.arxml	(revision 117)
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="EUC-JP"?>
+<!-- Generated by ABREX Ver. 1.0.0 -->
+<AUTOSAR xmlns="http://autosar.org/schema/r4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://autosar.org/schema/r4.0 AUTOSAR_4-0-3_STRICT.xsd">
+	<AR-PACKAGES>
+		<AR-PACKAGE>
+			<SHORT-NAME>Ecuc</SHORT-NAME>
+			<ELEMENTS>
+				<ECUC-MODULE-CONFIGURATION-VALUES>
+					<SHORT-NAME>Os</SHORT-NAME>
+					<DEFINITION-REF DEST="ECUC-MODULE-DEF">/AUTOSAR/EcucDefs/Os</DEFINITION-REF>
+					<ECUC-DEF-EDITION>4.2.0</ECUC-DEF-EDITION>
+					<IMPLEMENTATION-CONFIG-VARIANT>VARIANT-PRE-COMPILE</IMPLEMENTATION-CONFIG-VARIANT>
+					<CONTAINERS>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>target_timer_hdr</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsIsr</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrInterruptNumber</DEFINITION-REF>
+									<VALUE>OSTM_IRQ</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrInterruptPriority</DEFINITION-REF>
+									<VALUE>INTPRI_TIMER</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrStackSize</DEFINITION-REF>
+									<VALUE>592</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrCategory</DEFINITION-REF>
+									<VALUE>CATEGORY_2</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>SysTimerCnt</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsCounter</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterMaxAllowedValue</DEFINITION-REF>
+									<VALUE>999</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterMinCycle</DEFINITION-REF>
+									<VALUE>1</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterTicksPerBase</DEFINITION-REF>
+									<VALUE>1</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterType</DEFINITION-REF>
+									<VALUE>SOFTWARE</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+					</CONTAINERS>
+				</ECUC-MODULE-CONFIGURATION-VALUES>
+			</ELEMENTS>
+		</AR-PACKAGE>
+	</AR-PACKAGES>
+</AUTOSAR>
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/ostm.c
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/ostm.c	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/ostm.c	(revision 117)
@@ -0,0 +1,156 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  @(#) $Id: ostm.c 164 2015-06-03 01:22:29Z t_ishikawa $
+ */
+
+#include "kernel_impl.h"
+#include "target_timer.h"
+#include "ostm.h"
+#include "Os_Lcfg.h"
+
+/*
+ *  現在のシステム時刻（単位: ミリ秒）
+ *
+ *  厳密には，前のタイムティックのシステム時刻
+ */
+SystemTimeMsType current_time;
+
+/*
+ *	内部関数プロトタイプ宣言
+ */
+ISR(target_timer_hdr);
+
+/*
+ *  マイクロ秒単位での時刻を取得
+ */
+SystemTimeUsType
+get_tim_utime(void)
+{
+	SystemTimeUsType	utime;
+	SystemTimeMsType	mtime;
+	TickType			clock1, clock2;
+	boolean				ireq;
+	SIL_PRE_LOC;
+
+	SIL_LOC_INT();
+	mtime = current_time;
+	clock1 = target_timer_get_current();
+	ireq = target_timer_probe_int();
+	clock2 = target_timer_get_current();
+	SIL_UNL_INT();
+	utime = ((SystemTimeUsType) mtime) * 1000U;
+
+	if ((ireq != FALSE) && (clock2 >= clock1)) {
+		/*
+		 *  割込みが入っており，clock2の方がclock1の方が大きいまたは等しい場合は，
+		 *  current_time が割込みにより更新されていないかつ，clock1はオーバフロー後
+		 *  の値であるため，utimeに1m追加する．clock1の読み込み，割込みのチェック，
+		 *  clock2の読み込みが1μs以下で実行可能なプロセッサも存在するため，等号付き
+		 *  で比較している．
+		 */
+		utime += 1000U;
+	}
+	utime += TO_USEC(clock1);
+
+	return(utime);
+}
+
+/*
+ *  OSTMの初期化
+ */
+void
+target_timer_initialize(void)
+{
+	/* 停止 */
+	sil_wrb_mem((void *) (OSTM_TT_B), 0x01);
+
+	/* インターバル・タイマ・モード */
+	sil_wrb_mem((void *) (OSTM_CTL_B), 0x00);
+
+	/* コンペアレジスタの設定 */
+	sil_wrw_mem((void *) (OSTM_CMP_W), TIMER_CLOCK);
+
+	/* スタート */
+	sil_wrb_mem((void *) (OSTM_TS_B), 0x01);
+}
+
+/*
+ *  OSTMの停止
+ */
+void
+target_timer_terminate(void)
+{
+	/* 停止 */
+	sil_wrb_mem((void *) (OSTM_TT_B), 0x01);
+
+	/* 割込みの禁止とクリア */
+	x_disable_int(OSTM_IRQ);
+	x_clear_int(OSTM_IRQ);
+}
+
+/*
+ *  target_timer.arxmlを使用しない場合の対処
+ */
+#ifndef SysTimerCnt
+#define SysTimerCnt		UINT_C(0)
+#endif /* SysTimerCnt */
+
+/*
+ *  タイマ割込みハンドラ
+ */
+ISR(target_timer_hdr)
+{
+	StatusType ercd;
+
+	/* current_timeを更新する */
+	current_time++;
+
+	/*
+	 *  カウンタ加算通知処理実行
+	 */
+	ercd = IncrementCounter(SysTimerCnt);
+	/* エラーリターンの場合はシャットダウン */
+	if (ercd != E_OK) {
+		ShutdownOS(ercd);
+	}
+}
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/ostm.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/ostm.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/ostm.h	(revision 117)
@@ -0,0 +1,113 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  @(#) $Id: ostm.h 164 2015-06-03 01:22:29Z t_ishikawa $
+ */
+
+#ifndef TOPPERS_OSTM_H
+#define TOPPERS_OSTM_H
+
+#include "prc_sil.h"
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  タイマ値の内部表現とマイクロ秒単位との変換
+ *
+ */
+#define TO_USEC(clock)	((((SystemTimeUsType) (clock)) * 1000U) / TIMER_CLOCK)
+
+/*
+ *  タイマ値の内部表現と100ナノ秒単位との変換
+ *
+ */
+#define TO_100NSEC(clock)	((((SystemTimeUsType) (clock)) * 10000U) / TIMER_CLOCK)
+
+/*
+ *  マイクロ秒単位での時刻を取得
+ */
+extern SystemTimeUsType get_tim_utime(void);
+
+/*
+ *  100ナノ秒単位での時刻を取得
+ */
+extern SystemTime100NsType get_tim_100ntime(void);
+
+/*
+ *  タイマの起動処理
+ *
+ *  タイマを初期化し，周期的なタイマ割込み要求を発生させる
+ */
+extern void target_timer_initialize(void);
+
+/*
+ *  タイマの停止処理
+ *
+ *  タイマの動作を停止させる
+ */
+extern void target_timer_terminate(void);
+
+/*
+ *  タイマの現在値の読出し
+ */
+LOCAL_INLINE TickType
+target_timer_get_current(void)
+{
+	TickType count;
+
+	count = sil_rew_mem((void *) (OSTM_CNT_W));
+
+	return(TIMER_CLOCK - count);
+}
+
+/*
+ *  タイマ割込み要求のチェック
+ */
+LOCAL_INLINE boolean
+target_timer_probe_int(void)
+{
+	return(x_probe_int(OSTM_IRQ));
+}
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_OSTM_H */
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/ostm.yaml
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/ostm.yaml	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/ostm.yaml	(revision 117)
@@ -0,0 +1,65 @@
+#
+#  TOPPERS ATK2
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+#      Automotive Kernel Version 2
+#
+#  Copyright (C) 2013-2014 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#  Copyright (C) 2013-2014 by FUJI SOFT INCORPORATED, JAPAN
+#  Copyright (C) 2013-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+#  Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
+#  Copyright (C) 2013-2014 by Sunny Giken Inc., JAPAN
+#  Copyright (C) 2013-2014 by TOSHIBA CORPORATION, JAPAN
+#  Copyright (C) 2013-2014 by Witz Corporation, JAPAN
+#
+#  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+#  $Id: ostm.yaml 164 2015-06-03 01:22:29Z t_ishikawa $
+#
+
+Ecuc:
+  Os:
+    target_timer_hdr:
+      DefinitionRef: OsIsr
+      OsIsrInterruptNumber: OSTM_IRQ
+      OsIsrInterruptPriority: INTPRI_TIMER
+      OsIsrStackSize: 0x250
+      OsIsrCategory: CATEGORY_2
+    SysTimerCnt:
+      DefinitionRef: OsCounter
+      OsCounterMaxAllowedValue: 999
+      OsCounterMinCycle: 1
+      OsCounterTicksPerBase: 1
+      OsCounterType: SOFTWARE
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/prc.tf
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/prc.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/prc.tf	(revision 117)
@@ -0,0 +1,568 @@
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$  Copyright (C) 2012-2013 by Center for Embedded Computing Systems
+$              Graduate School of Information Science, Nagoya Univ., JAPAN
+$  Copyright (C) 2012-2013 by FUJISOFT INCORPORATED, JAPAN
+$  Copyright (C) 2012-2013 by FUJITSU VLSI LIMITED, JAPAN
+$  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+$  Copyright (C) 2012-2013 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+$  Copyright (C) 2012-2013 by Renesas Electronics Corporation, JAPAN
+$  Copyright (C) 2012-2013 by Sunny Giken Inc., JAPAN
+$  Copyright (C) 2012-2013 by TOSHIBA CORPORATION, JAPAN
+$  Copyright (C) 2012-2013 by Witz Corporation, JAPAN
+$  Copyright (C) 2013 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プロジェクトを
+$      免責すること．
+$
+$  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+$  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+$  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+$  用する者に対して，AUTOSARパートナーになることを求めている．
+$
+$  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+$  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+$  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$  の責任を負わない．
+$
+$  $Id: prc.tf 189 2015-06-26 01:54:57Z t_ishikawa $
+$
+
+$
+$     パス2のアーキテクチャ依存テンプレート（V850用）
+$
+
+$ 
+$  kernel/kernel.tf のターゲット依存部
+$ 
+
+$ 
+$  ユーザスタック領域を確保するコードを出力する
+$  ARGV[1]：タスクID
+$  ARGV[2]：スタックサイズ
+$ 
+$FUNCTION ALLOC_USTACK$
+    StackType _kernel_ustack_$ARGV[1]$[COUNT_STK_T($ARGV[2]$)]
+    $SPC$__attribute__((section($FORMAT("\".user_stack.%s\"", ARGV[1])$)));$NL$
+
+    $TSK.TINIB_USTKSZ[ARGV[1]] = VALUE(FORMAT("ROUND_STK_T(%s)", ARGV[2]), +ARGV[2])$
+    $TSK.TINIB_USTK[ARGV[1]] = FORMAT("_kernel_ustack_%s", ARGV[1])$
+$END$
+
+$ 
+$  ユーザスタック領域のセクション名を返す
+$  ARGV[1]：タスクID
+$ 
+$FUNCTION SECTION_USTACK$
+    $RESULT = FORMAT(".user_stack.%s", ARGV[1])$
+$END$
+
+$
+$  ユーザスタックのアライメント制約に合わせたサイズを返す
+$  ARGV[1]：スタックサイズ（アライン前）
+$  kernel.tfから呼ばれる
+$
+$FUNCTION USTACK_ALIGN_SIZE$
+	$RESULT = (ARGV[1] + CHECK_USTKSZ_ALIGN - 1) & ~(CHECK_USTKSZ_ALIGN - 1)$
+$END$
+
+$
+$  基本タスクの共有スタックの確保
+$  ARGV[1]：共有スタック名
+$  ARGV[2]：共有スタックID(タスク優先度)
+$  ARGV[3]：スタックサイズ(アライメント調整済み)
+$  kernel.tfから呼ばれる
+$
+$FUNCTION ALLOC_SHARED_USTACK$
+	StackType $ARGV[1]$[COUNT_STK_T(ROUND_STK_T($ARGV[3]$))]
+	$SPC$__attribute__((section($FORMAT("\".shared_user_stack.%s\"", ARGV[2])$)));$NL$
+$END$
+
+$
+$  基本タスクの共有スタックのセクション名
+$  ARGV[1]：共有スタックID(タスク優先度)
+$  kernel.tfから呼ばれる
+$
+$FUNCTION SECTION_SHARED_USTACK$
+	$RESULT = FORMAT(".shared_user_stack.%s", ARGV[1])$
+$END$
+
+$
+$  非信頼フックスタックの確保
+$  ARGV[1]：スタック名
+$  ARGV[2]：スタックサイズ
+$  kernel.tfから呼ばれる
+$
+$FUNCTION ALLOC_HSTACK$
+	$name = ARGV[1]$
+	$size = ARGV[2]$
+	StackType $name$[COUNT_STK_T(ROUND_STK_T($HSTACK_SIZE_STR(size)$))] __attribute__((section(".prsv_kernel")));$NL$
+$END$
+
+$
+$  非信頼フックスタックサイズのアライメント制約を満たすように拡張したサイズの文字列
+$  ARGV[1]：スタックサイズ
+$  kernel.tfから呼ばれる
+$
+$FUNCTION HSTACK_SIZE_STR$
+	TOPPERS_ROUND_SZ($ARGV[1]$, CHECK_USTKSZ_ALIGN)
+$END$
+
+$ 
+$  OsMemoryArea はサポートしない
+$ 
+$FUNCTION HOOK_ERRORCHECK_MEM$
+    $ERROR$
+        OsMemoryArea is not supported.$NL$
+    $END$
+$END$
+
+$ 
+$  標準のセクションのメモリオブジェクト属性の定義
+$ 
+$MEMATR_TEXT = (TA_NOWRITE|TA_EXEC)$
+$MEMATR_RODATA = (TA_NOWRITE|TA_EXEC)$
+$MEMATR_DATA = TA_MEMINI$
+$MEMATR_BSS = TA_NULL$
+$MEMATR_PRSV = TA_MEMPRSV$
+$MEMATR_ROSDATA = (TA_SDATA|TA_MEMINI|TA_NOWRITE|TA_EXEC)$
+$MEMATR_SDATA = (TA_SDATA|TA_MEMINI)$
+$MEMATR_SBSS = TA_SDATA$
+
+$TARGET_MEMATR_USTACK = TA_NULL$
+
+$ 
+$  標準のセクションに関する定義
+$  DSEC.ORDER_LIST：IDのリスト
+$  DESC.SECTION：セクション名
+$  DESC.MEMREG：セクションを配置するメモリリージョン
+$  DESC.MEMATR：セクションのメモリオブジェクト属性
+$ 
+$DSEC.ORDER_LIST = RANGE(0,7)$
+
+$DSEC.SECTION[0] = ".text"$
+$DSEC.MEMREG[0] = 1$
+$DSEC.MEMATR[0] = MEMATR_TEXT$
+
+$DSEC.SECTION[1] = ".rodata"$
+$DSEC.MEMREG[1] = 1$
+$DSEC.MEMATR[1] = MEMATR_RODATA$
+
+$DSEC.SECTION[2] = ".data"$
+$DSEC.MEMREG[2] = 0$
+$DSEC.MEMATR[2] = MEMATR_DATA$
+
+$DSEC.SECTION[3] = ".bss"$
+$DSEC.MEMREG[3] = 0$
+$DSEC.MEMATR[3] = MEMATR_BSS$
+
+$DSEC.SECTION[4] = ".prsv"$
+$DSEC.MEMREG[4] = 0$
+$DSEC.MEMATR[4] = MEMATR_PRSV$
+
+$DSEC.SECTION[5] = ".rosdata"$
+$DSEC.MEMREG[5] = 0$
+$DSEC.MEMATR[5] = MEMATR_ROSDATA$
+
+$DSEC.SECTION[6] = ".sdata"$
+$DSEC.MEMREG[6] = 0$
+$DSEC.MEMATR[6] = MEMATR_SDATA$
+
+$DSEC.SECTION[7] = ".sbss"$
+$DSEC.MEMREG[7] = 0$
+$DSEC.MEMATR[7] = MEMATR_SBSS$
+
+$ 
+$  OSAP初期化コンテキストブロックのための宣言
+$ 
+$FUNCTION PREPARE_OSAPINICTXB$
+    $IF LENGTH(TSK.ID_LIST)$
+        $FOREACH tskid TSK.ID_LIST$
+            $IF !OSAP.TRUSTED[TSK.OSAPID[tskid]]$
+                extern uint8 $FORMAT("__start_user_stack%s", tskid)$;$NL$
+                extern uint8 $FORMAT("__limit_user_stack%s", tskid)$;$NL$
+            $END$
+        $END$
+    $END$
+    $FOREACH tskpri RANGE(TMIN_TPRI, TMAX_TPRI)$
+        $IF LENGTH(shared_ustack_size[tskpri])$
+            extern uint8 $FORMAT("__start_shared_user_stack%s", tskpri)$;$NL$
+            extern uint8 $FORMAT("__limit_shared_user_stack%s", tskpri)$;$NL$
+        $END$
+    $END$
+
+
+    $IF LENGTH(OSAP.ID_LIST)$
+        $FOREACH domid OSAP.ID_LIST$
+            $IF !OSAP.TRUSTED[domid]$
+$   RX領域（専用）
+                extern uint8 __start_text_$OSAP.LABEL[domid]$;$NL$
+                extern uint8 __limit_text_$OSAP.LABEL[domid]$;$NL$
+$   R領域（専用）
+                extern uint8 __start_sram_$OSAP.LABEL[domid]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$;$NL$
+                extern uint8 __limit_sram_$OSAP.LABEL[domid]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$;$NL$
+$   RWX領域（専用）
+                extern uint8 __start_ram_$OSAP.LABEL[domid]$;$NL$
+                extern uint8 __limit_ram_$OSAP.LABEL[domid]$;$NL$
+                extern uint8 __start_sram_$OSAP.LABEL[domid]$;$NL$
+                extern uint8 __limit_sram_$OSAP.LABEL[domid]$;$NL$
+$   共有リード専用ライト
+                extern uint8 $FORMAT("__start_ram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$;$NL$
+                extern uint8 $FORMAT("__limit_ram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$;$NL$
+                extern uint8 $FORMAT("__start_sram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$;$NL$
+                extern uint8 $FORMAT("__limit_sram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$;$NL$
+            $END$
+        $END$
+        $NL$
+    $END$$NL$
+
+$  共有領域
+    extern uint8 __start_text_$OSAP.LABEL[TDOM_NONE]$;$NL$
+    extern uint8 __limit_text_$OSAP.LABEL[TDOM_NONE]$;$NL$
+    extern uint8 __start_sram_$OSAP.LABEL[TDOM_NONE]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$;$NL$
+    extern uint8 __limit_sram_$OSAP.LABEL[TDOM_NONE]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$;$NL$
+    extern uint8 __start_ram_$OSAP.LABEL[TDOM_NONE]$;$NL$
+    extern uint8 __limit_ram_$OSAP.LABEL[TDOM_NONE]$;$NL$
+    extern uint8 __start_sram_$OSAP.LABEL[TDOM_NONE]$;$NL$
+    extern uint8 __limit_sram_$OSAP.LABEL[TDOM_NONE]$;$NL$
+$   共有リード専用ライト領域全体
+    extern uint8 __start_srpw_all;$NL$
+    extern uint8 __limit_srpw_all;$NL$
+    extern uint8 __start_ssrpw_all;$NL$
+    extern uint8 __limit_ssrpw_all;$NL$
+    $NL$
+$END$
+
+
+$FUNCTION GENERATE_TARGET_MPUINFOB$
+$ 
+$  保護ドメイン初期化ブロックの変更部を生成
+$ 
+    $FILE "Os_Lcfg.h"$
+    extern const uint32 tnum_shared_mem;$NL$
+    extern uint8 * const shared_meminib_table[];$NL$
+    $NL$
+
+    $FILE "kernel_mem2.c"$
+
+    $PREPARE_OSAPINICTXB()$
+
+$END$
+
+$ 
+$  TSKINICTXBの初期化情報を生成
+$ 
+$DOMINICTXB_KERNEL = "{ NULL }"$
+
+$FUNCTION GENERATE_OSAPINIB_MPUINFOB$
+
+    $TAB$$TAB${ 
+    $IF __v850e2v3__$
+$   // v850
+    $IF !OSAP.TRUSTED[ARGV[1]]$
+$   RX領域（専用）
+        $TAB$$TAB$$TAB$( (uint8 *)&__start_text_$OSAP.LABEL[ARGV[1]]$ ),/* iregion 0 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)&__limit_text_$OSAP.LABEL[ARGV[1]]$ ),/* iregion 0 */$NL$
+$   RX領域（専用ショートデータ）
+        $TAB$$TAB$$TAB$( (uint8 *)&__start_sram_$OSAP.LABEL[ARGV[1]]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$ ),/* iregion 1 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)&__limit_sram_$OSAP.LABEL[ARGV[1]]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$ ),/* iregion 1 */$NL$
+$   RWX領域（専用）
+        $TAB$$TAB$$TAB$( (uint8 *)&__start_ram_$OSAP.LABEL[ARGV[1]]$ ),/* dregion 1 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)&__limit_ram_$OSAP.LABEL[ARGV[1]]$ ),/* dregion 1 */$NL$
+$   RWX領域（専用ショートデータ）
+        $TAB$$TAB$$TAB$( (uint8 *)&__start_sram_$OSAP.LABEL[ARGV[1]]$ ),/* dregion 2 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)&__limit_sram_$OSAP.LABEL[ARGV[1]]$ ),/* dregion 2 */$NL$
+$   共有リード専用ライト
+        $TAB$$TAB$$TAB$$FORMAT("( (uint8 *)&__start_ram_%s_%x_%x )", OSAP.LABEL[ARGV[1]], +DEFAULT_ACPTN[ARGV[1]], +TACP_SHARED)$,/* dregion 3 */$NL$
+        $TAB$$TAB$$TAB$$FORMAT("( (uint8 *)&__limit_ram_%s_%x_%x )", OSAP.LABEL[ARGV[1]], +DEFAULT_ACPTN[ARGV[1]], +TACP_SHARED)$,/* dregion 3 */$NL$
+$   共有リード専用ライト（ショートデータ）
+        $TAB$$TAB$$TAB$$FORMAT("( (uint8 *)&__start_sram_%s_%x_%x )", OSAP.LABEL[ARGV[1]], +DEFAULT_ACPTN[ARGV[1]], +TACP_SHARED)$,/* dregion 3 */$NL$
+        $TAB$$TAB$$TAB$$FORMAT("( (uint8 *)&__limit_sram_%s_%x_%x )", OSAP.LABEL[ARGV[1]], +DEFAULT_ACPTN[ARGV[1]], +TACP_SHARED)$,/* dregion 3 */$NL$
+    $ELSE$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* iregion 0 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* iregion 0 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* iregion 1 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* iregion 1 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* dregion 1 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* dregion 1 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* dregion 2 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* dregion 2 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* dregion 3 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* dregion 3 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* dregion 4 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* dregion 4 */$NL$
+    $END$
+    $ELIF __v850e3v5__$
+$   // rh850
+    $IF !OSAP.TRUSTED[ARGV[1]]$
+$   共有リード専用ライト
+        $TAB$$TAB$$TAB$$FORMAT("( (uint8 *)&__start_ram_%s_%x_%x )", OSAP.LABEL[ARGV[1]], +DEFAULT_ACPTN[ARGV[1]], +TACP_SHARED)$,/* MPLA 1 */$NL$
+        $TAB$$TAB$$TAB$$FORMAT("( (uint8 *)&__limit_ram_%s_%x_%x )", OSAP.LABEL[ARGV[1]], +DEFAULT_ACPTN[ARGV[1]], +TACP_SHARED)$,/* MPUA 1 */$NL$
+$   共有リード専用ライト（ショートデータ）
+        $TAB$$TAB$$TAB$$FORMAT("( (uint8 *)&__start_sram_%s_%x_%x )", OSAP.LABEL[ARGV[1]], +DEFAULT_ACPTN[ARGV[1]], +TACP_SHARED)$,/* MPLA 2 */$NL$
+        $TAB$$TAB$$TAB$$FORMAT("( (uint8 *)&__limit_sram_%s_%x_%x )", OSAP.LABEL[ARGV[1]], +DEFAULT_ACPTN[ARGV[1]], +TACP_SHARED)$,/* MPUA 2 */$NL$
+        $TAB$$TAB$$TAB$( (uint32)0 ),/* MPRC */$NL$
+    $ELSE$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* MPLA 1 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* MPUA 1 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* MPLA 2 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* MPUA 2 */$NL$
+        $TAB$$TAB$$TAB$( (uint32)0 ),/* MPRC */$NL$
+    $END$
+    $END$
+    $TAB$$TAB$}$NL$
+    $NL$
+$END$
+
+$FUNCTION GENERATE_TSKINICTXB$
+	$TAB$$TAB${$NL$
+    $TAB$$TAB$$TAB$$TSK.TINIB_SSTKSZ[ARGV[1]]$,$NL$
+	$TAB$$TAB$$TAB$((void *)((uint8 *)($TSK.TINIB_SSTK[ARGV[1]]$)
+    $SPC$+ ($TSK.TINIB_SSTKSZ[ARGV[1]]$))),$NL$
+	$IF OSAP.TRUSTED[TSK.OSAPID[ARGV[1]]]$
+        $TAB$$TAB$$TAB$0,$NL$
+        $TAB$$TAB$$TAB$0,$NL$
+    $ELSE$
+        $TAB$$TAB$$TAB$$TSK.TINIB_USTKSZ[ARGV[1]]$,$NL$ 
+        $TAB$$TAB$$TAB$((void *)((uint8 *)($TSK.TINIB_USTK[ARGV[1]]$)
+        $SPC$+ ($TSK.TINIB_USTKSZ[ARGV[1]]$))),$NL$
+    $END$
+	$TAB$$TAB$},$NL$
+$END$
+
+$FUNCTION GENERATE_STKMPUINFOB$
+	$TAB$$TAB${$NL$
+	$IF OSAP.TRUSTED[TSK.OSAPID[ARGV[1]]]$
+        $TAB$$TAB$$TAB$0,$NL$
+        $TAB$$TAB$$TAB$0,$NL$
+    $ELSE$
+		$IF EQ(TSK.STK[ARGV[1]],"NULL")$
+$			// stkがNULLの場合の処理
+            $IF LENGTH(TSK.SHARED_USTK_ID[ARGV[1]])$
+$               // 共有スタック
+                $TAB$$TAB$$TAB$$FORMAT("&__start_shared_user_stack%s", TSK.PRIORITY[ARGV[1]])$,$NL$
+                $TAB$$TAB$$TAB$$FORMAT("&__limit_shared_user_stack%s", TSK.PRIORITY[ARGV[1]])$,$NL$
+            $ELSE$
+$               // 固有スタック
+                $TAB$$TAB$$TAB$$FORMAT("&__start_user_stack%s", ARGV[1])$,$NL$
+                $TAB$$TAB$$TAB$$FORMAT("&__limit_user_stack%s", ARGV[1])$,$NL$
+            $END$
+        $ELSE$
+$			// stkがNULLでない場合の処理
+            $TAB$$TAB$$TAB$$FORMAT("(uint8 *)%s", TSK.TINIB_USTK[ARGV[1]])$,$NL$
+            $TAB$$TAB$$TAB$$FORMAT("(uint8 *)((uint32)%s + %d)", TSK.TINIB_USTK[ARGV[1]], TSK.TINIB_USTKSZ[ARGV[1]])$,$NL$
+        $END$
+    $END$
+	$TAB$$TAB$},$NL$
+$END$
+
+$INCLUDE "arch/v850_gcc/prc_common.tf"$
+
+$IF __v850e2v3__$
+
+$ 割込みベクタと各割込み入口処理(V850E2V3のみ)
+
+$FILE "Os_Lcfg_asm.S"$
+
+
+$
+$ アセンブラ出力用の関数群
+$
+
+$FUNCTION EXCEPTION_VECTOR_SECTION$
+$TAB$.section .vector,"ax"$NL$
+$END$
+
+$FUNCTION ASM_GLOBAL$
+	$TAB$.global $ARGV[1]$
+$END$
+
+$FUNCTION ASM_LABEL$
+	FLABEL($ARGV[1]$)
+$END$
+
+$FUNCTION ASM_COMMENT$
+	//
+$END$
+
+
+#include <v850asm.inc>$NL$$NL$
+
+$VECTOR_ASMOUT()$
+
+$END$
+$ =end IF __v850e2v3__
+
+
+$IF __v850e3v5__$
+
+$
+$ テーブル参照方式用ベクタテーブル(v850e3v5)
+$
+
+extern void interrupt(void);$NL$
+const uint32 __attribute__((aligned(512))) intbp_tbl[TNUM_INT] = {$NL$
+$JOINEACH intno INTNO_VALID "\n"$
+	$isrid = INT.ISRID[intno]$
+	$IF LENGTH(isrid) && EQ(ISR.CATEGORY[isrid], "CATEGORY_1")$
+		$TAB$(uint32)&$ISR.INT_ENTRY[isrid]$
+	$ELSE$
+		$TAB$(uint32)&interrupt
+	$END$
+$	//カンマの出力（最後の要素の後ろに出力しない）
+	$IF intno != AT(INTNO_VALID,LENGTH(INTNO_VALID) - 1)$
+		,
+	$END$
+	$TAB$$FORMAT("/* %d */", intno)$
+$END$
+$NL$};$NL$
+
+$END$
+
+$ 
+$  arch/gcc/ldscript.tfのターゲット依存部
+$ 
+
+$FUNCTION GENERATE_MEMORY$
+    $NOOP()$
+$END$
+
+$FUNCTION GENERATE_OUTPUT$
+    OUTPUT_FORMAT("elf32-v850-rh850","elf32-v850-rh850","elf32-v850-rh850")$NL$
+    OUTPUT_ARCH(v850-rh850)$NL$
+    $NL$
+$END$
+
+$FUNCTION GENERATE_PROVIDE$
+    PROVIDE(_hardware_init_hook = 0);$NL$
+    PROVIDE(_software_init_hook = 0);$NL$
+    PROVIDE(_software_term_hook = 0);$NL$
+    PROVIDE(_bsssecinib_table = 0);$NL$
+    PROVIDE(_tnum_bsssec = 0);$NL$
+    PROVIDE(_datasecinib_table = 0);$NL$
+    PROVIDE(_tnum_datasec = 0);$NL$
+    $NL$
+
+    $IF LENGTH(OSAP.ID_LIST)$
+        $FOREACH domid OSAP.ID_LIST$
+            $IF !OSAP.TRUSTED[domid]$
+$   RX領域（専用）
+                PROVIDE(___start_text_$OSAP.LABEL[domid]$ = 0xfffffff0);$NL$
+                PROVIDE(___limit_text_$OSAP.LABEL[domid]$ = 0xfffffff0);$NL$
+$   R領域（専用）
+                PROVIDE(___start_sram_$OSAP.LABEL[domid]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$ = 0xfffffff0);$NL$
+                PROVIDE(___limit_sram_$OSAP.LABEL[domid]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$ = 0xfffffff0);$NL$
+$   RWX領域（専用）
+                PROVIDE(___start_ram_$OSAP.LABEL[domid]$ = 0xfffffff0);$NL$
+                PROVIDE(___limit_ram_$OSAP.LABEL[domid]$ = 0xfffffff0);$NL$
+                PROVIDE(___start_sram_$OSAP.LABEL[domid]$ = 0xfffffff0);$NL$
+                PROVIDE(___limit_sram_$OSAP.LABEL[domid]$ = 0xfffffff0);$NL$
+$   共有リード専用ライト
+                PROVIDE($FORMAT("___start_ram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$ = 0xfffffff0);$NL$
+                PROVIDE($FORMAT("___limit_ram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$ = 0xfffffff0);$NL$
+                PROVIDE($FORMAT("___start_sram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$ = 0xfffffff0);$NL$
+                PROVIDE($FORMAT("___limit_sram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$ = 0xfffffff0);$NL$
+            $END$
+        $END$
+        $NL$
+    $END$$NL$
+
+$  共有領域
+    PROVIDE(___start_text_$OSAP.LABEL[TDOM_NONE]$ = 0xfffffff0);$NL$
+    PROVIDE(___limit_text_$OSAP.LABEL[TDOM_NONE]$ = 0xfffffff0);$NL$
+    PROVIDE(___start_sram_$OSAP.LABEL[TDOM_NONE]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$ = 0xfffffff0);$NL$
+    PROVIDE(___limit_sram_$OSAP.LABEL[TDOM_NONE]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$ = 0xfffffff0);$NL$
+    PROVIDE(___start_ram_$OSAP.LABEL[TDOM_NONE]$ = 0xfffffff0);$NL$
+    PROVIDE(___limit_ram_$OSAP.LABEL[TDOM_NONE]$ = 0xfffffff0);$NL$
+    PROVIDE(___start_sram_$OSAP.LABEL[TDOM_NONE]$ = 0xfffffff0);$NL$
+    PROVIDE(___limit_sram_$OSAP.LABEL[TDOM_NONE]$ = 0xfffffff0);$NL$
+$   共有リード専用ライト領域全体
+    PROVIDE(___start_srpw_all = 0xfffffff0);$NL$
+    PROVIDE(___limit_srpw_all = 0xfffffff0);$NL$
+    PROVIDE(___start_ssrpw_all = 0xfffffff0);$NL$
+    PROVIDE(___limit_ssrpw_all = 0xfffffff0);$NL$
+    STARTUP(start.o);$NL$
+    ENTRY(__reset);$NL$
+    $NL$
+$END$
+
+$FUNCTION GENERATE_GP_LABEL$
+    $TAB$$TAB$__gp = . + 32K;$NL$
+    $TAB$$TAB$__tp = . + 32K;$NL$
+$END$
+
+$FILE "kernel_mem2.c"$
+
+$IF __v850e2v3__$
+$   // v850
+$TNUM_SHARED_REGION = 3$
+const uint32 tnum_shared_mem = $TNUM_SHARED_REGION * 2$;$NL$
+uint8 * const shared_meminib_table[$TNUM_SHARED_REGION * 2$] = {$NL$
+$TAB$((uint8 *)&__start_text_$OSAP.LABEL[TDOM_NONE]$),$TAB$/* iregion 2 */$NL$
+$TAB$((uint8 *)&__limit_text_$OSAP.LABEL[TDOM_NONE]$),$TAB$/* iregion 2 */$NL$
+
+$TAB$((uint8 *)NULL),$TAB$/* iregion 3 */$NL$
+$TAB$((uint8 *)NULL),$TAB$/* iregion 3 */$NL$
+
+$TAB$((uint8 *)NULL),$TAB$/* dregion 5 */$NL$
+$TAB$((uint8 *)NULL),$TAB$/* dregion 5 */$NL$
+};$NL$
+$NL$
+$ELIF __v850e3v5__$
+$   // rh850
+$TNUM_SHARED_REGION = 1$
+const uint32 tnum_shared_mem = $TNUM_SHARED_REGION * 2$;$NL$
+uint8 * const shared_meminib_table[$TNUM_SHARED_REGION * 2$] = {$NL$
+$TAB$((uint8 *)NULL),$TAB$/* MPLA 3 */$NL$
+$TAB$((uint8 *)NULL),$TAB$/* MPUA 3 */$NL$
+};$NL$
+$NL$
+$ const uint32 mpu_region_control = 0x01; /* MPRC */$NL$
+$ $NL$
+$END$
+
+$ 
+$  GCC依存部のテンプレートファイルのインクルード
+$ 
+$INCLUDE "gcc/ldscript.tf"$ 
+
+$FILE "cfg2_out.tf"$
+$ LNKSEC.*の出力
+$$numls = $numls$$$$NL$
+$NL$
+$FOREACH lsid RANGE(1, numls)$
+	$$LNKSEC.MEMREG[$lsid$] = $LNKSEC.MEMREG[lsid]$$$$NL$
+	$$LNKSEC.SECTION[$lsid$] = $ESCSTR(LNKSEC.SECTION[lsid])$$$$NL$
+	$NL$
+$END$
+
+$JOINEACH tskid TSK.ID_LIST "\n"$
+	$$TSK.ID[$+tskid$] = $TSK.ID[tskid]$$$
+$END$
+$NL$
+
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/prc_cfg1_out.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/prc_cfg1_out.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/prc_cfg1_out.h	(revision 117)
@@ -0,0 +1,82 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2013 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2013 by FUJISOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by FUJITSU VLSI LIMITED, JAPAN
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2013 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2013 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2013 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2013 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2013 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013 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プロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: prc_cfg1_out.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		cfg1_out.cをリンクするために必要なスタブの定義
+ */
+
+int
+main(void)
+{
+	return(0);
+}
+
+int
+_reset(void)
+{
+	return(0);
+}
+
+StackType * const	_ostkpt = UINT_C(0x00);
+/* =begin modified for SC3 */
+void *syscall_table;
+/* =end modified for SC3 */
+
+/*
+ *  オフセットファイルを生成するための定義
+ */
+const uint8			MAGIC_1 = UINT_C(0x12);
+const uint16		MAGIC_2 = UINT_C(0x1234);
+const uint32		MAGIC_4 = UINT_C(0x12345678);
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/prc_common.tf
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/prc_common.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/prc_common.tf	(revision 117)
@@ -0,0 +1,257 @@
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$  Copyright (C) 2013-2014 by Center for Embedded Computing Systems
+$              Graduate School of Information Science, Nagoya Univ., JAPAN
+$  Copyright (C) 2013-2014 by FUJI SOFT INCORPORATED, JAPAN
+$  Copyright (C) 2013-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+$  Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
+$  Copyright (C) 2013-2014 by Sunny Giken Inc., JAPAN
+$  Copyright (C) 2013-2014 by TOSHIBA CORPORATION, JAPAN
+$  Copyright (C) 2013-2014 by Witz Corporation, JAPAN
+$
+$  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+$  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+$  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+$  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+$      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+$      スコード中に含まれていること．
+$  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+$      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+$      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+$      の無保証規定を掲載すること．
+$  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+$      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+$      と．
+$    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+$        作権表示，この利用条件および下記の無保証規定を掲載すること．
+$    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+$        報告すること．
+$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+$      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+$      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+$      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+$      免責すること．
+$
+$  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+$  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+$  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+$  用する者に対して，AUTOSARパートナーになることを求めている．
+$
+$  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+$  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+$  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$  の責任を負わない．
+$
+$  $Id: prc_common.tf 187 2015-06-25 03:39:04Z t_ishikawa $
+$
+
+$
+$  有効な割込み番号
+$
+$ 
+$ V850ではリセット，NMI，WDTは割込みに分類されるが，リセットは
+$ カーネルが用いるため除外する
+
+$INTNO_VALID = {}$
+$FOREACH intno RANGE(0, TNUM_INT - 1)$
+	$INTNO_VALID = APPEND(INTNO_VALID, intno)$
+$END$
+
+$EXCNO_VALID = {1,2,3,4,5,7}$
+
+$TNUM_EXC = {1,2,3,4,5,6,7}$
+
+$
+$  CRE_ISR2で使用できる割込み番号
+$
+$INTNO_CREISR2_VALID = INTNO_VALID$
+
+$
+$  標準テンプレートファイルのインクルード
+$
+$INCLUDE "kernel/kernel.tf"$
+
+$FOREACH intno INTNO_VALID$
+	$FOREACH isrid ISR.ID_LIST$
+		$IF intno == ISR.INTNO[isrid]$
+			$INT.ISRID[intno] = isrid$
+		$END$
+	$END$
+$END$
+
+
+$FILE "Os_Lcfg.c"$
+
+$
+$ C2ISRの優先度下限
+$
+$n = 0$
+$pmr_isr2_mask = 0xffff$
+$WHILE (n < (MIN_PRI_ISR2 + TNUM_INTPRI))$
+$pmr_isr2_mask = pmr_isr2_mask & ~(0x01 << n)$
+$n = n + 1$
+$END$
+$pmr_isr1_mask = ~pmr_isr2_mask & 0xffff $
+
+const uint16 pmr_isr2_mask = $FORMAT("0x%x",pmr_isr2_mask)$;$NL$
+const uint16 pmr_isr1_mask = $FORMAT("0x%x",pmr_isr1_mask)$;$NL$
+
+$
+$  割込みハンドラテーブル(EIレベル　マスカブル割込み用)
+$
+const FunctionRefType isr_tbl[TNUM_INT] = {$NL$
+$JOINEACH intno INTNO_VALID "\n"$
+	$isrid = INT.ISRID[intno]$
+	$IF LENGTH(isrid)$
+		$TAB$$ISR.INT_ENTRY[isrid]$
+	$ELSE$
+		$TAB$default_int_handler
+	$END$
+$	//カンマの出力（最後の要素の後ろに出力しない）
+	$IF intno != AT(INTNO_VALID,LENGTH(INTNO_VALID) - 1)$
+		,
+	$END$
+	$TAB$$FORMAT("/* %d */", intno)$
+$END$
+$NL$};$NL$
+$NL$
+
+$
+$  ISRCBの取得テーブル(EIレベル　マスカブル割込み用)
+$
+ISRCB *const isr_p_isrcb_tbl[TNUM_INT] = {$NL$
+$JOINEACH intno INTNO_VALID "\n"$
+	$isrid = INT.ISRID[intno]$
+	$IF LENGTH(isrid) && EQ(ISR.CATEGORY[isrid], "CATEGORY_2")$
+		$TAB$&(isrcb_table[$ISR.ID[isrid]$])
+	$ELSE$
+		$TAB$NULL
+	$END$
+$	//カンマの出力（最後の要素の後ろに出力しない）
+	$IF intno != AT(INTNO_VALID,LENGTH(INTNO_VALID) - 1)$
+		,
+	$END$
+	$TAB$$FORMAT("/* %d */", intno)$
+$END$
+$NL$};$NL$
+$NL$
+
+
+$
+$ 割込みベクタと各割込み入口処理の出力関数
+$
+
+$FUNCTION VECTOR_ASMOUT$
+
+$EXCEPTION_VECTOR_SECTION()$
+
+$ASM_GLOBAL("__reset")$
+$NL$
+$ASM_LABEL("__reset")$
+$NL$
+$TAB$$ASM_COMMENT()$
+$FORMAT(" Exception 0x%x ", 0)$$NL$
+$TAB$jr __start$NL$
+$TAB$nop$NL$
+$TAB$nop$NL$
+$TAB$nop$NL$
+$TAB$nop$NL$
+$TAB$nop$NL$
+$TAB$nop$NL$
+
+$
+$ ベクタテーブル(例外 No1-7)
+$
+$ 例外 No1
+$TAB$$ASM_COMMENT()$$FORMAT(" Exception 0x%x ", 1)$$NL$
+$TAB$ldsr  r2, eiwr$NL$
+$TAB$movea $E_OS_PROTECTION_EXCEPTION$, r0, r2$NL$
+$TAB$jr _fe_exception_entry$NL$
+$TAB$nop$NL$
+$TAB$nop$NL$
+$ 例外 No2
+$TAB$$ASM_COMMENT()$$FORMAT(" Exception 0x%x ", 2)$$NL$
+$TAB$ldsr  r2, eiwr$NL$
+$TAB$movea $E_OS_PROTECTION_EXCEPTION$, r0, r2$NL$
+$TAB$jr _fe_exception_entry$NL$
+$TAB$nop$NL$
+$TAB$nop$NL$
+$ 例外 No3
+$TAB$$ASM_COMMENT()$$FORMAT(" Exception 0x%x ", 3)$$NL$
+$TAB$ldsr  r2, eiwr$NL$
+$TAB$movea $E_OS_PROTECTION_MEMORY$, r0, r2$NL$
+$TAB$jr _fe_exception_entry$NL$
+$TAB$nop$NL$
+$TAB$nop$NL$
+$ 例外 No4
+$TAB$$ASM_COMMENT()$$FORMAT(" Exception 0x%x ", 4)$$NL$
+$TAB$ldsr  r2, eiwr$NL$
+$TAB$movea $E_OS_PROTECTION_EXCEPTION$, r0, r2$NL$
+$TAB$jr _ei_exception_entry$NL$
+$TAB$nop$NL$
+$TAB$nop$NL$
+$ 例外 No5
+$TAB$$ASM_COMMENT()$$FORMAT(" Exception 0x%x ", 5)$$NL$
+$TAB$ldsr  r2, eiwr$NL$
+$TAB$movea $E_OS_PROTECTION_EXCEPTION$, r0, r2$NL$
+$TAB$jr _fe_exception_entry$NL$
+$TAB$nop$NL$
+$TAB$nop$NL$
+$ 例外 No6
+$TAB$$ASM_COMMENT()$$FORMAT(" Exception 0x%x ", 6)$$NL$
+$TAB$nop$NL$
+$TAB$nop$NL$
+$TAB$nop$NL$
+$TAB$nop$NL$
+$TAB$nop$NL$
+$TAB$nop$NL$
+$TAB$nop$NL$
+$TAB$nop$NL$
+$ 例外 No7
+$TAB$$ASM_COMMENT()$$FORMAT(" Exception 0x%x ", 7)$$NL$
+$TAB$ldsr  r2, eiwr$NL$
+$TAB$movea $E_OS_PROTECTION_EXCEPTION$, r0, r2$NL$
+$TAB$jr _fe_exception_entry$NL$
+$TAB$nop$NL$
+$TAB$nop$NL$
+
+$
+$ ベクタテーブル(EIレベル マスカブル割込み用(8-255)
+$
+$NL$$FOREACH intno INTNO_VALID$
+$TAB$$ASM_COMMENT()$$FORMAT("0x%x",intno*16 + 0x80)$ $NL$
+	$isrid = INT.ISRID[intno]$
+	$IF LENGTH(isrid)$
+		$IF EQ(ISR.CATEGORY[isrid], "CATEGORY_2")$
+            $TAB$ldsr  r2, eiwr$NL$
+            $TAB$movea $intno$, r0, r2$NL$ 
+            $TAB$jr    _interrupt$NL$
+            $TAB$nop$NL$
+            $TAB$nop$NL$
+		$ELSE$
+			$TAB$jr _$ISR.INT_ENTRY[isrid]$$NL$
+			$TAB$nop$NL$
+			$TAB$nop$NL$
+			$TAB$nop$NL$
+			$TAB$nop$NL$
+			$TAB$nop$NL$
+			$TAB$nop$NL$
+		$END$
+	$ELSE$
+$		// 割込みハンドラの登録がない場合
+		$TAB$jr _default_int_handler$NL$
+		$TAB$nop$NL$
+		$TAB$nop$NL$
+		$TAB$nop$NL$
+		$TAB$nop$NL$
+		$TAB$nop$NL$
+		$TAB$nop$NL$
+	$END$
+$END$
+
+$END$
+
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/prc_config.c
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/prc_config.c	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/prc_config.c	(revision 117)
@@ -0,0 +1,287 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by Spansion LLC, USA
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: prc_config.c 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		プロセッサ依存モジュール（V850用）
+ */
+#include "kernel_impl.h"
+
+/*
+ *  例外（割込み/CPU例外）のネスト回数のカウント
+ *  コンテキスト参照のために使用
+ */
+uint32			except_nest_cnt;
+
+#ifdef CFG_USE_PROTECTIONHOOK
+uint32			v850_cpu_exp_no;
+uint32			v850_cpu_exp_pc;
+uint32			v850_cpu_exp_sp;
+#endif /* CFG_USE_PROTECTIONHOOK */
+
+/*
+ * 現在の割込み優先度マスクの値（内部表現）
+ */
+uint8			current_iintpri;
+
+/* 割り込み要求マスクテーブル */
+const uint16	pmr_setting_tbl[] =
+{
+#if TNUM_INTPRI == 16
+	0xffff, /* ISR2 LEVEL -16 MASK */
+	0xfffe, /* ISR2 LEVEL -15 MASK */
+	0xfffc, /* ISR2 LEVEL -14 MASK */
+	0xfff8, /* ISR2 LEVEL -13 MASK */
+	0xfff0, /* ISR2 LEVEL -12 MASK */
+	0xffe0, /* ISR2 LEVEL -11 MASK */
+	0xffc0, /* ISR2 LEVEL -10 MASK */
+	0xff80, /* ISR2 LEVEL -9 MASK */
+	0xff00, /* ISR2 LEVEL -8 MASK */
+	0xfe00, /* ISR2 LEVEL -7 MASK */
+	0xfc00, /* ISR2 LEVEL -6 MASK */
+	0xf800, /* ISR2 LEVEL -5 MASK */
+	0xf000, /* ISR2 LEVEL -4 MASK */
+	0xe000, /* ISR2 LEVEL -3 MASK */
+	0xc000, /* ISR2 LEVEL -2 MASK */
+	0x8000, /* ISR2 LEVEL -1 MASK */
+	0x0000  /* Dummy			  */
+#elif TNUM_INTPRI == 8
+	0x00ff, /* ISR2 LEVEL -8 MASK */
+	0x00fe, /* ISR2 LEVEL -7 MASK */
+	0x00fc, /* ISR2 LEVEL -6 MASK */
+	0x00f8, /* ISR2 LEVEL -5 MASK */
+	0x00f0, /* ISR2 LEVEL -4 MASK */
+	0x00e0, /* ISR2 LEVEL -3 MASK */
+	0x00c0, /* ISR2 LEVEL -2 MASK */
+	0x0080, /* ISR2 LEVEL -1 MASK */
+	0x0000  /* Dummy			  */
+#else
+#error TNUM_INTPRI is illegal.
+#endif /* TNUM_INTPRI == 16 */
+};
+
+/*
+ *  x_nested_lock_os_int()のネスト回数
+ */
+volatile uint8	nested_lock_os_int_cnt;
+
+/*
+ *  OS割込み禁止状態の時に割込み優先度マスクを保存する変数
+ */
+volatile uint16	current_intpri;
+
+/* =begin added for SC3 */
+/*
+ *  非信頼フックルーチンを実行する前のシステムスタックのスタックポインタ
+ */
+uint32				hook_savedsp;
+
+uint32				shutdown_hook_savedsp;
+
+uint32				trusted_hook_savedsp;
+/* =end added for SC3 */
+
+/*
+ *  起動時のハードウェア初期化
+ */
+void
+prc_hardware_initialize(void)
+{
+}
+
+#ifdef __v850e3v5__
+extern const uint32 intbp_tbl[];
+#endif /* __v850e3v5__ */
+
+/*
+ *  プロセッサ依存の初期化
+ */
+void
+prc_initialize(void)
+{
+	/*
+	 *  カーネル起動時は非タスクコンテキストとして動作させるため1に
+	 */
+	except_nest_cnt = 1U;
+
+	/*
+	 * 割込み優先度マスクの初期値は最低優先度
+	 */
+	current_iintpri = INT_IPM(0);
+
+    /* =begin added for SC3 */
+    target_mpu_initialize();
+    /* =end added for SC3 */
+#ifdef __v850e3v5__
+	/* テーブル参照方式のINTBPアドレス設定 */
+	set_intbp((uint32)intbp_tbl);
+#endif /* __v850e3v5__ */
+}
+
+/*
+ *  プロセッサ依存の終了処理
+ */
+void
+prc_terminate(void)
+{
+	/* 割り込み処理中で終了した場合を想定してISPRをクリアする */
+	clear_ispr();
+
+	/* 例外処理から終了した場合を想定してNP/EPビットをクリアする */
+	set_psw(current_psw() & ~(0x0080 | 0x0040));
+}
+
+/*
+ *  割込み要求ラインの属性の設定
+ */
+void
+x_config_int(InterruptNumberType intno, AttributeType intatr, PriorityType intpri)
+{
+	uint32 eic_address;
+
+	ASSERT(VALID_INTNO(intno));
+
+	eic_address = EIC_ADDRESS(intno);
+
+	/*
+	 *  割込みのマスク
+	 *
+	 *  割込みを受け付けたまま，レベルトリガ／エッジトリガの設定や，割
+	 *  込み優先度の設定を行うのは危険なため，割込み属性にかかわらず，
+	 *  一旦マスクする．
+	 */
+	(void) x_disable_int(intno);
+
+	/*
+	 *  割込み優先度の設定
+	 */
+	sil_wrh_mem((void *) eic_address,
+				((sil_reh_mem((void *) eic_address) & ~0x0f) | INT_IPM(intpri)));
+
+#ifdef __v850e3v5__
+	/* テーブル参照方式 */
+	sil_wrh_mem((uint16 *) eic_address,
+				(sil_reh_mem((uint16 *) eic_address) | (1 << 6)));
+#endif /* __v850e3v5__ */
+
+    if ((intatr & ENABLE) != 0U) {
+        /*
+         *  初期状態が割込み許可であれば，割込みを許可
+         */
+        (void) x_enable_int(intno);
+    }
+}
+
+#ifndef OMIT_DEFAULT_INT_HANDLER
+
+/*
+ *  未定義の割込みが入った場合の処理
+ */
+void
+default_int_handler(void)
+{
+	target_fput_str("Unregistered Interrupt occurs.");
+	ASSERT(0);
+}
+
+#endif /* OMIT_DEFAULT_INT_HANDLER */
+
+/*
+ *  無限ループ処理
+ *  (デバッグ時の無限ループ到達確認用 / 最適化防止のためここで定義する)
+ */
+void
+infinite_loop(void)
+{
+	while (1) {
+	}
+}
+
+/* =begin added for SC3 */
+/*
+ *  startからendまでの領域が
+ *  非信頼フックルーチン実行時のスタックに含まれるかチェックする
+ */
+AccessType
+probe_nthkstk(const MemoryStartAddressType start, const MemoryStartAddressType end)
+{
+	AccessType result = AP_NoAccess;
+
+	if (hook_savedsp != 0U) {
+		if ((start >= (const MemoryStartAddressType) _nthkstk) &&
+			(end <= (const MemoryStartAddressType) ((const MemorySizeType) _nthkstk + _nthkstksz))) {
+			result = AP_Writable | AP_Readable | AP_StackSpace;
+		}
+	}
+	return(result);
+}
+
+/*
+ *  不正な機能コードを指定して，システムサービス発行時の処理
+ */
+
+StatusType
+no_support_service(void)
+{
+	StatusType ercd = E_OS_SERVICEID;
+
+#ifdef CFG_USE_ERRORHOOK
+	x_nested_lock_os_int();
+	call_errorhook(ercd, OSServiceId_INVALID);
+	x_nested_unlock_os_int();
+#endif /* CFG_USE_ERRORHOOK */
+
+	return(ercd);
+}
+
+/* =end added for SC3 */
+
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/prc_config.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/prc_config.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/prc_config.h	(revision 117)
@@ -0,0 +1,702 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2013 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2013 by FUJISOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by FUJITSU VLSI LIMITED, JAPAN
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2013 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2013 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2013 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2013 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2013 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013 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プロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: prc_config.h 189 2015-06-26 01:54:57Z t_ishikawa $
+ */
+
+/*
+ *		プロセッサ依存モジュール（V850用）
+ *
+ *  このインクルードファイルは，target_config.h（または，そこからインク
+ *  ルードされるファイル）のみからインクルードされる．他のファイルから
+ *  直接インクルードしてはならない
+ */
+
+#ifndef TOPPERS_PRC_CONFIG_H
+#define TOPPERS_PRC_CONFIG_H
+
+#include "prc_sil.h"
+#include "target_mpu.h"
+
+/*
+ *  エラーチェック方法の指定
+ */
+/* =begin modified for SC3 */
+#ifndef CHECK_SSTKSZ_ALIGN
+#define CHECK_SSTKSZ_ALIGN	UINT_C(4)   /* システムスタックサイズのアライン単位 */
+#endif /* CHECK_STKSZ_ALIGN */
+
+#ifndef CHECK_USTKSZ_ALIGN
+#define CHECK_USTKSZ_ALIGN	UINT_C(16)   /* ユーザスタックサイズのアライン単位 */
+#endif /* CHECK_USTKSZ_ALIGN */
+/* =end modified for SC3 */
+
+#ifndef CHECK_FUNC_ALIGN
+#define CHECK_FUNC_ALIGN	UINT_C(2)   /* 関数のアライン単位 */
+#endif /* CHECK_FUNC_ALIGN */
+
+#define CHECK_FUNC_NONNULL      /* 関数の非NULLチェック */
+
+#ifndef CHECK_STACK_ALIGN
+#define CHECK_STACK_ALIGN	UINT_C(4)   /* スタック領域のアライン単位 */
+#endif /* CHECK_STACK_ALIGN */
+
+#define CHECK_STACK_NONNULL     /* スタック領域の非NULLチェック */
+
+/* =begin modified for SC3 */
+/*
+ *  ターゲットで追加するシステムサービステーブル定義
+ */
+#ifndef OTHER_PRC_SVC_TABLE
+#ifdef USE_KERNEL_LIBRARY_SYSLOG
+/* シスログ機能有効時 */
+#define PRC_SVC_TABLE	(void *) &call_nontrusted_hook_trap_ret, \
+	(void *) &_kernel_KernelLibrarySyslog
+#define PRC_SVC_NUM		2
+#else /* USE_KERNEL_LIBRARY_SYSLOG */
+/* シスログ機能無効時 */
+#define PRC_SVC_TABLE	(void *) &call_nontrusted_hook_trap_ret
+#define PRC_SVC_NUM		1
+#endif /* USE_KERNEL_LIBRARY_SYSLOG */
+#else /* OTHER_PRC_SVC_TABLE */
+#define STR(a)	STR_(a)
+#define STR_(a)	# a
+#include STR(OTHER_PRC_SVC_TABLE)
+#endif /* OTHER_PRC_SVC_TABLE */
+
+#define TFN_HOOK_RETURN	(TMAX_SVCID - PRC_SVC_NUM + 1)
+/*
+ *  svcで呼び出す処理の種類
+ *   システムサービスの入り口
+ *   非信頼フックの出口
+ */
+#define SYSCALL_SIZE    2
+/* =end modified for SC3 */
+
+#define call_errorhook(ercd, svcid)		stack_change_and_call_func_2((void *) &internal_call_errorhook, (ercd), (svcid))
+#define call_shutdownhook(ercd)			stack_change_and_call_func_1((void *) &internal_call_shtdwnhk, ((uint32) (ercd)))
+
+/*
+ *  割込み番号の範囲の判定
+ */
+#if TMIN_INTNO == 0
+#define VALID_INTNO(intno)	((intno) <= (InterruptNumberType) (TMAX_INTNO))
+#else /* TMIN_INTNO != 0 */
+#define VALID_INTNO(intno)	(((InterruptNumberType) (TMIN_INTNO) <= (intno)) && ((intno) <= (InterruptNumberType) (TMAX_INTNO)))
+#endif /* TMIN_INTNO == 0 */
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  非タスクコンテキスト用のスタック開始アドレス設定マクロ
+ */
+#define TOPPERS_OSTKPT(stk, stksz)	((StackType *) ((sint8 *) (stk) + (stksz)))
+
+/*
+ *  プロセッサの特殊命令のインライン関数定義
+ */
+#include <prc_insn.h>
+
+/*
+ *  TOPPERS標準割込み処理モデルの実現
+ */
+
+/*
+ * 例外（割込み/CPU例外）のネスト回数のカウント
+ *
+ * コンテキスト参照のために使用
+ */
+extern uint32		except_nest_cnt;
+
+/*
+ *  カーネル管理内（カテゴリ2）の割込みを禁止するためのPMRの設定値
+ */
+extern const uint16	pmr_isr2_mask;
+
+/*
+ *  カーネル管理外（カテゴリ1）の割込みとなる優先度のPMRのビット
+ */
+extern const uint16	pmr_isr1_mask;
+
+/*
+ *  現在の割込み優先度の値（内部表現）
+ */
+extern uint8		current_iintpri;
+
+/*
+ * 割り込み要求マスクテーブル（PMRへの設定値）
+ */
+extern const uint16	pmr_setting_tbl[];
+
+/*
+ *  無限ループ処理
+ */
+extern void infinite_loop(void) NoReturn;
+
+/* =begin modified for SC3 */
+extern char8 call_nontrusted_hook_trap_ret;
+/* =end modified for SC3 */
+
+/*
+ *  割込み優先度の内部表現と外部表現の変更
+ */
+#ifndef TOPPERS_MACRO_ONLY
+#define EXT_IPM(iipm)	((PriorityType) (iipm - (TNUM_INTPRI)))     /* 内部表現を外部表現に */
+#define INT_IPM(ipm)	((uint32) (ipm + (TNUM_INTPRI)))            /* 外部表現を内部表現に */
+#else /* TOPPERS_MACRO_ONLY */
+#define EXT_IPM(iipm)	(iipm - (TNUM_INTPRI))              /* 内部表現を外部表現に */
+#define INT_IPM(ipm)	(ipm + (TNUM_INTPRI))               /* 外部表現を内部表現に */
+#endif /* TOPPERS_MACRO_ONLY */
+
+/*
+ *  全割込み禁止状態への移行
+ */
+LOCAL_INLINE void
+x_lock_all_int(void)
+{
+	disable_int();
+}
+
+/*
+ *  全割込み禁止状態の解除
+ */
+LOCAL_INLINE void
+x_unlock_all_int(void)
+{
+	enable_int();
+}
+
+/*
+ *  x_nested_lock_os_int()のネスト回数
+ *  アクセスの順序が変化しないよう，volatile を指定
+ */
+extern volatile uint8 nested_lock_os_int_cnt;
+
+/*
+ *  OS割込み禁止
+ *  API実行時に呼び出される
+ *  割込み優先度マスクがISR2の優先度マスクの範囲より高い状態で呼び出される
+ *  ことはない(ISR1から呼び出されることはない)
+ */
+LOCAL_INLINE void
+x_nested_lock_os_int(void)
+{
+	/*
+	 *  一段目なら割込みの禁止レベルに設定割込み優先度マスクの値を保存
+	 */
+	if (nested_lock_os_int_cnt == 0U) {
+		set_pmr(pmr_isr2_mask);   /* OS割り込み禁止に設定 */
+	}
+	nested_lock_os_int_cnt++;
+
+	V850_MEMORY_CHANGED
+}
+
+/*
+ *  OS割込み解除
+ *  API実行時に呼び出される
+ *  割込み優先度マスクがISR2の優先度マスクの範囲より高い状態で呼び出される
+ *  ことはない(ISR1から呼び出されることはない)
+ */
+LOCAL_INLINE void
+x_nested_unlock_os_int(void)
+{
+	V850_MEMORY_CHANGED
+	ASSERT(nested_lock_os_int_cnt > 0U);
+	nested_lock_os_int_cnt--;
+
+	/*
+	 *  一番外側なら割込み優先度マスクを更新
+	 */
+	if (nested_lock_os_int_cnt == 0U) {
+		set_pmr(pmr_setting_tbl[current_iintpri]);
+	}
+}
+
+/*
+ *  SuspendOSInterrupts()から呼び出すOS割込み禁止状態への移行
+ *  x_nested_lock_os_int()との違いは，ISR1から呼び出される可能性があるため，
+ *  現在のISPRがOS割込み禁止時の値より小さい場合はISR1から呼び出されたとして，
+ *  何もせずリターンする
+ */
+LOCAL_INLINE void
+x_suspend_lock_os_int(void)
+{
+	uint16 ispr;
+
+	ispr = get_ispr();
+
+	if ((ispr & pmr_isr1_mask) == 0U) {
+		/*
+		 *  カテゴリ1 ISRから呼ばれた場合は何もしない
+		 */
+		if (nested_lock_os_int_cnt == 0U) {
+			set_pmr(pmr_isr2_mask);   /* OS割り込み禁止に設定 */
+		}
+		nested_lock_os_int_cnt++;
+		V850_MEMORY_CHANGED
+	}
+}
+
+/*
+ *  ResumeOSInterrupts()から呼び出すOS割込み禁止状態の解除
+ *  x_nested_lock_os_int()との違いは，ISR1から呼び出される可能性があるため，
+ *  現在のISPRがOS割込み禁止時の値より小さい場合はISR1から呼び出されたとして，
+ *  何もせずリターンする
+ */
+LOCAL_INLINE void
+x_resume_unlock_os_int(void)
+{
+	uint16	ispr;
+
+	V850_MEMORY_CHANGED
+	ispr = get_ispr();
+
+	if ((ispr & pmr_isr1_mask) == 0U) {
+		/*
+		 *  カテゴリ1 ISRから呼ばれた場合は何もしない
+		 */
+		ASSERT(nested_lock_os_int_cnt > 0U);
+		nested_lock_os_int_cnt--;
+
+		/*
+		 *  一番外側なら割込み優先度マスクを更新
+		 */
+		if (nested_lock_os_int_cnt == 0U) {
+			set_pmr(pmr_setting_tbl[current_iintpri]);
+		}
+	}
+}
+
+
+/*
+ *  (モデル上の)割込み優先度マスクの設定
+ *
+ *  本OSでは次の二点が成り立つ
+ *    * OS割込み禁止状態で呼び出される
+ *    * OS割込み禁止時の優先度より高い値は指定されない
+ *  OS割込み禁止はPMRで実現されており，ここでPMRを変更すると，OS割込み禁止
+ *  が解除される場合があるため，内部変数(current_iintpri) の変更のみを行う．
+ *  優先度マスクの変更は，APIの出口で呼び出される，x_nested_unlock_os_int()
+ *  で実施される．
+ */
+LOCAL_INLINE void
+x_set_ipm(PriorityType intpri)
+{
+	ASSERT(nested_lock_os_int_cnt > 0U);
+
+	current_iintpri = INT_IPM(intpri);
+}
+
+/*
+ *  (モデル上の)割込み優先度マスクの参照
+ *
+ *  本OSでは次の点が成り立つ
+ *    * OS割込み禁止状態で呼び出される
+ */
+LOCAL_INLINE PriorityType
+x_get_ipm(void)
+{
+	ASSERT(nested_lock_os_int_cnt > 0U);
+	return(EXT_IPM(current_iintpri));
+}
+
+/*
+ *  割込み要求禁止フラグのセット
+ *
+ *  割込み属性が設定されていない割込み要求ラインに対して割込み要求禁止
+ *  フラグをクリアしようとした場合には，falseを返す．
+ */
+LOCAL_INLINE boolean
+x_disable_int(InterruptNumberType intno)
+{
+	uint32 eic_address = EIC_ADDRESS(intno);
+
+	if (!VALID_INTNO(intno)) {
+		return(FALSE);
+	}
+
+	/* 割込みの禁止(7bit目をセット) */
+	sil_wrh_mem((void *) eic_address,
+				sil_reh_mem((void *) eic_address) | (0x01U << 7));
+
+	return(TRUE);
+}
+/*
+ *  割込み要求禁止フラグの解除
+ *
+ *  割込み属性が設定されていない割込み要求ラインに対して割込み要求禁止
+ *  フラグをクリアしようとした場合には，falseを返す．
+ */
+
+LOCAL_INLINE boolean
+x_enable_int(InterruptNumberType intno)
+{
+	uint32 eic_address = EIC_ADDRESS(intno);
+
+	if (!VALID_INTNO(intno)) {
+		return(FALSE);
+	}
+
+	/* 7bit目をクリア */
+	sil_wrh_mem((void *) eic_address,
+				sil_reh_mem((void *) eic_address) & ~(0x01U << 7));
+
+	return(TRUE);
+}
+
+/*
+ *  割込み要求のクリア
+ */
+LOCAL_INLINE boolean
+x_clear_int(InterruptNumberType intno)
+{
+	uint32 eic_address = EIC_ADDRESS(intno);
+
+	if (!VALID_INTNO(intno)) {
+		return(FALSE);
+	}
+
+	/* 割込みのクリア(12bit目をクリア) */
+	sil_wrh_mem((void *) eic_address,
+				sil_reh_mem((void *) eic_address) & ~(0x01U << 12));
+
+	return(TRUE);
+}
+
+/*
+ *  割込み要求のチェック
+ */
+LOCAL_INLINE boolean
+x_probe_int(InterruptNumberType intno)
+{
+	uint32	eic_address = EIC_ADDRESS(intno);
+	uint16	tmp;
+
+	if (!VALID_INTNO(intno)) {
+		return(FALSE);
+	}
+
+	tmp = sil_reh_mem((void *) (eic_address));
+	return((tmp & 0x1000) != 0);
+}
+
+/*
+ *  割込み要求ラインの属性の設定
+ */
+extern void x_config_int(InterruptNumberType intno, AttributeType intatr, PriorityType intpri);
+
+/*
+ *  割込みハンドラの入り口で必要なIRC操作
+ */
+LOCAL_INLINE void
+i_begin_int(InterruptNumberType intno)
+{
+
+}
+
+/*
+ *  割込みハンドラの出口で必要なIRC操作
+ */
+LOCAL_INLINE void
+i_end_int(InterruptNumberType intno)
+{
+
+}
+
+/*
+ *  未定義の割込みが入った場合の処理
+ */
+extern void default_int_handler(void);
+extern void _start(void);
+extern void prc_hardware_initialize(void);
+
+/*
+ *  プロセッサ依存の初期化
+ */
+extern void prc_initialize(void);
+
+/*
+ *  プロセッサ依存の終了時処理
+ */
+extern void prc_terminate(void);
+
+/*
+ *  タスクディスパッチャ
+ */
+
+/*
+ *  最高優先順位タスクへのディスパッチ（prc_support.S）
+ *
+ *  dispatch は，タスクコンテキストから呼び出されたサービスコール処理
+ *  内で，OS割込み禁止状態で呼び出さなければならない
+ */
+extern void dispatch(void);
+
+/*
+ *  ディスパッチャの動作開始（prc_support.S）
+ *
+ *  start_dispatchは，カーネル起動時に呼び出すべきもので，すべての割込
+ *  みを禁止した状態（全割込み禁止状態と同等の状態）で呼び出さなければ
+ *  ならない
+ */
+extern void start_dispatch(void) NoReturn;
+
+/*
+ *  現在のコンテキストを捨ててディスパッチ（prc_support.S）
+ *
+ *  exit_and_dispatch は，OS割込み禁止状態で呼び出さなければならない
+ */
+extern void exit_and_dispatch(void) NoReturn;
+
+/* =begin added for SC3 */
+/*
+ *  現在のコンテキストを捨ててディスパッチ（prc_support.S）
+ *   PosttaskHook を呼ばないエントリ
+ *
+ *  exit_and_dispatch_nohook は，OS割込み禁止状態で呼び出さなければならない
+ */
+extern void exit_and_dispatch_nohook(void) NoReturn;
+/* =end added for SC3 */
+
+/*
+ *  タスクコンテキストブロックの定義
+ */
+typedef struct task_context_block {
+    /* =begin modified for SC3 */
+	void	*ssp;               /* システムスタックポインタ */
+	void	*usp;               /* ユーザスタックポインタ */
+    boolean priv_mode;          /* 特権モード実行中か */
+    /* =end modified for SC3 */
+	FunctionRefType	pc;         /* プログラムカウンタ */
+} TSKCTXB;
+
+/* =begin modified for SC3 */
+/*
+ *	タスク初期化コンテキストブロック
+ */
+#define USE_TSKINICTXB	/*  TSKINICTXBを使用する  */
+
+typedef struct task_initialization_context_block {
+	MemorySizeType sstksz;  /* スタック領域のサイズ（丸めた値） */
+	void	*sstk_bottom;	/* スタックポインタの初期値（スタックの底の初期値） */
+	MemorySizeType stksz;   /* スタック領域のサイズ（丸めた値） */
+	void	*stk_bottom;	/* スタックポインタの初期値（スタックの底の初期値） */
+} TSKINICTXB;
+
+/* 
+ *  スタックのMPU情報
+ */
+typedef struct task_stack_mpu_info_block {
+    uint8 *start_ustk_label;
+    uint8 *limit_ustk_label;
+} STKMPUINFOB;
+
+/*
+ *  OSアプリケーションのMPU情報
+ */
+
+#if 0
+typedef struct {
+    uint8 *start_text_label;
+    uint8 *limit_text_label;
+    uint8 *start_rosdata_label;
+    uint8 *limit_rosdata_label;
+    uint8 *start_ram_label;
+    uint8 *limit_ram_label;
+    uint8 *start_sram_label;
+    uint8 *limit_sram_label;
+    uint8 *start_srpw_label;
+    uint8 *limit_srpw_label;
+    uint8 *start_ssrpw_label;
+    uint8 *limit_ssrpw_label;
+} OSAPMPUINFOB_INFO;
+
+typedef struct {
+    OSAPMPUINFOB_INFO *p_osap_mpu_info;
+} OSAPMPUINFOB;
+#else
+typedef struct {
+#ifdef __v850e2v3__
+    uint8 *start_text_label;
+    uint8 *limit_text_label;
+    uint8 *start_rosdata_label;
+    uint8 *limit_rosdata_label;
+    uint8 *start_ram_label;
+    uint8 *limit_ram_label;
+    uint8 *start_sram_label;
+    uint8 *limit_sram_label;
+#endif /* __v850e2v3__ */
+    uint8 *start_srpw_label;
+    uint8 *limit_srpw_label;
+    uint8 *start_ssrpw_label;
+    uint8 *limit_ssrpw_label;
+    uint32 mprc;
+} OSAPMPUINFOB;
+#endif
+/* =end modified for SC3 */
+
+/*
+ *  タスクコンテキストの初期化
+ *
+ *  タスクが休止状態から実行できる状態に移行する時に呼ばれる．この時点
+ *  でスタック領域を使ってはならない
+ *
+ *  activate_contextを，インライン関数ではなくマクロ定義としているのは，
+ *  この時点ではTCBが定義されていないためである
+ */
+/* =begin modified for SC3 */
+extern void    start_stask_r(void);
+extern void    start_utask_r(void);
+
+#define activate_context(p_tcb)                                         \
+{\
+	(p_tcb)->tskctxb.ssp = (p_tcb)->p_tinib->tskinictxb.sstk_bottom;	\
+	(p_tcb)->tskctxb.pc = ((p_tcb)->p_tinib->p_osapcb->p_osapinib->osap_trusted != FALSE) ? (FunctionRefType)start_stask_r: (FunctionRefType)start_utask_r;       \
+	(p_tcb)->tskctxb.priv_mode = 0U; \
+}
+
+#define TOPPERS_SSTK_MAGIC_REGION(p_tinib)	((StackType *) ((uint32)(p_tinib)->tskinictxb.sstk_bottom - (uint32)(p_tinib)->tskinictxb.sstksz))
+/* =end modified for SC3 */
+
+/* 引数の型はハードウェアが扱えるサイズ（uint32）と同サイズを使用 */
+extern void stack_change_and_call_func_1(void *func, uint32 arg1);
+extern void stack_change_and_call_func_2(void *func, uint8 arg1, uint8 arg2);
+
+#ifdef ENABLE_RETURN_MAIN
+/*
+ *  AKTSP用のmain()へのリターンコード（prc_support.S）
+ */
+extern void return_main(void);
+#endif /* ENABLE_RETURN_MAIN */
+
+/* =begin modified for SC3 */
+#define call_protectionhk_main_stkchg(ercd)	stack_change_and_call_func_1((void *) &call_protectionhk_main, ((uint32) (ercd)))
+
+extern AccessType probe_nthkstk(const MemoryStartAddressType start, const MemoryStartAddressType end);
+extern void cancel_nontrusted_hook(void);
+extern void call_nontrusted_hook(void *hook, StatusType arg, uint32 HookType);
+#if 0
+extern void exit_nontrusted_shutdown_hook(void) NoReturn;
+#endif
+extern void exit_nontrusted_hook(void) NoReturn;
+
+extern void call_trusted_hook(void *hook, StatusType arg);
+extern void exit_trusted_shutdown_hook(void) NoReturn;
+extern StatusType trustedfunc_stack_check(MemorySizeType size);
+extern StatusType no_support_service(void);
+
+/*
+ * 非信頼フックルーチンを実行する前のシステムスタックのスタックポインタ
+ */
+extern uint32		hook_savedsp;
+
+extern uint32		shutdown_hook_savedsp;
+
+extern uint32		trusted_hook_savedsp;
+
+/*
+ * OS割込み禁止時のstatus.ILへの設定値
+ */
+extern const uint32	tmin_status_il;
+
+/*
+ *  x_nested_lock_os_int()のネスト回数
+ *  アクセスの順序が変化しないよう，volatile を指定
+ */
+extern volatile uint8	nested_lock_os_int_cnt;
+
+LOCAL_INLINE void
+x_clear_nested_os_int(void)
+{
+	ASSERT(nested_lock_os_int_cnt > 0U);
+	nested_lock_os_int_cnt = 1U;
+}
+
+/*
+ * 非信頼フックルーチンの実行中か
+ */
+LOCAL_INLINE boolean
+is_running_nontrusted_hook(void)
+{
+	return(hook_savedsp != 0U);
+}
+
+/*
+ * 非信頼シャットダウンフックの実行中か
+ */
+LOCAL_INLINE boolean
+is_running_nontrusted_shtdwnhk(void)
+{
+	return(shutdown_hook_savedsp != 0U);
+}
+
+#define check_address_sstack(base, size, p_tinib) (check_address_stack(base, size, (const MemoryStartAddressType)((uint32)(p_tinib)->tskinictxb.sstk_bottom - (uint32)(p_tinib)->tskinictxb.sstksz), (p_tinib)->tskinictxb.sstksz))
+#define check_address_ustack(base, size, p_tinib) (check_address_stack(base, size, (const MemoryStartAddressType)((uint32)(p_tinib)->tskinictxb.stk_bottom - (uint32)(p_tinib)->tskinictxb.stksz), (p_tinib)->tskinictxb.stksz))
+
+/* =end modified for SC3 */
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+/* =begin modified for SC3 */
+/*
+ *  syscallのパラメータ
+ */
+#define NO_SVC          1   /* サービスコール呼び出し時のsvcの引数 */
+#define NO_HOOK_RET     2   /* 非信頼フックからのリターン時のsvcの引数 */
+
+#ifdef USE_KERNEL_LIBRARY_SYSLOG
+#include "prc_syslog.h"
+#endif /* USE_KERNEL_LIBRARY_SYSLOG */
+/* =end modified for SC3 */
+
+#endif /* TOPPERS_PRC_CONFIG_H */
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/prc_def.csv
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/prc_def.csv	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/prc_def.csv	(revision 117)
@@ -0,0 +1,41 @@
+offsetof_TCB_p_tinib,"offsetof(TCB,p_tinib)"
+offsetof_TCB_curpri,"offsetof(TCB,curpri)"
+offsetof_TCB_ssp,"offsetof(TCB,tskctxb.ssp)"
+offsetof_TCB_usp,"offsetof(TCB,tskctxb.usp)"
+offsetof_TCB_priv_mode,"offsetof(TCB,tskctxb.priv_mode)"
+offsetof_TCB_pc,"offsetof(TCB,tskctxb.pc)"
+offsetof_TINIB_exepri,"offsetof(TINIB,exepri)"
+offsetof_TINIB_TSKINICTXB_sstksz,"offsetof(TINIB,tskinictxb.sstksz)"
+offsetof_TINIB_TSKINICTXB_sstk_bottom,"offsetof(TINIB,tskinictxb.sstk_bottom)"
+offsetof_TINIB_TSKINICTXB_stksz,"offsetof(TINIB,tskinictxb.stksz)"
+offsetof_TINIB_TSKINICTXB_stk_bottom,"offsetof(TINIB,tskinictxb.stk_bottom)"
+offsetof_TINIB_STKMPUINFOB_start_ustk,"offsetof(TINIB,stkmpu.start_ustk_label)"
+offsetof_TINIB_STKMPUINFOB_limit_ustk,"offsetof(TINIB,stkmpu.limit_ustk_label)"
+offsetof_OSAPCB_p_osapinib,"offsetof(OSAPCB,p_osapinib)"
+offsetof_TINIB_p_osapcb,"offsetof(TINIB,p_osapcb)"
+offsetof_INTINIB_remain_stksz,"offsetof(INTINIB,remain_stksz)"
+offsetof_ISRINIB_p_intinib,"offsetof(ISRINIB,p_intinib)"
+offsetof_ISRINIB_p_osapcb,"offsetof(ISRINIB,p_osapcb)"
+offsetof_OSAPINIB_osap_trusted,"offsetof(OSAPINIB,osap_trusted)"
+offsetof_OSAPINIB_osapmpu,"offsetof(OSAPINIB,osap_mpu)"
+offsetof_OSAPINIB_start_text,#(MPU_REGION_NUM >= 11),,"offsetof(OSAPINIB,osap_mpu.start_text_label)"
+offsetof_OSAPINIB_limit_text,#(MPU_REGION_NUM >= 11),,"offsetof(OSAPINIB,osap_mpu.limit_text_label)"
+offsetof_OSAPINIB_start_rosdata,#(MPU_REGION_NUM >= 11),,"offsetof(OSAPINIB,osap_mpu.start_rosdata_label)"
+offsetof_OSAPINIB_limit_rosdata,#(MPU_REGION_NUM >= 11),,"offsetof(OSAPINIB,osap_mpu.limit_rosdata_label)"
+offsetof_OSAPINIB_start_ram,#(MPU_REGION_NUM >= 11),,"offsetof(OSAPINIB,osap_mpu.start_ram_label)"
+offsetof_OSAPINIB_limit_ram,#(MPU_REGION_NUM >= 11),,"offsetof(OSAPINIB,osap_mpu.limit_ram_label)"
+offsetof_OSAPINIB_start_sram,#(MPU_REGION_NUM >= 11),,"offsetof(OSAPINIB,osap_mpu.start_sram_label)"
+offsetof_OSAPINIB_limit_sram,#(MPU_REGION_NUM >= 11),,"offsetof(OSAPINIB,osap_mpu.limit_sram_label)"
+offsetof_OSAPINIB_start_srpw,"offsetof(OSAPINIB,osap_mpu.start_srpw_label)"
+offsetof_OSAPINIB_limit_srpw,"offsetof(OSAPINIB,osap_mpu.limit_srpw_label)"
+offsetof_OSAPINIB_start_ssrpw,"offsetof(OSAPINIB,osap_mpu.start_ssrpw_label)"
+offsetof_OSAPINIB_limit_ssrpw,"offsetof(OSAPINIB,osap_mpu.limit_ssrpw_label)"
+offsetof_OSAPINIB_mprc,"offsetof(OSAPINIB,osap_mpu.mprc)"
+sizeof_OSAPINIB,"sizeof(OSAPINIB)"
+offsetof_ISRCB_p_isrinib,"offsetof(ISRCB,p_isrinib)"
+TNUM_INTPRI,TNUM_INTPRI
+TNUM_INT,TNUM_INT
+__v850e2v3__,#defined(__v850e2v3__)
+__v850e3v5__,#defined(__v850e3v5__) 
+E_OS_PROTECTION_MEMORY,E_OS_PROTECTION_MEMORY
+E_OS_PROTECTION_EXCEPTION,E_OS_PROTECTION_EXCEPTION
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/prc_design.txt
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/prc_design.txt	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/prc_design.txt	(revision 117)
@@ -0,0 +1,545 @@
+
+		TOPPERS/ATK2-SC3
+        ＜V850依存部設計メモ＞
+
+このドキュメントはV850プロセッサ依存部の設計メモを記述したものである．
+
+----------------------------------------------------------------------
+TOPPERS ATK2
+    Toyohashi Open Platform for Embedded Real-Time Systems
+    Automotive Kernel Version 2
+
+Copyright (C) 2013-2014 by Center for Embedded Computing Systems
+            Graduate School of Information Science, Nagoya Univ., JAPAN
+Copyright (C) 2013-2014 by FUJI SOFT INCORPORATED, JAPAN
+Copyright (C) 2013-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
+Copyright (C) 2013-2014 by Sunny Giken Inc., JAPAN
+Copyright (C) 2013-2014 by TOSHIBA CORPORATION, JAPAN
+Copyright (C) 2013-2014 by Witz Corporation, JAPAN
+
+上記著作権者は，以下の (1)〜(3)の条件を満たす場合に限り，本ドキュメ
+ント（本ドキュメントを改変したものを含む．以下同じ）を使用・複製・改
+変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+(1) 本ドキュメントを利用する場合には，上記の著作権表示，この利用条件
+    および下記の無保証規定が，そのままの形でドキュメント中に含まれて
+    いること．
+(2) 本ドキュメントを改変する場合には，ドキュメントを改変した旨の記述
+    を，改変後のドキュメント中に含めること．ただし，改変後のドキュメ
+    ントが，TOPPERSプロジェクト指定の開発成果物である場合には，この限
+    りではない．
+(3) 本ドキュメントの利用により直接的または間接的に生じるいかなる損害
+    からも，上記著作権者およびTOPPERSプロジェクトを免責すること．また，
+    本ドキュメントのユーザまたはエンドユーザからのいかなる理由に基づ
+    く請求からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+
+本ドキュメントは，AUTOSAR（AUTomotive Open System ARchitecture）仕様
+に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するものではな
+い．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利用する
+者に対して，AUTOSARパートナーになることを求めている．
+
+本ドキュメントは，無保証で提供されているものである．上記著作権者およ
+びTOPPERSプロジェクトは，本ドキュメントに関して，特定の使用目的に対す
+る適合性も含めて，いかなる保証も行わない．また，本ドキュメントの利用
+により直接的または間接的に生じたいかなる損害に関しても，その責任を負
+わない．
+
+$Id: prc_design.txt 187 2015-06-25 03:39:04Z t_ishikawa $
+----------------------------------------------------------------------
+
+このドキュメントは，V850E2依存部の設計メモである．作成中のものであり，
+網羅的ではない．GHSに関連した事項もこのメモに記載する．
+  
+---------------------------------------------------------------------
+既知の問題
+---------------------------------------------------------------------
+・(GCC) -msoft-float
+  ・gcc 4.7(v12.02)では-msoft-floatオプションが無くなっている．
+
+・(GCC)CubeSuite+(V1.03.000)のLMA非対応
+  ・初期値付き変数のためにVMAとLMAが異なるelfファイルを作成しても，VMA
+    の場所にデータがロードされる．
+  ・実行時には毎回ダウンロード必要．
+  
+・(GHS) GNUの Asm("" ::: "memory")相当の命令
+ ・関数単位でpragmaを使いメモリ最適化を抑制する方法はあるが，関数内で
+   使用することはできない．そのため，GNUの Asm("" ::: "memory")相当の
+   命令は存在しない．
+  
+---------------------------------------------------------------------
+Tips
+---------------------------------------------------------------------
+FL4にて一定時間後にリセットが発生．
+ ・WDTでVAC機能がONになっている．
+ ・オプションバイトで設定（デバッガより設定）
+ OPBT0 - フラッシュ・マスク・オプションのレジスタ0
+ ・アドレス FF47000CH
+ ・OPBT0の値によっては起動時からWDTが有効となる．
+ ・オール0で停止する．
+ OPBT0の変更
+ ・デバッガでターゲットに接続
+ ・デバッグ・ツールのプロパティフラッシュ・オプションタブに表示される
+ ・「...」ボタンをクリックしてメニューを呼び出して変更．
+
+---------------------------------------------------------------------
+V850E2仕様(V850E2v3)
+---------------------------------------------------------------------
+●割込関連
+
+割込み優先度
+ 値が小さいほど優先度が高い
+ 0が最高，15が最低優先度．
+ 
+割込み関連レジスタ
+ ・EICC : 割込み要因の取得
+ ・EIWR : 割込み発生時の作業用レジスタ
+ ・ISPR : 受付中の割込み
+ ・PMR  : 割込み優先度マスク
+ ・ISPC : 受付中の割込みのクリア
+     
+ベクタ
+ ・割込み要因毎のベクタ．
+   ・割込み毎に16bypte
+         要因           : リターン命令
+ 0x00 : リセット       
+ 0x10 : FEレベルマスカブル割込み : feret
+ 0x20 : FEレベルノンマスカブル割込み : feret
+ 0x30 : システムエラー例外・周辺保護例外・タイミング監視例外 : feret
+ 0x40 : EIレベルソフトウェア例外 : eiret
+ 0x50 : EIレベルソフトウェア例外 : eiret
+ 0x70 : 浮動小数点演算例外       : eiret
+ 0x80 : EIレベルマスカブル割込み : eiret
+  
+FEINT/FENMI 割込み
+ ・CPUシステム以外で定義される例外などで利用する．
+ ・例えば、AUTOSARの時間監視などの外付けタイマなどをFEINTにつないで，
+   通常のプログラムの割込み禁止許可(EIレベル)の影響を受けずに割込みを
+   受け付けるようにすることができる．
+ ・FENMIのほうはWatchDogなどを想定している．
+ ・元々は一般アプリとは異なる緊急度の高い割り込みとして機能させることを
+   想定している．
+    
+eiret/feret 命令
+   EIレベルの例外処理からの復帰
+    eiret命令
+   FEレベルの例外処理からの復帰
+    feret命令
+   それぞれPSWのEPが0の場合に例外ルーチンの実行を終了したことを外部
+   （割込みコントローラ）に伝える．
+   PSWのEP(bit6)
+    割込み以外の例外処理中であることを示す．このビットがセットされても
+    例外要求の受け付けには影響しない．
+     0 : 割込み処理中である．
+     1 : 割込み以外の例外処理中
+   PSWのNP(bit7)
+     '0' : FEレベル例外処理中ではない．
+     '1' : 多重例外の発生及び割り込みの発生を禁止する．     
+・PSWのEP=0の時にeiretをすると，ISPRが割込み前に戻るが，ISPCを使って
+  All 0にクリアすることで良ければ(割込みの一番外のみ実行すればよいなら
+  )，eirteは必要ない．
+・例外に関しては，feretはEP=1となっているので，呼び出しても呼び出さな
+  くても問題ない．
+・FEINT/FENMIはferetを行う必要がある．(ISPRとは別に優先度管理ビットが
+  あり，クリアする必要がある ICSR.FNEとICSR.FIE)    
+・PSWのEPが'1'の状態でeiret/feretを実行すれば，単にeipc/eipswまたは
+  fepc/fepswをpc/pswに復帰するのみとなり，特に他に副作用はない．
+
+    
+   ・0x10 : FEレベルマスカブル割込み   feret
+   ・0x20 : FEレベルノンマスカブル割込み（再開・回復不可能） feret
+   ・0x30 : FE例外                                           feret
+            システムエラー例外（再開・回復不可能）  
+            周辺保護例外（回復不可能）  
+            タイミング監視違反
+            実行保護
+            メモリエラー（回復不可能）  
+            データ保護
+            コプロセッサ例外
+            予約命令例外
+            ＦＥレベルソフトウェア例外
+            コプロセッサ使用不可
+            予約命令
+            FEレベルソフトウェア例外            
+            ->例外要因コード
+   ・0x40 : EIレベルソフトウェア例外（Trap）eiret <- 割込みとして扱う?
+            例外要因コード : 0x40 - 0x4F
+   ・0x50 : EIレベルソフトウェア例外（Trap）eiret <- 割込みとして扱う?
+            例外要因コード : 0x50 - 0x5F
+   ・0x70 : 浮動小数点（回復不可能）        eiret <- 割込みとして扱う?
+            浮動小数点例外
+            例外要因コード : 0x71
+   ・0x80 : EIレベルマスカブル割込み
+   
+●レジスタ
+
+・システムレジスタバンク
+  ・BSELにより選択 
+  ・pswにアクセスする際には常にバンクを切り替えてアクセス．
+  
+・レジスタ別名
+  r31 : lp
+  r30 : ep
+  r3  : sp
+  r4  : gp
+  r5  : tp
+ 
+ 
+●命令
+
+callt 命令
+・コンパイラオプション -mdisable-callt を付けないと使用される．
+・リンクも含めてコード全体を眺めた時に，最頻出ブロックに関数の出入口処
+  理でのスタック退避／復帰処理がある．このため，コードサイズ縮小のため
+  の共通ブロックとしてCallt命令で呼び出されるコードに変換し、出入口処
+  理の圧縮を図る．  
+・各命令に埋め込むよりもコード効率が良い。また、関数にしてFar 
+  jump(mov+jmp=64ビット)するよりも小さい(16ビット)という点が利用価値と
+  なる．    
+・ただし，Callt命令はflashをアクセスするため，速度低下を招いてしまうた
+  め，速度重視の最適化ではOFFとする．
+  
+sld/sst命令(epをベースポインタに使用する)
+・sld/sstは、16ビット命令でサイズ最適化時に局所的に利用される．
+
+---------------------------------------------------------------------
+依存部の設計
+---------------------------------------------------------------------
+●割込処理モデル
+
+割込み禁止
+・IMR(EICn)により実現
+
+割込み優先度
+・PMR(ビットなので注意)により実現
+  0〜15の16段階
+  0が最高優先度15が最低優先度．
+  プロセッサの内部表現と外部表現の関係
+    0〜15,16
+  -16〜-1,0    
+  
+割込みハンドラ
+・FEレベルマスカブル割込み・ノンマスカブル割込みは扱わないが，例外
+  番号は割り付ける．
+  ・例外番号，1,2
+・EIレベルソフトウェア例外（Trap）は，例外として扱う．
+  ・2種類の例外として，例外番号:4と5
+・浮動小数点（回復不可能）は例外として扱う．
+  ・1種類の例外として扱う,例外番号7
+・FE例外を例外として扱う．例外要因コードがスパースなので，現状では
+  細かい分岐は行わず，全て例外番号3の例外として扱う．
+
+---------------------------------------------------------------------
+GHS対応
+---------------------------------------------------------------------
+●基本
+
+・コンパイラの判断フラグ
+   __ghs__
+   
+・リンカスクリプト
+  ほぼGNU互換だが若干異なる
+
+・インラインアセンブラ  
+  Asm("" ::: "memory"); 相当が用意されていない．  
+  Asm は単にasmでよい．
+  pswの設定,di,eiは組込み関数を使う．
+   psw =  __GETSR()
+   __SETSR(psw)
+   __DI();
+   __EI();
+   
+・アセンブラマクロ
+  マクロの大枠の書き方は同じだが，引数を参照するときに\が必要ない．
+  
+・コマンドライン
+  ccv850   
+
+・コンパイルオプション
+ 現状以下のオプションで動作を確認．
+  -cpu=v850e2v3               : E2V3対応
+  -gcc                        : GCC互換機能
+  -preprocess_assembly_files  : アセンブリファイルをプリプロセス
+  -kanji=euc                  : 漢字コードの指定
+  -noobj                      : アセンブリ言語ファイルを生成（不要なセ
+                                クションを削除）
+  -g                          : デバッグ
+  -O2                         : 最適化
+  
+ MULTIを使うと以下のオプションも追加となる．
+  -Onone
+   -e 
+   -no_japanese_automotive_c
+   --no_exceptions
+   --slash_comment
+   -locatedprogram
+   --no_additional_output
+   -nostrip
+   -Qn
+   -noentry
+   -O2
+   -nostartfiles
+   -srec
+   -kanji=euc
+   --asm_silent
+
+・GNUのasm(:::"memory")相当の記述
+  GHSにはGNUのasm(:::"memory")相当の記述をすることができない．そのため，
+  V850_MEMORY_CHANGED は，空の関数を呼び出すことで実現する．
+  
+---------------------------------------------------------------------
+スモールデータエリア(SDA)の有効化
+---------------------------------------------------------------------
+セクション名
+ ・.sdata
+ ・.sbss
+ ・.rosdata
+ ・SMALLCOMMON
+
+---------------------------------------------------------------------
+RH850(V850E3v5)の例外処理
+---------------------------------------------------------------------
+RH850では，例外・割込み発生時にベクタから実行される．ベクタの種類は次
+の通りである．
+
+オフセット : 待避リソース : 名称
+0x0000 : -  : リセット
+0x0010 : FE : システムエラー
+0x0020 : FE : ハイパーバイザートラップ
+0x0030 : FE : FEレベルトラップ
+0x0040 : EI : EIレベルトラップ0
+0x0050 : EI : EIレベルトラップ1
+0x0060 : EI : 予約命令例外
+0x0070 : EI : FPU例外
+0x0080 : FE : コプロセッサ使用不可例外
+0x0090 : FE : メモリ保護例外
+0x00a0 : FE : 特権命令例外
+0x00b0 : DB : デバッグ
+0x00c0 : FE : ミスアライン例外
+0x00d0 : ?  : R.F.U(reserved for future use)
+0x00e0 : FE : FENMI
+0x00f0 : FE : FEINT
+0x0100 : EI : EI割込み(優先度0)
+   ...
+0x01f0 : EI : EI割込み(優先度15)
+
+
+ジャンプ先については，次のようにする．
+
+リセット -> __start
+
+EI割込み ->  interrupt
+
+待避リソース FE ->  _fe_exception_entry
+待避リソース EI ->  _ei_exception_entry
+
+その他
+デバッグとミスアライン例外に関しては，発生することはないので，ベクタ内
+で無限ループとする．
+
+
+---------------------------------------------------------------------
+V850/RH850のABI
+---------------------------------------------------------------------
+○用語
+・caller : 呼び出し元が保存(呼び出し先は保存なしに使える)
+・callee : 呼び出し先が保存(使用時は保存してから)
+・fixed  : 起動時の設定内容を保持
+
+○前提
+・V850は統一したABIがなくコンパイラ毎にABIを定義している
+・RH850ではプロセッサでABIを定義している．
+
+○バージョン
+CX   : V2.01.00
+CCRH : V2.01.00
+
+
+○ABI一覧
+
+●V850:GNU
+レジスタ:      別名等                  :  扱い
+R0      : ゼロ                         : fixed 
+R1      : コンパイラ・アセンブラが使用 : caller 
+R2      : OS予約                       : caller (-mapp-regs:ディフォルト), fixed(-mno-app-regs)
+R3      : SP                           : callee 
+R4      : GP                           : fixed
+R5      : TP                           : caller (-mapp-regs:ディフォルト), fixed(-mno-app-regs)
+R6-R9   : 関数の引数                   : caller 
+R10     : 戻り値                       : caller 
+R11     : 64bitの戻り値                : caller 
+R12-R19 :                              : caller 
+R20-R27 :                              : callee 
+R28     : FP                           : callee 
+R29     :                              : callee 
+R30     : EP                           : caller (-mtda=0時), fixed(未定指定時) *
+R31     : リンクポインタ               : caller
+
+SC3では，-mno-app-regsを指定．
+
+
+●V850:GHS(V5)
+レジスタ:      別名等                  :  扱い
+R0      : ゼロ                         : fixed
+R1      : コンパイラ・アセンブラが使用 : caller 
+R2      : OS予約                       : caller or fixed(-reserve_r2)
+R3      : SP                           : callee 
+R4      : GP                           : fixed
+R5      : TP(ROSDAベース)              : caller or fixed
+R6-R9   : 関数の引数                   : caller 
+R10     : 戻り値                       : caller 
+R11     : 64bitの戻り値                : caller 
+R12-R19 :                              : caller 
+R20-R27 :                              : callee 
+R28     : FP                           : callee  
+R29     :                              : callee 
+R30     : EP                           : caller(-notda)，or fixed *1
+R31     : リンクポインタ               : caller 
+
+-notdaはディフォルトで有効．
+
+●V850:CX
+レジスタ:      別名等                  :  扱い
+R0      : ゼロ                         : fixed
+R1      : コンパイラ・アセンブラが使用 : caller 
+R2      : OS予約                       : fixed
+R3      : SP                           : callee 
+R4      : GP                           : fixed
+R5      : TP                           : fixed*1 
+R6-R9   : 関数の引数                   : caller 
+R10     : 戻り値                       : caller 
+R11     : 64bitの戻り値                : caller 
+R12-R19 :                              : caller 
+R20-R27 :                              : callee 
+R28     : FP                           : callee  
+R29     :                              : callee 
+R30     : EP                           : fixed*2
+R31     : リンクポインタ               : caller 
+
+*1 関数のアドレスを動的に(プログラム中で)取得しない場合は使用しない．
+*2 該当セクションがない場合は使用しない．
+
+●RH850(CCRH)
+レジスタ:      別名等                  :    扱い
+R0      : ゼロ                         : fixed
+R1      : コンパイラ・アセンブラが使用 : caller 
+R2      : OS予約                       : caller or fixed
+R3      : SP                           : callee 
+R4      : GP                           : fixed
+R5      : TP                           : caller or fixed*1
+R6-R9   : 関数の引数                   : caller 
+R10     : 戻り値                       : caller 
+R11     : 64bitの戻り値                : caller 
+R12-R19 :                              : caller 
+R20-R27 :                              : callee 
+R28     : FP                           : callee  
+R29     :                              : callee 
+R30     : EP                           : callee or fixed(-Xep=fix)
+R31     : リンクポインタ               : caller 
+
+*1 CCRHでは現状fixedはサポートしていない
+
+--------------------------------------------------------------------------
+各コンパイラでのコード共有のためのレジスタの扱い
+--------------------------------------------------------------------------
+各コンパイラ,V850/RH850で扱いが異なるレジスタは次の通りである．
+ 
+  ・R2
+  ・R5(TP)
+  ・R30(EP)
+
+それぞれのレジスタの扱いについて次のようにする．
+
+●R2
+システム予約としてOS内で使用する(割込み禁止時にアセンブラ内で
+テンポラリレジスタとして使用する)．
+そのため，ディスパッチャや割込みのエントリでは保存しない．
+理由
+SC3で必要なため．
+各コンパイラでfixedの扱いに可能．
+・コンパイルオプション指定
+  ・GCC    : -mno-app-regs
+  ・GHS(V) : -reserve_r2
+  ・CX     : 指定必要なし
+  ・CCRH   : -Xreserve_r2
+
+ 
+●R5(TP)
+アセンブラ内では使用しない。割込みで保存する。
+理由
+CCRHでcallerであるため，割込み出入口で保存復帰の必要がある．
+ifdefを入れると可読性が下がるため一律保存する．
+一方，他のコンパイラではfixedであるため，アセンブラ内で変更で
+きない．CCRXがfixedをサポートした際にはfixedとして扱う． 
+ 
+  各コンパイラのABI 
+  ・GCC    : -mno-app-regs でR2と共にコンパイラは使用しない
+  ・GHS(V) : fixed (ROSDAベース)
+  ・CX     : fixed
+  ・CCRH   : caller
+ 
+●R30(EP)
+  割込みの出入口で保存復帰する．
+  ディスパッチャでも保存復帰する．
+  CX/CCRHでのfixedの使用はサポートしない．
+理由
+  GCC/GHSではcallerであるため割込みの出入口で保存復帰する必要がある．
+  ifdefを入れると可読性が下がるため一律保存する．
+  CCRHではcaleeであるためディスパッチャで保存復帰する必要がある．
+  epはアセンブラの命令長を短くできるため，アセンブラ内で使用しているた
+  めCCRHでも割込みの出入口で保存する．
+  ・GCC    : -mtda=0でコンパイラが使用する?
+  ・GHS(V) : -notdaでcaller として扱う
+  ・CX     : fixed
+  ・CCRH   : fixed or calee
+ 
+ 
+---------------------------------------------------------------------
+割込み/ディスパッチャでのレジスタの保存・復帰
+---------------------------------------------------------------------
+○割込み
+
+・該当箇所
+_interrupt と _fe_exception_entry と _ei_exception_entry によるレジスタの保存．
+  ret_exc_2 と ei_ret_exc_2 と ret_int_1 でのレジスタの復帰について
+
+・保存・復帰レジスタ
+callerレジスタは保存する．
+
+  r1, r6-r19, r31
+ 
+上記の検討よりr30(ep)も保存する．
+
+CCRHの場合はr5(tp)も保存する必要があるが，ifdefを入れると可読性が下が
+るため一律保存する．
+
+以上より，保存するレジスタは次の通りである．
+
+r1, r5(tp),r6-r19, r30(ep), r31
+
+
+○ディスパッチャ
+
+・保存・復帰レジスタ
+calleeレジスタは保存する．
+
+r20-r27,r28,r29
+
+r31(lp)はリターンのために保存する
+
+CCRHではr30(ep)も保存する。ifdefを入れると可読性が下が
+るため一律保存する．
+
+以上より，保存するレジスタは次の通りである．
+
+r20-r27,r28,r29,r30(ep),r31(lp)
+
+
+---------------------------------------------------------------------
+G3K/G3Mにおける一部レジスタ更新時の割込み禁止
+---------------------------------------------------------------------
+
+以下のレジスタはdi状態(PSW.ID=1)で設定する必要がある．
+
+PSW.EBV， EBASE， INTBP， ISPR， PMR， ICSR， INTCFG
+
+以上．
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/prc_insn.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/prc_insn.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/prc_insn.h	(revision 117)
@@ -0,0 +1,228 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by Spansion LLC, USA
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: prc_insn.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		プロセッサの特殊命令のインライン関数定義（V850用）
+ */
+#ifndef TOPPERS_PRC_INSN_H
+#define TOPPERS_PRC_INSN_H
+
+#ifndef TOPPERS_MACRO_ONLY
+
+#define V850_MEMORY_CHANGED	Asm("" ::: "memory");
+#define SYNCM	Asm("syncm");
+
+LOCAL_INLINE uint32
+current_psw(void)
+{
+	volatile uint32 psw;
+	Asm("   ldsr	r0,31 \n" /* Select CPU function grp */
+		"\t stsr 5 , %0 \n"
+		: "=r" (psw) :);
+	return(psw);
+}
+
+LOCAL_INLINE void
+set_psw(uint32 psw)
+{
+	Asm("   ldsr	r0,31 \n"  /* Select CPU function grp */
+		"\t ldsr %0 , 5 \n"
+		:  : "r" (psw));
+	return;
+}
+
+LOCAL_INLINE void
+set_psw_wo_fgs(uint32 psw)
+{
+	Asm("\t ldsr %0 , 5 \n"
+		:  : "r" (psw));
+	return;
+}
+
+LOCAL_INLINE void
+disable_int(void)
+{
+	Asm("	di");
+}
+
+LOCAL_INLINE void
+enable_int(void)
+{
+	Asm("	ei");
+}
+
+LOCAL_INLINE void
+set_bit(uint8 bit_offset, uint32 addr)
+{
+	uint32 any;
+
+	Asm("mov %1 , %0;"
+		"set1 %2 , 0[%0]" : "=r" (any) : "i" (addr), "i" (bit_offset));
+}
+
+LOCAL_INLINE void
+clr_bit(uint8 bit_offset, uint32 addr)
+{
+	uint32 any;
+
+	Asm("mov %1 , %0;"
+		"clr1 %2 , 0[%0]" : "=r" (any) : "i" (addr), "i" (bit_offset));
+}
+
+#ifdef __v850e2v3__
+
+#define LDSR_REG(reg, val) {\
+    Asm("\tldsr %0, " #reg \
+        : : "r"(val) : "memory" ); \
+}
+
+#define STSR_REG(reg, val) {\
+    Asm("\tstsr " #reg ", %0" \
+        : "=r"(val) : : "memory" ); \
+}
+
+
+#elif defined(__v850e3v5__)
+
+/*
+ *  V850E3V5用の割込みコントローラ操作ルーチン
+ */
+LOCAL_INLINE void
+set_pmr(uint16 pmr)
+{
+	uint32 psw;
+
+	/* PMR must be set in di sate(PSW.ID = 1) */
+	psw = current_psw();
+	disable_int();
+
+	Asm("ldsr %0, sr11, 2" ::"r" (pmr));
+
+	set_psw_wo_fgs(psw);
+	Asm("syncp");
+}
+
+LOCAL_INLINE uint16
+get_ispr(void)
+{
+	uint16 ispr;
+	Asm("stsr sr10, %0, 2" : "=r" (ispr) :);
+	return(ispr);
+}
+
+LOCAL_INLINE void
+clear_ispr(void)
+{
+	uint32 psw;
+
+	/* ISPR must be set in di sate(PSW.ID = 1) */
+	psw = current_psw();
+	disable_int();
+
+	Asm("ldsr %0, sr13, 2" ::"r" (1));  /* INTCFG = 1; ISPR を書き換え可能に */
+	Asm("ldsr %0, sr10, 2" ::"r" (0));  /* ISPR = 0 */
+	Asm("ldsr %0, sr13, 2" ::"r" (0));  /* INTCFG = 0; ISPR を書き換え禁止に(自動更新に) */
+
+	set_psw_wo_fgs(psw);
+	Asm("syncp");
+}
+
+LOCAL_INLINE uint32
+current_cpuid(void)
+{
+	uint32 htcfg0_val;
+	Asm("stsr sr0, %0, 2":"=r"(htcfg0_val):);
+	return(((htcfg0_val >> 16) & 0x03));
+}
+
+#define LDSR_REG(reg, sel, val) {\
+    uint32 sval = val; \
+    Asm("ldsr %0, "#reg", "#sel"\n"\
+            ::"r"(sval));\
+}
+
+#define STSR_REG(reg, sel, val) {\
+    Asm("stsr "#reg", %0, "#sel"\n"\
+            :"=r"(val) );\
+}
+
+#define MPA_WRITE(mpuid, mpla, mpua, mpat) { \
+    __LDSR(mpuid*4, 6, mpla); \
+    __LDSR(mpuid*4+1, 6, mpua); \
+    __LDSR(mpuid*4+2, 6, mpat); \
+}
+
+LOCAL_INLINE void
+set_intbp(uint32 intbp)
+{
+	uint32 psw;
+
+	/* INTBP must be set in di sate(PSW.ID = 1) */
+	psw = current_psw();
+	disable_int();
+
+	Asm("\t ldsr	%0, 4, 1 \n"
+		: : "r" (intbp) :);
+
+	set_psw_wo_fgs(psw);
+
+	return;
+}
+
+#else /* __v850e3v5__ */
+#error please define ether __v850e2v3__ or __v850e3v5__
+#endif /* __v850e2v3__ */
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_PRC_INSN_H */
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/prc_kernel.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/prc_kernel.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/prc_kernel.h	(revision 117)
@@ -0,0 +1,97 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2013 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2013 by FUJISOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by FUJITSU VLSI LIMITED, JAPAN
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2013 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2013 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2013 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2013 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2013 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013 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プロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: prc_kernel.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		Os.hのプロセッサ依存部（V850E2/FL4用）
+ *
+ *  このインクルードファイルは，Os.hでインクルードされる．他のファ
+ *  イルから直接インクルードすることはない
+ */
+
+#ifndef TOPPERS_PRC_KERNEL_H
+#define TOPPERS_PRC_KERNEL_H
+
+#ifndef TOPPERS_MACRO_ONLY
+
+typedef uint32	SystemTimeMsType;
+typedef uint32	SystemTimeUsType;
+typedef uint32	SystemTime100NsType;
+
+#ifdef CFG_USE_PROTECTIONHOOK
+/*
+ *  CPU例外要因情報保持変数外部参照宣言（prc_config.c）
+ *  ユーザ作成するプロテクションフックから参照するため，
+ *  Os.hからインクルードされるprc_kernel.hで参照宣言
+ */
+/* CPU例外発生時，CPU例外要因番号を保持する変数 */
+extern uint32	v850_cpu_exp_no;
+
+/* CPU例外発生時，プログラムカウンタ（PC - 4）を保持する変数 */
+extern uint32	v850_cpu_exp_pc;
+
+/* CPU例外発生時，スタックポインタを保持する変数 */
+extern uint32	v850_cpu_exp_sp;
+#endif /* CFG_USE_PROTECTIONHOOK */
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+/*
+ *  サポートする機能の定義
+ */
+#define TOPPERS_SUPPORT_GET_UTM         /* get_utmをサポートする */
+#define TOPPERS_TARGET_SUPPORT_ATT_MOD		/* ATT_MOD/ATA_MOD */
+
+
+#endif /* TOPPERS_PRC_KERNEL_H */
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/prc_mem.tf
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/prc_mem.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/prc_mem.tf	(revision 117)
@@ -0,0 +1,570 @@
+$ ======================================================================
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$   Copyright (C) 2013 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プロジェクトは，本ソフトウェアに関して，特定の使用目的
+$   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$   の責任を負わない．
+$
+$  
+$ =====================================================================
+
+$DEBUG_OPT_TF = 1$
+
+$ 
+$  パス4のプロセッサ依存テンプレート（V850E2M用）
+$  
+$FUNCTION GET_SSTK_TSKINICTXB$
+    $bottom = PEEK(ARGV[1] + offsetof_TINIB_TSKINICTXB_sstk_bottom, sizeof_void_ptr)$
+    $size = PEEK(ARGV[1] + offsetof_TINIB_TSKINICTXB_sstksz, sizeof_StackType)$
+    $RESULT = (bottom - size)$
+$END$
+
+$FUNCTION GET_USTK_TSKINICTXB$
+    $bottom = PEEK(ARGV[1] + offsetof_TINIB_TSKINICTXB_stk_bottom, sizeof_void_ptr)$
+    $size = PEEK(ARGV[1] + offsetof_TINIB_TSKINICTXB_stksz, sizeof_StackType)$
+    $RESULT = (bottom - size)$
+$END$
+
+$ 
+$  OSAP.ID_LISTを読み込むため
+$ 
+$INCLUDE "cfg2_out.tf"$
+
+$
+$  保護ドメインのラベルの作成
+$	OSAP.LABEL[domid]：保護ドメインのラベル
+$
+$OSAP.LABEL[TDOM_KERNEL] = "kernel"$
+$FOREACH domid OSAP.ID_LIST$
+	$OSAP.LABEL[domid] = domid$
+$END$
+$OSAP.LABEL[TDOM_NONE] = "shared"$
+
+$ 
+$  標準のセクションのメモリオブジェクト属性の定義
+$ 
+$MEMATR_TEXT = (TA_NOWRITE|TA_EXEC)$
+$MEMATR_RODATA = (TA_NOWRITE|TA_EXEC)$
+$MEMATR_DATA = TA_MEMINI$
+$MEMATR_BSS = TA_NULL$
+$MEMATR_PRSV = TA_MEMPRSV$
+$MEMATR_ROSDATA = (TA_SDATA|TA_MEMINI|TA_NOWRITE|TA_EXEC)$
+$MEMATR_SDATA = (TA_SDATA|TA_MEMINI)$
+$MEMATR_SBSS = TA_SDATA$
+
+$ 
+$  保護ドメイン毎のデフォルトのアクセス許可パターンの作成
+$ 
+$DEFAULT_ACPTN[TDOM_KERNEL] = VALUE("TACP_KERNEL", TACP_KERNEL)$
+$FOREACH domid OSAP.ID_LIST$
+	$DEFAULT_ACPTN[domid] = VALUE(FORMAT("TACP(%1%)", domid), 1 << (domid - 1))$
+$END$
+$DEFAULT_ACPTN[TDOM_NONE] = VALUE("TACP_SHARED", TACP_SHARED)$
+
+$ 
+$  OSAP初期化コンテキストブロックのための宣言
+$ 
+$FUNCTION PREPARE_OSAPINICTXB$
+    $IF LENGTH(TSK.ID_LIST)$
+        $FOREACH tskid TSK.ID_LIST$
+            $IF !OSAP.TRUSTED[TSK.OSAPID[tskid]]$
+                extern uint8 $FORMAT("__start_user_stack%s", tskid)$;$NL$
+                extern uint8 $FORMAT("__limit_user_stack%s", tskid)$;$NL$
+            $END$
+        $END$
+    $END$
+    $FOREACH tskpri RANGE(TMIN_TPRI, TMAX_TPRI)$
+        $IF LENGTH(shared_ustack_size[tskpri])$
+            extern uint8 $FORMAT("__start_shared_user_stack%s", tskpri)$;$NL$
+            extern uint8 $FORMAT("__limit_shared_user_stack%s", tskpri)$;$NL$
+        $END$
+    $END$
+
+
+    $IF LENGTH(OSAP.ID_LIST)$
+        $FOREACH domid OSAP.ID_LIST$
+            $IF !OSAP.TRUSTED[domid]$
+$   RX領域（専用）
+                extern uint8 __start_text_$OSAP.LABEL[domid]$;$NL$
+                extern uint8 __limit_text_$OSAP.LABEL[domid]$;$NL$
+$   R領域（専用）
+                extern uint8 __start_sram_$OSAP.LABEL[domid]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$;$NL$
+                extern uint8 __limit_sram_$OSAP.LABEL[domid]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$;$NL$
+$   RWX領域（専用）
+                extern uint8 __start_ram_$OSAP.LABEL[domid]$;$NL$
+                extern uint8 __limit_ram_$OSAP.LABEL[domid]$;$NL$
+                extern uint8 __start_sram_$OSAP.LABEL[domid]$;$NL$
+                extern uint8 __limit_sram_$OSAP.LABEL[domid]$;$NL$
+$   共有リード専用ライト
+                extern uint8 $FORMAT("__start_ram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$;$NL$
+                extern uint8 $FORMAT("__limit_ram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$;$NL$
+                extern uint8 $FORMAT("__start_sram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$;$NL$
+                extern uint8 $FORMAT("__limit_sram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$;$NL$
+$                 extern uint8 $FORMAT("__start_ram_%s_srpw", OSAP.LABEL[domid])$;$NL$
+$                 extern uint8 $FORMAT("__limit_ram_%s_srpw", OSAP.LABEL[domid])$;$NL$
+$                 extern uint8 $FORMAT("__start_sram_%s_srpw", OSAP.LABEL[domid])$;$NL$
+$                 extern uint8 $FORMAT("__limit_sram_%s_srpw", OSAP.LABEL[domid])$;$NL$
+            $END$
+        $END$
+        $NL$
+    $END$$NL$
+
+$  共有領域
+    extern uint8 __start_text_$OSAP.LABEL[TDOM_NONE]$;$NL$
+    extern uint8 __limit_text_$OSAP.LABEL[TDOM_NONE]$;$NL$
+    extern uint8 __start_sram_$OSAP.LABEL[TDOM_NONE]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$;$NL$
+    extern uint8 __limit_sram_$OSAP.LABEL[TDOM_NONE]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$;$NL$
+    extern uint8 __start_ram_$OSAP.LABEL[TDOM_NONE]$;$NL$
+    extern uint8 __limit_ram_$OSAP.LABEL[TDOM_NONE]$;$NL$
+    extern uint8 __start_sram_$OSAP.LABEL[TDOM_NONE]$;$NL$
+    extern uint8 __limit_sram_$OSAP.LABEL[TDOM_NONE]$;$NL$
+$   共有リード専用ライト領域全体
+    extern uint8 __start_srpw_all;$NL$
+    extern uint8 __limit_srpw_all;$NL$
+    extern uint8 __start_ssrpw_all;$NL$
+    extern uint8 __limit_ssrpw_all;$NL$
+    $NL$
+$	extern const OSAPMPUINFOB_INFO _kernel_osap_mpu_info_tbl[];$NL$
+$END$
+
+$FUNCTION GENERATE_TARGET_MPUINFOB$
+$ 
+$   ドメインごとのMPU設定情報を生成
+$ 
+    $FILE "kernel_mem.c"$
+
+    $PREPARE_OSAPINICTXB()$
+
+$ 
+$  共有リードライト領域 / 共有リード専有ライト領域（sdata） / rosdata_shared領域
+$  の情報取得
+$  
+    $check_shared_mo = 0x00$
+    $check_srpw_mo = 0x00$
+    $check_rosdata_mo = 0x00$
+    $check_sdata_mo = 0x00$
+    $LIST_SHARED_MO = {}$
+    $LIST_SRPW_MO = {}$
+    $LIST_ROSDATA_MO = {}$
+    $preid = -1$
+    $FOREACH moid MO_START_LIST$
+$   // メモリオブジェクトの先頭をパス2時点での順にチェック
+        $IF LENGTH(FIND(MO_MPROTECT_LIST, moid))$
+$       // メモリ保護単位の先頭の場合
+            $IF (MO.ACPTN1[moid] == TACP_SHARED) && (MO.ACPTN2[moid] == TACP_SHARED)$
+                $IF ((check_shared_mo & 0x10) != 0x10)$
+$               // 共有リードライト領域の先頭の場合
+                    $SHARED_AREA_BASE[check_shared_mo] = MO.BASEADDR[moid]$
+                    $SHARED_AREA_MO[check_shared_mo] = moid$
+                    $LIST_SHARED_MO = APPEND(LIST_SHARED_MO, check_shared_mo)$
+                    $check_shared_mo = check_shared_mo | 0x10$
+                $END$
+            $ELIF (check_shared_mo & 0x10) == 0x10$
+$           // 共有リードライト領域の終端の場合
+                $IF preid == -1$
+                    $ERROR$
+                        $FORMAT("unexpected preid.")$
+                    $END$
+                $END$
+                $check_shared_mo = check_shared_mo & 0x0f$
+                $SHARED_AREA_LIMIT[check_shared_mo] = MO.LIMITADDR[preid]$
+                $SHARED_AREA_SIZE[check_shared_mo] = SHARED_AREA_LIMIT[check_shared_mo] - SHARED_AREA_BASE[check_shared_mo]$
+                $SHARED_AREA_LIMIT_MO[check_shared_mo] = preid$
+                $check_shared_mo = check_shared_mo + 1$
+            $END$
+
+        $END$
+
+        $preid = moid$
+    $END$
+    $IF (check_shared_mo & 0x10) == 0x10$
+        $IF preid == -1$
+            $ERROR$
+                $FORMAT("unexpected preid.")$
+            $END$
+        $END$
+        $check_shared_mo = check_shared_mo & 0x0f$
+        $SHARED_AREA_LIMIT[check_shared_mo] = MO.LIMITADDR[preid]$
+        $SHARED_AREA_LIMIT_MO[check_shared_mo] = preid$
+        $SHARED_AREA_SIZE[check_shared_mo] = SHARED_AREA_LIMIT[check_shared_mo] - SHARED_AREA_BASE[check_shared_mo]$
+        $check_shared_mo = check_shared_mo + 1$
+    $END$
+$ 
+$  エラーチェック
+$  
+    $FOREACH id LIST_SHARED_MO$
+        $IF DEBUG_OPT_TF$
+            $WARNING$
+                $id$$NL$
+                $SHARED_AREA_MO[id]$$NL$
+                $SHARED_AREA_LIMIT_MO[id]$$NL$
+                $FORMAT("0x%x", SHARED_AREA_BASE[id])$$NL$
+                $FORMAT("0x%x", SHARED_AREA_LIMIT[id])$$NL$
+                $FORMAT("0x%x", SHARED_AREA_SIZE[id])$$NL$
+            $END$
+        $END$
+        $IF ((MO.MEMATR[SHARED_AREA_MO[id]] & TA_SDATA) == TA_SDATA)$
+            $IF LENGTH(SHARED_DATA.BASE)$
+                $ERROR$
+                    $FORMAT("unexpected mematr: %d, %x", id, MO.MEMATR[SHARED_AREA_MO[id]])$
+                $END$
+            $ELSE$
+                $SHARED_DATA.BASE = SHARED_AREA_BASE[id]$
+                $SHARED_DATA.LIMIT = SHARED_AREA_LIMIT[id]$
+                $SHARED_DATA.SIZE = SHARED_AREA_SIZE[id]$
+                $SHARED_DATA.BASE_MO = SHARED_AREA_MO[id]$
+                $SHARED_DATA.LIMIT_MO = SHARED_AREA_LIMIT_MO[id]$
+            $END$
+        $ELSE$
+            $ERROR$
+                $FORMAT("unexpected mematr: %d, %x", id, MO.MEMATR[SHARED_AREA_MO[id]])$
+            $END$
+        $END$
+    $END$
+
+    $FOREACH info RANGE(3,3)$
+$   // 領域の開始アドレスを読み込む 
+        $start_address = SHARED_DATA.BASE$
+$   // 領域の終了アドレスを読み込む 
+        $end_address = SHARED_DATA.LIMIT$
+        $ipal = (start_address & 0xfffffff0)$ 
+        $ipau = (end_address & 0xfffffff0)$ 
+        $WARNING$
+            $FORMAT("info%d: start=0x%x, end=0x%x", info, start_address, end_address)$
+        $END$
+        $IF (ipal != start_address) || (ipau != end_address)$
+            $ERROR$
+                $FORMAT("Not aligned: start=0x%x, end=0x%x", start_address, end_address)$
+            $END$
+        $END$
+        $IF ipal != ipau$
+            $valid[info] = 0x01$
+            $ipau = (ipau - 0x1) & 0xfffffffc$
+            $FOREACH osap OSAP.ID_LIST$
+                $IF !OSAP.TRUSTED[osap]$
+                    $OSAP.MPRC[osap] = 0x09$
+                $END$
+            $END$
+        $ELSE$
+            $valid[info] = 0x00$
+        $END$
+        $WARNING$
+            $FORMAT("info%d: ipal=0x%x, ipau=0x%x", info, ipal, ipau)$
+        $END$
+    $END$
+
+$     $IF LENGTH(OSAP.ID_LIST) > 0$
+$ $   RX領域（専用）
+$         $comment[0] = "iregion 0"$
+$         $access[0] = 0x03$
+$ $   RX領域（専用ショートデータ）
+$         $comment[1] = "iregion 1"$
+$         $access[1] = 0x03$
+$ $   RWX領域（専用）
+$         $comment[2] = "dregion 1"$
+$         $access[2] = 0x06$
+$ $   RWX領域（専用ショートデータ）
+$         $comment[3] = "dregion 2"$
+$         $access[3] = 0x06$
+$ $   共有リード専用ライト
+$         $comment[4] = "dregion 3"$
+$         $access[4] = 0x06$
+$ $   共有リード専用ライト（ショートデータ）
+$         $comment[5] = "dregion 4"$
+$         $access[5] = 0x06$
+$ 
+$         $dominib_info = SYMBOL("_kernel_osap_mpu_info_tbl")$
+$         const OSAPMPUINFOB_INFO _kernel_osap_mpu_info_tbl[TNUM_OSAP] ={$NL$
+$         $JOINEACH domid OSAP.ID_LIST ",\n"$
+$             $label[0] = FORMAT("text_%s", OSAP.LABEL[domid])$
+$             $label[1] = FORMAT("rosdata_%s", OSAP.LABEL[domid])$
+$             $label[2] = FORMAT("ram_%s", OSAP.LABEL[domid])$
+$             $label[3] = FORMAT("sram_%s", OSAP.LABEL[domid])$
+$             $label[4] = FORMAT("ram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$
+$             $label[5] = FORMAT("sram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$
+$ 
+$             $TAB${$NL$
+$             $FOREACH info RANGE(0,5)$
+$ $               // 領域の開始アドレスを読み込む 
+$                 $start_address = PEEK(dominib_info, 4)$
+$ $               // 領域の終了アドレスを読み込む 
+$                 $end_address = PEEK(dominib_info + 4, 4)$
+$                 $dominib_info = dominib_info + 8$
+$ 
+$                 $ipal = (start_address & 0xfffffff0)$ 
+$                 $ipau = (end_address & 0xfffffff0)$ 
+$                 $IF (ipal != start_address) || (ipau != end_address)$
+$                     $ERROR$
+$                         $FORMAT("Not aligned: start=0x%x, end=0x%x", start_address, end_address)$$NL$
+$                         $FORMAT("ipal=0x%x, ipau=0x%x", ipal, ipau)$
+$                     $END$
+$                 $END$
+$                 $IF ipal != ipau$
+$                     $valid = 0x01$
+$                 $ELSE$
+$                     $valid = 0x00$
+$                 $END$
+$                 $ipal = (ipal | valid)$ 
+$                 $ipau = (ipau | access[info])$ 
+$ 
+$                 $IF !OSAP.TRUSTED[domid]$
+$                     $TAB$$TAB$( (uint8 *)(&__start_$label[info]$ + $valid$) ), /* IPAL($comment[info]$) : $FORMAT("0x%x", ipal)$ */$NL$
+$                     $TAB$$TAB$( (uint8 *)(&__limit_$label[info]$ + $access[info]$ - 0x10) ), /* IPAU($comment[info]$) : $FORMAT("0x%x", ipau)$ */$NL$
+$                 $ELSE$
+$                     $TAB$$TAB$( (uint8 *)NULL ), /* IPAL($comment[info]$) : $FORMAT("0x%x", ipal)$ */$NL$
+$                     $TAB$$TAB$( (uint8 *)NULL ), /* IPAU($comment[info]$) : $FORMAT("0x%x", ipau)$ */$NL$
+$                 $END$
+$             $END$
+$             $TAB$}
+$         $END$
+$         ,$NL$};$NL$
+$         $NL$
+$     $END$
+
+$END$
+
+$ 
+$  TSKINICTXBの初期化情報を生成
+$ 
+$DOMINICTXB_KERNEL = "{ NULL }"$
+
+$FUNCTION GENERATE_OSAPINIB_MPUINFOB$
+$     $TAB$$TAB${ (OSAPMPUINFOB_INFO *)&_kernel_osap_mpu_info_tbl[$ARGV[1]$] }$NL$
+
+    $IF !LENGTH(OSAP.MPRC[ARGV[1]])$
+        $OSAP.MPRC[ARGV[1]] = 0x01$
+    $END$
+$   RX領域（専用）
+    $comment[0] = "iregion 0"$
+    $access[0] = 0x03$
+$   RX領域（専用ショートデータ）
+    $comment[1] = "iregion 1"$
+    $access[1] = 0x03$
+$   RWX領域（専用）
+    $comment[2] = "dregion 1"$
+    $access[2] = 0x06$
+$   RWX領域（専用ショートデータ）
+    $comment[3] = "dregion 2"$
+    $access[3] = 0x06$
+$   共有リード専用ライト
+    $comment[1] = "dregion 3"$
+    $access[1] = 0x07$
+$   共有リード専用ライト（ショートデータ）
+    $comment[2] = "dregion 4"$
+    $access[2] = 0x07$
+
+    $osapinib_info = SYMBOL("osapinib_table")$
+    $osapinib_offset = sizeof_OSAPINIB * (ARGV[1] - 1)$
+    $osapinib_info = osapinib_info + osapinib_offset + offsetof_OSAPINIB_osapmpu$
+    $label[0] = FORMAT("text_%s", OSAP.LABEL[ARGV[1]])$
+    $label[1] = FORMAT("sram_%s_%x", OSAP.LABEL[ARGV[1]], MEMATR_ROSDATA & ~TA_MEMINI)$
+    $label[2] = FORMAT("ram_%s", OSAP.LABEL[ARGV[1]])$
+    $label[3] = FORMAT("sram_%s", OSAP.LABEL[ARGV[1]])$
+    $label[1] = FORMAT("ram_%s_%x_%x", OSAP.LABEL[ARGV[1]], +DEFAULT_ACPTN[ARGV[1]], +TACP_SHARED)$
+    $label[2] = FORMAT("sram_%s_%x_%x", OSAP.LABEL[ARGV[1]], +DEFAULT_ACPTN[ARGV[1]], +TACP_SHARED)$
+$     $label[4] = FORMAT("ram_%s_srpw", OSAP.LABEL[ARGV[1]])$
+$     $label[5] = FORMAT("sram_%s_srpw", OSAP.LABEL[ARGV[1]])$
+
+    $TAB$$TAB${$NL$
+    $FOREACH info RANGE(1,2)$
+$               // 領域の開始アドレスを読み込む 
+        $start_address = PEEK(osapinib_info, 4)$
+$               // 領域の終了アドレスを読み込む 
+        $end_address = PEEK(osapinib_info + 4, 4)$
+        $osapinib_info = osapinib_info + 8$
+
+        $ipal = (start_address & 0xfffffff0)$ 
+        $ipau = (end_address & 0xfffffff0)$ 
+        $IF (ipal != start_address) || (ipau != end_address)$
+            $ERROR$
+                $FORMAT("osap is %s, info is %d", ARGV[1], info)$$NL$
+                $FORMAT("Not aligned: start=0x%x, end=0x%x", start_address, end_address)$$NL$
+                $FORMAT("ipal=0x%x, ipau=0x%x", ipal, ipau)$
+            $END$
+        $END$
+        $IF ipal != ipau$
+            $valid[info] = 0x01$
+            $ipau = (ipau - 0x1) & 0xfffffffc$
+            $OSAP.MPRC[ARGV[1]] = OSAP.MPRC[ARGV[1]] | (0x01 << info)$
+        $ELSE$
+            $valid[info] = 0x00$
+        $END$
+
+        $IF !OSAP.TRUSTED[ARGV[1]]$
+            $TAB$$TAB$$TAB$( (uint8 *)($FORMAT("0x%x", ipal)$) ), /* MPLA$info$ : &__start_$label[info]$ */$NL$
+            $TAB$$TAB$$TAB$( (uint8 *)($FORMAT("0x%x", ipau)$) ), /* MPLA$info$ : &__limit_$label[info]$ */$NL$
+        $ELSE$
+            $TAB$$TAB$$TAB$( (uint8 *)NULL ), /* MPLA$info$ : $FORMAT("0x%x", ipal)$ */$NL$
+            $TAB$$TAB$$TAB$( (uint8 *)NULL ), /* MPUA$info$ : $FORMAT("0x%x", ipau)$ */$NL$
+        $END$
+    $END$
+    $IF !OSAP.TRUSTED[ARGV[1]]$
+        $OSAP.MPRC[ARGV[1]] = OSAP.MPRC[ARGV[1]] | 0x01$
+        $TAB$$TAB$$TAB$( (uint32)($FORMAT("0x%x", OSAP.MPRC[ARGV[1]])$) ), /* MPRC */$NL$
+    $ELSE$
+        $TAB$$TAB$$TAB$( (uint32)0 ), /* MPRC */$NL$
+    $END$
+    $TAB$$TAB$}$NL$
+    $NL$
+$END$
+
+$FUNCTION GENERATE_TSKINICTXB$
+	$TAB$$TAB${$NL$
+    $TAB$$TAB$$TAB$$TSK.TINIB_SSTKSZ[ARGV[1]]$,$NL$
+	$TAB$$TAB$$TAB$((void *)((uint8 *)($TSK.TINIB_SSTK[ARGV[1]]$)
+    $SPC$+ ($TSK.TINIB_SSTKSZ[ARGV[1]]$))),$NL$
+	$IF OSAP.TRUSTED[TSK.OSAPID[ARGV[1]]]$
+        $TAB$$TAB$$TAB$0,$NL$
+        $TAB$$TAB$$TAB$0,$NL$
+    $ELSE$
+        $TAB$$TAB$$TAB$$TSK.TINIB_USTKSZ[ARGV[1]]$,$NL$ 
+        $TAB$$TAB$$TAB$((void *)((uint8 *)($TSK.TINIB_USTK[ARGV[1]]$)
+        $SPC$+ ($TSK.TINIB_USTKSZ[ARGV[1]]$))),$NL$
+    $END$
+	$TAB$$TAB$},$NL$
+$END$
+
+$FUNCTION GENERATE_STKMPUINFOB$
+	$TAB$$TAB${$NL$
+	$IF OSAP.TRUSTED[TSK.OSAPID[ARGV[1]]]$
+        $TAB$$TAB$$TAB$0,$NL$
+        $TAB$$TAB$$TAB$0,$NL$
+    $ELSE$
+        $p_tinib = SYMBOL("tinib_table")$
+        $TRACE(TSK.ID[ARGV[1]])$
+        $p_tinib = p_tinib + TSK.ID[ARGV[1]] * sizeof_TINIB$
+        $start_address = PEEK(p_tinib + offsetof_TINIB_STKMPUINFOB_start_ustk, 4)$
+        $end_address = PEEK(p_tinib + offsetof_TINIB_STKMPUINFOB_limit_ustk, 4)$
+        $mpl = (start_address & 0xfffffff0)$ 
+        $mpu = (end_address & 0xfffffff0)$ 
+        $IF (mpl != start_address) || (mpu != end_address)$
+            $ERROR$
+                $FORMAT("task is %s", ARGV[1])$$NL$
+                $FORMAT("user stack in not aligned: start=0x%x, end=0x%x", start_address, end_address)$$NL$
+                $FORMAT("mpla=0x%x, mpua=0x%x", mpl, mpu)$
+            $END$
+        $END$
+        $IF mpl == mpu$
+            $ERROR$
+                $FORMAT("task is %s", ARGV[1])$$NL$
+                $FORMAT("user stack size is 0: start=0x%x, end=0x%x", start_address, end_address)$$NL$
+                $FORMAT("mpla=0x%x, mpua=0x%x", mpl, mpu)$
+            $END$
+        $END$
+        $mpu = (mpu - 0x1) & 0xfffffffc$
+        $TAB$$TAB$$TAB$$FORMAT("(uint8 *)0x%x /* &__start_user_stack %s */", mpl, ARGV[1])$,$NL$
+        $TAB$$TAB$$TAB$$FORMAT("(uint8 *)0x%x /* &__limit_user_stack %s */", mpu, ARGV[1])$,$NL$
+$ $ 		$IF EQ(TSK.STK[tskid],"NULL")$
+$ $ $			// stkがNULLの場合の処理
+$ $             $IF LENGTH(TSK.SHARED_USTK_ID[tskid])$
+$ $ $               // 共有スタック
+$ $                 $TAB$$TAB$$TAB$$FORMAT("&__start_shared_user_stack%s", TSK.PRIORITY[ARGV[1]])$,$NL$
+$ $                 $TAB$$TAB$$TAB$$FORMAT("(&__limit_shared_user_stack%s - 0x10)", TSK.PRIORITY[ARGV[1]])$,$NL$
+$ $             $ELSE$
+$ $ $               // 固有スタック
+$ $                 $TAB$$TAB$$TAB$$FORMAT("&__start_user_stack%s", ARGV[1])$,$NL$
+$ $                 $TAB$$TAB$$TAB$$FORMAT("(&__limit_user_stack%s - 0x10)", ARGV[1])$,$NL$
+$ $             $END$
+$ $         $ELSE$
+$ $ $			// stkがNULLでない場合の処理
+$ $             $TAB$$TAB$$TAB$$FORMAT("(uint8 *)%s", TSK.TINIB_USTK[ARGV[1]])$,$NL$
+$ $             $TAB$$TAB$$TAB$$FORMAT("(uint8 *)((uint32)%s + %d - 0x10)", TSK.TINIB_USTK[ARGV[1]], TSK.TINIB_USTKSZ[ARGV[1]])$,$NL$
+$ $         $END$
+    $END$
+	$TAB$$TAB$},$NL$
+$END$
+
+$ 
+$  非依存部の読込み
+$ 
+$INCLUDE "kernel/kernel_mem.tf"$
+
+$ 
+$  共有のMPU設定情報を生成
+$  kernel_mem3.cの宣言位置と合わせる
+$ 
+$FILE "kernel_mem.c"$
+
+$  RWX領域
+$comment[3] = "MPU 3"$
+$access[3] = 0x47$
+
+$shared_meminib = SYMBOL("shared_meminib_table")$
+$TNUM_SHARED_REGION = 1$
+const uint32 tnum_shared_mem = $TNUM_SHARED_REGION * 2$;$NL$
+uint8 * const shared_meminib_table[$TNUM_SHARED_REGION * 2$] = {$NL$
+$FOREACH info RANGE(3,3)$
+$   // 領域の開始アドレスを読み込む 
+    $start_address = SHARED_DATA.BASE$
+$   // 領域の終了アドレスを読み込む 
+    $end_address = SHARED_DATA.LIMIT$
+    $ipal = (start_address & 0xfffffff0)$ 
+    $ipau = (end_address & 0xfffffff0)$ 
+    $WARNING$
+        $FORMAT("info%d: start=0x%x, end=0x%x", info, start_address, end_address)$
+    $END$
+    $IF (ipal != start_address) || (ipau != end_address)$
+        $ERROR$
+            $FORMAT("Not aligned: start=0x%x, end=0x%x", start_address, end_address)$
+        $END$
+    $END$
+    $IF ipal != ipau$
+        $valid[info] = 0x01$
+        $ipau = (ipau - 0x1) & 0xfffffffc$
+    $ELSE$
+        $valid[info] = 0x00$
+    $END$
+    $WARNING$
+        $FORMAT("info%d: ipal=0x%x, ipau=0x%x", info, ipal, ipau)$
+    $END$
+    $TAB$$TAB$$FORMAT("( (uint8 *)0x%x )", ipal)$, /* MPLA($comment[info]$) */$NL$
+    $TAB$$TAB$$FORMAT("( (uint8 *)0x%x )", ipau)$, /* MPUA($comment[info]$) */$NL$
+$END$
+};$NL$
+$NL$
+
+$TRACE(valid[1])$
+$TRACE(valid[2])$
+$TRACE(valid[3])$
+
+$ $mpu_region_control = 0x01$
+$ $mprc_ex = 2$
+$ $FOREACH x RANGE(1,3)$
+$     $IF valid[x] == 0x01$
+$         $mpu_region_control = mpu_region_control | mprc_ex$
+$     $END$
+$     $mprc_ex = mprc_ex * 2$
+$ $END$
+$ const uint32 mpu_region_control = $mpu_region_control$; /* MPRC */$NL$
+
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/prc_mpu.c
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/prc_mpu.c	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/prc_mpu.c	(revision 117)
@@ -0,0 +1,489 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *	
+ *	Copyright (C) 2013 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プロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *	に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *	アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *	の責任を負わない．
+ *	
+ */
+
+/*
+ *	MPUドライバ
+ */
+
+#include "kernel_impl.h"
+#include "task.h"
+#include "memory.h"
+#include "prc_sil.h"
+#include "Os_Lcfg.h"
+#include "target_mpu.h"
+#include <t_syslog.h>
+
+void *p_ctxosap;
+
+void
+target_mpu_initialize(void)
+{
+#ifdef __v850e2v3__
+    uint8 *ipal;
+    uint8 *ipau;
+
+    /*
+     *  bselを保護設定用に
+     */
+    ipal = (uint8 *)0x00001001;
+    LDSR_REG(BSEL, (uint32)ipal);
+
+    /*
+     *  IPA2: 共有リード領域
+     */
+    ipal = shared_meminib_table[0];
+    ipau = shared_meminib_table[1];
+    IPA_WRITE(2, ipal, ipau);
+
+    /*
+     *  IPA3: 共有rosdata
+     */
+    ipal = shared_meminib_table[2];
+    ipau = shared_meminib_table[3];
+    IPA_WRITE(3, ipal, ipau);
+
+    /*
+     *  DPA5: 共有リードライト領域
+     */
+    ipal = shared_meminib_table[4];
+    ipau = shared_meminib_table[5];
+    DPA_WRITE(5, ipal, ipau);
+
+    /*
+     *  MPU有効
+     *  特権モードではデフォルトのメモリマップ
+     *  ハンドラ内ではMPU無効
+     */
+    ipal = (uint8 *)0x07;
+    LDSR_REG(MPM, (uint32)ipal);
+
+    /*
+     *  bselを基本設定用に戻す
+     */
+    LDSR_REG(BSEL, (0U));
+
+#elif defined(__v850e3v5__)
+    uint32 mpm = 0x0U;
+
+    /*
+     *  共有リードライト領域
+     *  MPA3
+     */
+    mpm = (uint32)shared_meminib_table[0];
+    LDSR_REG(12, 6, (uint32)mpm);
+    mpm = (uint32)shared_meminib_table[1];
+    LDSR_REG(13, 6, (uint32)mpm);
+
+#if (MPU_REGION_NUM >= 11)
+    /*
+     *  共有リード領域
+     *  MPA8
+     */
+    mpm = (uint32)shared_meminib_table[2];
+    LDSR_REG(0, 7, (uint32)mpm);
+    mpm = (uint32)shared_meminib_table[3];
+    LDSR_REG(1, 7, (uint32)mpm);
+
+    /*
+     *  共有rosdata
+     *  MPA9
+     */
+    mpm = (uint32)shared_meminib_table[4];
+    LDSR_REG(4, 7, (uint32)mpm);
+    mpm = (uint32)shared_meminib_table[5];
+    LDSR_REG(5, 7, (uint32)mpm);
+
+    /*
+     *  共有リード専有ライトの全体
+     *  MPA10
+     */
+    mpm = (uint32)shared_meminib_table[6];
+    LDSR_REG(8, 7, (uint32)mpm);
+    mpm = (uint32)shared_meminib_table[7];
+    LDSR_REG(9, 7, (uint32)mpm);
+
+#endif /* (MPU_REGION_NUM >= 11) */
+
+    /*
+     *  MPATの設定
+     */
+    LDSR_REG(2, 6, (uint32)(MPAT_E | MPAT_G | MPAT_UX | MPAT_UW | MPAT_UR))
+    LDSR_REG(6, 6, (uint32)(MPAT_E | MPAT_G | MPAT_UX | MPAT_UW | MPAT_UR))
+    LDSR_REG(10, 6, (uint32)(MPAT_E | MPAT_G | MPAT_UX | MPAT_UW | MPAT_UR))
+    LDSR_REG(14, 6, (uint32)(MPAT_E | MPAT_G | MPAT_UX | MPAT_UW | MPAT_UR))
+#if (MPU_REGION_NUM >= 11)
+    LDSR_REG(18, 6, (uint32)(MPAT_E | MPAT_G | MPAT_UX | MPAT_UR))
+    LDSR_REG(22, 6, (uint32)(MPAT_E | MPAT_G | MPAT_UX | MPAT_UR))
+    LDSR_REG(26, 6, (uint32)(MPAT_E | MPAT_G | MPAT_UX | MPAT_UW | MPAT_UR))
+    LDSR_REG(30, 6, (uint32)(MPAT_E | MPAT_G | MPAT_UX | MPAT_UW | MPAT_UR))
+    LDSR_REG(3,  7, (uint32)(MPAT_E | MPAT_G | MPAT_UX | MPAT_UR))
+    LDSR_REG(7,  7, (uint32)(MPAT_E | MPAT_G | MPAT_UX | MPAT_UR))
+    LDSR_REG(10, 7, (uint32)(MPAT_E | MPAT_G | MPAT_UX | MPAT_UR))
+#endif /* (MPU_REGION_NUM >= 11) */
+
+    /*
+     *  MPU有効
+     *   DW = 0  バックグラウンドの書込みは禁止
+     *   SVP = 0 特権でのアクセス制限はしない
+     *   MPE = 1 MPU有効
+     */
+    /*
+     *  RH850/F1L用の設定
+     *   DR = 1  バックグラウンドの書込みは禁止
+     *   DW = 0  バックグラウンドの書込みは禁止
+     *   DX = 1  バックグラウンドの書込みは禁止
+     *  RH850/F1H用の設定
+     *   DR = 0  バックグラウンドのアクセスは禁止
+     *   DW = 0  バックグラウンドのアクセスは禁止
+     *   DX = 0  バックグラウンドのアクセスは禁止
+     */
+#if (MPU_REGION_NUM >= 11)
+    mpm = 0x001U;
+#else /* (MPU_REGION_NUM >= 11) */
+    mpm = 0x501U;
+#endif /* (MPU_REGION_NUM >= 11) */
+    LDSR_REG(0, 5, (uint32)mpm);
+
+#else /* __v850e3v5__ */
+#error please define ether __v850e2v3__ or __v850e3v5__
+#endif /* __v850e2v3__ */
+
+}
+
+void
+target_impu_exc_handler(void *p_excinf)
+{
+    uint32 sreg;
+    uint32 vmtid;
+
+#if defined(__v850e2v3__)
+    sreg = 0x00001000;      /* プロセッサ保護違反バンク */
+    LDSR_REG(BSEL, sreg);
+    STSR_REG(VMTID, vmtid);
+    STSR_REG(VMADR, sreg);
+    LDSR_REG(BSEL, (0U));
+
+#elif defined(__v850e3v5__)
+    vmtid = (uint32)p_runosap;
+    STSR_REG(2, 0, (sreg));
+
+#else /* __v850e3v5__ */
+#error please define ether __v850e2v3__ or __v850e3v5__
+#endif /* __v850e2v3__ */
+
+    syslog(LOG_EMERG, "MPU EXCEPTION (RX) at 0x%x OCCURED!!", sreg);
+    syslog(LOG_EMERG, "p_dominib = 0x%x", vmtid);
+    while(1);
+}
+
+void
+target_dmpu_exc_handler(void *p_excinf)
+{
+    uint32 sreg;
+    uint32 vmtid;
+
+#if defined(__v850e2v3__)
+    sreg = 0x00001000;      /* プロセッサ保護違反バンク */
+    LDSR_REG(BSEL, (sreg));
+    STSR_REG(VMTID, (vmtid));
+    STSR_REG(VMADR, (sreg));
+    LDSR_REG(BSEL, (0U));
+#elif defined(__v850e3v5__)
+    vmtid = (uint32)p_runosap;
+    STSR_REG(2, 0, (sreg));
+
+#else /* __v850e3v5__ */
+#error please define ether __v850e2v3__ or __v850e3v5__
+#endif /* __v850e2v3__ */
+
+    syslog(LOG_EMERG, "MPU EXCEPTION (RWX) at 0x%x OCCURED!!", sreg);
+    syslog(LOG_EMERG, "p_dominib = 0x%x", vmtid);
+    while(1);
+}
+
+/*
+ *  保護違反FEレベル例外ハンドラ
+ */
+void
+target_protection_handler(void *p_excinf)
+{
+    uint32 feic = 0;
+
+    /*
+     *  FEレベル例外要因の読出し
+     */
+#if defined(__v850e2v3__)
+    LDSR_REG(BSEL, 0U);
+	STSR_REG(FEIC, feic);
+
+#elif defined(__v850e3v5__)
+	STSR_REG(FEIC, 0, feic);
+
+#else /* __v850e3v5__ */
+#error please define ether __v850e2v3__ or __v850e3v5__
+#endif /* __v850e2v3__ */
+
+    switch(feic){
+        case FE_MIP: /* 実行保護違反例外 */
+            target_impu_exc_handler(NULL);
+            break;
+        case FE_MDP: /* データ保護違反例外 */
+            target_dmpu_exc_handler(NULL);
+            break;
+        default:
+            break;
+    }
+}
+
+#if 1
+/*
+ *  指定されたアドレスがユーザモード時に書込み可能かをチェックする
+ */
+#ifdef OMIT_PROBE_MEM_WRITE
+boolean
+probe_mem_write(const MemoryStartAddressType base, MemorySizeType size)
+{
+    uint32 sreg;
+    boolean ret;
+
+    /*
+     *  信頼OSAPならば任意のアドレスにアクセス可能
+     */
+    if(run_trusted != FALSE){
+        return TRUE;
+    }
+
+#ifdef __v850e2v3__
+    sreg = 0x00001000;      /* プロセッサ保護違反バンク */
+    /*
+     *  バンクをセット
+     */
+    LDSR_REG(BSEL, (sreg));
+    /*
+     *  先頭アドレスをMCAにセット
+     */
+    LDSR_REG(MCA, (uint32)base);
+
+    /*
+     *  サイズをMCSにセット
+     */
+    LDSR_REG(MCS, (uint32)size);
+
+    /*
+     *  メモリ保護設定チェック開始
+     */
+    LDSR_REG(MCC, 0U);
+
+    /*
+     *  メモリ保護設定チェック結果を読み出す
+     */
+    STSR_REG(MCR, sreg);
+#elif __v850e3v5__
+    /*
+     *  先頭アドレスをMCAにセット
+     */
+    LDSR_REG(8, 5, (uint32)base);
+    /*
+     *  サイズをMCSにセット
+     */
+    LDSR_REG(9, 5, (uint32)size);
+    /*
+     *  メモリ保護設定チェック開始
+     */
+    LDSR_REG(10, 5, 0U);
+    /*
+     *  メモリ保護設定チェック結果を読み出す
+     */
+    STSR_REG(11, 5, sreg);
+#else
+#error hoge!
+#endif
+
+    if(sreg & 0x00000100){
+        /* オーバフローの場合 */
+        ret = FALSE;
+    } else if(sreg & 0x00000004){
+        /* ライト許可の場合 */
+        ret = TRUE;
+    } else {
+        ret = FALSE;
+    }
+
+#ifdef __v850e2v3__
+    /*
+     *  バンクを戻す
+     */
+    LDSR_REG(BSEL, 0U);
+#endif /* __v850e2v3__ */
+
+	return ret;
+}
+#endif /* OMIT_PROBE_MEM_WRITE */
+
+#ifdef __v850e2v3__
+/*
+ *  指定されたアドレスがユーザモード時に読込み可能かをチェックする
+ */
+#ifdef OMIT_PROBE_MEM_READ
+boolean
+probe_mem_read(const MemoryStartAddressType base, MemorySizeType size)
+{
+    uint32 sreg;
+    boolean ret;
+
+    /*
+     *  信頼OSAPならば任意のアドレスにアクセス可能
+     */
+    if(run_trusted != FALSE){
+        return TRUE;
+    }
+
+    sreg = 0x00001000;      /* プロセッサ保護違反バンク */
+    /*
+     *  バンクをセット
+     */
+    LDSR_REG(BSEL, sreg);
+
+    /*
+     *  先頭アドレスをMCAにセット
+     */
+    LDSR_REG(MCA, (uint32)base);
+
+    /*
+     *  サイズをMCSにセット
+     */
+    LDSR_REG(MCS, (uint32)size);
+
+    /*
+     *  メモリ保護設定チェック開始
+     */
+    LDSR_REG(MCC, (uint32)size);
+
+    /*
+     *  メモリ保護設定チェック結果を読み出す
+     */
+    STSR_REG(MCR, sreg);
+
+    if(sreg & 0x00000100){
+        /* オーバフローの場合 */
+        ret = FALSE;
+    } else if(sreg & 0x00000002){
+        /* リード許可の場合 */
+        ret = TRUE;
+    } else {
+        ret = FALSE;
+    }
+
+    /*
+     *  バンクを戻す
+     */
+    LDSR_REG(BSEL, 0U);
+
+	return ret;
+}
+#endif /* OMIT_PROBE_MEM_READ */
+
+/*
+ *  指定された領域がユーザスタック領域に収まっているかをチェックする
+ */
+#ifdef OMIT_PROBE_STACK
+
+boolean
+probe_stack(const void *base, MemorySizeType size)
+{
+    uint32 sreg;
+    boolean ret;
+
+    sreg = 0x00001000;      /* プロセッサ保護違反バンク */
+    /*
+     *  バンクをセット
+     */
+    LDSR_REG(BSEL, sreg);
+
+    /*
+     *  先頭アドレスをMCAにセット
+     */
+    LDSR_REG(MCA, (uint32)base);
+
+    /*
+     *  サイズをMCSにセット
+     */
+    LDSR_REG(MCS, (uint32)size);
+
+    /*
+     *  メモリ保護設定チェック開始
+     */
+    LDSR_REG(MCC, 0U);
+
+    /*
+     *  メモリ保護設定チェック結果を読み出す
+     */
+    STSR_REG(MCR, sreg);
+
+    if(sreg & 0x00000100){
+        /* オーバフローの場合 */
+        ret = FALSE;
+    } else if(sreg & 0x00000010){
+        /* スタックの場合 */
+        ret = TRUE;
+    } else {
+        ret = FALSE;
+    }
+
+    /*
+     *  バンクを戻す
+     */
+    LDSR_REG(BSEL, 0U);
+
+	
+	return ret;
+}
+#endif /* OMIT_PROBE_STACK */
+#endif /* __v850e2v3__ */
+#endif
+
+AccessType
+probe_trusted_osap_mem(const MemoryStartAddressType sadr, const MemoryStartAddressType eadr)
+{
+    /*
+     *  信頼OSAPならば任意のアドレスにアクセス可能
+     */
+    return(AP_Executable|AP_Readable|AP_Writable);
+}
+
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/prc_mpu.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/prc_mpu.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/prc_mpu.h	(revision 117)
@@ -0,0 +1,94 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *	
+ *	Copyright (C) 2013 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プロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *	に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *	アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *	の責任を負わない．
+ *	
+ */
+
+/*
+ *	MPUドライバ（V850E2用）
+ */
+
+#ifndef TOPPERS_PRC_MPU_H
+#define TOPPERS_PRC_MPU_H
+
+#ifndef TOPPERS_MACRO_ONLY
+/*
+ * システムレジスタへの書き込み
+ */
+#define IPA_WRITE(n, ipal, ipau) {\
+    Asm("\tldsr %0, ipa" #n "l \n"\
+        "\tldsr %1, ipa" #n "u \n"\
+        : : "r"(ipal), "r"(ipau): );\
+}
+#define DPA_WRITE(n, dpal, dpau) {\
+    Asm("\tldsr %0, dpa" #n "l \n"\
+        "\tldsr %1, dpa" #n "u \n"\
+        : : "r"(dpal), "r"(dpau): );\
+}
+
+extern void *p_ctxosap;
+/* 初期化ルーチン */
+extern void target_mpu_initialize(void);
+/* メモリ保護違反例外ハンドラ */
+extern void target_impu_exc_handler(void *p_excinf);
+extern void target_dmpu_exc_handler(void *p_excinf);
+/* タスク例外実行開始時スタック不正ハンドラ */
+extern void target_emulate_texrtn_handler(void *p_excinf);
+/* タスク例外リターン時スタック不正ハンドラ */
+extern void target_emulate_ret_tex_handler(void *p_excinf);
+
+/*
+ *  保護違反FEレベル例外ハンドラ
+ */
+#define EXCNO_PROTECTION 3
+extern void target_protection_handler(void *p_excinf);
+
+/*
+ *  TODO: probe_memをターゲット依存部で定義できる？
+ */
+#define OMIT_PROBE_MEM_WRITE
+#if 0
+#define PROBE_MEM_WRITE(p_var, type) \
+	(probe_mem_write((MemoryStartAddressType) (p_var), sizeof(type)))
+#endif
+#define OMIT_PROBE_MEM_READ
+#define OMIT_PROBE_STACK
+
+extern AccessType probe_trusted_osap_mem(const MemoryStartAddressType sadr, const MemoryStartAddressType eadr);
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_PRC_MPU_H */
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/prc_offset.tf
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/prc_offset.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/prc_offset.tf	(revision 117)
@@ -0,0 +1,109 @@
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$  Copyright (C) 2012-2013 by Center for Embedded Computing Systems
+$              Graduate School of Information Science, Nagoya Univ., JAPAN
+$  Copyright (C) 2012-2013 by FUJISOFT INCORPORATED, JAPAN
+$  Copyright (C) 2012-2013 by FUJITSU VLSI LIMITED, JAPAN
+$  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+$  Copyright (C) 2012-2013 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+$  Copyright (C) 2012-2013 by Renesas Electronics Corporation, JAPAN
+$  Copyright (C) 2012-2013 by Sunny Giken Inc., JAPAN
+$  Copyright (C) 2012-2013 by TOSHIBA CORPORATION, JAPAN
+$  Copyright (C) 2012-2013 by Witz Corporation, JAPAN
+$  Copyright (C) 2013 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プロジェクトを
+$      免責すること．
+$
+$  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+$  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+$  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+$  用する者に対して，AUTOSARパートナーになることを求めている．
+$
+$  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+$  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+$  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$  の責任を負わない．
+$
+$  $Id: prc_offset.tf 189 2015-06-26 01:54:57Z t_ishikawa $
+$
+
+$
+$       オフセットファイル生成用テンプレートファイル（V850用）
+$
+
+$
+$  オフセット値のマクロ定義の生成
+$
+$DEFINE("TCB_p_tinib", offsetof_TCB_p_tinib)$
+$DEFINE("TCB_curpri", offsetof_TCB_curpri)$
+$  =begin modified for SC3
+$DEFINE("TCB_ssp", offsetof_TCB_ssp)$
+$DEFINE("TCB_usp", offsetof_TCB_usp)$
+$DEFINE("TCB_priv_mode", offsetof_TCB_priv_mode)$
+$  =end modified for SC3
+$DEFINE("TCB_pc", offsetof_TCB_pc)$
+
+$DEFINE("TINIB_task", offsetof_TINIB_task)$
+$  =begin modified for SC3
+$DEFINE("TINIB_sstksz", offsetof_TINIB_TSKINICTXB_sstksz)$
+$DEFINE("TINIB_sstk_bottom", offsetof_TINIB_TSKINICTXB_sstk_bottom)$
+$DEFINE("TINIB_ustksz", offsetof_TINIB_TSKINICTXB_stksz)$
+$DEFINE("TINIB_ustk_bottom", offsetof_TINIB_TSKINICTXB_stk_bottom)$
+$DEFINE("TINIB_start_ustk", offsetof_TINIB_STKMPUINFOB_start_ustk)$
+$DEFINE("TINIB_limit_ustk", offsetof_TINIB_STKMPUINFOB_limit_ustk)$
+$DEFINE("TINIB_p_osapcb", offsetof_TINIB_p_osapcb)$
+$  =end modified for SC3
+$DEFINE("TINIB_exepri", offsetof_TINIB_exepri)$
+
+$DEFINE("INTINIB_remain_stksz", offsetof_INTINIB_remain_stksz)$
+$DEFINE("ISRCB_p_isrinib", offsetof_ISRCB_p_isrinib)$
+
+$  =begin modified for SC3
+$DEFINE("ISRINIB_p_intinib", offsetof_ISRINIB_p_intinib)$
+$DEFINE("ISRINIB_p_osapcb",         offsetof_ISRINIB_p_osapcb)$
+
+$DEFINE("OSAPCB_p_osapinib", offsetof_OSAPCB_p_osapinib)$
+ 
+$DEFINE("OSAPINIB_osap_trusted",    offsetof_OSAPINIB_osap_trusted)$
+$DEFINE("OSAPINIB_osapmpu",         offsetof_OSAPINIB_osapmpu)$
+$DEFINE("OSAPINIB_start_text",      offsetof_OSAPINIB_start_text)$
+$DEFINE("OSAPINIB_limit_text",      offsetof_OSAPINIB_limit_text)$
+$DEFINE("OSAPINIB_start_rosdata",   offsetof_OSAPINIB_start_rosdata)$
+$DEFINE("OSAPINIB_limit_rosdata",   offsetof_OSAPINIB_limit_rosdata)$
+$DEFINE("OSAPINIB_start_ram",       offsetof_OSAPINIB_start_ram)$
+$DEFINE("OSAPINIB_limit_ram",       offsetof_OSAPINIB_limit_ram)$
+$DEFINE("OSAPINIB_start_sram",      offsetof_OSAPINIB_start_sram)$
+$DEFINE("OSAPINIB_limit_sram",      offsetof_OSAPINIB_limit_sram)$
+$DEFINE("OSAPINIB_start_srpw",      offsetof_OSAPINIB_start_srpw)$
+$DEFINE("OSAPINIB_limit_srpw",      offsetof_OSAPINIB_limit_srpw)$
+$DEFINE("OSAPINIB_start_ssrpw",     offsetof_OSAPINIB_start_ssrpw)$
+$DEFINE("OSAPINIB_limit_ssrpw",     offsetof_OSAPINIB_limit_ssrpw)$
+$DEFINE("OSAPINIB_mprc",            offsetof_OSAPINIB_mprc)$
+$  =end modified for SC3
+
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/prc_opt.tf
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/prc_opt.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/prc_opt.tf	(revision 117)
@@ -0,0 +1,674 @@
+$ ======================================================================
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$   Copyright (C) 2013 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プロジェクトは，本ソフトウェアに関して，特定の使用目的
+$   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$   の責任を負わない．
+$
+$  
+$ =====================================================================
+
+$DEBUG_OPT_TF = 1$
+
+$ 
+$  arch/v850_gcc/ldscript.tfのターゲット依存部
+$ 
+$FUNCTION GENERATE_MEMORY$
+    $NOOP()$
+$END$
+
+$FUNCTION GENERATE_OUTPUT$
+    OUTPUT_FORMAT("elf32-v850","elf32-v850","elf32-v850")$NL$
+    OUTPUT_ARCH(v850)$NL$
+    $NL$
+$END$
+
+$
+$  保護ドメインのラベルの作成
+$	OSAP.LABEL[domid]：保護ドメインのラベル
+$
+$OSAP.LABEL[TDOM_KERNEL] = "kernel"$
+$FOREACH domid OSAP.ID_LIST$
+	$OSAP.LABEL[domid] = domid$
+$END$
+$OSAP.LABEL[TDOM_NONE] = "shared"$
+
+$ 
+$  標準のセクションのメモリオブジェクト属性の定義
+$ 
+$MEMATR_TEXT = (TA_NOWRITE|TA_EXEC)$
+$MEMATR_RODATA = (TA_NOWRITE|TA_EXEC)$
+$MEMATR_DATA = TA_MEMINI$
+$MEMATR_BSS = TA_NULL$
+$MEMATR_PRSV = TA_MEMPRSV$
+$MEMATR_ROSDATA = (TA_SDATA|TA_MEMINI|TA_NOWRITE|TA_EXEC)$
+$MEMATR_SDATA = (TA_SDATA|TA_MEMINI)$
+$MEMATR_SBSS = TA_SDATA$
+
+
+$ 
+$  保護ドメイン毎のデフォルトのアクセス許可パターンの作成
+$ 
+$DEFAULT_ACPTN[TDOM_KERNEL] = VALUE("TACP_KERNEL", TACP_KERNEL)$
+$FOREACH domid OSAP.ID_LIST$
+	$DEFAULT_ACPTN[domid] = VALUE(FORMAT("TACP(%1%)", domid), 1 << (domid - 1))$
+$END$
+$DEFAULT_ACPTN[TDOM_NONE] = VALUE("TACP_SHARED", TACP_SHARED)$
+
+$ 
+$  メモリ保護単位の実際のサイズを受け取り，受け取ったサイズ以上で，
+$  ARM MPUのサイズ制約を満たす最小値を返す
+$  ARM MPUのサイズ制約は，16B~4GBの範囲の2のべき乗
+$  ARGV[1]：実際のサイズ
+$  RESULT：ARM MPUのサイズ制約を満たす最小値
+$FUNCTION SEARCH_ARM_MPU_SIZE$
+    $IF ARGV[1] <= 0$
+        $RESULT = 0$
+    $ELSE$
+        $search_state = 0$
+        $FOREACH bit_offset { 31,30,...,4 }$
+            $compare_bit = 1 << bit_offset$
+            $IF ((ARGV[1] & compare_bit) != 0)$
+                $IF (search_state == 0)$
+                    $result_size = compare_bit$
+                    $search_state = 1$
+                $ELIF (search_state == 1)$
+                    $result_size = (result_size << 1)$
+                    $search_state = 2$
+                $END$
+            $END$
+        $END$
+        $IF (search_state == 0)$
+            $result_size = (1 << 4)$
+        $ELIF (search_state == 1) && ((ARGV[1] & 0xf) != 0)$
+            $result_size = (result_size << 1)$
+        $END$
+        $RESULT = result_size$
+    $END$
+$END$
+
+$ 
+$  受け取った番地以上で，ARM MPUのアライン制約の最小値を返す
+$  ARGV[1]：番地
+$  ARGV[2]：サイズ
+$  RESULT：ARM MPUのアライン制約を満たす最小値
+$ 
+$FUNCTION SEARCH_ARM_MPU_ALIGN$
+    $result_align = ARGV[1]$
+    $compare_mask = ARGV[2] - 1$
+    $IF ((ARGV[1] & compare_mask) != 0)$
+        $result_align = ARGV[1] & ~compare_mask$
+        $result_align = result_align + ARGV[2]$
+    $END$
+
+    $RESULT = result_align$
+$END$
+
+$ 
+$  tsize_meminibの補正
+$  sdata_sharedの先頭アドレスをマスクベース方式でアラインするため，
+$  その直前のセクションのlimitとsdata_sharedのstartが異なる可能性がある
+$  よって+1しておく
+$  prsv_sharedの終端アドレスをマスクベース方式でアラインするため，
+$  prsv_sharedのサイズが空でも，パス4ではstartとlimitが異なる可能性がある
+$  よって+1しておく
+$  
+$FUNCTION CALC_TSIZE_MEMINIB$
+    $tsize_meminib = tsize_meminib + 2$
+$END$
+
+$OPTIMIZE_MEMINIB = 1$
+$OPTIMIZE_DATASEC_LIST = 1$
+$OPTIMIZE_BSSSEC_LIST = 1$
+
+$ 
+$  OSAP初期化コンテキストブロックのための宣言
+$ 
+$FUNCTION PREPARE_OSAPINICTXB$
+    $IF LENGTH(TSK.ID_LIST)$
+        $FOREACH tskid TSK.ID_LIST$
+            $IF !OSAP.TRUSTED[TSK.OSAPID[tskid]]$
+                extern uint8 $FORMAT("__start_user_stack%s", tskid)$;$NL$
+                extern uint8 $FORMAT("__limit_user_stack%s", tskid)$;$NL$
+            $END$
+        $END$
+    $END$
+    $FOREACH tskpri RANGE(TMIN_TPRI, TMAX_TPRI)$
+        $IF LENGTH(shared_ustack_size[tskpri])$
+            extern uint8 $FORMAT("__start_shared_user_stack%s", tskpri)$;$NL$
+            extern uint8 $FORMAT("__limit_shared_user_stack%s", tskpri)$;$NL$
+        $END$
+    $END$
+
+
+    $IF LENGTH(OSAP.ID_LIST)$
+        $FOREACH domid OSAP.ID_LIST$
+            $IF !OSAP.TRUSTED[domid]$
+$   RX領域（専用）
+                extern uint8 __start_text_$OSAP.LABEL[domid]$;$NL$
+                extern uint8 __limit_text_$OSAP.LABEL[domid]$;$NL$
+$   R領域（専用）
+                extern uint8 __start_sram_$OSAP.LABEL[domid]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$;$NL$
+                extern uint8 __limit_sram_$OSAP.LABEL[domid]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$;$NL$
+$   RWX領域（専用）
+                extern uint8 __start_ram_$OSAP.LABEL[domid]$;$NL$
+                extern uint8 __limit_ram_$OSAP.LABEL[domid]$;$NL$
+                extern uint8 __start_sram_$OSAP.LABEL[domid]$;$NL$
+                extern uint8 __limit_sram_$OSAP.LABEL[domid]$;$NL$
+$   共有リード専用ライト
+                extern uint8 $FORMAT("__start_ram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$;$NL$
+                extern uint8 $FORMAT("__limit_ram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$;$NL$
+                extern uint8 $FORMAT("__start_sram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$;$NL$
+                extern uint8 $FORMAT("__limit_sram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$;$NL$
+            $END$
+        $END$
+        $NL$
+    $END$$NL$
+
+$  共有領域
+    extern uint8 __start_text_$OSAP.LABEL[TDOM_NONE]$;$NL$
+    extern uint8 __limit_text_$OSAP.LABEL[TDOM_NONE]$;$NL$
+    extern uint8 __start_sram_$OSAP.LABEL[TDOM_NONE]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$;$NL$
+    extern uint8 __limit_sram_$OSAP.LABEL[TDOM_NONE]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$;$NL$
+    extern uint8 __start_ram_$OSAP.LABEL[TDOM_NONE]$;$NL$
+    extern uint8 __limit_ram_$OSAP.LABEL[TDOM_NONE]$;$NL$
+    extern uint8 __start_sram_$OSAP.LABEL[TDOM_NONE]$;$NL$
+    extern uint8 __limit_sram_$OSAP.LABEL[TDOM_NONE]$;$NL$
+$   共有リード専用ライト領域全体
+    extern uint8 __start_srpw_all;$NL$
+    extern uint8 __limit_srpw_all;$NL$
+    extern uint8 __start_ssrpw_all;$NL$
+    extern uint8 __limit_ssrpw_all;$NL$
+    $NL$
+$END$
+
+
+$FUNCTION GENERATE_TARGET_MPUINFOB$
+$ 
+$  保護ドメイン初期化ブロックのmem依存部を生成
+$ 
+    $FILE "kernel_mem3.c"$
+
+    $PREPARE_OSAPINICTXB()$
+
+$END$
+
+$ 
+$  TSKINICTXBの初期化情報を生成
+$ 
+$DOMINICTXB_KERNEL = "{ NULL }"$
+
+$FUNCTION GENERATE_OSAPINIB_MPUINFOB$
+    $TAB$$TAB${$NL$
+    $IF !OSAP.TRUSTED[ARGV[1]]$
+$   RX領域（専用）
+        $TAB$$TAB$$TAB$( (uint8 *)&__start_text_$OSAP.LABEL[ARGV[1]]$ ), /* iregion 0 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)&__limit_text_$OSAP.LABEL[ARGV[1]]$ ), /* iregion 0 */$NL$
+$   RX領域（専用ショートデータ）
+        $TAB$$TAB$$TAB$( (uint8 *)&__start_sram_$OSAP.LABEL[ARGV[1]]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$ ),/* iregion 1 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)&__limit_sram_$OSAP.LABEL[ARGV[1]]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$ ),/* iregion 1 */$NL$
+$   RWX領域（専用）
+        $TAB$$TAB$$TAB$( (uint8 *)&__start_ram_$OSAP.LABEL[ARGV[1]]$ ),/* dregion 1 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)&__limit_ram_$OSAP.LABEL[ARGV[1]]$ ),/* dregion 1 */$NL$
+$   RWX領域（専用ショートデータ）
+        $TAB$$TAB$$TAB$( (uint8 *)&__start_sram_$OSAP.LABEL[ARGV[1]]$ ),/* dregion 2 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)&__limit_sram_$OSAP.LABEL[ARGV[1]]$ ),/* dregion 2 */$NL$
+$   共有リード専用ライト
+        $TAB$$TAB$$TAB$$FORMAT("( (uint8 *)&__start_ram_%s_%x_%x )", OSAP.LABEL[ARGV[1]], +DEFAULT_ACPTN[ARGV[1]], +TACP_SHARED)$,/* dregion 3 */$NL$
+        $TAB$$TAB$$TAB$$FORMAT("( (uint8 *)&__limit_ram_%s_%x_%x )", OSAP.LABEL[ARGV[1]], +DEFAULT_ACPTN[ARGV[1]], +TACP_SHARED)$,/* dregion 3 */$NL$
+$   共有リード専用ライト（ショートデータ）
+        $TAB$$TAB$$TAB$$FORMAT("( (uint8 *)&__start_sram_%s_%x_%x )", OSAP.LABEL[ARGV[1]], +DEFAULT_ACPTN[ARGV[1]], +TACP_SHARED)$,/* dregion 4 */$NL$
+        $TAB$$TAB$$TAB$$FORMAT("( (uint8 *)&__limit_sram_%s_%x_%x )", OSAP.LABEL[ARGV[1]], +DEFAULT_ACPTN[ARGV[1]], +TACP_SHARED)$,/* dregion 4 */$NL$
+    $ELSE$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* iregion 0 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* iregion 0 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* iregion 1 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* iregion 1 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* dregion 1 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* dregion 1 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* dregion 2 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* dregion 2 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* dregion 3 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* dregion 3 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* dregion 4 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* dregion 4 */$NL$
+    $END$
+    $TAB$$TAB$}$NL$
+    $NL$
+$END$
+
+$FUNCTION GENERATE_TSKINICTXB$
+	$TAB$$TAB${$NL$
+    $TAB$$TAB$$TAB$$TSK.TINIB_SSTKSZ[ARGV[1]]$,$NL$
+	$TAB$$TAB$$TAB$((void *)((uint8 *)($TSK.TINIB_SSTK[ARGV[1]]$)
+    $SPC$+ ($TSK.TINIB_SSTKSZ[ARGV[1]]$))),$NL$
+	$IF OSAP.TRUSTED[TSK.OSAPID[ARGV[1]]]$
+        $TAB$$TAB$$TAB$0,$NL$
+        $TAB$$TAB$$TAB$0,$NL$
+    $ELSE$
+        $TAB$$TAB$$TAB$$TSK.TINIB_USTKSZ[ARGV[1]]$,$NL$ 
+        $TAB$$TAB$$TAB$((void *)((uint8 *)($TSK.TINIB_USTK[ARGV[1]]$)
+        $SPC$+ ($TSK.TINIB_USTKSZ[ARGV[1]]$))),$NL$
+    $END$
+	$TAB$$TAB$},$NL$
+$END$
+
+$FUNCTION GENERATE_STKMPUINFOB$
+	$TAB$$TAB${$NL$
+	$IF OSAP.TRUSTED[TSK.OSAPID[ARGV[1]]]$
+        $TAB$$TAB$$TAB$0,$NL$
+        $TAB$$TAB$$TAB$0,$NL$
+    $ELSE$
+		$IF EQ(TSK.STK[tskid],"NULL")$
+$			// stkがNULLの場合の処理
+            $IF LENGTH(TSK.SHARED_USTK_ID[tskid])$
+$               // 共有スタック
+                $TAB$$TAB$$TAB$$FORMAT("&__start_shared_user_stack%s", TSK.PRIORITY[ARGV[1]])$,$NL$
+                $TAB$$TAB$$TAB$$FORMAT("(&__limit_shared_user_stack%s - 0x10)", TSK.PRIORITY[ARGV[1]])$,$NL$
+            $ELSE$
+$               // 固有スタック
+                $TAB$$TAB$$TAB$$FORMAT("&__start_user_stack%s", ARGV[1])$,$NL$
+                $TAB$$TAB$$TAB$$FORMAT("(&__limit_user_stack%s - 0x10)", ARGV[1])$,$NL$
+            $END$
+        $ELSE$
+$			// stkがNULLでない場合の処理
+            $TAB$$TAB$$TAB$$FORMAT("(uint8 *)%s", TSK.TINIB_USTK[ARGV[1]])$,$NL$
+            $TAB$$TAB$$TAB$$FORMAT("(uint8 *)((uint32)%s + %d - 0x10)", TSK.TINIB_USTK[ARGV[1]], TSK.TINIB_USTKSZ[ARGV[1]])$,$NL$
+        $END$
+    $END$
+	$TAB$$TAB$},$NL$
+$END$
+
+$INCLUDE "kernel/kernel_opt.tf"$
+
+$ 
+$  共有リードライト領域 / 共有リード専有ライト領域（sdata） / rosdata_shared領域
+$  の情報取得
+$  
+$check_shared_mo = 0x00$
+$check_srpw_mo = 0x00$
+$check_rosdata_mo = 0x00$
+$check_sdata_mo = 0x00$
+$LIST_SHARED_MO = {}$
+$LIST_SRPW_MO = {}$
+$LIST_ROSDATA_MO = {}$
+$preid = -1$
+$FOREACH moid MO_START_LIST$
+$   // メモリオブジェクトの先頭をパス2時点での順にチェック
+    $IF LENGTH(FIND(MO_MPROTECT_LIST, moid))$
+$       // メモリ保護単位の先頭の場合
+        $IF (MO.ACPTN1[moid] == TACP_SHARED) && (MO.ACPTN2[moid] == TACP_SHARED)$
+            $IF ((check_shared_mo & 0x10) != 0x10)$
+$               // 共有リードライト領域の先頭の場合
+                $SHARED_AREA_BASE[check_shared_mo] = MO.BASEADDR[moid]$
+                $SHARED_AREA_MO[check_shared_mo] = moid$
+                $LIST_SHARED_MO = APPEND(LIST_SHARED_MO, check_shared_mo)$
+                $check_shared_mo = check_shared_mo | 0x10$
+            $END$
+        $ELIF (check_shared_mo & 0x10) == 0x10$
+$           // 共有リードライト領域の終端の場合
+            $IF preid == -1$
+                $ERROR$
+                    $FORMAT("unexpected preid.")$
+                $END$
+            $END$
+            $check_shared_mo = check_shared_mo & 0x0f$
+            $SHARED_AREA_LIMIT[check_shared_mo] = MO.LIMITADDR[preid]$
+            $SHARED_AREA_SIZE[check_shared_mo] = SHARED_AREA_LIMIT[check_shared_mo] - SHARED_AREA_BASE[check_shared_mo]$
+            $SHARED_AREA_LIMIT_MO[check_shared_mo] = preid$
+            $check_shared_mo = check_shared_mo + 1$
+        $END$
+
+    $END$
+
+    $preid = moid$
+$END$
+$IF (check_shared_mo & 0x10) == 0x10$
+    $IF preid == -1$
+        $ERROR$
+            $FORMAT("unexpected preid.")$
+        $END$
+    $END$
+    $check_shared_mo = check_shared_mo & 0x0f$
+    $SHARED_AREA_LIMIT[check_shared_mo] = MO.LIMITADDR[preid]$
+    $SHARED_AREA_LIMIT_MO[check_shared_mo] = preid$
+    $SHARED_AREA_SIZE[check_shared_mo] = SHARED_AREA_LIMIT[check_shared_mo] - SHARED_AREA_BASE[check_shared_mo]$
+    $check_shared_mo = check_shared_mo + 1$
+$END$
+$ 
+$  エラーチェック
+$  
+$FOREACH id LIST_SHARED_MO$
+    $IF DEBUG_OPT_TF$
+        $WARNING$
+            $id$$NL$
+            $SHARED_AREA_MO[id]$$NL$
+            $SHARED_AREA_LIMIT_MO[id]$$NL$
+            $FORMAT("0x%x", SHARED_AREA_BASE[id])$$NL$
+            $FORMAT("0x%x", SHARED_AREA_LIMIT[id])$$NL$
+            $FORMAT("0x%x", SHARED_AREA_SIZE[id])$$NL$
+        $END$
+    $END$
+    $IF ((MO.MEMATR[SHARED_AREA_MO[id]] & TA_SDATA) == TA_SDATA)$
+        $IF LENGTH(SHARED_DATA.BASE)$
+            $ERROR$
+                $FORMAT("unexpected mematr: %d, %x", id, MO.MEMATR[SHARED_AREA_MO[id]])$
+            $END$
+        $ELSE$
+            $SHARED_DATA.BASE = SHARED_AREA_BASE[id]$
+            $SHARED_DATA.LIMIT = SHARED_AREA_LIMIT[id]$
+            $SHARED_DATA.SIZE = SHARED_AREA_SIZE[id]$
+            $SHARED_DATA.BASE_MO = SHARED_AREA_MO[id]$
+            $SHARED_DATA.LIMIT_MO = SHARED_AREA_LIMIT_MO[id]$
+        $END$
+    $ELSE$
+        $ERROR$
+            $FORMAT("unexpected mematr: %d, %x", id, MO.MEMATR[SHARED_AREA_MO[id]])$
+        $END$
+    $END$
+$END$
+
+$ 
+$  data_sharedの配置アドレスを求める
+$ 
+$SHARED_DATA.REALSIZE = SEARCH_ARM_MPU_SIZE(SHARED_DATA.SIZE)$
+$SHARED_DATA.REALBASE = SEARCH_ARM_MPU_ALIGN(SHARED_DATA.BASE, SHARED_DATA.REALSIZE)$
+$IF DEBUG_OPT_TF$
+    $WARNING$
+        $FORMAT("data_shared: base[0x%x], size[0x%x]", SHARED_DATA.REALBASE, SHARED_DATA.REALSIZE)$$NL$
+    $END$
+$END$
+
+$  
+$  配置アドレスを指定するセクションに対する処理
+$  配置換え対象のセクション: 必ずあるかどうか
+$    srpw_data_all: 0
+$    srpw_sdata_all: 0
+$    rosdata_shared: 1
+$    sdata_shared: 1
+$    data_shared: 1
+$  
+$check_shared_mo = 0$
+$preid = -1$
+$limit_align_flag = 1$
+$FOREACH moid MO_START_LIST$
+$   // メモリオブジェクトの先頭をパス2時点での順にチェック
+    $IF MO.LINKER[moid]$
+        $IF DEBUG_OPT_TF$
+            $WARNING$
+                $FORMAT("check mo %d: SEFLAG=0x%x", moid, MO.SEFLAG[moid])$$NL$
+            $END$
+        $END$
+        $IF (moid == SHARED_DATA.BASE_MO)$
+$           // data_sharedの先頭
+            $MO.REALBASE[moid] = SHARED_DATA.REALBASE$
+            $MO.COMMENT[moid] = "data_shared_top"$
+            $IF DEBUG_OPT_TF$
+                $WARNING$
+                    $FORMAT("%s[%d]=0x%x", MO.COMMENT[moid], moid, MO.REALBASE[moid])$$NL$
+                $END$
+            $END$
+        $END$
+        $IF (preid == SHARED_DATA.LIMIT_MO)$
+$           // data_sharedの終端はマスクベース方式なのでサイズの倍数にアライン
+            $at_mo_order = FIND(MO_ORDER, preid)$
+            $check_flag = 1$
+            $WHILE check_flag$
+                $IF LENGTH(AT(MO_ORDER, at_mo_order))$
+                    $IF DEBUG_OPT_TF$
+                        $WARNING$
+                            $FORMAT("check: %d, 0x%x", AT(MO_ORDER, at_mo_order), +MO.SEFLAG[AT(MO_ORDER, at_mo_order)])$$NL$
+                        $END$
+                    $END$
+                    $IF (MO.SEFLAG[AT(MO_ORDER, at_mo_order)] & 0x20) == 0x20$
+                        $IF DEBUG_OPT_TF$
+                            $WARNING$
+                                $FORMAT("hit: %d, 0x%x", AT(MO_ORDER, at_mo_order), +MO.SEFLAG[AT(MO_ORDER, at_mo_order)])$$NL$
+                            $END$
+                        $END$
+                        $MO.REALALIGN[AT(MO_ORDER, at_mo_order)] = SHARED_DATA.REALSIZE$
+                        $check_flag = 0$
+                    $END$
+                $ELSE$
+                    $ERROR$
+                        $FORMAT("shared data does not have limit label")$$NL$
+                    $END$
+                    $check_flag = 0$
+                $END$
+                $at_mo_order = at_mo_order + 1$
+            $END$
+        $END$
+    $END$
+
+    $preid = moid$
+$END$
+$IF (preid == SHARED_DATA.LIMIT_MO)$
+$   // data_sharedの終端はマスクベース方式なのでサイズの倍数にアライン
+    $at_mo_order = FIND(MO_ORDER, preid)$
+    $check_flag = 1$
+    $WHILE check_flag$
+        $IF LENGTH(AT(MO_ORDER, at_mo_order))$
+            $IF DEBUG_OPT_TF$
+                $WARNING$
+                    $FORMAT("check: %d, 0x%x", AT(MO_ORDER, at_mo_order), +MO.SEFLAG[AT(MO_ORDER, at_mo_order)])$$NL$
+                $END$
+            $END$
+            $IF (MO.SEFLAG[AT(MO_ORDER, at_mo_order)] & 0x20) == 0x20$
+                $IF DEBUG_OPT_TF$
+                    $WARNING$
+                        $FORMAT("hit: %d, 0x%x", AT(MO_ORDER, at_mo_order), +MO.SEFLAG[AT(MO_ORDER, at_mo_order)])$$NL$
+                    $END$
+                $END$
+                $MO.REALALIGN[AT(MO_ORDER, at_mo_order)] = SHARED_DATA.REALSIZE$
+                $check_flag = 0$
+            $END$
+        $ELSE$
+            $ERROR$
+                $FORMAT("shared data does not have limit label")$$NL$
+            $END$
+            $check_flag = 0$
+        $END$
+        $at_mo_order = at_mo_order + 1$
+    $END$
+$END$
+
+$ 
+$  arch/v850_gcc/ldscript.tfのターゲット依存部
+$ 
+
+$FUNCTION GENERATE_PROVIDE$
+    PROVIDE(_hardware_init_hook = 0);$NL$
+    PROVIDE(_software_init_hook = 0);$NL$
+    PROVIDE(_software_term_hook = 0);$NL$
+    PROVIDE(_bsssecinib_table = 0);$NL$
+    PROVIDE(_tnum_bsssec = 0);$NL$
+    PROVIDE(_datasecinib_table = 0);$NL$
+    PROVIDE(_tnum_datasec = 0);$NL$
+    $NL$
+
+    $IF LENGTH(OSAP.ID_LIST)$
+        $FOREACH domid OSAP.ID_LIST$
+            $IF !OSAP.TRUSTED[domid]$
+$   RX領域（専用）
+                PROVIDE(___start_text_$OSAP.LABEL[domid]$ = 0xfffffff0);$NL$
+                PROVIDE(___limit_text_$OSAP.LABEL[domid]$ = 0xfffffff0);$NL$
+$   R領域（専用）
+                PROVIDE(___start_sram_$OSAP.LABEL[domid]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$ = 0xfffffff0);$NL$
+                PROVIDE(___limit_sram_$OSAP.LABEL[domid]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$ = 0xfffffff0);$NL$
+$   RWX領域（専用）
+                PROVIDE(___start_ram_$OSAP.LABEL[domid]$ = 0xfffffff0);$NL$
+                PROVIDE(___limit_ram_$OSAP.LABEL[domid]$ = 0xfffffff0);$NL$
+                PROVIDE(___start_sram_$OSAP.LABEL[domid]$ = 0xfffffff0);$NL$
+                PROVIDE(___limit_sram_$OSAP.LABEL[domid]$ = 0xfffffff0);$NL$
+$   共有リード専用ライト
+                PROVIDE($FORMAT("___start_ram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$ = 0xfffffff0);$NL$
+                PROVIDE($FORMAT("___limit_ram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$ = 0xfffffff0);$NL$
+                PROVIDE($FORMAT("___start_sram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$ = 0xfffffff0);$NL$
+                PROVIDE($FORMAT("___limit_sram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$ = 0xfffffff0);$NL$
+            $END$
+        $END$
+        $NL$
+    $END$$NL$
+
+$  共有領域
+    PROVIDE(___start_text_$OSAP.LABEL[TDOM_NONE]$ = 0xfffffff0);$NL$
+    PROVIDE(___limit_text_$OSAP.LABEL[TDOM_NONE]$ = 0xfffffff0);$NL$
+    PROVIDE(___start_sram_$OSAP.LABEL[TDOM_NONE]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$ = 0xfffffff0);$NL$
+    PROVIDE(___limit_sram_$OSAP.LABEL[TDOM_NONE]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$ = 0xfffffff0);$NL$
+    PROVIDE(___start_ram_$OSAP.LABEL[TDOM_NONE]$ = 0xfffffff0);$NL$
+    PROVIDE(___limit_ram_$OSAP.LABEL[TDOM_NONE]$ = 0xfffffff0);$NL$
+    PROVIDE(___start_sram_$OSAP.LABEL[TDOM_NONE]$ = 0xfffffff0);$NL$
+    PROVIDE(___limit_sram_$OSAP.LABEL[TDOM_NONE]$ = 0xfffffff0);$NL$
+$   共有リード専用ライト領域全体
+    PROVIDE(___start_srpw_all = 0xfffffff0);$NL$
+    PROVIDE(___limit_srpw_all = 0xfffffff0);$NL$
+    PROVIDE(___start_ssrpw_all = 0xfffffff0);$NL$
+    PROVIDE(___limit_ssrpw_all = 0xfffffff0);$NL$
+    STARTUP(start.o)
+    ENTRY(__reset)
+    $NL$
+$END$
+
+$FUNCTION GENERATE_GP_LABEL$
+    $TAB$$TAB$__gp = . + 32K;$NL$
+    $TAB$$TAB$__tp = . + 32K;$NL$
+$END$
+
+$TOPPERS_ATTMOD = TOPPERS_ATTSEC + 1$
+$TOPPERS_MPFAREA = TOPPERS_ATTSEC + 2$
+
+$INCLUDE "v850_gcc/ldscript.tf"$
+
+$FOREACH moid MO_ORDER$
+	$IF MO.LINKER[moid]$
+$		// セクションの開始記述の生成
+		$IF (MO.SEFLAG[moid] & 0x01) != 0$
+$			// 共有リード専有ライト領域の全体の開始番地
+            $IF (MO.SEFLAG[moid] & 0x100) != 0$
+$               // 最初に更新された値が有効となる
+                $IF !LENGTH(SRPW.BASE)$
+                    $SRPW.BASE = MO.BASEADDR[moid]$
+                    $IF DEBUG_OPT_TF$
+                        $WARNING$
+                            $FORMAT("hit: %d, 0x%x", moid, +MO.SEFLAG[moid])$$NL$
+                        $END$
+                    $END$
+                $END$
+            $ELIF MO.ACPTN1[moid] == 0 && MO.ACPTN2[moid] == TACP_SHARED
+                && (MO.MEMATR[moid] & TA_SDATA) != 0$
+$               // 最初に更新された値が有効となる
+                $IF !LENGTH(SRPW.BASE)$
+                    $SRPW.BASE = MO.BASEADDR[moid]$
+                $END$
+            $END$
+		$END$
+
+$	    // 共有リード専有ライト領域の全体の終了番地
+		$IF (MO.SEFLAG[moid] & 0x200) != 0$
+            $IF !LENGTH(SRPW.BASE)$
+                $ERROR$
+                    "start_srpw label is not found"
+                $END$
+            $END$
+$           // 最後に更新された値が有効となる
+$             $SRPW.LIMIT = MO.LIMITADDR[moid]$
+            $SRPW.LIMIT = LIMIT_SYMBOL(MO.MLABEL[moid])$
+            $IF DEBUG_OPT_TF$
+                $WARNING$
+                    $FORMAT("hit end: %d, 0x%x", moid, SRPW.LIMIT)$$NL$
+                $END$
+            $END$
+        $ELIF MO.ACPTN1[moid] == 0 && MO.ACPTN2[moid] == TACP_SHARED
+            && (MO.MEMATR[moid] & TA_SDATA) != 0$
+$           // 最後に更新された値が有効となる
+$            $SRPW.LIMIT = MO.LIMITADDR[moid]$
+            $SRPW.LIMIT = LIMIT_SYMBOL(MO.MLABEL[moid])$
+            $IF DEBUG_OPT_TF$
+                $WARNING$
+                    $FORMAT("hit end: %d, 0x%x", moid, SRPW.LIMIT)$$NL$
+                $END$
+            $END$
+		$END$
+
+	$END$
+$END$
+
+$IF DEBUG_OPT_TF$
+    $WARNING$
+        $FORMAT("srpw area: 0x%x, 0x%x", SRPW.BASE, SRPW.LIMIT)$$NL$
+    $END$
+$END$
+
+$ 
+$  共有領域の初期化ブロックを生成
+$ 
+$FILE "kernel_mem3.c"$
+
+$TNUM_SHARED_REGION = 3$
+const uint32 tnum_shared_mem = $TNUM_SHARED_REGION * 2$;$NL$
+uint8 * const shared_meminib_table[$TNUM_SHARED_REGION * 2$] = {$NL$
+$shared_info = SYMBOL("shared_meminib_table")$
+$   RX領域（共有）
+$start_label = PEEK(shared_info, 4)$
+$limit_label = PEEK(shared_info + 4, 4)$
+$TAB$((uint8 *)&__start_text_$OSAP.LABEL[TDOM_NONE]$),$TAB$/* iregion 2 */$NL$
+$TAB$((uint8 *)&__limit_text_$OSAP.LABEL[TDOM_NONE]$),$TAB$/* iregion 2 */$NL$
+
+$   RX領域（共有ショートデータ，共有リード専有ライトの全体）
+$   rosdata_shared
+$   srpw_data_all
+$start_label = PEEK(shared_info + 8, 4)$
+$limit_label = PEEK(shared_info + 12, 4)$
+$IF LENGTH(SRPW.BASE) && LENGTH(SRPW.LIMIT)$
+    $TAB$((uint8 *)$FORMAT("0x%x", SRPW.BASE)$),$TAB$/* iregion 3 */$NL$
+    $TAB$((uint8 *)$FORMAT("0x%x", SRPW.LIMIT)$),$TAB$/* iregion 3 */$NL$
+$ELSE$
+    $TAB$((uint8 *)NULL),$TAB$/* iregion 3 */$NL$
+    $TAB$((uint8 *)NULL),$TAB$/* iregion 3 */$NL$
+$END$
+
+$   RWX領域（共有ショートデータ，共有データ）
+$   //sdata_sharedの先頭からdata_sharedの終端（dataの先頭）まで
+$   data_sharedの先頭からsdata_sharedの終端（dataの先頭）まで
+$start_label = PEEK(shared_info + 16, 4)$
+$limit_label = PEEK(shared_info + 20, 4)$
+$start_label = SHARED_DATA.REALBASE$
+$limit_label = (SHARED_DATA.REALSIZE - 1) & ~0x0f$
+$TAB$$FORMAT("( (uint8 *)0x%x )", start_label)$,$TAB$/* dregion 5 : $FORMAT("0x%x", start_label)$ */$NL$
+$TAB$$FORMAT("( (uint8 *)0x%x )", limit_label)$,$TAB$/* dregion 5 : $FORMAT("0x%x", limit_label)$ */$NL$
+
+};$NL$
+$NL$
+
+
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/prc_sil.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/prc_sil.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/prc_sil.h	(revision 117)
@@ -0,0 +1,165 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by Spansion LLC, USA
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: prc_sil.h 117 2014-12-10 03:58:03Z t_ishikawa $
+ */
+
+/*
+ *		メモリ及び周辺アドレスアクセスためのプロセッサ依存部（V850用）
+ */
+#include <prc_insn.h>
+
+#ifndef TOPPERS_PRC_SIL_H
+#define TOPPERS_PRC_SIL_H
+
+#define PSW_ID_BITPTN	(1U << 5)
+
+#define EIRFn		0x1000                      /* 割り込み要求ビット(bit12) */
+#define EIMKn		0x0080                      /* 割り込み許可ビット(bit7) */
+
+/*
+ *  プロセッサのエンディアン
+ */
+#define SIL_ENDIAN_LITTLE
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  メモリ空間アクセス関数郡
+ */
+
+/*
+ *  8ビット単位の読出し／書込み
+ */
+LOCAL_INLINE uint8
+sil_reb_mem(void *mem)
+{
+	uint8 data;
+
+	data = *((volatile uint8 *) mem);
+	return(data);
+}
+
+LOCAL_INLINE void
+sil_wrb_mem(void *mem, uint8 data)
+{
+	*((volatile uint8 *) mem) = data;
+}
+
+/*
+ *  16ビット単位の読出し／書込み
+ */
+LOCAL_INLINE uint16
+sil_reh_mem(void *mem)
+{
+	uint16 data;
+
+	data = *((volatile uint16 *) mem);
+	return(data);
+}
+
+LOCAL_INLINE void
+sil_wrh_mem(void *mem, uint16 data)
+{
+	*((volatile uint16 *) mem) = data;
+}
+
+/*
+ *  32ビット単位の読出し／書込み
+ */
+LOCAL_INLINE void
+sil_wrw_mem(void *mem, uint32 data)
+{
+	*((volatile uint32 *) mem) = data;
+}
+
+LOCAL_INLINE uint32
+sil_rew_mem(void *mem)
+{
+	uint32 data;
+
+	data = *((volatile uint32 *) mem);
+	return(data);
+}
+
+/*
+ *  NMIを除くすべての割込みの禁止
+ */
+LOCAL_INLINE uint32
+TOPPERS_disint(void)
+{
+	/* 現在のPSWを取得し，IDビットをセットする */
+	volatile uint32 psw = current_psw();
+	set_psw(psw | PSW_ID_BITPTN);
+
+	return(psw);
+}
+
+/*
+ *  割込み優先度マスク（内部表現）の現在値の設定
+ */
+LOCAL_INLINE void
+TOPPERS_enaint(uint32 TOPPERS_psw)
+{
+	if ((TOPPERS_psw & PSW_ID_BITPTN) == 0u) {
+		set_psw(current_psw() & ~PSW_ID_BITPTN);
+	}
+}
+
+/*
+ *  全割込みロック状態の制御
+ */
+#define SIL_PRE_LOC		volatile uint32 TOPPERS_psw
+#define SIL_LOC_INT()	TOPPERS_psw = TOPPERS_disint()
+#define SIL_UNL_INT()	TOPPERS_enaint(TOPPERS_psw)
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_PRC_SIL_H */
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/prc_support.S
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/prc_support.S	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/prc_support.S	(revision 117)
@@ -0,0 +1,3226 @@
+/* 
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2013 by FUJISOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by FUJITSU VLSI LIMITED, JAPAN
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2013 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2013 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2013 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2013 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2013 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013 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プロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: prc_support.S 189 2015-06-26 01:54:57Z t_ishikawa $
+ */
+
+/*
+ *		ターゲット依存情報の定義
+ */
+#include <v850asm.inc>
+#include "offset.h"
+
+#ifdef USE_ASMCONFIG_INC
+#include "asm_config.inc"
+#endif /* USE_ASMCONFIG_INC */
+
+#ifdef __v850e2v3__
+
+/*
+ *  V850E2用の割込みコントローラ操作ルーチン
+ */
+.macro GET_ISPR reg
+	mov		ISPR_H, AMARG(reg)
+	ld.h	0[AMARG(reg)],AMARG(reg)
+.endm
+
+.macro CLEAR_ISPR reg1, reg2
+	mov		ISPC_H,AMARG(reg1)
+	mov		0xffff,AMARG(reg2)
+	st.h	AMARG(reg2),0[AMARG(reg1)]
+	mov		ISPR_H, AMARG(reg1)
+	st.h	r0,0[AMARG(reg1)]
+.endm
+
+.macro SET_PMR reg_val, reg_tmp
+	mov     PMR, AMARG(reg_tmp)
+	st.h    AMARG(reg_val), 0[AMARG(reg_tmp)]  /* set interrupt level */
+	syncm
+.endm
+
+#endif /* __v850e2v3__ */
+
+#ifdef __v850e3v5__
+
+/*
+ *  V850E3V5用の割込みコントローラ操作ルーチン
+ */
+.macro GET_ISPR reg
+	stsr 10, AMARG(reg), 2
+.endm
+
+.macro SET_ISPR val, reg 
+	movea AMARG(val),r0,AMARG(reg)
+	ldsr AMARG(reg), 10, 2
+	syncp
+.endm
+
+.macro SET_INTCFG val, reg 
+	movea AMARG(val),r0,AMARG(reg)
+	ldsr AMARG(reg), 13, 2
+	syncp
+.endm
+
+.macro CLEAR_ISPR reg1, reg2
+	SET_INTCFG 1, AMARG(reg1) /* ISPR を書き換え可能に */
+	SET_ISPR   0, AMARG(reg1) /* ISPR のクリア */
+	SET_INTCFG 0, AMARG(reg1) /* ISPR を書き換え禁止に(自動更新に) */
+.endm
+
+.macro GET_PMR reg
+	stsr 11, AMARG(reg), 2
+.endm
+
+.macro SET_PMR reg_val, reg_tmp
+	stsr psw, AMARG(reg_tmp)
+	di
+	ldsr AMARG(reg_val), 11, 2
+	ldsr AMARG(reg_tmp), psw
+	syncp
+.endm
+
+.macro GET_ICSR reg
+	stsr sr12, AMARG(reg), 2
+.endm
+
+.macro SET_ICSR val, reg 
+	movea AMARG(val),r0,AMARG(reg)
+	ldsr \reg, sr12, 2
+.endm
+
+#endif /* !__v850e3v5__ */
+
+
+/*
+ *  OS割込み禁止マクロ
+ *  ネストの一番外側で呼び出されることを想定している
+ */
+.macro OUTER_LOCK_OS_INT   reg12, reg13
+
+    /* pmr_isr2_mask -> PMR */
+    Lea     _pmr_isr2_mask, AMARG(reg13)
+    ld.h    0[AMARG(reg13)], AMARG(reg13)
+    SET_PMR AMARG(reg13), AMARG(reg12)
+
+    /* nested_lock_os_int_cnt = 1 */
+    Lea     _nested_lock_os_int_cnt, AMARG(reg12)
+    mov     1, AMARG(reg13)
+    st.b    AMARG(reg13), 0[AMARG(reg12)]
+
+.endm
+
+/*
+ *  OS割込み禁止解除マクロ
+ *  ネストの一番外側で呼び出されることを想定している
+ */
+.macro OUTER_UNLOCK_OS_INT  reg12, reg13
+
+    /* nested_lock_os_int_cnt = 0 */
+    Lea     _nested_lock_os_int_cnt, AMARG(reg12)
+    mov     r0, AMARG(reg13)
+    st.b    AMARG(reg13), 0[AMARG(reg12)]
+
+    /* pmr_setting_tbl[current_iintpri] -> PMR */
+    Lea     _current_iintpri, AMARG(reg12)
+    ld.bu   0[AMARG(reg12)], AMARG(reg12)
+    shl     1, AMARG(reg12)
+
+    Lea     _pmr_setting_tbl, AMARG(reg13)
+    add     AMARG(reg12), AMARG(reg13)
+    ld.h    0[AMARG(reg13)], AMARG(reg13)
+    SET_PMR AMARG(reg13), AMARG(reg12)  /* set interrupt level */
+
+.endm
+
+/* =begin modified for SC3 */
+/*
+ *  OS割込み禁止マクロ
+ *  ネストあり
+ */
+.macro NESTED_LOCK_OS_INT   reg12, reg13
+
+    /* nested_lock_os_int_cnt == 0 ? */
+    Lea     _nested_lock_os_int_cnt, AMARG(reg13)
+    ld.b    0[AMARG(reg13)], AMARG(reg12)
+    cmp     r0, AMARG(reg12)
+    bne     increment_nest_lock
+
+    /* pmr_isr2_mask -> PMR */
+    Lea     _pmr_isr2_mask, AMARG(reg13)
+    ld.h    0[AMARG(reg13)], AMARG(reg13)
+    SET_PMR AMARG(reg13), AMARG(reg12)  /* set interrupt level */
+    Lea     _nested_lock_os_int_cnt, AMARG(reg13)
+    mov     r0, AMARG(reg12)                /* nested_lock_os_int_cnt = 0 */
+
+FLABEL(increment_nest_lock)
+    /* nested_lock_os_int_cnt += 1 */
+    add     1, AMARG(reg12)
+    st.b    AMARG(reg12), 0[AMARG(reg13)]
+
+.endm
+
+/*
+ *  OS割込み禁止解除マクロ
+ *  ネストあり
+ */
+.macro NESTED_UNLOCK_OS_INT  reg12, reg13
+
+    /* nested_lock_os_int_cnt -= 1 */
+    Lea     _nested_lock_os_int_cnt, AMARG(reg12)
+    ld.b    0[AMARG(reg12)], AMARG(reg13)
+    add     -1, AMARG(reg13)
+    st.b    AMARG(reg13), 0[AMARG(reg12)]
+    cmp     r0, AMARG(reg13)
+    bne     nested_unlock_exit
+
+    /* pmr_setting_tbl[current_iintpri] -> PMR */
+    Lea     _current_iintpri, AMARG(reg12)
+    ld.bu   0[AMARG(reg12)], AMARG(reg12)
+    shl     1, AMARG(reg12)
+
+    Lea     _pmr_setting_tbl, AMARG(reg13)
+    add     AMARG(reg12), AMARG(reg13)
+    ld.h    0[AMARG(reg13)], AMARG(reg13)
+    SET_PMR AMARG(reg13), AMARG(reg12)  /* set interrupt level */
+
+FLABEL(nested_unlock_exit)
+.endm
+
+/* =end modified for SC3 */
+
+	/*
+	 * 割込み例外入り口でのレジスタの保存マクロ
+	 */
+.macro INT_EXC_SAVEREG
+#ifdef TOPPERS_USE_HFLOAT
+	addi    -88 , sp , sp
+#else /* !TOPPERS_USE_HFLOAT */
+	addi    -84 , sp , sp
+#endif /* TOPPERS_USE_HFLOAT */
+	st.w    r30, 12[sp]  /* r30(ep) */
+    /*
+     * 割込み発生前のr2はeiwrに保存されている
+     * ここで，r2はすでにワークレジスタとして
+     * 使用中であるため，上書きしない
+     * r2に入っている割込み番号を破壊しないように
+     */
+    stsr    eiwr, r30    /* r2->r30に復帰 */
+	st.w    r30, 76[sp]
+	mov     sp, ep 
+	sst.w   r1, 80[ep]
+	sst.w   r5, 72[ep]
+	sst.w   r6, 68[ep]
+	sst.w   r7, 64[ep]
+	sst.w   r8, 60[ep]
+	sst.w   r9, 56[ep]
+	sst.w   r10, 52[ep]
+	sst.w   r11, 48[ep]
+	sst.w   r12, 44[ep]
+	sst.w   r13, 40[ep]
+	sst.w   r14, 36[ep]
+	sst.w   r15, 32[ep]
+	sst.w   r16, 28[ep]
+	sst.w   r17, 24[ep]
+	sst.w   r18, 20[ep]
+	sst.w   r19, 16[ep]
+	sst.w   r31, 8[ep]
+#ifdef TOPPERS_USE_HFLOAT
+	stsr    fpsr, r19     /* load FPSR */
+	sst.w   r19, 84[ep]
+#endif /* TOPPERS_USE_HFLOAT */
+.endm
+
+	/*
+	 * 割込み例外入り口でのレジスタの復帰マクロ
+	 */
+.macro INT_EXC_RESTOREREG
+#ifdef TOPPERS_USE_HFLOAT
+	sld.w   84[ep], r19
+	ldsr    r19, fpsr     /* store FPSR */
+#endif /* TOPPERS_USE_HFLOAT */
+	sld.w   80[ep], r1
+	sld.w   76[ep], r2
+	sld.w   72[ep], r5
+	sld.w   68[ep], r6
+	sld.w   64[ep], r7
+	sld.w   60[ep], r8
+	sld.w   56[ep], r9
+	sld.w   52[ep], r10
+	sld.w   48[ep], r11
+	sld.w   44[ep], r12
+	sld.w   40[ep], r13
+	sld.w   36[ep], r14
+	sld.w   32[ep], r15
+	sld.w   28[ep], r16
+	sld.w   24[ep], r17
+	sld.w   20[ep], r18
+	sld.w   16[ep], r19
+	sld.w    8[ep], r31
+#ifdef TOPPERS_USE_HFLOAT
+	addi    88, ep, sp
+#else /* !TOPPERS_USE_HFLOAT */
+	addi    84, ep, sp
+#endif /* TOPPERS_USE_HFLOAT */
+	sld.w   12[ep], r30 /* r30(ep) */
+    ldsr    r2, eiwr    /* r2を退避 */
+.endm
+
+
+#ifdef __v850e3v5__
+	/* 
+	 * V850E3V5用ベクタ
+	 * ここにRBASEが設定されることを想定（ここが電源投入時の開始アドレス）
+	 * (EIレベル割込みはテーブル参照方式を使用するため本ベクタは使用しない)
+	 */
+	.section .reset.text
+	.global __reset
+__reset:
+	jr __start
+	.rept 6
+	nop
+	.endr
+__syserr: /* 0x0010 */
+    ldsr  r2, eiwr
+    movea E_OS_PROTECTION_EXCEPTION, r0, r2
+	jr _fe_exception_entry
+	.rept 2
+	nop
+	.endr
+__hvtrap: /* 0x0020 */
+    ldsr  r2, eiwr
+    movea E_OS_PROTECTION_EXCEPTION, r0, r2
+	jr _fe_exception_entry
+	.rept 2
+	nop
+	.endr
+__fetrap: /* 0x0030 */
+    ldsr  r2, eiwr
+    movea E_OS_PROTECTION_EXCEPTION, r0, r2
+	jr _fe_exception_entry
+	.rept 2
+	nop
+	.endr
+__trap0:  /* 0x0040 */
+    ldsr  r2, eiwr
+    movea E_OS_PROTECTION_EXCEPTION, r0, r2
+	jr _ei_exception_entry
+	.rept 2
+	nop
+	.endr
+__trap1:  /* 0x0050 */
+    ldsr  r2, eiwr
+    movea E_OS_PROTECTION_EXCEPTION, r0, r2
+	jr _ei_exception_entry
+	.rept 2
+	nop
+	.endr
+__rie:    /* 0x0060 */
+    ldsr  r2, eiwr
+    movea E_OS_PROTECTION_EXCEPTION, r0, r2
+	jr _ei_exception_entry
+	.rept 2
+	nop
+	.endr
+__fppfpi: /* 0x0070 */
+    ldsr  r2, eiwr
+    movea E_OS_PROTECTION_EXCEPTION, r0, r2
+	jr _ei_exception_entry
+	.rept 2
+	nop
+	.endr
+__ucpop:  /* 0x080 */
+    ldsr  r2, eiwr
+    movea E_OS_PROTECTION_EXCEPTION, r0, r2
+	jr _fe_exception_entry
+	.rept 2
+	nop
+	.endr
+__mip:    /* 0x0090 */
+    ldsr  r2, eiwr
+    movea E_OS_PROTECTION_MEMORY, r0, r2
+	jr _fe_exception_entry
+	.rept 2
+	nop
+	.endr
+__pie:   /* 0x00a0 */
+    ldsr  r2, eiwr
+    movea E_OS_PROTECTION_EXCEPTION, r0, r2
+	jr _fe_exception_entry
+	.rept 2
+	nop
+	.endr
+__debug:  /* 0x00b0 */
+	jr __debug
+	.rept 6
+	nop
+	.endr
+__mae:    /* 0x00c0 */
+    ldsr  r2, eiwr
+    movea E_OS_PROTECTION_EXCEPTION, r0, r2
+	jr _fe_exception_entry
+	.rept 2
+	nop
+	.endr
+__rfu:    /* 0x00d0 */
+	jr __rfu
+	.rept 6
+	nop
+	.endr
+__fenmi:  /* 0x00e0 */
+    ldsr  r2, eiwr
+    movea E_OS_PROTECTION_EXCEPTION, r0, r2
+	jr _fe_exception_entry
+	.rept 2
+	nop
+	.endr
+__feint:  /* 0x00f0 */
+    ldsr  r2, eiwr
+    movea E_OS_PROTECTION_EXCEPTION, r0, r2
+	jr _fe_exception_entry
+	.rept 2
+	nop
+	.endr
+__eiintn0:  /*（優先度0） 0x0100 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endr
+__eiintn1:  /*（優先度1） 0x0110 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endr
+__eiintn2:  /*（優先度2） 0x0120 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endr
+__eiintn3:  /*（優先度3） 0x0130 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endr
+__eiintn4:  /*（優先度4） 0x0140 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endr
+__eiintn5:  /*（優先度5） 0x0150 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endr
+__eiintn6:  /*（優先度6） 0x0160 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endr
+__eiintn7:  /*（優先度7） 0x0170 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endr
+__eiintn8:  /*（優先度8） 0x0180 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endr
+__eiintn9:  /*（優先度9） 0x0190 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endr
+__eiintn10: /*（優先度10） 0x01a0 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endr
+__eiintn11: /*（優先度11） 0x01b0 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endr
+__eiintn12: /*（優先度12） 0x01c0 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endr
+__eiintn13: /*（優先度13） 0x01d0 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endr
+__eiintn14: /*（優先度14） 0x01e0 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endr
+__eiintn15: /*（優先度15） 0x01f0 */
+	jr _default_int_handler
+	.rept 6
+	nop
+	.endr
+
+#endif /* __v850e3v5__ */
+
+    .section .text_kernel
+	/*
+	 *  例外エントリ（feretでリターンする例外用）
+     *  ここで，CY = FEPSW.IMP，r2 = error code
+     *  r2は例外エントリでスタックに保存済み
+	 */
+	.global _fe_exception_entry
+FLABEL(_fe_exception_entry)
+    ldsr    r2, fewr                /* エラーコードを保存 */
+    stsr    fepsw, r2
+    shl     PSW_SV, r2              /* r2 << PSW_SV により例外発生時のモード取得 */
+    stsr    fewr, r2                /* エラーコードを復帰 */
+    bnc     fe_exception_0          /* 特権からの例外ならばスキップ */
+    ldsr    r5, fewr                /* tp（r5）を退避 */
+    Lea     _hook_savedsp, r5
+    ld.w    0[r5], r5
+    cmp     r0, r5
+    be      fe_exception_from_utask
+    /*
+     *  ユーザフックからの例外
+     *  hook_savedspをユーザスタック上に保存
+     *  +------------------+ <- sp
+     *  | 前のhook_savedsp |
+     *  +------------------+ <- 前のhook_savedsp
+     *  | ................ |
+     *  +------------------+
+     */
+    addi    -4, r5, r5
+    st.w    sp, 0[r5]               /* *(hook_savedsp - 4) = sp */
+    mov     r5, sp                  /* sp = hook_savedsp - 4 */   
+    stsr    fewr, r5                /* tp（r5）を復帰 */
+    br      fe_exception_0
+FLABEL(fe_exception_from_utask)
+    /*
+     *  ユーザタスクからの例外
+     */
+    Lea     _p_runtsk, r5
+    ld.w    0[r5], r5
+    st.w    sp, TCB_usp[r5]         /* uspをTCBに保存 */
+    ld.w    TCB_p_tinib[r5], r5
+    ld.w    TINIB_sstk_bottom[r5], sp         /* sspを復帰 */
+    stsr    fewr, r5                /* tp（r5）を復帰 */
+FLABEL(fe_exception_0)
+    /* スクラッチレジスタを保存 */
+    INT_EXC_SAVEREG
+
+	/* 多重割込みのため，現在のFEPCとFEPSWを保存 */
+	stsr    fepc, r6
+	sst.w   r6, 4[ep]
+	stsr    fepsw, r6
+	sst.w   r6, 0[ep]
+
+	/*
+	 * プロテクションフックはOS処理レベルで実行するためOS割込み禁止状態にする
+	 * OS割込み禁止状態で例外が発生する可能性があるため，ネスト管理を行う．
+	 * 例外は次の条件で発生する
+	 *  ・ISR1実行状態で発生した場合
+	 *  ・ISR1実行状態以外で発生した場合
+	 *  ・OS割込み解除状態で発生した場合
+	 *  ・OS割込み禁止状態で発生した場合
+	 */
+
+	/*
+	 * カテゴリ1の割込み以外で例外が発生したかの判断する
+	 * カテゴリ1で例外が発生：fe_exception_1へジャンプ
+	 */
+	GET_ISPR r6
+	Lea     _pmr_isr1_mask, r7
+	ld.h    0[r7], r7
+	and     r7, r6
+	cmp     r0, r6
+	bne     fe_exception_1
+
+	/*
+	 *  ISR1実行状態以外で発生した場合
+	 */
+	Lea     _nested_lock_os_int_cnt, r12
+	ld.b    0[r12], r13
+	mov     1, r14
+	add     r14, r13
+	st.b    r13, 0[r12]
+	cmp     1, r13
+	bne     fe_exception_1
+
+	/*
+	 * OS割込み解除状態で発生した場合
+	 * OS割込み禁止状態とする
+	 */
+	Lea     _pmr_isr2_mask, r7
+	ld.h    0[r7], r7
+	SET_PMR r7, r6  /* pmr_isr2_mask -> PMR */
+
+FLABEL(fe_exception_1)
+	/*
+	 *  割込み発生時に変更されるので割込み解除前に取得
+	 */
+	stsr    feic, r19                   /* 例外要因 */
+	stsr    fepc, r18                   /* 例外発生PC */
+
+	/* 
+	 * C1ISRを受け付けるため，NPbit クリア 
+	 */
+	stsr    psw, r12
+	mov     ~0x0080, r13
+	and     r12, r13
+	ldsr    r13, psw
+
+FLABEL(fe_exception_2)
+	/*
+	 *  カーネル起動していない場合に起きたCPU例外は，無限ループへ
+	 */
+	Lea   _kerflg, r12          /* kerflgがFALSEなら無限ループ */
+	ld.b  0[r12], r12
+	cmp   r0, r12
+FLABEL(infinity_loop_fe)
+	be    infinity_loop_fe
+
+	/*
+	 * 多重割込みか判定
+	 */
+	Lea     _except_nest_cnt, r12
+	ld.w    0[r12], r13
+	mov     1, r14                      /*  割込み・例外のネスト回数のインクリメント */
+	add     r14, r13
+	st.w    r13, 0[r12]
+
+	mov     sp, r9                      /* sp をr9に退避 */
+
+	cmp     1, r13
+	bne     fe_exception_3              /* _nested_lock_os_int_cnt > 1 -> fe_exception_3 */
+
+	/*
+	 * C1ISR実行状態で発生した場合はスタックポインタの入れ替えしない
+	 */
+	GET_ISPR r6
+	Lea     _pmr_isr1_mask, r7
+	ld.h    0[r7], r7
+	and     r7, r6
+	cmp     r0, r6
+	bne     fe_exception_3
+
+	/* スタックポインタの保存と入れ替え */
+	Lea     __ostkpt, r12
+	ld.w    0[r12], r12
+	add     -4, r12
+	st.w    sp, 0[r12]                      /* スタックポインタの保存 */
+	mov     r12, sp                         /* スタックポインタの切り替え */
+
+FLABEL(fe_exception_3)
+	UNLOCK_ALL_INT
+
+#ifdef CFG_USE_PROTECTIONHOOK
+	/* v850_cpu_exp_*を退避するスペースを確保 */
+	addi    -12, sp, sp
+
+	/* v850_cpu_exp_spの退避と設定 */
+	Lea     _v850_cpu_exp_sp, r12
+	st.w    r9, 0[r12]
+	st.w    ep, 0[sp]
+	mov     sp, ep
+
+	/* v850_cpu_exp_noの退避と設定 */
+	Lea     _v850_cpu_exp_no, r12
+	ld.w    0[r12], r13
+	sst.w   r13, 8[ep]
+	st.w    r19, 0[r12]                     /* r19 例外要因 */
+
+	/* v850_cpu_exp_pcの退避と設定 */
+	Lea     _v850_cpu_exp_pc, r12
+	ld.w    0[r12], r13
+	sst.w   r13, 4[ep]
+	mov     r18, r17                        /* r18:fepc */
+	add     -4, r17
+	st.w    r17, 0[r12]
+
+#endif /* CFG_USE_PROTECTIONHOOK */
+
+	/*
+	 * CPU例外が発生した場合，OSはE_OS_PROTECTION_EXCEPTIONをパラメータとして
+	 * プロテクションフックを呼び出す
+	 */
+    /* =begin modified for SC3 */
+    /*
+     *  例外要因がMIP or 0xMDPのときのみ
+     *  E_OS_PROTECTION_MEMORYをパラメータとする
+     */
+    andi    FE_MP_MASK, r19, r6
+    addi    FE_MP_BIT, r0, ep
+    cmp     ep, r6
+    be      fe_exception_4
+    mov     E_OS_PROTECTION_EXCEPTION, r2
+
+FLABEL(fe_exception_4)
+	mov     r2, r6
+    /* =end modified for SC3 */
+	jarl    _call_protectionhk_main, r31
+
+#ifdef CFG_USE_PROTECTIONHOOK
+	mov     sp, ep
+
+	/* v850_cpu_exp_noを復帰 */
+	Lea     _v850_cpu_exp_no, r12
+	sld.w   8[ep], r13
+	st.w    r13, 0[r12]
+
+	/* v850_cpu_exp_pcを復帰 */
+	Lea     _v850_cpu_exp_pc, r12
+	sld.w   4[ep], r13
+	st.w    r13, 0[r12]
+
+	/* v850_cpu_exp_sp退避 */
+	Lea     _v850_cpu_exp_sp, r12
+	sld.w   0[ep], r13
+	st.w    r13, 0[r12]
+
+	/* v850_cpu_exp_*を退避したスペースを戻す */
+	addi    12, sp, sp
+#endif /* CFG_USE_PROTECTIONHOOK */
+
+FLABEL(fe_ret_exc)
+	LOCK_ALL_INT
+
+	/*
+	 * プロテクションフックはOS割込み禁止状態で実行する
+	 */
+
+	/*
+	 *  割込み・例外のネスト回数のデクリメント
+	 */
+	Lea     _except_nest_cnt, r12
+	ld.w    0[r12], r13
+	mov     -1, r14
+	add     r14, r13
+	st.w    r13, 0[r12]
+
+	/*
+	 *  OS割込み禁止状態の解除
+	 */
+	/*
+	 * ISR1実行状態で発生した場合は
+	 * (1)スタックポインタの入れ替えをしない
+	 * (2)OS割込み禁止状態の解除をしない
+	*/
+	GET_ISPR r6
+	Lea     _pmr_isr1_mask, r7
+	ld.h    0[r7], r7
+	and     r7, r6
+	cmp     r0, r6
+	bne     ret_exc_2
+
+	/*
+	 *  ネスト回数が1以上なら割込み元がISRなため例外発生元へ復帰
+	 *  スタックポインタの入れ替えしない
+	 */
+	cmp     r0, r13
+	bne     ret_exc_1
+
+	/*
+	 *  戻り先がタスクなためスタックを戻す
+	 */
+	ld.w    0[sp], sp
+
+FLABEL(ret_exc_1)
+	/*
+	 *  ISR1実行状態以外で発生した場合，OS割込み禁止状態の解除
+	 */
+	Lea     _nested_lock_os_int_cnt, r12
+	ld.b    0[r12], r13
+	mov     -1, r14
+	add     r14, r13
+	st.b    r13, 0[r12]
+	cmp     r0, r13
+	bne     ret_exc_2
+
+	/* OS割込みを解除 */
+	/* pmr_setting_tbl[current_iintpri] -> PMR */
+	Lea     _current_iintpri, r12
+	ld.bu   0[r12], r12
+	shl     1, r12
+
+	Lea     _pmr_setting_tbl, r13
+	add     r12, r13
+	ld.h    0[r13], r13
+	SET_PMR r13, r12     /* set interrupt level */
+
+	/*
+	 *  例外発生元へ復帰
+	 */
+FLABEL(ret_exc_2)
+	/*
+	 * レジスタを復帰
+	 */
+	mov     sp, ep
+	sld.w    4[ep], r10
+	ldsr    r10, fepc
+	sld.w   0[ep], r10
+	ldsr    r10, fepsw
+
+    /* スクラッチレジスタの復帰 */
+    INT_EXC_RESTOREREG
+
+    ldsr    r2, fewr
+	stsr    fepsw, r2   /* r2 = fepsw */
+    shl     PSW_SV, r2         /* r2 << PSW_SV により例外発生時のモード取得 */
+    bnc     return_from_fe_exception    /* 特権からの例外ならばスキップ */
+    Lea     _hook_savedsp, r2
+    ld.w    0[r2], r2
+    cmp     r0, r2
+    be      fe_exception_to_utask
+    addi    -4, r2, r2
+    ld.w    0[r2], sp               /* sp *(hook_savedsp - 4) */
+    /*
+     *  ここで，hook_savedspを更新する必要はない
+     */
+    br      return_from_fe_exception
+FLABEL(fe_exception_to_utask)
+    Lea     _p_runtsk, r2
+    ld.w    0[r2], r2
+    ld.w    TCB_usp[r2], sp         /* uspを復帰 */
+FLABEL(return_from_fe_exception)
+    stsr    eiwr, r2
+	feret
+
+	/*
+	 *  例外エントリ（eiretでリターンする例外用）
+     *  ここで，CY = EIPSW.IMP，r2 = error code
+     *  r2はOS側で予約する（割込み・例外の出入口の
+     *  ワークレジスタとして使用する）ため，
+     *  スタックに保存しない
+	 */
+	.global _ei_exception_entry
+FLABEL(_ei_exception_entry)
+    ldsr    r2, fewr                /* エラーコードを保存 */
+    stsr    eipsw, r2
+    shl     PSW_SV, r2              /* r2 << PSW_SV により例外発生時のモード取得 */
+    stsr    fewr, r2                /* エラーコードを復帰 */
+    bnc     ei_exception_0          /* 特権からの例外ならばスキップ */
+    ldsr    r5, fewr                /* tp（r5）を退避 */
+    Lea     _hook_savedsp, r5
+    ld.w    0[r5], r5
+    cmp     r0, r5
+    be      ei_exception_from_utask
+    /*
+     *  ユーザフックからの例外
+     *  hook_savedspをユーザスタック上に保存
+     *  +------------------+ <- sp
+     *  | 前のhook_savedsp |
+     *  +------------------+ <- 前のhook_savedsp
+     *  | ................ |
+     *  +------------------+
+     */
+    addi    -4, r5, r5
+    st.w    sp, 0[r5]               /* *(hook_savedsp - 4) = sp */
+    mov     r5, sp                  /* sp = hook_savedsp - 4 */   
+    stsr    fewr, r5                /* tp（r5）を復帰 */
+    br      ei_exception_0
+FLABEL(ei_exception_from_utask)
+    /*
+     *  ユーザタスクからの例外
+     */
+    Lea     _p_runtsk, r5
+    ld.w    0[r5], r5
+    st.w    sp, TCB_usp[r5]         /* uspを保存 */
+    ld.w    TCB_p_tinib[r5], r5
+    ld.w    TINIB_sstk_bottom[r5], sp         /* sspを復帰 */
+    stsr    fewr, r5                /* tp（r5）を復帰 */
+FLABEL(ei_exception_0)
+    /* スクラッチレジスタの保存 */
+    INT_EXC_SAVEREG
+
+	/* 多重割込みのため，現在のEIPCとEIPSWを保存 */
+	stsr    eipc, r6
+	sst.w   r6, 4[ep]
+	stsr    eipsw, r6
+	sst.w   r6, 0[ep]
+
+	/*
+	 * プロテクションフックはOS処理レベルで実行するためOS割込み禁止状態にする
+	 * OS割込み禁止状態で例外が発生する可能性があるため，ネスト管理を行う．
+	 * 例外は次の条件で発生する
+	 *  ・ISR1実行状態で発生した場合
+	 *  ・ISR1実行状態以外で発生した場合
+	 *  ・OS割込み解除状態で発生した場合
+	 *  ・OS割込み禁止状態で発生した場合
+	 */
+
+	/*
+	 * カテゴリ1の割り込み以外で例外が発生したかの判断する
+	 * カテゴリ1で例外が発生：ei_exception_1へジャンプ
+	 */
+	GET_ISPR r6
+	Lea     _pmr_isr1_mask, r7
+	ld.h    0[r7], r7
+	and     r7, r6
+	cmp     r0, r6
+	bne     ei_exception_1
+
+	/*
+	 *  ISR1実行状態以外で発生した場合
+	 */
+	Lea     _nested_lock_os_int_cnt, r12
+	ld.b    0[r12], r13
+	mov     1, r14
+	add     r14, r13
+	st.b    r13, 0[r12]
+	cmp     1, r13
+	bne     ei_exception_1
+
+	/*
+	 * OS割込み解除状態で発生した場合
+	 * OS割込み禁止状態とする
+	 */
+	Lea     _pmr_isr2_mask, r7
+	ld.h    0[r7], r7
+	SET_PMR r7, r6                   /* pmr_isr2_mask -> PMR */
+
+FLABEL(ei_exception_1)
+	/*
+	 *  割込み発生時に変更されるので割込み解除前に取得
+	 */
+	stsr    eiic, r19                   /* 例外要因 */
+	stsr    eipc, r18                   /* 例外発生PC */
+
+
+FLABEL(ei_exception_2)
+	/*
+	 *  カーネル起動していない場合に起きたCPU例外は，無限ループへ
+	 */
+	Lea   _kerflg, r12          /* kerflgがFALSEなら無限ループ */
+	ld.b  0[r12], r12
+	cmp   r0, r12
+FLABEL(infinity_loop_ei)
+	be    infinity_loop_ei
+
+	/*
+	 * 多重割込みか判定
+	 */
+	Lea     _except_nest_cnt, r12
+	ld.w    0[r12], r13
+	mov     1, r14                      /*  割込み・例外のネスト回数のインクリメント */
+	add     r14, r13
+	st.w    r13, 0[r12]
+
+	mov     sp, r9                      /* sp をr9に退避 */
+
+	cmp     1, r13
+	bne     ei_exception_3             /* _nested_lock_os_int_cnt > 1 -> ei_exception_3 */
+
+	/*
+	 * ISR1実行状態で発生した場合はスタックポインタの入れ替えしない
+	 */
+	GET_ISPR r6
+	Lea     _pmr_isr1_mask, r7
+	ld.h    0[r7], r7
+	and     r7, r6
+	cmp     r0, r6
+	bne     ei_exception_3
+
+	/* スタックポインタの保存と入れ替え */
+	Lea     __ostkpt, r12
+	ld.w    0[r12], r12
+	add     -4, r12
+	st.w    sp, 0[r12]                      /* スタックポインタの保存 */
+	mov     r12, sp                         /* スタックポインタの切り替え */
+
+FLABEL(ei_exception_3)
+	UNLOCK_ALL_INT
+
+#ifdef CFG_USE_PROTECTIONHOOK
+	/* v850_cpu_exp_*を退避するスペースを確保 */
+	addi    -12, sp, sp
+
+	/* v850_cpu_exp_spの退避と設定 */
+	Lea     _v850_cpu_exp_sp, r12
+	st.w    r9, 0[r12]
+	st.w    ep, 0[sp]
+	mov     sp, ep
+
+	/* v850_cpu_exp_noの退避と設定 */
+	Lea     _v850_cpu_exp_no, r12
+	ld.w    0[r12], r13
+	sst.w   r13, 8[ep]
+	st.w    r19, 0[r12]                     /* r19 例外要因 */
+
+	/* v850_cpu_exp_pcの退避と設定 */
+	Lea     _v850_cpu_exp_pc, r12
+	ld.w    0[r12], r13
+	sst.w   r13, 4[ep]
+	mov     r18, r17                        /* r18:fepc */
+	add     -4, r17
+	st.w    r17, 0[r12]
+
+#endif /* CFG_USE_PROTECTIONHOOK */
+
+	/*
+	 * CPU例外が発生した場合，OSはE_OS_PROTECTION_EXCEPTIONをパラメータとして
+	 * プロテクションフックを呼び出す
+	 */
+    /* =begin modified for SC3 */
+	mov     r2, r6
+    /* =end modified for SC3 */
+	jarl    _call_protectionhk_main, r31
+
+#ifdef CFG_USE_PROTECTIONHOOK
+	mov     sp, ep
+
+	/* v850_cpu_exp_noを復帰 */
+	Lea     _v850_cpu_exp_no, r12
+	sld.w   8[ep], r13
+	st.w    r13, 0[r12]
+
+	/* v850_cpu_exp_pcを復帰 */
+	Lea     _v850_cpu_exp_pc, r12
+	sld.w   4[ep], r13
+	st.w    r13, 0[r12]
+
+	/* v850_cpu_exp_sp退避 */
+	Lea     _v850_cpu_exp_sp, r12
+	sld.w   0[ep], r13
+	st.w    r13, 0[r12]
+
+	/* v850_cpu_exp_*を退避したスペースを戻す */
+	addi    12, sp, sp
+#endif /* CFG_USE_PROTECTIONHOOK */
+
+FLABEL(ei_ret_exc)
+	LOCK_ALL_INT
+
+	/*
+	 * プロテクションフックはOS割込み禁止状態で実行する
+	 */
+
+	/*
+	 *  割込み・例外のネスト回数のデクリメント
+	 */
+	Lea     _except_nest_cnt, r12
+	ld.w    0[r12], r13
+	mov     -1, r14
+	add     r14, r13
+	st.w    r13, 0[r12]
+
+	/*
+	 *  OS割込み禁止状態の解除
+	 */
+	/*
+	 * ISR1実行状態で発生した場合は
+	 * (1)スタックポインタの入れ替えをしない
+	 * (2)OS割込み禁止状態の解除をしない
+	*/
+	GET_ISPR r6
+	Lea     _pmr_isr1_mask, r7
+	ld.h    0[r7], r7
+	and     r7, r6
+	cmp     r0, r6
+	bne     ei_ret_exc_2
+
+	/*
+	 *  ネスト回数が1以上なら割込み元がISRなため例外発生元へ復帰
+	 *  スタックポインタの入れ替えしない
+	 */
+	cmp     r0, r13
+	bne     ei_ret_exc_1
+
+	/*
+	 *  戻り先がタスクなためスタックを戻す
+	 */
+	ld.w    0[sp], sp
+
+FLABEL(ei_ret_exc_1)
+	/*
+	 *  ISR1実行状態以外で発生した場合，OS割込み禁止状態の解除
+	 */
+	Lea     _nested_lock_os_int_cnt, r12
+	ld.b    0[r12], r13
+	mov     -1, r14
+	add     r14, r13
+	st.b    r13, 0[r12]
+	cmp     r0, r13
+	bne     ei_ret_exc_2
+
+	/* OS割込みを解除 */
+	/* pmr_setting_tbl[current_iintpri] -> PMR */
+	Lea     _current_iintpri, r12
+	ld.bu   0[r12], r12
+	shl     1, r12
+
+	Lea     _pmr_setting_tbl, r13
+	add     r12, r13
+	ld.h    0[r13], r13
+	SET_PMR r13, r12             /* set interrupt level */
+
+	/*
+	 *  例外発生元へ復帰
+	 */
+FLABEL(ei_ret_exc_2)
+	/*
+	 * レジスタを復帰
+	 */
+	mov     sp, ep
+	sld.w    4[ep], r10
+	ldsr    r10, eipc
+	sld.w   0[ep], r10
+	ldsr    r10, eipsw
+
+    /* スクラッチレジスタの復帰 */
+    INT_EXC_RESTOREREG
+
+	stsr    eipsw, r2   /* r2 = eipsw */
+    shl     PSW_SV, r2  /* r2 << PSW_SV により例外発生時のモード取得 */
+    bnc     return_from_ei_exception    /* 特権からの例外ならばスキップ */
+    Lea     _hook_savedsp, r2
+    ld.w    0[r2], r2
+    cmp     r0, r2
+    be      ei_exception_to_utask
+    addi    -4, r2, r2
+    ld.w    0[r2], sp                /* sp *(hook_savedsp - 4) */
+    /*
+     *  ここで，hook_savedspを更新する必要はない
+     */
+    br      return_from_ei_exception
+FLABEL(ei_exception_to_utask)
+    Lea     _p_runtsk, r2
+    ld.w    0[r2], r2
+    ld.w    TCB_usp[r2], sp         /* uspを復帰 */
+FLABEL(return_from_ei_exception)
+    stsr    eiwr, r2
+	eiret
+
+	/*
+	 *  カーネル起動していない場合に起きたCPU例外の無限ループ
+	 */
+FLABEL(infinity_loop)
+	br infinity_loop
+
+	/*
+	 *  割り込みエントリ
+	 *  V850E2
+	 *   ベクターテーブルから Os_Lcfg.c に生成される各割込みの割込みエントリ
+	 *   からジャンプし，r2に割込み番号が保存された状態で実行される
+	 *  V850E3V5
+	 *   ベクターテーブルから直接実行されるため，スタックの確保やレジスタの保存は
+	 *   特に行われていない状態で実行される
+	 */
+	.global _interrupt
+FLABEL(_interrupt)
+#ifdef __v850e3v5__
+    ldsr    r2, eiwr
+	/* 割込み要因の特定 */
+	stsr	eiic,   r2
+	/* EIC割込みは0x1000 から */
+	addi   -0x1000, r2, r2
+#endif /* __v850e3v5__ */
+	/*
+	 *  残りのレジスタ退避， EPでのアクセスに切り替えて行う
+     * ここで，CY = EIPSW.IMP，r2[31:16] = intno
+     *  r2はOS側で予約する（割込み・例外の出入口の
+     *  ワークレジスタとして使用する）ため，
+     *  スタックに保存しない
+	 */
+    ldsr    r2, fewr                /* エラーコードを保存 */
+    stsr    eipsw, r2
+    shl     PSW_SV, r2              /* r2 << PSW_SV により例外発生時のモード取得 */
+    stsr    fewr, r2                /* エラーコードを復帰 */
+    bnc     interrupt_0             /* 特権からの割込みならばスキップ */
+    ldsr    r5, fewr                /* tp（r5）を退避 */
+    Lea     _hook_savedsp, r5
+    ld.w    0[r5], r5
+    cmp     r0, r5
+    be      interrupt_from_utask
+    /*
+     *  ユーザフックへの割込み
+     *  hook_savedspをユーザスタック上に保存
+     *  +------------------+ <- sp
+     *  | 前のhook_savedsp |
+     *  +------------------+ <- 前のhook_savedsp
+     *  | ................ |
+     *  +------------------+
+     */
+    addi    -4, r5, r5
+    st.w    sp, 0[r5]               /* *(hook_savedsp - 4) = sp */
+    mov     r5, sp                  /* sp = hook_savedsp - 4 */   
+    stsr    fewr, r5                /* tp（r5）を復帰 */
+    br      interrupt_0
+FLABEL(interrupt_from_utask)
+    /*
+     *  ユーザタスクへの割込み
+     */
+    Lea     _p_runtsk, r5
+    ld.w    0[r5], r5
+    st.w    sp, TCB_usp[r5]         /* uspを保存 */
+    ld.w    TCB_p_tinib[r5], r5
+    ld.w    TINIB_sstk_bottom[r5], sp         /* sspを復帰 */
+    stsr    fewr, r5                /* tp（r5）を復帰 */
+FLABEL(interrupt_0)
+    /* スクラッチレジスタの保存 */
+    INT_EXC_SAVEREG
+
+	/* 多重割込みのため，現在のEIPCとEIPSWを保存 */
+	stsr    eipc, r6
+	sst.w   r6, 4[ep]
+	stsr    eipsw, r6
+	sst.w   r6, 0[ep]
+
+#if 0
+#ifdef __v850e3v5__
+	/* 割込み要因の特定 */
+	stsr	eiic,   r12
+	/* EIC割込みは0x1000 から */
+	addi   -0x1000, r12, r12
+#else /* __v850e2v3__ */
+	/* 
+	 * V850E2V3では，Os_Lcfg.c.xxにより割込み要因がr2に設定され，
+	 * _interrupt が呼び出される．
+	 * r2 は割込みの許可により上書きされるためr12を使用する． 
+	 */
+	mov     r2, r12
+#endif /* __v850e3v5__ */
+#else
+	mov     r2, r12
+#endif
+
+	/* 割込み優先度を取得(r11) */
+	GET_ISPR r13
+	sch1r	r13, r11   
+	add		-1,r11
+
+	/* 
+	 *  _current_iintpri の更新 
+	 *  割り込み処理中はISPRが自動的に設定されているため，PMRは設定する必要がない．
+	 */
+	Lea     _current_iintpri, r6
+	ld.bu   0[r6], r19
+	st.b    r11,0[r6]
+
+	/*
+	 *  多重割込みか判定
+	 */
+	Lea     _except_nest_cnt, r13
+	ld.w    0[r13], r6
+
+	/*
+	 *  割込み・例外のネスト回数のインクリメント
+	 */
+	add     1,  r6
+	st.w    r6, 0[r13]
+	cmp     1,  r6
+	bne     interrupt_1     /* ネストしている場合はスタック切替無し */
+
+	/*
+	 *  タスクに割込んだ場合
+	 *  スタックポインタの保存と入れ替え
+	 */
+	mov     sp , r13
+	Lea     __ostkpt, sp
+	ld.w    0[r3], r3
+	add     -4, sp
+	st.w    r13, 0[sp]
+
+FLABEL(interrupt_1)
+    /*
+     *  割込み発生時の割込み優先度マスクをスタックに保存
+     */
+    add     -4, sp
+    st.w    r19, 0[sp]
+
+	UNLOCK_ALL_INT
+
+#ifdef CFG_USE_STACKMONITORING
+    /* 
+     *  割込み番号の保存
+     *  スタックオーバフローのプロテクションフックで破壊される可能性がある
+     */
+    push    r12 
+	/*
+	 *  タスクスタックのオーバフローチェック
+	 */
+
+	/*
+	 * 多重割込みの場合はタスクスタックのスタックモニタリングを行わない
+	 */
+	cmp     1,  r6
+	bne     int_nested
+
+	/*
+	 *  スタックポインタチェック方式
+	 */
+	Lea     _p_runtsk, r6                   /* 管理ブロックの先頭アドレス取得 */
+	ld.w    0[r6], r6
+	ld.w    TCB_p_tinib[r6], r6             /* タスク初期化ブロック先頭アドレス取得 */
+    /* =begin modified for SC3 */
+    /* システムスタックモニタリング */
+	ld.w    TINIB_sstksz[r6], r7            /* タスクシステムスタックサイズ取得 */
+	ld.w    TINIB_sstk_bottom[r6], r6       /* タスクシステムスタック終端アドレス取得 */
+    sub     r7, r6
+    mov     r0, r9
+	mov     PEOB_STACKMONITORING_INTERRUPT, r8  /* ISR入口でのスタックモニタリング */
+	cmp     r6, r13                         /* スタックポインタ <= スタックの先頭の場合NG  */
+    Lea     stack_monitoring_exit, lp     
+    /* =end modified for SC3 */
+	bnh      stack_monitoring_error_isr
+
+	/*
+	 * マジックナンバーチェック方式
+	 */
+    ld.w    0[r6], r6
+    mov     STACK_MAGIC_NUMBER, r7
+	/*
+	 *  マジックナンバー未破壊なら，割込み処理に飛ぶ
+	 *  タスクに割込んだ場合，割込みスタックをチェックしない
+	 */
+	cmp     r7, r6
+	be      stack_monitoring_exit
+    /* =begin modified for SC3 */
+    Lea     stack_monitoring_exit, lp     
+    /* =end modified for SC3 */
+	br      stack_monitoring_error_isr
+
+	/* 
+	 * 多重割込みの場合 
+	 */
+FLABEL(int_nested)
+	/*
+	 *  割込みスタックのオーバフローチェック
+	 */
+
+	/*
+	 *  スタック残量チェック方式
+	 */
+	Lea     _isr_p_isrcb_tbl, r7
+	mov     r12, r11
+	shl     2, r11                          /* 割込み番号を4倍してオフセットを生成  */
+	add     r11, r7
+    ld.w    0[r7], r7                       /* r7 = &isrcb_table[x] */
+    /* =begin modified for SC3 */
+	ld.w    ISRCB_p_isrinib[r7], r7         
+	ld.w    ISRINIB_p_intinib[r7], r7
+    mov     1, r9
+	mov     PEOB_STACKMONITORING_INTERRUPT, r8  /* ISR入口でのスタックモニタリング */
+    /* =end modified for SC3 */
+	ld.w    INTINIB_remain_stksz[r7], r7    /* 割込み番号に対応したスタックサイズの取得 */
+	Lea     __ostk, r6                      /* 割込みスタックの先頭アドレス取得 */
+	ld.w    0[r6], r6
+	add     r6, r7                          /* 先頭アドレス＋ISRの使用するスタックサイズ */
+	cmp     r7, sp                          /* スタックポインタ <= 先頭アドレス＋ISRの使用するスタックサイズの場合OK  */
+    /* =begin modified for SC3 */
+    Lea     stack_monitoring_exit, lp     
+    /* =end modified for SC3 */
+	bnh     stack_monitoring_error_isr
+
+	/*
+	 * マジックナンバーチェック方式
+	 */
+	ld.w    0[r6], r6                       /* このアドレスの示す先にマジックナンバーが入っている */
+	mov     STACK_MAGIC_NUMBER, r7
+	cmp     r7, r6
+    /* =begin modified for SC3 */
+    Lea     stack_monitoring_exit, lp     
+    /* =end modified for SC3 */
+	bne     stack_monitoring_error_isr
+
+FLABEL(stack_monitoring_exit)
+    pop     r12 
+#endif /* CFG_USE_STACKMONITORING */
+
+	/*
+	 *  _callevel_stat 保存
+	 */
+	Lea     _callevel_stat, r6
+	ld.h    0[r6], r7
+	Push    r7
+
+	/*
+	 *  _callevel_stat 設定
+	 */
+	mov     TCL_ISR2, r8
+	or      r8, r7
+	st.h    r7, 0[r6]
+
+    /* =begin added for SC3 */
+	/*
+	 *  run_trusted 保存
+	 */
+    Lea     _run_trusted, r6
+    ld.b    0[r6], r7
+    Push    r7
+
+	/*
+	 *  run_trusted 設定
+	 */
+	mov     TRUE, r8
+    st.b    r8, 0[r6]
+
+	/*
+	 *  p_runosap 保存
+	 */
+    Lea     _p_runosap, r6
+    ld.w    0[r6], r7
+	Push    r7
+    /* =end added for SC3 */
+
+	/*
+	 * p_runisr 保存
+	 */
+	Lea     _p_runisr, r6
+	ld.w    0[r6], r7
+	Push    r7
+
+	/*
+	 * p_runisr 設定
+	 */
+	Lea     _isr_p_isrcb_tbl, r7
+	shl     2, r12                      /* 割込み番号を4倍してオフセットを生成  */
+	add     r12, r7
+	Lea     _p_runisr, r8
+	ld.w    0[r7], r7
+	st.w    r7, 0[r8]
+
+	/*
+	 *  割込みハンドラのアドレスを読み込む
+	 */
+	Lea     _isr_tbl, r6
+	add     r12, r6
+
+    /* =begin modified for SC3 */
+    /*
+     *  p_runosap 設定
+     */
+    cmp     r7, r0                      /* r7 = p_runisr == NULL ? */
+    be      int_handler_call            /* p_runisr が NULL でなければスキップ */
+    ld.w    ISRCB_p_isrinib[r7], ep     /* ep = p_runisr->p_isrinib */
+    sld.w   ISRINIB_p_osapcb[ep], r8    /* r8 = p_runisr->p_isrinib->p_osapcb */
+    Lea     _p_runosap, ep
+    sst.w   r8, 0[ep]                   /* p_runosap = p_runisr->p_isrinib->p_osapcb */
+
+FLABEL(int_handler_call)
+    /* =end modified for SC3 */
+	/*
+	 *  割込みハンドラ呼び出し
+	 */
+	Lea     end_int_handler, r31
+	ld.w    0[r6], r6
+	jmp     [r6]
+
+	/*
+	 *  スタックオーバフロー時の処理
+	 */
+#ifdef CFG_USE_STACKMONITORING
+	/*
+	 *  スタックオーバフロー時プロテクションフックを呼び出し
+	 *  スタックを更に壊さないため，割込みスタックの初期値を使用する
+     *  ISRの出入口から相対ジャンプできるようにここに置く
+     *  stack_monitoring_errorへの踏み台
+	 */
+FLABEL(stack_monitoring_error_isr)
+    br  stack_monitoring_error
+#endif /* CFG_USE_STACKMONITORING */
+
+FLABEL(end_int_handler)
+
+#ifdef CFG_USE_STACKMONITORING
+	/*
+	 *  割込みスタックのオーバフローチェック
+	 *  割込みから戻った時，スタックポインタも戻ったはずなので，
+	 *  マジックナンバーチェック方式のみ実施
+	 */
+
+	/*
+	 * マジックナンバーチェック方式
+	 */
+	Lea     __ostk, r6                       /* 割込みスタックの先頭アドレス取得 */
+	ld.w    0[r6], r6
+	ld.w    0[r6], r6                       /* このアドレスの示す先にマジックナンバーが入っている */
+    /* =begin modified for SC3 */
+    mov     1, r9
+	mov     PEOB_STACKMONITORING_INTERRUPT, r8  /* ISRでのスタックモニタリング */
+	mov     STACK_MAGIC_NUMBER, r7
+	cmp     r7, r6
+    Lea     stack_monitoring_exit2, lp     
+	bne     stack_monitoring_error_isr
+
+FLABEL(stack_monitoring_exit2)
+    /* =end modified for SC3 */
+#endif /* CFG_USE_STACKMONITORING */
+
+	/*
+	 * ISR2の不正終了チェック
+	 */
+	jarl    _exit_isr2, r31
+
+	/*
+	 * p_runisr の復帰
+	 */
+	Lea     _p_runisr, r7
+	Pop     r6
+	st.w    r6, 0[r7]
+
+    /* =begin modified for SC3 */
+	/*
+	 *  p_runosap 復帰
+	 */
+    Lea     _p_runosap, r7
+	Pop     r6
+    st.w    r6, 0[r7]
+
+	/*
+	 *  run_trusted 復帰
+	 */
+    Lea     _run_trusted, r7
+	Pop     r6
+    st.b    r6, 0[r7]
+    /* =end modified for SC3 */
+
+
+	/*
+	 * _callevel_stat の復帰
+	 */
+	Lea     _callevel_stat, r7
+	Pop     r6
+	st.h    r6, 0[r7]
+
+/*
+ *  割込みハンドラ出口処理
+ */
+FLABEL(ret_int)
+	/*
+	 * _except_nest_cntの操作とスタック切り替えの間はOS割込み禁止にする
+	 * 必要がある
+	 * この先，割込み先へのリターンか，遅延ディスパッチに分岐する．
+	 * 割込み先へのリターンには全割込みが必要であり，遅延ディスパッチ時には
+	 * ネスト管理のOS割込み禁止にする必要があるため，ここでは一旦全割込み禁
+	 * 止とする
+	 */
+
+	LOCK_ALL_INT
+
+    /*
+     *  割込み発生時の割込み優先度マスクをスタックから復帰
+     */
+    ld.w    0[sp], r19
+    add     4, sp
+	Lea     _current_iintpri, r6
+	st.b    r19, 0[r6]              /* current_iintpriを復帰 */
+
+	/*
+	 *  割込み・例外のネスト回数のデクリメント
+	 */
+	Lea     _except_nest_cnt, r6
+	ld.w    0[r6], r7
+	add     -1, r7
+	st.w    r7, 0[r6]
+
+	/*
+	 *  ネスト回数が0なら，割込み元がタスク
+	 */
+	cmp     r0, r7
+	be      ret_int_task
+
+	/*
+	 *  ISR2割込みからのリターン時は割込み元が
+	 *  ISR2であるためそのままリターン
+	 */
+	br      ret_int_1
+
+
+	/*
+	 *  割込み元がタスクの場合
+	 */
+FLABEL(ret_int_task)
+	ld.w    0[sp], sp                       /* スタックポインタを戻す     */
+
+	/*  
+     *  割込み優先度マスクを変えるAPIがないため，
+     *  ATK2では割込み優先度マスクの復帰処理は不要
+     */
+	/*
+	 *  割込みハンドラ実行時には，ISPRで優先度が自動的に上がるため，
+	 *  PMRは変更していないが，割り込みハンドラ内で x_nested_unlock_os_int() を
+	 *  呼び出すとPMRが書き換わる．ディスパッチが必要でない場合は，ret_int_1で
+	 *  PMRを元の値に戻す．ディスパッチが必要な場合は，OS割り込み禁止とするため，
+	 *  ここで，PMRを更新する必要はない．
+	 */
+
+	/*
+	 *  戻り先がタスクの場合，ディスパッチの必要があるかチェック
+	 */
+	Lea     _p_runtsk, r6
+	ld.w    0[r6], r6
+	Lea     _p_schedtsk, r7
+	ld.w    0[r7], r7
+	cmp     r6, r7
+	be      ret_int_1      /* ディスパッチの必要がなければ割込み元へ戻る */
+
+	/*
+	 *  ここでは，戻り先がタスクであり，スタックは，タスクスタックに
+	 *  スクラッチレジスタのみが保存された状態になっている．また，
+	 *  全割込みを禁止した状態となっている
+	 */
+
+	/* 
+	 *  優先度マスクのクリア 
+	 *  eiretを実行しないため，eiretによる割込みコントローラの優先度マスク
+	 *  (インサービスプライオリティ)のクリアが行われないため，代わりにISPC
+	 *  を用いてクリアする．
+	 */
+	CLEAR_ISPR r10, r12
+
+	/*
+	 *  OS割込み禁止状態に移行する
+	 *
+	 *  この時点でOS割込み禁止状態とするのは，dispatcherを実行する際に
+	 *  OS割込み禁止状態になっている必要があるためである
+	 *
+	 *  (モデル上の)割込み優先度マスクは0であるため，ISR1以外の割込みは全て禁止する
+	 */
+
+	OUTER_LOCK_OS_INT r12, r13
+	/* ret_int で全割込み禁止状態としたため解除 */
+	UNLOCK_ALL_INT
+
+	/*
+	 * コンテキストの退避 
+	 */
+	addi    -48, sp, sp
+	mov     sp, ep
+	sst.w   r10, 44[ep]
+	sst.w   r11, 40[ep]
+	sst.w   r20, 36[ep]
+	sst.w   r21, 32[ep]
+	sst.w   r22, 28[ep]
+	sst.w   r23, 24[ep]
+	sst.w   r24, 20[ep]
+	sst.w   r25, 16[ep]
+	sst.w   r26, 12[ep]
+	sst.w   r27, 8[ep]
+	sst.w   r28, 4[ep]
+	sst.w   r29, 0[ep]
+
+	/* スタックと次の起動番地を保存 */
+	Lea     _p_runtsk, ep
+	sld.w   0[ep], ep
+    /* =begin modified for SC3 */
+	sst.w   sp, TCB_ssp[ep]
+    /* =end modified for SC3 */
+	Lea     ret_int_r, r6
+	sst.w   r6, TCB_pc[ep]
+	br      dispatcher
+
+	/*
+	 *  割込み・例外でコンテキスト保存した場合の復帰ルーチン
+	 */
+FLABEL(ret_int_r)
+	/*
+	 * コンテキストの復帰
+	 */
+	mov     sp, ep
+	sld.w   44[ep], r10
+	sld.w   40[ep], r11
+	sld.w   36[ep], r20
+	sld.w   32[ep], r21
+	sld.w   28[ep], r22
+	sld.w   24[ep], r23
+	sld.w   20[ep], r24
+	sld.w   16[ep], r25
+	sld.w   12[ep], r26
+	sld.w   8[ep], r27
+	sld.w   4[ep], r28
+	sld.w   0[ep], r29
+	addi    48, ep, sp
+
+	LOCK_ALL_INT
+
+	OUTER_UNLOCK_OS_INT r12, r13
+	/*
+	 *  割込みからの復帰ルーチン
+	 */
+FLABEL(ret_int_1)
+	/*
+	 * レジスタを復帰
+	 */
+	mov     sp, ep
+
+	/*  
+     *  割込み優先度マスクを変えるAPIがないため，
+     *  ATK2では割込み優先度マスクの復帰処理は不要
+     */
+	/*
+	 *  PMRを元に戻す．
+	 *  割込みハンドラ実行時には，ISPRで優先度が自動的に上がるため，
+	 *  PMRは変更していないが，割り込みハンドラ内で x_nested_unlock_os_int() を
+	 *  呼び出すとPMRが書き換わるためここで元の値に戻す．
+	 *  OUTER_UNLOCK_OS_INT は nested_lock_os_int_cnt を0にするが，
+	 *  ここでは既に0であるため問題ない．
+	 */
+	OUTER_UNLOCK_OS_INT  r1, r6
+	sld.w    4[ep], r10
+	ldsr    r10, eipc
+	sld.w   0[ep], r10
+	ldsr    r10, eipsw
+
+    /* スクラッチレジスタを復帰 */
+    INT_EXC_RESTOREREG
+
+	stsr    eipsw, r2           /* r2 = eipsw */
+    shl     PSW_SV, r2          /* r2 << PSW_SV により例外発生時のモード取得 */
+    bnc     return_from_int     /* 特権からの割込みならばスキップ */
+    Lea     _hook_savedsp, r2
+    ld.w    0[r2], r2
+    cmp     r0, r2
+    be      int_to_utask
+    addi    -4, r2, r2
+    ld.w    0[r2], sp                /* sp *(hook_savedsp - 4) */
+    /*
+     *  ここで，hook_savedspを更新する必要はない
+     */
+    br      return_from_int
+FLABEL(int_to_utask)
+    Lea     _p_runtsk, r2
+    ld.w    0[r2], r2
+    ld.w    TCB_usp[r2], sp     /* uspを復帰 */
+FLABEL(return_from_int)
+    stsr    eiwr, r2
+	eiret
+
+/*
+ * タスクディスパッチ
+ */
+	.global _dispatch
+FLABEL(_dispatch)
+	/*
+	 *  このルーチンは，タスクコンテキスト・OS割込み禁止状態・ディスパッチ
+	 *  許可状態・（モデル上の）割込み優先度マスク全解除状態で呼び出さ
+	 *  れる
+	 */
+	addi    -60, sp, sp
+	st.w    ep,  0[sp]
+	mov     sp,  ep
+	sst.w   r2,  56[ep]
+	sst.w   r10, 52[ep]
+	sst.w   r11, 48[ep]
+	sst.w   r20, 44[ep]
+	sst.w   r21, 40[ep]
+	sst.w   r22, 36[ep]
+	sst.w   r23, 32[ep]
+	sst.w   r24, 28[ep]
+	sst.w   r25, 24[ep]
+	sst.w   r26, 20[ep]
+	sst.w   r27, 16[ep]
+	sst.w   r28, 12[ep]
+	sst.w   r29, 8[ep]
+	sst.w   r31, 4[ep]
+	/* スタックと次の起動番地を保存 */
+	Lea     _p_runtsk, ep
+	sld.w   0[ep], ep
+    /* =begin modified for SC3 */
+	sst.w   sp, TCB_ssp[ep]
+    /* =end modified for SC3 */
+	Lea     dispatch_r, r10
+	sst.w   r10, TCB_pc[ep]
+#ifdef CFG_USE_STACKMONITORING
+	/*
+	 *  実行中タスクのタスクスタックのオーバフローチェック
+	 */
+	/*
+	 *  スタックポインタチェック方式
+	 */
+	Lea     _p_runtsk, r6                   /* 管理ブロックの先頭アドレス取得 */
+	ld.w    0[r6], r6
+	ld.w    TCB_p_tinib[r6], r6             /* タスク初期化ブロック先頭アドレス取得 */
+    /* =begin modified for SC3 */
+    /* システムスタックモニタリング */
+	ld.w    TINIB_sstksz[r6], r7            /* タスクシステムスタックサイズ取得 */
+	ld.w    TINIB_sstk_bottom[r6], r6       /* タスクシステムスタック終端アドレス取得 */
+    sub     r7, r6
+    mov     1, r9
+	mov     PEOB_STACKMONITORING_DISPATCH, r8  /* ディスパッチャでのスタックモニタリング */
+	cmp     r6, sp                          /* スタックポインタ <= スタックの先頭の場合NG  */
+    Lea     dispatcher, lp
+    /* =end modified for SC3 */
+	bnh      stack_monitoring_error
+	/*
+	 * マジックナンバーチェック方式
+	 */
+	ld.w    0[r6], r6
+	mov     STACK_MAGIC_NUMBER, r7
+	cmp     r7, r6
+    /* =begin modified for SC3 */
+    Lea     dispatcher, lp
+    /* =end modified for SC3 */
+	bne     stack_monitoring_error
+#endif /* CFG_USE_STACKMONITORING */
+	br      dispatcher
+
+	/* 
+	 * ディスパッチャの復帰ルーチン 
+	 */
+FLABEL(dispatch_r)
+	mov     sp, ep
+	sld.w   56[ep], r2
+	sld.w   52[ep], r10
+	sld.w   48[ep], r11
+	sld.w   44[ep], r20
+	sld.w   40[ep], r21
+	sld.w   36[ep], r22
+	sld.w   32[ep], r23
+	sld.w   28[ep], r24
+	sld.w   24[ep], r25
+	sld.w   20[ep], r26
+	sld.w   16[ep], r27
+	sld.w   12[ep], r28
+	sld.w    8[ep], r29
+	sld.w    4[ep], r31
+	addi    60, ep, sp
+	ld.w    0[sp], ep
+	jmp     [lp]
+
+	/*
+	 *  スタックオーバフロー時の処理
+	 */
+#ifdef CFG_USE_STACKMONITORING
+	/*
+	 *  スタックオーバフロー時プロテクションフックを呼び出し
+	 *  スタックを更に壊さないため，割込みスタックの初期値を使用する
+     *  r8 = スタックモニタリングをした箇所
+     *   PEOB_STACKMONITORING_TERMTASK ||
+     *   PEOB_STACKMONITORING_DISPATCH ||
+     *   PEOB_STACKMONITORING_INTERRUPT
+     *  r9 = ostkptの初期値に切り替えるか?
+	 */
+FLABEL(stack_monitoring_error)
+	/*
+	 *  r9==0の場合でも，既に_ostkptを使っているので，
+	 *  except_nest_cntをインクリメントしても問題はない
+	 */
+	Lea     _except_nest_cnt, r12               /* _ostkptを使う場合はexcept_nest_cntをインクリメントする */
+	ld.w    0[r12], r13
+	add     1, r13
+	st.w    r13, 0[r12]
+
+    /* =begin modified for SC3 */
+    cmp     r0, r9
+    be      stack_monitoring_error_1
+    /* =end modified for SC3 */
+
+	Lea    __ostkpt, r12                        /* スタックを更に壊さないため，割込みスタックの初期値を使用する */
+	ld.w    0[r12], r12
+	mov     r12, sp
+
+    /* =begin modified for SC3 */
+FLABEL(stack_monitoring_error_1)
+	/*
+	 *  プロテクションフックはOS割込み禁止状態で呼び出す
+	 */
+	NESTED_LOCK_OS_INT r12, r13
+    /* =end modified for SC3 */
+
+	mov     E_OS_STACKFAULT, r6                 /* プロテクションフックの引数を設定 */
+    or      r8, r6                              /* r6 = E_OS_STACKFAULT | PEOB_STACKMONITORING_XXX */
+    /* =begin modified for SC3 */
+    push    lp
+	jarl    _call_protectionhk_main, r31        /* プロテクションフックを呼び出し */
+    pop     lp
+
+	/*
+	 *  except_nest_cntをデクリメント
+	 */
+	Lea     _except_nest_cnt, r12
+	ld.w    0[r12], r13
+	add     -1, r13
+	st.w    r13, 0[r12]
+	/*
+	 *  OS割込み禁止状態をアンネスト
+	 */
+	NESTED_UNLOCK_OS_INT r12, r13
+    jmp     [lp]
+    /* =end modified for SC3 */
+#endif /* CFG_USE_STACKMONITORING */
+
+
+/*
+ *  ディスパッチャの動作開始
+ */
+	.global _start_dispatch
+FLABEL(_start_dispatch)
+	/*
+	 *  このルーチンは，カーネル起動時に，すべての割込みを禁止した状態
+	 * （全割込み禁止状態と同等）で呼び出される．また，割込みモード（非
+	 *  タスクコンテキストと同等）で呼び出されることを想定している
+	 *
+	 *  dispatcherは，OS割込み禁止状態で呼び出す．
+	 */
+	/* OS割込み禁止状態 */
+	OUTER_LOCK_OS_INT r12, r13
+	/* 全割込み禁止解除状態へ */
+	UNLOCK_ALL_INT
+	br    dispatcher_0
+
+    /* =begin modified for SC3 */
+	.global _exit_and_dispatch_nohook
+	/*
+	 *  タスク強制終了の場合はPostTaskHookを呼出さない
+	 *  その場合のエントリである
+	 */
+_exit_and_dispatch_nohook:
+
+	br    dispatcher_0
+    /* =end modified for SC3 */
+
+	/*
+	 *  現在のコンテキストを捨ててディスパッチ
+	 */
+	.global _exit_and_dispatch
+FLABEL(_exit_and_dispatch)
+#ifdef CFG_USE_STACKMONITORING
+	/*
+	 *  実行中のタスクスタックのオーバフローチェック
+	 */
+	/*
+	 *  スタックポインタチェック方式
+	 */
+	Lea     _p_runtsk, r6                   /* 管理ブロックの先頭アドレス取得 */
+	ld.w    0[r6], r6
+	ld.w    TCB_p_tinib[r6], r6             /* タスク初期化ブロック先頭アドレス取得 */
+    /* =begin modified for SC3 */
+    /* システムスタックモニタリング */
+	ld.w    TINIB_sstksz[r6], r7            /* タスクシステムスタックサイズ取得 */
+	ld.w    TINIB_sstk_bottom[r6], r6       /* タスクシステムスタック終端アドレス取得 */
+    sub     r7, r6
+    mov     1, r9
+	mov     PEOB_STACKMONITORING_TERMTASK, r8  /* タスク終了時のスタックモニタリング */
+	cmp     r6, sp                          /* スタックポインタ <= スタックの先頭の場合NG  */
+    Lea     dispatcher, lp
+    /* =end modified for SC3 */
+	bnh      stack_monitoring_error
+	/*
+	 * マジックナンバーチェック方式
+	 */
+	ld.w    0[r6], r6
+	mov     STACK_MAGIC_NUMBER, r7
+	cmp     r7, r6
+    /* =begin modified for SC3 */
+    Lea     dispatcher, lp
+    /* =end modified for SC3 */
+	bne     stack_monitoring_error
+#endif /* CFG_USE_STACKMONITORING */
+	/* ディスパッチャ本体（dispatcher）へ */
+
+FLABEL(dispatcher)
+	/*
+	 *  PostTaskHookの呼び出し
+	 */
+#ifdef CFG_USE_POSTTASKHOOK
+	Lea     _PostTaskHook, r20
+	cmp     r20, r0
+	be      dispatcher_0
+FLABEL(posttaskhook_call)
+	Lea     _call_posttaskhook, r6
+	jarl    _stack_change_and_call_func_1, r31
+#endif /* CFG_USE_POSTTASKHOOK */
+
+FLABEL(dispatcher_0)
+	/*
+	 *  このルーチンは，タスクコンテキスト・OS割込み禁止状態・ディスパッチ
+	 *  許可状態・（モデル上の）割込み優先度マスク全解除状態で呼び出さ
+	 *  れる．実行再開番地へもこの状態のまま分岐する
+	 */
+#ifdef LOG_DSP_ENTER
+	Lea     _p_runtsk, r21
+	ld.w    0[r21], r21
+	cmp     r0, r21
+	be      dispatcher_0_1
+	mov     r21, r6                            /* 引数に_p_runtskを指定 */
+	jarl    _log_dsp_enter, r31
+FLABEL(dispatcher_0_1)
+#endif	/* LOG_DSP_ENTER */
+
+	Lea     _callevel_stat, r21
+	ld.h    0[r21], r22
+	mov     TSYS_DISALLINT, r20
+	and     r22, r20
+	be      dispatcher_1
+
+	mov     ~TSYS_DISALLINT, r20
+	and     r22, r20
+	st.h    r20, 0[r21]
+	UNLOCK_ALL_INT                             /* 全割込み禁止解除状態へ */
+
+	/*
+	 *  例外（割込み/CPU例外）のネスト回数はstart_dispatchや，dispatcher_3:
+	 *  から来た場合は'1'となっているため，タスクスタックに切り換え後，
+	 *  '0'に初期化する．
+	 */
+FLABEL(dispatcher_1)
+	Lea     _p_runtsk, r21
+	Lea     _p_schedtsk, r20
+	ld.w    0[r20], r22
+	st.w    r22, 0[r21]
+	cmp     r22, r0
+	be      dispatcher_3
+
+	mov     r22, ep 
+    /* =begin modified for SC3 */
+	sld.w   TCB_ssp[ep], sp
+    /* =end modified for SC3 */
+	Lea     _except_nest_cnt, r20
+	st.w    r0, 0[r20]
+
+    /* =begin modified for SC3 */
+    sld.w   TCB_p_tinib[ep], ep
+    mov     ep, r25                     /* r25 = p_tinib */
+    sld.w   TINIB_p_osapcb[ep], r26     /* r26 = p_osapcb */
+    Lea     _p_runosap, ep              /* ep = &p_runosap */
+    sst.w   r26, 0[ep]                  /* p_runosap = p_osapcb */
+    ld.w    OSAPCB_p_osapinib[r26], r29 /* r29 = p_osapinib */
+    ld.bu   OSAPINIB_osap_trusted[r29], r24 /* r24 = trusted? */
+    Lea     _run_trusted, ep
+    sst.b   r24, 0[ep]                      /* run_trusted = trusted? */
+    cmp     r0, r24                         /* 信頼ならばスキップ */
+    bne     dispatcher_5
+
+#ifdef __v850e2v3__
+    ori     0x1001, r0, r27
+    ldsr    r27, bsel
+    /*
+     *  ユーザスタック領域
+     */
+    mov     r25, ep
+    sld.w   TINIB_start_ustk[ep], r27   /* 先頭番地 */
+    ori     0x01, r27, r27
+    sld.w   TINIB_limit_ustk[ep], r28   /* 保護属性とサイズ */
+    ori     0x06, r28, r28
+    ldsr    r27, dpa0l
+    ldsr    r28, dpa0u
+#elif defined(__v850e3v5__)
+    /*
+     *  ユーザスタック領域
+     */
+    mov     r25, ep
+    sld.w   TINIB_start_ustk[ep], r27   /* 先頭番地 */
+    sld.w   TINIB_limit_ustk[ep], r28   /* 保護属性とサイズ */
+    ldsr    r27, 0, 6                   /* MPLA0 */
+    ldsr    r28, 1, 6                   /* MPUA0 */
+
+#endif /* __v850e2v3__ */
+
+   	/*
+	 *  実行ドメインと保護ドメイン(MPUの設定)が同じならば，
+     *  ドメイン毎のコード領域・データ領域をMPUに設定し直す必要はない
+     */
+    Lea     _p_ctxosap, ep      /* ep = &p_ctxosap */	
+    sld.w   0[ep], r27          /* r27 = p_ctxosap */
+	cmp     r27, r26            /* p_ctxosap == p_runosap ? */
+	be      dispatcher_5        /* 同じならdispatcher_5へ */
+    nop
+	sst.w   r26, 0[ep]          /* p_ctxosap = p_runosap : 保護ドメインを切替え */
+#ifdef __v850e2v3__
+    ldsr    r26, vmtid          /* メモリ保護違反タスク識別子をp_runosapとする */
+    mov     r29, ep             /* ep = p_osapinib */
+
+    /*
+     *  自保護ドメイン専用のrom領域
+     */
+    sld.w   OSAPINIB_start_text[ep], r27  /* 先頭番地 */
+    sld.w   OSAPINIB_limit_text[ep], r28  /* 保護属性とサイズ */
+    ldsr    r27, ipa0l
+    ldsr    r28, ipa0u
+    /*
+     *  自保護ドメイン専用のrosdata領域
+     */
+    sld.w   OSAPINIB_start_rosdata[ep], r27  /* 先頭番地 */
+    sld.w   OSAPINIB_limit_rosdata[ep], r28  /* 保護属性とサイズ */
+    ldsr    r27, ipa1l
+    ldsr    r28, ipa1u
+    /* 
+     * 自保護ドメイン専用のRWX領域
+     */
+    sld.w   OSAPINIB_start_ram[ep], r27  /* 先頭番地 */
+    sld.w   OSAPINIB_limit_ram[ep], r28  /* 保護属性とサイズ */
+    ldsr    r27, dpa1l
+    ldsr    r28, dpa1u
+    /* 
+     * 自保護ドメイン専用のRWX領域(sdata)
+     */
+    sld.w   OSAPINIB_start_sram[ep], r27  /* 先頭番地 */
+    sld.w   OSAPINIB_limit_sram[ep], r28  /* 保護属性とサイズ */
+    ldsr    r27, dpa2l
+    ldsr    r28, dpa2u
+    /*
+     * 共有リード/専用ライト領域の専用領域
+     */
+    sld.w   OSAPINIB_start_srpw[ep], r27  /* 先頭番地 */
+    sld.w   OSAPINIB_limit_srpw[ep], r28  /* 保護属性とサイズ */
+    ldsr    r27, dpa3l
+    ldsr    r28, dpa3u
+     /*
+     * 共有リード/専用ライト領域の専用領域(sdata)
+     */
+    sld.w   OSAPINIB_start_ssrpw[ep], r27  /* 先頭番地 */
+    sld.w   OSAPINIB_limit_ssrpw[ep], r28  /* 保護属性とサイズ */
+    ldsr    r27, dpa4l
+    ldsr    r28, dpa4u
+
+#elif defined(__v850e3v5__)
+    mov     r29, ep             /* ep = p_osapinib */
+
+#if (MPU_REGION_NUM >= 11)
+    /*
+     *  自保護ドメイン専用のrom領域
+     */
+    sld.w   OSAPINIB_start_text[ep], r27  /* 先頭番地 */
+    sld.w   OSAPINIB_limit_text[ep], r28  /* 保護属性とサイズ */
+    ldsr    r27, 16, 6                     /* MPLA4 */
+    ldsr    r28, 17, 6                     /* MPUA4 */
+
+    /*
+     *  自保護ドメイン専用のrosdata領域
+     */
+    sld.w   OSAPINIB_start_rosdata[ep], r27  /* 先頭番地 */
+    sld.w   OSAPINIB_limit_rosdata[ep], r28  /* 保護属性とサイズ */
+    ldsr    r27, 20, 6                     /* MPLA5 */
+    ldsr    r28, 21, 6                     /* MPUA5 */
+
+    /* 
+     * 自保護ドメイン専用のRWX領域
+     */
+    sld.w   OSAPINIB_start_ram[ep], r27  /* 先頭番地 */
+    sld.w   OSAPINIB_limit_ram[ep], r28  /* 保護属性とサイズ */
+    ldsr    r27, 24, 6                     /* MPLA6 */
+    ldsr    r28, 25, 6                     /* MPUA6 */
+
+    /* 
+     * 自保護ドメイン専用のRWX領域(sdata)
+     */
+    sld.w   OSAPINIB_start_sram[ep], r27  /* 先頭番地 */
+    sld.w   OSAPINIB_limit_sram[ep], r28  /* 保護属性とサイズ */
+    ldsr    r27, 28, 6                     /* MPLA7 */
+    ldsr    r28, 29, 6                     /* MPUA7 */
+
+#endif /* (MPU_REGION_NUM >= 11) */
+
+    /*
+     * 共有リード/専用ライト領域の専用領域
+     */
+    sld.w   OSAPINIB_start_srpw[ep], r27  /* 先頭番地 */
+    sld.w   OSAPINIB_limit_srpw[ep], r28  /* 保護属性とサイズ */
+    ldsr    r27, 4, 6                     /* MPLA1 */
+    ldsr    r28, 5, 6                     /* MPUA1 */
+
+    /*
+     * 共有リード/専用ライト領域の専用領域(sdata)
+     */
+    sld.w   OSAPINIB_start_ssrpw[ep], r27  /* 先頭番地 */
+    sld.w   OSAPINIB_limit_ssrpw[ep], r28  /* 保護属性とサイズ */
+    ldsr    r27, 8, 6                      /* MPLA2 */
+    ldsr    r28, 9, 6                      /* MPUA2 */
+
+    sld.w   OSAPINIB_mprc[ep], r27  /* MPRC */
+    ldsr    r27, 1, 5
+#endif /* __v850e2v3__ */
+
+FLABEL(dispatcher_5)
+#ifdef __v850e2v3__
+    ldsr    r0, bsel    /* bselを戻す */
+#endif /* __v850e2v3__ */
+    /* =end modified for SC3 */
+
+#ifdef LOG_DSP_LEAVE
+	ld.w    0[r21], r6                          /* 引数に_p_runtskを指定 */
+	jarl    _log_dsp_leave, r31
+#endif	/* LOG_DSP_LEAVE */
+
+#ifdef CFG_USE_PRETASKHOOK
+	Lea     _PreTaskHook, r20
+	cmp     r20, r0
+	be      dispatcher_2
+
+FLABEL(pretaskhook_call)
+	Lea     _call_pretaskhook, r6
+	jarl    _stack_change_and_call_func_1, r31
+#endif /* CFG_USE_PRETASKHOOK */
+
+FLABEL(dispatcher_2)
+	Lea     _p_runtsk, r20
+	ld.w    0[r20], r22
+	mov     r22, ep
+	sld.w   TCB_pc[ep], r31
+	jmp     [r31]
+
+FLABEL(dispatcher_3)
+	/*
+	 * OS割込み禁止状態の解除と，非タスクコンテキスト実行状態への
+	 * 準備をする
+	 *
+	 *  ここで非タスクコンテキストに切り替える（sp＝非タスクコンテキス
+	 *  ト用スタックポインタ，except_nest_cnt＝1)のは，OS割込み禁止解
+	 *  除後に発生する割込み処理にどのスタックを使うかという問題の解決
+	 *  と，割込みハンドラ内でのタスクディスパッチの防止という2つの意
+	 *  味がある
+	 */
+	Lea     __ostkpt, r20		/* 非タスクコンテキスト用のスタックの読み込みスタックポインタの入れ替え */
+	ld.w    0[r20], r3
+
+	Lea     _except_nest_cnt, r20
+	mov     1, r21
+	st.w    r21, 0[r20]
+
+	/*
+	 *  OS割込み禁止解除状態へ
+	 *  割込みを許可し，非タスクコンテキスト実行状態とし割込みを待つ
+	 *
+	 *  プロセッサを割込み待ちに移行させる処理と，割込み許可とは，不可
+	 *  分に行なう必要がある
+	 *  これを不可分に行なわない場合，割込みを許可した直後に割込
+	 *  みが入り，その中でタスクが実行可能状態になると，実行すべきタス
+	 *  クがあるにもかかわらずプロセッサが割込み待ちになってしまう．
+	 *  不可分に行うため，diによりコアでの割り込みを禁止した状態で，
+	 *  INTCの割り込み優先度マスクを下げてからhaltを呼び出す．
+	 *  割り込みが発生した場合は，haltから復帰して次のeiでベクタに
+	 *  ジャンプする．
+	 *
+	 *  割込み待ちの間は，p_runtskをNULL（＝0）に設定しなければならない
+	 *  このように設定しないと，割込みハンドラからGetTaskIDを呼び出
+	 *  した際の動作が仕様に合致しなくなる
+	 */
+
+	di
+	OUTER_UNLOCK_OS_INT r12, r13
+
+#if 0
+	nop
+	nop
+	nop
+	nop
+#else
+	halt
+#endif
+	ei
+
+	/*
+	 *  OS割込み禁止状態へ
+	 *  (モデル上の)割込み優先度マスクは0であるため，ISR1以外の割込みは全て禁止する
+	 *  スタックは非タスクコンテキストのスタックを使用しているため，_except_nest_cntは，
+	 *  '1'のままとする
+	 */
+	OUTER_LOCK_OS_INT r12, r13
+	br      dispatcher_1
+
+
+/*
+ *  タスク開始時処理
+ *
+ *  dispatcherから呼び出される
+ */
+    /* =begin modified for SC3 */
+	.global _start_stask_r
+FLABEL(_start_stask_r)
+    Lea		_p_runtsk, ep                   /* ep = p_runtsk */
+	sld.w	0[ep], ep
+	/*
+	 *  タスクが不正終了した場合は保護処理を行うよう
+	 *  戻りアドレスにexit_taskを設定
+	 */
+	Lea     __kernel_exit_task, r31
+    mov     r0, r6
+    br      _start_r
+
+	.global _start_utask_r
+FLABEL(_start_utask_r)
+#ifndef __v850e3v5__
+    ldsr    r0, bsel
+#endif
+    Lea		_p_runtsk, ep                   /* ep = p_runtsk */
+	sld.w	0[ep], ep
+    clr1    0, TCB_priv_mode[ep]            /* 特権モード実行を抜ける */
+    sld.w   TCB_p_tinib[ep], r20            /* ep = p_runtsk->p_tinib */
+    ld.w    TINIB_ustk_bottom[r20], r20     /* r20 = ユーザスタックポインタの初期値 */
+    mov     r20, sp
+	/*
+	 *  タスクが不正終了した場合は保護処理を行うよう
+	 *  戻りアドレスにexit_utaskを設定
+	 */
+    Lea     _exit_utask, lp                 /* lp = _exit_utask */
+    stsr    psw, r10
+
+    /* 
+     *  全割込み禁止状態へ
+     *  タスクコンテキストへのジャンプで解除される
+     */
+    di
+
+    /* 
+	 * 非特権モードで動作するよう準備
+     * 保護機能有効（非信頼へ），割込み許可
+     * PP,NPV,DMP,IMP = 1, ID = 0
+     */
+#ifdef __v850e2v3__
+    movhi   0x000f, r0, r7                  
+#elif defined(__v850e3v5__)
+    movhi   0x4000, r0, r7  
+#endif /* __v850e2v3__ */
+    or      r7, r10         /* psw |= (PP|NPV|DMP|IMP) */
+	ldsr    r10, eipsw      /* eipsw = psw */
+    mov     1, r6
+
+	.global _start_r
+FLABEL(_start_r)
+	ld.w    TCB_p_tinib[ep], r22
+#ifdef CFG_USE_STACKMONITORING
+	/*
+	 *  SC3ではタスク強制終了があるので，タスク起動毎にマジックナンバー
+	 *  を初期化する
+	 */
+	ld.w    TINIB_sstk_bottom[r22], r21
+    ld.w    TINIB_sstksz[r22], r10
+    sub     r10, r21
+	mov     STACK_MAGIC_NUMBER, r10
+	st.w	r10, 0[r21]
+#endif /* CFG_USE_STACKMONITORING */
+
+	/*
+	 *  OS割込み禁止解除前に現在優先度(TCB.curpri)を実行優先度(TINIB.exepri)に
+	 *  変更(内部リソースを獲得)
+	 */
+	ld.b    TINIB_exepri[r22], r21			/* TINIB.exepri -> TCB.curpri */
+	st.b    r21, TCB_curpri[ep]
+
+	/*
+	 *  OS割込み禁止解除状態へ
+	 *  (モデル上の)割込み優先度マスクは0であるため，有効な割込みは全て許可する
+	 */
+
+	OUTER_UNLOCK_OS_INT r12, r13
+
+	ld.w    TCB_p_tinib[ep], r22
+	ld.w    TINIB_task[r22], r10
+    cmp     r0, r6
+    bne     _start_r_1              /* r6 != 0 ならば _start_r_1 へ*/
+	jmp     [r10]
+
+FLABEL(_start_r_1)
+	ldsr    r10, eipc               /* EIPC = pc */
+    eiret
+    /* =end modified for SC3 */
+
+    /*
+     *  ext_tskをsvc命令で呼び出す
+     */
+    .section .text_shared
+    .align 4
+    .globl _exit_utask
+FLABEL(_exit_utask)
+    mov     TFN_EXIT_TASK, r11
+    syscall NO_SVC
+    nop
+
+    .section .text_kernel
+	.global _stack_change_and_call_func_1 
+	.global _stack_change_and_call_func_2
+FLABEL(_stack_change_and_call_func_1)
+FLABEL(_stack_change_and_call_func_2)
+
+	Lea     _except_nest_cnt, r12
+	ld.w    0[r12], r13
+	add     1, r13
+	st.w    r13, 0[r12]
+	cmp     1, r13
+	bne     _stack_change_and_call_func_1_1
+
+	/* スタックポインタの保存と入れ替え */
+	Lea     __ostkpt, r12
+	ld.w    0[r12], r12
+	add     -4, r12
+	st.w    sp, 0[r12]                      /* スタックポインタの保存 */
+	mov     r12, sp                         /* スタックポインタの切り替え */
+    
+
+FLABEL(_stack_change_and_call_func_1_1)
+	push    lp
+	Lea     stack_change_and_call_func_r, lp  /* 戻りアドレス */
+	mov     r6, r12
+	mov     r7, r6
+	mov     r8, r7
+	jmp     [r12]
+
+FLABEL(stack_change_and_call_func_r)
+	pop     lp
+	Lea     _except_nest_cnt, r12
+	ld.w    0[r12], r13
+	add     -1, r13
+	st.w    r13, 0[r12]
+	cmp     r0, r13
+	bne     stack_change_and_call_func_r_1
+
+	ld.w    0[sp], sp                    /* スタックポインタの復帰     */
+FLABEL(stack_change_and_call_func_r_1)
+	jmp     [lp]
+
+
+#ifdef ENABLE_RETURN_MAIN
+/*
+ *  AKTSP用のmain()へのリターンコード
+ */
+	.global _return_main
+FLABEL(_return_main)
+	Lea   __ostkpt, sp
+	ld.w  0[sp],sp
+	jarl  _main, r31
+#endif /* ENABLE_RETURN_MAIN */
+
+    /* =begin modified for SC3 */
+/*
+ *  SYSCALLテーブル
+ *  syscall命令は、scbp + scbp[x] の番地にジャンプする
+ */
+    .globl _syscall_table
+    .section .text_kernel
+    .align 4
+FLABEL(_syscall_table)
+    .word (_syscall_error_handler - _syscall_table)
+    .word (_svc_entry - _syscall_table)
+    .word (_call_nontrusted_hook_trap_ret - _syscall_table)
+
+    .globl _syscall_error_handler
+    .globl _svc_entry
+/*
+ *  SYSCALLエラーハンドラ
+ */
+FLABEL(_syscall_error_handler)
+    br  _syscall_error_handler
+    nop
+
+/*
+ *  サービスコールの出入口
+ *  PP,NPV,DMP,IMP = 0, ID,EP = 1
+ *  eipc = pc, eipsw = psw : eiする前に保存
+ *    r10 : 返り値
+ *    r11：関数コード
+ *    r6 - r9 : 引数（4つまで）
+ *    r20 : 第5引数
+ *    スクラッチレジスタ保存済み
+ *    lp保存済み
+ */
+FLABEL(_svc_entry)
+    /*
+     *  呼出し元が特権モードか？
+     *  eipswをチェックする
+     */
+#ifndef __v850e3v5__
+    ldsr    r0, bsel
+#endif
+    stsr    eipsw, r13
+    shl     PSW_SV, r13         /* r13 << PSW_SV により例外発生時のモード取得 */
+    bnc     svc_entry_2         /* 特権モードからの呼出しならばスキップ */
+
+    /*
+     *  呼出し元が非信頼フック実行中か？
+     *  hook_savedspをチェックする
+     *  非信頼フック実行中ならばスタック切替
+     */
+    Lea     _hook_savedsp, ep
+    sld.w   0[ep], ep
+    cmp     r0, ep
+    be      svc_entry_1             /* hook_savedsp == 0:タスクコンテキスト */
+    addi    -4, ep, ep
+    sst.w   sp, 0[ep]               /* *(hook_savedsp - 4) = sp */
+    mov     ep, sp                  /* sp = hook_savedsp - 4 */   
+    br      svc_entry_2
+
+FLABEL(svc_entry_1)
+    /*
+     *  タスクコンテキストからの呼出しの場合
+     */
+    /*
+     *  ユーザスタックとシステムスタックを入れ替える
+     *  タスクの状態を特権モード実行中に移行する
+     *  戻り先が非特権モードで非信頼フック実行中でなければ，
+     *  タスク実行中であるはずなので，p_runtskがNULLかどうかの
+     *  チェックは必要ないはず
+     */
+    Lea     _p_runtsk, ep
+    sld.w   0[ep], ep
+    set1    0, TCB_priv_mode[ep]    /* p_runtsk->priv_mode |= 0x01 */
+    sst.w   sp, TCB_usp[ep]         /* uspを保存 */
+    sld.w   TCB_p_tinib[ep], ep
+    sld.w   TINIB_sstk_bottom[ep], sp         /* sspを復帰 */
+
+FLABEL(svc_entry_2)
+    /*
+     *  eipcとeipsw（syscall呼出し元のpcとpsw）を保存して
+     *  割込みからリターン
+     *  +--------------+ <- new sp
+     *  | eipsw        |
+     *  +--------------+
+     *  | eipc         |
+     *  +--------------+ <- old sp
+     */
+    addi    -8, sp, sp
+    mov     sp, ep
+    stsr    eipc, r12
+    sst.w   r12, 4[ep]
+    stsr    eipsw, r12
+    sst.w   r12, 0[ep]
+    /*
+     *  eipswの保護関連ビットを0にする
+     */
+#ifdef __v850e2v3__
+    movhi   0x000f, r0, r13
+#elif defined(__v850e3v5__)
+    movhi   0x4000, r0, r13
+#endif /* __v850e2v3__ */
+    not     r13, r13
+    and     r13, r12
+    ldsr    r12, eipsw          /* PP,NPV,DMP,IMP = 0 */
+    Lea     svc_entry_3, r12
+    ldsr    r12, eipc
+    eiret
+
+FLABEL(svc_entry_3)
+    /*
+     *  機能コードのチェック
+     */
+    mov     TMAX_SVCID, r12
+    cmp     r12, r11            /* 機能コードの上限チェック(TMAX_SVCID < r11) */
+    bgt     svc_entry_error     /* 上限をオーバしているならばエラー */
+
+    /*
+     *  サービスコールのテーブルを引き，
+     *  サービスコールの本体を呼ぶ
+     */
+    Lea     _svc_table, r12
+    shl     2, r11                  /* r11 *= 4 */
+    add     r11, r12                /* r12 = &svc_table[r11] */
+	ld.w    0[r12], r12             /* テーブルを引く */
+    Lea     svc_entry_r, lp         /* 戻り番地を設定 */
+	jmp     [r12]                   /* サービスコール処理ルーチンを呼ぶ */
+    nop
+
+FLABEL(svc_entry_error)
+    jarl    _no_support_service, lp /* no_support_service を呼ぶ */
+
+FLABEL(svc_entry_r)
+    /*
+     *  この時点でのpswをr11に保存する
+     *  全割込み禁止で更新した時への対応
+     */
+    stsr    psw, r11
+
+    /*
+     *  全割込み禁止状態へ
+     */
+    di
+
+    /*
+     *  eipcとeipsw（syscall呼出し元のpcとpsw）を復帰
+     *  ここでは，割込み処理中でない（サービスコール呼出し前に
+     *  eiretを発行している）が，eiretを利用してリターンする
+     *  +--------------+ <- old sp
+     *  | eipc         |
+     *  +--------------+
+     *  | eipsw        |
+     *  +--------------+ <- new sp
+     */
+    mov     sp, ep
+    sld.w   4[ep], r15
+    sld.w   0[ep], r16
+    addi    8, sp, sp
+
+    /*
+	 *  スタックを戻すかチェック
+	 */
+    /*
+     *  呼出し元が特権モードか？
+     *  eipswをチェックする
+     */
+#ifdef __v850e2v3__
+    ldsr    r0, bsel
+    movhi   0x000f, r0, r12
+#elif defined(__v850e3v5__)
+    movhi   0x4000, r0, r12
+#endif /* __v850e2v3__ */
+    tst     r16, r12
+    be      svc_prv_r           /* 特権モードからの呼出しならばスキップ */
+
+    /*
+     *  呼出し元が非信頼フック実行中か？
+     *  hook_savedspをチェックする
+     *  非信頼フック実行中ならばスタック切替
+     */
+    Lea     _hook_savedsp, ep
+    sld.w   0[ep], ep
+    cmp     r0, ep
+    be      svc_entry_r_1           /* hook_savedsp == 0:タスクコンテキストのチェックへ */
+    addi    -4, ep, ep
+    sld.w   0[ep], sp               /* sp = *(hook_savedsp - 4) */
+    /*
+     *  ここで，hook_savedspを更新する必要はない
+     */
+    br      svc_prv_r
+
+FLABEL(svc_entry_r_1)
+    Lea     _p_runtsk, ep
+    sld.w   0[ep], ep
+    tst1    0, TCB_priv_mode[ep]    /* uspを保存したか？ */
+    be      svc_prv_r               /* uspを保存していないならばスキップ */
+
+FLABEL(svc_usr_r)
+    /* 
+     *  特権モード実行を抜ける
+     *  sstkとustkを入れ替える
+     *  戻り先がタスクコンテキストならば，タスク実行中であるはず
+     *  なので，p_runtskがNULLかどうかのチェックは必要ないはず
+     */
+    clr1    0, TCB_priv_mode[ep]    /* p_runtsk->priv_mode &= ~0x01 */
+    sld.w   TCB_usp[ep], sp         /* uspを復帰 */
+    
+FLABEL(svc_prv_r)
+    /*
+     *  システムサービスでセットされた割込み優先度マスクを反映する
+     */
+    mov     0x20, r12
+    and     r12, r11    /* PSW.ID以外を0に */
+    not     r12, r12    /* r12 = ~0x20 */
+    and     r12, r16    /* eipsw &= ~0x20 */
+    or      r11, r16    /* eipsw |= r11 */
+    ldsr    r16, eipsw
+    ldsr    r15, eipc
+    eiret               /* 呼出し元へリターン */
+    nop
+
+    /*
+     *  信頼シャットダウンフックの呼出し
+     *  r6 = フックのアドレス
+     *  r7 = フックに渡すエラーコード
+     */
+    .global _call_trusted_hook
+FLABEL(_call_trusted_hook)
+    /*
+     *  関数呼出しで呼ばれるので，callee saved のみ保存
+     */
+	addi    -68, sp, sp
+	st.w    ep,  0[sp]
+	mov     sp,  ep
+	sst.w   r2,  56[ep]
+	sst.w   r10, 52[ep]
+	sst.w   r11, 48[ep]
+	sst.w   r20, 44[ep]
+	sst.w   r21, 40[ep]
+	sst.w   r22, 36[ep]
+	sst.w   r23, 32[ep]
+	sst.w   r24, 28[ep]
+	sst.w   r25, 24[ep]
+	sst.w   r26, 20[ep]
+	sst.w   r27, 16[ep]
+	sst.w   r28, 12[ep]
+	sst.w   r29, 8[ep]
+	sst.w   r31, 4[ep]  /* lp */
+    /*
+     *  キャンセルしたときのために下記のデータを保存
+     *  except_nest_cntを保存
+     *   シャットダウンフック実行中にフックがネストするたびに+1される
+     *   のを戻すため
+     *  callevel_statを保存
+     *   シャットダウンフック実行中に追加されたcallevelを戻すため
+     *  sp を保存
+     */
+    Lea     _except_nest_cnt, r2
+    ld.w    0[r2], r2
+    sst.w   r2, 64[ep]
+    Lea     _callevel_stat, r2
+    ld.h    0[r2], r2
+    sst.w   r2, 60[ep]
+    Lea     _trusted_hook_savedsp, ep
+    sst.w   sp, 0[ep]
+    /*
+     *  信頼フックを呼ぶ
+     */
+    mov     r6, r11
+    mov     r7, r6
+    Lea     _trusted_hook_ret, lp
+    jmp     [r11]
+
+    .global _exit_trusted_shutdown_hook
+FLABEL(_exit_trusted_shutdown_hook)
+    /*
+     *  sp を trusted_hook_savedsp から復帰
+     */
+    Lea     _trusted_hook_savedsp, ep
+    sld.w   0[ep], sp
+    ld.h    60[sp], r2
+    Lea     _callevel_stat, r10
+    st.h    r2, 0[r10]
+    ld.w    64[sp], r2
+    Lea     _except_nest_cnt, r10
+    st.w    r2, 0[r10]    
+FLABEL(_trusted_hook_ret)
+    /*
+     *  trusted_hook_savedsp を0初期化
+     */
+    Lea     _trusted_hook_savedsp, ep
+    sst.w   r0, 0[ep]
+	mov     sp, ep
+	sld.w   56[ep], r2
+	sld.w   52[ep], r10
+	sld.w   48[ep], r11
+	sld.w   44[ep], r20
+	sld.w   40[ep], r21
+	sld.w   36[ep], r22
+	sld.w   32[ep], r23
+	sld.w   28[ep], r24
+	sld.w   24[ep], r25
+	sld.w   20[ep], r26
+	sld.w   16[ep], r27
+	sld.w   12[ep], r28
+	sld.w    8[ep], r29
+	sld.w    4[ep], r31
+	addi    68, ep, sp
+	ld.w    0[sp], ep
+	jmp     [lp]
+
+    /*
+     *  非信頼フックの呼出し
+     *  r6 = フックのアドレス
+     *  r7 = フックに渡すエラーコード
+     *  r8 = フックの種別
+     */
+    .global _call_nontrusted_hook
+FLABEL(_call_nontrusted_hook)
+    /*
+     *  関数呼出しで呼ばれるので，callee saved のみ保存
+     */
+	addi    -76, sp, sp
+	st.w    ep,  0[sp]
+	mov     sp,  ep
+	sst.w   r2,  56[ep]
+	sst.w   r10, 52[ep]
+	sst.w   r11, 48[ep]
+	sst.w   r20, 44[ep]
+	sst.w   r21, 40[ep]
+	sst.w   r22, 36[ep]
+	sst.w   r23, 32[ep]
+	sst.w   r24, 28[ep]
+	sst.w   r25, 24[ep]
+	sst.w   r26, 20[ep]
+	sst.w   r27, 16[ep]
+	sst.w   r28, 12[ep]
+	sst.w   r29, 8[ep]
+	sst.w   r31, 4[ep]
+    /*
+     *  hook_savedspをスタックに保存し，
+     *  sp をhook_savedspに保存
+     *  shutdown_hook_savedspをスタックに保存
+     */
+    Lea     _hook_savedsp, r11
+    ld.w    0[r11], r10
+    sst.w   r10, 60[ep]
+    st.w    sp, 0[r11]
+    Lea     _shutdown_hook_savedsp, r2
+    ld.h    0[r2], r2
+    sst.w   r2, 72[ep]
+    /*
+     *  except_nest_cntを保存
+     *   シャットダウンフック実行中にフックがネストするたびに+1される
+     *   のを戻すため
+     *  callevel_statを保存
+     *   シャットダウンフック実行中に追加されたcallevelを戻すため
+     */
+    Lea     _except_nest_cnt, r2
+    ld.w    0[r2], r2
+    sst.w   r2, 68[ep]
+    Lea     _callevel_stat, r2
+    ld.h    0[r2], r2
+    sst.w   r2, 64[ep]
+	/*
+	 *  非信頼シャットダウンフックの強制終了のために下記のデータを保存
+     *  sp を保存
+     *    非信頼シャットダウンフック実行中かどうかを判断する
+     */
+    mov     SHUTDOWN_HOOK, r11
+    cmp     r8, r11
+    bne     call_nontrusted_hook_1      /* シャットダウンフックでなければスキップ */
+    Lea     _shutdown_hook_savedsp, ep
+    sst.w   sp, 0[ep]
+FLABEL(call_nontrusted_hook_1)
+    /*
+     *  PSWをr13に退避
+     *  bselを切り替えるため全割込み禁止
+     */
+    stsr    psw, r13
+    LOCK_ALL_INT
+
+    /*
+     *  システムレジスタのバンク切り替え
+     *  MPUの設定用
+     */
+#ifdef __v850e2v3__
+    ori     0x1001, r0, r27
+    ldsr    r27, bsel
+#endif /* __v850e2v3__ */
+	/*
+     *  非信頼フックがネストしていない場合は非信頼フック用スタックに切り替える
+	 *  前のhook_savedsp == 0の場合は非信頼フックルーチンがネストしていない
+	 */
+    cmp     r0, r10                     /* 0 == hook_savedsp ? */
+    bne     call_nontrusted_hook_2
+
+    /*
+     *  MPUのスタック領域を切替え
+     *  非信頼フック用のスタック領域
+     *  非信頼フック実行中にはタスクコンテキストに切り替わらないため，
+     *  ネストしている場合にはMPUのスタック領域を切り替える必要がない
+     */
+    Lea     __nthkstk, ep
+    sld.w   0[ep], r27      /* 先頭番地 */
+    Lea     __nthkstksz, ep
+    sld.w   0[ep], r28      /* サイズ */
+    add     r27, r28        /* 終端番地 */
+	
+    /*
+     *  非信頼フック用スタックに切り替える
+     *  call_nontrusted_hookは特権モードからのみ呼び出される．
+     *  よって，この時点でのspは非信頼フック用スタックでありえない．
+     *  ここでは非信頼フックはネストしていないので，スタックの底で初期化
+	 */
+    mov     r28, sp
+
+#ifdef __v850e2v3__
+    ori     0x01, r27, r27  /* 有効ビット */
+    ori     0x06, r28, r28  /* RWを許可 */
+    ldsr    r27, dpa0l
+    ldsr    r28, dpa0u
+#elif defined(__v850e3v5__)
+    ldsr    r27, 0, 6                   /* MPLA0 */
+    ldsr    r28, 1, 6                   /* MPUA0 */
+#endif /* __v850e2v3__ */
+
+    br      call_nontrusted_hook_3
+    
+FLABEL(call_nontrusted_hook_2)
+	/*
+     *  非信頼フック用スタックに切り替える
+     *  call_nontrusted_hookは特権モードからのみ呼び出される．
+     *  よって，この時点でのspは非信頼フック用スタックでありえない．
+     *  ここでは非信頼フックがネストしており，非信頼フックから特権モード
+     *  に移行し，その中で非信頼フックが呼ばれた場合である．
+     *  非信頼フックから特権モードに切り替わるのは，trap命令発行時
+     *  （システムサービス呼出し），または，例外や割込み発生時である．
+     *  上記の特権モード切替時に非信頼フック実行中である場合には，
+     *  スタックを切り替えるときに，*(hook_savedsp-4)にspを保存することとする
+     *  hook_savedspはcall_nontrusted_hookでのみ変化し，
+     *  非信頼フック実行中には（タスクコンテキストに切り替わらないため）
+     *  hook_savedspがシステムスタックポインタとなるため，hook_savedspから
+     *  spの続きを求めることができる
+     *  非信頼フック用spを退避する専用の変数を設ける方法も考えられるが，
+     *  割込みや例外のエントリ部分が複雑となるため，本実装では使用しない
+	 */
+    addi    -4, r10, r10
+    ld.w    0[r10], sp 
+
+FLABEL(call_nontrusted_hook_3)
+   	/*
+	 *  実行ドメインと保護ドメイン(MPUの設定)が同じならば，
+     *  ドメイン毎のコード領域・データ領域をMPUに設定し直す必要はない
+     */
+    Lea     _p_runosap, ep      /* ep = &p_runosap */	
+    sld.w   0[ep], r26          /* r26 = p_runosap */
+    Lea     _p_ctxosap, ep      /* ep = &p_ctxosap */	
+    sld.w   0[ep], r27          /* r27 = p_ctxosap */
+	cmp     r27, r26            /* p_ctxosap == p_runosap ? */
+	be      call_nontrusted_hook_4  /* 同じならcall_nontrusted_hook_4へ */
+    nop
+	sst.w   r26, 0[ep]          /* p_ctxosap = p_runosap : 保護ドメインを切替え */
+#ifdef __v850e2v3__
+    ldsr    r26, vmtid          /* メモリ保護違反タスク識別子をp_runosapとする */
+    ld.w    OSAPCB_p_osapinib[r26], ep  /* ep = p_osapinib */
+
+    /*
+     *  自保護ドメイン専用のrom領域
+     */
+    sld.w   OSAPINIB_start_text[ep], r27  /* 先頭番地 */
+    sld.w   OSAPINIB_limit_text[ep], r28  /* 保護属性とサイズ */
+    ldsr    r27, ipa0l
+    ldsr    r28, ipa0u
+    /*
+     *  自保護ドメイン専用のrosdata領域
+     */
+    sld.w   OSAPINIB_start_rosdata[ep], r27  /* 先頭番地 */
+    sld.w   OSAPINIB_limit_rosdata[ep], r28  /* 保護属性とサイズ */
+    ldsr    r27, ipa1l
+    ldsr    r28, ipa1u
+    /* 
+     * 自保護ドメイン専用のRWX領域
+     */
+    sld.w   OSAPINIB_start_ram[ep], r27  /* 先頭番地 */
+    sld.w   OSAPINIB_limit_ram[ep], r28  /* 保護属性とサイズ */
+    ldsr    r27, dpa1l
+    ldsr    r28, dpa1u
+    /* 
+     * 自保護ドメイン専用のRWX領域(sdata)
+     */
+    sld.w   OSAPINIB_start_sram[ep], r27  /* 先頭番地 */
+    sld.w   OSAPINIB_limit_sram[ep], r28  /* 保護属性とサイズ */
+    ldsr    r27, dpa2l
+    ldsr    r28, dpa2u
+    /*
+     * 共有リード/専用ライト領域の専用領域
+     */
+    sld.w   OSAPINIB_start_srpw[ep], r27  /* 先頭番地 */
+    sld.w   OSAPINIB_limit_srpw[ep], r28  /* 保護属性とサイズ */
+    ldsr    r27, dpa3l
+    ldsr    r28, dpa3u
+     /*
+     * 共有リード/専用ライト領域の専用領域(sdata)
+     */
+    sld.w   OSAPINIB_start_ssrpw[ep], r27  /* 先頭番地 */
+    sld.w   OSAPINIB_limit_ssrpw[ep], r28  /* 保護属性とサイズ */
+    ldsr    r27, dpa4l
+    ldsr    r28, dpa4u
+#elif defined(__v850e3v5__)
+    ld.w    OSAPCB_p_osapinib[r26], ep  /* ep = p_osapinib */
+
+    /*
+     * 共有リード/専用ライト領域の専用領域
+     */
+    sld.w   OSAPINIB_start_srpw[ep], r27  /* 先頭番地 */
+    sld.w   OSAPINIB_limit_srpw[ep], r28  /* 保護属性とサイズ */
+    ldsr    r27, 4, 6                     /* MPLA1 */
+    ldsr    r28, 5, 6                     /* MPUA1 */
+
+    /*
+     * 共有リード/専用ライト領域の専用領域(sdata)
+     */
+    sld.w   OSAPINIB_start_ssrpw[ep], r27  /* 先頭番地 */
+    sld.w   OSAPINIB_limit_ssrpw[ep], r28  /* 保護属性とサイズ */
+    ldsr    r27, 8, 6                      /* MPLA2 */
+    ldsr    r28, 9, 6                      /* MPUA2 */
+
+    sld.w   OSAPINIB_mprc[ep], r27  /* MPRC */
+    ldsr    r27, 1, 5
+#endif /* __v850e2v3__ */
+
+
+FLABEL(call_nontrusted_hook_4)
+#ifdef __v850e2v3__
+    ldsr    r0, bsel    /* bselを戻す */
+#endif /* __v850e2v3__ */
+    
+    /*
+     *  非信頼フックのアドレスを準備
+     *  非信頼フックからの戻り番地をexit_nontrusted_hook_trapに指定
+     */
+    ldsr    r6, eipc
+    Lea     _exit_nontrusted_hook_trap, lp
+
+    /*
+     *  非信頼フックの引数を準備
+     */
+    mov     r7, r6      /* エラーコード */
+
+    /* 
+     * 保護機能有効（非信頼へ）
+     * 割込み禁止/許可を戻す
+     * PP,NPV,DMP,IMP = 1, ID = PSW.ID
+     */
+#ifdef __v850e2v3__
+    movhi   0x000f, r0, r14                  
+#elif defined(__v850e3v5__)
+    movhi   0x4000, r0, r14                  
+#endif /* __v850e2v3__ */
+    or      r14, r13            /* psw |= (PP|NPV|DMP|IMP) */
+	ldsr    r13, eipsw          /* eipsw = psw */
+    eiret
+    nop
+
+    .global _exit_nontrusted_hook
+FLABEL(_exit_nontrusted_hook)
+    Lea     _hook_savedsp, ep
+    sld.w   0[ep], sp 
+    ld.h    64[sp], r2
+    Lea     _callevel_stat, r10
+    st.h    r2, 0[r10]
+    ld.w    68[sp], r2
+    Lea     _except_nest_cnt, r10
+    st.w    r2, 0[r10]    
+    /*
+     *  元のPSW.IDをr10に保存
+     */
+    stsr    eipsw, r10
+    andi    0x20, r10, r10
+    br      call_nontrusted_hook_r_1
+
+	/*
+	 *  スタックチェック関数
+	 *   入力 r6  使用するスタック量
+	 *   使用するスタック量が残っていない場合はエラー
+	 */
+    .global _trustedfunc_stack_check
+FLABEL(_trustedfunc_stack_check)
+    Lea     _callevel_stat, ep
+    sld.h   0[ep], r10
+    addi    TCL_ISR2, r0, r11     
+    tst     r11, r10
+    be      trustedfunc_stack_check_1       /* TCL_TASKの場合はスキップ */
+
+    /*
+     *  _ostkを使用中
+     */
+    Lea     __ostk, ep
+    sld.w   0[ep], r11
+    br      trustedfunc_stack_check_2
+
+FLABEL(trustedfunc_stack_check_1)
+    /*
+     *  タスクのシステムスタックを使用中
+     */
+    Lea     _p_runtsk, ep
+    sld.w   0[ep], ep
+    sld.w   TCB_p_tinib[ep], ep
+    sld.w   TINIB_sstk_bottom[ep], r11
+    sld.w   TINIB_sstksz[ep], r12
+    sub     r12, r11
+FLABEL(trustedfunc_stack_check_2)
+    /*
+     *  スタックの残量をチェック
+     *  r11 = スタックの先頭
+     */
+    subr    sp, r6                      /* r6 = ssp - tf_stksz */
+    bl      trustedfunc_stack_check_3   /* ssp < tfstksz ならばエラー処理へ */
+    cmp     r11, r6                     /* r11 < r6 ？ */
+    bnh     trustedfunc_stack_check_3   /* そうでなければエラー処理へ */
+    addi    E_OK, r0, r10
+    jmp     [lp]
+
+FLABEL(trustedfunc_stack_check_3)
+    addi    E_OS_STACKINSUFFICIENT, r0, r10
+    jmp     [lp]
+
+    /*
+     *  非信頼フックからのリターン
+     *  syscallで呼ばれる
+     */
+    .global _call_nontrusted_hook_trap_ret
+FLABEL(_call_nontrusted_hook_trap_ret)
+    /*
+     *  sp を hook_savedspから復帰
+     */
+    Lea     _hook_savedsp, ep
+    sld.w    0[ep], sp
+    /*
+     *  syscall前のPSW.IDをr10に保存
+     */
+    stsr    eipsw, r10
+    andi    0x20, r10, r10
+
+FLABEL(call_nontrusted_hook_r_1)
+	/*
+	 *  hook_savedspを退避していた値に戻す
+	 *  shutdown_hook_savedspを退避していた値に戻す
+	 */
+    ld.w    72[sp], r2
+    sst.w   r2, 0[ep]
+    ld.w    60[sp], r20
+    Lea     _shutdown_hook_savedsp, ep
+    sst.w   r20, 0[ep]
+
+	/*
+	 *  ネストの場合(hook_savedsp != 0)はここでリターン
+	 *  フック実行中はタスクが切り替わらないためMPU設定を復帰しない
+	 */
+    cmp     r0, r20         /* hook_savedsp == NULL ? */
+    bne     call_nontrusted_hook_r_2
+    Lea     _p_runtsk, ep
+    sld.w   0[ep], ep
+    cmp     r0, ep          /* p_runtsk != NULL ? */
+    be      call_nontrusted_hook_r_2
+    sld.w   TCB_p_tinib[ep], ep
+
+    /*
+     *  bselを変更するため全割込み禁止
+     */
+    LOCK_ALL_INT
+
+    /*
+     *  システムレジスタのバンク切り替え
+     *  MPUの設定用
+     */
+#ifdef __v850e2v3__
+    ori     0x1001, r0, r27
+    ldsr    r27, bsel
+    /*
+     *  ユーザスタック領域
+     */
+    sld.w   TINIB_start_ustk[ep], r27   /* 先頭番地 */
+    ori     0x01, r27, r27
+    sld.w   TINIB_limit_ustk[ep], r28   /* 保護属性とサイズ */
+    ori     0x06, r28, r28
+    ldsr    r27, dpa0l
+    ldsr    r28, dpa0u
+
+    ldsr    r0, bsel    /* bselを戻す */
+#elif defined(__v850e3v5__)
+    /*
+     *  ユーザスタック領域
+     */
+    sld.w   TINIB_start_ustk[ep], r27   /* 先頭番地 */
+    sld.w   TINIB_limit_ustk[ep], r28   /* 保護属性とサイズ */
+    ldsr    r27, 0, 6                   /* MPLA0 */
+    ldsr    r28, 1, 6                   /* MPUA0 */
+#endif /* __v850e2v3__ */
+
+#if 0
+    UNLOCK_ALL_INT
+#else
+    /*
+     *  PSW.IDを戻す
+     */
+    mov     0x20, r11
+    tst     r10, r11
+    bnz     call_nontrusted_hook_r_2
+
+    UNLOCK_ALL_INT
+#endif /* 0 */
+
+FLABEL(call_nontrusted_hook_r_2)
+	mov     sp,  ep
+	sld.w   56[ep], r2
+	sld.w   52[ep], r10
+	sld.w   48[ep], r11
+	sld.w   44[ep], r20
+	sld.w   40[ep], r21
+	sld.w   36[ep], r22
+	sld.w   32[ep], r23
+	sld.w   28[ep], r24
+	sld.w   24[ep], r25
+	sld.w   20[ep], r26
+	sld.w   16[ep], r27
+	sld.w   12[ep], r28
+	sld.w    8[ep], r29
+	sld.w    4[ep], r31
+	sld.w    0[ep], ep
+	addi    76, sp, sp
+    jmp     [lp]
+
+    /*
+     * (6-22-2) void cancel_nontrusted_hook(void)
+     * cancel_nontrusted_hookはタスク強制終了時に，ターゲット非依存部から呼び出される．
+     * 非信頼フック実行中に非信頼フックスタック領域のMPU設定を無効化する．
+     */
+    .global _cancel_nontrusted_hook
+FLABEL(_cancel_nontrusted_hook)
+    /*
+     *  PSW.IDをr10に保存
+     */
+    stsr    psw, r10
+    andi    0x20, r10, r10
+
+    Lea     _hook_savedsp, r11
+    ld.w    0[r11], r12
+	/*
+	 *  ネストの場合(hook_savedsp == 0)はここでリターン
+	 */
+    cmp     r0, r12         /* hook_savedsp == NULL ? */
+    be      cancel_nontrusted_hook_r
+    /*
+     *  hook_savedsp = 0
+     */
+    st.w    r0, 0[r11]
+
+    /*
+     *  bselを変更するため全割込み禁止
+     */
+    LOCK_ALL_INT
+
+#ifdef __v850e2v3__
+    /*
+     *  システムレジスタのバンク切り替え
+     *  MPUの設定用
+     */
+    ori     0x1001, r0, r11
+    ldsr    r11, bsel
+    /*
+     *  ユーザスタック領域をNULLに設定
+     */
+    ldsr    r0, dpa0l
+    ldsr    r0, dpa0u
+
+    ldsr    r0, bsel    /* bselを戻す */
+#elif defined(__v850e3v5__)
+    /*
+     *  ユーザスタック領域
+     */
+    ldsr    r0, 0, 6                   /* MPLA0 */
+    ldsr    r0, 1, 6                   /* MPUA0 */
+#endif /* __v850e2v3__ */
+
+    /*
+     *  PSW.IDを戻す
+     */
+    mov     0x20, r11
+    tst     r10, r11
+    bnz     cancel_nontrusted_hook_r
+
+    UNLOCK_ALL_INT
+
+FLABEL(cancel_nontrusted_hook_r)
+    jmp     [lp]
+
+    .section .text_shared
+    .globl  _exit_nontrusted_hook_trap
+FLABEL(_exit_nontrusted_hook_trap)
+    syscall NO_HOOK_RET
+    nop
+    /* =end modified for SC3 */
+
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/prc_svc.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/prc_svc.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/prc_svc.h	(revision 117)
@@ -0,0 +1,181 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *	
+ *	Copyright (C) 2013 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プロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *	に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *	アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *	の責任を負わない．
+ *	
+ */
+
+
+#ifndef TOPPERS_PRC_SVC_H
+#define TOPPERS_PRC_SVC_H
+
+#ifndef TOPPERS_MACRO_ONLY
+
+typedef sint32 FunctionCodeType;                  /* 機能コードの型 */
+
+/*
+ *  カーネルのサービスコールのインタフェース
+ *
+ *  スクラッチレジスタ
+ *    r10 : 返り値
+ *    r11：関数コード
+ *    r6 - r9 : 引数（4つまで）
+ *  関数呼び出し(jarl)でサービスコールを呼び出すため，lpも保存する
+ *  syscallでsvc_entryへジャンプ
+ */
+
+/* "memory"指定あり */
+
+#define CAL_SVC_0M(TYPE, FNCD) \
+	register TYPE  r10 asm("r10"); \
+	register FunctionCodeType    r11 asm("r11") = (FunctionCodeType)(FNCD); \
+	Asm ( \
+        "syscall 1\n\t" \
+        "nop\n\t" \
+		:"=r"(r10),"+r"(r11) \
+		: \
+		:"memory","lp","r6","r7","r8","r9","r12","r13","r14","r15","r16","r17","r18","r19", "ep" \
+	); \
+	return(r10);
+
+#define CAL_SVC_1M(TYPE, FNCD, TYPE1, PAR1) \
+	register TYPE  r10 asm("r10"); \
+	register TYPE1  r6 asm("r6") = (TYPE1)(PAR1); \
+	register FunctionCodeType    r11 asm("r11") = (FunctionCodeType)(FNCD); \
+	Asm ( \
+        "syscall 1\n\t" \
+        "nop\n\t" \
+		:"=r"(r10),"+r"(r11),"+r"(r6) \
+		: \
+		:"memory","lp","r7","r8","r9","r12","r13","r14","r15","r16","r17","r18","r19", "ep" \
+	); \
+	return(r10);
+
+
+#define CAL_SVC_2M(TYPE, FNCD, TYPE1, PAR1, TYPE2, PAR2) \
+	register TYPE  r10 asm("r10"); \
+	register TYPE1  r6 asm("r6") = (TYPE1)(PAR1); \
+	register TYPE2  r7 asm("r7") = (TYPE2)(PAR2); \
+	register FunctionCodeType    r11 asm("r11") = (FunctionCodeType)(FNCD); \
+	Asm ( \
+        "syscall 1\n\t" \
+        "nop\n\t" \
+		:"=r"(r10),"+r"(r11),"+r"(r6),"+r"(r7) \
+		: \
+		:"memory","lp","r8","r9","r12","r13","r14","r15","r16","r17","r18","r19", "ep" \
+	); \
+	return(r10);
+
+
+#define CAL_SVC_3M(TYPE, FNCD, TYPE1, PAR1, \
+							TYPE2, PAR2, TYPE3, PAR3) \
+	register TYPE  r10 asm("r10"); \
+	register TYPE1  r6 asm("r6") = (TYPE1)(PAR1); \
+	register TYPE2  r7 asm("r7") = (TYPE2)(PAR2); \
+	register TYPE3  r8 asm("r8") = (TYPE3)(PAR3); \
+	register FunctionCodeType    r11 asm("r11") = (FunctionCodeType)(FNCD); \
+	Asm ( \
+        "syscall 1\n\t" \
+        "nop\n\t" \
+		:"=r"(r10),"+r"(r11),"+r"(r6),"+r"(r7),"+r"(r8) \
+		: \
+		:"memory","lp","r9","r12","r13","r14","r15","r16","r17","r18","r19", "ep" \
+	); \
+	return(r10);
+
+/* 
+ *  返り値がvoidの場合
+ *  r10を破壊レジスタに加える
+ */
+
+#define CAL_SVC_0N(TYPE, FNCD) \
+	register FunctionCodeType    r11 asm("r11") = (FunctionCodeType)(FNCD); \
+	Asm ( \
+        "syscall 1\n\t" \
+        "nop\n\t" \
+		:"+r"(r11) \
+		: \
+		:"memory","lp","r6","r7","r8","r9","r10","r12","r13","r14","r15","r16","r17","r18","r19", "ep" \
+	);
+
+#define CAL_SVC_1N(TYPE, FNCD, TYPE1, PAR1) \
+	register TYPE1  r6 asm("r6") = (TYPE1)(PAR1); \
+	register FunctionCodeType    r11 asm("r11") = (FunctionCodeType)(FNCD); \
+	Asm ( \
+        "syscall 1\n\t" \
+        "nop\n\t" \
+		:"+r"(r11),"+r"(r6) \
+		: \
+		:"memory","lp","r7","r8","r9","r10","r12","r13","r14","r15","r16","r17","r18","r19", "ep" \
+	);
+
+
+#define CAL_SVC_2N(TYPE, FNCD, TYPE1, PAR1, TYPE2, PAR2) \
+	register TYPE1  r6 asm("r6") = (TYPE1)(PAR1); \
+	register TYPE2  r7 asm("r7") = (TYPE2)(PAR2); \
+	register FunctionCodeType    r11 asm("r11") = (FunctionCodeType)(FNCD); \
+	Asm ( \
+        "syscall 1\n\t" \
+        "nop\n\t" \
+		:"+r"(r11),"+r"(r6),"+r"(r7) \
+		: \
+		:"memory","lp","r8","r9","r10","r12","r13","r14","r15","r16","r17","r18","r19", "ep" \
+	);
+
+
+#define CAL_SVC_3N(TYPE, FNCD, TYPE1, PAR1, \
+							TYPE2, PAR2, TYPE3, PAR3) \
+	register TYPE1  r6 asm("r6") = (TYPE1)(PAR1); \
+	register TYPE2  r7 asm("r7") = (TYPE2)(PAR2); \
+	register TYPE3  r8 asm("r8") = (TYPE3)(PAR3); \
+	register FunctionCodeType    r11 asm("r11") = (FunctionCodeType)(FNCD); \
+	Asm ( \
+        "syscall 1\n\t" \
+        "nop\n\t" \
+		:"+r"(r11),"+r"(r6),"+r"(r7),"+r"(r8) \
+		: \
+		:"memory","lp","r9","r10","r12","r13","r14","r15","r16","r17","r18","r19", "ep" \
+	);
+
+
+#ifndef TOPPERS_SVC_CALL
+#include "gcc/tool_svc.h"
+#endif /* TOPPERS_SVC_CALL */
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+
+#endif /* TOPPERS_TARGET_SVC_H */
+
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/prc_syslog.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/prc_syslog.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/prc_syslog.h	(revision 117)
@@ -0,0 +1,77 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2011-2013 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2013 by FUJISOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by FUJITSU VLSI LIMITED, JAPAN
+ *  Copyright (C) 2011-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2013 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2013 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2013 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2013 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2013 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: prc_syslog.h 117 2014-12-10 03:58:03Z t_ishikawa $
+ */
+
+/*
+ *		シスログ機能のプロセッサ依存部（Nios2用）
+ */
+
+#ifndef TOPPERS_PRC_SYSLOG_H
+#define TOPPERS_PRC_SYSLOG_H
+
+#ifndef TOPPERS_MACRO_ONLY
+#include "kernel/kernel_impl.h"
+#include "prc_config.h"
+
+/*
+ *  ターゲット定義システムサービスシスログ機能のtrap定義
+ */
+
+#define KernelLibrarySyslog	_trap_KernelLibrarySyslog
+
+#define TFN_KERNELLIBRARYSYSLOG	(TMAX_SVCID - PRC_SVC_NUM + 2)
+
+extern void _kernel_KernelLibrarySyslog(void *param);
+
+LOCAL_INLINE void
+_trap_KernelLibrarySyslog(void *param)
+{
+	CAL_SVC_1N(void, TFN_KERNELLIBRARYSYSLOG, void *, param);
+}
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_PRC_SYSLOG_H */
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/prc_user.txt
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/prc_user.txt	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/prc_user.txt	(revision 117)
@@ -0,0 +1,367 @@
+
+		TOPPERS/ATK2-SC3
+        ＜V850プロセッサ依存部マニュアル(GCC版)＞
+
+このドキュメントはV850プロセッサ依存部のGCC版情報を記述したものである．
+
+----------------------------------------------------------------------
+TOPPERS ATK2
+    Toyohashi Open Platform for Embedded Real-Time Systems
+    Automotive Kernel Version 2
+
+Copyright (C) 2013-2014 by Center for Embedded Computing Systems
+            Graduate School of Information Science, Nagoya Univ., JAPAN
+Copyright (C) 2013-2014 by FUJI SOFT INCORPORATED, JAPAN
+Copyright (C) 2013-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
+Copyright (C) 2013-2014 by Sunny Giken Inc., JAPAN
+Copyright (C) 2013-2014 by TOSHIBA CORPORATION, JAPAN
+Copyright (C) 2013-2014 by Witz Corporation, JAPAN
+
+上記著作権者は，以下の (1)〜(3)の条件を満たす場合に限り，本ドキュメ
+ント（本ドキュメントを改変したものを含む．以下同じ）を使用・複製・改
+変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+(1) 本ドキュメントを利用する場合には，上記の著作権表示，この利用条件
+    および下記の無保証規定が，そのままの形でドキュメント中に含まれて
+    いること．
+(2) 本ドキュメントを改変する場合には，ドキュメントを改変した旨の記述
+    を，改変後のドキュメント中に含めること．ただし，改変後のドキュメ
+    ントが，TOPPERSプロジェクト指定の開発成果物である場合には，この限
+    りではない．
+(3) 本ドキュメントの利用により直接的または間接的に生じるいかなる損害
+    からも，上記著作権者およびTOPPERSプロジェクトを免責すること．また，
+    本ドキュメントのユーザまたはエンドユーザからのいかなる理由に基づ
+    く請求からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+
+本ドキュメントは，AUTOSAR（AUTomotive Open System ARchitecture）仕様
+に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するものではな
+い．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利用する
+者に対して，AUTOSARパートナーになることを求めている．
+
+本ドキュメントは，無保証で提供されているものである．上記著作権者およ
+びTOPPERSプロジェクトは，本ドキュメントに関して，特定の使用目的に対す
+る適合性も含めて，いかなる保証も行わない．また，本ドキュメントの利用
+により直接的または間接的に生じたいかなる損害に関しても，その責任を負
+わない．
+
+$Id: prc_user.txt 187 2015-06-25 03:39:04Z t_ishikawa $
+----------------------------------------------------------------------
+
+○概要
+
+V850プロセッサ依存部（以下，V850依存部）は，ルネサスエレクトロニクスの
+V850E2M/V850E2Sコア(V850E2v3アーキテクチャ)または，G3M/G3Kコア(V850E3V5ア
+ーキテクチャ)を用いたLSIをサポートしている．
+
+現状サポートしているLSIは，次に2種類である．V850プロセッサ依存部では，
+プロセッサと割り込みコントローラのみを使用するため，他の
+V850E2M/V850E2SコアもしくはG3M/G3Kコアを用いたLSIへのポーティングは容
+易である．
+
+ ・V850E2/Fx4
+ ・RH850/F1L
+ ・RH850/F1H
+
+○開発環境
+
+カーネルのコンパイルは，GCC を用いている．動作確認を行なったバージョン
+は以下のものである．
+
+V850E2v3アーキテクチャ
+V850E3v5アーキテクチャ
+ ・gcc version 4.9-GNUV850_v14.01 (GCC_Build_2.01) 
+   KPITのWebサイトから入手
+   
+デバッガは，CS+を使用して動作確認をしている．動作確認をしたバージョン
+は次の通りである．
+
+ ・V3.00.000
+ 
+このバージョンでは，GCCで生成したオブジェクトのLMAに非対応である．すな
+わち，初期値付き変数のためにデータセクション(.data)のVMAとLMAが異なる
+elfファイルを作成しても，VMAの場所にデータがロードされる．オブジェクト
+ファイルのデータセクションのVMAをLMAのアドレスに上書きするRubyスクリプ
+トconv2cs+.rb を用意している．ビルド時に次の様にmakeを実行するとオブジ
+ェクトファイルが変更される．
+
+ make cs
+
+
+○周辺回路
+
+ATK2のSC1カーネルのサンプルを動作させるためには，周辺回路として，UART
+とタイマが必要となる．V850依存部では，UARTとしては，アシンクロナス・シ
+リアル・インタフェース（UARTEn）を，タイマとしては，タイマアレイユニッ
+ト（TAUn）をサポートしている．使用するチャネルはターゲット毎に異なる．
+
+
+○TAUn割込みハンドラ(in taua_timer.c)
+
+IncrementCounter(SysTimerCnt)により，SysTimerCntのソフトウェアカウンタを
+インクリメントしている．IncrementCounter(SysTimerCnt)の戻り値がE_OK以外の
+場合，ShutdownOS()を呼び出している．
+
+
+○割込み優先度
+
+CFG_INTに指定可能な割込み優先度としては，以下の値を設定可能である．
+
+V850E2M : -1 〜 -15 
+V850E2S : -1 〜 -7
+G3M     : -1 〜 -15 
+G3K     : -1 〜 -7
+
+
+○割込み属性
+
+CFG_INTでサポートしている割込み属性はない．
+
+
+○未登録の割込み
+
+未登録の割込みが発生した場合は，prc_config.c で定義されている，
+default_int_handler() を呼び出す．default_int_handler() は，発生した割
+り込みの割込み番号をコンソールに出力した後，target_exit() を呼び出す．
+
+
+○C1ISRの扱い
+
+・C1ISRにはユーザによって以下の処理が記述されるべきである．
+    ・C1ISRで使用するレジスタの内容を退避
+    ・C1ISRが実行中であることを判別するための情報を保存する
+        ・現在の実装ではiipm
+    ・退避したレジスタの復帰
+    ・eret命令でC1ISRを終了する
+
+
+○CPU例外要因情報取得
+
+・CPU例外発生した場合，ユーザは，プロテクションからCPU例外情報を取得で
+  き，取得できるのは，CPU例外発生時の以下の情報がある．
+    ・CPU例外要因番号(変数：v850_cpu_exp_no)
+    ・プログラムカウンタ(変数：v850_cpu_exp_pc)
+    ・スタックポインタ(変数：v850_cpu_exp_sp)
+        ・更に，CPU例外発生時に各レジスタはスタックに保存しているので，
+          v850_cpu_exp_spを使って保存してあるレジスタの値を取得するこ
+          とができる．保存してあるレジスタとアドレスの情報はアセンブリ
+          コードを参照する．
+
+・しかし，プロテクションフック無効の場合，上記のCPU例外要因保持用変数が
+  定義されないため，使用しないでください(使用した場合，コンパイルエラー
+  となる)．
+
+
+○制限事項
+
+ep相対でアクセスするtinyデータセクションはサポートしない．
+
+
+○変更履歴
+2015/04/10
+・prc_common.tf
+  割込み優先度レベルの変更の追従忘れ
+
+2015/04/07
+・Platform_Types.h
+  stdint.h をインクルードするよう変更．
+
+2015/04/01
+・割込み優先度のレベルをG3M/E2Mは16段階に，G3K/E2Sは8段階に修正．
+
+2015/03/31
+・prc_support.S/prc_insn.h
+  PSW.EBV，EBASE，INTBP，ISPR，PMR，ICSR，INTCFG の更新時はdi状態とす
+  る必要があるため，該当箇所を修正．
+  
+2015/01/07
+・prc_support.S
+  _ei_exception_entry で保存していないr20を使用していた問題を修正．
+
+2014/12/24
+・prc.tf，prc_config.c，prc_insn.h，prc_support.S
+  V850E3v5におけるEIレベル割込みを直接ベクタ方式からテーブル参照方式へ変更．
+  ※v850-elf-objdump -d 実行時，Segmentation faultが発生するが，実行モ
+    ジュールの生成には問題ない．正しく生成するためには，
+    v850-elf-objdumpに以下のオプションを追加する．
+    --architecture=v850-rh850
+
+2014/12/10
+・start.S
+  dataセクションの初期化の終了条件を__idata_endのアドレスは初期化しな
+  いように修正．
+
+2014/12/09
+・コンパイラをKPITから公開されている4.9に変更．
+・CS+でデータセクションを正しくロードするため，VMAをLMAに上書きするス
+  クリプトを追加．
+
+2014/12/05
+・v850e2v3において，PMRを設定した後にSYNCMを実行するように変更．
+・v850e2v3の対象コンパイラをv850e3v5と合わせて4.9系に変更．
+
+2014/12/04
+・prc_config.h
+  x_set_ipm()でPMRを変更していたが，OS割込み禁止もPMRで実現されている
+  ため，API実行中に割込みがOS割込み禁止以下の値となってしまう問題を修
+  正．
+
+2014/11/15
+・prc_support.S
+  _interruptで多重割込みで破壊されるr2を使用していた問題を修正．
+  
+2014/11/05
+・tauj_hw_counter.c
+  ハードウェアカウンタとして使用するTAUJのチャネルを変更できるように変
+  更．
+
+2014/10/23
+・Makefile.prc
+  ・コアタイプ(RH850G3K や RH850G3M)をターゲット依存部から受け取り，
+    RH850G3Kの場合は，コンパイルオプションに -msoft-float を追加．
+    RH850G3MかつUSE_HFLOATが指定された場合は，FPUを有効にするためのマ
+    クロとコンパイルオプションを有効にする．定義されていなければ，
+    -msoft-floatとする．
+
+2014/10/17
+・prc_support.S
+  ・アイドル時にdiにより割り込みを禁止してからhaltを呼び出すように変更．
+
+2014/10/15
+・prc_support.S
+  ・ベクタテーブルから例外に応じて，_fe_exception_entry/ 
+    _ei_exception_entry を呼び出すように変更．
+  
+2014/10/14
+・prc_support.S
+  ・アイドル時にhaltを呼び出すように変更．
+  ・ディスパッチャのアイドルループにおいて，callevelを変更しないように修正．
+  ・IPSRを変更後，syncpを呼び出すように変更．
+  
+2014/10/10
+・prc_support.S
+  dispatch_r で r30(ep)の復帰時のベースアドレスに更新したspを使用して
+  た問題を修正．
+
+2014/09/25
+・v850e2_fx4.h ターゲット依存部で定義した型番からコアのタイプの指定マ
+  クロ(_V850E2M_ or _V850E2S_)を定義するよう変更．
+
+2014/09/14
+・PMRを変更した後は，"syncp"を実行して設定が反映されるのを同期するよう
+  に変更．
+
+2014/09/08
+・RLIN3 UART ドライバのポートを変更可能に．
+
+2014/08/19
+・V850のターゲット指定を-mv850e2に変更．-mv850e2v3だと以下の問題が発生
+  するため．
+  ・アセンブラファイルに書かれたbranch命令が32bit命令としてアセンブルされる．
+  ・不正な命令が出力される
+      trncf.sw r8,r8
+  
+2014/07/17
+・RH850のサポートの追加．
+
+2014/07/15
+・prc_support.S
+ ・int_nestedでisrcb_tableのアドレスの取得に問題があったため修正．
+ ・割込み・ディスパッチャで保存する復帰するレジスタの変更．
+ 
+2014/07/10
+・start.S
+  hardware_init_hookとsoftware_init_hookへのジャンプをラベル経由ではな
+  く，レジスタ経由に変更．
+・ターゲット依存部の名称変更
+  v850e2_xxx から v850_xxx に変更      
+・V850E3V5のサポート
+  ・マクロ __v850e2v3__ と __v850e3v5__ により切り分け
+  ・割込みコントローラに対するアクセスを関数やマクロ経由に変更  
+    ・V850E3V5ではコアと統合されているためアクセス方法が異なる．
+・tfのベクターテーブルの出力用コードをCX版と共有するために，出力用コード
+  prc_common.tfにまとめ，Os_Lcfg_asm.Sに出力するように変更．
+・prc_support.Sをcxとツール変換で共有するために変更．
+  ・prc_support.S/start.S/v850asm.inc
+
+2014/07/09
+・prc_support.S で Lea で 32bit即値をロードしていた箇所を mov に変更．
+
+2014/02/26
+・ディスパッチャと割込みの出入口で保存・復帰するレジスタの修正．
+  割込み出入口 : r2,r5を保存するよう変更
+  ディスパッチャ : r31, r2, ep(r30)を保存しないように変更
+・割込み出口処理で current_iintpri を常に元の値に戻すように変更．
+
+2014/01/10
+・静的APIファイルを削除
+
+2013/10/01
+・prc_support.S
+  OUTER_LOCK_OS_INT において，以下の命令を2回実行していたが，1回でよい
+  ため，2回目を削除．
+      Lea     _pmr_isr2_mask, AMARG(reg13)
+  ei_exception_2/fe_exception_2 において，_kerflgのアドレスを読み込ん
+  だ後，内容を読み込まずに比較していた問題を修正．
+  
+2013/09/17
+・V850E2Sをサポートしたため，アーキテクチャ依存部の名称を v850e2m から 
+  v850e2 に変更．
+・コアのマクロをv850e2_fx4.h  v850e2_px4.h で定義するように変更．それ
+  に伴い，v850e2_fx4l.h を追加．
+
+2013/09/14
+・コアのマクロを追加
+  _V850E2S_
+  _V850E2M_
+
+2013/08/31
+・CubeSuite+のバージョンを更新．
+
+2013/08/07
+・0x50 : EIレベルソフトウェア例外 と 0x70 : 浮動小数点演算例外  で，
+_ei_exception_entry を呼び出すように修正．
+
+2013/06/24
+・prc_support.S prc_def.csv prc_offset.tf 
+  ・割込みのエントリでの多重割込み時のスタックのチェック方法を スタック
+    残量チェック方式 に変更．
+・uart.c
+  ・"Os_Lcfg.h" をインクルードするよう変更．
+
+2013/04/23
+・100ナノ秒単位で時間計測可能な get_tim_100ntime() を追加．
+  ・タイマの分周比を2^5から2^0に変更．
+・SystemTime100NsType を追加(uint32)
+
+2013/04/20
+・uart.c 
+  ・プリスケーラｰの設定値をターゲット依存部で定義できるように変更．
+・taua_timer.c
+  ・カウント値をターゲット依存部で定義できるように変更．
+・v850e2_fx4.h
+  ・FG4用の定義を追加．
+  ・カウント値を削除．
+・v850e2_fx4.c
+  ・write_protected_reg()で保護レジスタを書き込む時にdi/eiを無条件で実
+    行していた問題を修正．    
+・v850e2_px4.h
+  ・カウント値を削除．
+
+2013/04/18
+・get_tim_utime()
+  ・タイマのオーバーフロー時の扱いに問題があったため修正．
+・target_timer_get_current()
+  ・ハードウェアの仕様はダウンカウントであるが，アップカウントとしてコ
+    ードが記述されていたため修正．
+
+2013/03/25
+・start_r で ei をしていたが，必要無いため削除．
+
+2013/02/05
+・CHECK_STKSZ_ALIGN/CHECK_FUNC_ALIGN/CHECK_STACK_ALIGN が他の箇所で定
+  義されていれば定義しないように変更．
+
+2013/02/01
+・最初のリリース．
+        
+以上．
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/rh850_f1h.c
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/rh850_f1h.c	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/rh850_f1h.c	(revision 117)
@@ -0,0 +1,255 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: rh850_f1h.c 164 2015-06-03 01:22:29Z t_ishikawa $
+ */
+#include "kernel_impl.h"
+#include "rh850_f1h.h"
+#include "Os.h"
+#include "prc_sil.h"
+
+/*******************************************************************************************/
+/*  Outline      : Write protected register                                                */
+/*  Argument     : Register address                                                        */
+/*                 Register data                                                           */
+/*                 Register No                                                             */
+/*  Return value : 0: write success / 1: write error                                       */
+/*  Description  : Write protected register                                                */
+/*                                                                                         */
+/*******************************************************************************************/
+static uint32
+write_protected_reg(uint32 addr, uint32 data, uint8 regno)
+{
+	uint8	wk;
+	const uint32	cmd_reg[24] = {
+		PROTCMD0,PROTCMD1,CLMA0PCMD,CLMA1PCMD,CLMA2PCMD,PROTCMDCLMA,
+		JPPCMD0,PPCMD0,PPCMD1,PPCMD2,PPCMD3,PPCMD8,
+		PPCMD9,PPCMD10,PPCMD11,PPCMD12,PPCMD13,PPCMD18,PPCMD19,PPCMD20,PPCMD21,PPCMD22,
+		PROTCMDCVM,FLMDPCMD};
+	const uint32	s_reg[24] = {
+		PROTS0,PROTS1,CLMA0PS,CLMA1PS,CLMA2PS,PROTSCLMA,
+		JPPROTS0,PPROTS0,PPROTS1,PPROTS2,PPROTS3,PPROTS8,
+		PPROTS9,PPROTS10,PPROTS11,PPROTS12,PPROTS13,PPROTS18,PPROTS19,PPROTS20,PPROTS21,PPROTS22,
+		PROTSCVM,FLMDPS};
+	SIL_PRE_LOC;
+
+	if (regno > 24) {
+		return(UC_INVALIDPARAM);
+	}
+
+	SIL_LOC_INT();
+	sil_wrw_mem((void *) cmd_reg[regno], 0xA5);
+
+	sil_wrw_mem((void *) addr, data);
+	sil_wrw_mem((void *) addr, ~data);
+	sil_wrw_mem((void *) addr, data);
+	SIL_UNL_INT();
+
+	wk = sil_rew_mem((void *) s_reg[regno]);
+	wk &= 0x01;
+
+	return((wk == 0) ? UC_SUCCESS : UC_PROTREGERROR);
+} /* write_protected_reg */
+
+
+/*******************************************************************************************/
+/*  Outline      : Sub Oscillator enable                                                   */
+/*  Argument     : -                                                                       */
+/*  Return value : 0: successfly set / 1: set error                                        */
+/*  Description  : Sub Oscillator register setting                                         */
+/*                                                                                         */
+/*******************************************************************************************/
+uint32
+EnableSubOSC(void)
+{
+	/* stop SubOSC */
+	if (write_protected_reg(SOSCE, 0x00, PNO_CtrlProt0) != UC_SUCCESS) return(UC_ERROR);
+
+	/* Wait inactive */
+	while (((sil_rew_mem((void *) SOSCS)) & CLK_S_CLKEN) != 0) {}
+
+	/* start SubOSC */
+	if (write_protected_reg(SOSCE, 0x01, PNO_CtrlProt0) != UC_SUCCESS) return(UC_ERROR);
+
+	/* Wait stabilization */
+	while (((sil_rew_mem((void *) SOSCS)) & CLK_S_CLKEN) == 0) {}
+
+	return(UC_SUCCESS);
+} /* EnableSubOSC */
+
+/*******************************************************************************************/
+/*  Outline      : Main Oscillator enable                                                  */
+/*  Argument     : Main Cscillator frequency(Hz)                                           */
+/*  Return value : 0: successfly set / 1: set error                                        */
+/*  Description  : Main Oscillator register setting                                        */
+/*                                                                                         */
+/*******************************************************************************************/
+uint32
+EnableMainOSC(uint32 clk_in)
+{
+	uint8	ampsel;
+
+	/* stop MainOSC */
+	if (write_protected_reg(MOSCE, 0x02, PNO_CtrlProt0) != UC_SUCCESS)  return(UC_ERROR);
+	
+	if (clk_in == CLK_MHz(8)) {
+		ampsel = 0x03;
+	} else if (CLK_MHz(8) < clk_in && clk_in <= CLK_MHz(16)) {
+		ampsel = 0x02;
+	} else if (CLK_MHz(16) < clk_in && clk_in <= CLK_MHz(20)) {
+		ampsel = 0x01;
+	} else if (CLK_MHz(20) < clk_in && clk_in <= CLK_MHz(24)) {
+		ampsel = 0x00;
+	} else {
+		return(UC_INVALIDPARAM);
+	}
+
+	sil_wrw_mem((void *) MOSCC, 0x00 | ampsel); /* Normal stabilization time mode */
+	sil_wrw_mem((void *) MOSCST, 0x00FF);       /* stabilization time -> Max */
+
+	/* Wait inactive */
+	while (((sil_rew_mem((void *) MOSCS)) & CLK_S_CLKEN) != 0) {}
+
+	/* MainOSC start */
+	if (write_protected_reg(MOSCE, 0x01, PNO_CtrlProt0) != UC_SUCCESS)  return(UC_ERROR);
+
+	/* Wait stabilization */
+	while (((sil_rew_mem((void *) MOSCS)) & CLK_S_CLKEN) == 0) {}
+
+	return(UC_SUCCESS);
+} /* EnableMainOSC */
+
+/*******************************************************************************************/
+/*  Outline      : PLL0 enable                                                              */
+/*  Argument     : none                                                                    */
+/*  Return value : 0: successfly set / 1: set error                                        */
+/*  Description  : PLL register setting                                                    */
+/*                                                                                         */
+/*******************************************************************************************/
+uint32
+EnablePLL0(void)
+{
+	/* stop PLL */
+	if (write_protected_reg(PLL0E, 0x02, PNO_CtrlProt1) != UC_SUCCESS)  return(UC_ERROR);
+
+	sil_wrw_mem((void*) PLL0C,
+				(PLL0C_FVV<<29) | (PLL0C_MF<<24) | (PLL0C_ADJ<<20) |
+				(PLL0C_MD<<14)  | (PLL0C_SMD<<13) | (PLL0C_M<<11) |
+				(PLL0C_P<<8) | (PLL0C_N));
+
+	/* start PLL */
+	if (write_protected_reg(PLL0E, 0x01, PNO_CtrlProt1) != UC_SUCCESS)  return(UC_ERROR);
+
+	/* Wait stabilization */
+	while (((sil_rew_mem((void *) PLL0S)) & CLK_S_CLKEN) == 0) {}
+
+	return(UC_SUCCESS);
+} /* EnablePLL0 */
+
+
+/*******************************************************************************************/
+/*  Outline      : PLL1 enable                                                              */
+/*  Argument     : none                                                                    */
+/*  Return value : 0: successfly set / 1: set error                                        */
+/*  Description  : PLL register setting                                                    */
+/*                                                                                         */
+/*******************************************************************************************/
+uint32
+EnablePLL1(void)
+{
+	/* stop PLL */
+	if (write_protected_reg(PLL1E, 0x02, PNO_CtrlProt1) != UC_SUCCESS)  return(UC_ERROR);
+
+	sil_wrw_mem((void*) PLL1C,  (PLL1C_M<<11) | (PLL1C_PA<<8) | PLL1C_N);
+
+	/* start PLL */
+	if (write_protected_reg(PLL1E, 0x01, PNO_CtrlProt1) != UC_SUCCESS)  return(UC_ERROR);
+
+	/* Wait stabilization */
+	while (((sil_rew_mem((void *) PLL1S)) & CLK_S_CLKEN) == 0) {}
+
+	return(UC_SUCCESS);
+} /* EnablePLL1 */
+
+/*******************************************************************************************/
+/*  Outline      : Clock switcher setting                                                  */
+/*  Argument     : Selector Control reginster address                                      */
+/*                 Selector Status reginster address                                       */
+/*                 Register No                                                             */
+/*                 Select No                                                               */
+/*                 Divider Control reginster address                                       */
+/*                 Divider Status reginster address                                        */
+/*                 divider                                                                 */
+/*  Return value : 0: successfly set / 1: set error                                        */
+/*  Description  : Select clock source of CKSCLK_mn                                        */
+/*                                                                                         */
+/*******************************************************************************************/
+uint32
+SetClockSelection(uint32 s_control, uint32 s_status, uint8 regno, uint16 sel,
+					uint32 d_control, uint32 d_status, uint8 divider)
+{
+	/* Set Selector */
+	if (write_protected_reg(s_control, sel, regno) != UC_SUCCESS) { return(UC_ERROR);}
+
+	/* Set Divider */
+	if (d_control != 0) {
+		if (write_protected_reg(d_control, divider, regno) != UC_SUCCESS) { return(UC_ERROR);}
+	}
+
+	/* Wait untile enable */
+	while (sil_rew_mem((void *) s_control) != sil_rew_mem((void *) s_status)) {};
+	if (d_control != 0) {
+		while (sil_rew_mem((void *) d_control) != sil_rew_mem((void *) d_status)) {};
+	}
+
+	return(UC_SUCCESS);
+}
+
+void
+raise_ipir(uint8 ch) {
+	if (current_cpuid() == 1) {
+		sil_wrw_mem((void*)IPIC_ADDR(ch), 2);
+	}
+	else {
+		sil_wrw_mem((void*)IPIC_ADDR(ch), 1);
+	}
+}
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/rh850_f1h.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/rh850_f1h.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/rh850_f1h.h	(revision 117)
@@ -0,0 +1,368 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: rh850_f1h.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		RH850/F1Lのハードウェア資源の定義
+ */
+
+#ifndef TOPPERS_RH850_F1H_H
+#define TOPPERS_RH850_F1H_H
+
+#define _RH850G3M_
+
+/*
+ * 保護コマンドレジスタ
+ */
+#define PROTCMD0		0xFFF80000
+#define PROTCMD1		0xFFF88000
+#define CLMA0PCMD		0xFFF8C010
+#define CLMA1PCMD		0xFFF8D010
+#define CLMA2PCMD		0xFFF8E010
+#define PROTCMDCLMA		0xFFF8C200
+#define JPPCMD0			0xFFC204C0
+#define PPCMD0			0xFFC14C00
+#define PPCMD1			0xFFC14C04
+#define PPCMD2			0xFFC14C08
+#define PPCMD3			0xFFC14C0C
+#define PPCMD8			0xFFC14C20
+#define PPCMD9			0xFFC14C24
+#define PPCMD10			0xFFC14C28
+#define PPCMD11			0xFFC14C2C
+#define PPCMD12			0xFFC14C30
+#define PPCMD13			0xFFC14C34
+#define PPCMD18			0xFFC14C48
+#define PPCMD19			0xFFC14C4C
+#define PPCMD20			0xFFC14C50
+#define PPCMD21			0xFFC14C54
+#define PPCMD22			0xFFC14C58
+#define PROTCMDCVM		0xFFF83200
+#define FLMDPCMD		0xFFA00004
+
+/*
+ * 保護ステータスレジスタ
+ */
+#define PROTS0			0xFFF80004
+#define PROTS1			0xFFF88004
+#define CLMA0PS			0xFFF8C014
+#define CLMA1PS			0xFFF8D014
+#define CLMA2PS			0xFFF8E014
+#define PROTSCLMA		0xFFF8C204
+#define JPPROTS0		0xFFC204B0
+#define PPROTS0			0xFFC14B00
+#define PPROTS1			0xFFC14B04
+#define PPROTS2			0xFFC14B08
+#define PPROTS3			0xFFC14B0C
+#define PPROTS8			0xFFC14B20
+#define PPROTS9			0xFFC14B24
+#define PPROTS10		0xFFC14B28
+#define PPROTS11		0xFFC14B2C
+#define PPROTS12		0xFFC14B30
+#define PPROTS13		0xFFC14B34
+#define PPROTS18		0xFFC14B48
+#define PPROTS19		0xFFC14B4C
+#define PPROTS20		0xFFC14B50
+#define PPROTS21		0xFFC14B54
+#define PPROTS22		0xFFC14B58
+#define PROTSCVM		0xFFF83204
+#define FLMDPS			0xFFA00008
+
+/*
+ * 保護コマンドレジスタの番号
+ */
+#define PNO_CtrlProt0			0
+#define PNO_CtrlProt1			1
+#define PNO_ClkMonitorCtrlProt0	2
+#define PNO_ClkMonitorCtrlProt1	3
+#define PNO_ClkMonitorCtrlProt2	4
+#define PNO_ClkMonitorTestProt	5
+#define PNO_PortProt0			6
+#define PNO_PortProt0_0			7
+#define PNO_PortProt0_1			8
+#define PNO_PortProt0_2			9
+#define PNO_PortProt0_3			10
+#define PNO_PortProt0_8			11
+#define PNO_PortProt1_9			12
+#define PNO_PortProt1_10		13
+#define PNO_PortProt1_11		14
+#define PNO_PortProt1_12		15
+#define PNO_PortProt1_13		16
+#define PNO_PortProt1_18		17
+#define PNO_PortProt1_19		18
+#define PNO_PortProt1_20		19
+#define PNO_PortProt1_21		20
+#define PNO_PortProt1_22		21
+#define PNO_CoreVMonitorProt	22
+#define PNO_SelfProgProt		23
+
+/*
+ *  PORTレジスタ
+ */
+#define PORT_BASE	UINT_C(0xffc10000)
+
+/* 端子機能設定  (USE)*/
+#define PMC(n)		((PORT_BASE) +0x0400 + (n * 0x04U))     /* ポート・モード・コントロール・レジスタ */
+#define PMCSR(n)	((PORT_BASE) +0x0900 + (n * 0x04U))     /* ポート・モード・コントロール・セット／リセット・レジスタ */
+#define PIPC(n)		((PORT_BASE) +0x4200 + (n * 0x04U))     /* ポートIP コントロール・レジスタ */
+#define PM(n)		((PORT_BASE) +0x0300 + (n * 0x04U))     /* ポート・モード・レジスタ */
+#define PMSR(n)		((PORT_BASE) +0x0800 + (n * 0x04U))     /* ポート・モード・セット／リセット・レジスタ */
+#define PIBC(n)		((PORT_BASE) +0x4000 + (n * 0x04U))     /* ポート入力バッファ・コントロール・レジスタ */
+#define PFC(n)		((PORT_BASE) +0x0500 + (n * 0x04U))     /* ポート機能コントロール・レジスタ */
+#define PFCE(n)		((PORT_BASE) +0x0600 + (n * 0x04U))     /* ポート機能コントロール拡張・レジスタ */
+#define PFCAE(n)	((PORT_BASE) +0x0A00 + (n * 0x04U))     /* ポート機能コントロール追加拡張・レジスタ */
+
+/* 端子データ入力／出力  (USE)*/
+#define PBDC(n)		((PORT_BASE) +0x4100 + (n * 0x04U))     /* ポート双方向コントロール・レジスタ */
+#define PPR(n)		((PORT_BASE) +0x0200 + (n * 0x04U))     /* ポート端子リード・レジスタ */
+#define P(n)		((PORT_BASE) +0x0000 + (n * 0x04U))     /* ポート・レジスタ */
+#define PNOT(n)		((PORT_BASE) +0x0700 + (n * 0x04U))     /* ポート・ノット・レジスタ */
+#define PSR(n)		((PORT_BASE) +0x0100 + (n * 0x04U))     /* ポート・セット／リセット・レジスタ */
+
+
+#define RLN3xBASE			0xffce2040
+
+#define RLN3xLWBR_B			0x00000001
+#define RLN3xLBRP01_H		0x00000002
+#define RLN3xLBRP0_B		0x00000002
+#define RLN3xLBRP1_B		0x00000003
+#define RLN3xLSTC_B			0x00000004
+#define RLN3xLMD_B			0x00000008
+#define RLN3xLBFC_B			0x00000009
+#define RLN3xLSC_B			0x0000000a
+#define RLN3xLWUP_B			0x0000000b
+#define RLN3xLIE_B			0x0000000c
+#define RLN3xLEDE_B			0x0000000d
+#define RLN3xLCUC_B			0x0000000e
+#define RLN3xLTRC_B			0x00000010
+#define RLN3xLMST_B			0x00000011
+#define RLN3xLST_B			0x00000012
+#define RLN3xLEST_B			0x00000013
+#define RLN3xLDFC_B			0x00000014
+#define RLN3xLIDB_B			0x00000015
+#define RLN3xLCBR_B			0x00000016
+#define RLN3xLUDB0_B		0x00000017
+#define RLN3xLDBR1_B		0x00000018
+#define RLN3xLDBR2_B		0x00000019
+#define RLN3xLDBR3_B		0x0000001a
+#define RLN3xLDBR4_B		0x0000001b
+#define RLN3xLDBR5_B		0x0000001c
+#define RLN3xLDBR6_B		0x0000001d
+#define RLN3xLDBR7_B		0x0000001e
+#define RLN3xLDBR8_B		0x0000001f
+#define RLN3xLUOER_B		0x00000020
+#define RLN3xLUOR1_B		0x00000021
+#define RLN3xLUTDR_H		0x00000024
+#define RLN3xLUTDRL_B		0x00000024
+#define RLN3xLUTDRH_B		0x00000025
+#define RLN3xLURDR_H		0x00000026
+#define RLN3xLURDRL_B		0x00000026
+#define RLN3xLURDRH_B		0x00000027
+#define RLN3xLUWTDR_H		0x00000028
+#define RLN3xLUWTDRL_B		0x00000028
+#define RLN3xLUWTDRH_B		0x00000029
+
+
+/*
+ * OSTM
+ */
+#if 0
+#define OSTM_IRQ			UINT_C(147)
+
+#define OSTM0_BASE	0xFFD70000
+#define OSTM1_BASE	0xFFD70100
+#define OSTM2_BASE	0xFFD70200
+#define OSTM3_BASE	0xFFD70300
+#define OSTM4_BASE	0xFFD70400
+#define OSTM5_BASE	0xFFD71000
+#define OSTM6_BASE	0xFFD71100
+#define OSTM7_BASE	0xFFD71200
+#define OSTM8_BASE	0xFFD71300
+#define OSTM9_BASE	0xFFD71400
+
+#define OSTM_CMP_W	0x00
+#define OSTM_CNT_W	0x04
+#define OSTM_TE		0x10
+#define OSTM_TS_B	0x14
+#define OSTM_TT_B	0x18
+#define OSTM_CTL_B	0x20
+#endif
+/*
+ *  PLL関連のレジスタと定義
+ */
+/* Main OSC */
+#define MOSCE		0xfff81100
+#define MOSCS		0xfff81104
+#define MOSCC		0xfff81108
+#define MOSCST		0xfff8110c
+#define MOSCSTPM	0xfff81118
+
+/* Sub OSC  */
+#define SOSCE		0xfff81200
+#define SOSCS		0xfff81204
+#define SOSCST		0xfff8120C
+
+/* PLL  */
+#define PLL0E		0xfff89000
+#define PLL0S		0xfff89004
+#define PLL0C		0xfff89008
+#define PLL1E		0xfff89100
+#define PLL1S		0xfff89104
+#define PLL1C		0xfff89108
+
+
+#define CKSC_CPUCLKS_CTL	0xfff8a000
+#define CKSC_CPUCLKS_ACT	0xfff8a008
+#define CKSC_CPUCLKD_CTL	0xfff8a100
+#define CKSC_CPUCLKD_ACT	0xfff8a108
+
+#define CKSC_ILINS_CTL		0xfff8a400
+#define CKSC_ILINS_ACT		0xfff8a408
+#define CKSC_ILIND_CTL		0xfff8a800
+#define CKSC_ILIND_ACT		0xfff8a808
+
+#define MHz(n)		((n) * 1000 * 1000)
+#define CLK_MHz(num)	(num * 1000 * 1000)
+
+/* xxxS Register (USE) */
+#define CLK_S_STPACK	0x08
+#define CLK_S_CLKEN		0x04
+#define CLK_S_CLKACT	0x02
+#define CLK_S_CLKSTAB	0x01
+
+
+/* Return Parameter */
+#define UC_SUCCESS			0
+#define UC_ERROR			1
+#define UC_INVALIDPARAM		2
+#define UC_PROTREGERROR		3
+#define UC_CLKSTATUSERR		4
+#define UC_CLKNOTENABLE		5
+#define UC_CLKNOTACTIVE		6
+#define UC_CLKNOTSTAB		7
+
+/*
+ *  RLIN3
+ */
+#define RLIN30_BASE 0xffce2000
+#define RLIN31_BASE 0xffce2040
+#define RLIN32_BASE 0xffce2080
+#define RLIN33_BASE 0xffce20c0
+#define RLIN34_BASE 0xffce2100
+#define RLIN35_BASE 0xffce2140
+  
+/*
+ *  INTC
+ */
+#define INTC1_BASE  0xFFFEEA00
+#define INTC2_BASE  0xFFFFB000
+
+#define INTC2_EIC   0x040
+#define INTC2_EIBD  0x880
+#define INTC2_INTNO_OFFSET 32
+
+/* intno は unsigned を想定 */
+#define EIC_ADDRESS(intno)	(intno <= 31)? (INTC1_BASE + (intno * 2)) : (INTC2_BASE + INTC2_EIC  + ((intno - INTC2_INTNO_OFFSET) * 2))
+
+#define INTC_HAS_IBD
+
+#define IBD_ADDRESS(intno)	(intno <= 31)? (0xFFFEEB00 + (intno * 4)) : (0xFFFFB880 + ((intno - INTC2_INTNO_OFFSET) * 4))
+
+#define TMIN_INTNO	UINT_C(0)
+#define TMAX_INTNO	UINT_C(350)
+#define TNUM_INT	UINT_C(351)
+
+/*
+ *  INTNO
+ */
+#define RLIN30_TX_INTNO		UINT_C(34)
+#define RLIN30_RX_INTNO		UINT_C(35)
+#define RLIN30_ER_INTNO		UINT_C(36)
+#define RLIN31_TX_INTNO		UINT_C(121)
+#define RLIN31_RX_INTNO		UINT_C(122)
+#define RLIN31_ER_INTNO		UINT_C(123)
+#define RLIN35_TX_INTNO		UINT_C(237)
+#define RLIN35_RX_INTNO		UINT_C(238)
+#define RLIN35_ER_INTNO		UINT_C(239)
+
+#define TAUFJ0I0_INTNO		UINT_C(80)
+#define TAUFJ0I1_INTNO		UINT_C(81)
+#define TAUFJ0I2_INTNO		UINT_C(82)
+#define TAUFJ0I3_INTNO		UINT_C(83)
+#define TAUFJ1I0_INTNO		UINT_C(168)
+#define TAUFJ1I1_INTNO		UINT_C(169)
+#define TAUFJ1I2_INTNO		UINT_C(170)
+#define TAUFJ1I3_INTNO		UINT_C(171)
+
+/*
+ *  PE間割込みレジスタ
+ */
+#define IPIR_CH0 0xfffeec80
+#define IPIR_CH1 0xfffeec84
+#define IPIR_CH2 0xfffeec88
+#define IPIR_CH3 0xfffeec8c
+
+#define IPIC_ADDR(ch)  (IPIR_CH0 + ch * 4)
+
+
+#ifndef TOPPERS_MACRO_ONLY
+
+extern uint32 EnableSubOSC(void);
+
+extern uint32 EnableMainOSC(uint32 clk_in);
+
+extern uint32 EnablePLL0(void);
+
+extern uint32 EnablePLL1(void);
+
+extern uint32 SetClockSelection(uint32 s_control, uint32 s_status, uint8 regno, uint16 sel,
+					uint32 d_control, uint32 d_status, uint8 divider);
+
+extern void raise_ipir(uint8 ch);
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+
+#include "v850.h"
+
+#endif /* TOPPERS_RH850_F1H_H */
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/rh850_f1l.c
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/rh850_f1l.c	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/rh850_f1l.c	(revision 117)
@@ -0,0 +1,246 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: rh850_f1l.c 164 2015-06-03 01:22:29Z t_ishikawa $
+ */
+#include "kernel_impl.h"
+#include "rh850_f1l.h"
+#include "Os.h"
+#include "prc_sil.h"
+
+/*******************************************************************************************/
+/*  Outline      : Write protected register                                                */
+/*  Argument     : Register address                                                        */
+/*                 Register data                                                           */
+/*                 Register No                                                             */
+/*  Return value : 0: write success / 1: write error                                       */
+/*  Description  : Write protected register                                                */
+/*                                                                                         */
+/*******************************************************************************************/
+static uint32
+write_protected_reg(uint32 addr, uint32 data, uint8 regno)
+{
+	uint8			wk;
+	const uint32	cmd_reg[19] = {
+		PROTCMD0, PROTCMD1, CLMA0PCMD, CLMA1PCMD, CLMA2PCMD, PROTCMDCLMA,
+		JPPCMD0, PPCMD0, PPCMD1, PPCMD2, PPCMD8,
+		PPCMD9, PPCMD10, PPCMD11, PPCMD12, PPCMD18, PPCMD20,
+		PROTCMDCVM, FLMDPCMD
+	};
+	const uint32	s_reg[19] = {
+		PROTCMD0, PROTCMD1, CLMA0PCMD, CLMA1PCMD, CLMA2PCMD, PROTCMDCLMA,
+		JPPCMD0, PPCMD0, PPCMD1, PPCMD2, PPCMD8,
+		PPCMD9, PPCMD10, PPCMD11, PPCMD12, PPCMD18, PPCMD20,
+		PROTCMDCVM, FLMDPCMD
+	};
+	SIL_PRE_LOC;
+
+	if (regno > 19) {
+		return(UC_INVALIDPARAM);
+	}
+
+	SIL_LOC_INT();
+	sil_wrw_mem((void *) cmd_reg[regno], 0xA5);
+
+	sil_wrw_mem((void *) addr, data);
+	sil_wrw_mem((void *) addr, ~data);
+	sil_wrw_mem((void *) addr, data);
+	SIL_UNL_INT();
+
+	wk = sil_rew_mem((void *) s_reg[regno]);
+	wk &= 0x01;
+
+	return((wk == 0) ? UC_SUCCESS : UC_PROTREGERROR);
+} /* write_protected_reg */
+
+
+/*******************************************************************************************/
+/*  Outline      : Sub Oscillator enable                                                   */
+/*  Argument     : -                                                                       */
+/*  Return value : 0: successfly set / 1: set error                                        */
+/*  Description  : Sub Oscillator register setting                                         */
+/*                                                                                         */
+/*******************************************************************************************/
+uint32
+EnableSubOSC(void)
+{
+	/* stop SubOSC */
+	if (write_protected_reg(SOSCE, 0x00, PNO_CtrlProt0) != UC_SUCCESS) {
+		return(UC_ERROR);
+	}
+
+	/* Wait inactive */
+	while (((sil_rew_mem((void *) SOSCS)) & CLK_S_CLKEN) != 0) {
+	}
+
+	/* start SubOSC */
+	if (write_protected_reg(SOSCE, 0x01, PNO_CtrlProt0) != UC_SUCCESS) return(UC_ERROR);
+
+	/* Wait stabilization */
+	while (((sil_rew_mem((void *) SOSCS)) & CLK_S_CLKEN) == 0) {
+	}
+
+	return(UC_SUCCESS);
+} /* EnableSubOSC */
+
+/*******************************************************************************************/
+/*  Outline      : Main Oscillator enable                                                  */
+/*  Argument     : Main Cscillator frequency(Hz)                                           */
+/*  Return value : 0: successfly set / 1: set error                                        */
+/*  Description  : Main Oscillator register setting                                        */
+/*                                                                                         */
+/*******************************************************************************************/
+uint32
+EnableMainOSC(uint32 clk_in)
+{
+	uint8 ampsel;
+
+	/* stop MainOSC */
+	if (write_protected_reg(MOSCE, 0x02, PNO_CtrlProt0) != UC_SUCCESS) {
+		return(UC_ERROR);
+	}
+
+	if (clk_in == CLK_MHz(8)) {
+		ampsel = 0x03;
+	}
+	else if (CLK_MHz(8) < clk_in && clk_in <= CLK_MHz(16)) {
+		ampsel = 0x02;
+	}
+	else if (CLK_MHz(16) < clk_in && clk_in <= CLK_MHz(20)) {
+		ampsel = 0x01;
+	}
+	else if (CLK_MHz(20) < clk_in && clk_in <= CLK_MHz(24)) {
+		ampsel = 0x00;
+	}
+	else {
+		return(UC_INVALIDPARAM);
+	}
+
+	sil_wrw_mem((void *) MOSCC, 0x00 | ampsel); /* Normal stabilization time mode */
+	sil_wrw_mem((void *) MOSCST, 0x00FF);       /* stabilization time -> Max */
+
+
+	/* Wait inactive */
+	while (((sil_rew_mem((void *) MOSCS)) & CLK_S_CLKEN) != 0) {
+	}
+
+	/* MainOSC start */
+	if (write_protected_reg(MOSCE, 0x01, PNO_CtrlProt0) != UC_SUCCESS) {
+		return(UC_ERROR);
+	}
+
+	/* Wait stabilization */
+	while (((sil_rew_mem((void *) MOSCS)) & CLK_S_CLKEN) == 0) {
+	}
+
+	return(UC_SUCCESS);
+} /* EnableMainOSC */
+
+/*******************************************************************************************/
+/*  Outline      : PLL enable                                                              */
+/*  Argument     : none                                                                    */
+/*  Return value : 0: successfly set / 1: set error                                        */
+/*  Description  : PLL register setting                                                    */
+/*                                                                                         */
+/*******************************************************************************************/
+uint32
+EnablePLL(void)
+{
+	/* stop PLL */
+	if (write_protected_reg(PLLE, 0x02, PNO_CtrlProt1) != UC_SUCCESS) {
+		return(UC_ERROR);
+	}
+
+	sil_wrw_mem((void *) PLLC, (PLLC_OUTBSEL << 16) | ((PLLC_mr - 1) << 11) | ((PLLC_par >> 1) << 8) | (PLLC_nr - 1));
+
+	/* start PLL */
+	if (write_protected_reg(PLLE, 0x01, PNO_CtrlProt1) != UC_SUCCESS) {
+		return(UC_ERROR);
+	}
+
+	/* Wait stabilization */
+	while (((sil_rew_mem((void *) PLLS)) & CLK_S_CLKEN) == 0) {
+	}
+
+	return(UC_SUCCESS);
+} /* EnablePLL */
+
+/*******************************************************************************************/
+/*  Outline      : Clock switcher setting                                                  */
+/*  Argument     : Selector Control reginster address                                      */
+/*                 Selector Status reginster address                                       */
+/*                 Register No                                                             */
+/*                 Select No                                                               */
+/*                 Divider Control reginster address                                       */
+/*                 Divider Status reginster address                                        */
+/*                 divider                                                                 */
+/*  Return value : 0: successfly set / 1: set error                                        */
+/*  Description  : Select clock source of CKSCLK_mn                                        */
+/*                                                                                         */
+/*******************************************************************************************/
+uint32
+SetClockSelection(uint32 s_control, uint32 s_status, uint8 regno, uint16 sel,
+				  uint32 d_control, uint32 d_status, uint8 divider)
+{
+	/* Set Selector */
+	if (write_protected_reg(s_control, sel, regno) != UC_SUCCESS) {
+		return(UC_ERROR);
+	}
+
+	/* Set Divider */
+	if (d_control != 0) {
+		if (write_protected_reg(d_control, divider, regno) != UC_SUCCESS) {
+			return(UC_ERROR);
+		}
+	}
+
+	/* Wait untile enable */
+	while (sil_rew_mem((void *) s_control) != sil_rew_mem((void *) s_status)) {
+	}
+
+	if (d_control != 0) {
+		while (sil_rew_mem((void *) d_control) != sil_rew_mem((void *) d_status)) {
+		}
+	}
+
+	return(UC_SUCCESS);
+}
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/rh850_f1l.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/rh850_f1l.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/rh850_f1l.h	(revision 117)
@@ -0,0 +1,253 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: rh850_f1l.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		RH850/F1Lのハードウェア資源の定義
+ */
+
+#ifndef TOPPERS_RH850_F1L_H
+#define TOPPERS_RH850_F1L_H
+
+#define _RH850G3K_
+
+/*
+ * 保護コマンドレジスタ
+ */
+#define PROTCMD0		0xFFF80000
+#define PROTCMD1		0xFFF88000
+#define CLMA0PCMD		0xFFF8C010
+#define CLMA1PCMD		0xFFF8D010
+#define CLMA2PCMD		0xFFF8E010
+#define PROTCMDCLMA		0xFFF8C200
+#define JPPCMD0			0xFFC204C0
+#define PPCMD0			0xFFC14C00
+#define PPCMD1			0xFFC14C04
+#define PPCMD2			0xFFC14C08
+#define PPCMD8			0xFFC14C20
+#define PPCMD9			0xFFC14C24
+#define PPCMD10			0xFFC14C28
+#define PPCMD11			0xFFC14C2C
+#define PPCMD12			0xFFC14C30
+#define PPCMD18			0xFFC14C48
+#define PPCMD20			0xFFC14C50
+#define PROTCMDCVM		0xFFF50100
+#define FLMDPCMD		0xFFA00004
+
+/*
+ * 保護ステータスレジスタ
+ */
+#define PROTS0			0xFFF80004
+#define PROTS1			0xFFF88004
+#define CLMA0PS			0xFFF8C014
+#define CLMA1PS			0xFFF8D014
+#define CLMA2PS			0xFFF8E014
+#define PROTSCLMA		0xFFF8C204
+#define JPPROTS0		0xFFC204B0
+#define PPROTS0			0xFFC14B00
+#define PPROTS1			0xFFC14B04
+#define PPROTS2			0xFFC14B08
+#define PPROTS8			0xFFC14B20
+#define PPROTS9			0xFFC14B24
+#define PPROTS10		0xFFC14B28
+#define PPROTS11		0xFFC14B2C
+#define PPROTS12		0xFFC14B30
+#define PPROTS18		0xFFC14B48
+#define PPROTS20		0xFFC14B50
+#define PROTSCVM		0xFFF50104
+#define FLMDPS			0xFFA00008
+
+/*
+ * 保護コマンドレジスタの番号
+ */
+#define PNO_CtrlProt0			0
+#define PNO_CtrlProt1			1
+#define PNO_ClkMonitorCtrlProt0	2
+#define PNO_ClkMonitorCtrlProt1	3
+#define PNO_ClkMonitorCtrlProt2	4
+#define PNO_ClkMonitorTestProt	5
+#define PNO_PortProt1_0			6
+#define PNO_PortProt1_1			7
+#define PNO_PortProt1_2			8
+#define PNO_PortProt1_8			9
+#define PNO_PortProt1_9			10
+#define PNO_PortProt1_10		11
+#define PNO_PortProt1_11		12
+#define PNO_PortProt1_12		13
+#define PNO_PortProt1_18		14
+#define PNO_PortProt1_20		15
+#define PNO_PortProt2			16
+#define PNO_CoreVMonitorProt	17
+#define PNO_SelfProgProt		18
+
+/*
+ *  PORTレジスタ
+ */
+#define PORT_BASE	UINT_C(0xffc10000)
+
+/* 端子機能設定  (USE)*/
+#define PMC(n)		((PORT_BASE) + 0x0400 + (n * 0x04U))         /* ポート・モード・コントロール・レジスタ */
+#define PMCSR(n)	((PORT_BASE) + 0x0900 + (n * 0x04U))         /* ポート・モード・コントロール・セット／リセット・レジスタ */
+#define PIPC(n)		((PORT_BASE) + 0x4200 + (n * 0x04U))         /* ポートIP コントロール・レジスタ */
+#define PM(n)		((PORT_BASE) + 0x0300 + (n * 0x04U))         /* ポート・モード・レジスタ */
+#define PMSR(n)		((PORT_BASE) + 0x0800 + (n * 0x04U))         /* ポート・モード・セット／リセット・レジスタ */
+#define PIBC(n)		((PORT_BASE) + 0x4000 + (n * 0x04U))         /* ポート入力バッファ・コントロール・レジスタ */
+#define PFC(n)		((PORT_BASE) + 0x0500 + (n * 0x04U))         /* ポート機能コントロール・レジスタ */
+#define PFCE(n)		((PORT_BASE) + 0x0600 + (n * 0x04U))         /* ポート機能コントロール・レジスタ */
+#define PFCAE(n)	((PORT_BASE) + 0x0A00 + (n * 0x04U))         /* ポート機能コントロール・拡張レジスタ */
+
+/* 端子データ入力／出力  (USE)*/
+#define PBDC(n)		((PORT_BASE) + 0x4100 + (n * 0x04U))         /* ポート双方向コントロール・レジスタ */
+#define PPR(n)		((PORT_BASE) + 0x0200 + (n * 0x04U))         /* ポート端子リード・レジスタ */
+#define P(n)		((PORT_BASE) + 0x0000 + (n * 0x04U))         /* ポート・レジスタ */
+#define PNOT(n)		((PORT_BASE) + 0x0700 + (n * 0x04U))         /* ポート・ノット・レジスタ */
+#define PSR(n)		((PORT_BASE) + 0x0100 + (n * 0x04U))         /* ポート・セット／リセット・レジスタ */
+
+
+/*
+ *  PLL関連のレジスタと定義
+ */
+/* Main OSC */
+#define MOSCE		0xfff81100
+#define MOSCS		0xfff81104
+#define MOSCC		0xfff81108
+#define MOSCST		0xfff8110c
+#define MOSCSTPM	0xfff81118
+
+/* Sub OSC  */
+#define SOSCE		0xfff81200
+#define SOSCS		0xfff81204
+
+/* PLL  */
+#define PLLE		0xfff89000
+#define PLLS		0xfff89004
+#define PLLC		0xfff89008
+
+#define CKSC_CPUCLKS_CTL	0xfff8a000
+#define CKSC_CPUCLKS_ACT	0xfff8a008
+#define CKSC_CPUCLKD_CTL	0xfff8a100
+#define CKSC_CPUCLKD_ACT	0xfff8a108
+
+#define MHz(n)		((n) * 1000 * 1000)
+#define CLK_MHz(num)	(num * 1000 * 1000)
+
+/* xxxS Register (USE) */
+#define CLK_S_STPACK	0x08
+#define CLK_S_CLKEN		0x04
+#define CLK_S_CLKACT	0x02
+#define CLK_S_CLKSTAB	0x01
+
+/* Return Parameter */
+#define UC_SUCCESS			0
+#define UC_ERROR			1
+#define UC_INVALIDPARAM		2
+#define UC_PROTREGERROR		3
+#define UC_CLKSTATUSERR		4
+#define UC_CLKNOTENABLE		5
+#define UC_CLKNOTACTIVE		6
+#define UC_CLKNOTSTAB		7
+
+/*
+ *  INTC
+ */
+#define INTC1_BASE	0xFFFF9000
+#define INTC2_BASE	0xFFFFA000
+
+#define INTC2_EIC	0x040
+#define INTC2_EIBD	0x880
+#define INTC2_INTNO_OFFSET	32
+
+/* intno は unsigned を想定 */
+#define EIC_ADDRESS(intno)	(intno <= 31) ? (INTC1_BASE + (intno * 2)) : (INTC2_BASE + INTC2_EIC  + ((intno - INTC2_INTNO_OFFSET) * 2))
+
+#define TMIN_INTNO	UINT_C(0)
+#define TMAX_INTNO	UINT_C(287)
+#define TNUM_INT	UINT_C(288)
+
+
+#define RLIN30_BASE	0xffcf0000
+#define RLIN31_BASE	0xffcf0040
+#define RLIN32_BASE	0xffcf0080
+#define RLIN33_BASE	0xffcf00c0
+#define RLIN34_BASE	0xffcf0100
+#define RLIN35_BASE	0xffcf0140
+
+/*
+ *  INTNO
+ */
+#define RLIN31_TX_INTNO		UINT_C(113)
+#define RLIN31_RX_INTNO		UINT_C(114)
+#define RLIN32_TX_INTNO		UINT_C(157)
+#define RLIN32_RX_INTNO		UINT_C(158)
+#define RLIN32_ER_INTNO		UINT_C(159)
+#define RLIN35_TX_INTNO		UINT_C(229)
+#define RLIN35_RX_INTNO		UINT_C(230)
+#define RLIN35_ER_INTNO		UINT_C(231)
+
+#define TAUFJ0I0_INTNO		UINT_C(72)
+#define TAUFJ0I1_INTNO		UINT_C(73)
+#define TAUFJ0I2_INTNO		UINT_C(74)
+#define TAUFJ0I3_INTNO		UINT_C(75)
+#define TAUFJ1I0_INTNO		UINT_C(160)
+#define TAUFJ1I1_INTNO		UINT_C(161)
+#define TAUFJ1I2_INTNO		UINT_C(162)
+#define TAUFJ1I3_INTNO		UINT_C(163)
+
+#ifndef TOPPERS_MACRO_ONLY
+
+extern uint32 EnableSubOSC(void);
+
+extern uint32 EnableMainOSC(uint32 clk_in);
+
+extern uint32 EnablePLL(void);
+
+extern uint32	SetClockSelection(uint32 s_control, uint32 s_status, uint8 regno, uint16 sel,
+								  uint32 d_control, uint32 d_status, uint8 divider);
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+
+#include "v850.h"
+
+#endif /* TOPPERS_RH850_F1L_H */
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/rh850_f1l_2m.ld
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/rh850_f1l_2m.ld	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/rh850_f1l_2m.ld	(revision 117)
@@ -0,0 +1,107 @@
+/*
+ *	RH850/F1L-2Mリンカスクリプト
+ */
+
+MEMORY
+{
+	INTROM(raxi) : org = 0x00000000, len = 2M
+	INTRAM(wax)  : org = 0xFEDE0000, len = 128k
+};
+
+PROVIDE(_hardware_init_hook = 0);
+PROVIDE(_software_init_hook = 0);
+PROVIDE(_software_term_hook = 0);
+
+PROVIDE(StartupHook = 0);
+PROVIDE(ShutdownHook = 0);
+PROVIDE(PreTaskHook = 0);
+PROVIDE(PostTaskHook = 0);
+PROVIDE(ErrorHook = 0);
+PROVIDE(ProtectionHook = 0);
+
+PROVIDE(_bsssecinib_table = 0);
+PROVIDE(_tnum_bsssec = 0);
+PROVIDE(_datasecinib_table = 0);
+PROVIDE(_tnum_datasec = 0);
+
+OUTPUT_FORMAT("elf32-v850-rh850", "elf32-v850-rh850",
+	      "elf32-v850-rh850")
+OUTPUT_ARCH(v850-rh850)
+STARTUP(start.o)
+SECTIONS
+{
+	.text :	
+	{
+		__text = . ;
+		__tp = . ;
+		*(.reset.text)
+		*(.text)
+		_etext = . ;
+	} > INTROM
+
+	.call_table_data ALIGN (4) :
+	{
+	PROVIDE(__ctbp = .);
+	*(.call_table_data)
+	} > INTROM
+	
+	.call_table_text :
+	{
+	*(.call_table_text)
+	} > INTROM
+	
+	. = ALIGN(4);
+	.rodata : { *(.rodata) } > INTROM
+
+	_textend = .;
+
+	. = ALIGN(4);
+	__idata_start = . ;
+
+	.data	:  AT(__idata_start) 
+	{
+		. = ALIGN(4);
+		__data_start = . ;
+		*(.data)
+		. = ALIGN(4);
+		_edata	=  . ;
+	} > INTRAM
+
+	__idata_end = __idata_start + SIZEOF(.data);
+	
+	.bss	   :
+	{
+	  . = ALIGN(4);
+	  __bss_start = .;
+	  *(.bss)
+	  *(COMMON)
+	  . = ALIGN(4);
+	  __bss_end = .;
+	} > INTRAM
+	
+	.sdata ALIGN (4) :
+	{
+		PROVIDE (__gp = . + 0x8000);
+		*(.sdata)
+	} > INTRAM
+	
+	.tdata ALIGN (4) :
+	{
+		PROVIDE (__ep = .);
+		*(.tbyte)
+		*(.tcommon_byte)
+		*(.tdata)
+		*(.tbss)
+		*(.tcommon)
+	} > INTRAM
+	
+	.comment 0 : { *(.comment) }	
+	.debug			0 : { *(.debug) }
+	.line			0 : { *(.line) }
+	.debug_srcinfo	0 : { *(.debug_srcinfo) }
+	.debug_sfnames	0 : { *(.debug_sfnames) }
+	.debug_aranges	0 : { *(.debug_aranges) }
+	.debug_pubnames 0 : { *(.debug_pubnames) }	
+}
+/* provide a pointer for the stack */
+ 
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/start.S
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/start.S	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/start.S	(revision 117)
@@ -0,0 +1,242 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2013 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2013 by FUJISOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by FUJITSU VLSI LIMITED, JAPAN
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2013 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2013 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2013 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2013 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2013 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013 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プロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: start.S 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		カーネル対応のスタートアップモジュール（V850用）
+ */
+
+#define OMIT_INCLUDE_OS_CFG		/* Os_Cfg.hインクルード抑止 */
+
+#include <v850asm.inc>
+
+	.section .text_kernel
+	.align  4
+	.global __start
+    .extern _bsssecinib_table
+    .extern _tnum_bsssec
+    .extern _datasecinib_table
+    .extern _tnum_datasec
+    .extern _syscall_table
+FLABEL(__start)
+	di                                  /* 割り込み禁止 */
+
+	/*
+	 * 各種ポインタの初期化(SP/TP/EP/GP/CTBP)
+	 */
+	Lea     __ostkpt, r3
+	ld.w	0[r3],r3
+    /* =begin modified for SC3 */
+    /*
+     * ep, ctbpはとりあえず使用しない
+     * tp, gpはsdataアクセスでコンパイラが使用する
+     */
+	Lea		__tp, tp 
+	/* Lea		__ep , ep */
+	Lea 	__gp , gp
+	/* Lea		__ctbp , r6 */
+	/* ldsr	r6 , 20 */
+    /*
+     *  syscallの動作設定
+     */
+#ifdef __v850e2v3__
+    mov     SYSCALL_SIZE, r6
+    ldsr    r6, sccfg
+    Lea     _syscall_table, r6
+    ldsr    r6, scbp
+#elif defined(__v850e3v5__)
+    mov     SYSCALL_SIZE, r6
+    ldsr    r6, 11, 1
+    Lea     _syscall_table, r6
+    ldsr    r6, 12, 1
+    syncp
+#endif /* __v850e2v3__ */
+
+    /* =end modified for SC3 */
+
+#ifdef TOPPERS_USE_HFLOAT
+	/* 
+	 *  FPUを有効に
+	 */
+	stsr psw, r12       /* load psw */
+	mov  0x00010000,r13 /* PSW.CU0(PSW[16]) = 1 */
+	or   r13, r12
+	ldsr r12, psw       /* store psw */
+#endif /* TOPPERS_USE_HFLOAT */
+ 	
+	/*
+	 *  hardware_init_hook の呼出し（0 でない場合）
+	 *
+	 *  ターゲットハードウェアに依存して必要な初期化処理がある場合
+	 *  は，hardware_init_hook という関数を用意する．
+	 */
+	Lea		_hardware_init_hook, r1
+	cmp		r0, r1
+	be		hardware_init_hook_end
+	jarl	_hardware_init_hook, lp
+FLABEL(hardware_init_hook_end)
+	
+	/*
+	 *  BSSセクション初期化
+     *  r0: ゼロレジスタ
+	 */
+    mov     r0, r6                  /* r6: テーブルのインデックス i */
+    Lea     _tnum_bsssec, r7
+    ld.w    0[r7], r7               /* r7: テーブルの要素数 num */
+    Lea     _bsssecinib_table, r8   /* r8: テーブルのアドレス */
+FLABEL(bss_clear_start)
+    cmp     r7, r6                  /* ループ終了条件: i >= num */
+    bnl     bss_clear_end
+    ld.w    0[r8], ep               /* ep: bssの先頭番地 */
+    ld.w    4[r8], r9               /* r9: bssの終了番地 */
+	cmp     r9, ep                  /* bssが空か？ */
+	bnl 	bss_clear_start_hook    /* 空ならば次のbssへ */
+    nop
+FLABEL(bss_clear_body)
+    /*
+     *  bssの領域は，4byte境界にアラインされている
+     *  よって，4byteずつデータをコピーしている
+     */
+	sst.w   r0, 0[ep]           /* bssの領域を0で初期化 */
+	add     4, ep              /* 次の番地へ */
+	cmp     r9, ep              /* bssの終了番地まで来たか？ */
+	bl      bss_clear_body      /* 終了番地でなければループ */
+#ifdef BSSSEC_ALIGN_MASK
+    /*
+     *  境界になるまで初期化を続ける
+     */
+    mov     BSSSEC_ALIGN_MASK, r10
+FLABEL(bss_clear_body2)
+    tst     r10, ep         /* ep & 0xf == 0 ? */
+    bz      bss_clear_start_hook
+	sst.w	r0, 0[ep]       /* 0初期化 */
+    add     4, ep
+    jr      bss_clear_body2
+#endif /* BSSSEC_ALIGN_MASK */
+    nop
+FLABEL(bss_clear_start_hook)
+    add     8, r8 /* テーブルのアドレスをインクリメント 4byte * 2 -> 8 */
+    add     1, r6 /* テーブルのインデックスをインクリメント: i++ */
+    br      bss_clear_start
+    nop
+FLABEL(bss_clear_end)
+
+#ifndef OMIT_DATA_INIT
+	/*
+	 *  dataセクションの初期化（ROM化対応）
+	 *
+	 */
+    mov     r0, r6                  /* r6: テーブルのインデックス i */
+    Lea     _tnum_datasec, r7
+    ld.w    0[r7], r7               /* r7: テーブルの要素数 num */
+    Lea     _datasecinib_table, r8  /* r8: テーブルのアドレス */
+FLABEL(data_init_start)
+    cmp     r7, r6                  /* ループ終了条件: i >= num */
+    bnl     data_init_end
+    ld.w    0[r8], ep               /* ep : dataの先頭番地 */
+    ld.w    4[r8], r9               /* r9 : dataの終了番地 */
+    ld.w    8[r8], r2               /* r2: idataの終了番地 */
+	cmp     r9, ep                  /* dataが空か？ */
+	bnl 	data_init_start_hook    /* 空ならば次のdataへ */
+    nop
+FLABEL(data_init_body)
+	ld.b	0[r2], r10      /* idataの値をロード */
+	sst.b	r10, 0[ep]      /* idataの値をdataのアドレスへストア */
+	add		1, ep           /* dataの次の番地へ */
+	add		1, r2           /* idataの次の番地へ */
+    cmp     r9, ep          /* dataの終了番地まで来たか？ */
+    bl      data_init_body  /* 終了番地でなければループ */
+#ifdef DATASEC_ALIGN_MASK
+    /*
+     *  境界になるまで初期化を続ける
+     */
+    mov     DATASEC_ALIGN_MASK, r10
+FLABEL(data_init_body2)
+    tst     r10, ep         /* ep & 0xf == 0 ? */
+    bz      data_init_start_hook
+	sst.b	r0, 0[ep]       /* 0初期化 */
+    add     1, ep
+    jr      data_init_body2
+#endif /* DATASEC_ALIGN_MASK */
+    nop
+FLABEL(data_init_start_hook)        
+    add     12, r8  /* テーブルのアドレスをインクリメント 4byte * 3 -> 12 */
+    add     1, r6   /* テーブルのインデックスをインクリメント: i++ */
+	br		data_init_start         
+    nop
+FLABEL(data_init_end)
+#endif /* OMIT_DATA_INIT */
+
+	/*
+	 *  software_init_hook を呼出し（0 でない場合）
+	 *
+	 *  ソフトウェア環境（特にライブラリ）に依存して必要な初期化処
+	 *  理がある場合は，software_init_hook という関数を用意すれば
+	 *  よい．
+	 */
+
+	Lea		_software_init_hook, r1
+	cmp		r0, r1
+	be		software_init_hook_end
+	jarl	_software_init_hook, r31
+FLABEL(software_init_hook_end)
+
+	/*
+	 *  カーネルを起動する．
+	 */
+	jarl    _target_hardware_initialize, r31
+	jarl    _main, r31
+	halt
+
+	.end
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/taua_timer.arxml
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/taua_timer.arxml	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/taua_timer.arxml	(revision 117)
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="EUC-JP"?>
+<!-- Generated by ABREX Ver. 1.0.0 -->
+<AUTOSAR xmlns="http://autosar.org/schema/r4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://autosar.org/schema/r4.0 AUTOSAR_4-0-3_STRICT.xsd">
+  <AR-PACKAGES>
+    <AR-PACKAGE>
+      <SHORT-NAME>Ecuc</SHORT-NAME>
+      <ELEMENTS>
+        <ECUC-MODULE-CONFIGURATION-VALUES>
+          <SHORT-NAME>Os</SHORT-NAME>
+          <DEFINITION-REF DEST="ECUC-MODULE-DEF">/AUTOSAR/EcucDefs/Os</DEFINITION-REF>
+          <ECUC-DEF-EDITION>4.2.0</ECUC-DEF-EDITION>
+          <IMPLEMENTATION-CONFIG-VARIANT>VARIANT-PRE-COMPILE</IMPLEMENTATION-CONFIG-VARIANT>
+          <CONTAINERS>
+            <ECUC-CONTAINER-VALUE>
+              <SHORT-NAME>TRUSTED_OSAP_for_SysTimerCnt</SHORT-NAME>
+              <DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication</DEFINITION-REF>
+              <PARAMETER-VALUES>
+                <ECUC-NUMERICAL-PARAM-VALUE>
+                  <DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsTrusted</DEFINITION-REF>
+                  <VALUE>true</VALUE>
+                </ECUC-NUMERICAL-PARAM-VALUE>
+              </PARAMETER-VALUES>
+              <REFERENCE-VALUES>
+                <ECUC-REFERENCE-VALUE>
+                  <DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppIsrRef</DEFINITION-REF>
+                  <VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/target_timer_hdr</VALUE-REF>
+                </ECUC-REFERENCE-VALUE>
+                <ECUC-REFERENCE-VALUE>
+                  <DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppCounterRef</DEFINITION-REF>
+                  <VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/SysTimerCnt</VALUE-REF>
+                </ECUC-REFERENCE-VALUE>
+              </REFERENCE-VALUES>
+              <SUB-CONTAINERS>
+                <ECUC-CONTAINER-VALUE>
+                  <SHORT-NAME>OsApplicationHooks</SHORT-NAME>
+                  <DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks</DEFINITION-REF>
+                  <PARAMETER-VALUES>
+                    <ECUC-NUMERICAL-PARAM-VALUE>
+                      <DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppErrorHook</DEFINITION-REF>
+                      <VALUE>false</VALUE>
+                    </ECUC-NUMERICAL-PARAM-VALUE>
+                    <ECUC-NUMERICAL-PARAM-VALUE>
+                      <DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppShutdownHook</DEFINITION-REF>
+                      <VALUE>false</VALUE>
+                    </ECUC-NUMERICAL-PARAM-VALUE>
+                    <ECUC-NUMERICAL-PARAM-VALUE>
+                      <DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppStartupHook</DEFINITION-REF>
+                      <VALUE>false</VALUE>
+                    </ECUC-NUMERICAL-PARAM-VALUE>
+                  </PARAMETER-VALUES>
+                </ECUC-CONTAINER-VALUE>
+              </SUB-CONTAINERS>
+            </ECUC-CONTAINER-VALUE>
+            <ECUC-CONTAINER-VALUE>
+              <SHORT-NAME>target_timer_hdr</SHORT-NAME>
+              <DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsIsr</DEFINITION-REF>
+              <PARAMETER-VALUES>
+                <ECUC-NUMERICAL-PARAM-VALUE>
+                  <DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrInterruptNumber</DEFINITION-REF>
+                  <VALUE>INTNO_TIMER</VALUE>
+                </ECUC-NUMERICAL-PARAM-VALUE>
+                <ECUC-NUMERICAL-PARAM-VALUE>
+                  <DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrInterruptPriority</DEFINITION-REF>
+                  <VALUE>INTPRI_TIMER</VALUE>
+                </ECUC-NUMERICAL-PARAM-VALUE>
+                <ECUC-NUMERICAL-PARAM-VALUE>
+                  <DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrStackSize</DEFINITION-REF>
+                  <VALUE>592</VALUE>
+                </ECUC-NUMERICAL-PARAM-VALUE>
+                <ECUC-TEXTUAL-PARAM-VALUE>
+                  <DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrCategory</DEFINITION-REF>
+                  <VALUE>CATEGORY_2</VALUE>
+                </ECUC-TEXTUAL-PARAM-VALUE>
+                <ECUC-TEXTUAL-PARAM-VALUE>
+                  <DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrInterruptSource</DEFINITION-REF>
+                  <VALUE>ENABLE</VALUE>
+                </ECUC-TEXTUAL-PARAM-VALUE>
+              </PARAMETER-VALUES>
+            </ECUC-CONTAINER-VALUE>
+            <ECUC-CONTAINER-VALUE>
+              <SHORT-NAME>SysTimerCnt</SHORT-NAME>
+              <DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsCounter</DEFINITION-REF>
+              <PARAMETER-VALUES>
+                <ECUC-NUMERICAL-PARAM-VALUE>
+                  <DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterMaxAllowedValue</DEFINITION-REF>
+                  <VALUE>999U</VALUE>
+                </ECUC-NUMERICAL-PARAM-VALUE>
+                <ECUC-NUMERICAL-PARAM-VALUE>
+                  <DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterMinCycle</DEFINITION-REF>
+                  <VALUE>1</VALUE>
+                </ECUC-NUMERICAL-PARAM-VALUE>
+                <ECUC-NUMERICAL-PARAM-VALUE>
+                  <DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterTicksPerBase</DEFINITION-REF>
+                  <VALUE>1U</VALUE>
+                </ECUC-NUMERICAL-PARAM-VALUE>
+                <ECUC-TEXTUAL-PARAM-VALUE>
+                  <DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterType</DEFINITION-REF>
+                  <VALUE>SOFTWARE</VALUE>
+                </ECUC-TEXTUAL-PARAM-VALUE>
+              </PARAMETER-VALUES>
+            </ECUC-CONTAINER-VALUE>
+          </CONTAINERS>
+        </ECUC-MODULE-CONFIGURATION-VALUES>
+      </ELEMENTS>
+    </AR-PACKAGE>
+  </AR-PACKAGES>
+</AUTOSAR>
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/taua_timer.c
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/taua_timer.c	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/taua_timer.c	(revision 117)
@@ -0,0 +1,211 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by Spansion LLC, USA
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: taua_timer.c 117 2014-12-10 03:58:03Z t_ishikawa $
+ */
+
+/*
+ *		タイマドライバ（TAUA0 Timer）
+ */
+
+#include "kernel_impl.h"
+#include "target_timer.h"
+#include "taua_timer.h"
+#include "Os_Lcfg.h"
+
+/*
+ *  現在のシステム時刻（単位: ミリ秒）
+ *
+ *  厳密には，前のタイムティックのシステム時刻
+ */
+SystemTimeMsType current_time;
+
+/*
+ *	内部関数プロトタイプ宣言
+ */
+ISR(target_timer_hdr);
+
+/*
+ *  マイクロ秒単位での時刻を取得
+ */
+SystemTimeUsType
+get_tim_utime(void)
+{
+	SystemTimeUsType	utime;
+	SystemTimeMsType	mtime;
+	TickType			clock1, clock2;
+	boolean				ireq;
+	SIL_PRE_LOC;
+
+	SIL_LOC_INT();
+	mtime = current_time;
+	clock1 = target_timer_get_current();
+	ireq = target_timer_probe_int();
+	clock2 = target_timer_get_current();
+	SIL_UNL_INT();
+	utime = ((SystemTimeUsType) mtime) * 1000U;
+
+	if ((ireq != FALSE) && (clock2 >= clock1)) {
+		/*
+		 *  割込みが入っており，clock2の方がclock1の方が大きいまたは等しい場合は，
+		 *  current_time が割込みにより更新されていないかつ，clock1はオーバフロー後
+		 *  の値であるため，utimeに1m追加する．clock1の読み込み，割込みのチェック，
+		 *  clock2の読み込みが1μs以下で実行可能なプロセッサも存在するため，等号付き
+		 *  で比較している．
+		 */
+		utime += 1000U;
+	}
+	utime += TO_USEC(clock1);
+
+	return(utime);
+}
+
+SystemTime100NsType
+get_tim_100ntime(void)
+{
+	SystemTime100NsType	ntime;
+	SystemTimeMsType	mtime;
+	TickType			clock1, clock2;
+	boolean				ireq;
+	SIL_PRE_LOC;
+
+	SIL_LOC_INT();
+	mtime = current_time;
+	clock1 = target_timer_get_current();
+	ireq = target_timer_probe_int();
+	clock2 = target_timer_get_current();
+	SIL_UNL_INT();
+	ntime = ((SystemTime100NsType) mtime) * 10000U;
+
+	if ((ireq != FALSE) && (clock2 >= clock1)) {
+		/*
+		 *  割込みが入っており，clock2の方がclock1の方が大きいまたは等しい場合は，
+		 *  current_time が割込みにより更新されていないかつ，clock1はオーバフロー後
+		 *  の値であるため，utimeに1m追加する．clock1の読み込み，割込みのチェック，
+		 *  clock2の読み込みが1μs以下で実行可能なプロセッサも存在するため，等号付き
+		 *  で比較している．
+		 */
+		ntime += 10000U;
+	}
+	ntime += TO_100NSEC(clock1);
+
+	return(ntime);
+}
+
+/*
+ *  タイマの起動処理
+ *
+ *  タイマはタイマ0を使用
+ */
+void
+target_timer_initialize(void)
+{
+	uint16 wk;
+	current_time = 0U;
+
+	wk = sil_reh_mem((void *) TAUA0TPS);
+	wk &= ~MCU_TAUA0_MASK_CK0;
+	wk |= MCU_TAUA0_CK0;
+	sil_wrh_mem((void *) TAUA0TPS, wk);                         /* Set prescaler value for CK0  */
+
+	sil_wrh_mem((void *) TAUA0CMOR(0), MCU_TAUA00_CMOR);        /* インターバルタイマとして使用 */
+	sil_wrb_mem((void *) TAUA0CMUR(0), MCU_TAUA00_CMUR);
+
+	sil_wrh_mem((void *) TAUA0CDR(0), TIMER_CLOCK);             /* 1ms */
+
+	wk = sil_reh_mem((void *) TAUA0TE);
+	wk |= 0x0001;                                                   /* TAUT0チャンネル０許可 */
+	sil_wrh_mem((void *) TAUA0TS, wk);                              /* カウンタ動作を許可 */
+}
+
+/*
+ *  タイマの停止処理
+ */
+void
+target_timer_terminate(void)
+{
+	uint16 wk;
+
+	/* タイマ停止 */
+	wk = sil_reh_mem((void *) TAUA0TE);
+	wk &= ~0x0001;                                          /* チャンネル0停止 */
+	sil_wrh_mem((void *) TAUA0TT, wk);                      /* カウンタ動作停止 */
+
+	/* 割込みの禁止とクリア */
+	x_disable_int(TAUA0_IRQ);
+	x_clear_int(TAUA0_IRQ);
+}
+
+/*
+ *  target_timer.arxmlを使用しない場合の対処
+ */
+#ifndef SysTimerCnt
+#define SysTimerCnt		UINT_C(0)
+#endif /* SysTimerCnt */
+
+/*
+ *  タイマ割込みハンドラ
+ */
+ISR(target_timer_hdr)
+{
+	StatusType ercd;
+
+	/* current_timeを更新する */
+	current_time++;
+
+	/*
+	 *  カウンタ加算通知処理実行
+	 */
+	ercd = IncrementCounter(SysTimerCnt);
+	/* エラーリターンの場合はシャットダウン */
+	if (ercd != E_OK) {
+		ShutdownOS(ercd);
+	}
+}
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/taua_timer.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/taua_timer.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/taua_timer.h	(revision 117)
@@ -0,0 +1,124 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by Spansion LLC, USA
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: taua_timer.h 117 2014-12-10 03:58:03Z t_ishikawa $
+ */
+
+/*
+ *		タイマドライバ（TAUA0 Timer用）
+ */
+
+#ifndef TOPPERS_TAUA0_TIMER_H
+#define TOPPERS_TAUA0_TIMER_H
+
+#include "prc_sil.h"
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  タイマ値の内部表現とマイクロ秒単位との変換
+ *
+ */
+#define TO_USEC(clock)	((((SystemTimeUsType) (clock)) * 1000U) / TIMER_CLOCK)
+
+/*
+ *  タイマ値の内部表現と100ナノ秒単位との変換
+ *
+ */
+#define TO_100NSEC(clock)	((((SystemTimeUsType) (clock)) * 10000U) / TIMER_CLOCK)
+
+/*
+ *  マイクロ秒単位での時刻を取得
+ */
+extern SystemTimeUsType get_tim_utime(void);
+
+/*
+ *  100ナノ秒単位での時刻を取得
+ */
+extern SystemTime100NsType get_tim_100ntime(void);
+
+/*
+ *  タイマの起動処理
+ *
+ *  タイマを初期化し，周期的なタイマ割込み要求を発生させる
+ */
+extern void target_timer_initialize(void);
+
+/*
+ *  タイマの停止処理
+ *
+ *  タイマの動作を停止させる
+ */
+extern void target_timer_terminate(void);
+
+/*
+ *  タイマの現在値の読出し
+ */
+LOCAL_INLINE TickType
+target_timer_get_current(void)
+{
+	TickType count;
+
+	count = sil_reh_mem((void *) (TAUA0CNT(0)));
+
+	return(TIMER_CLOCK - count);
+}
+
+/*
+ *  タイマ割込み要求のチェック
+ */
+LOCAL_INLINE boolean
+target_timer_probe_int(void)
+{
+	return(x_probe_int(TAUA0_IRQ));
+}
+
+#endif /* TOPPERS_MACRO_ONLY */
+#endif /* TOPPERS_TAUA0_TIMER_H */
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/taua_timer.yaml
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/taua_timer.yaml	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/taua_timer.yaml	(revision 117)
@@ -0,0 +1,77 @@
+#
+#  TOPPERS ATK2
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+#      Automotive Kernel Version 2
+#
+#  Copyright (C) 2013-2014 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#  Copyright (C) 2013-2014 by FUJISOFT INCORPORATED, JAPAN
+#  Copyright (C) 2013-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+#  Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
+#  Copyright (C) 2013-2014 by Sunny Giken Inc., JAPAN
+#  Copyright (C) 2013-2014 by TOSHIBA CORPORATION, JAPAN
+#  Copyright (C) 2013-2014 by Witz Corporation, JAPAN
+#
+#  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+#  $Id: taua_timer.yaml 187 2015-06-25 03:39:04Z t_ishikawa $
+#
+
+Ecuc:
+  Os:
+    TRUSTED_OSAP_for_SysTimerCnt:
+      DefinitionRef: OsApplication
+      OsTrusted: true
+      OsApplicationHooks:
+        OsAppErrorHook: false
+        OsAppShutdownHook: false
+        OsAppStartupHook: false
+      OsAppIsrRef:
+        - /Ecuc/Os/target_timer_hdr
+      OsAppCounterRef:
+        - /Ecuc/Os/SysTimerCnt
+    target_timer_hdr:
+      DefinitionRef: OsIsr
+      OsIsrInterruptNumber: INTNO_TIMER
+      OsIsrInterruptPriority: INTPRI_TIMER
+      OsIsrStackSize: 0x250
+      OsIsrCategory: CATEGORY_2
+      OsIsrInterruptSource: ENABLE
+    SysTimerCnt:
+      DefinitionRef: OsCounter
+      OsCounterMaxAllowedValue: 999U
+      OsCounterMinCycle: 1
+      OsCounterTicksPerBase: 1U
+      OsCounterType: SOFTWARE
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/tauj_hw_counter.c
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/tauj_hw_counter.c	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/tauj_hw_counter.c	(revision 117)
@@ -0,0 +1,405 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2014 by Spansion LLC, USA
+ *  Copyright (C) 2014 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: tauj_hw_counter.c 154 2015-01-28 11:33:39Z t_ishikawa $
+ */
+
+/*
+ *		以下ハードウェアカウンタプログラムのターゲット依存定義（fl850fx4用）
+ *
+ *  使用するタイマ：
+ *    差分タイマ：目的の時間を設定する時の現在時間(現在値タイマ)
+ *              と次の満了時間との相対時間をカウントすることで
+ *              目的の絶対時間に満了したこととする
+ *              count mode:count down once
+ *
+ *    現在値タイマ：カウンタ周期分のベースタイマを実現
+ *              (絶対時間をカウント)
+ *              count mode:continuous count down
+ *
+ *    また上記のタイマは32bitのダウンカウンタタイマである
+ *
+ *  制御方針：
+ *
+ *   現在値タイマはユーザ定義カウンタ最大値2倍+1までカウントし，
+ *   周期タイマとして連続カウントダウンして，常に現在時刻を
+ *   取得する．割込み発生する必要がないため，割込みなしモード
+ *
+ *   差分タイマは，満了処理を行うため，割込みありモードで動く
+ *   アラームなどの満了点とタイマー1で示した現在時刻の差を
+ *   現在値タイマに設定する
+ *
+ *  ポイント：
+ *   満了処理は，現在時刻を影響しないため，現在値タイマを設けている
+ *
+ */
+
+#include "Os.h"
+#include "prc_sil.h"
+#include "target_hw_counter.h"
+
+/*
+ *  =begin ハードウェアカウンタのTAUJn依存部
+ */
+/*
+ *  ハードウェアカウンタの初期化
+ *   n_d  : 差分タイマのユニット番号
+ *   ch_d : 差分タイマのチャネル
+ *   n_c  : 現在値タイマのユニット番号
+ *   ch_c : 現在値タイマのチャネル
+ */
+static void
+init_hwcounter_tauj(uint8 n_d, uint8 ch_d, uint8 n_c, uint8 ch_c, TickType maxval, TimeType nspertick, TickRefType cycle)
+{
+	uint16	wk;
+	*cycle = maxval;
+
+	/* assert((tauj_id + 1) < TAUJ_MAX); */
+
+	/* 差分タイマ停止処理 */
+	SetTimerStopTAUJ(n_d, ch_d);
+	/* 割込み禁止 */
+	HwcounterDisableInterrupt(TAUJ_INTNO(n_d, ch_d));
+	/* 割込み要求クリア */
+	HwcounterClearInterrupt(TAUJ_INTNO(n_d, ch_d));
+
+	/* 差分タイマのプリスケーラを設定 PCLK/2^0 */
+	wk = sil_reh_mem((void *) TAUJTPS(n_d));
+	wk &= MCU_TAUJ_MASK_CK0;
+	wk |= MCU_TAUJ_CK0_0;
+	sil_wrh_mem((void *) TAUJTPS(n_d), wk);
+
+	/* 現在値タイマのプリスケーラを設定 PCLK/2^0 */
+	wk = sil_reh_mem((void *) TAUJTPS(n_c));
+	wk &= MCU_TAUJ_MASK_CK0;
+	wk |= MCU_TAUJ_CK0_0;
+	sil_wrh_mem((void *) TAUJTPS(n_c), wk);
+
+	/* 差分タイマをインターバルタイマとして設定 */
+	sil_wrh_mem((void *) TAUJCMOR(n_d, ch_d), MCU_TAUJ00_CMOR);
+	sil_wrb_mem((void *) TAUJCMUR(n_d, ch_d), MCU_TAUJ00_CMUR);
+
+	/* 現在値タイマ停止処理 */
+	SetTimerStopTAUJ(n_c, ch_c);
+	/* 割込み禁止 */
+	HwcounterDisableInterrupt(TAUJ_INTNO(n_c, ch_c));
+	/* 割込み要求クリア */
+	HwcounterClearInterrupt(TAUJ_INTNO(n_c, ch_c));
+
+	/* 現在値タイマをインターバルタイマとして設定 */
+	sil_wrh_mem((void *) TAUJCMOR(n_c, ch_c), MCU_TAUJ00_CMOR);
+	sil_wrb_mem((void *) TAUJCMUR(n_c, ch_c), MCU_TAUJ00_CMUR);
+
+	/* タイマカウント周期設定 */
+	sil_wrw_mem((void *) TAUJCDR(n_c, ch_c), maxval);
+}
+/*
+ *  ハードウェアカウンタの開始
+ */
+static void
+start_hwcounter_tauj(uint8 n_c, uint8 ch_c)
+{
+	/* 現在値タイマ開始 */
+	SetTimerStartTAUJ(n_c, ch_c);
+}
+
+/*
+ *  ハードウェアカウンタの停止
+ *   n_d  : 差分タイマのユニット番号
+ *   ch_d : 差分タイマのチャネル
+ *   n_c  : 現在値タイマのユニット番号
+ *   ch_c : 現在値タイマのチャネル  
+ */
+static void
+stop_hwcounter_tauj(uint8 n_d, uint8 ch_d, uint8 n_c, uint8 ch_c)
+{
+	/* 差分タイマの停止 */
+	SetTimerStopTAUJ(n_d, ch_d);
+
+	/* 差分タイマの割込み禁止 */
+	HwcounterDisableInterrupt(TAUJ_INTNO(n_d, ch_d));
+	/* 差分タイマの割込み要求のクリア */
+	HwcounterClearInterrupt(TAUJ_INTNO(n_d, ch_d));
+
+	/* 現在値タイマの停止 */
+	SetTimerStopTAUJ(n_c, ch_c);
+
+	/* 現在値タイマの割込み禁止 */
+	/* HwcounterDisableInterrupt(TAUJ_INTNO(tauj_id + 1)); */
+	/* 現在値タイマの割込み要求のクリア */
+	HwcounterClearInterrupt(TAUJ_INTNO(n_c, ch_c));
+}
+
+/*
+ *  ハードウェアカウンタへの満了時間の設定
+ *   n_d  : 差分タイマのユニット番号
+ *   ch_d : 差分タイマのチャネル
+ *   n_c  : 現在値タイマのユニット番号
+ *   ch_c : 現在値タイマのチャネル    
+ */
+static void
+set_hwcounter_tauj(uint8 n_d, uint8 ch_d, uint8 n_c, uint8 ch_c, TickType exprtick, TickType maxval)
+{
+	TickType	curr_time;
+	TickType	value;
+
+	/* 差分タイマの割込み要求のクリア */
+	HwcounterClearInterrupt(TAUJ_INTNO(n_d, ch_d));
+	/* 差分タイマの割込み許可 */
+	HwcounterEnableInterrupt(TAUJ_INTNO(n_d, ch_d));
+
+	/* 現在時刻の取得 */
+	curr_time = GetCurrentTimeTAUJ(n_c, ch_c, maxval);
+
+	/* タイマに設定する値を算出	*/
+	if (exprtick >= curr_time) {
+		value = exprtick - curr_time;
+	}
+	else {
+		value = (exprtick - curr_time) + (maxval + 1U);
+	}
+
+	/*
+	 *  タイマに0x00を設定し，割込み発生後，再度0を設定した場合，2回目の
+	 *  0x00設定後の割込みは発生しないので，0x00設定値を0x01に直して設定
+	 */
+	if (value == 0x00U) {
+		value = 0x01U;
+	}
+
+	/* 差分タイマのタイマ値設定 */
+	sil_wrw_mem((void *) TAUJCDR(n_d, ch_d), (value));
+
+	/*
+	 * カウント開始
+	 */
+	SetTimerStartTAUJ(n_d, ch_d);
+}
+
+/*
+ *  ハードウェアカウンタの現在時間の取得
+ */
+static TickType
+get_hwcounter_tauj(uint8 n_c, uint8 ch_c, TickType maxval)
+{
+	return(GetCurrentTimeTAUJ(n_c, ch_c, maxval));
+}
+
+/*
+ *  ハードウェアカウンタの設定された満了時間の取消
+ */
+static void
+cancel_hwcounter_tauj(uint8 n_d, uint8 ch_d)
+{
+	/* 差分タイマの停止 */
+	SetTimerStopTAUJ(n_d, ch_d);
+}
+
+/*
+ *  ハードウェアカウンタの強制割込み要求
+ */
+static void
+trigger_hwcounter_tauj(uint8 n_d, uint8 ch_d)
+{
+	/* 差分タイマ停止 */
+	SetTimerStopTAUJ(n_d, ch_d);
+
+	/* 差分タイマの割込み要求のクリア */
+	HwcounterClearInterrupt(TAUJ_INTNO(n_d, ch_d));
+	/* 差分タイマの割込み許可 */
+	HwcounterEnableInterrupt(TAUJ_INTNO(n_d, ch_d));
+
+	/* 差分タイマカウンターに0x01をセットすることで，すぐ満了 */
+	sil_wrw_mem((void *) TAUJCDR(n_d, ch_d), (1));
+
+	/*  差分タイマ開始 */
+	SetTimerStartTAUJ(n_d, ch_d);
+}
+
+/*
+ *  割込み要求のクリア
+ */
+static void
+int_clear_hwcounter_tauj(uint8 n_d, uint8 ch_d)
+{
+	/* 割込み要求クリア */
+	HwcounterClearInterrupt(TAUJ_INTNO(n_d, ch_d));
+}
+
+/*
+ *  割込み要求のキャンセル
+ *  ペンディングされている割込み要求をキャンセル
+ */
+static void
+int_cancel_hwcounter_tauj(uint8 n_d, uint8 ch_d)
+{
+	/* 割込み要求クリア */
+	HwcounterClearInterrupt(TAUJ_INTNO(n_d, ch_d));
+}
+
+/*
+ *  ハードウェアカウンタのインクリメント
+ */
+static void
+increment_hwcounter_tauj(uint8 n_d, uint8 ch_d)
+{
+	/* 未サポート */
+	return;
+}
+/*
+ *  =end ハードウェアカウンタのTAUJn依存部
+ */
+
+
+/*
+ *  =begin MAIN_HW_COUNTERの定義
+ */
+/* カウンタの最大値の2倍+1 */
+static TickType MAIN_HW_COUNTER_maxval;
+
+/*
+ *  ハードウェアカウンタの初期化
+ */
+void
+init_hwcounter_MAIN_HW_COUNTER(TickType maxval, TimeType nspertick)
+{
+	init_hwcounter_tauj(HWC_DTIM_UNIT, HWC_DTIM_ID,
+						HWC_CTIM_UNIT, HWC_CTIM_ID,
+						maxval, nspertick, &MAIN_HW_COUNTER_maxval);
+}
+
+/*
+ *  ハードウェアカウンタの開始
+ */
+void
+start_hwcounter_MAIN_HW_COUNTER(void)
+{
+	start_hwcounter_tauj(HWC_CTIM_UNIT, HWC_CTIM_ID);
+}
+
+/*
+ *  ハードウェアカウンタの停止
+ */
+void
+stop_hwcounter_MAIN_HW_COUNTER(void)
+{
+	stop_hwcounter_tauj(HWC_DTIM_UNIT, HWC_DTIM_ID,
+						HWC_CTIM_UNIT, HWC_CTIM_ID);
+}
+
+/*
+ *  ハードウェアカウンタへの満了時間の設定
+ */
+void
+set_hwcounter_MAIN_HW_COUNTER(TickType exprtick)
+{
+	set_hwcounter_tauj(HWC_DTIM_UNIT, HWC_DTIM_ID,
+					   HWC_CTIM_UNIT, HWC_CTIM_ID,
+					   exprtick, MAIN_HW_COUNTER_maxval);
+}
+
+/*
+ *  ハードウェアカウンタの現在時間の取得
+ */
+TickType
+get_hwcounter_MAIN_HW_COUNTER(void)
+{
+	return(get_hwcounter_tauj(HWC_CTIM_UNIT, HWC_CTIM_ID,
+							  MAIN_HW_COUNTER_maxval));
+}
+
+/*
+ *  ハードウェアカウンタの設定された満了時間の取消
+ */
+void
+cancel_hwcounter_MAIN_HW_COUNTER(void)
+{
+	cancel_hwcounter_tauj(HWC_DTIM_UNIT, HWC_DTIM_ID);
+}
+
+/*
+ *  ハードウェアカウンタの強制割込み要求
+ */
+void
+trigger_hwcounter_MAIN_HW_COUNTER(void)
+{
+	trigger_hwcounter_tauj(HWC_DTIM_UNIT, HWC_DTIM_ID);
+}
+
+/*
+ *  ハードウェアカウンタの設定された満了時間の取消
+ */
+void
+int_clear_hwcounter_MAIN_HW_COUNTER(void)
+{
+	int_clear_hwcounter_tauj(HWC_DTIM_UNIT, HWC_DTIM_ID);
+}
+
+/*
+ *  ハードウェアカウンタの設定された満了時間の取消
+ */
+void
+int_cancel_hwcounter_MAIN_HW_COUNTER(void)
+{
+	int_cancel_hwcounter_tauj(HWC_DTIM_UNIT, HWC_DTIM_ID);
+}
+
+/*
+ *  ハードウェアカウンタのインクリメント
+ */
+void
+increment_hwcounter_MAIN_HW_COUNTER(void)
+{
+	increment_hwcounter_tauj(HWC_DTIM_UNIT, HWC_DTIM_ID);
+}
+
+/*
+ *  =end MAIN_HW_COUNTERの定義
+ */
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/uart.arxml
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/uart.arxml	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/uart.arxml	(revision 117)
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="EUC-JP"?>
+<!-- Generated by ABREX Ver. 1.0.0 -->
+<AUTOSAR xmlns="http://autosar.org/schema/r4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://autosar.org/schema/r4.0 AUTOSAR_4-0-3_STRICT.xsd">
+  <AR-PACKAGES>
+    <AR-PACKAGE>
+      <SHORT-NAME>Ecuc</SHORT-NAME>
+      <ELEMENTS>
+        <ECUC-MODULE-CONFIGURATION-VALUES>
+          <SHORT-NAME>Os</SHORT-NAME>
+          <DEFINITION-REF DEST="ECUC-MODULE-DEF">/AUTOSAR/EcucDefs/Os</DEFINITION-REF>
+          <ECUC-DEF-EDITION>4.2.0</ECUC-DEF-EDITION>
+          <IMPLEMENTATION-CONFIG-VARIANT>VARIANT-PRE-COMPILE</IMPLEMENTATION-CONFIG-VARIANT>
+          <CONTAINERS>
+            <ECUC-CONTAINER-VALUE>
+              <SHORT-NAME>TRUSTED_OSAP_for_RxHwSerialInt</SHORT-NAME>
+              <DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication</DEFINITION-REF>
+              <PARAMETER-VALUES>
+                <ECUC-NUMERICAL-PARAM-VALUE>
+                  <DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsTrusted</DEFINITION-REF>
+                  <VALUE>true</VALUE>
+                </ECUC-NUMERICAL-PARAM-VALUE>
+              </PARAMETER-VALUES>
+              <REFERENCE-VALUES>
+                <ECUC-REFERENCE-VALUE>
+                  <DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppIsrRef</DEFINITION-REF>
+                  <VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/RxHwSerialInt</VALUE-REF>
+                </ECUC-REFERENCE-VALUE>
+              </REFERENCE-VALUES>
+              <SUB-CONTAINERS>
+                <ECUC-CONTAINER-VALUE>
+                  <SHORT-NAME>OsApplicationHooks</SHORT-NAME>
+                  <DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks</DEFINITION-REF>
+                  <PARAMETER-VALUES>
+                    <ECUC-NUMERICAL-PARAM-VALUE>
+                      <DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppErrorHook</DEFINITION-REF>
+                      <VALUE>false</VALUE>
+                    </ECUC-NUMERICAL-PARAM-VALUE>
+                    <ECUC-NUMERICAL-PARAM-VALUE>
+                      <DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppShutdownHook</DEFINITION-REF>
+                      <VALUE>false</VALUE>
+                    </ECUC-NUMERICAL-PARAM-VALUE>
+                    <ECUC-NUMERICAL-PARAM-VALUE>
+                      <DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppStartupHook</DEFINITION-REF>
+                      <VALUE>false</VALUE>
+                    </ECUC-NUMERICAL-PARAM-VALUE>
+                  </PARAMETER-VALUES>
+                </ECUC-CONTAINER-VALUE>
+              </SUB-CONTAINERS>
+            </ECUC-CONTAINER-VALUE>
+            <ECUC-CONTAINER-VALUE>
+              <SHORT-NAME>RxHwSerialInt</SHORT-NAME>
+              <DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsIsr</DEFINITION-REF>
+              <PARAMETER-VALUES>
+                <ECUC-NUMERICAL-PARAM-VALUE>
+                  <DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrInterruptNumber</DEFINITION-REF>
+                  <VALUE>INTNO_SIO</VALUE>
+                </ECUC-NUMERICAL-PARAM-VALUE>
+                <ECUC-NUMERICAL-PARAM-VALUE>
+                  <DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrInterruptPriority</DEFINITION-REF>
+                  <VALUE>INTPRI_SIO</VALUE>
+                </ECUC-NUMERICAL-PARAM-VALUE>
+                <ECUC-NUMERICAL-PARAM-VALUE>
+                  <DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrStackSize</DEFINITION-REF>
+                  <VALUE>592</VALUE>
+                </ECUC-NUMERICAL-PARAM-VALUE>
+                <ECUC-TEXTUAL-PARAM-VALUE>
+                  <DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrCategory</DEFINITION-REF>
+                  <VALUE>CATEGORY_2</VALUE>
+                </ECUC-TEXTUAL-PARAM-VALUE>
+                <ECUC-TEXTUAL-PARAM-VALUE>
+                  <DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrInterruptSource</DEFINITION-REF>
+                  <VALUE>ENABLE</VALUE>
+                </ECUC-TEXTUAL-PARAM-VALUE>
+              </PARAMETER-VALUES>
+            </ECUC-CONTAINER-VALUE>
+          </CONTAINERS>
+        </ECUC-MODULE-CONFIGURATION-VALUES>
+      </ELEMENTS>
+    </AR-PACKAGE>
+  </AR-PACKAGES>
+</AUTOSAR>
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/uart.c
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/uart.c	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/uart.c	(revision 117)
@@ -0,0 +1,137 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by Spansion LLC, USA
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: uart.c 117 2014-12-10 03:58:03Z t_ishikawa $
+ */
+
+/*
+ *		シリアルI/Oデバイス（SIO）ドライバ（UART用）
+ */
+
+#include "Os.h"
+#include "target_serial.h"
+#include "uart.h"
+#include "Os_Lcfg.h"
+
+/*
+ *  受信用バッファ
+ */
+static uint8 rx_buf;
+
+/* 内部関数のプロトタイプ宣言 */
+LOCAL_INLINE boolean uart_getready(void);
+LOCAL_INLINE uint8 uart_getchar(void);
+
+/*
+ *  文字を受信したかチェック
+ */
+LOCAL_INLINE boolean
+uart_getready(void)
+{
+	boolean ans;
+	uint8	stat;
+	uint8	rx_tmp;
+
+	stat = sil_reb_mem((void *) URTEnSTR1);                     /* ステータスの読み込み */
+	rx_tmp = sil_reb_mem((void *) URTEnRX);                     /* 受信データを読み込み */
+
+	ans = FALSE;
+	if ((stat & 0x07) == 0)	{
+		rx_buf = rx_tmp;
+		ans = TRUE;
+	}
+	sil_wrb_mem((void *) URTEnSTC, 0x1f);                            /* ステータスクリア */
+
+	return(ans);
+}
+
+/*
+ *  受信した文字の取り出し
+ */
+LOCAL_INLINE uint8
+uart_getchar(void)
+{
+	return(rx_buf);
+}
+
+/*
+ *  初期化処理
+ */
+void
+InitHwSerial(void)
+{
+	sil_wrh_mem((void *) URTEnCTL2, URTEnCTL2_VAL);
+	sil_wrh_mem((void *) URTEnCTL1, 0x0103);        /* 8bit, LSB First */
+	sil_wrb_mem((void *) URTEnCTL0, 0x80);
+	sil_wrb_mem((void *) URTEnCTL0, 0xe0);
+}
+
+/*
+ *  シリアルI/Oポートのクローズ
+ */
+void
+TermHwSerial(void)
+{
+	/* 受信割込みの禁止 */
+	sil_wrb_mem((void *) URTEnCTL0, 0x00);
+}
+
+/*
+ *  SIOの割込みハンドラ
+ */
+ISR(RxHwSerialInt)
+{
+	if (uart_getready() != FALSE) {
+		/*
+		 *  受信通知コールバックルーチンを呼び出す
+		 */
+		RxSerialInt(uart_getchar());
+	}
+}
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/uart.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/uart.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/uart.h	(revision 117)
@@ -0,0 +1,99 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by Spansion LLC, USA
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: uart.h 117 2014-12-10 03:58:03Z t_ishikawa $
+ */
+
+/*
+ *		シリアルI/Oデバイス（SIO）ドライバ（V850 UART用）
+ */
+
+#ifndef TOPPERS_UARTL_H
+#define TOPPERS_UARTL_H
+
+#include "prc_sil.h"
+#include "target_serial.h"
+
+#ifndef TOPPERS_MACRO_ONLY
+/*
+ *  カーネルの低レベル出力用関数
+ */
+LOCAL_INLINE void uart_putc(char8 c);
+
+LOCAL_INLINE void
+uart_putc(char8 c)
+{
+	while ((sil_rew_mem((void *) (URTEnSTR0)) & 0x01) == 0x01) ;
+	sil_wrw_mem((void *) (URTEnTX), c);
+}
+
+/*
+ *  serial.c から呼び出される関数群
+ */
+
+/*
+ *  初期化処理
+ */
+extern void InitHwSerial(void);
+
+/*
+ *  終了処理
+ */
+extern void TermHwSerial(void);
+
+/*
+ *  受信コールバックハンドラ
+ */
+extern void RxSerialInt(uint8 character);
+
+extern ISR(RxHwSerialInt);
+
+#endif /* TOPPERS_MACRO_ONLY */
+#endif /* TOPPERS_UARTL_H */
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/uart.yaml
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/uart.yaml	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/uart.yaml	(revision 117)
@@ -0,0 +1,69 @@
+#
+#  TOPPERS ATK2
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+#      Automotive Kernel Version 2
+#
+#  Copyright (C) 2013-2014 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#  Copyright (C) 2013-2014 by FUJISOFT INCORPORATED, JAPAN
+#  Copyright (C) 2013-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+#  Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
+#  Copyright (C) 2013-2014 by Sunny Giken Inc., JAPAN
+#  Copyright (C) 2013-2014 by TOSHIBA CORPORATION, JAPAN
+#  Copyright (C) 2013-2014 by Witz Corporation, JAPAN
+#
+#  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+#  $Id: uart.yaml 187 2015-06-25 03:39:04Z t_ishikawa $
+#
+
+Ecuc:
+  Os:
+    TRUSTED_OSAP_for_RxHwSerialInt:
+      DefinitionRef: OsApplication
+      OsTrusted: true
+      OsApplicationHooks:
+        OsAppErrorHook: false
+        OsAppShutdownHook: false
+        OsAppStartupHook: false
+      OsAppIsrRef:
+        - /Ecuc/Os/RxHwSerialInt
+    RxHwSerialInt:
+      DefinitionRef: OsIsr
+      OsIsrInterruptNumber: INTNO_SIO
+      OsIsrInterruptPriority: INTPRI_SIO
+      OsIsrStackSize: 0x250
+      OsIsrCategory: CATEGORY_2
+      OsIsrInterruptSource: ENABLE
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/uart_rlin.c
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/uart_rlin.c	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/uart_rlin.c	(revision 117)
@@ -0,0 +1,121 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: uart_rlin.c 164 2015-06-03 01:22:29Z t_ishikawa $
+ */
+
+/*
+ *		シリアルI/Oデバイス（SIO）ドライバ（RLIN用）
+ */
+
+#include "Os.h"
+#include "target_serial.h"
+#include "uart_rlin.h"
+#include "Os_Lcfg.h"
+
+
+/* 内部関数のプロトタイプ宣言 */
+LOCAL_INLINE uint8 uart_getchar(void);
+
+/*
+ *  受信した文字の取り出し
+ */
+LOCAL_INLINE uint8
+uart_getchar(void)
+{
+	return(sil_reb_mem((void *) (RLIN3x_BASE + RLIN3xLURDRL_B)));
+}
+
+/*
+ *  初期化処理
+ */
+void
+InitHwSerial(void)
+{
+
+	/* Uart Mode を有効(ノイズフィルタも有効) */
+	sil_wrb_mem((void *) (RLIN3x_BASE + RLIN3xLMD_B), 0x31);
+
+	/* ボーレート設定 */
+	sil_wrb_mem((void *) (RLIN3x_BASE + RLIN3xLWBR_B), RLIN3xLWBR_VAL);
+	sil_wrh_mem((void *) (RLIN3x_BASE + RLIN3xLBRP01_H), RLIN3xLBRP01_VAL);
+
+	/* エラー検出許可 */
+	sil_wrb_mem((void *) (RLIN3x_BASE + RLIN3xLEDE_B), 0x0d);
+
+	/* データ フォーマット */
+	sil_wrb_mem((void *) (RLIN3x_BASE + RLIN3xLBFC_B), 0x00);
+
+	/* リセット解除 */
+	sil_wrb_mem((void *) (RLIN3x_BASE + RLIN3xLCUC_B), 0x01);
+
+	/* リセット解除待ち */
+	while (sil_reb_mem((void *) (RLIN3x_BASE + RLIN3xLMST_B)) == 0x00) {
+	}
+
+	/* 送受信動作許可 */
+	sil_wrb_mem((void *) (RLIN3x_BASE + RLIN3xLUOER_B), 0x03);
+
+	/* 受信割込み許可 */
+	sil_wrb_mem((void *) (RLIN3x_BASE + RLIN3xLIE_B), 0x02);
+}
+
+/*
+ *  シリアルI/Oポートのクローズ
+ */
+void
+TermHwSerial(void)
+{
+	/* 受信割込みの禁止 */
+	sil_wrb_mem((void *) (RLIN3x_BASE + RLIN3xLIE_B), 0x00);
+}
+
+/*
+ *  SIOの割込みハンドラ
+ */
+ISR(RxHwSerialInt)
+{
+	/*
+	 *  受信通知コールバックルーチンを呼び出す
+	 */
+	RxSerialInt(uart_getchar());
+}
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/uart_rlin.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/uart_rlin.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/uart_rlin.h	(revision 117)
@@ -0,0 +1,148 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: uart_rlin.h 164 2015-06-03 01:22:29Z t_ishikawa $
+ */
+
+/*
+ *		シリアルI/Oデバイス（SIO）ドライバ（RLIN用）
+ */
+
+#ifndef TOPPERS_UART_RLIN_H
+#define TOPPERS_UART_RLIN_H
+
+#include "prc_sil.h"
+#include "target_serial.h"
+
+#ifdef RLIN3x_USE_PORT0
+#define RLIN3x_BASE	RLIN30_BASE
+#elif  defined(RLIN3x_USE_PORT1)
+#define RLIN3x_BASE	RLIN31_BASE
+#elif  defined(RLIN3x_USE_PORT2)
+#define RLIN3x_BASE	RLIN32_BASE
+#elif  defined(RLIN3x_USE_PORT3)
+#define RLIN3x_BASE	RLIN33_BASE
+#elif  defined(RLIN3x_USE_PORT4)
+#define RLIN3x_BASE	RLIN34_BASE
+#elif  defined(RLIN3x_USE_PORT5)
+#define RLIN3x_BASE	RLIN35_BASE
+#else
+#error please define RLIN3x port number.
+#endif /* RLIN3x_USE_PORT0 */
+
+#define RLIN3xLWBR_B		0x00000001
+#define RLIN3xLBRP01_H		0x00000002
+#define RLIN3xLBRP0_B		0x00000002
+#define RLIN3xLBRP1_B		0x00000003
+#define RLIN3xLSTC_B		0x00000004
+#define RLIN3xLMD_B			0x00000008
+#define RLIN3xLBFC_B		0x00000009
+#define RLIN3xLSC_B			0x0000000a
+#define RLIN3xLWUP_B		0x0000000b
+#define RLIN3xLIE_B			0x0000000c
+#define RLIN3xLEDE_B		0x0000000d
+#define RLIN3xLCUC_B		0x0000000e
+#define RLIN3xLTRC_B		0x00000010
+#define RLIN3xLMST_B		0x00000011
+#define RLIN3xLST_B			0x00000012
+#define RLIN3xLEST_B		0x00000013
+#define RLIN3xLDFC_B		0x00000014
+#define RLIN3xLIDB_B		0x00000015
+#define RLIN3xLCBR_B		0x00000016
+#define RLIN3xLUDB0_B		0x00000017
+#define RLIN3xLDBR1_B		0x00000018
+#define RLIN3xLDBR2_B		0x00000019
+#define RLIN3xLDBR3_B		0x0000001a
+#define RLIN3xLDBR4_B		0x0000001b
+#define RLIN3xLDBR5_B		0x0000001c
+#define RLIN3xLDBR6_B		0x0000001d
+#define RLIN3xLDBR7_B		0x0000001e
+#define RLIN3xLDBR8_B		0x0000001f
+#define RLIN3xLUOER_B		0x00000020
+#define RLIN3xLUOR1_B		0x00000021
+#define RLIN3xLUTDR_H		0x00000024
+#define RLIN3xLUTDRL_B		0x00000024
+#define RLIN3xLUTDRH_B		0x00000025
+#define RLIN3xLURDR_H		0x00000026
+#define RLIN3xLURDRL_B		0x00000026
+#define RLIN3xLURDRH_B		0x00000027
+#define RLIN3xLUWTDR_H		0x00000028
+#define RLIN3xLUWTDRL_B		0x00000028
+#define RLIN3xLUWTDRH_B		0x00000029
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  カーネルの低レベル出力用関数
+ */
+LOCAL_INLINE void uart_putc(char8 c);
+
+LOCAL_INLINE void
+uart_putc(char8 c)
+{
+	while ((sil_reb_mem((void *) (RLIN3x_BASE + RLIN3xLST_B)) & 0x10) == 0x10) ;
+	sil_wrb_mem((void *) (RLIN3x_BASE + RLIN3xLUTDRL_B), c);
+}
+
+/*
+ *  serial.c から呼び出される関数群
+ */
+
+/*
+ *  初期化処理
+ */
+extern void InitHwSerial(void);
+
+/*
+ *  終了処理
+ */
+extern void TermHwSerial(void);
+
+/*
+ *  受信コールバックハンドラ
+ */
+extern void RxSerialInt(uint8 character);
+
+extern ISR(RxHwSerialInt);
+
+#endif /* TOPPERS_MACRO_ONLY */
+#endif /* TOPPERS_UART_RLIN_H */
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/v850.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/v850.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/v850.h	(revision 117)
@@ -0,0 +1,184 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by Spansion LLC, USA
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: v850.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		V850のハードウェア資源の定義（開発環境共通）
+ */
+
+#ifndef TOPPERS_V850_H
+#define TOPPERS_V850_H
+
+#ifdef __v850e2v3__
+
+#ifdef _V850E2M_
+#define TNUM_INTPRI	16
+#elif defined(_V850E2S_)
+#define TNUM_INTPRI	8
+#else
+#error please define ether _V850E2M_ or _V850E2S_
+#endif /* _V850E2M_ */
+
+/*
+ *  V850E2用の割込みコントローラ操作ルーチン
+ */
+#ifndef TOPPERS_MACRO_ONLY
+
+#include "prc_sil.h"
+
+LOCAL_INLINE void
+set_pmr(uint16 pmr)
+{
+	sil_wrh_mem((void *) PMR, pmr);
+	SYNCM;
+}
+
+LOCAL_INLINE uint16
+get_ispr(void)
+{
+	return(sil_reh_mem((void *) ISPR_H));
+}
+
+LOCAL_INLINE void
+clear_ispr(void)
+{
+	sil_wrh_mem((void *) ISPC_H, 0xffff);
+	sil_wrh_mem((void *) ISPR_H, 0x0000);
+}
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#define FE_MIP 0x430U
+#define FE_MDP 0x431U
+#define FE_PPI 0x432U
+#define FE_TSI 0x433U
+
+#elif defined(__v850e3v5__)
+
+#ifdef _RH850G3M_
+#define TNUM_INTPRI	16
+#elif defined(_RH850G3K_)
+#define TNUM_INTPRI	8
+#else
+#error please define ether _RH850G3M_ or _RH850G3K_
+#endif /* _RH850G3M_ */
+
+#define FE_MIP 0x90U
+#define FE_MDP 0x91U
+
+#else /* __v850e3v5__ */
+#error please define ether __v850e2v3__ or __v850e3v5__
+#endif /* __v850e2v3__ */
+
+/*
+ *  V850E2M システムレジスタ
+ */
+ 
+#define FEIC	14
+#define SCBP	12
+#define SCCFG	11
+#define VMTID	 5
+#define VMADR	 6
+
+#define IPA0L	 6
+#define IPA0U	 7
+#define IPA1L	 8
+#define IPA1U	 9
+#define IPA2L	10
+#define IPA2U	11
+#define IPA3L	12
+#define IPA3U	13
+#define IPA4L	14
+#define IPA4U	15
+
+#define DPA0L	16
+#define DPA0U	17
+#define DPA1L	18
+#define DPA1U	19
+#define DPA2L	20
+#define DPA2U	21
+#define DPA3L	22
+#define DPA3U	23
+#define DPA4L	24
+#define DPA4U	25
+#define DPA5L	26
+#define DPA5U	27
+
+#define MCA		24
+#define MCS		25
+#define MCC		26
+#define MCR		27
+
+#define MPM		 0
+
+#define BSEL	31
+
+#ifdef __v850e2v3__
+#define PSW_SV  16
+#define FE_MP_MASK 0x43e
+#define FE_MP_BIT  0x430
+
+#elif defined(__v850e3v5__)
+#define PSW_SV  2
+#define FE_MP_MASK 0x9e
+#define FE_MP_BIT  0x90
+#define MPAT_E  0x80    /* 有効 */
+#define MPAT_G  0x40    /* ASIDを無視 */
+#define MPAT_UX 0x04    /* ユーザ実行 */
+#define MPAT_UW 0x02    /* ユーザ書込 */
+#define MPAT_UR 0x01    /* ユーザ読出 */
+
+#else /* __v850e3v5__ */
+#error please define ether __v850e2v3__ or __v850e3v5__
+#endif /* __v850e2v3__ */
+
+#endif /* TOPPERS_V850_H */
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/v850asm.inc
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/v850asm.inc	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/v850asm.inc	(revision 117)
@@ -0,0 +1,127 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by Spansion LLC, USA
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: v850asm.inc 117 2014-12-10 03:58:03Z t_ishikawa $
+ */
+
+/*
+ *  V850アセンブラ用定義ファイル
+ */
+#define TOPPERS_MACRO_ONLY
+#define UINT_C(val)			(val)		/* 符号無し整数型の定数を作るマクロ */
+#define CAST(type, val)		(val)		/* 型キャストを行うマクロ */
+
+#include "kernel_impl.h"
+
+/*
+ * アセンブラマクロ内での引数の参照
+ */
+#define AMARG(name)  \name
+
+	/*
+	 * ラベルロード Lea (Load Effective Address)
+	 */
+	.macro	Lea name, destination
+	mov	hilo(\name), \destination
+	.endm
+
+	/*
+	 * ラベル宣言 Flabel
+	 *
+	 *   関数名として使うラベル割付を行う
+	 */
+	.macro	Flabel name
+	.type	\name,@function
+\name:
+	.endm
+
+#define FLABEL(name) Flabel name
+
+	/*
+	 * スタック操作 - プッシュ
+	 */
+	
+	.macro	Push source
+	add	-4, sp
+	st.w	\source, 0[sp]
+	.endm
+	
+	/*
+	 * スタック操作 - ポップ
+	 */
+	
+	.macro	Pop dest
+	ld.w	0[sp], \dest
+	add	4, sp
+	.endm
+
+	/*
+	 * 割り込み禁止
+	 */
+	.macro	X_LOCK_ALL_INT reg1 reg2
+	ld.w	PMR, \reg1
+	ld.w	0xffff, \reg2
+	and		\reg2, \reg1
+	st.w	\reg2
+	.endm
+
+/*
+ *  全割込み禁止マクロ
+ */
+.macro LOCK_ALL_INT
+    di
+.endm
+
+/*
+ *  全割込み禁止解除マクロ
+ */
+.macro UNLOCK_ALL_INT
+    ei
+.endm
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/v850e2_fg4_1m.ld
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/v850e2_fg4_1m.ld	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/v850e2_fg4_1m.ld	(revision 117)
@@ -0,0 +1,108 @@
+/*
+ *	V850E2/FG4-1Mリンカスクリプト
+ */
+
+MEMORY
+{
+	INTROM(raxi) : org = 0x00000000, len = 1M
+	INTRAM(wax)  : org = 0xFEDEC000, len = 80k
+};
+
+PROVIDE(hardware_init_hook = 0);
+PROVIDE(software_init_hook = 0);
+PROVIDE(software_term_hook = 0);
+
+PROVIDE(_StartupHook = 0);
+PROVIDE(_ShutdownHook = 0);
+PROVIDE(_PreTaskHook = 0);
+PROVIDE(_PostTaskHook = 0);
+PROVIDE(_ErrorHook = 0);
+PROVIDE(_ProtectionHook = 0);
+
+
+OUTPUT_FORMAT("elf32-v850-rh850", "elf32-v850-rh850",
+	      "elf32-v850-rh850")
+OUTPUT_ARCH(v850-rh850)
+STARTUP(start.o)
+ENTRY(__reset)
+SECTIONS
+{
+	.vector : AT(0)
+	{
+		*(.vector)
+	} > INTROM
+
+	.text :	
+	{
+		__text = . ;
+		__tp = . ;
+		*(.text)
+		_etext = . ;
+	} > INTROM
+
+	.call_table_data ALIGN (4) :
+	{
+	PROVIDE(__ctbp = .);
+	*(.call_table_data)
+	} > INTROM
+	
+	.call_table_text :
+	{
+	*(.call_table_text)
+	} > INTROM
+	
+	. = ALIGN(4);
+	.rodata : { *(.rodata) } > INTROM
+
+	_textend = .;
+
+	. = ALIGN(4);
+	__idata_start = . ;
+
+	.data	:  AT(__idata_start) 
+	{
+		. = ALIGN(4);
+		__data_start = . ;
+		*(.data)
+		. = ALIGN(4);
+		_edata	=  . ;
+	} > INTRAM
+
+	__idata_end = __idata_start + SIZEOF(.data);
+	
+	.bss	   :
+	{
+	  . = ALIGN(4);
+	  __bss_start = .;
+	  *(.bss)
+	  *(COMMON)
+	  . = ALIGN(4);
+	  __bss_end = .;
+	} > INTRAM
+	
+	.sdata ALIGN (4) :
+	{
+		PROVIDE (__gp = . + 0x8000);
+		*(.sdata)
+	} > INTRAM
+	
+	.tdata ALIGN (4) :
+	{
+		PROVIDE (__ep = .);
+		*(.tbyte)
+		*(.tcommon_byte)
+		*(.tdata)
+		*(.tbss)
+		*(.tcommon)
+	} > INTRAM
+	
+	.comment 0 : { *(.comment) }	
+	.debug			0 : { *(.debug) }
+	.line			0 : { *(.line) }
+	.debug_srcinfo	0 : { *(.debug_srcinfo) }
+	.debug_sfnames	0 : { *(.debug_sfnames) }
+	.debug_aranges	0 : { *(.debug_aranges) }
+	.debug_pubnames 0 : { *(.debug_pubnames) }	
+}
+/* provide a pointer for the stack */
+ 
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/v850e2_fg4_l_384k.ld
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/v850e2_fg4_l_384k.ld	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/v850e2_fg4_l_384k.ld	(revision 117)
@@ -0,0 +1,107 @@
+/*
+ *	V850E2/FG4-L-384Kリンカスクリプト
+ */
+
+MEMORY
+{
+	INTROM(raxi) : org = 0x00000000, len = 384K
+	INTRAM(wax)  : org = 0xFEDF9000, len = 28k
+};
+
+PROVIDE(hardware_init_hook = 0);
+PROVIDE(software_init_hook = 0);
+PROVIDE(software_term_hook = 0);
+
+PROVIDE(_StartupHook = 0);
+PROVIDE(_ShutdownHook = 0);
+PROVIDE(_PreTaskHook = 0);
+PROVIDE(_PostTaskHook = 0);
+PROVIDE(_ErrorHook = 0);
+PROVIDE(_ProtectionHook = 0);
+
+OUTPUT_FORMAT("elf32-v850-rh850", "elf32-v850-rh850",
+	      "elf32-v850-rh850")
+OUTPUT_ARCH(v850-rh850)
+STARTUP(start.o)
+ENTRY(__reset)
+SECTIONS
+{
+	.vector : AT(0)
+	{
+		*(.vector)
+	} > INTROM
+
+	.text :	
+	{
+		__text = . ;
+		__tp = . ;
+		*(.text)
+		_etext = . ;
+	} > INTROM
+
+	.call_table_data ALIGN (4) :
+	{
+	PROVIDE(__ctbp = .);
+	*(.call_table_data)
+	} > INTROM
+	
+	.call_table_text :
+	{
+	*(.call_table_text)
+	} > INTROM
+	
+	. = ALIGN(4);
+	.rodata : { *(.rodata) } > INTROM
+
+	_textend = .;
+
+	. = ALIGN(4);
+	__idata_start = . ;
+
+	.data	:  AT(__idata_start) 
+	{
+		. = ALIGN(4);
+		__data_start = . ;
+		*(.data)
+		. = ALIGN(4);
+		_edata	=  . ;
+	} > INTRAM
+
+	__idata_end = __idata_start + SIZEOF(.data);
+	
+	.bss	   :
+	{
+	  . = ALIGN(4);
+	  __bss_start = .;
+	  *(.bss)
+	  *(COMMON)
+	  . = ALIGN(4);
+	  __bss_end = .;
+	} > INTRAM
+	
+	.sdata ALIGN (4) :
+	{
+		PROVIDE (__gp = . + 0x8000);
+		*(.sdata)
+	} > INTRAM
+	
+	.tdata ALIGN (4) :
+	{
+		PROVIDE (__ep = .);
+		*(.tbyte)
+		*(.tcommon_byte)
+		*(.tdata)
+		*(.tbss)
+		*(.tcommon)
+	} > INTRAM
+	
+	.comment 0 : { *(.comment) }	
+	.debug			0 : { *(.debug) }
+	.line			0 : { *(.line) }
+	.debug_srcinfo	0 : { *(.debug_srcinfo) }
+	.debug_sfnames	0 : { *(.debug_sfnames) }
+	.debug_aranges	0 : { *(.debug_aranges) }
+	.debug_pubnames 0 : { *(.debug_pubnames) }	
+}
+/* provide a pointer for the stack */
+ 
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/v850e2_fl4_2m.ld
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/v850e2_fl4_2m.ld	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/v850e2_fl4_2m.ld	(revision 117)
@@ -0,0 +1,113 @@
+/*
+ *	V850E2/FL4-2Mリンカスクリプト
+ */
+
+MEMORY
+{
+	INTROM(raxi) : org = 0x00000000, len = 2M
+	INTRAM(wax)  : org = 0xFEDDC000, len = 144k
+};
+
+PROVIDE(_software_init_hook = 0);
+PROVIDE(_software_term_hook = 0);
+PROVIDE(_hardware_init_hook = 0);
+PROVIDE(_hardware_term_hook = 0);
+PROVIDE(_bsssecinib_table = 0);
+PROVIDE(_tnum_bsssec = 0);
+PROVIDE(_datasecinib_table = 0);
+PROVIDE(_tnum_datasec = 0);
+
+PROVIDE(_StartupHook = 0);
+PROVIDE(_ShutdownHook = 0);
+PROVIDE(_PreTaskHook = 0);
+PROVIDE(_PostTaskHook = 0);
+PROVIDE(_ErrorHook = 0);
+PROVIDE(_ProtectionHook = 0);
+
+OUTPUT_FORMAT( "elf32-v850",
+               "elf32-v850",
+               "elf32-v850" )
+OUTPUT_ARCH( v850 )
+STARTUP(start.o)
+ENTRY(__reset)
+SECTIONS
+{
+	.vector : AT(0)
+	{
+		*(.vector)
+	} > INTROM
+
+	.text :	
+	{
+		__text = . ;
+		__tp = . ;
+		*(.text)
+		_etext = . ;
+	} > INTROM
+
+	.call_table_data ALIGN (4) :
+	{
+	PROVIDE(__ctbp = .);
+	*(.call_table_data)
+	} > INTROM
+	
+	.call_table_text :
+	{
+	*(.call_table_text)
+	} > INTROM
+	
+	. = ALIGN(4);
+	.rodata : { *(.rodata) } > INTROM
+
+	_textend = .;
+
+	. = ALIGN(4);
+	__idata_start = . ;
+
+	.data	:  AT(__idata_start) 
+	{
+		. = ALIGN(4);
+		__data_start = . ;
+		*(.data)
+		. = ALIGN(4);
+		_edata	=  . ;
+	} > INTRAM
+
+	__idata_end = __idata_start + SIZEOF(.data);
+	
+	.bss	   :
+	{
+	  . = ALIGN(4);
+	  __bss_start = .;
+	  *(.bss)
+	  *(COMMON)
+	  . = ALIGN(4);
+	  __bss_end = .;
+	} > INTRAM
+	
+	.sdata ALIGN (4) :
+	{
+		PROVIDE (__gp = . + 0x8000);
+		*(.sdata)
+	} > INTRAM
+	
+	.tdata ALIGN (4) :
+	{
+		PROVIDE (__ep = .);
+		*(.tbyte)
+		*(.tcommon_byte)
+		*(.tdata)
+		*(.tbss)
+		*(.tcommon)
+	} > INTRAM
+	
+	.comment 0 : { *(.comment) }	
+	.debug			0 : { *(.debug) }
+	.line			0 : { *(.line) }
+	.debug_srcinfo	0 : { *(.debug_srcinfo) }
+	.debug_sfnames	0 : { *(.debug_sfnames) }
+	.debug_aranges	0 : { *(.debug_aranges) }
+	.debug_pubnames 0 : { *(.debug_pubnames) }	
+}
+/* provide a pointer for the stack */
+ 
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/v850e2_fx4.c
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/v850e2_fx4.c	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/v850e2_fx4.c	(revision 117)
@@ -0,0 +1,292 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by Spansion LLC, USA
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: v850e2_fx4.c 117 2014-12-10 03:58:03Z t_ishikawa $
+ */
+#include "kernel_impl.h"
+#include "v850e2_fx4.h"
+#include "Os.h"
+#include "prc_sil.h"
+
+/*******************************************************************************************/
+/*  Outline      : Write protected register                                                */
+/*  Argument     : Register address                                                        */
+/*                 Register data                                                           */
+/*                 Register No                                                             */
+/*  Return value : 0: write success / 1: write error                                       */
+/*  Description  : Write protected register                                                */
+/*                                                                                         */
+/*******************************************************************************************/
+static uint32
+write_protected_reg(uint32 addr, uint32 data, uint8 regno)
+{
+	uint32	reg_top = 0xff420000;
+	uint32	reg_stat;
+	uint8	wk;
+	SIL_PRE_LOC;
+
+	if (regno > 2) {
+		return(UC_INVALIDPARAM);
+	}
+
+	switch (regno) {
+	case  0:
+		reg_top += 0x4000;      /* PROTCMD0 */
+		break;
+	case  1:
+		reg_top += 0x8000;      /* PROTCMD1 */
+		break;
+	case  2:
+		reg_top += 0x0300;      /* PROTCMD2 */
+		break;
+	}
+	reg_stat = reg_top + 4;     /* PROTS0/PROTS1/PROTS2 */
+
+	SIL_LOC_INT();
+	sil_wrb_mem((void *) reg_top, 0xA5);
+
+	sil_wrw_mem((void *) addr, data);
+	sil_wrw_mem((void *) addr, ~data);
+	sil_wrw_mem((void *) addr, data);
+	SIL_UNL_INT();
+
+	wk = sil_reb_mem((void *) reg_stat);
+	wk &= 0x01;
+
+	return((wk == 0) ? UC_SUCCESS : UC_PROTREGERROR);
+} /* write_protected_reg */
+
+/********************************************************************************************/
+/*  Function Name : V850Drv_nop                                                             */
+/*  Input         : none                                                                    */
+/*  Output        : none                                                                    */
+/*  Description   : nop command                                                             */
+/********************************************************************************************/
+static void
+V850Drv_nop(void)
+{
+	Asm("nop");
+
+} /* V850Drv_nop */
+
+/*******************************************************************************************/
+/*  Outline      : Sub Oscillator enable                                                   */
+/*  Argument     : -                                                                       */
+/*  Return value : 0: successfly set / 1: set error                                        */
+/*  Description  : Sub Oscillator register setting                                         */
+/*                                                                                         */
+/*******************************************************************************************/
+uint32
+EnableSubOSC(void)
+{
+	uint32 ucret;
+
+	sil_wrw_mem((void *) SOSCST, 0x02);      /* stabilization time -> 262ms */
+
+	ucret = write_protected_reg(SOSCE, 0x01, PROT_SOSCE);  /* SubOSC start */
+
+	if (ucret != UC_SUCCESS) return(ucret);
+
+	while (((sil_rew_mem((void *) SOSCS)) & CLK_S_CLKSTAB) == 0) {     /* Wait stabilization */
+		V850Drv_nop();
+	}
+	return(UC_SUCCESS);
+} /* EnableSubOSC */
+
+/*******************************************************************************************/
+/*  Outline      : Main Oscillator enable                                                  */
+/*  Argument     : Main Cscillator frequency(Hz)                                           */
+/*  Return value : 0: successfly set / 1: set error                                        */
+/*  Description  : Main Oscillator register setting                                        */
+/*                                                                                         */
+/*******************************************************************************************/
+uint32
+EnableMainOSC(uint32 clk_in)
+{
+	uint8	ampsel;
+	uint32	ucret;
+
+	if (clk_in == CLK_MHz(4)) {
+		ampsel = 0x03;
+	}
+	else if (CLK_MHz(4) < clk_in && clk_in <= CLK_MHz(8)) {
+		ampsel = 0x02;
+	}
+	else if (CLK_MHz(8) < clk_in && clk_in <= CLK_MHz(16)) {
+		ampsel = 0x01;
+	}
+	else if (CLK_MHz(16) < clk_in && clk_in <= CLK_MHz(20)) {
+		ampsel = 0x00;
+	}
+	else {
+		return(UC_INVALIDPARAM);
+	}
+
+	sil_wrw_mem((void *) MOSCC, 0x00 | ampsel); /* Normal stabilization time mode */
+	sil_wrw_mem((void *) MOSCST, 0x0F);         /* stabilization time -> Max */
+
+	ucret = write_protected_reg(MOSCE, 0x01, PROT_MOSCE);   /* MainOSC start */
+
+	if (ucret != UC_SUCCESS) return(ucret);
+
+	while (((sil_rew_mem((void *) MOSCS)) & CLK_S_CLKSTAB) == 0) {     /* Wait stabilization */
+		V850Drv_nop();
+	}
+
+	return(UC_SUCCESS);
+} /* EnableMainOSC */
+
+/*******************************************************************************************/
+/*  Outline      : PLL enable                                                              */
+/*  Argument     : PLL No                                                                  */
+/*                 Multiplying rate                                                        */
+/*                 Register data                                                           */
+/*  Return value : 0: successfly set / 1: set error                                        */
+/*  Description  : PLL register setting                                                    */
+/*                                                                                         */
+/*******************************************************************************************/
+static uint32
+EnablePLL(uint32 pllno, uint8 clk_mul, uint8 p_val)
+{
+	uint32 ucret;
+
+	if (clk_mul > 50)
+		return(UC_INVALIDPARAM);
+
+	sil_wrw_mem((void *) PLLC(pllno), (0x800000 | (p_val << 8) | (clk_mul - 1)));   /* PLL Mode, P, Nr */
+	sil_wrw_mem((void *) PLLST(pllno),  0x07);                                      /* stabilization time -> Max */
+
+	ucret = write_protected_reg(PLLE(pllno), 0x01, PROT_PLLE);  /* PLL Start */
+
+	if (ucret != UC_SUCCESS)
+		return(ucret);
+
+	while (((sil_rew_mem((void *) PLLS(pllno))) & CLK_S_CLKSTAB) == 0) {     /* Wait stabilization */
+		/* V850Drv_nop(); */
+	}
+
+	return(UC_SUCCESS);
+} /* EnablePLL */
+
+/*******************************************************************************************/
+/*  Outline      : Set PLL frequency                                                       */
+/*  Argument     : PLL select No                                                           */
+/*                 PLL frequency                                                           */
+/*                 PLL frequency                                                           */
+/*  Return value : 0: successfly set / 1: set error                                        */
+/*  Description  : Set PLL register from frequency                                         */
+/*                                                                                         */
+/*******************************************************************************************/
+uint32
+SetPLL(uint32 pllno, uint32 mhz, uint32 *outclk)
+{
+	uint32 mul;
+
+	if (mhz < 20) {
+		return(UC_ERROR);
+	}
+	else if (mhz < 50) {
+		mul = (mhz / MAINOSC_CLOCK) * 4;
+		if (mul <= 5 && 51 <= mul)
+			return(UC_ERROR);
+		*outclk = MAINOSC_CLOCK * mul / 4;
+		return(EnablePLL(pllno, mul, PDIV4R0_025TO050));
+	}
+	else if (mhz < 100) {
+		mul = (mhz / MAINOSC_CLOCK) * 2;
+		if (mul <= 5 && 51 <= mul)
+			return(UC_ERROR);
+		*outclk = MAINOSC_CLOCK * mul / 2;
+		return(EnablePLL(pllno, mul, PDIV2R0_050TO100));
+	}
+	else if (mhz < 200) {
+		mul = (mhz / MAINOSC_CLOCK) * 1;
+		if (mul <= 5 && 51 <= mul)
+			return(UC_ERROR);
+		*outclk = MAINOSC_CLOCK * mul / 1;
+		return(EnablePLL(pllno, mul, PDIV1R0_100TO200));
+	}
+	else if (mhz < 400) {
+		mul = (mhz / MAINOSC_CLOCK) / 2;
+		if (mul <= 5 && 51 <= mul)
+			return(UC_ERROR);
+		*outclk = MAINOSC_CLOCK * mul * 2;
+		return(EnablePLL(pllno, mul, PDIV0R5_200TO400));
+	}
+	return(UC_ERROR);
+} /* SetPLL */
+
+/*******************************************************************************************/
+/*  Outline      : Clock switcher setting                                                  */
+/*  Argument     : Control reginster address                                               */
+/*                 Status reginster address                                                */
+/*                 Register No                                                             */
+/*                 Select No                                                               */
+/*  Return value : 0: successfly set / 1: set error                                        */
+/*  Description  : Select clock source of CKSCLK_mn                                        */
+/*                                                                                         */
+/*******************************************************************************************/
+uint32
+set_clock_selection(uint32 control, uint32 status, uint8 regno, uint16 sel)
+{
+	uint32 ucret;
+
+	ucret = write_protected_reg(control, sel << 1, regno);
+	if (ucret != UC_SUCCESS) {
+		return(ucret);
+	}
+
+	/* Wait for SelectEnable */
+	while (((sil_rew_mem((void *) status)) & 0x01) == 0) {
+		V850Drv_nop();
+	}
+
+	return(UC_SUCCESS);
+} /* set_clock_selection */
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/v850e2_fx4.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/v850e2_fx4.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/v850e2_fx4.h	(revision 117)
@@ -0,0 +1,405 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by Spansion LLC, USA
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: v850e2_fx4.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		V850E2/Fx4のハードウェア資源の定義
+ */
+
+#ifndef TOPPERS_V850E2_FX4_H
+#define TOPPERS_V850E2_FX4_H
+
+#if defined(V850FG4) || defined(V850FL4)
+#define _V850E2M_
+#elif defined(V850FG4_L)
+#define _V850E2S_
+#endif /* V850FG4 */
+
+/*
+ *  PORTレジスタ
+ */
+#define PORT_BASE	UINT_C(0xff400000)
+
+/* 端子機能設定 */
+#define PMC(n)		((PORT_BASE) +0x0400 + (n * 0x04U))     /* ポート・モード・コントロール・レジスタ */
+#define PMCSR(n)	((PORT_BASE) +0x0900 + (n * 0x04U))     /* ポート・モード・コントロール・セット／リセット・レジスタ */
+#define PIPC(n)		((PORT_BASE) +0x4200 + (n * 0x04U))     /* ポートIP コントロール・レジスタ */
+#define PM(n)		((PORT_BASE) +0x0300 + (n * 0x04U))     /* ポート・モード・レジスタ */
+#define PMSR(n)		((PORT_BASE) +0x0800 + (n * 0x04U))     /* ポート・モード・セット／リセット・レジスタ */
+#define PIBC(n)		((PORT_BASE) +0x4000 + (n * 0x04U))     /* ポート入力バッファ・コントロール・レジスタ */
+#define PFC(n)		((PORT_BASE) +0x0500 + (n * 0x04U))     /* ポート機能コントロール・レジスタ */
+#define PFCE(n)		((PORT_BASE) +0x0600 + (n * 0x04U))     /* ポート機能コントロール・レジスタ */
+
+/* 端子データ入力／出力 */
+#define PBDC(n)		((PORT_BASE) +0x4100 + (n * 0x04U))     /* ポート双方向コントロール・レジスタ */
+#define PPR(n)		((PORT_BASE) +0x0200 + (n * 0x04U))     /* ポート端子リード・レジスタ */
+#define P(n)		((PORT_BASE) +0x0000 + (n * 0x04U))     /* ポート・レジスタ */
+#define PNOT(n)		((PORT_BASE) +0x0700 + (n * 0x04U))     /* ポート・ノット・レジスタ */
+#define PSR(n)		((PORT_BASE) +0x0100 + (n * 0x04U))     /* ポート・セット／リセット・レジスタ */
+
+#define FCLA27CTL1	0xff416244      /* UARTE3フィルタレジスタ */
+#define FCLA27CTL3	0xff41624c
+#define FCLA7CTL0	0xff415040
+#define FCLA0CTL2	0xff414008
+#define FCLA0CTL4	0xff414010
+
+/*
+ *  PLL関連のレジスタと定義
+ */
+#define MOSCC		0xff421018
+#define MOSCE		0xff421010
+#define MOSCS		0xff421014
+#define MOSCST		0xff42101c
+#define OCDIDH		0xff470008
+#define OCDIDL		0xff470000
+#define OCDIDM		0xff470004
+#define OPBT0		0xff47000c
+#define OSCWUFMSK	0xff4201a4
+
+#define SOSCE		0xff421020
+#define SOSCS		0xff421024
+#define SOSCST		0xff42102c
+
+#define CKSC_0_BASE		0xff426000
+#define CKSC_0(n)		(CKSC_0_BASE + (0x10 * n))
+
+#define CKSC_1_BASE		0xff42a000
+#define CKSC_1(n)		(CKSC_1_BASE + (0x10 * n))
+
+#define CKSC_A_BASE		0xff422000
+#define CKSC_A(n)		(CKSC_A_BASE + (0x10 * n))
+
+#define CSCSTAT_0_BASE	0xff426000
+#define CSCSTAT_0(n)	(CSCSTAT_0_BASE + (0x10 * n)) + 4
+
+#define CSCSTAT_1_BASE	0xff42a000
+#define CSCSTAT_1(n)	(CSCSTAT_1_BASE + (0x10 * n)) + 4
+
+#define CSCSTAT_A_BASE	0xff422000
+#define CSCSTAT_A(n)	(CSCSTAT_A_BASE + (0x10 * n)) + 4
+
+#define PLLE_BASE	0xff425000
+#define PLLE(n)		(PLLE_BASE + (0x10 * n))
+
+#define PLLS_BASE	0xff425004
+#define PLLS(n)		(PLLS_BASE + (0x10 * n))
+
+#define PLLC_BASE	0xff425008
+#define PLLC(n)		(PLLC_BASE + (0x10 * n))
+
+#define PLLST_BASE	0xff42500c
+#define PLLST(n)	(PLLST_BASE + (0x10 * n))
+
+#define MHz(n)		((n) * 1000 * 1000)
+#define CLK_MHz(num)	(num * 1000 * 1000)
+
+/* CKSC_000 CPU, CPU SubSystem */
+#define HIGH_SPEED_INTOSC_DIV2	0x08
+#define HIGH_SPEED_INTOSC_DIV4	0x09
+#define HIGH_SPEED_INTOSC_DIV8	0x0A
+#define HIGH_SPEED_INTOSC_DIV32	0x0B
+#define MAINOSC_DIV1			0x0C
+#define PLL0_DIV1				0x14
+#define PLL0_DIV2				0x15
+#define PLL0_DIV3				0x16
+#define PLL0_DIV4				0x17
+#define PLL0_DIV5				0x18
+#define PLL0_DIV6				0x19
+#define PLL0_DIV8				0x1A
+#define PLL0_DIV10				0x1B
+#define INTOSC_AUTOSELECT		0x3A
+
+/* CKSC_A03 TAUJ0:PCLK */
+#define LOW_SPEED_INTOSC_DIV1	0x01
+#define HIGH_SPEED_INTOSC_DIV1	0x07
+#define SUBOSC					0x12
+#define NO_CLOCKSELECT			0x00
+
+#define PROT_PLLE	2 /*  Fx4 Setting */
+#define PROT_CKSC0	0
+#define PROT_CKSC1	1
+#define PROT_MOSCE	2
+#define PROT_SOSCE	2
+#define PROT_ROSCE	2
+#define PROT_CKSCA	2
+
+/* xxxS Register */
+#define CLK_S_STPACK	0x08
+#define CLK_S_CLKEN		0x04
+#define CLK_S_CLKACT	0x02
+#define CLK_S_CLKSTAB	0x01
+
+/* PLL P-Value */
+#define PDIV0R5_200TO400	0x0     /* Div 0.5, 200-400MHz Output */
+#define PDIV1R0_100TO200	0x1     /* Div 1.0, 100-200MHz Output */
+#define PDIV2R0_050TO100	0x2     /* Div 2.0,  50-100MHz Output */
+#define PDIV4R0_025TO050	0x3     /* Div 4.0,  25- 50MHz Output */
+
+#define UC_SUCCESS			0
+#define UC_ERROR			1
+#define UC_INVALIDPARAM		2
+#define UC_PROTREGERROR		3
+#define UC_CLKSTATUSERR		4
+#define UC_CLKNOTENABLE		5
+#define UC_CLKNOTACTIVE		6
+#define UC_CLKNOTSTAB		7
+
+#ifndef TOPPERS_MACRO_ONLY
+
+extern uint32 EnableSubOSC(void);
+
+extern uint32 EnableMainOSC(uint32 clk_in);
+
+extern uint32 SetPLL(uint32 pllno, uint32 mhz, uint32 *outclk);
+
+extern uint32 set_clock_selection(uint32 control, uint32 status, uint8 regno, uint16 sel);
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+/*
+ *  Interval Timer(TAUA0)
+ */
+#define TAUA0_BASE			UINT_C(0xFF808000)  /* TAUA0 */
+
+#define TAUA0_IRQ			UINT_C(20)          /* TAUA0 */
+#define TAUA1_IRQ			UINT_C(21)          /* TAUA1 */
+#define TAUA2_IRQ			UINT_C(22)          /* TAUA2 */
+#define TAUA3_IRQ			UINT_C(23)          /* TAUA3 */
+#define TAUA4_IRQ			UINT_C(24)          /* TAUA4 */
+#define TAUA5_IRQ			UINT_C(25)          /* TAUA5 */
+#define TAUA6_IRQ			UINT_C(26)          /* TAUA6 */
+#define TAUA7_IRQ			UINT_C(27)          /* TAUA7 */
+#define TAUA8_IRQ			UINT_C(28)          /* TAUA8 */
+#define TAUA9_IRQ			UINT_C(29)          /* TAUA9 */
+#define TAUA10_IRQ			UINT_C(30)          /* TAUA10 */
+#define TAUA11_IRQ			UINT_C(31)          /* TAUA11 */
+#define TAUA12_IRQ			UINT_C(32)          /* TAUA12 */
+#define TAUA13_IRQ			UINT_C(33)          /* TAUA13 */
+#define TAUA14_IRQ			UINT_C(34)          /* TAUA14 */
+#define TAUA15_IRQ			UINT_C(35)          /* TAUA15 */
+
+#define TAUA_CH0			0
+#define TAUA_CH1			1
+#define TAUA_CH2			2
+#define TAUA_CH3			3
+#define TAUA_CH4			4
+#define TAUA_CH5			5
+#define TAUA_CH6			6
+#define TAUA_CH7			7
+#define TAUA_CH8			8
+#define TAUA_CH9			9
+#define TAUA_CH10			10
+#define TAUA_CH11			11
+#define TAUA_CH12			12
+#define TAUA_CH13			13
+#define TAUA_CH14			14
+#define TAUA_CH15			15
+
+/*
+ *  TAUA0 Timer ハードウェア定義
+ */
+
+/*
+ *  レジスタ
+ */
+/* TAUA0 プリスケーラ・レジスタ */
+#define TAUA0TPS		(TAUA0_BASE + 0x240U)               /* プリスケーラ・クロック選択レジス */
+#define TAUA0BRS		(TAUA0_BASE + 0x244U)               /* プリスケーラ・ボー・レート設定レジスタ */
+
+/* TAUA0 制御レジスタ */
+#define TAUA0CDR(CH)	(TAUA0_BASE + (CH * 4U))            /* データ・レジスタ */
+#define TAUA0CNT(CH)	(TAUA0_BASE + (0x80U + (CH * 4U)))  /* カウンタ・レジスタ */
+#define TAUA0CMOR(CH)	(TAUA0_BASE + (0x200U + (CH * 4U))) /* モードOS レジスタ */
+#define TAUA0CMUR(CH)	(TAUA0_BASE + (0xC0 + (CH * 4U)))   /* モード・ユーザ・レジスタ */
+#define TAUA0CSR(CH)	(TAUA0_BASE + (0x140U + (CH * 4U))) /* ステータス・レジスタ */
+#define TATA0CSC(CH)	(TAUA0_BASE + (0x180U + (CH * 4U))) /* ステータス・クリア・トリガ・レジスタ */
+#define TAUA0TS		(TAUA0_BASE + 0x1C4U)                   /* スタート・トリガ・レジスタ */
+#define TAUA0TE		(TAUA0_BASE + 0x1C0U)                   /* 許可ステータス・レジスタ */
+#define TAUA0TT		(TAUA0_BASE + 0x1C8U)                   /* ストップ・トリガ・レジスタ */
+
+/* TAUA0 出力レジスタ */
+#define TAUA0TOE	(TAUA0_BASE + 0x5CU)                    /* 出力許可レジスタ */
+#define TAUA0TO		(TAUA0_BASE + 0x58U)                    /* 出力レジスタ */
+#define TAUA0TOM	(TAUA0_BASE + 0x248U)                   /* 出力モード・レジスタ */
+#define TAUA0TOC	(TAUA0_BASE + 0x24CU)                   /* 出力コンフィギュレーション・レジスタ */
+
+#define TAUA0TOL	(TAUA0_BASE + 0x40U)                    /* 出力アクティブ・レベル・レジスタ */
+#define TAUA0TDE	(TAUA0_BASE + 0x250U)                   /* デッド・タイム出力許可レジスタ */
+#define TAUA0TDM	(TAUA0_BASE + 0x254U)                   /* デッド・タイム出力モード・レジスタ */
+#define TAUA0TDL	(TAUA0_BASE + 0x54U)                    /* デッド・タイム出力レベル・レジスタ */
+
+#define TAUA0TRO	(TAUA0_BASE + 0x4CU)                    /* リアルタイム出力レジスタ */
+#define TAUA0TRE	(TAUA0_BASE + 0x258U)                   /* リアルタイム出力許可レジスタ */
+#define TAUA0TRC	(TAUA0_BASE + 0x25CU)                   /* リアルタイム出力制御レジスタ */
+#define TAUA0TME	(TAUA0_BASE + 0x50U)                    /* 変調出力許可レジスタ */
+/* TAUA0 リロード・データ・レジスタ */
+#define TAUA0RDE	(TAUA0_BASE + 0x260U)                   /* リロード・データ許可レジスタ */
+#define TAUA0RDM	(TAUA0_BASE + 0x264U)                   /* リロード・データ・モード・レジスタ */
+#define TAUA0RDS	(TAUA0_BASE + 0x268U)                   /* リロード・データ制御CH 選択・リロード・データ制御CH 選択 */
+#define TAUA0RDC	(TAUA0_BASE + 0x26CU)                   /* リロード・データ制御レジスタ */
+#define TAUA0RDT	(TAUA0_BASE + 0x44U)                    /* リロード・データ・トリガ・レジスタ */
+#define TAUA0RSF	(TAUA0_BASE + 0x48U)                    /* リロード・ステータス・レジスタ */
+
+#define MCU_TAUA0_MASK_CK0				((uint16) 0x000f)
+#define MCU_TAUA0_CK0					((uint16) 0x0000)
+#define MCU_TAUA00_CMOR					((uint16) 0x0001)
+#define MCU_TAUA00_CMUR					((uint8) 0x01)
+#define MCU_TAUA00_DI					((uint16) 0x0080)
+#define MCU_TAUA00_EI					((uint16) 0x0000)
+#define MCU_TAUA00_MASK_ENB				((uint16) 0x0001)
+#define MCU_TIMER_STOP					((uint8) 0x0)
+#define MCU_TIMER_START					((uint8) 0x1)
+
+#define ICTAUA0_BASE					0xffff6028                  /* チャンネル０割り込み */
+#define ICTAUA0I(CH)					(ICTAUA0_BASE + (CH * 0x02))
+
+
+/*
+ *  TAUA0 マスク定義
+ */
+#define TAUA0_MASK_BIT	0x0xfffe                                    /* bit0 = TAUA0 */
+
+/*
+ * OSTM
+ */
+#define OSTM_IRQ			UINT_C(147)
+
+#define OSTM0_BASE	0xFF800000
+
+#define OSTM_CMP_W	(0xFF800000 + 0x00)
+#define OSTM_CNT_W	(0xFF800000 + 0x04)
+#define OSTM_TE		(0xFF800000 + 0x10)
+#define OSTM_TS_B	(0xFF800000 + 0x14)
+#define OSTM_TT_B	(0xFF800000 + 0x18)
+#define OSTM_CTL_B	(0xFF800000 + 0x20)
+
+/*
+ *  UARTE
+ */
+#define URTE3_BASE	UINT_C(0xff5f0000)
+#define URTE5_BASE	UINT_C(0xff610000)
+#define URTE10_BASE	UINT_C(0xff660000)
+#define URTEnCTL0	(UARTE_BASE + 0x00U)
+#define URTEnCTL1	(UARTE_BASE + 0x20U)
+#define URTEnCTL2	(UARTE_BASE + 0x24U)
+#define URTEnTRG	(UARTE_BASE + 0x04U)
+#define URTEnSTR0	(UARTE_BASE + 0x08U)
+#define URTEnSTR1	(UARTE_BASE + 0x0cU)
+#define URTEnSTC	(UARTE_BASE + 0x10U)
+#define URTEnRX		(UARTE_BASE + 0x14U)
+#define URTEnTX		(UARTE_BASE + 0x18U)
+#define URTEnEMU	(UARTE_BASE + 0x34U)
+
+#define INTLMA3IT	0xffff618C      /* 転送完了 */
+#define INTLMA3IR	0xffff618A      /* 受信完了 */
+
+#define INTLMA5IT	0xffff61C4      /* UART5 RX */
+#define INTLMA5IR	0xffff61C6      /* UART5 TX */
+
+#define INTLMA10IT	0xffff6204      /* UART10 TX */
+#define INTLMA10IR	0xffff6202      /* UART10 RX */
+
+#define URTE3_INTNO		UINT_C(197)
+#define URTE5_INTNO		UINT_C(226)
+
+#ifndef URTE10_INTNO
+#define URTE10_INTNO	UINT_C(249)
+#endif /* URTE10_INTNO */
+
+/*
+ *  TAUJ
+ */
+#ifdef V850FG4
+#define TAUFJ0I0_INTNO	135        
+#define TAUFJ0I1_INTNO	136
+#define TAUFJ0I2_INTNO	137
+#define TAUFJ0I3_INTNO	138
+#define TAUFJ1I0_INTNO	139
+#define TAUFJ1I1_INTNO	140
+#define TAUFJ1I2_INTNO	141
+#define TAUFJ1I3_INTNO	142
+#elif defined(V850FG4_L)
+#define TAUFJ0I0_INTNO	78
+#define TAUFJ0I1_INTNO	79
+#define TAUFJ0I2_INTNO	80
+#define TAUFJ0I3_INTNO	81
+#endif /* V850FG4 */
+
+
+/*
+ *  TAUJ関連レジスタ
+ */
+#define TAUJ_BASE(n)	((uint32) (0xff811000U + (n * 0x1000U)))
+#define TAUJTPS(n)		(TAUJ_BASE(n) + 0x90U)
+#define TAUJCDR(n, ch)	(TAUJ_BASE(n) + (ch * 0x04U))
+#define TAUJCNT(n, ch)	(TAUJ_BASE(n) + 0x10U + (ch * 0x04U))
+#define TAUJCMOR(n, ch)	(TAUJ_BASE(n) + 0x80U + (ch * 0x04U))
+#define TAUJCMUR(n, ch)	(TAUJ_BASE(n) + 0x20U + (ch * 0x04U))
+#define TAUJTS(n)		(TAUJ_BASE(n) + 0x54U)
+#define TAUJTT(n)		(TAUJ_BASE(n) + 0x58U)
+
+/*
+ *  INT
+ */
+#define EIC_BASE			UINT_C(0xffff6000)
+#define EIC_ADDRESS(intno)	(EIC_BASE + (intno * 2))
+#define PMR					UINT_C(0xFFFF6448)
+#define ISPR_H				UINT_C(0xFFFF6440)
+#define ISPC_H				UINT_C(0xffff6450)
+
+#define TMIN_INTNO	UINT_C(0)
+#define TMAX_INTNO	UINT_C(255)
+#define TNUM_INT	UINT_C(256)
+
+#include "v850.h"
+
+#endif /* TOPPERS_V850E2_FX4_H */
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/v850e2_fx4l.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/v850e2_fx4l.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/v850e2_fx4l.h	(revision 117)
@@ -0,0 +1,67 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by Spansion LLC, USA
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: v850e2_fx4l.h 164 2015-06-03 01:22:29Z t_ishikawa $
+ */
+
+/*
+ *		V850E2/Fx4のハードウェア資源の定義
+ */
+
+#ifndef TOPPERS_V850E2_FX4L_H
+#define TOPPERS_V850E2_FX4L_H
+
+#define _V850E2S_
+
+#define URTE10_INTNO	UINT_C(108)
+
+#include "v850e2_fx4.h"
+
+#endif /* TOPPERS_V850E2_FX4_H */
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/v850e2_px4.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/v850e2_px4.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/v850e2_px4.h	(revision 117)
@@ -0,0 +1,233 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by Spansion LLC, USA
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: v850e2_px4.h 117 2014-12-10 03:58:03Z t_ishikawa $
+ */
+
+/*
+ *		V850E2/Px4のハードウェア資源の定義
+ */
+
+#ifndef TOPPERS_V850E2_PX4_H
+#define TOPPERS_V850E2_PX4_H
+
+#define _V850E2M_
+
+#define VPNECR	0xffff5110
+#define VPNADR	0xffff5114
+#define VPNTID	0xffff5118
+#define VPTTID	0xffff511A
+#define VPTECR	0xffff5120
+#define VPTADR	0xffff5124
+
+/*
+ *  ポートレジスタ
+ */
+#define PM0		0xffff8300
+#define PMC0	0xffff8400
+#define PFC0	0xffff8500
+#define PFCE0	0xffff8600
+
+#define P4		0xffff8010
+#define PM4		0xffff8310
+#define PMC4	0xffff8410
+#define PFC4	0xffff8510
+#define PFCE4	0xffff8610
+
+#define FCLA0CTL0	0xFF414000
+#define FCLA1CTL2	0xFF414028
+#define FCLA1CTL3	0xFF41402c
+
+#define FCLA27CTL3	0xff41624c
+#define FCLA27CTL6	0xff416258
+
+/*
+ *  Interval Timer(TAUA0)
+ */
+#define TAUA0_BASE0			UINT_C(0xFF808000)  /* TAUA0 */
+#define TAUA0_BASE1			UINT_C(0xFFFFC400)  /* TAUA0 */
+
+#define TAUA0_IRQ			UINT_C(54)          /* TAUA0 */
+#define TAUA1_IRQ			UINT_C(55)          /* TAUA1 */
+#define TAUA2_IRQ			UINT_C(56)          /* TAUA2 */
+#define TAUA3_IRQ			UINT_C(57)          /* TAUA3 */
+#define TAUA4_IRQ			UINT_C(58)          /* TAUA4 */
+#define TAUA5_IRQ			UINT_C(59)          /* TAUA5 */
+#define TAUA6_IRQ			UINT_C(60)          /* TAUA6 */
+#define TAUA7_IRQ			UINT_C(61)          /* TAUA7 */
+#define TAUA8_IRQ			UINT_C(62)          /* TAUA8 */
+#define TAUA9_IRQ			UINT_C(63)          /* TAUA9 */
+#define TAUA10_IRQ			UINT_C(64)          /* TAUA10 */
+#define TAUA11_IRQ			UINT_C(65)          /* TAUA11 */
+#define TAUA12_IRQ			UINT_C(66)          /* TAUA12 */
+#define TAUA13_IRQ			UINT_C(67)          /* TAUA13 */
+#define TAUA14_IRQ			UINT_C(68)          /* TAUA14 */
+#define TAUA15_IRQ			UINT_C(69)          /* TAUA15 */
+
+#define TAUA_CH0			0
+#define TAUA_CH1			1
+#define TAUA_CH2			2
+#define TAUA_CH3			3
+#define TAUA_CH4			4
+#define TAUA_CH5			5
+#define TAUA_CH6			6
+#define TAUA_CH7			7
+#define TAUA_CH8			8
+#define TAUA_CH9			9
+#define TAUA_CH10			10
+#define TAUA_CH11			11
+#define TAUA_CH12			12
+#define TAUA_CH13			13
+#define TAUA_CH14			14
+#define TAUA_CH15			15
+
+/*
+ *  TAUA0 Timer ハードウェア定義
+ */
+
+/*
+ *  レジスタ
+ */
+/* TAUA0 プリスケーラ・レジスタ */
+#define TAUA0TPS		(TAUA0_BASE0 + 0x240U)              /* プリスケーラ・クロック選択レジス */
+#define TAUA0BRS		(TAUA0_BASE0 + 0x244U)              /* プリスケーラ・ボー・レート設定レジスタ */
+
+/* TAUA0 制御レジスタ */
+#define TAUA0CDR(CH)	(TAUA0_BASE1 + (CH * 4U))               /* データ・レジスタ */
+#define TAUA0CNT(CH)	(TAUA0_BASE1 + (0x80U + (CH * 4U)))     /* カウンタ・レジスタ */
+#define TAUA0CMOR(CH)	(TAUA0_BASE0 + (0x200U + (CH * 4U)))    /* モードOS レジスタ */
+#define TAUA0CMUR(CH)	(TAUA0_BASE1 + (0xC0 + (CH * 4U)))      /* モード・ユーザ・レジスタ */
+#define TAUA0CSR(CH)	(TAUA0_BASE1 + (0x140U + (CH * 4U)))    /* ステータス・レジスタ */
+#define TATA0CSC(CH)	(TAUA0_BASE1 + (0x180U + (CH * 4U)))    /* ステータス・クリア・トリガ・レジスタ */
+#define TAUA0TS		(TAUA0_BASE1 + 0x1C4U)                      /* スタート・トリガ・レジスタ */
+#define TAUA0TE		(TAUA0_BASE1 + 0x1C0U)                      /* 許可ステータス・レジスタ */
+#define TAUA0TT		(TAUA0_BASE1 + 0x1C8U)                      /* ストップ・トリガ・レジスタ */
+
+/* TAUA0 出力レジスタ */
+#define TAUA0TOE	(TAUA0_BASE1 + 0x5CU)                   /* 出力許可レジスタ */
+#define TAUA0TO		(TAUA0_BASE1 + 0x58U)                   /* 出力レジスタ */
+#define TAUA0TOM	(TAUA0_BASE0 + 0x248U)                  /* 出力モード・レジスタ */
+#define TAUA0TOC	(TAUA0_BASE0 + 0x24CU)                  /* 出力コンフィギュレーション・レジスタ */
+
+#define TAUA0TOL	(TAUA0_BASE1 + 0x40U)                   /* 出力アクティブ・レベル・レジスタ */
+#define TAUA0TDE	(TAUA0_BASE0 + 0x250U)                  /* デッド・タイム出力許可レジスタ */
+#define TAUA0TDM	(TAUA0_BASE0 + 0x254U)                  /* デッド・タイム出力モード・レジスタ */
+#define TAUA0TDL	(TAUA0_BASE1 + 0x54U)                   /* デッド・タイム出力レベル・レジスタ */
+
+#define TAUA0TRO	(TAUA0_BASE1 + 0x4CU)                   /* リアルタイム出力レジスタ */
+#define TAUA0TRE	(TAUA0_BASE0 + 0x258U)                  /* リアルタイム出力許可レジスタ */
+#define TAUA0TRC	(TAUA0_BASE0 + 0x25CU)                  /* リアルタイム出力制御レジスタ */
+#define TAUA0TME	(TAUA0_BASE1 + 0x50U)                   /* 変調出力許可レジスタ */
+/* TAUA0 リロード・データ・レジスタ */
+#define TAUA0RDE	(TAUA0_BASE0 + 0x260U)                  /* リロード・データ許可レジスタ */
+#define TAUA0RDM	(TAUA0_BASE0 + 0x264U)                  /* リロード・データ・モード・レジスタ */
+#define TAUA0RDS	(TAUA0_BASE0 + 0x268U)                  /* リロード・データ制御CH 選択・リロード・データ制御CH 選択 */
+#define TAUA0RDC	(TAUA0_BASE0 + 0x26CU)                  /* リロード・データ制御レジスタ */
+#define TAUA0RDT	(TAUA0_BASE1 + 0x44U)                   /* リロード・データ・トリガ・レジスタ */
+#define TAUA0RSF	(TAUA0_BASE1 + 0x48U)                   /* リロード・ステータス・レジスタ */
+
+#define MCU_TAUA0_MASK_CK0				((uint16) 0x000f)
+#define MCU_TAUA0_CK0					((uint16) 0x0000) /* 2^0 */
+#define MCU_TAUA00_CMOR					((uint16) 0x0001)
+#define MCU_TAUA00_CMUR					((uint8) 0x01)
+#define MCU_TAUA00_DI					((uint16) 0x0080)
+#define MCU_TAUA00_EI					((uint16) 0x0000)
+#define MCU_TAUA00_MASK_ENB				((uint16) 0x0001)
+#define MCU_TIMER_STOP					((uint8) 0x0)
+#define MCU_TIMER_START					((uint8) 0x1)
+
+#define ICTAUA0_BASE					0xffff606c                  /* チャンネル０割り込み */
+#define ICTAUA0I(CH)					(ICTAUA0_BASE + (CH * 0x02))
+
+/*
+ *  TAUA0 マスク定義
+ */
+#define TAUA0_MASK_BIT	0x0xfffe                                    /* bit0 = TAUA0 */
+
+/*
+ *  UARTE
+ */
+#define URTE0_BASE	0xFF5C0000
+#define URTE1_BASE	0xFF5D0000
+#define URTE2_BASE0	0xFF5E0000
+#define URTE2_BASE1	0xFFFFEC00
+
+#define URTEnCTL0	(URTE2_BASE1 + 0x00U)
+#define URTEnCTL1	(URTE2_BASE0 + 0x40U)
+#define URTEnCTL2	(URTE2_BASE0 + 0x44U)
+#define URTEnTRG	(URTE2_BASE1 + 0x0cU)
+#define URTEnSTR0	(URTE2_BASE1 + 0x10U)
+#define URTEnSTR1	(URTE2_BASE1 + 0x14U)
+#define URTEnSTC	(URTE2_BASE1 + 0x18U)
+#define URTEnRX		(URTE2_BASE1 + 0x1cU)
+#define URTEnTX		(URTE2_BASE1 + 0x2cU)
+
+#define URTE2_INTNO	UINT_C(197)
+
+#define INTNO_URTE2_IS	114
+#define INTNO_URTE2_IR	115
+#define INTNO_URTE2_IT	116
+
+/*
+ *  INT
+ */
+#define EIC_BASE			UINT_C(0xffff6000)
+#define EIC_ADDRESS(intno)	(EIC_BASE + (intno * 2))
+#define PMR					UINT_C(0xFFFF6448)
+#define ISPR_H				UINT_C(0xFFFF6440)
+#define ISPC_H				UINT_C(0xffff6450)
+
+#define TMIN_INTNO	UINT_C(0)
+#define TMAX_INTNO	UINT_C(255)
+#define TNUM_INT	UINT_C(256)
+
+#include "v850.h"
+
+#endif /* TOPPERS_V850E2_PX4_H */
Index: /atk2-sc3_fl850f1l/arch/v850_gcc/v850e2_px4_3507.ld
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_gcc/v850e2_px4_3507.ld	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_gcc/v850e2_px4_3507.ld	(revision 117)
@@ -0,0 +1,109 @@
+/*
+ *	V850E2/PX4-3507リンカスクリプト
+ */
+
+MEMORY
+{
+	INTROM(raxi) : org = 0x00000000, len = 512K
+	INTRAM(wax)  : org = 0xFEDF6000, len = 40k
+};
+
+PROVIDE(_software_init_hook = 0);
+PROVIDE(_software_term_hook = 0);
+PROVIDE(_hardware_init_hook = 0);
+PROVIDE(_hardware_term_hook = 0);
+PROVIDE(_bsssecinib_table = 0);
+PROVIDE(_tnum_bsssec = 0);
+PROVIDE(_datasecinib_table = 0);
+PROVIDE(_tnum_datasec = 0);
+
+PROVIDE(_StartupHook = 0);
+PROVIDE(_ShutdownHook = 0);
+PROVIDE(_PreTaskHook = 0);
+PROVIDE(_PostTaskHook = 0);
+PROVIDE(_ErrorHook = 0);
+PROVIDE(_ProtectionHook = 0);
+
+OUTPUT_FORMAT( "elf32-v850",
+               "elf32-v850",
+               "elf32-v850" )
+OUTPUT_ARCH(v850)
+SECTIONS
+{
+	.vector : AT(0)
+	{
+		*(.vector)
+	} > INTROM
+
+	.text :	
+	{
+		__text = . ;
+		__tp = . ;
+		*(.text)
+		_etext = . ;
+	} > INTROM
+
+	.call_table_data ALIGN (4) :
+	{
+	PROVIDE(__ctbp = .);
+	*(.call_table_data)
+	} > INTROM
+	
+	.call_table_text :
+	{
+	*(.call_table_text)
+	} > INTROM
+	
+	. = ALIGN(4);
+	.rodata : { *(.rodata) } > INTROM
+
+	_textend = .;
+
+	. = ALIGN(4);
+	__idata_start = . ;
+
+	.data	:  AT(__idata_start) 
+	{
+		. = ALIGN(4);
+		__data_start = . ;
+		*(.data)
+		. = ALIGN(4);
+		_edata	=  . ;
+	} > INTRAM
+
+	__idata_end = __idata_start + SIZEOF(.data);
+	
+	.bss	   :
+	{
+	  . = ALIGN(4);
+	  __bss_start = .;
+	  *(.bss)
+	  *(COMMON)
+	  . = ALIGN(4);
+	  __bss_end = .;
+	} > INTRAM
+	
+	.sdata ALIGN (4) :
+	{
+		PROVIDE (__gp = . + 0x8000);
+		*(.sdata)
+	} > INTRAM
+	
+	.tdata ALIGN (4) :
+	{
+		PROVIDE (__ep = .);
+		*(.tbyte)
+		*(.tcommon_byte)
+		*(.tdata)
+		*(.tbss)
+		*(.tcommon)
+	} > INTRAM
+	
+	.comment 0 : { *(.comment) }	
+	.debug			0 : { *(.debug) }
+	.line			0 : { *(.line) }
+	.debug_srcinfo	0 : { *(.debug_srcinfo) }
+	.debug_sfnames	0 : { *(.debug_sfnames) }
+	.debug_aranges	0 : { *(.debug_aranges) }
+	.debug_pubnames 0 : { *(.debug_pubnames) }
+}
Index: /atk2-sc3_fl850f1l/arch/v850_ghs/MANIFEST
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ghs/MANIFEST	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ghs/MANIFEST	(revision 117)
@@ -0,0 +1,20 @@
+PACKAGE atk2-sc3
+
+MANIFEST
+Makefile.prc
+Makefile.sample
+Platform_Types.h
+ldscript.tf
+prc.tf
+prc_insn.h
+prc_mpu.h
+prc_opt.tf
+prc_svc.h
+prc_tool.S
+prc_user.txt
+rh850_f1h_6m_pe1only.ld
+rh850_f1h_6m_pe2only.ld
+rh850_f1l_2m.ld
+v850asm.inc
+v850e2_fl4_2m.ld
+v850e2_px4_3507.ld
Index: /atk2-sc3_fl850f1l/arch/v850_ghs/Makefile.prc
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ghs/Makefile.prc	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ghs/Makefile.prc	(revision 117)
@@ -0,0 +1,219 @@
+#
+#  TOPPERS ATK2
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+#      Automotive Kernel Version 2
+#
+#  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#  Copyright (C) 2012-2013 by FUJISOFT INCORPORATED, JAPAN
+#  Copyright (C) 2012-2013 by FUJITSU VLSI LIMITED, JAPAN
+#  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+#  Copyright (C) 2012-2013 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+#  Copyright (C) 2012-2013 by Renesas Electronics Corporation, JAPAN
+#  Copyright (C) 2012-2013 by Sunny Giken Inc., JAPAN
+#  Copyright (C) 2012-2013 by TOSHIBA CORPORATION, JAPAN
+#  Copyright (C) 2012-2013 by Witz Corporation, JAPAN
+#  Copyright (C) 2013 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プロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+#  $Id: Makefile.prc 182 2015-06-24 07:14:37Z t_ishikawa $
+#
+
+#
+#		Makefile のプロセッサ依存部（V850用）
+#
+
+#
+#  プロセッサ名，開発環境名の定義
+#
+PRC  = v850
+TOOL = ghs
+
+#
+#  プロセッサ依存部ディレクトリ名の定義
+#
+PRCDIR = $(SRCDIR)/arch/$(PRC)_$(TOOL)
+PRCDIR_GCC = $(SRCDIR)/arch/$(PRC)_gcc
+
+#
+#  コンパイルオプション
+#
+INCLUDES := $(INCLUDES) -I$(PRCDIR) -I$(PRCDIR_GCC) -I$(SRCDIR)/arch/$(TOOL) 
+COPTS := $(COPTS) -ansi -preprocess_assembly_files \
+         -srec -kanji=euc -noobj \
+         -no_callt \
+         -prepare_dispose \
+         -registermode=32 \
+         -keeptempfiles \
+         --no_commons \
+         -dual_debug -G\
+         --no_slash_comment \
+         -sda=all \
+         -reserve_r2
+
+LDFLAGS := $(LDFLAGS) -Wl,-append
+
+#
+#  アーキテクチャの切り替え
+#
+ifeq ($(ARCH),V850E2V3)
+	COPTS := $(COPTS) -cpu=v850e2v3
+	CDEFS := $(CDEFS) -D__v850e2v3__
+	KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) Os_Lcfg_asm.o
+endif
+ifeq ($(ARCH),V850E3V5)
+	COPTS := $(COPTS) -cpu=v850e3v5
+	CDEFS := $(CDEFS) -D__v850e3v5__
+endif
+
+#
+#  コアタイプ(実装)による切り替え
+#
+ifeq ($(CORETYPE),RH850G3K)
+	#COPTS := $(COPTS) -fsoft
+	COPTS := $(COPTS) -fsoft -sda=0
+endif
+ifeq ($(CORETYPE),RH850G3M)
+	ifeq ($(USE_HARD_FLOAT),true)
+		COPTS := $(COPTS) -DTOPPERS_USE_HFLOAT
+	else
+		COPTS := $(COPTS) -fsoft
+	endif
+endif
+
+#
+#  最適化に関するオプション
+#
+# Makefile で -O2 を付けない
+OMIT_OPTIMIZATION = true
+#COPTS := $(COPTS) -Ospace -Omax -Olink -Ointerproc
+COPTS := $(COPTS) -Odebug
+
+#
+#  警告に関するオプション
+#
+COPTS := $(COPTS) --prototype_warnings  \
+                   -Wimplicit-int \
+                   -Wshadow \
+                   -Wundef \
+                   -Wtrigraphs \
+                   --assembler_warnings \
+                   -linker_warnings \
+                   --diag_suppress 174,188,191,767 
+
+#
+#  カーネルに関する定義
+#
+KERNEL_DIR := $(KERNEL_DIR) $(PRCDIR) $(PRCDIR_GCC)
+KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) prc_support.o prc_tool.o 
+KERNEL_COBJS := $(KERNEL_COBJS) prc_config.o prc_mpu.o 
+
+#
+#  GNU開発環境のターゲットアーキテクチャの定義
+#
+GCC_TARGET = v850-elf
+
+#
+#  スタートアップモジュールに関する定義
+#
+START_OBJS := $(START_OBJS) start.o
+
+$(START_OBJS): %.o: %.S
+	$(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<
+
+$(START_OBJS:.o=.d): %.d: %.S
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) \
+		-O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
+
+
+
+#
+#  リンクに関する設定
+#
+LDFLAGS := $(LDFLAGS) -e __reset -nostartfiles
+
+CFG1_OUT_LDFLAGS := -nostartfiles
+CFG1_OUT_LDFLAGS := $(CFG1_OUT_LDFLAGS) $(LDFLAGS)
+CFG2_OUT_LDFLAGS := $(CFG2_OUT_LDFLAGS) $(LDFLAGS)
+CFG3_OUT_LDFLAGS := $(CFG3_OUT_LDFLAGS) $(LDFLAGS)
+
+# メモリ配置決定前の暫定的なリンカスクリプト
+CFG2_OUT_LDSCRIPT = cfg2_out.ld
+# メモリ配置決定時のリンカスクリプト
+CFG3_OUT_LDSCRIPT = cfg3_out.ld
+# 最終的なリンカスクリプト
+LDSCRIPT = ldscript.ld
+ifeq ($(ARCH),V850E2V3)
+	USE_CFG_PASS3 = true
+endif
+
+$(LDSCRIPT): kernel_cfg.timestamp
+$(CFG2_OUT_LDSCRIPT): kernel_cfg.timestamp
+
+#
+#  依存関係の定義
+#
+cfg1_out.c: $(PRCDIR_GCC)/prc_def.csv
+Os_Lcfg.timestamp: $(PRCDIR)/prc.tf
+$(OBJFILE): $(PRCDIR_GCC)/prc_mem.tf
+offset.h: $(PRCDIR_GCC)/prc_offset.tf
+
+
+#
+#  ジェネレータ関係の変数の定義
+#
+CFG_TABS := $(CFG_TABS) --cfg1-def-table $(PRCDIR_GCC)/prc_def.csv
+
+#
+#  開発ツールのコマンド名の定義
+#
+ifeq ($(ARCH),V850E2V3)
+	CC = ccv850.exe
+	AR = ccv850.exe
+endif
+
+ifeq ($(ARCH),V850E3V5)
+	CC = ccrh850.exe
+	AR = ccrh850.exe
+endif
+
+NM = nm
+
+#
+#  clean で削除するファイル
+#
+CLEAN_FILES := $(CLEAN_FILES) *.dbo *.dla *.map *.run *.dnm *.dep *.dba *.si *.inf
Index: /atk2-sc3_fl850f1l/arch/v850_ghs/Makefile.sample
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ghs/Makefile.sample	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ghs/Makefile.sample	(revision 117)
@@ -0,0 +1,706 @@
+#
+#  TOPPERS ATK2
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+#      Automotive Kernel Version 2
+#
+#  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+#                              Toyohashi Univ. of Technology, JAPAN
+#  Copyright (C) 2006-2014 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#  Copyright (C) 2012-2014 by FUJI SOFT INCORPORATED, JAPAN
+#  Copyright (C) 2012-2013 by Spansion LLC, USA
+#  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+#  Copyright (C) 2012-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+#  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+#  Copyright (C) 2012-2014 by Sunny Giken Inc., JAPAN
+#  Copyright (C) 2012-2014 by TOSHIBA CORPORATION, JAPAN
+#  Copyright (C) 2012-2014 by Witz Corporation, JAPAN
+#
+#  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+#  $Id: Makefile.sample 187 2015-06-25 03:39:04Z t_ishikawa $
+#
+
+#
+#  ターゲットの指定（Makefile.targetで上書きされるのを防ぐため）
+#
+all:
+
+#
+#  ターゲット略称の定義
+#
+TARGET = @(TARGET)
+
+OMIT_WARNING_ALL = true
+
+#
+#  プログラミング言語の定義
+#
+SRCLANG = @(SRCLANG)
+ifeq ($(SRCLANG),c++)
+  USE_CXX = true
+  CXXLIBS = -lstdc++ -lm -lc
+  CXXRTS = cxxrt.o newlibrt.o
+endif
+
+#
+#  ソースファイルのディレクトリの定義
+#
+SRCDIR = @(SRCDIR)
+
+#
+#  オブジェクトファイル名の拡張子の設定
+#
+OBJEXT = @(OBJEXT)
+
+#
+#  実行環境の定義（ターゲット依存に上書きされる場合がある）
+#
+DBGENV := @(DBGENV)
+
+#
+#  カーネルライブラリ（libkernel.a）のディレクトリ名
+#  （カーネルライブラリもmake対象にする時は，空に定義する）
+#
+KERNEL_LIB = @(KERNEL_LIB)
+
+#
+#  カーネルを関数単位でコンパイルするかどうかの定義
+#
+KERNEL_FUNCOBJS = @(KERNEL_FUNCOBJS)
+
+#
+#  トレースログを取得するかどうかの定義
+#
+ENABLE_TRACE = @(ENABLE_TRACE)
+
+#
+#  システムタイマ(タイマドライバ)を使用するかどうかの定義
+#
+ENABLE_SYS_TIMER = @(ENABLE_SYS_TIMER)
+
+#
+#  ハードウェアカウンタを無効にするかどうかの定義
+#
+OMIT_HW_COUNTER = @(OMIT_HW_COUNTER)
+
+#
+#  トレースログに関する設定
+#
+ifeq ($(ENABLE_TRACE),true)
+      ENABLE_SYS_TIMER = true
+      CDEFS := $(CDEFS) -DTOPPERS_ENABLE_TRACE
+      KERNEL_DIR := $(KERNEL_DIR) $(SRCDIR)/arch/logtrace
+      KERNEL_COBJS := $(KERNEL_COBJS) trace_config.o trace_dump.o
+endif
+
+#
+#  コンフィギュレーションファイルに関する定義
+#
+CFGNAME = @(CFGNAME)
+ifeq ($(CFGNAME),sample1)
+  CFGNAME := $(CFGNAME) target_serial
+endif
+ifdef ENABLE_SYS_TIMER
+  CFGNAME := $(CFGNAME) target_timer
+endif
+ifndef OMIT_HW_COUNTER
+  CFGNAME := $(CFGNAME) target_hw_counter
+endif
+CFGNAME := $(CFGNAME) target_mem
+
+#
+#  ユーティリティプログラムの名称
+#
+PERL = @(PERL)
+CFG = @(CFG)
+
+#
+#  オブジェクトファイル名の定義
+#
+OBJNAME = atk2-sc3
+ifdef OBJEXT
+  OBJFILE = $(OBJNAME).$(OBJEXT)
+  CFG1_OUT = cfg1_out.$(OBJEXT)
+  CFG2_OUT = cfg2_out.$(OBJEXT)
+  CFG3_OUT = cfg3_out.$(OBJEXT)
+else
+  OBJFILE = $(OBJNAME)
+  CFG1_OUT = cfg1_out
+  CFG2_OUT = cfg2_out
+  CFG3_OUT = cfg3_out
+endif
+
+#
+#  ターゲット依存部のディレクトリの定義
+#
+TARGETDIR = $(SRCDIR)/target/$(TARGET)
+
+#
+#  ターゲット依存の定義のインクルード
+#
+include $(TARGETDIR)/Makefile.target
+
+#
+#  ジェネレータ関係の変数の定義
+#
+PASS2_TF = $(SRCDIR)/kernel/kernel.tf $(SRCDIR)/kernel/kernel_common.tf
+DEF_TABS = $(SRCDIR)/kernel/kernel.csv
+CFG_KERNEL = atk2
+CFG_TABS := --ini-file $(SRCDIR)/kernel/kernel.ini $(CFG_TABS)
+CFG_TABS := --api-table $(DEF_TABS) \
+			--cfg1-def-table $(SRCDIR)/kernel/kernel_def.csv $(CFG_TABS)
+CFG_OBJS := Os_Lcfg.o kernel_mem.o ioc.o $(CFG_OBJS)
+CFG2_OUT_SRCS := Os_Lcfg.h Os_Lcfg.c Os_Cfg.h kernel_mem2.c Ioc.c Ioc.h $(CFG2_OUT_SRCS)
+CFG3_OUT_SRCS := kernel_mem3.c $(CFG3_OUT_SRCS)
+CFG2_OBJS := Os_Lcfg.o kernel_mem2.o ioc.o $(CFG2_OBJS)
+CFG3_OBJS := Os_Lcfg.o kernel_mem3.o ioc.o $(CFG3_OBJS)
+ifndef USE_CFG_PASS3
+	ALL_CFG_OBJS := $(CFG_OBJS) cfg1_out.o kernel_mem2.o $(ALL_CFG_OBJS)
+else
+	ALL_CFG_OBJS := $(CFG_OBJS) cfg1_out.o kernel_mem2.o kernel_mem3.o $(ALL_CFG_OBJS)
+endif
+
+#
+#  共通コンパイルオプションの定義
+#
+COPTS := $(COPTS) -g @(COPTS)
+ifndef OMIT_WARNING_ALL
+  COPTS := $(COPTS) -Wall -Wno-unused-label -Wpointer-arith
+endif
+ifndef OMIT_OPTIMIZATION
+  COPTS := $(COPTS) -O2
+endif
+CDEFS := $(CDEFS) @(CDEFS) -DUSE_KERNEL_LIBRARY_SYSLOG
+INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR)/arch -I$(SRCDIR) $(INCLUDES)
+LDFLAGS := $(LDFLAGS) @(LDFLAGS)
+CFG1_OUT_LDFLAGS := $(CFG1_OUT_LDFLAGS)
+CFG2_OUT_LDFLAGS := $(CFG2_OUT_LDFLAGS)
+CFG3_OUT_LDFLAGS := $(CFG3_OUT_LDFLAGS)
+LIBS := $(LIBS) $(CXXLIBS)
+CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES)
+
+#
+#  アプリケーションプログラムに関する定義
+#
+APPLNAME = @(APPLNAME)
+APPLDIR = @(APPLDIR)
+APPL_CFG_INPUT := $(foreach file,$(CFGNAME),$(file).arxml)
+
+APPL_DIR = $(APPLDIR) $(SRCDIR)/library
+APPL_ASMOBJS =
+ifdef USE_CXX
+  APPL_CXXOBJS = $(APPLNAME).o @(APPLOBJS)
+  APPL_COBJS =
+else
+  APPL_COBJS = $(APPLNAME).o @(APPLOBJS)
+endif
+APPL_CFLAGS =
+APPL_LIBS =
+ifdef APPLDIR
+  INCLUDES := $(INCLUDES) $(foreach dir,$(APPLDIR),-I$(dir))
+endif
+
+
+#
+#  システムモジュールに関する定義
+#
+SYSMOD_DIR := $(SYSMOD_DIR) $(SRCDIR)/sysmod $(SRCDIR)/library
+SYSMOD_ASMOBJS := $(SYSMOD_ASMOBJS)
+SYSMOD_COBJS := $(SYSMOD_COBJS) banner.o syslog.o serial.o \
+				log_output.o vasyslog.o t_perror.o strerror.o chkobj.o \
+				$(CXXRTS)
+SYSMOD_CFLAGS := $(SYSMOD_CFLAGS)
+SYSMOD_LIBS := $(SYSMOD_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)
+KERNEL_CFLAGS := $(KERNEL_CFLAGS) -I$(SRCDIR)/kernel
+ifdef OMIT_MAKEOFFSET
+  OFFSET_H =
+else
+  OFFSET_H = offset.h
+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) $(SYSMOD_DIR) $(APPL_DIR)
+vpath %.S $(KERNEL_DIR) $(SYSMOD_DIR) $(APPL_DIR)
+vpath %.arxml $(KERNEL_DIR) $(SYSMOD_DIR) $(APPL_DIR)
+
+#
+#  コンパイルのための変数の定義
+#
+KERNEL_LIB_OBJS = $(KERNEL_ASMOBJS) $(KERNEL_COBJS) $(KERNEL_LCOBJS)
+SYSMOD_OBJS = $(SYSMOD_ASMOBJS) $(SYSMOD_COBJS)
+APPL_OBJS = $(APPL_ASMOBJS) $(APPL_COBJS) $(APPL_CXXOBJS)
+ALL2_OBJS = $(START_OBJS) $(APPL_OBJS) $(SYSMOD_OBJS) $(CFG2_OBJS) \
+											$(END_OBJS) $(HIDDEN_OBJS)
+ALL_OBJS = $(START_OBJS) $(APPL_OBJS) $(SYSMOD_OBJS) $(CFG_OBJS) \
+											$(END_OBJS) $(HIDDEN_OBJS)
+ifdef KERNEL_LIB
+  ALL_LIBS = $(APPL_LIBS) $(SYSMOD_LIBS) -lkernel $(LIBS)
+  LIBS_DEP = $(filter %.a,$(ALL_LIBS)) $(KERNEL_LIB)/libkernel.a
+  LDFLAGS := $(LDFLAGS) -L$(KERNEL_LIB)
+  CFG2_OUT_LDFLAGS := $(CFG2_OUT_LDFLAGS) -L$(KERNEL_LIB)
+  CFG3_OUT_LDFLAGS := $(CFG3_OUT_LDFLAGS) -L$(KERNEL_LIB)
+else
+  ALL_LIBS = $(APPL_LIBS) $(SYSMOD_LIBS) libkernel.a $(LIBS)
+  LIBS_DEP = $(filter %.a,$(ALL_LIBS))
+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
+ifdef CFG3_OUT_LDSCRIPT
+  CFG3_OUT_LDFLAGS := $(CFG3_OUT_LDFLAGS) -T $(CFG3_OUT_LDSCRIPT)
+endif
+
+ifdef XML_CFG
+$(APPL_CFG_INPUT): $(APPL_CFG)
+	cpp $(INCLUDES) -P $< > $@
+	sed -i '/^$$/d' $@
+endif
+
+#
+#  オフセットファイル（offset.h）の生成規則
+#
+offset.h: $(APPL_CFG_INPUT) Os_Lcfg.timestamp $(SRCDIR)/kernel/genoffset.tf
+	$(CFG) --pass 3 --kernel $(CFG_KERNEL) $(INCLUDES) \
+				--rom-image cfg1_out.srec --symbol-table cfg1_out.syms \
+				-T $(OFFSET_TF) $(CFG_TABS) $(filter %.arxml,$^)
+
+#
+#  カーネルのコンフィギュレーションファイルの生成
+#
+cfg1_out.c: $(APPL_CFG_INPUT) $(SRCDIR)/kernel/kernel_def.csv
+	$(CFG) --pass 1 --kernel $(CFG_KERNEL) $(INCLUDES) $(CFG_TABS) $(filter %.arxml,$^)
+
+$(CFG2_OUT_SRCS): Os_Lcfg.timestamp
+Os_Lcfg.timestamp: $(APPL_CFG_INPUT) $(START_OBJS) cfg1_out.o $(END_OBJS) $(HIDDEN_OBJS) $(PASS2_TF) $(DEF_TABS)
+	$(LINK) $(CFLAGS) $(CFG1_OUT_LDFLAGS) -o $(CFG1_OUT) \
+						$(START_OBJS) cfg1_out.o $(END_OBJS)
+	$(NM) -n $(CFG1_OUT) > cfg1_out.syms
+	cp cfg1_out.run cfg1_out.srec
+	$(CFG) --pass 2 --kernel $(CFG_KERNEL) $(INCLUDES) \
+				-T $(TARGETDIR)/target.tf $(CFG_TABS) $(filter %.arxml,$^)
+
+#  既存Os_Cfg.hとpass2で生成したOs_Cfg_tmp.hとの差分がある場合Os_Cfg.hを上書き
+	if ! cmp Os_Cfg.h Os_Cfg_tmp.h >/dev/null 2>&1 ; then \
+		mv Os_Cfg_tmp.h Os_Cfg.h ;\
+	else \
+		rm Os_Cfg_tmp.h ;\
+	fi
+ifdef KERNEL_LIB
+	if ! cmp Os_Cfg.h $(KERNEL_LIB)/Os_Cfg.h >/dev/null 2>&1 ; then \
+		echo Config files Os_Cfg.h and $(KERNEL_LIB)/Os_Cfg.h differ! ;\
+		diff -c Os_Cfg.h $(KERNEL_LIB)/Os_Cfg.h ;\
+		false;\
+	fi
+endif
+
+	touch -r Os_Lcfg.c Os_Lcfg.timestamp
+#
+#	パス3を使用する場合
+#
+ifdef USE_CFG_PASS3
+kernel_mem3.c: $(APPL_CFG_INPUT) Os_Lcfg.timestamp $(ALL2_OBJS) $(LIBS_DEP) $(SRCDIR)/kernel/kernel_mem.tf
+	$(LINK) $(CFLAGS) $(CFG2_OUT_LDFLAGS) -o $(CFG2_OUT) $(START_OBJS) \
+			$(APPL_OBJS) $(SYSMOD_OBJS) $(CFG2_OBJS) $(ALL_LIBS) $(END_OBJS)
+	$(NM) -n $(CFG2_OUT) > cfg2_out.syms
+	cp cfg2_out.run cfg2_out.srec
+	rm -f $(CFG3_OUT_LDSCRIPT)
+	$(CFG) --pass 3 --kernel $(CFG_KERNEL) $(INCLUDES) \
+				--rom-image cfg2_out.srec --symbol-table cfg2_out.syms \
+				-T $(TARGETDIR)/target_opt.tf $(CFG_TABS) $(filter %.arxml,$^)
+	if ! [ -f $(CFG3_OUT_LDSCRIPT) ]; then \
+		sed "s/kernel_mem2\.o/kernel_mem3\.o/g" < $(CFG2_OUT_LDSCRIPT) \
+													> $(CFG3_OUT_LDSCRIPT); \
+	fi
+
+
+kernel_mem.c: $(APPL_CFG_INPUT) $(CFG3_OBJS) $(SRCDIR)/kernel/kernel_opt.tf $(LIBS_DEP)
+	$(LINK) $(CFLAGS) $(CFG3_OUT_LDFLAGS) -o $(CFG3_OUT) $(START_OBJS) \
+			$(APPL_OBJS) $(SYSMOD_OBJS) $(CFG3_OBJS) $(ALL_LIBS) $(END_OBJS)
+	$(NM) -n $(CFG3_OUT) > cfg3_out.syms
+	cp cfg3_out.run cfg3_out.srec
+	rm -f $(LDSCRIPT)
+	$(CFG) --pass 4 --kernel $(CFG_KERNEL) $(INCLUDES) \
+				--rom-image cfg3_out.srec --symbol-table cfg3_out.syms \
+				-T $(TARGETDIR)/target_mem.tf $(CFG_TABS) $(filter %.arxml,$^)
+	if ! [ -f $(LDSCRIPT) ]; then \
+		sed "s/kernel_mem3\.o/kernel_mem\.o/g" < $(CFG3_OUT_LDSCRIPT) \
+															> $(LDSCRIPT); \
+	fi
+	sed -e '/_kernel_mo_/d' cfg3_out.syms | awk '{print $$1" "$$3}' > cfg3_out-tmp.syms
+	mv cfg3_out-tmp.syms cfg3_out.syms
+endif
+
+#
+#  パス3の最適化を使用しない
+#
+ifndef USE_CFG_PASS3
+kernel_mem.c: $(APPL_CFG_INPUT) $(CFG2_OBJS) $(SRCDIR)/kernel/kernel_mem.tf $(ATK2_SCHEMA) $(LIBS_DEP)
+	$(LINK) $(CFLAGS) $(CFG2_OUT_LDFLAGS) -o $(CFG2_OUT) $(START_OBJS) \
+			$(APPL_OBJS) $(SYSMOD_OBJS) $(CFG2_OBJS) $(ALL_LIBS) $(END_OBJS)
+	$(NM) -n $(CFG2_OUT) > cfg2_out.syms
+	cp cfg2_out.run cfg2_out.srec
+	touch cfg3_out.tf
+	$(CFG) --pass 4 --kernel $(CFG_KERNEL) $(INCLUDES) \
+				--rom-image cfg2_out.srec --symbol-table cfg2_out.syms \
+				-T $(TARGETDIR)/target_mem.tf $(CFG_TABS) $(filter %.arxml,$^)
+	if ! [ -f $(LDSCRIPT) ]; then \
+		sed "s/kernel_mem2\.o/kernel_mem\.o/g" < $(CFG2_OUT_LDSCRIPT) \
+															> $(LDSCRIPT); \
+	fi
+	sed -e '/_kernel_mo_/d' cfg2_out.syms | awk '{print $$1" "$$3}' > cfg2_out-tmp.syms
+	mv cfg2_out-tmp.syms cfg2_out.syms
+endif
+
+
+#
+#  カーネルライブラリファイルの生成
+#
+libkernel.a: $(OFFSET_H) $(KERNEL_LIB_OBJS)
+	rm -f libkernel.a
+	$(AR) $(KERNEL_LIB_OBJS) -archive -o libkernel.a
+
+#
+#  特別な依存関係の定義
+#
+banner.o: Os_Lcfg.timestamp $(filter-out banner.o,$(ALL2_OBJS)) $(LIBS_DEP)
+
+#
+#  全体のリンク
+#
+$(OBJFILE): $(APPL_CFG_INPUT) Os_Lcfg.timestamp $(ALL_OBJS) $(LIBS_DEP)
+	$(LINK) $(CFLAGS) $(LDFLAGS) -o $(OBJFILE) $(START_OBJS) \
+			-Wl,-map=$(OBJNAME).map \
+			$(APPL_OBJS) $(SYSMOD_OBJS) $(CFG_OBJS) $(ALL_LIBS) $(END_OBJS)
+	$(NM) -n $(OBJFILE) | awk '{print $$1" "$$3}' > $(OBJNAME).syms
+	cp $(OBJFILE) $(OBJNAME).srec
+ifndef USE_CFG_PASS3
+	diff cfg2_out.syms $(OBJNAME).syms
+else
+	diff cfg3_out.syms $(OBJNAME).syms
+endif
+#	$(OBJDUMP) -d $(OBJFILE) > $(OBJNAME).dump
+
+#
+#  バイナリファイルの生成
+#
+$(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 $(OBJNAME).map
+	rm -f kernel_mem.c kernel_mem.h $(CFG3_OUT) cfg3_out.tf cfg3_out.syms cfg3_out.srec
+	rm -f $(CFG2_OUT) cfg2_out.tf cfg2_out.syms cfg2_out.srec
+	rm -f Os_Lcfg.timestamp $(CFG2_OUT_SRCS) $(CFG3_OUT_SRCS)
+	rm -f cfg1_out.c $(CFG1_OUT) cfg1_out.syms cfg1_out.srec
+	rm -f $(OBJNAME).dump
+	rm -f $(APPLNAME)-tmp.arxml
+	rm -f kernel.res
+	rm -f $(LDSCRIPT) $(CFG2_OUT_LDSCRIPT) $(CFG3_OUT_LDSCRIPT)
+ifdef XML_CFG
+	rm -f $(APPL_CFG_INPUT)
+endif
+ifndef KERNEL_LIB
+	rm -f libkernel.a
+endif
+	rm -f offset.h
+
+.PHONY: cleankernel
+cleankernel:
+	rm -rf $(KERNEL_LIB_OBJS)
+	rm -f offset.h
+
+.PHONY: cleandep
+cleandep:
+	if ! [ -f Makefile.depend ]; then \
+		rm -f Os_Lcfg.timestamp $(CFG2_OUT_SRCS); \
+		rm -f cfg1_out.c cfg1_out.o $(CFG1_OUT) cfg1_out.syms cfg1_out.srec; \
+		rm -f offset.h; \
+	fi
+	rm -f Makefile.depend
+
+.PHONY: realclean
+realclean: cleandep clean
+	rm -f $(REALCLEAN_FILES)
+
+#
+#  ジェネレータが生成したファイルのコンパイルルールと依存関係作成
+#  ルールの定義
+#
+#  ジェネレータが生成したファイルは，アプリケーションプログラム用，シス
+#  テムサービス用，カーネル用のすべてのオプションを付けてコンパイルする．
+#
+OS_LCFG_CFLAGS = $(APPL_CFLAGS) $(SYSMOD_CFLAGS) $(KERNEL_CFLAGS)
+
+$(ALL_CFG_OBJS): %.o: %.c
+	$(CC) -c $(CFLAGS) $(OS_LCFG_CFLAGS) $<
+
+$(ALL_CFG_OBJS:.o=.s): %.s: %.c
+	$(CC) -S $(CFLAGS) $(OS_LCFG_CFLAGS) $<
+
+$(ALL_CFG_OBJS:.o=.d): %.d: %.c
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
+		-O "$(CFLAGS) $(OS_LCFG_CFLAGS)" $< >> Makefile.depend
+
+#
+#  特殊な依存関係作成ルールの定義
+#
+cfg1_out.depend: $(APPL_CFG_INPUT)
+	@$(CFG) -M cfg1_out.c $(INCLUDES) $< >> Makefile.depend
+
+#
+#  依存関係ファイルの生成
+#
+.PHONY: gendepend
+gendepend:
+	@echo "Generating Makefile.depend."
+
+.PHONY: depend
+ifdef KERNEL_LIB
+depend: cleandep Os_Lcfg.timestamp gendepend \
+		cfg1_out.depend cfg1_out.d \
+		$(ALL2_OBJS:.o=.d)
+else
+depend: cleandep $(OFFSET_H) Os_Lcfg.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) $<
+
+$(SYSMOD_COBJS): %.o: %.c
+	$(CC) -c $(CFLAGS) $(SYSMOD_CFLAGS) $<
+
+$(SYSMOD_COBJS:.o=.s): %.s: %.c
+	$(CC) -S $(CFLAGS) $(SYSMOD_CFLAGS) $<
+
+$(SYSMOD_ASMOBJS): %.o: %.S
+	$(CC) -c $(CFLAGS) $(SYSMOD_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
+
+$(SYSMOD_COBJS:.o=.d): %.d: %.c
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
+		-O "$(CFLAGS) $(SYSMOD_CFLAGS)" $< >> Makefile.depend
+
+$(SYSMOD_ASMOBJS:.o=.d): %.d: %.S
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
+		-O "$(CFLAGS) $(SYSMOD_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: /atk2-sc3_fl850f1l/arch/v850_ghs/Platform_Types.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ghs/Platform_Types.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ghs/Platform_Types.h	(revision 117)
@@ -0,0 +1,126 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2013 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2013 by FUJISOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by FUJITSU VLSI LIMITED, JAPAN
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2013 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2013 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2013 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2013 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2013 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013 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: Platform_Types.h 117 2014-12-10 03:58:03Z t_ishikawa $
+ */
+
+/*
+ *		AUTOSAR platform types header file
+ */
+
+#ifndef TOPPERS_PLATFORM_TYPES_H
+#define TOPPERS_PLATFORM_TYPES_H
+
+/*
+ *  Symbol definitions - general
+ */
+#define CPU_TYPE_8		UINT_C(8)
+#define CPU_TYPE_16		UINT_C(16)
+#define CPU_TYPE_32		UINT_C(32)
+
+#define MSB_FIRST		UINT_C(0)
+#define LSB_FIRST		UINT_C(1)
+
+#define HIGH_BYTE_FIRST	UINT_C(0)
+#define LOW_BYTE_FIRST	UINT_C(1)
+
+#ifndef TRUE
+#define TRUE			UINT_C(1)
+#endif /* TRUE */
+
+#ifndef FALSE
+#define FALSE			UINT_C(0)
+#endif /* FALSE */
+
+/*
+ *  Symbol definitions - platform
+ */
+#define CPU_TYPE		(CPU_TYPE_32)
+#define CPU_BIT_ORDER	(MSB_FIRST)
+#define CPU_BYTE_ORDER	(LOW_BYTE_FIRST)
+
+/*
+ *  Stack definitions - platform
+ */
+#define DEFINE_VAR_SEC_NOBITS(type, var, sec)	type __attribute__((section(sec))) var
+#define DEFINE_VAR_SSTACK(type, var)			type __attribute__((section(".prsv_kernel"), aligned(4))) var
+#define DEFINE_VAR_USTACK(type, var, sec)		type __attribute__((section(sec), aligned(16))) var
+#define DEFINE_VAR_NTHKSTK(type, var)			type __attribute__((section(".prsv_kernel"), aligned(64))) var
+
+/*
+ *  Type definitions
+ */
+#ifndef TOPPERS_MACRO_ONLY
+
+typedef unsigned char boolean;
+
+typedef char				char8;
+typedef unsigned char		uint8;
+typedef signed char			sint8;
+typedef unsigned short		uint16;
+typedef signed short		sint16;
+typedef unsigned int		uint32;
+typedef signed int			sint32;
+typedef unsigned long long	uint64;
+typedef signed long long	sint64;
+
+typedef unsigned long	uint8_least;
+typedef unsigned long	uint16_least;
+typedef unsigned long	uint32_least;
+typedef signed long		sint8_least;
+typedef signed long		sint16_least;
+typedef signed long		sint32_least;
+
+typedef float	float32;
+typedef double	float64;
+
+typedef uint32	uintptr;                /* ポインタを格納できる符号無し整数 */
+typedef sint32	sintptr;                /* ポインタを格納できる符号付き整数 */
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_PLATFORM_TYPES_H */
Index: /atk2-sc3_fl850f1l/arch/v850_ghs/ldscript.tf
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ghs/ldscript.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ghs/ldscript.tf	(revision 117)
@@ -0,0 +1,358 @@
+$ ======================================================================
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$  Copyright (C) 2007-2014 by Center for Embedded Computing Systems
+$              Graduate School of Information Science, Nagoya Univ., JAPAN
+$  Copyright (C) 2011-2013 by FUJISOFT INCORPORATED, JAPAN
+$  Copyright (C) 2011-2013 by FUJITSU VLSI LIMITED, JAPAN
+$  Copyright (C) 2011-2013 by NEC Communication Systems, Ltd., JAPAN
+$  Copyright (C) 2011-2013 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+$  Copyright (C) 2011-2013 by Renesas Electronics Corporation, JAPAN
+$  Copyright (C) 2011-2013 by Sunny Giken Inc., JAPAN
+$  Copyright (C) 2011-2013 by TOSHIBA CORPORATION, JAPAN
+$  Copyright (C) 2011-2013 by Witz Corporation, JAPAN
+$
+$  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+$  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+$  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+$  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+$      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+$      スコード中に含まれていること．
+$  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+$      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+$      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+$      の無保証規定を掲載すること．
+$  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+$      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+$      と．
+$    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+$        作権表示，この利用条件および下記の無保証規定を掲載すること．
+$    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+$        報告すること．
+$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+$      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+$      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+$      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+$      免責すること．
+$
+$  AUTOSAR（AUTomotive Open System ARchitecture）は，AUTOSAR仕様に基づ
+$  いたソフトウェアを商用目的で利用する者に対して，AUTOSARパートナーに
+$  なることを求めている．
+$
+$  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+$  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+$  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$  の責任を負わない．
+$
+$  $Id: ldscript.tf 182 2015-06-24 07:14:37Z t_ishikawa $
+$
+
+$ =====================================================================
+$ リンカスクリプトの生成
+$ =====================================================================
+$FILE "cfg3_out.ld"$
+
+/* This file is generated by v850_ghs/ldscript.tf */$NL$
+
+$
+$  ターゲット依存のOUTPUT記述の生成
+$
+$IF ISFUNCTION("GENERATE_OUTPUT")$
+	$GENERATE_OUTPUT()$
+$END$
+
+$
+$  MEMORY記述の生成
+$
+MEMORY {$NL$
+$FOREACH reg REG.ORDER_LIST$
+	$TAB$$FORMAT("%s : ORIGIN = 0x%x, LENGTH = 0x%x",
+				REG.REGNAME[reg], +REG.BASE[reg], +REG.SIZE[reg])$$NL$
+$END$
+$IF ISFUNCTION("GENERATE_MEMORY")$
+	$GENERATE_MEMORY()$
+$END$
+}$NL$
+$NL$
+
+$
+$  変数の初期化
+$
+$reset_lma = 0$
+$provide_gp = 0$
+$data_flg = 0$
+
+$
+$  リンク指定の生成
+$
+SECTIONS {$NL$
+$
+$  ターゲット依存のPROVIDE記述の生成
+$
+$IF ISFUNCTION("GENERATE_PROVIDE")$
+	$GENERATE_PROVIDE()$
+$END$
+
+$ ターゲット依存のセクション記述の生成
+$IF ISFUNCTION("GENERATE_SECTION_FIRST")$
+	$GENERATE_SECTION_FIRST()$
+$END$
+
+$IF TOPPERS_LABEL_ASM$
+	$PREFIX_START = "___start_"$
+	$PREFIX_END   = "___end_"$
+	$PREFIX_LIMIT = "___limit_"$
+$ELSE$
+	$PREFIX_START = "__start_"$
+	$PREFIX_END   = "__end_"$
+	$PREFIX_LIMIT = "__limit_"$
+$END$
+
+$FOREACH moid MO_ORDER$
+	$IF MO.LINKER[moid]$
+        $data_flg = 0$
+$		// セクションの開始記述の生成
+		$IF (MO.SEFLAG[moid] & 0x01) != 0$
+$           // small data section の先頭に.rosdataセクションを配置するための
+$           // ダミーセクション配置
+            $IF (MO.SEFLAG[moid] & 0x400) != 0$
+$                $TAB$.rosdata : {$NL$
+                $TAB$.rosdata : {$NL$
+                $TAB$} > $REG.REGNAME[STANDARD_RAM]$$NL$
+                $NL$$NL$
+			$END$
+$           // .idataセクションを配置するための記述
+$           // およびアライン記述
+			$IF !OMIT_IDATA && !EQ(MO.ILABEL[moid], "")$
+                $TAB$.ROM_NOCOPY.$MO.SLABEL[moid]$ ROM(.$MO.SLABEL[moid]$): {$NL$
+                $TAB$} > $REG.REGNAME[STANDARD_ROM]$$NL$
+                $TAB$$PREFIX_START$$MO.ILABEL[moid]$ = ADDR(.ROM_NOCOPY.$MO.SLABEL[moid]$);$NL$
+			$END$
+			$TAB$.$MO.SLABEL[moid]$$SPC$
+			$IF (MO.SEFLAG[moid] & 0x40) == 0 && data_flg == 0$
+                $IF LENGTH(MO.REALBASE[moid])$
+				    ($FORMAT("0x%x", MO.REALBASE[moid])$)$SPC$
+                $ELSE$
+				    ALIGN($TARGET_SEC_ALIGN_STR$)$SPC$
+                $END$
+			$ELIF LENGTH(MO.REALBASE[moid])$
+                ($FORMAT("0x%x", MO.REALBASE[moid])$)$SPC$
+            $ELIF data_flg == 1$
+                ($PREFIX_START$$MO.SLABEL[moid]$)$SPC$
+			$END$
+			$IF (MO.MEMATR[moid] & TA_NOWRITE) == 0
+							&& (MO.MEMATR[moid] & TA_MEMINI) == 0$
+				(NOLOAD)$SPC$
+			$END$
+            :$SPC$
+			{
+            $IF LENGTH(MO.COMMENT[moid])$
+                $SPC$/* $MO.COMMENT[moid]$ */$SPC$
+            $END$
+            $NL$
+		$END$
+
+$		// セクションとメモリオブジェクトの開始ラベルの生成
+		$IF (MO.SEFLAG[moid] & 0x400) != 0$
+			$IF ISFUNCTION("GENERATE_GP_LABEL")$
+				$GENERATE_GP_LABEL()$
+			$END$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x100) != 0$
+			$IF (MO.MEMATR[moid] & TA_SDATA) == 0$
+				$TAB$$TAB$$PREFIX_START$srpw_all = .;$NL$
+			$ELSE$
+				$TAB$$TAB$$PREFIX_START$ssrpw_all = .;$NL$
+			$END$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x10) != 0$
+			$IF !EQ(MO.PLABEL[moid], "")$
+				$TAB$$TAB$$PREFIX_START$$MO.PLABEL[moid]$ = .;$NL$
+			$END$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x01) != 0$
+			$IF !EQ(MO.SLABEL[moid], ALT(omit_start_slabel,"")) && data_flg == 0$
+				$TAB$$TAB$$PREFIX_START$$MO.SLABEL[moid]$ = .;$NL$
+			$END$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x04) != 0$
+			$IF (MO.SEFLAG[moid] & 0x01) == 0$
+				$NL$
+			$END$
+			$IF !EQ(MO.MLABEL[moid], MO.SLABEL[moid])
+					&& !EQ(MO.MLABEL[moid], ALT(omit_start_mlabel,""))$
+				$TAB$$TAB$$PREFIX_START$$MO.MLABEL[moid]$ = .;$NL$
+			$END$
+			$TAB$$TAB$
+		$END$
+
+$		// リンクするファイル記述の生成
+		$section_dscr = SECTION_DESCRIPTION(MO.SECTION[moid])$
+		$IF MO.TYPE[moid] == TOPPERS_ATTMOD$
+			$IF EQ(MO.MODULE[moid], "kernel_mem.o")$
+                $FOREACH sec section_dscr$
+                    kernel_mem3.o($sec$)$SPC$
+                $END$
+			$ELSE$
+				$module_name = REGEX_REPLACE(MO.MODULE[moid],"\.a$","\.a(\*")$
+                $FOREACH sec section_dscr$
+                    $module_name$($sec$)$SPC$
+                    $IF !EQ(MO.MODULE[moid], module_name)$
+                        )
+                    $END$
+                $END$
+                $SPC$
+			$END$
+		$ELIF MO.TYPE[moid] == TOPPERS_ATTSEC$
+            *($section_dscr$)$SPC$
+		$ELSE$
+$			// ユーザスタック領域
+			Os_Lcfg.o($section_dscr$)$SPC$
+		$END$
+
+$		// セクションとメモリオブジェクトの終了ラベルの生成
+		$IF (MO.SEFLAG[moid] & 0x08) != 0$
+			$NL$
+			$IF !EQ(MO.MLABEL[moid], MO.SLABEL[moid])$
+				$TAB$$TAB$$PREFIX_END$$MO.MLABEL[moid]$ = .;$NL$
+			$END$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x02) != 0$
+			$TAB$$TAB$$PREFIX_END$$MO.SLABEL[moid]$ = .;$NL$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x200) != 0$
+			$IF (MO.MEMATR[moid] & TA_SDATA) == 0$
+				$TAB$$TAB$$PREFIX_END$srpw_all = .;$NL$
+			$ELSE$
+				$TAB$$TAB$$PREFIX_END$ssrpw_all = .;$NL$
+			$END$
+		$END$
+
+$		// セクションの終了記述の生成
+		$IF (MO.SEFLAG[moid] & 0x02) != 0$
+			$TAB$} > $REG.REGNAME[MO.MEMREG[moid]]$
+			$IF !OMIT_IDATA$
+                $SPC$
+				$IF !EQ(MO.ILABEL[moid], "")$
+					$reset_lma = 1$
+				$ELIF reset_lma$
+					$reset_lma = 0$
+				$END$
+			$END$$NL$
+		$END$
+
+$		// アライン記述の生成
+        $IF LENGTH(MO.REALALIGN[moid])$
+			$TAB$. = ALIGN($FORMAT("0x%x", +MO.REALALIGN[moid])$); /* sdata_shared_align */$NL$
+		$ELIF (MO.SEFLAG[moid] & 0x20) != 0$
+			$TAB$. = ALIGN($TARGET_PAGE_SIZE_STR$);$NL$
+		$ELIF (MO.SEFLAG[moid] & 0x08) != 0$
+$			// セクションが継続している場合には，TABを1つ出力
+			$IF (MO.SEFLAG[moid] & 0x02) == 0$$TAB$$END$
+			$TAB$. = ALIGN($TARGET_SEC_ALIGN_STR$);$NL$
+		$END$
+
+$		// セクションとメモリオブジェクトの上限ラベルの生成
+		$IF (MO.SEFLAG[moid] & 0x08) != 0$
+			$IF !EQ(MO.MLABEL[moid], MO.SLABEL[moid])$
+$				// セクションが継続している場合には，TABを1つ出力
+				$IF (MO.SEFLAG[moid] & 0x02) == 0$$TAB$$END$
+				$TAB$$PREFIX_LIMIT$$MO.MLABEL[moid]$ = .;$NL$
+			$END$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x02) != 0$
+			$TAB$$PREFIX_LIMIT$$MO.SLABEL[moid]$ = .;$NL$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x20) != 0$
+			$IF !EQ(MO.PLABEL[moid], "")$
+				$TAB$$PREFIX_LIMIT$$MO.PLABEL[moid]$ = .;$NL$
+			$END$
+		$END$
+		$IF (MO.SEFLAG[moid] & 0x200) != 0$
+			$IF (MO.MEMATR[moid] & TA_SDATA) == 0$
+				$TAB$$PREFIX_LIMIT$srpw_all = .;$NL$
+			$ELSE$
+				$TAB$$PREFIX_LIMIT$ssrpw_all = .;$NL$
+			$END$
+		$END$
+
+		$IF (MO.SEFLAG[moid] & 0x02) != 0$
+			$NL$
+		$END$
+
+$		// メモリリージョン末でアラインさせるためのダミーセクションの生成
+		$IF (MO.SEFLAG[moid] & 0x80) != 0$
+			$TAB$.$REG.REGNAME[MO.MEMREG[moid]]$_align$SPC$
+            $IF LENGTH(REG.LIMIT_ALIGN[MO.MEMREG[moid]])$
+                ($FORMAT("0x%x", REG.LIMIT_ALIGN[MO.MEMREG[moid]])$)$SPC$
+            $ELSE$
+                ALIGN($TARGET_SEC_ALIGN_STR$)$SPC$
+            $END$
+            : {$NL$
+			$TAB$$TAB$__$REG.REGNAME[MO.MEMREG[moid]]$_align = .;$NL$
+$           // 中身が空の出力セクションはリンカによって無視されるため，
+$           // ダミーのデータを入れておく
+            $TAB$$TAB$. += 1; /*dummy*/$NL$
+			$TAB$} > $REG.REGNAME[MO.MEMREG[moid]]$ $NL$
+			$TAB$. = ALIGN($TARGET_SEC_ALIGN_STR$);$NL$
+			$TAB$___$REG.REGNAME[MO.MEMREG[moid]]$_align = .;$NL$
+			$NL$
+		$END$
+
+        $preid = moid$
+	$END$
+$END$
+
+$FOREACH lsid RANGE(1, numls)$
+	$TAB$$LNKSEC.SECTION[lsid]$ ALIGN(16) : {$NL$
+	$TAB$$TAB$*($LNKSEC.SECTION[lsid]$)$NL$
+	$TAB$} > $REG.REGNAME[LNKSEC.MEMREG[lsid]]$ $NL$
+	$NL$
+$END$
+
+$	// C++testで必要な標準ライブラリで使用するセクション
+$TAB$.dummy_rom_for_cpptest : {$NL$
+$TAB$$TAB$*(.ctors.65535) *(.eh_frame)$NL$
+$TAB$} > $REG.REGNAME[STANDARD_ROM]$$NL$
+$TAB$. = ALIGN(64);$NL$$NL$
+$TAB$.dummy_ram_for_cpptest : {$NL$
+$TAB$$TAB$_end = .;$NL$
+$TAB$} > $REG.REGNAME[STANDARD_RAM]$$NL$
+$TAB$. = ALIGN(64);$NL$$NL$
+
+
+$TAB$.sdabase  : {$NL$
+$TAB$} > $REG.REGNAME[STANDARD_RAM]$$NL$
+$TAB$.tdata ALIGN (4) :$NL$
+$TAB${$NL$
+$TAB$	PROVIDE(__ep = .);$NL$
+$TAB$	*(.tbyte)$NL$
+$TAB$	*(.tcommon_byte)$NL$
+$TAB$	*(.tdata)$NL$
+$TAB$	*(.tbss)$NL$
+$TAB$	*(.tcommon)$NL$
+$TAB$} > $REG.REGNAME[STANDARD_RAM]$$NL$
+$NL$$NL$
+
+$TAB$/DISCARD/ : {$NL$
+$TAB$$TAB$*(.rel.dyn)$NL$
+$TAB$}$NL$
+$NL$
+
+$TAB$/* DWARF debug sections.$NL$
+$TAB$Symbols in the DWARF debugging sections are relative to $NL$
+$TAB$the beginning of the section so we begin them at 0.  */$NL$
+$NL$
+$TAB$/* DWARF 1 */$NL$
+$TAB$.debug          0 : { *(.debug) }$NL$
+$TAB$.line           0 : { *(.line) }$NL$
+$NL$
+$TAB$/* GNU DWARF 1 extensions */$NL$
+$TAB$.debug_srcinfo  0 : { *(.debug_srcinfo) }$NL$
+$TAB$.debug_sfnames  0 : { *(.debug_sfnames) }$NL$
+$NL$
+}$NL$
Index: /atk2-sc3_fl850f1l/arch/v850_ghs/prc.tf
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ghs/prc.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ghs/prc.tf	(revision 117)
@@ -0,0 +1,622 @@
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+$              Graduate School of Information Science, Nagoya Univ., JAPAN
+$  Copyright (C) 2012-2013 by FUJISOFT INCORPORATED, JAPAN
+$  Copyright (C) 2012-2013 by FUJITSU VLSI LIMITED, JAPAN
+$  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+$  Copyright (C) 2012-2013 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+$  Copyright (C) 2012-2013 by Renesas Electronics Corporation, JAPAN
+$  Copyright (C) 2012-2013 by Sunny Giken Inc., JAPAN
+$  Copyright (C) 2012-2013 by TOSHIBA CORPORATION, JAPAN
+$  Copyright (C) 2012-2013 by Witz Corporation, JAPAN
+$  Copyright (C) 2013 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: prc.tf 189 2015-06-26 01:54:57Z t_ishikawa $
+$
+
+$
+$     パス2のアーキテクチャ依存テンプレート（V850用）
+$
+
+$ 
+$  kernel/kernel.tf のターゲット依存部
+$ 
+
+$ 
+$  ユーザスタック領域を確保するコードを出力する
+$  ARGV[1]：タスクID
+$  ARGV[2]：スタックサイズ
+$ 
+$FUNCTION ALLOC_USTACK$
+    StackType _kernel_ustack_$ARGV[1]$[COUNT_STK_T($ARGV[2]$)]
+    $SPC$__attribute__((section($FORMAT("\".user_stack.%s\"", ARGV[1])$)));$NL$
+
+    $TSK.TINIB_USTKSZ[ARGV[1]] = VALUE(FORMAT("ROUND_STK_T(%s)", ARGV[2]), +ARGV[2])$
+    $TSK.TINIB_USTK[ARGV[1]] = FORMAT("_kernel_ustack_%s", ARGV[1])$
+$END$
+
+$ 
+$  ユーザスタック領域のセクション名を返す
+$  ARGV[1]：タスクID
+$ 
+$FUNCTION SECTION_USTACK$
+    $RESULT = FORMAT(".user_stack.%s", ARGV[1])$
+$END$
+
+$
+$  ユーザスタックのアライメント制約に合わせたサイズを返す
+$  ARGV[1]：スタックサイズ（アライン前）
+$  kernel.tfから呼ばれる
+$
+$FUNCTION USTACK_ALIGN_SIZE$
+	$RESULT = (ARGV[1] + CHECK_USTKSZ_ALIGN - 1) & ~(CHECK_USTKSZ_ALIGN - 1)$
+$END$
+
+$
+$  基本タスクの共有スタックの確保
+$  ARGV[1]：共有スタック名
+$  ARGV[2]：共有スタックID(タスク優先度)
+$  ARGV[3]：スタックサイズ(アライメント調整済み)
+$  kernel.tfから呼ばれる
+$
+$FUNCTION ALLOC_SHARED_USTACK$
+	StackType $ARGV[1]$[COUNT_STK_T(ROUND_STK_T($ARGV[3]$))]
+	$SPC$__attribute__((section($FORMAT("\".shared_user_stack.%s\"", ARGV[2])$)));$NL$
+$END$
+
+$
+$  基本タスクの共有スタックのセクション名
+$  ARGV[1]：共有スタックID(タスク優先度)
+$  kernel.tfから呼ばれる
+$
+$FUNCTION SECTION_SHARED_USTACK$
+	$RESULT = FORMAT(".shared_user_stack.%s", ARGV[1])$
+$END$
+
+$
+$  非信頼フックスタックの確保
+$  ARGV[1]：スタック名
+$  ARGV[2]：スタックサイズ
+$  kernel.tfから呼ばれる
+$
+$FUNCTION ALLOC_HSTACK$
+	$name = ARGV[1]$
+	$size = ARGV[2]$
+	StackType $name$[COUNT_STK_T(ROUND_STK_T($HSTACK_SIZE_STR(size)$))] __attribute__((section(".prsv_kernel")));$NL$
+$END$
+
+$
+$  非信頼フックスタックサイズのアライメント制約を満たすように拡張したサイズの文字列
+$  ARGV[1]：スタックサイズ
+$  kernel.tfから呼ばれる
+$
+$FUNCTION HSTACK_SIZE_STR$
+	TOPPERS_ROUND_SZ($ARGV[1]$, CHECK_USTKSZ_ALIGN)
+$END$
+
+$ 
+$  OsMemoryArea はサポートしない
+$ 
+$FUNCTION HOOK_ERRORCHECK_MOD$
+    $IF (MOD.OSAPID[ARGV[1]] != TDOM_KERNEL) &&
+        (MOD.OSAPID[ARGV[1]] != TDOM_NONE) &&
+        !OSAP.TRUSTED[MOD.OSAPID[ARGV[1]]] && 
+        !MOD.EXPORT[ARGV[1]]$
+        $ERROR$
+            OsMemoryModuleExport of OsMemoryModule $MOD.MODULE[ARGV[1]]$ must be true.$NL$
+        $END$
+    $END$
+$END$
+
+$FUNCTION HOOK_ERRORCHECK_SEC$
+    $IF !EQ(SEC.OSAPID[ARGV[1]], "") &&
+        (SEC.OSAPID[ARGV[1]] != TDOM_KERNEL) &&
+        !OSAP.TRUSTED[SEC.OSAPID[ARGV[1]]] &&
+        !SEC.EXPORT[ARGV[1]]$
+        $ERROR$
+            OsMemorySectionExport of OsMemorySection $SEC.SECTION[ARGV[1]]$ must be true.$NL$
+        $END$
+    $END$
+$END$
+
+$FUNCTION HOOK_ERRORCHECK_MEM$
+    $ERROR$
+        OsMemoryArea is not supported.$NL$
+    $END$
+$END$
+
+$ 
+$  標準のセクションのメモリオブジェクト属性の定義
+$ 
+$MEMATR_TEXT = (TA_NOWRITE|TA_EXEC)$
+$MEMATR_RODATA = (TA_NOWRITE|TA_EXEC)$
+$MEMATR_DATA = TA_MEMINI$
+$MEMATR_BSS = TA_NULL$
+$MEMATR_PRSV = TA_MEMPRSV$
+$MEMATR_ROSDATA = (TA_SDATA|TA_MEMINI|TA_NOWRITE|TA_EXEC)$
+$MEMATR_SDATA = (TA_SDATA|TA_MEMINI)$
+$MEMATR_SBSS = TA_SDATA$
+
+$TARGET_MEMATR_USTACK = TA_NULL$
+
+$ 
+$  標準のセクションに関する定義
+$  DSEC.ORDER_LIST：IDのリスト
+$  DESC.SECTION：セクション名
+$  DESC.MEMREG：セクションを配置するメモリリージョン
+$  DESC.MEMATR：セクションのメモリオブジェクト属性
+$ 
+$DSEC.ORDER_LIST = RANGE(0,7)$
+
+$DSEC.SECTION[0] = ".text"$
+$DSEC.MEMREG[0] = 1$
+$DSEC.MEMATR[0] = MEMATR_TEXT$
+
+$DSEC.SECTION[1] = ".rodata"$
+$DSEC.MEMREG[1] = 1$
+$DSEC.MEMATR[1] = MEMATR_RODATA$
+
+$DSEC.SECTION[2] = ".data"$
+$DSEC.MEMREG[2] = 0$
+$DSEC.MEMATR[2] = MEMATR_DATA$
+
+$DSEC.SECTION[3] = ".bss"$
+$DSEC.MEMREG[3] = 0$
+$DSEC.MEMATR[3] = MEMATR_BSS$
+
+$DSEC.SECTION[4] = ".prsv"$
+$DSEC.MEMREG[4] = 0$
+$DSEC.MEMATR[4] = MEMATR_PRSV$
+
+$DSEC.SECTION[5] = ".rosdata"$
+$DSEC.MEMREG[5] = 0$
+$DSEC.MEMATR[5] = MEMATR_ROSDATA$
+
+$DSEC.SECTION[6] = ".sdata"$
+$DSEC.MEMREG[6] = 0$
+$DSEC.MEMATR[6] = MEMATR_SDATA$
+
+$DSEC.SECTION[7] = ".sbss"$
+$DSEC.MEMREG[7] = 0$
+$DSEC.MEMATR[7] = MEMATR_SBSS$
+
+$ 
+$  OSAP初期化コンテキストブロックのための宣言
+$ 
+$FUNCTION PREPARE_OSAPINICTXB$
+    $IF LENGTH(TSK.ID_LIST)$
+        $FOREACH tskid TSK.ID_LIST$
+            $IF !OSAP.TRUSTED[TSK.OSAPID[tskid]]$
+                extern uint8 $FORMAT("__start_user_stack%s", tskid)$;$NL$
+                extern uint8 $FORMAT("__limit_user_stack%s", tskid)$;$NL$
+            $END$
+        $END$
+    $END$
+    $FOREACH tskpri RANGE(TMIN_TPRI, TMAX_TPRI)$
+        $IF LENGTH(shared_ustack_size[tskpri])$
+            extern uint8 $FORMAT("__start_shared_user_stack%s", tskpri)$;$NL$
+            extern uint8 $FORMAT("__limit_shared_user_stack%s", tskpri)$;$NL$
+        $END$
+    $END$
+
+
+    $IF LENGTH(OSAP.ID_LIST)$
+        $FOREACH domid OSAP.ID_LIST$
+            $IF !OSAP.TRUSTED[domid]$
+$   RX領域（専用）
+                extern uint8 __start_text_$OSAP.LABEL[domid]$;$NL$
+                extern uint8 __limit_text_$OSAP.LABEL[domid]$;$NL$
+$   R領域（専用）
+                extern uint8 __start_sram_$OSAP.LABEL[domid]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$;$NL$
+                extern uint8 __limit_sram_$OSAP.LABEL[domid]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$;$NL$
+$   RWX領域（専用）
+                extern uint8 __start_ram_$OSAP.LABEL[domid]$;$NL$
+                extern uint8 __limit_ram_$OSAP.LABEL[domid]$;$NL$
+                extern uint8 __start_sram_$OSAP.LABEL[domid]$;$NL$
+                extern uint8 __limit_sram_$OSAP.LABEL[domid]$;$NL$
+$   共有リード専用ライト
+                extern uint8 $FORMAT("__start_ram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$;$NL$
+                extern uint8 $FORMAT("__limit_ram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$;$NL$
+                extern uint8 $FORMAT("__start_sram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$;$NL$
+                extern uint8 $FORMAT("__limit_sram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$;$NL$
+$                 extern uint8 $FORMAT("__start_ram_%s_srpw", OSAP.LABEL[domid])$;$NL$
+$                 extern uint8 $FORMAT("__limit_ram_%s_srpw", OSAP.LABEL[domid])$;$NL$
+$                 extern uint8 $FORMAT("__start_sram_%s_srpw", OSAP.LABEL[domid])$;$NL$
+$                 extern uint8 $FORMAT("__limit_sram_%s_srpw", OSAP.LABEL[domid])$;$NL$
+            $END$
+        $END$
+        $NL$
+    $END$$NL$
+
+$  共有領域
+    extern uint8 __start_text_$OSAP.LABEL[TDOM_NONE]$;$NL$
+    extern uint8 __limit_text_$OSAP.LABEL[TDOM_NONE]$;$NL$
+    extern uint8 __start_sram_$OSAP.LABEL[TDOM_NONE]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$;$NL$
+    extern uint8 __limit_sram_$OSAP.LABEL[TDOM_NONE]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$;$NL$
+    extern uint8 __start_ram_$OSAP.LABEL[TDOM_NONE]$;$NL$
+    extern uint8 __limit_ram_$OSAP.LABEL[TDOM_NONE]$;$NL$
+    extern uint8 __start_sram_$OSAP.LABEL[TDOM_NONE]$;$NL$
+    extern uint8 __limit_sram_$OSAP.LABEL[TDOM_NONE]$;$NL$
+$   共有リード専用ライト領域全体
+    extern uint8 __start_srpw_all;$NL$
+    extern uint8 __limit_srpw_all;$NL$
+    extern uint8 __start_ssrpw_all;$NL$
+    extern uint8 __limit_ssrpw_all;$NL$
+    $NL$
+$END$
+
+
+$FUNCTION GENERATE_TARGET_MPUINFOB$
+$ 
+$  保護ドメイン初期化ブロックの変更部を生成
+$ 
+    $FILE "Os_Lcfg.h"$
+    extern const uint32 tnum_shared_mem;$NL$
+    extern uint8 * const shared_meminib_table[];$NL$
+    $NL$
+
+    $FILE "kernel_mem2.c"$
+
+    $PREPARE_OSAPINICTXB()$
+
+$END$
+
+$ 
+$  TSKINICTXBの初期化情報を生成
+$ 
+$DOMINICTXB_KERNEL = "{ NULL }"$
+
+$FUNCTION GENERATE_OSAPINIB_MPUINFOB$
+
+    $TAB$$TAB${ 
+    $IF !OSAP.TRUSTED[ARGV[1]]$
+$   共有リード専用ライト
+        $TAB$$TAB$$TAB$$FORMAT("( (uint8 *)&__start_ram_%s_%x_%x )", OSAP.LABEL[ARGV[1]], +DEFAULT_ACPTN[ARGV[1]], +TACP_SHARED)$,/* MPLA 1 */$NL$
+        $TAB$$TAB$$TAB$$FORMAT("( (uint8 *)&__limit_ram_%s_%x_%x )", OSAP.LABEL[ARGV[1]], +DEFAULT_ACPTN[ARGV[1]], +TACP_SHARED)$,/* MPUA 1 */$NL$
+$   共有リード専用ライト（ショートデータ）
+        $TAB$$TAB$$TAB$$FORMAT("( (uint8 *)&__start_sram_%s_%x_%x )", OSAP.LABEL[ARGV[1]], +DEFAULT_ACPTN[ARGV[1]], +TACP_SHARED)$,/* MPLA 2 */$NL$
+        $TAB$$TAB$$TAB$$FORMAT("( (uint8 *)&__limit_sram_%s_%x_%x )", OSAP.LABEL[ARGV[1]], +DEFAULT_ACPTN[ARGV[1]], +TACP_SHARED)$,/* MPUA 2 */$NL$
+        $TAB$$TAB$$TAB$( (uint32)0 ),/* MPRC */$NL$
+    $ELSE$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* MPLA 1 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* MPUA 1 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* MPLA 2 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* MPUA 2 */$NL$
+        $TAB$$TAB$$TAB$( (uint32)0 ),/* MPRC */$NL$
+    $END$
+    $TAB$$TAB$}$NL$
+    $NL$
+$END$
+
+$FUNCTION GENERATE_TSKINICTXB$
+	$TAB$$TAB${$NL$
+    $TAB$$TAB$$TAB$$TSK.TINIB_SSTKSZ[ARGV[1]]$,$NL$
+	$TAB$$TAB$$TAB$((void *)((uint8 *)($TSK.TINIB_SSTK[ARGV[1]]$)
+    $SPC$+ ($TSK.TINIB_SSTKSZ[ARGV[1]]$))),$NL$
+	$IF OSAP.TRUSTED[TSK.OSAPID[ARGV[1]]]$
+        $TAB$$TAB$$TAB$0,$NL$
+        $TAB$$TAB$$TAB$0,$NL$
+    $ELSE$
+        $TAB$$TAB$$TAB$$TSK.TINIB_USTKSZ[ARGV[1]]$,$NL$ 
+        $TAB$$TAB$$TAB$((void *)((uint8 *)($TSK.TINIB_USTK[ARGV[1]]$)
+        $SPC$+ ($TSK.TINIB_USTKSZ[ARGV[1]]$))),$NL$
+    $END$
+	$TAB$$TAB$},$NL$
+$END$
+
+$FUNCTION GENERATE_STKMPUINFOB$
+	$TAB$$TAB${$NL$
+	$IF OSAP.TRUSTED[TSK.OSAPID[ARGV[1]]]$
+        $TAB$$TAB$$TAB$0,$NL$
+        $TAB$$TAB$$TAB$0,$NL$
+    $ELSE$
+		$IF EQ(TSK.STK[ARGV[1]],"NULL")$
+$			// stkがNULLの場合の処理
+            $IF LENGTH(TSK.SHARED_USTK_ID[ARGV[1]])$
+$               // 共有スタック
+                $TAB$$TAB$$TAB$$FORMAT("&__start_shared_user_stack%s", TSK.PRIORITY[ARGV[1]])$,$NL$
+                $TAB$$TAB$$TAB$$FORMAT("&__limit_shared_user_stack%s", TSK.PRIORITY[ARGV[1]])$,$NL$
+            $ELSE$
+$               // 固有スタック
+                $TAB$$TAB$$TAB$$FORMAT("&__start_user_stack%s", ARGV[1])$,$NL$
+                $TAB$$TAB$$TAB$$FORMAT("&__limit_user_stack%s", ARGV[1])$,$NL$
+            $END$
+        $ELSE$
+$			// stkがNULLでない場合の処理
+            $TAB$$TAB$$TAB$$FORMAT("(uint8 *)%s", TSK.TINIB_USTK[ARGV[1]])$,$NL$
+            $TAB$$TAB$$TAB$$FORMAT("(uint8 *)((uint32)%s + %d)", TSK.TINIB_USTK[ARGV[1]], TSK.TINIB_USTKSZ[ARGV[1]])$,$NL$
+        $END$
+    $END$
+	$TAB$$TAB$},$NL$
+$END$
+
+$INCLUDE "arch/v850_gcc/prc_common.tf"$
+
+$IF __v850e2v3__$
+
+$
+$ 割込みベクタと各割込み入口処理
+$
+
+$FILE "Os_Lcfg.c"$
+
+$
+$ ベクタテーブル(例外要因全てを作成）)
+$
+$E_OS_PROTECTION_MEMORY = 14$
+$E_OS_PROTECTION_EXCEPTION = 22$
+
+extern void _reset(void) __attribute__((section (".vector")));$NL$
+void$NL$
+_reset(void)$NL$
+{$NL$
+$
+$ ベクタテーブル(リセット)
+$
+	$TAB$Asm(".extern ___start");$NL$
+	$TAB$Asm("jr __start");
+	$FORMAT(" /* Exception 0x%x */", 0)$$NL$
+	$TAB$Asm("nop");$NL$
+	$TAB$Asm("nop");$NL$
+	$TAB$Asm("nop");$NL$
+	$TAB$Asm("nop");$NL$
+	$TAB$Asm("nop");$NL$
+	$TAB$Asm("nop");$NL$
+$
+$ ベクタテーブル(例外 No1-7)
+$
+$ 例外 No1
+    $TAB$Asm("ldsr  r2, eiwr        /* 0x00: eiwr */");$NL$
+	$TAB$Asm("movea $E_OS_PROTECTION_EXCEPTION$, r0, r2");$NL$
+	$TAB$Asm("jr _fe_exception_entry");
+	$FORMAT(" /* Exception 0x%x */", 1)$$NL$
+	$TAB$Asm("nop");$NL$
+	$TAB$Asm("nop");$NL$
+$ 例外 No2
+    $TAB$Asm("ldsr  r2, eiwr        /* 0x00: eiwr */");$NL$
+	$TAB$Asm("movea $E_OS_PROTECTION_EXCEPTION$, r0, r2");$NL$
+	$TAB$Asm("jr _fe_exception_entry");
+	$FORMAT(" /* Exception 0x%x */", 2)$$NL$
+	$TAB$Asm("nop");$NL$
+	$TAB$Asm("nop");$NL$
+$ 例外 No3
+    $TAB$Asm("ldsr  r2, eiwr        /* 0x00: eiwr */");$NL$
+	$TAB$Asm("movea $E_OS_PROTECTION_MEMORY$, r0, r2");$NL$
+	$TAB$Asm("jr _fe_exception_entry");
+	$FORMAT(" /* Exception 0x%x */", 3)$$NL$
+	$TAB$Asm("nop");$NL$
+	$TAB$Asm("nop");$NL$
+$ 例外 No4
+    $TAB$Asm("ldsr  r2, eiwr        /* 0x00: eiwr */");$NL$
+	$TAB$Asm("movea $E_OS_PROTECTION_EXCEPTION$, r0, r2");$NL$
+	$TAB$Asm("jr _ei_exception_entry");
+	$FORMAT(" /* Exception 0x%x */", 4)$$NL$
+	$TAB$Asm("nop");$NL$
+	$TAB$Asm("nop");$NL$
+$ 例外 No5
+    $TAB$Asm("ldsr  r2, eiwr        /* 0x00: eiwr */");$NL$
+	$TAB$Asm("movea $E_OS_PROTECTION_EXCEPTION$, r0, r2");$NL$
+	$TAB$Asm("jr _fe_exception_entry");
+	$FORMAT(" /* Exception 0x%x */", 5)$$NL$
+	$TAB$Asm("nop");$NL$
+	$TAB$Asm("nop");$NL$
+$ 例外 No6
+	$TAB$Asm("nop");
+	$FORMAT(" /* Exception 0x%x */", 6)$$NL$
+	$TAB$Asm("nop");$NL$
+	$TAB$Asm("nop");$NL$
+	$TAB$Asm("nop");$NL$
+	$TAB$Asm("nop");$NL$
+	$TAB$Asm("nop");$NL$
+	$TAB$Asm("nop");$NL$
+	$TAB$Asm("nop");$NL$
+$ 例外 No7
+    $TAB$Asm("ldsr  r2, eiwr        /* 0x00: eiwr */");$NL$
+	$TAB$Asm("movea $E_OS_PROTECTION_EXCEPTION$, r0, r2");$NL$
+	$TAB$Asm("jr _fe_exception_entry");
+	$FORMAT(" /* Exception 0x%x */", 7)$$NL$
+	$TAB$Asm("nop");$NL$
+	$TAB$Asm("nop");$NL$
+
+
+
+$
+$ ベクタテーブル(EIレベル マスカブル割込み用(8-255)
+$
+$FOREACH intno INTNO_VALID$
+$TAB$/* $FORMAT("0x%x",intno*16 + 0x80)$ */ $NL$
+	$isrid = INT.ISRID[intno]$
+	$IF LENGTH(isrid)$
+		$IF EQ(ISR.CATEGORY[isrid], "CATEGORY_2")$
+            $TAB$Asm("ldsr  r2, eiwr        /* 0x00: eiwr */");$NL$
+            $TAB$Asm("movea $intno$, r0, r2 /* 0x06: r2 = intno */");$NL$ 
+            $TAB$Asm("jr    _interrupt      /* 0x0A */");$NL$
+            $TAB$Asm("nop                   /* 0x0E */");$NL$
+            $TAB$Asm("nop                   /* 0x0E */");$NL$
+		$ELSE$
+			$TAB$Asm("jr _$ISR.INT_ENTRY[isrid]$");$NL$
+			$TAB$Asm("nop");$NL$
+			$TAB$Asm("nop");$NL$
+			$TAB$Asm("nop");$NL$
+			$TAB$Asm("nop");$NL$
+			$TAB$Asm("nop");$NL$
+			$TAB$Asm("nop");$NL$
+		$END$
+	$ELSE$
+$		// 割込みハンドラの登録がない場合
+		$TAB$Asm("jr _default_int_handler");$NL$
+ 		$TAB$Asm("nop");$NL$
+ 		$TAB$Asm("nop");$NL$
+		$TAB$Asm("nop");$NL$
+		$TAB$Asm("nop");$NL$
+		$TAB$Asm("nop");$NL$
+		$TAB$Asm("nop");$NL$
+	$END$
+$END$
+}$NL$
+$END$
+$ =end IF __v850e2v3__
+
+$IF __v850e3v5__$
+
+$
+$ テーブル参照方式用ベクタテーブル(v850e3v5)
+$
+
+extern void interrupt(void);$NL$
+const uint32 __attribute__((aligned(512))) intbp_tbl[TNUM_INT] = {$NL$
+$JOINEACH intno INTNO_VALID "\n"$
+	$isrid = INT.ISRID[intno]$
+	$IF LENGTH(isrid) && EQ(ISR.CATEGORY[isrid], "CATEGORY_1")$
+		$TAB$(uint32)&$ISR.INT_ENTRY[isrid]$
+	$ELSE$
+		$TAB$(uint32)&interrupt
+	$END$
+$	//カンマの出力（最後の要素の後ろに出力しない）
+	$IF intno != AT(INTNO_VALID,LENGTH(INTNO_VALID) - 1)$
+		,
+	$END$
+	$TAB$$FORMAT("/* %d */", intno)$
+$END$
+$NL$};$NL$
+
+$END$
+
+$ 
+$  arch/gcc/ldscript.tfのターゲット依存部
+$ 
+
+$FUNCTION GENERATE_MEMORY$
+    $NOOP()$
+$END$
+
+$FUNCTION GENERATE_OUTPUT$
+    $NL$
+$END$
+
+$FUNCTION GENERATE_PROVIDE$
+    provide(_hardware_init_hook = 0);$NL$
+    provide(_software_init_hook = 0);$NL$
+    provide(_software_term_hook = 0);$NL$
+    provide(_bsssecinib_table = 0);$NL$
+    provide(_tnum_bsssec = 0);$NL$
+    provide(_datasecinib_table = 0);$NL$
+    provide(_tnum_datasec = 0);$NL$
+    $NL$
+
+    $IF LENGTH(OSAP.ID_LIST)$
+        $FOREACH domid OSAP.ID_LIST$
+            $IF !OSAP.TRUSTED[domid]$
+$   RX領域（専用）
+                provide(___start_text_$OSAP.LABEL[domid]$ = 0xfffffff0);$NL$
+                provide(___limit_text_$OSAP.LABEL[domid]$ = 0xfffffff0);$NL$
+$   R領域（専用）
+                provide(___start_sram_$OSAP.LABEL[domid]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$ = 0xfffffff0);$NL$
+                provide(___limit_sram_$OSAP.LABEL[domid]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$ = 0xfffffff0);$NL$
+$   RWX領域（専用）
+                provide(___start_ram_$OSAP.LABEL[domid]$ = 0xfffffff0);$NL$
+                provide(___limit_ram_$OSAP.LABEL[domid]$ = 0xfffffff0);$NL$
+                provide(___start_sram_$OSAP.LABEL[domid]$ = 0xfffffff0);$NL$
+                provide(___limit_sram_$OSAP.LABEL[domid]$ = 0xfffffff0);$NL$
+$   共有リード専用ライト
+                provide($FORMAT("___start_ram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$ = 0xfffffff0);$NL$
+                provide($FORMAT("___limit_ram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$ = 0xfffffff0);$NL$
+                provide($FORMAT("___start_sram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$ = 0xfffffff0);$NL$
+                provide($FORMAT("___limit_sram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$ = 0xfffffff0);$NL$
+$                 provide($FORMAT("___start_ram_%s_srpw", OSAP.LABEL[domid])$ = 0xfffffff0);$NL$
+$                 provide($FORMAT("___limit_ram_%s_srpw", OSAP.LABEL[domid])$ = 0xfffffff0);$NL$
+$                 provide($FORMAT("___start_sram_%s_srpw", OSAP.LABEL[domid])$ = 0xfffffff0);$NL$
+$                 provide($FORMAT("___limit_sram_%s_srpw", OSAP.LABEL[domid])$ = 0xfffffff0);$NL$
+            $END$
+        $END$
+        $NL$
+    $END$$NL$
+
+$  共有領域
+    provide(___start_text_$OSAP.LABEL[TDOM_NONE]$ = 0xfffffff0);$NL$
+    provide(___limit_text_$OSAP.LABEL[TDOM_NONE]$ = 0xfffffff0);$NL$
+    provide(___start_sram_$OSAP.LABEL[TDOM_NONE]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$ = 0xfffffff0);$NL$
+    provide(___limit_sram_$OSAP.LABEL[TDOM_NONE]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$ = 0xfffffff0);$NL$
+    provide(___start_ram_$OSAP.LABEL[TDOM_NONE]$ = 0xfffffff0);$NL$
+    provide(___limit_ram_$OSAP.LABEL[TDOM_NONE]$ = 0xfffffff0);$NL$
+    provide(___start_sram_$OSAP.LABEL[TDOM_NONE]$ = 0xfffffff0);$NL$
+    provide(___limit_sram_$OSAP.LABEL[TDOM_NONE]$ = 0xfffffff0);$NL$
+$   共有リード専用ライト領域全体
+    provide(___start_srpw_all = 0xfffffff0);$NL$
+    provide(___limit_srpw_all = 0xfffffff0);$NL$
+    provide(___start_ssrpw_all = 0xfffffff0);$NL$
+    provide(___limit_ssrpw_all = 0xfffffff0);$NL$
+    $NL$
+$END$
+
+$ $FUNCTION TARGET_PROVIDE_GP$
+$FUNCTION GENERATE_GP_LABEL$
+    $TAB$$TAB$__gp = . + 32K;$NL$
+$END$
+
+$FILE "kernel_mem2.c"$
+
+$TNUM_SHARED_REGION = 1$
+const uint32 tnum_shared_mem = $TNUM_SHARED_REGION * 2$;$NL$
+uint8 * const shared_meminib_table[$TNUM_SHARED_REGION * 2$] = {$NL$
+$TAB$((uint8 *)NULL),$TAB$/* MPLA 3 */$NL$
+$TAB$((uint8 *)NULL),$TAB$/* MPUA 3 */$NL$
+};$NL$
+$NL$
+$ const uint32 mpu_region_control = 0x01; /* MPRC */$NL$
+$ $NL$
+
+$ 
+$  GCC依存部のテンプレートファイルのインクルード
+$ 
+$INCLUDE "ghs/ldscript.tf"$ 
+
+$FILE "cfg2_out.tf"$
+$ LNKSEC.*の出力
+$$numls = $numls$$$$NL$
+$NL$
+$FOREACH lsid RANGE(1, numls)$
+	$$LNKSEC.MEMREG[$lsid$] = $LNKSEC.MEMREG[lsid]$$$$NL$
+	$$LNKSEC.SECTION[$lsid$] = $ESCSTR(LNKSEC.SECTION[lsid])$$$$NL$
+	$NL$
+$END$
+
+$JOINEACH tskid TSK.ID_LIST "\n"$
+	$$TSK.ID[$+tskid$] = $TSK.ID[tskid]$$$
+$END$
+$NL$
+
Index: /atk2-sc3_fl850f1l/arch/v850_ghs/prc_insn.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ghs/prc_insn.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ghs/prc_insn.h	(revision 117)
@@ -0,0 +1,359 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by Spansion LLC, USA
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: prc_insn.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		プロセッサの特殊命令のインライン関数定義（V850用）
+ */
+#ifndef TOPPERS_PRC_INSN_H
+#define TOPPERS_PRC_INSN_H
+
+#ifndef TOPPERS_MACRO_ONLY
+
+#include <v800_ghs.h>
+
+/*
+ *  関数のアライン単位
+ *  GHSでは2バイト境界にも配置する．
+ */
+#define CHECK_FUNC_ALIGN	2
+
+/*
+ *  メモリ再読込が必要なことをコンパイラに伝えるためのダミー関数
+ */
+extern void v850_memory_changed(void);
+extern void v850_sync_memory(void);
+
+/*
+ *  メモリの再読み込みが必要なことをコンパイラに伝える
+ */
+#define V850_MEMORY_CHANGED	v850_memory_changed();
+#define SYNCM	v850_sync_memory();
+
+LOCAL_INLINE void
+disable_int(void)
+{
+	__DI();
+}
+
+LOCAL_INLINE void
+enable_int(void)
+{
+	__EI();
+}
+
+#ifdef __v850e2v3__
+
+LOCAL_INLINE uint32
+current_psw(void)
+{
+	__LDSR(31, 0);     /* Select CPU function grp */
+	return(__GETSR());
+}
+
+LOCAL_INLINE void
+set_psw(uint32 psw)
+{
+	__LDSR(31, 0);     /* Select CPU function grp */
+	__SETSR(psw);
+}
+
+#define LDSR_REG(reg, val) {\
+    __LDSR(reg, val);\
+}
+
+#define STSR_REG(reg, val) {\
+    val = __STSR(reg); \
+}
+
+LOCAL_INLINE void
+ipa0_write(uint32 ipal_val, uint32 ipau_val)
+{
+    /*
+     * ldsr ipal_val, 6 ; ipa0l  6
+     */
+    __LDSR(6, ipal_val);
+    /* 
+     * ldsr ipau_val, 7 ; ipa0u  7
+     */
+    __LDSR(7, ipau_val);
+}
+
+LOCAL_INLINE void
+ipa1_write(uint32 ipal_val, uint32 ipau_val)
+{
+    /*
+     * ldsr ipal_val, 8 ; ipa1l  8
+     */
+    __LDSR(8, ipal_val);
+    /*
+     * ldsr ipau_val, 9 ; ipa1u  9
+     */
+    __LDSR(9, ipau_val);
+}
+
+LOCAL_INLINE void
+ipa2_write(uint32 ipal_val, uint32 ipau_val)
+{
+    /*
+     * ldsr ipal_val, 10 ; ipa2l  10
+     */
+    __LDSR(10, ipal_val);
+    /* 
+     * ldsr ipau_val, 11 ; ipa2u  11
+     */
+    __LDSR(11, ipau_val);
+}
+
+LOCAL_INLINE void
+ipa3_write(uint32 ipal_val, uint32 ipau_val)
+{
+    /*
+     * ldsr ipal_val, 12 ; ipa3l  12
+     */
+    __LDSR(12, ipal_val);
+    /*
+     * ldsr ipau_val, 13 ; ipa3u  13
+     */
+    __LDSR(13, ipau_val);
+}
+
+LOCAL_INLINE void
+ipa4_write(uint32 ipal_val, uint32 ipau_val)
+{
+    /*
+     * ldsr ipal_val, 14 ; ipa4l  14
+     */
+    __LDSR(14, ipal_val);
+    /* 
+     * ldsr ipau_val, 15 ; ipa4u  15
+     */
+    __LDSR(15, ipau_val);
+}
+
+LOCAL_INLINE void
+dpa0_write(uint32 dpal_val, uint32 dpau_val)
+{
+    /*
+     * ldsr dpal_val, 16 ; dpa0l  16
+     */
+    __LDSR(16, dpal_val);
+    /* 
+     * ldsr dpau_val, 17 ; dpa0u  17
+     */
+    __LDSR(17, dpau_val);
+}
+
+LOCAL_INLINE void
+dpa1_write(uint32 dpal_val, uint32 dpau_val)
+{
+    /*
+     * ldsr dpal_val, 18 ; dpa1l  18
+     */
+    __LDSR(18, dpal_val);
+    /*
+     * ldsr dpau_val, 19 ; dpa1u  19
+     */
+    __LDSR(19, dpau_val);
+}
+
+LOCAL_INLINE void
+dpa2_write(uint32 dpal_val, uint32 dpau_val)
+{
+    /*
+     * ldsr dpal_val, 20 ; dpa2l  20
+     */
+    __LDSR(20, dpal_val);
+    /* 
+     * ldsr dpau_val, 21 ; ipa2u  21
+     */
+    __LDSR(21, dpau_val);
+}
+
+LOCAL_INLINE void
+dpa3_write(uint32 dpal_val, uint32 dpau_val)
+{
+    /*
+     * ldsr dpal_val, 22 ; dpa3l  22
+     */
+    __LDSR(22, dpal_val);
+    /*
+     * ldsr dpau_val, 23 ; dpa3u  23
+     */
+    __LDSR(23, dpau_val);
+}
+
+LOCAL_INLINE void
+dpa4_write(uint32 dpal_val, uint32 dpau_val)
+{
+    /*
+     * ldsr dpal_val, 24 ; dpa4l  24
+     */
+    __LDSR(24, dpal_val);
+    /* 
+     * ldsr dpau_val, 25 ; dpa4u  25
+     */
+    __LDSR(25, dpau_val);
+}
+
+LOCAL_INLINE void
+dpa5_write(uint32 dpal_val, uint32 dpau_val)
+{
+    /*
+     * ldsr dpal_val, 26 ; dpa5l  26
+     */
+    __LDSR(26, dpal_val);
+    /* 
+     * ldsr dpau_val, 27 ; dpa5u  27
+     */
+    __LDSR(27, dpau_val);
+}
+
+#elif defined(__v850e3v5__)
+
+LOCAL_INLINE uint32
+current_psw(void)
+{
+	return(__STSR(5, 0));
+}
+
+LOCAL_INLINE void
+set_psw(uint32 psw)
+{
+	__LDSR(5, 0, psw);
+}
+
+/*
+ *  V850E3V5用の割込みコントローラ操作ルーチン
+ */
+LOCAL_INLINE void
+set_pmr(uint16 pmr)
+{
+	uint32 psw;
+
+	/* PMR must be set in di sate(PSW.ID = 1) */
+	psw = current_psw();
+	disable_int();
+
+	__LDSR(11, 2, pmr);
+
+	set_psw(psw);
+	Asm("syncp");
+}
+
+LOCAL_INLINE uint16
+get_ispr(void)
+{
+	return(__STSR(10, 2));
+}
+
+LOCAL_INLINE void
+clear_ispr(void)
+{
+	uint32 psw;
+
+	/* ISPR must be set in di sate(PSW.ID = 1) */
+	psw = current_psw();
+	disable_int();
+
+	__LDSR(13, 2, 1);   /* INTCFG = 1; ISPR を書き換え可能に */
+	__LDSR(10, 2, 0);   /* ISPR = 0 */
+	__LDSR(13, 2, 0);   /* INTCFG = 0; ISPR を書き換え禁止に(自動更新に) */
+
+	set_psw(psw);
+	Asm("syncp");
+}
+
+LOCAL_INLINE uint32
+current_cpuid(void)
+{
+	uint32 htcfg0_val;
+	htcfg0_val = __STSR(0,2);
+	return(((htcfg0_val >> 16) & 0x03));
+}
+
+
+#define LDSR_REG(reg, sel, val) {\
+    __LDSR(reg, sel, val);\
+}
+
+#define STSR_REG(reg, sel, val) {\
+    val = __STSR(reg, sel); \
+}
+
+#define MPA_WRITE(mpuid, mpla, mpua, mpat) { \
+    __LDSR(mpuid*4, 6, mpla); \
+    __LDSR(mpuid*4+1, 6, mpua); \
+    __LDSR(mpuid*4+2, 6, mpat); \
+}
+
+LOCAL_INLINE void
+set_intbp(uint32 intbp)
+{
+	uint32 psw;
+
+	/* INTBP must be set in di sate(PSW.ID = 1) */
+	psw = current_psw();
+	disable_int();
+
+	__LDSR(4, 1, intbp);
+
+	set_psw(psw);
+}
+
+#else /* __v850e3v5__ */
+#error please define ether __v850e2v3__ or __v850e3v5__
+#endif /* __v850e2v3__ */
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_PRC_INSN_H */
Index: /atk2-sc3_fl850f1l/arch/v850_ghs/prc_mpu.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ghs/prc_mpu.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ghs/prc_mpu.h	(revision 117)
@@ -0,0 +1,99 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *	
+ *  Copyright (C) 2014-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *	Copyright (C) 2013 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プロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *	に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *	アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *	の責任を負わない．
+ *	
+ */
+
+/*
+ *	MPUドライバ（V850E2用）
+ */
+
+#ifndef TOPPERS_PRC_MPU_H
+#define TOPPERS_PRC_MPU_H
+
+#ifndef TOPPERS_MACRO_ONLY
+/*
+ * システムレジスタへの書き込み
+ */
+#define IPA_WRITE(n, ipal, ipau) {\
+    ipa##n##_write((uint32)ipal, (uint32)ipau); \
+}
+#define DPA_WRITE(n, dpal, dpau) {\
+    dpa##n##_write((uint32)dpal, (uint32)dpau); \
+}
+
+extern void *p_ctxosap;
+/* 初期化ルーチン */
+extern void target_mpu_initialize(void);
+/* メモリ保護違反例外ハンドラ */
+extern void target_impu_exc_handler(void *p_excinf);
+extern void target_dmpu_exc_handler(void *p_excinf);
+/* タスク例外実行開始時スタック不正ハンドラ */
+extern void target_emulate_texrtn_handler(void *p_excinf);
+/* タスク例外リターン時スタック不正ハンドラ */
+extern void target_emulate_ret_tex_handler(void *p_excinf);
+
+/*
+ *  保護違反FEレベル例外ハンドラ
+ */
+#define EXCNO_PROTECTION 3
+extern void target_protection_handler(void *p_excinf);
+
+/*
+ *  TODO: probe_memをターゲット依存部で定義できる？
+ */
+#if defined(__v850e2v3__)
+#define OMIT_PROBE_MEM_WRITE
+#if 0
+#define PROBE_MEM_WRITE(p_var, type) \
+	(probe_mem_write((MemoryStartAddressType) (p_var), sizeof(type)))
+#endif
+#define OMIT_PROBE_MEM_READ
+#define OMIT_PROBE_STACK
+#elif defined(__v850e3v5__)
+#define OMIT_PROBE_MEM_WRITE
+
+#else /* __v850e3v5__ */
+#error please define ether __v850e2v3__ or __v850e3v5__
+#endif /* __v850e2v3__ */
+
+extern AccessType probe_trusted_osap_mem(const MemoryStartAddressType sadr, const MemoryStartAddressType eadr);
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_PRC_MPU_H */
Index: /atk2-sc3_fl850f1l/arch/v850_ghs/prc_opt.tf
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ghs/prc_opt.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ghs/prc_opt.tf	(revision 117)
@@ -0,0 +1,1233 @@
+$ ======================================================================
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$   Copyright (C) 2013 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プロジェクトは，本ソフトウェアに関して，特定の使用目的
+$   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$   の責任を負わない．
+$
+$  
+$ =====================================================================
+
+$ 
+$  V850E2M用
+$  RH850では使用しない
+$ 
+
+$DEBUG_OPT_TF = 1$
+
+$ 
+$  arch/v850_gcc/ldscript.tfのターゲット依存部
+$ 
+$FUNCTION GENERATE_MEMORY$
+    $NOOP()$
+$END$
+
+$FUNCTION GENERATE_OUTPUT$
+    $NL$
+$END$
+
+$
+$  保護ドメインのラベルの作成
+$	OSAP.LABEL[domid]：保護ドメインのラベル
+$
+$OSAP.LABEL[TDOM_KERNEL] = "kernel"$
+$FOREACH domid OSAP.ID_LIST$
+	$OSAP.LABEL[domid] = domid$
+$END$
+$OSAP.LABEL[TDOM_NONE] = "shared"$
+
+$ 
+$  標準のセクションのメモリオブジェクト属性の定義
+$ 
+$MEMATR_TEXT = (TA_NOWRITE|TA_EXEC)$
+$MEMATR_RODATA = (TA_NOWRITE|TA_EXEC)$
+$MEMATR_DATA = TA_MEMINI$
+$MEMATR_BSS = TA_NULL$
+$MEMATR_PRSV = TA_MEMPRSV$
+$MEMATR_ROSDATA = (TA_SDATA|TA_MEMINI|TA_NOWRITE|TA_EXEC)$
+$MEMATR_SDATA = (TA_SDATA|TA_MEMINI)$
+$MEMATR_SBSS = TA_SDATA$
+
+
+$ 
+$  保護ドメイン毎のデフォルトのアクセス許可パターンの作成
+$ 
+$DEFAULT_ACPTN[TDOM_KERNEL] = VALUE("TACP_KERNEL", TACP_KERNEL)$
+$FOREACH domid OSAP.ID_LIST$
+	$DEFAULT_ACPTN[domid] = VALUE(FORMAT("TACP(%1%)", domid), 1 << (domid - 1))$
+$END$
+$DEFAULT_ACPTN[TDOM_NONE] = VALUE("TACP_SHARED", TACP_SHARED)$
+
+$ 
+$  メモリ保護単位の実際のサイズを受け取り，受け取ったサイズ以上で，
+$  ARM MPUのサイズ制約を満たす最小値を返す
+$  ARM MPUのサイズ制約は，16B~4GBの範囲の2のべき乗
+$  ARGV[1]：実際のサイズ
+$  RESULT：ARM MPUのサイズ制約を満たす最小値
+$FUNCTION SEARCH_ARM_MPU_SIZE$
+    $IF ARGV[1] <= 0$
+        $RESULT = 0$
+    $ELSE$
+        $search_state = 0$
+        $FOREACH bit_offset { 31,30,...,4 }$
+            $compare_bit = 1 << bit_offset$
+            $IF ((ARGV[1] & compare_bit) != 0)$
+                $IF (search_state == 0)$
+                    $result_size = compare_bit$
+                    $search_state = 1$
+                $ELIF (search_state == 1)$
+                    $result_size = (result_size << 1)$
+                    $search_state = 2$
+                $END$
+            $END$
+        $END$
+        $IF (search_state == 0)$
+            $result_size = (1 << 4)$
+        $ELIF (search_state == 1) && ((ARGV[1] & 0xf) != 0)$
+            $result_size = (result_size << 1)$
+        $END$
+        $RESULT = result_size$
+    $END$
+$END$
+
+$ 
+$  受け取った番地以上で，ARM MPUのアライン制約の最小値を返す
+$  ARGV[1]：番地
+$  ARGV[2]：サイズ
+$  RESULT：ARM MPUのアライン制約を満たす最小値
+$ 
+$FUNCTION SEARCH_ARM_MPU_ALIGN$
+    $result_align = ARGV[1]$
+    $compare_mask = ARGV[2] - 1$
+    $IF ((ARGV[1] & compare_mask) != 0)$
+        $result_align = ARGV[1] & ~compare_mask$
+        $result_align = result_align + ARGV[2]$
+    $END$
+
+    $RESULT = result_align$
+$END$
+
+$ 
+$  tsize_meminibの補正
+$  sdata_sharedの先頭アドレスをマスクベース方式でアラインするため，
+$  その直前のセクションのlimitとsdata_sharedのstartが異なる可能性がある
+$  よって+1しておく
+$  prsv_sharedの終端アドレスをマスクベース方式でアラインするため，
+$  prsv_sharedのサイズが空でも，パス4ではstartとlimitが異なる可能性がある
+$  よって+1しておく
+$  
+$FUNCTION CALC_TSIZE_MEMINIB$
+    $tsize_meminib = tsize_meminib + 3$
+$END$
+
+$OPTIMIZE_MEMINIB = 1$
+$OPTIMIZE_DATASEC_LIST = 1$
+$OPTIMIZE_BSSSEC_LIST = 1$
+
+$ 
+$  OSAP初期化コンテキストブロックのための宣言
+$ 
+$FUNCTION PREPARE_OSAPINICTXB$
+    $IF LENGTH(TSK.ID_LIST)$
+        $FOREACH tskid TSK.ID_LIST$
+            $IF !OSAP.TRUSTED[TSK.OSAPID[tskid]]$
+                extern uint8 $FORMAT("__start_user_stack%s", tskid)$;$NL$
+                extern uint8 $FORMAT("__limit_user_stack%s", tskid)$;$NL$
+            $END$
+        $END$
+    $END$
+    $FOREACH tskpri RANGE(TMIN_TPRI, TMAX_TPRI)$
+        $IF LENGTH(shared_ustack_size[tskpri])$
+            extern uint8 $FORMAT("__start_shared_user_stack%s", tskpri)$;$NL$
+            extern uint8 $FORMAT("__limit_shared_user_stack%s", tskpri)$;$NL$
+        $END$
+    $END$
+
+
+    $IF LENGTH(OSAP.ID_LIST)$
+        $FOREACH domid OSAP.ID_LIST$
+            $IF !OSAP.TRUSTED[domid]$
+$   RX領域（専用）
+                extern uint8 __start_text_$OSAP.LABEL[domid]$;$NL$
+                extern uint8 __limit_text_$OSAP.LABEL[domid]$;$NL$
+$   R領域（専用）
+                extern uint8 __start_sram_$OSAP.LABEL[domid]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$;$NL$
+                extern uint8 __limit_sram_$OSAP.LABEL[domid]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$;$NL$
+$   RWX領域（専用）
+                extern uint8 __start_ram_$OSAP.LABEL[domid]$;$NL$
+                extern uint8 __limit_ram_$OSAP.LABEL[domid]$;$NL$
+                extern uint8 __start_sram_$OSAP.LABEL[domid]$;$NL$
+                extern uint8 __limit_sram_$OSAP.LABEL[domid]$;$NL$
+$   共有リード専用ライト
+                extern uint8 $FORMAT("__start_ram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$;$NL$
+                extern uint8 $FORMAT("__limit_ram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$;$NL$
+                extern uint8 $FORMAT("__start_sram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$;$NL$
+                extern uint8 $FORMAT("__limit_sram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$;$NL$
+$                 extern uint8 $FORMAT("__start_ram_%s_srpw", OSAP.LABEL[domid])$;$NL$
+$                 extern uint8 $FORMAT("__limit_ram_%s_srpw", OSAP.LABEL[domid])$;$NL$
+$                 extern uint8 $FORMAT("__start_sram_%s_srpw", OSAP.LABEL[domid])$;$NL$
+$                 extern uint8 $FORMAT("__limit_sram_%s_srpw", OSAP.LABEL[domid])$;$NL$
+            $END$
+        $END$
+        $NL$
+    $END$$NL$
+
+$  共有領域
+    extern uint8 __start_text_$OSAP.LABEL[TDOM_NONE]$;$NL$
+    extern uint8 __limit_text_$OSAP.LABEL[TDOM_NONE]$;$NL$
+    extern uint8 __start_sram_$OSAP.LABEL[TDOM_NONE]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$;$NL$
+    extern uint8 __limit_sram_$OSAP.LABEL[TDOM_NONE]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$;$NL$
+    extern uint8 __start_ram_$OSAP.LABEL[TDOM_NONE]$;$NL$
+    extern uint8 __limit_ram_$OSAP.LABEL[TDOM_NONE]$;$NL$
+    extern uint8 __start_sram_$OSAP.LABEL[TDOM_NONE]$;$NL$
+    extern uint8 __limit_sram_$OSAP.LABEL[TDOM_NONE]$;$NL$
+$   共有リード専用ライト領域全体
+    extern uint8 __start_srpw_all;$NL$
+    extern uint8 __limit_srpw_all;$NL$
+    extern uint8 __start_ssrpw_all;$NL$
+    extern uint8 __limit_ssrpw_all;$NL$
+    $NL$
+$	extern const OSAPMPUINFOB_INFO _kernel_osap_mpu_info_tbl[];$NL$
+$END$
+
+
+$FUNCTION GENERATE_TARGET_MPUINFOB$
+$ 
+$  保護ドメイン初期化ブロックのmem依存部を生成
+$ 
+    $FILE "kernel_mem3.c"$
+
+    $PREPARE_OSAPINICTXB()$
+
+$END$
+
+$ 
+$  TSKINICTXBの初期化情報を生成
+$ 
+$DOMINICTXB_KERNEL = "{ NULL }"$
+
+$FUNCTION GENERATE_OSAPINIB_MPUINFOB$
+    $TAB$$TAB${$NL$
+    $IF !OSAP.TRUSTED[ARGV[1]]$
+$   RX領域（専用）
+        $TAB$$TAB$$TAB$( (uint8 *)&__start_text_$OSAP.LABEL[ARGV[1]]$ ), /* iregion 0 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)&__limit_text_$OSAP.LABEL[ARGV[1]]$ ), /* iregion 0 */$NL$
+$   RX領域（専用ショートデータ）
+        $TAB$$TAB$$TAB$( (uint8 *)&__start_sram_$OSAP.LABEL[ARGV[1]]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$ ),/* iregion 1 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)&__limit_sram_$OSAP.LABEL[ARGV[1]]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$ ),/* iregion 1 */$NL$
+$   RWX領域（専用）
+        $TAB$$TAB$$TAB$( (uint8 *)&__start_ram_$OSAP.LABEL[ARGV[1]]$ ),/* dregion 1 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)&__limit_ram_$OSAP.LABEL[ARGV[1]]$ ),/* dregion 1 */$NL$
+$   RWX領域（専用ショートデータ）
+        $TAB$$TAB$$TAB$( (uint8 *)&__start_sram_$OSAP.LABEL[ARGV[1]]$ ),/* dregion 2 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)&__limit_sram_$OSAP.LABEL[ARGV[1]]$ ),/* dregion 2 */$NL$
+$   共有リード専用ライト
+        $TAB$$TAB$$TAB$$FORMAT("( (uint8 *)&__start_ram_%s_%x_%x )", OSAP.LABEL[ARGV[1]], +DEFAULT_ACPTN[ARGV[1]], +TACP_SHARED)$,/* dregion 3 */$NL$
+        $TAB$$TAB$$TAB$$FORMAT("( (uint8 *)&__limit_ram_%s_%x_%x )", OSAP.LABEL[ARGV[1]], +DEFAULT_ACPTN[ARGV[1]], +TACP_SHARED)$,/* dregion 3 */$NL$
+$         $TAB$$TAB$$TAB$$FORMAT("( (uint8 *)&__start_ram_%s_srpw )", OSAP.LABEL[ARGV[1]])$,/* dregion 3 */$NL$
+$         $TAB$$TAB$$TAB$$FORMAT("( (uint8 *)&__limit_ram_%s_srpw )", OSAP.LABEL[ARGV[1]])$,/* dregion 3 */$NL$
+$   共有リード専用ライト（ショートデータ）
+        $TAB$$TAB$$TAB$$FORMAT("( (uint8 *)&__start_sram_%s_%x_%x )", OSAP.LABEL[ARGV[1]], +DEFAULT_ACPTN[ARGV[1]], +TACP_SHARED)$,/* dregion 4 */$NL$
+        $TAB$$TAB$$TAB$$FORMAT("( (uint8 *)&__limit_sram_%s_%x_%x )", OSAP.LABEL[ARGV[1]], +DEFAULT_ACPTN[ARGV[1]], +TACP_SHARED)$,/* dregion 4 */$NL$
+$         $TAB$$TAB$$TAB$$FORMAT("( (uint8 *)&__start_sram_%s_srpw )", OSAP.LABEL[ARGV[1]])$,/* dregion 4 */$NL$
+$         $TAB$$TAB$$TAB$$FORMAT("( (uint8 *)&__limit_sram_%s_srpw )", OSAP.LABEL[ARGV[1]])$,/* dregion 4 */$NL$
+    $ELSE$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* iregion 0 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* iregion 0 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* iregion 1 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* iregion 1 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* dregion 1 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* dregion 1 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* dregion 2 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* dregion 2 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* dregion 3 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* dregion 3 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* dregion 4 */$NL$
+        $TAB$$TAB$$TAB$( (uint8 *)NULL ),/* dregion 4 */$NL$
+    $END$
+    $TAB$$TAB$}$NL$
+    $NL$
+$END$
+
+$FUNCTION GENERATE_TSKINICTXB$
+	$TAB$$TAB${$NL$
+    $TAB$$TAB$$TAB$$TSK.TINIB_SSTKSZ[ARGV[1]]$,$NL$
+	$TAB$$TAB$$TAB$((void *)((uint8 *)($TSK.TINIB_SSTK[ARGV[1]]$)
+    $SPC$+ ($TSK.TINIB_SSTKSZ[ARGV[1]]$))),$NL$
+	$IF OSAP.TRUSTED[TSK.OSAPID[ARGV[1]]]$
+        $TAB$$TAB$$TAB$0,$NL$
+        $TAB$$TAB$$TAB$0,$NL$
+    $ELSE$
+        $TAB$$TAB$$TAB$$TSK.TINIB_USTKSZ[ARGV[1]]$,$NL$ 
+        $TAB$$TAB$$TAB$((void *)((uint8 *)($TSK.TINIB_USTK[ARGV[1]]$)
+        $SPC$+ ($TSK.TINIB_USTKSZ[ARGV[1]]$))),$NL$
+    $END$
+	$TAB$$TAB$},$NL$
+$END$
+
+$FUNCTION GENERATE_STKMPUINFOB$
+	$TAB$$TAB${$NL$
+	$IF OSAP.TRUSTED[TSK.OSAPID[ARGV[1]]]$
+        $TAB$$TAB$$TAB$0,$NL$
+        $TAB$$TAB$$TAB$0,$NL$
+    $ELSE$
+		$IF EQ(TSK.STK[tskid],"NULL")$
+$			// stkがNULLの場合の処理
+            $IF LENGTH(TSK.SHARED_USTK_ID[tskid])$
+$               // 共有スタック
+                $TAB$$TAB$$TAB$$FORMAT("&__start_shared_user_stack%s", TSK.PRIORITY[ARGV[1]])$,$NL$
+                $TAB$$TAB$$TAB$$FORMAT("(&__limit_shared_user_stack%s - 0x10)", TSK.PRIORITY[ARGV[1]])$,$NL$
+            $ELSE$
+$               // 固有スタック
+                $TAB$$TAB$$TAB$$FORMAT("&__start_user_stack%s", ARGV[1])$,$NL$
+                $TAB$$TAB$$TAB$$FORMAT("(&__limit_user_stack%s - 0x10)", ARGV[1])$,$NL$
+            $END$
+        $ELSE$
+$			// stkがNULLでない場合の処理
+            $TAB$$TAB$$TAB$$FORMAT("(uint8 *)%s", TSK.TINIB_USTK[ARGV[1]])$,$NL$
+            $TAB$$TAB$$TAB$$FORMAT("(uint8 *)((uint32)%s + %d - 0x10)", TSK.TINIB_USTK[ARGV[1]], TSK.TINIB_USTKSZ[ARGV[1]])$,$NL$
+        $END$
+    $END$
+	$TAB$$TAB$},$NL$
+$END$
+
+$INCLUDE "kernel/kernel_opt.tf"$
+
+$ 
+$  共有リードライト領域 / 共有リード専有ライト領域（sdata） / rosdata_shared領域
+$  の情報取得
+$  
+$ $check_shared_mo = 0x00$
+$ $check_srpw_mo = 0x00$
+$ $check_rosdata_mo = 0x00$
+$ $check_sdata_mo = 0x00$
+$ $LIST_SHARED_MO = {}$
+$ $LIST_SRPW_MO = {}$
+$ $LIST_ROSDATA_MO = {}$
+$ $preid = -1$
+$ $FOREACH moid MO_START_LIST$
+$ $   // メモリオブジェクトの先頭をパス2時点での順にチェック
+$     $IF LENGTH(FIND(MO_MPROTECT_LIST, moid))$
+$ $       // メモリ保護単位の先頭の場合
+$         $IF !LENGTH(SDATA_BASE) && ((MO.MEMATR[moid] & TA_SDATA) == TA_SDATA)$
+$ $           // ショートデータセクションの先頭
+$             $SDATA_BASE = MO.BASEADDR[moid]$
+$             $check_sdata_mo = check_sdata_mo | 0x10$
+$         $ELIF ((MO.MEMATR[moid] & TA_SDATA) == 0)
+$ $           // ショートデータセクションの終端
+$             && ((check_sdata_mo & 0x10) == 0x10)$
+$             $IF preid == -1$
+$                 $ERROR$
+$                     $FORMAT("unexpected preid.")$
+$                 $END$
+$             $END$
+$             $check_sdata_mo = check_sdata_mo & 0x0f$
+$             $SDATA_LIMIT = MO.LIMITADDR[preid]$
+$             $SDATA_LIMIT_MO = preid$
+$         $END$
+$ 
+$         $IF (MO.ACPTN1[moid] == TACP_SHARED) && (MO.ACPTN2[moid] == TACP_SHARED)$
+$             $IF ((check_shared_mo & 0x10) != 0x10)$
+$ $               // 共有リードライト領域の先頭の場合
+$                 $SHARED_AREA_BASE[check_shared_mo] = MO.BASEADDR[moid]$
+$                 $SHARED_AREA_MO[check_shared_mo] = moid$
+$                 $LIST_SHARED_MO = APPEND(LIST_SHARED_MO, check_shared_mo)$
+$                 $check_shared_mo = check_shared_mo | 0x10$
+$             $END$
+$         $ELIF (check_shared_mo & 0x10) == 0x10$
+$ $           // 共有リードライト領域の終端の場合
+$             $IF preid == -1$
+$                 $ERROR$
+$                     $FORMAT("unexpected preid.")$
+$                 $END$
+$             $END$
+$             $check_shared_mo = check_shared_mo & 0x0f$
+$             $SHARED_AREA_LIMIT[check_shared_mo] = MO.LIMITADDR[preid]$
+$             $SHARED_AREA_SIZE[check_shared_mo] = SHARED_AREA_LIMIT[check_shared_mo] - SHARED_AREA_BASE[check_shared_mo]$
+$             $SHARED_AREA_LIMIT_MO[check_shared_mo] = preid$
+$             $check_shared_mo = check_shared_mo + 1$
+$         $END$
+$ 
+$         $IF LENGTH(MO.SRPW[moid]) && (MO.SRPW[moid])$
+$             $IF ((check_srpw_mo & 0x10) != 0x10)$
+$ $               // 共有リード専有ライト領域の先頭の場合
+$                 $SRPW_AREA_BASE[check_srpw_mo] = MO.BASEADDR[moid]$
+$                 $SRPW_AREA_MO[check_srpw_mo] = moid$
+$                 $LIST_SRPW_MO = APPEND(LIST_SRPW_MO, check_srpw_mo)$
+$                 $check_srpw_mo = check_srpw_mo | 0x10$
+$             $END$
+$         $ELIF (check_srpw_mo & 0x10) == 0x10$
+$ $           // 共有リード専有ライト領域の終端の場合
+$             $IF preid == -1$
+$                 $ERROR$
+$                     $FORMAT("unexpected preid.")$
+$                 $END$
+$             $END$
+$             $check_srpw_mo = check_srpw_mo & 0x0f$
+$             $SRPW_AREA_LIMIT[check_srpw_mo] = MO.LIMITADDR[preid]$
+$             $SRPW_AREA_SIZE[check_srpw_mo] = SRPW_AREA_LIMIT[check_srpw_mo] - SRPW_AREA_BASE[check_srpw_mo]$
+$             $SRPW_AREA_LIMIT_MO[check_srpw_mo] = preid$
+$             $check_srpw_mo = check_srpw_mo + 1$
+$         $END$
+$ 
+$         $IF (MO.ACPTN1[moid] == 0) && (MO.ACPTN2[moid] == TACP_SHARED) 
+$             && (MO.MEMATR[moid] & TA_SDATA) && (MO.OSAPID[moid] == TDOM_NONE)$
+$             $IF ((check_rosdata_mo & 0x10) != 0x10)$
+$ $               // rosdata_shared領域の先頭の場合
+$                 $ROSDATA_AREA_BASE[check_rosdata_mo] = MO.BASEADDR[moid]$
+$                 $ROSDATA_AREA_MO[check_rosdata_mo] = moid$
+$                 $LIST_ROSDATA_MO = APPEND(LIST_ROSDATA_MO, check_rosdata_mo)$
+$                 $check_rosdata_mo = check_rosdata_mo | 0x10$
+$             $END$
+$         $ELIF (check_rosdata_mo & 0x10) == 0x10$
+$ $           // rosdata_shared領域の終端の場合
+$             $IF preid == -1$
+$                 $ERROR$
+$                     $FORMAT("unexpected preid.")$
+$                 $END$
+$             $END$
+$             $check_rosdata_mo = check_rosdata_mo & 0x0f$
+$             $ROSDATA_AREA_LIMIT[check_rosdata_mo] = MO.LIMITADDR[preid]$
+$             $ROSDATA_AREA_SIZE[check_rosdata_mo] = ROSDATA_AREA_LIMIT[check_rosdata_mo] - ROSDATA_AREA_BASE[check_rosdata_mo]$
+$             $ROSDATA_AREA_LIMIT_MO[check_rosdata_mo] = preid$
+$             $check_rosdata_mo = check_rosdata_mo + 1$
+$         $END$
+$     $END$
+$ 
+$     $preid = moid$
+$ $END$
+$ $IF (check_shared_mo & 0x10) == 0x10$
+$     $IF preid == -1$
+$         $ERROR$
+$             $FORMAT("unexpected preid.")$
+$         $END$
+$     $END$
+$     $check_shared_mo = check_shared_mo & 0x0f$
+$     $SHARED_AREA_LIMIT[check_shared_mo] = MO.LIMITADDR[preid]$
+$     $SHARED_AREA_LIMIT_MO[check_shared_mo] = preid$
+$     $SHARED_AREA_SIZE[check_shared_mo] = SHARED_AREA_LIMIT[check_shared_mo] - SHARED_AREA_BASE[check_shared_mo]$
+$     $check_shared_mo = check_shared_mo + 1$
+$ $END$
+$ $IF (check_srpw_mo & 0x10) == 0x10$
+$     $IF preid == -1$
+$         $ERROR$
+$             $FORMAT("unexpected preid.")$
+$         $END$
+$     $END$
+$     $check_srpw_mo = check_srpw_mo & 0x0f$
+$     $SRPW_AREA_LIMIT[check_srpw_mo] = MO.LIMITADDR[preid]$
+$     $SRPW_AREA_SIZE[check_srpw_mo] = SRPW_AREA_LIMIT[check_srpw_mo] - SRPW_AREA_BASE[check_srpw_mo]$
+$     $SRPW_AREA_LIMIT_MO[check_srpw_mo] = preid$
+$     $check_srpw_mo = check_srpw_mo + 1$
+$ $END$
+$ $IF (check_rosdata_mo & 0x10) == 0x10$
+$     $IF preid == -1$
+$         $ERROR$
+$             $FORMAT("unexpected preid.")$
+$         $END$
+$     $END$
+$     $check_rosdata_mo = check_rosdata_mo & 0x0f$
+$     $ROSDATA_AREA_LIMIT[check_rosdata_mo] = MO.LIMITADDR[preid]$
+$     $ROSDATA_AREA_SIZE[check_rosdata_mo] = ROSDATA_AREA_LIMIT[check_rosdata_mo] - ROSDATA_AREA_BASE[check_rosdata_mo]$
+$     $ROSDATA_AREA_LIMIT_MO[check_rosdata_mo] = preid$
+$     $check_rosdata_mo = check_rosdata_mo + 1$
+$ $END$
+$  
+$ $ 
+$ $  エラーチェック
+$ $  
+$ $FOREACH id LIST_SHARED_MO$
+$     $IF DEBUG_OPT_TF$
+$         $WARNING$
+$             $id$$NL$
+$             $SHARED_AREA_MO[id]$$NL$
+$             $SHARED_AREA_LIMIT_MO[id]$$NL$
+$             $FORMAT("0x%x", SHARED_AREA_BASE[id])$$NL$
+$             $FORMAT("0x%x", SHARED_AREA_LIMIT[id])$$NL$
+$             $FORMAT("0x%x", SHARED_AREA_SIZE[id])$$NL$
+$         $END$
+$     $END$
+$     $IF ((MO.MEMATR[SHARED_AREA_MO[id]] & TA_SDATA) == TA_SDATA)$
+$         $IF LENGTH(SHARED_SDATA.BASE)$
+$             $ERROR$
+$                 $FORMAT("unexpected mematr: %d, %x", id, MO.MEMATR[SHARED_AREA_MO[id]])$
+$             $END$
+$         $ELSE$
+$             $SHARED_SDATA.BASE = SHARED_AREA_BASE[id]$
+$             $SHARED_SDATA.LIMIT = SHARED_AREA_LIMIT[id]$
+$             $SHARED_SDATA.SIZE = SHARED_AREA_SIZE[id]$
+$             $SHARED_SDATA.BASE_MO = SHARED_AREA_MO[id]$
+$             $SHARED_SDATA.LIMIT_MO = SHARED_AREA_LIMIT_MO[id]$
+$         $END$
+$     $ELSE$
+$         $IF LENGTH(SHARED_DATA.BASE)$
+$             $ERROR$
+$                 $FORMAT("unexpected mematr: %d, %x", id, MO.MEMATR[SHARED_AREA_MO[id]])$
+$             $END$
+$         $ELSE$
+$             $SHARED_DATA.BASE = SHARED_AREA_BASE[id]$
+$             $SHARED_DATA.LIMIT = SHARED_AREA_LIMIT[id]$
+$             $SHARED_DATA.SIZE = SHARED_AREA_SIZE[id]$
+$             $SHARED_DATA.BASE_MO = SHARED_AREA_MO[id]$
+$             $SHARED_DATA.LIMIT_MO = SHARED_AREA_LIMIT_MO[id]$
+$         $END$
+$     $END$
+$ $END$
+$ 
+$ $FOREACH id LIST_SRPW_MO$
+$     $IF DEBUG_OPT_TF$
+$         $WARNING$
+$             $id$$NL$
+$             $SRPW_AREA_MO[id]$$NL$
+$             $SRPW_AREA_LIMIT_MO[id]$$NL$
+$             $FORMAT("0x%x", SRPW_AREA_BASE[id])$$NL$
+$             $FORMAT("0x%x", SRPW_AREA_LIMIT[id])$$NL$
+$             $FORMAT("0x%x", SRPW_AREA_SIZE[id])$$NL$
+$         $END$
+$     $END$
+$     $IF ((MO.MEMATR[SRPW_AREA_MO[id]] & TA_SDATA) == TA_SDATA)$
+$         $IF LENGTH(SRPW_SDATA.BASE)$
+$             $ERROR$
+$                 $FORMAT("unexpected mematr: %d, %x", id, MO.MEMATR[SRPW_AREA_MO[id]])$
+$             $END$
+$         $ELSE$
+$             $SRPW_SDATA.BASE = SRPW_AREA_BASE[id]$
+$             $SRPW_SDATA.LIMIT = SRPW_AREA_LIMIT[id]$
+$             $SRPW_SDATA.SIZE = SRPW_AREA_SIZE[id]$
+$             $SRPW_SDATA.BASE_MO = SRPW_AREA_MO[id]$
+$             $SRPW_SDATA.LIMIT_MO = SRPW_AREA_LIMIT_MO[id]$
+$         $END$
+$     $ELSE$
+$         $IF LENGTH(SRPW_DATA.BASE)$
+$             $ERROR$
+$                 $FORMAT("unexpected mematr: %d, %x", SRPW_AREA_MO[0], MO.MEMATR[SRPW_AREA_MO[id]])$
+$                 $FORMAT("unexpected mematr: %d, %x", SRPW_AREA_MO[id], MO.MEMATR[SRPW_AREA_MO[id]])$
+$             $END$
+$         $ELSE$
+$             $SRPW_DATA.BASE = SRPW_AREA_BASE[id]$
+$             $SRPW_DATA.LIMIT = SRPW_AREA_LIMIT[id]$
+$             $SRPW_DATA.SIZE = SRPW_AREA_SIZE[id]$
+$             $SRPW_DATA.BASE_MO = SRPW_AREA_MO[id]$
+$             $SRPW_DATA.LIMIT_MO = SRPW_AREA_LIMIT_MO[id]$
+$         $END$
+$     $END$
+$ $END$
+$ 
+$ $FOREACH id LIST_ROSDATA_MO$
+$     $IF DEBUG_OPT_TF$
+$         $WARNING$
+$             $id$$NL$
+$             $ROSDATA_AREA_MO[id]$$NL$
+$             $ROSDATA_AREA_LIMIT_MO[id]$$NL$
+$             $FORMAT("0x%x", ROSDATA_AREA_BASE[id])$$NL$
+$             $FORMAT("0x%x", ROSDATA_AREA_LIMIT[id])$$NL$
+$             $FORMAT("0x%x", ROSDATA_AREA_SIZE[id])$$NL$
+$         $END$
+$     $END$
+$     $IF (id == 0)$
+$         $IF ((MO.MEMATR[ROSDATA_AREA_MO[id]] & TA_SDATA) != TA_SDATA)$
+$             $ERROR$
+$                 $FORMAT("unexpected mematr: %d, %x", id, MO.MEMATR[ROSDATA_AREA_MO[id]])$
+$             $END$
+$         $ELSE$
+$             $ROSDATA.BASE = ROSDATA_AREA_BASE[id]$
+$             $ROSDATA.LIMIT = ROSDATA_AREA_LIMIT[id]$
+$             $ROSDATA.SIZE = ROSDATA_AREA_SIZE[id]$
+$             $ROSDATA.BASE_MO = ROSDATA_AREA_MO[id]$
+$             $ROSDATA.LIMIT_MO = ROSDATA_AREA_LIMIT_MO[id]$
+$         $END$
+$     $ELSE$
+$         $ERROR$
+$             $FORMAT("unexpected id: %d", id)$
+$         $END$
+$     $END$
+$ $END$
+$ 
+$ $ 
+$ $  data_sharedの配置アドレスを求める
+$ $ 
+$ $SHARED_DATA.REALSIZE = SEARCH_ARM_MPU_SIZE(SHARED_DATA.SIZE + SHARED_SDATA.SIZE)$
+$ $SHARED_DATA.REALBASE = SEARCH_ARM_MPU_ALIGN(SDATA_BASE, SHARED_DATA.REALSIZE)$
+$ $IF DEBUG_OPT_TF$
+$     $WARNING$
+$         $FORMAT("data_shared: base[0x%x], size[0x%x]", SHARED_DATA.REALBASE, SHARED_DATA.REALSIZE)$$NL$
+$     $END$
+$ $END$
+$ 
+$ $  
+$ $  sdataに関するサイズを求める
+$ $  
+$ $SDATA.SIZE = SDATA_LIMIT - SDATA_BASE$
+$ $SDATA.MISC_SIZE = SDATA.SIZE - (SHARED_SDATA.SIZE + ROSDATA.SIZE)$
+$ 
+$ $SDATA.SIZE_TO_ROSDATA = ROSDATA.BASE - SDATA_BASE$
+$ 
+$ $SDATA.SIZE_TO_SSHARED = SHARED_SDATA.BASE - SDATA_BASE$
+$ $SDATA.SIZE_TO_SSHARED = SDATA.SIZE_TO_SSHARED - ROSDATA.SIZE$
+$ 
+$ $IF LENGTH(SRPW_SDATA.SIZE)$
+$     $SDATA.MISC_SIZE = SDATA.MISC_SIZE - SRPW_SDATA.SIZE$
+$     $SDATA.SIZE_TO_SSRPW = SRPW_SDATA.BASE - SDATA_BASE$
+$     $SDATA.SIZE_TO_ROSDATA = SDATA.SIZE_TO_ROSDATA - SRPW_SDATA.SIZE$
+$     $SDATA.SIZE_TO_SSHARED = SDATA.SIZE_TO_SSHARED - SRPW_SDATA.SIZE$
+$ $END$
+$ $IF DEBUG_OPT_TF$
+$     $WARNING$
+$         $FORMAT("sdata_misc: size[0x%x]", SDATA.MISC_SIZE)$$NL$
+$     $END$
+$ $END$
+$ 
+$ $  
+$ $  dataに関するサイズを求める
+$ $  
+$ $DATA.SIZE_TO_SHARED = SHARED_DATA.BASE - SDATA_LIMIT$
+$ 
+$ $IF LENGTH(SRPW_DATA.SIZE)$
+$     $DATA.SIZE_TO_SRPW = SRPW_DATA.BASE - SDATA_LIMIT$
+$     $DATA.SIZE_TO_SHARED = DATA.SIZE_TO_SHARED - SRPW_DATA.SIZE$
+$ $END$
+$ $IF DEBUG_OPT_TF$
+$     $WARNING$
+$         $FORMAT("sdata_misc: size[0x%x]", SDATA.MISC_SIZE)$$NL$
+$     $END$
+$ $END$
+$ 
+$ $ $ERROR$
+$ $     "implemented to here.\n"
+$ $ $END$
+$ $ $DIE()$
+$ 
+$ 
+$ $  
+$ $  配置アドレスを指定するセクションに対する処理
+$ $  配置換え対象のセクション: 必ずあるかどうか
+$ $    srpw_data_all: 0
+$ $    srpw_sdata_all: 0
+$ $    rosdata_shared: 1
+$ $    sdata_shared: 1
+$ $    data_shared: 1
+$ $  
+$ $check_shared_mo = 0$
+$ $preid = -1$
+$ $limit_align_flag = 1$
+$ $FOREACH moid MO_START_LIST$
+$ $   // メモリオブジェクトの先頭をパス2時点での順にチェック
+$     $IF MO.LINKER[moid]$
+$         $IF DEBUG_OPT_TF$
+$             $WARNING$
+$                 $FORMAT("check mo %d: SEFLAG=0x%x", moid, MO.SEFLAG[moid])$$NL$
+$             $END$
+$         $END$
+$         $IF !LENGTH(SDATA.REALBASE) && ((MO.MEMATR[moid] & TA_SDATA) == TA_SDATA)$
+$ $       // ショートデータセクションの先頭
+$ $         $MO.REALBASE[moid] = SDATA_BASE + ROSDATA.SIZE$
+$             $MO.REALBASE[moid] = SHARED_DATA.REALBASE + SHARED_DATA.REALSIZE$
+$             $SDATA.REALBASE = MO.REALBASE[moid]$
+$ $         $IF LENGTH(SRPW_DATA.SIZE)$
+$ $             $MO.REALBASE[moid] = MO.REALBASE[moid] + SRPW_DATA.SIZE$
+$ $         $END$
+$ $         $IF LENGTH(SRPW_SDATA.SIZE)$
+$ $             $MO.REALBASE[moid] = MO.REALBASE[moid] + SRPW_SDATA.SIZE$
+$ $         $END$
+$             $MO.COMMENT[moid] = "sdata_top"$
+$             $SDATA.START_MO = moid$
+$             $MO.SEFLAG[moid] = MO.SEFLAG[moid] & ~0x400$
+$             $IF DEBUG_OPT_TF$
+$                 $WARNING$
+$                     $FORMAT("sdata_top[%d]=0x%x", moid, SDATA.REALBASE)$$NL$
+$                 $END$
+$             $END$
+$         $END$
+$         $IF LENGTH(SRPW_SDATA.BASE) && (moid == SRPW_SDATA.BASE_MO)$
+$ $       // srpw_sdata_allの先頭
+$             $MO.REALBASE[moid] = SDATA.REALBASE + SDATA.MISC_SIZE + ROSDATA.SIZE$
+$ $         $MO.REALBASE[moid] = SDATA_BASE$
+$ $         $IF LENGTH(SRPW_DATA.SIZE)$
+$ $             $MO.REALBASE[moid] = MO.REALBASE[moid] + SRPW_DATA.SIZE$
+$ $         $END$
+$             $MO.COMMENT[moid] = "srpw_sdata_top"$
+$             $IF DEBUG_OPT_TF$
+$                 $WARNING$
+$                     $FORMAT("srpw_sdata_top[%d]=0x%x", moid, MO.REALBASE[moid])$$NL$
+$                 $END$
+$             $END$
+$         $END$
+$         $IF LENGTH(SRPW_SDATA.LIMIT_MO) && (preid == SRPW_SDATA.LIMIT_MO)
+$             && (moid != ROSDATA.BASE_MO)$
+$ $       // srpw_sdata_allとrosdataの間にメモリオブジェクトがある場合
+$             $MO.REALBASE[moid] = SDATA.REALBASE + SDATA.SIZE_TO_SSRPW$
+$ $         $IF LENGTH(SRPW_DATA.SIZE)$
+$ $             $MO.REALBASE[moid] = MO.REALBASE[moid] + SRPW_DATA.SIZE$
+$ $         $END$
+$             $MO.COMMENT[moid] = "srpw_sdata_limit"$
+$             $IF DEBUG_OPT_TF$
+$                 $WARNING$
+$                     $FORMAT("%s[%d]=0x%x", MO.COMMENT[moid], moid, MO.REALBASE[moid])$$NL$
+$                 $END$
+$             $END$
+$         $END$
+$         $IF (moid == ROSDATA.BASE_MO)$
+$ $       // rosdataの先頭
+$             $MO.REALBASE[moid] = SDATA.REALBASE + SDATA.MISC_SIZE$
+$ $         $MO.REALBASE[moid] = SDATA_BASE$
+$ $         $IF LENGTH(SRPW_DATA.SIZE)$
+$ $             $MO.REALBASE[moid] = MO.REALBASE[moid] + SRPW_DATA.SIZE$
+$ $         $END$
+$ $         $IF LENGTH(SRPW_SDATA.SIZE)$
+$ $             $MO.REALBASE[moid] = MO.REALBASE[moid] + SRPW_SDATA.SIZE$
+$ $         $END$
+$             $MO.COMMENT[moid] = "rosdata_shared_top"$
+$             $IF DEBUG_OPT_TF$
+$                 $WARNING$
+$                     $FORMAT("%s[%d]=0x%x", MO.COMMENT[moid], moid, MO.REALBASE[moid])$$NL$
+$                 $END$
+$             $END$
+$         $END$
+$ $     $IF (preid == ROSDATA.LIMIT_MO) && (preid != SDATA_LIMIT_MO)$
+$         $IF (preid == ROSDATA.LIMIT_MO) && (moid != SHARED_SDATA.BASE_MO)$
+$ $       // rosdataとsdata_sharedの間にsdataがある場合
+$             $MO.REALBASE[moid] = SDATA.REALBASE + SDATA.SIZE_TO_ROSDATA$
+$ $         $MO.REALBASE[moid] = MO.BASEADDR[moid]$
+$ $         $IF LENGTH(SRPW_DATA.SIZE)$
+$ $             $MO.REALBASE[moid] = MO.REALBASE[moid] + SRPW_DATA.SIZE$
+$ $         $END$
+$             $MO.COMMENT[moid] = "rosdata_shared_limit"$
+$             $IF DEBUG_OPT_TF$
+$                 $WARNING$
+$                     $FORMAT("%s[%d]=0x%x", MO.COMMENT[moid], moid, MO.REALBASE[moid])$$NL$
+$                 $END$
+$             $END$
+$         $END$
+$         $IF (moid == SHARED_SDATA.BASE_MO)$
+$ $       // sdata_sharedの先頭
+$             $MO.REALBASE[moid] = SHARED_DATA.REALBASE + SHARED_DATA.SIZE$
+$             $MO.COMMENT[moid] = "sdata_shared_top"$
+$             $MO.SEFLAG[moid] = MO.SEFLAG[moid] | 0x400$
+$             $IF DEBUG_OPT_TF$
+$                 $WARNING$
+$                     $FORMAT("%s[%d]=0x%x", MO.COMMENT[moid], moid, MO.REALBASE[moid])$$NL$
+$                 $END$
+$             $END$
+$         $END$
+$         $IF (preid == SHARED_SDATA.LIMIT_MO)$
+$ $       // sdata_sharedの終端はマスクベース方式なのでサイズの倍数にアライン
+$             $at_mo_order = FIND(MO_ORDER, preid)$
+$             $check_flag = 1$
+$             $WHILE check_flag$
+$                 $IF LENGTH(AT(MO_ORDER, at_mo_order))$
+$                     $IF DEBUG_OPT_TF$
+$                         $WARNING$
+$                             $FORMAT("check: %d, 0x%x", AT(MO_ORDER, at_mo_order), +MO.SEFLAG[AT(MO_ORDER, at_mo_order)])$$NL$
+$                         $END$
+$                     $END$
+$                     $IF (MO.SEFLAG[AT(MO_ORDER, at_mo_order)] & 0x20) == 0x20$
+$                         $IF DEBUG_OPT_TF$
+$                             $WARNING$
+$                                 $FORMAT("hit: %d, 0x%x", AT(MO_ORDER, at_mo_order), +MO.SEFLAG[AT(MO_ORDER, at_mo_order)])$$NL$
+$                             $END$
+$                         $END$
+$                         $MO.REALALIGN[AT(MO_ORDER, at_mo_order)] = SHARED_DATA.REALSIZE$
+$                         $check_flag = 0$
+$                     $END$
+$                 $ELSE$
+$                     $ERROR$
+$                         $FORMAT("shared sdata does not have limit label")$$NL$
+$                     $END$
+$                     $check_flag = 0$
+$                 $END$
+$                 $at_mo_order = at_mo_order + 1$
+$             $END$
+$             $IF (preid != SDATA_LIMIT_MO)$
+$ $           // sdata_sharedの下にsdataがある場合
+$                 $MO.REALBASE[moid] = SDATA.REALBASE + SDATA.SIZE_TO_SSHARED$
+$                 $MO.COMMENT[moid] = "sdata_shared_limit"$
+$             $END$
+$         $END$
+$         $IF (preid == SDATA_LIMIT_MO)$
+$ $       // sdataの終端の場合
+$             $MO.REALBASE[moid] = SDATA.REALBASE + (SDATA.SIZE - SHARED_SDATA.SIZE)$
+$             $IF LENGTH(SRPW_DATA.SIZE)$
+$                 $MO.REALBASE[moid] = MO.REALBASE[moid] + SRPW_DATA.SIZE$
+$             $END$
+$             $DATA.REALBASE = MO.REALBASE[moid]$
+$ $         $MO.REALBASE[moid] = SDATA_LIMIT + SHARED_DATA.SIZE$
+$ $         $IF LENGTH(SRPW_DATA.SIZE)$
+$ $             $MO.REALBASE[moid] = MO.REALBASE[moid] + SRPW_DATA.SIZE$
+$ $         $END$
+$             $IF DEBUG_OPT_TF$
+$                 $WARNING$
+$                     $FORMAT("%d: 0x%x, sdata_limit", moid, MO.REALBASE[moid])$$NL$
+$                 $END$
+$             $END$
+$             $MO.COMMENT[moid] = "sdata_limit"$
+$             $DATA.START_MO = moid$
+$         $END$
+$         $IF LENGTH(SRPW_DATA.BASE_MO) && (moid == SRPW_DATA.BASE_MO)$
+$ $       // srpwの先頭の場合
+$             $MO.REALBASE[moid] = SDATA.REALBASE + (SDATA.SIZE - SHARED_SDATA.SIZE)$
+$ $         $MO.REALBASE[moid] = SDATA_BASE$
+$             $IF DEBUG_OPT_TF$
+$                 $WARNING$
+$                     $FORMAT("%d: 0x%x", moid, MO.REALBASE[moid])$$NL$
+$                 $END$
+$             $END$
+$             $MO.COMMENT[moid] = "srpw_data_top"$
+$         $END$
+$         $IF LENGTH(SRPW_DATA.LIMIT_MO) && (preid == SRPW_DATA.LIMIT_MO)
+$             && (moid != SHARED_DATA.BASE_MO)$
+$ $       // srpw_data_allとdata_sharedの間にdataがある場合
+$ $         $MO.REALBASE[moid] = MO.BASEADDR[moid] + SHARED_DATA.SIZE$
+$             $MO.REALBASE[moid] = DATA.REALBASE + DATA.SIZE_TO_SRPW$
+$             $MO.COMMENT[moid] = "srpw_data_limit"$
+$             $IF DEBUG_OPT_TF$
+$                 $WARNING$
+$                     $FORMAT("%s[%d]=0x%x", MO.COMMENT[moid], moid, MO.REALBASE[moid])$$NL$
+$                 $END$
+$             $END$
+$         $END$
+$         $IF (moid == SHARED_DATA.BASE_MO)$
+$             $MO.REALBASE[moid] = SHARED_DATA.REALBASE$
+$ $         $MO.REALBASE[moid] = SDATA_LIMIT$
+$ $         $IF LENGTH(SRPW_DATA.SIZE)$
+$ $             $MO.REALBASE[moid] = MO.REALBASE[moid] + SRPW_DATA.SIZE$
+$ $         $END$
+$             $IF DEBUG_OPT_TF$
+$                 $WARNING$
+$                     $FORMAT("%d: 0x%x", moid, MO.REALBASE[moid])$$NL$
+$                 $END$
+$             $END$
+$             $MO.COMMENT[moid] = "data_shared_top"$
+$         $END$
+$         $IF (preid == SHARED_DATA.LIMIT_MO)$
+$ $       // data_sharedの下にdataがある場合
+$             $MO.REALBASE[moid] = DATA.REALBASE + DATA.SIZE_TO_SHARED$
+$ $         $MO.REALBASE[moid] = MO.BASEADDR[moid]$
+$             $limit_align_flag = 0$
+$             $MO.COMMENT[moid] = "data_shared_limit"$
+$             $IF DEBUG_OPT_TF$
+$                 $WARNING$
+$                     $FORMAT("%d: 0x%x, not required dummy section", moid, MO.REALBASE[moid])$$NL$
+$                 $END$
+$             $END$
+$         $END$
+$     $END$
+$ 
+$     $preid = moid$
+$ $END$
+$ $IF limit_align_flag$
+$ $     $IF LENGTH(SRPW_DATA.LIMIT)$
+$ $         $REG.LIMIT_ALIGN[MO.MEMREG[moid]] = SRPW_DATA.LIMIT$
+$ $     $ELSE$
+$ $         $REG.LIMIT_ALIGN[MO.MEMREG[moid]] = SHARED_DATA.LIMIT$
+$ $     $END$
+$     $REG.LIMIT_ALIGN[STANDARD_RAM] = DATA.REALBASE + DATA.SIZE_TO_SHARED$
+$     $IF DEBUG_OPT_TF$
+$         $WARNING$
+$             $FORMAT("%s: 0x%x, required dummy section", REG.REGNAME[STANDARD_RAM], REG.LIMIT_ALIGN[STANDARD_RAM])$$NL$
+$         $END$
+$     $END$
+$ $END$
+
+$ 
+$  共有リードライト領域 / 共有リード専有ライト領域（sdata） / rosdata_shared領域
+$  の情報取得
+$  
+$check_shared_mo = 0x00$
+$check_srpw_mo = 0x00$
+$check_rosdata_mo = 0x00$
+$check_sdata_mo = 0x00$
+$LIST_SHARED_MO = {}$
+$LIST_SRPW_MO = {}$
+$LIST_ROSDATA_MO = {}$
+$preid = -1$
+$FOREACH moid MO_START_LIST$
+$   // メモリオブジェクトの先頭をパス2時点での順にチェック
+    $IF LENGTH(FIND(MO_MPROTECT_LIST, moid))$
+$       // メモリ保護単位の先頭の場合
+        $IF (MO.ACPTN1[moid] == TACP_SHARED) && (MO.ACPTN2[moid] == TACP_SHARED)$
+            $IF ((check_shared_mo & 0x10) != 0x10)$
+$               // 共有リードライト領域の先頭の場合
+                $SHARED_AREA_BASE[check_shared_mo] = MO.BASEADDR[moid]$
+                $SHARED_AREA_MO[check_shared_mo] = moid$
+                $LIST_SHARED_MO = APPEND(LIST_SHARED_MO, check_shared_mo)$
+                $check_shared_mo = check_shared_mo | 0x10$
+            $END$
+        $ELIF (check_shared_mo & 0x10) == 0x10$
+$           // 共有リードライト領域の終端の場合
+            $IF preid == -1$
+                $ERROR$
+                    $FORMAT("unexpected preid.")$
+                $END$
+            $END$
+            $check_shared_mo = check_shared_mo & 0x0f$
+            $SHARED_AREA_LIMIT[check_shared_mo] = MO.LIMITADDR[preid]$
+            $SHARED_AREA_SIZE[check_shared_mo] = SHARED_AREA_LIMIT[check_shared_mo] - SHARED_AREA_BASE[check_shared_mo]$
+            $SHARED_AREA_LIMIT_MO[check_shared_mo] = preid$
+            $check_shared_mo = check_shared_mo + 1$
+        $END$
+
+    $END$
+
+    $preid = moid$
+$END$
+$IF (check_shared_mo & 0x10) == 0x10$
+    $IF preid == -1$
+        $ERROR$
+            $FORMAT("unexpected preid.")$
+        $END$
+    $END$
+    $check_shared_mo = check_shared_mo & 0x0f$
+    $SHARED_AREA_LIMIT[check_shared_mo] = MO.LIMITADDR[preid]$
+    $SHARED_AREA_LIMIT_MO[check_shared_mo] = preid$
+    $SHARED_AREA_SIZE[check_shared_mo] = SHARED_AREA_LIMIT[check_shared_mo] - SHARED_AREA_BASE[check_shared_mo]$
+    $check_shared_mo = check_shared_mo + 1$
+$END$
+$ 
+$  エラーチェック
+$  
+$FOREACH id LIST_SHARED_MO$
+    $IF DEBUG_OPT_TF$
+        $WARNING$
+            $id$$NL$
+            $SHARED_AREA_MO[id]$$NL$
+            $SHARED_AREA_LIMIT_MO[id]$$NL$
+            $FORMAT("0x%x", SHARED_AREA_BASE[id])$$NL$
+            $FORMAT("0x%x", SHARED_AREA_LIMIT[id])$$NL$
+            $FORMAT("0x%x", SHARED_AREA_SIZE[id])$$NL$
+        $END$
+    $END$
+    $IF ((MO.MEMATR[SHARED_AREA_MO[id]] & TA_SDATA) == TA_SDATA)$
+        $IF LENGTH(SHARED_DATA.BASE)$
+            $ERROR$
+                $FORMAT("unexpected mematr: %d, %x", id, MO.MEMATR[SHARED_AREA_MO[id]])$
+            $END$
+        $ELSE$
+            $SHARED_DATA.BASE = SHARED_AREA_BASE[id]$
+            $SHARED_DATA.LIMIT = SHARED_AREA_LIMIT[id]$
+            $SHARED_DATA.SIZE = SHARED_AREA_SIZE[id]$
+            $SHARED_DATA.BASE_MO = SHARED_AREA_MO[id]$
+            $SHARED_DATA.LIMIT_MO = SHARED_AREA_LIMIT_MO[id]$
+        $END$
+    $ELSE$
+        $ERROR$
+            $FORMAT("unexpected mematr: %d, %x", id, MO.MEMATR[SHARED_AREA_MO[id]])$
+        $END$
+    $END$
+$END$
+
+$ 
+$  data_sharedの配置アドレスを求める
+$ 
+$SHARED_DATA.REALSIZE = SEARCH_ARM_MPU_SIZE(SHARED_DATA.SIZE)$
+$SHARED_DATA.REALBASE = SEARCH_ARM_MPU_ALIGN(SHARED_DATA.BASE, SHARED_DATA.REALSIZE)$
+$IF DEBUG_OPT_TF$
+    $WARNING$
+        $FORMAT("data_shared: base[0x%x], size[0x%x]", SHARED_DATA.REALBASE, SHARED_DATA.REALSIZE)$$NL$
+    $END$
+$END$
+
+$  
+$  配置アドレスを指定するセクションに対する処理
+$  配置換え対象のセクション: 必ずあるかどうか
+$    srpw_data_all: 0
+$    srpw_sdata_all: 0
+$    rosdata_shared: 1
+$    sdata_shared: 1
+$    data_shared: 1
+$  
+$check_shared_mo = 0$
+$preid = -1$
+$limit_align_flag = 1$
+$FOREACH moid MO_START_LIST$
+$   // メモリオブジェクトの先頭をパス2時点での順にチェック
+    $IF MO.LINKER[moid]$
+        $IF DEBUG_OPT_TF$
+            $WARNING$
+                $FORMAT("check mo %d: SEFLAG=0x%x", moid, MO.SEFLAG[moid])$$NL$
+            $END$
+        $END$
+        $IF (moid == SHARED_DATA.BASE_MO)$
+$           // data_sharedの先頭
+            $MO.REALBASE[moid] = SHARED_DATA.REALBASE$
+            $MO.COMMENT[moid] = "data_shared_top"$
+            $IF DEBUG_OPT_TF$
+                $WARNING$
+                    $FORMAT("%s[%d]=0x%x", MO.COMMENT[moid], moid, MO.REALBASE[moid])$$NL$
+                $END$
+            $END$
+        $END$
+        $IF (preid == SHARED_DATA.LIMIT_MO)$
+$           // data_sharedの終端はマスクベース方式なのでサイズの倍数にアライン
+            $at_mo_order = FIND(MO_ORDER, preid)$
+            $check_flag = 1$
+            $WHILE check_flag$
+                $IF LENGTH(AT(MO_ORDER, at_mo_order))$
+                    $IF DEBUG_OPT_TF$
+                        $WARNING$
+                            $FORMAT("check: %d, 0x%x", AT(MO_ORDER, at_mo_order), +MO.SEFLAG[AT(MO_ORDER, at_mo_order)])$$NL$
+                        $END$
+                    $END$
+                    $IF (MO.SEFLAG[AT(MO_ORDER, at_mo_order)] & 0x20) == 0x20$
+                        $IF DEBUG_OPT_TF$
+                            $WARNING$
+                                $FORMAT("hit: %d, 0x%x", AT(MO_ORDER, at_mo_order), +MO.SEFLAG[AT(MO_ORDER, at_mo_order)])$$NL$
+                            $END$
+                        $END$
+                        $MO.REALALIGN[AT(MO_ORDER, at_mo_order)] = SHARED_DATA.REALSIZE$
+                        $check_flag = 0$
+                    $END$
+                $ELSE$
+                    $ERROR$
+                        $FORMAT("shared data does not have limit label")$$NL$
+                    $END$
+                    $check_flag = 0$
+                $END$
+                $at_mo_order = at_mo_order + 1$
+            $END$
+        $END$
+    $END$
+
+    $preid = moid$
+$END$
+$IF (preid == SHARED_DATA.LIMIT_MO)$
+$   // data_sharedの終端はマスクベース方式なのでサイズの倍数にアライン
+    $at_mo_order = FIND(MO_ORDER, preid)$
+    $check_flag = 1$
+    $WHILE check_flag$
+        $IF LENGTH(AT(MO_ORDER, at_mo_order))$
+            $IF DEBUG_OPT_TF$
+                $WARNING$
+                    $FORMAT("check: %d, 0x%x", AT(MO_ORDER, at_mo_order), +MO.SEFLAG[AT(MO_ORDER, at_mo_order)])$$NL$
+                $END$
+            $END$
+            $IF (MO.SEFLAG[AT(MO_ORDER, at_mo_order)] & 0x20) == 0x20$
+                $IF DEBUG_OPT_TF$
+                    $WARNING$
+                        $FORMAT("hit: %d, 0x%x", AT(MO_ORDER, at_mo_order), +MO.SEFLAG[AT(MO_ORDER, at_mo_order)])$$NL$
+                    $END$
+                $END$
+                $MO.REALALIGN[AT(MO_ORDER, at_mo_order)] = SHARED_DATA.REALSIZE$
+                $check_flag = 0$
+            $END$
+        $ELSE$
+            $ERROR$
+                $FORMAT("shared data does not have limit label")$$NL$
+            $END$
+            $check_flag = 0$
+        $END$
+        $at_mo_order = at_mo_order + 1$
+    $END$
+$END$
+
+
+
+$ 
+$  arch/v850_ghs/ldscript.tfのターゲット依存部
+$ 
+
+$FUNCTION GENERATE_PROVIDE$
+    provide(_hardware_init_hook = 0);$NL$
+    provide(_software_init_hook = 0);$NL$
+    provide(_software_term_hook = 0);$NL$
+    provide(_bsssecinib_table = 0);$NL$
+    provide(_tnum_bsssec = 0);$NL$
+    provide(_datasecinib_table = 0);$NL$
+    provide(_tnum_datasec = 0);$NL$
+    $NL$
+
+    $IF LENGTH(OSAP.ID_LIST)$
+        $FOREACH domid OSAP.ID_LIST$
+            $IF !OSAP.TRUSTED[domid]$
+$   RX領域（専用）
+                provide(___start_text_$OSAP.LABEL[domid]$ = 0xfffffff0);$NL$
+                provide(___limit_text_$OSAP.LABEL[domid]$ = 0xfffffff0);$NL$
+$   R領域（専用）
+                provide(___start_sram_$OSAP.LABEL[domid]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$ = 0xfffffff0);$NL$
+                provide(___limit_sram_$OSAP.LABEL[domid]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$ = 0xfffffff0);$NL$
+$   RWX領域（専用）
+                provide(___start_ram_$OSAP.LABEL[domid]$ = 0xfffffff0);$NL$
+                provide(___limit_ram_$OSAP.LABEL[domid]$ = 0xfffffff0);$NL$
+                provide(___start_sram_$OSAP.LABEL[domid]$ = 0xfffffff0);$NL$
+                provide(___limit_sram_$OSAP.LABEL[domid]$ = 0xfffffff0);$NL$
+$   共有リード専用ライト
+                provide($FORMAT("___start_ram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$ = 0xfffffff0);$NL$
+                provide($FORMAT("___limit_ram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$ = 0xfffffff0);$NL$
+                provide($FORMAT("___start_sram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$ = 0xfffffff0);$NL$
+                provide($FORMAT("___limit_sram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$ = 0xfffffff0);$NL$
+$                 provide($FORMAT("___start_ram_%s_srpw", OSAP.LABEL[domid])$ = 0xfffffff0);$NL$
+$                 provide($FORMAT("___limit_ram_%s_srpw", OSAP.LABEL[domid])$ = 0xfffffff0);$NL$
+$                 provide($FORMAT("___start_sram_%s_srpw", OSAP.LABEL[domid])$ = 0xfffffff0);$NL$
+$                 provide($FORMAT("___limit_sram_%s_srpw", OSAP.LABEL[domid])$ = 0xfffffff0);$NL$
+            $END$
+        $END$
+        $NL$
+    $END$$NL$
+
+$  共有領域
+    provide(___start_text_$OSAP.LABEL[TDOM_NONE]$ = 0xfffffff0);$NL$
+    provide(___limit_text_$OSAP.LABEL[TDOM_NONE]$ = 0xfffffff0);$NL$
+    provide(___start_sram_$OSAP.LABEL[TDOM_NONE]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$ = 0xfffffff0);$NL$
+    provide(___limit_sram_$OSAP.LABEL[TDOM_NONE]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$ = 0xfffffff0);$NL$
+    provide(___start_ram_$OSAP.LABEL[TDOM_NONE]$ = 0xfffffff0);$NL$
+    provide(___limit_ram_$OSAP.LABEL[TDOM_NONE]$ = 0xfffffff0);$NL$
+    provide(___start_sram_$OSAP.LABEL[TDOM_NONE]$ = 0xfffffff0);$NL$
+    provide(___limit_sram_$OSAP.LABEL[TDOM_NONE]$ = 0xfffffff0);$NL$
+$   共有リード専用ライト領域全体
+    provide(___start_srpw_all = 0xfffffff0);$NL$
+    provide(___limit_srpw_all = 0xfffffff0);$NL$
+    provide(___start_ssrpw_all = 0xfffffff0);$NL$
+    provide(___limit_ssrpw_all = 0xfffffff0);$NL$
+    $NL$
+$END$
+
+
+$ $FUNCTION TARGET_PROVIDE_GP$
+$FUNCTION GENERATE_GP_LABEL$
+    $TAB$$TAB$__gp = . + 32K;$NL$
+$END$
+
+$TOPPERS_ATTMOD = TOPPERS_ATTSEC + 1$
+$TOPPERS_MPFAREA = TOPPERS_ATTSEC + 2$
+
+$INCLUDE "v850_ghs/ldscript.tf"$
+
+$FOREACH moid MO_ORDER$
+	$IF MO.LINKER[moid]$
+$		// セクションの開始記述の生成
+		$IF (MO.SEFLAG[moid] & 0x01) != 0$
+$			// 共有リード専有ライト領域の全体の開始番地
+            $IF (MO.SEFLAG[moid] & 0x100) != 0$
+$               // 最初に更新された値が有効となる
+                $IF !LENGTH(SRPW.BASE)$
+                    $SRPW.BASE = MO.BASEADDR[moid]$
+                    $IF DEBUG_OPT_TF$
+                        $WARNING$
+                            $FORMAT("hit: %d, 0x%x", moid, +MO.SEFLAG[moid])$$NL$
+                        $END$
+                    $END$
+                $END$
+            $ELIF MO.ACPTN1[moid] == 0 && MO.ACPTN2[moid] == TACP_SHARED
+                && (MO.MEMATR[moid] & TA_SDATA) != 0$
+$               // 最初に更新された値が有効となる
+                $IF !LENGTH(SRPW.BASE)$
+                    $SRPW.BASE = MO.BASEADDR[moid]$
+                $END$
+            $END$
+		$END$
+
+$	    // 共有リード専有ライト領域の全体の終了番地
+		$IF (MO.SEFLAG[moid] & 0x200) != 0$
+            $IF !LENGTH(SRPW.BASE)$
+                $ERROR$
+                    "start_srpw label is not found"
+                $END$
+            $END$
+$           // 最後に更新された値が有効となる
+$             $SRPW.LIMIT = MO.LIMITADDR[moid]$
+            $SRPW.LIMIT = LIMIT_SYMBOL(MO.MLABEL[moid])$
+            $IF DEBUG_OPT_TF$
+                $WARNING$
+                    $FORMAT("hit end: %d, 0x%x", moid, SRPW.LIMIT)$$NL$
+                $END$
+            $END$
+        $ELIF MO.ACPTN1[moid] == 0 && MO.ACPTN2[moid] == TACP_SHARED
+            && (MO.MEMATR[moid] & TA_SDATA) != 0$
+$           // 最後に更新された値が有効となる
+$            $SRPW.LIMIT = MO.LIMITADDR[moid]$
+            $SRPW.LIMIT = LIMIT_SYMBOL(MO.MLABEL[moid])$
+            $IF DEBUG_OPT_TF$
+                $WARNING$
+                    $FORMAT("hit end: %d, 0x%x", moid, SRPW.LIMIT)$$NL$
+                $END$
+            $END$
+		$END$
+
+	$END$
+$END$
+
+$IF DEBUG_OPT_TF$
+    $WARNING$
+        $FORMAT("srpw area: 0x%x, 0x%x", SRPW.BASE, SRPW.LIMIT)$$NL$
+    $END$
+$END$
+
+$ 
+$  共有領域の初期化ブロックを生成
+$ 
+$FILE "kernel_mem3.c"$
+
+$TNUM_SHARED_REGION = 3$
+const uint32 tnum_shared_mem = $TNUM_SHARED_REGION * 2$;$NL$
+uint8 * const shared_meminib_table[$TNUM_SHARED_REGION * 2$] = {$NL$
+$shared_info = SYMBOL("shared_meminib_table")$
+$   RX領域（共有）
+$start_label = PEEK(shared_info, 4)$
+$limit_label = PEEK(shared_info + 4, 4)$
+$TAB$((uint8 *)&__start_text_$OSAP.LABEL[TDOM_NONE]$),$TAB$/* iregion 2 */$NL$
+$TAB$((uint8 *)&__limit_text_$OSAP.LABEL[TDOM_NONE]$),$TAB$/* iregion 2 */$NL$
+$     $TAB$$FORMAT("( (uint8 *)0x%x )", start_label)$,$TAB$/* iregion 2 : $FORMAT("0x%x", start_label)$ */$NL$
+$     $TAB$$FORMAT("( (uint8 *)0x%x )", limit_label)$,$TAB$/* iregion 2 : $FORMAT("0x%x", limit_label)$ */$NL$
+
+$   RX領域（共有ショートデータ，共有リード専有ライトの全体）
+$   rosdata_shared
+$   srpw_data_all
+$start_label = PEEK(shared_info + 8, 4)$
+$limit_label = PEEK(shared_info + 12, 4)$
+$IF LENGTH(SRPW.BASE) && LENGTH(SRPW.LIMIT)$
+    $TAB$((uint8 *)$FORMAT("0x%x", SRPW.BASE)$),$TAB$/* iregion 3 */$NL$
+    $TAB$((uint8 *)$FORMAT("0x%x", SRPW.LIMIT)$),$TAB$/* iregion 3 */$NL$
+$ELSE$
+    $TAB$((uint8 *)NULL),$TAB$/* iregion 3 */$NL$
+    $TAB$((uint8 *)NULL),$TAB$/* iregion 3 */$NL$
+$END$
+
+$   RWX領域（共有ショートデータ，共有データ）
+$   //sdata_sharedの先頭からdata_sharedの終端（dataの先頭）まで
+$   data_sharedの先頭からsdata_sharedの終端（dataの先頭）まで
+$start_label = PEEK(shared_info + 16, 4)$
+$limit_label = PEEK(shared_info + 20, 4)$
+$     $start_label = SHARED_SDATA.BASE$
+$     $IF LENGTH(SRPW_DATA.SIZE)$
+$         $start_label = start_label + SRPW_DATA.SIZE$
+$     $END$
+$     $limit_label = MO.REALBASE[DATA.START_MO]$
+$start_label = SHARED_DATA.REALBASE$
+$limit_label = (SHARED_DATA.REALSIZE - 1) & ~0x0f$
+$TAB$$FORMAT("( (uint8 *)0x%x )", start_label)$,$TAB$/* dregion 5 : $FORMAT("0x%x", start_label)$ */$NL$
+$TAB$$FORMAT("( (uint8 *)0x%x )", limit_label)$,$TAB$/* dregion 5 : $FORMAT("0x%x", limit_label)$ */$NL$
+
+};$NL$
+$NL$
+
+
Index: /atk2-sc3_fl850f1l/arch/v850_ghs/prc_svc.h
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ghs/prc_svc.h	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ghs/prc_svc.h	(revision 117)
@@ -0,0 +1,91 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *	
+ *  Copyright (C) 2013-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *	Copyright (C) 2013 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プロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *	に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *	アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *	の責任を負わない．
+ *	
+ */
+
+
+#ifndef TOPPERS_PRC_SVC_H
+#define TOPPERS_PRC_SVC_H
+
+#ifndef TOPPERS_MACRO_ONLY
+
+typedef sint32 FunctionCodeType;                  /* 機能コードの型 */
+
+extern int cal_svc_0m(int fncd) __attribute__((section(".text_shared")));
+extern int cal_svc_1m(int par1, int fncd) __attribute__((section(".text_shared")));
+extern int cal_svc_2m(int par1, int par2, int fncd) __attribute__((section(".text_shared")));
+extern int cal_svc_3m(int par1, int par2, int par3, int fncd) __attribute__((section(".text_shared")));
+
+extern void cal_svc_0n(int fncd) __attribute__((section(".text_shared")));
+extern void cal_svc_1n(int par1, int fncd) __attribute__((section(".text_shared")));
+extern void cal_svc_2n(int par1, int par2, int fncd) __attribute__((section(".text_shared")));
+extern void cal_svc_3n(int par1, int par2, int par3, int fncd) __attribute__((section(".text_shared")));
+
+#define CAL_SVC_0M(TYPE, FNCD) cal_svc_0m((int)((FunctionCodeType)FNCD))
+
+#define CAL_SVC_1M(TYPE, FNCD, TYPE1, PAR1) \
+cal_svc_1m((int)((TYPE1)PAR1), (int)((FunctionCodeType)FNCD))
+
+#define CAL_SVC_2M(TYPE, FNCD, TYPE1, PAR1, TYPE2, PAR2) \
+cal_svc_2m((int)((TYPE1)PAR1), (int)((TYPE2)PAR2), (int)((FunctionCodeType)FNCD))
+
+#define CAL_SVC_3M(TYPE, FNCD, TYPE1, PAR1, \
+							TYPE2, PAR2, TYPE3, PAR3) \
+cal_svc_3m((int)((TYPE1)PAR1), (int)((TYPE2)PAR2), (int)((TYPE3)PAR3), (int)((FunctionCodeType)FNCD))
+
+#define CAL_SVC_0N(TYPE, FNCD) cal_svc_0n((int)((FunctionCodeType)FNCD))
+
+#define CAL_SVC_1N(TYPE, FNCD, TYPE1, PAR1) \
+cal_svc_1n((int)((TYPE1)PAR1), (int)((FunctionCodeType)FNCD))
+
+#define CAL_SVC_2N(TYPE, FNCD, TYPE1, PAR1, TYPE2, PAR2) \
+cal_svc_2n((int)((TYPE1)PAR1), (int)((TYPE2)PAR2), (int)((FunctionCodeType)FNCD))
+
+#define CAL_SVC_3N(TYPE, FNCD, TYPE1, PAR1, \
+							TYPE2, PAR2, TYPE3, PAR3) \
+cal_svc_3n((int)((TYPE1)PAR1), (int)((TYPE2)PAR2), (int)((TYPE3)PAR3), (int)((FunctionCodeType)FNCD))
+
+#ifndef TOPPERS_SVC_CALL
+#include "ghs/tool_svc.h"
+#endif /* TOPPERS_SVC_CALL */
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_TARGET_SVC_H */
+
Index: /atk2-sc3_fl850f1l/arch/v850_ghs/prc_tool.S
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ghs/prc_tool.S	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ghs/prc_tool.S	(revision 117)
@@ -0,0 +1,197 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．  
+ *
+ *  $Id: prc_tool.S 183 2015-06-24 08:19:10Z t_ishikawa $  
+ */
+
+/*
+ *  V850用cal_svc実装
+ *  GHSにおけるインラインアセンブラでは，破壊レジスタの指定が
+ *  保証されないため，直接アセンブリで記述する
+ */
+#include <v850asm.inc>
+#include "offset.h"
+
+#ifdef USE_ASMCONFIG_INC
+#include "asm_config.inc"
+#endif /* USE_ASMCONFIG_INC */
+
+    .section .text_kernel
+    .align 4
+/*
+ *  メモリ再読込が必要なことをコンパイラに伝えるためのダミー関数
+ */
+    .globl _v850_memory_changed
+    /* 
+     *  void v850_memory_changed(void)
+     */
+FLABEL(_v850_memory_changed)
+    jmp lp
+    nop
+
+    .globl _v850_sync_memory
+    /* 
+     *  void v850_sync_memory(void)
+     */
+FLABEL(_v850_sync_memory)
+    syncm
+    jmp lp
+    nop
+
+/*
+ *  サービスコールの出入口
+ *    r10 : 返り値
+ *    r11：関数コード
+ *    r6 - r9 : 引数（4つまで）
+ *    スクラッチレジスタ保存（関数呼出しによりここでは保存済み）
+ *    lp保存
+ */
+    .section .text_shared
+    .align 4
+    .globl _cal_svc_0m
+    /* 
+     * extern int cal_svc_0m(int fncd)
+     *   __attribute__((section(".text_shared")));
+     */
+FLABEL(_cal_svc_0m)
+    mov r6, r11
+    pushsp ep-lp
+    syscall 1
+    nop
+    popsp ep-lp
+    jmp [lp]
+    nop
+
+    .globl _cal_svc_1m
+    /* 
+     * extern int cal_svc_1m(int par1, int fncd)
+     *   __attribute__((section(".text_shared")));
+     */
+FLABEL(_cal_svc_1m)
+    mov r7, r11
+    pushsp ep-lp
+    syscall 1
+    nop
+    popsp ep-lp
+    jmp [lp]
+    nop
+
+    .globl _cal_svc_2m
+    /* 
+     * extern int cal_svc_2m(int par1, int par2, int fncd)
+     *   __attribute__((section(".text_shared")));
+     */
+FLABEL(_cal_svc_2m)
+    mov r8, r11
+    pushsp ep-lp
+    syscall 1
+    nop
+    popsp ep-lp
+    jmp [lp]
+    nop
+
+    .globl _cal_svc_3m
+    /* 
+     * extern int cal_svc_3m(int par1, int par2, int par3, int fncd)
+     *   __attribute__((section(".text_shared")));
+     */
+FLABEL(_cal_svc_3m)
+    mov r9, r11
+    pushsp ep-lp
+    syscall 1
+    nop
+    popsp ep-lp
+    jmp [lp]
+    nop
+
+    .globl _cal_svc_0n
+    /* 
+     * extern void cal_svc_0n(int fncd)
+     *   __attribute__((section(".text_shared")));
+     */
+FLABEL(_cal_svc_0n)
+    mov r6, r11
+    pushsp ep-lp
+    syscall 1
+    nop
+    popsp ep-lp
+    jmp [lp]
+    nop
+
+    .globl _cal_svc_1n
+    /* 
+     * extern void cal_svc_1n(int par1, int fncd)
+     *   __attribute__((section(".text_shared")));
+     */
+FLABEL(_cal_svc_1n)
+    mov r7, r11
+    pushsp ep-lp
+    syscall 1
+    nop
+    popsp ep-lp
+    jmp [lp]
+    nop
+
+    .globl _cal_svc_2n
+    /* 
+     * extern void cal_svc_2n(int par1, int par2, int fncd)
+     *   __attribute__((section(".text_shared")));
+     */
+FLABEL(_cal_svc_2n)
+    mov r8, r11
+    pushsp ep-lp
+    syscall 1
+    nop
+    popsp ep-lp
+    jmp [lp]
+    nop
+
+    .globl _cal_svc_3n
+    /* 
+     * extern void cal_svc_3n(int par1, int par2, int par3, int fncd)
+     *   __attribute__((section(".text_shared")));
+     */
+FLABEL(_cal_svc_3n)
+    mov r9, r11
+    pushsp ep-lp
+    syscall 1
+    nop
+    popsp ep-lp
+    jmp [lp]
+    nop
+
+
Index: /atk2-sc3_fl850f1l/arch/v850_ghs/prc_user.txt
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ghs/prc_user.txt	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ghs/prc_user.txt	(revision 117)
@@ -0,0 +1,83 @@
+
+		TOPPERS/ATK2-SC3
+        ＜V850E2プロセッサ依存部マニュアル(GHS版)＞
+
+このドキュメントはV850E2プロセッサ依存部のGHS版情報を記述したものであ
+る．GCC版と同様の箇所は説明を省いている．
+
+
+○概要
+
+V850プロセッサ依存部（以下，V850依存部）は，ルネサスエレクトロニクスの
+V850E2M/V850E2Sコア(V850E2v3アーキテクチャ)または，G3M/G3Kコア
+(V850E3V5アーキテクチャ)を用いたLSIをサポートしている．
+
+現状サポートしているLSIは，次に2種類である．V850プロセッサ依存部では，
+プロセッサと割り込みコントローラのみを使用するため，他の
+V850E2M/V850E2SコアもしくはG3M/G3Kコアを用いたLSIへのポーティングは容
+易である．
+
+ ・V850E2/Fx4
+ ・RH850/F1L
+ ・RH850/F1H
+
+
+○開発環境
+
+カーネルのコンパイルは，GHS を用いている．動作確認を行なったバージョン
+は以下のものである．
+
+ ・2013.5.5
+
+デバッガは，CS+を使用して動作確認をしている．動作確認をしたバージョン
+は次の通りである．
+
+ ・CS+ V3.00.00
+ 
+○周辺回路
+
+GCC版と同様．
+
+
+○TAUn割込みハンドラ(in taua_timer.c)
+
+GCC版と同様．
+
+
+○割込み優先度
+
+GCC版と同様．
+
+
+○割込み属性
+
+GCC版と同様．
+
+
+○未登録の割込み
+
+GCC版と同様．
+
+
+○C1ISRの扱い
+
+GCC版と同様．
+
+                
+○CPU例外要因情報取得
+
+GCC版と同様．
+
+
+○制限事項
+
+GCC版でビルドの最後に行うアドレスの整合性チェックは正しく動作しないた
+め，実施しない．
+
+ep相対でアクセスするtinyデータセクションはサポートしない．
+    
+○バージョン履歴
+2015/06/26
+・SC3対応
+        
+以上．
Index: /atk2-sc3_fl850f1l/arch/v850_ghs/rh850_f1h_6m_pe1only.ld
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ghs/rh850_f1h_6m_pe1only.ld	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ghs/rh850_f1h_6m_pe1only.ld	(revision 117)
@@ -0,0 +1,111 @@
+/*
+ *	RH850/F1L-2Mリンカスクリプト
+ */
+
+MEMORY
+{
+	INTROM(raxi) : org = 0x00000000, len = 4M
+	INTROMPE2    : org = 0x00800000, len = 2M
+	INTRAM(wax)  : org = 0xFEBD0000, len = 192k
+}
+
+SECTIONS
+{
+    provide(hardware_init_hook = 0);
+    provide(software_init_hook = 0);
+    provide(software_term_hook = 0);
+
+    provide(StartupHook = 0);
+    provide(ShutdownHook = 0);
+    provide(PreTaskHook = 0);
+    provide(PostTaskHook = 0);
+    provide(ErrorHook = 0);
+    provide(ProtectionHook = 0);
+
+    .CODEFLASH   0x00000000 :
+	.text :  AT(0)
+	{
+		__text = . ;
+		*(.reset.text)
+		*(.text)
+		_etext = . ;
+	} > INTROM
+
+	.call_table_data ALIGN (4) :
+	{
+	PROVIDE(__ctbp = .);
+	*(.call_table_data)
+	} > INTROM
+	
+	.call_table_text :
+	{
+	*(.call_table_text)
+	} > INTROM
+
+	. = ALIGN(4);
+	.rosdata : { *(.rosdata) } > INTROM
+
+	. = ALIGN(4);
+	.rodata : { *(.rodata) } > INTROM
+
+	_textend = .;
+
+	. = ALIGN(4);
+	__idata_start = . ;
+
+	.data	:  AT(__idata_start) 
+	{
+		. = ALIGN(4);
+		__data_start = . ;
+		*(.data)
+		. = ALIGN(8);
+	} > INTRAM
+
+	.sdabase  : AT(__idata_start + SIZEOF(.data))
+	.sdata    : AT(__idata_start + SIZEOF(.data))
+	{
+		*(.sdata)
+		_edata	=  . ;
+	} > INTRAM
+
+	__idata_end = __idata_start + SIZEOF(.data) + SIZEOF(.sdata);
+
+	.sbss                  :
+	{
+	  . = ALIGN(4);
+	  __bss_start = .;
+		*(.sbss)
+	} > INTRAM
+
+	.bss	   :
+	{
+	  . = ALIGN(4);
+	  *(.bss)
+	  *(COMMON)
+	  . = ALIGN(4);
+	  __bss_end = .;
+	} > INTRAM
+
+	.pe2_rom :
+	{
+	  *(.non_use_pe_rom)
+	} > INTROMPE2
+
+	.tdata ALIGN (4) :
+	{
+		PROVIDE (__ep = .);
+		*(.tbyte)
+		*(.tcommon_byte)
+		*(.tdata)
+		*(.tbss)
+		*(.tcommon)
+	} > INTRAM
+	
+	.comment 0 : { *(.comment) }	
+	.debug			0 : { *(.debug) }
+	.line			0 : { *(.line) }
+	.debug_srcinfo	0 : { *(.debug_srcinfo) }
+	.debug_sfnames	0 : { *(.debug_sfnames) }
+}
+/* provide a pointer for the stack */
+ 
Index: /atk2-sc3_fl850f1l/arch/v850_ghs/rh850_f1h_6m_pe2only.ld
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ghs/rh850_f1h_6m_pe2only.ld	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ghs/rh850_f1h_6m_pe2only.ld	(revision 117)
@@ -0,0 +1,111 @@
+/*
+ *	RH850/F1L-2Mリンカスクリプト
+ */
+
+MEMORY
+{
+	INTROM(raxi) : org = 0x00800000, len = 2M
+	INTROMPE1    : org = 0x00000000, len = 4M
+	INTRAM(wax)  : org = 0xFE9D0000, len = 192k
+}
+
+SECTIONS
+{
+    provide(hardware_init_hook = 0);
+    provide(software_init_hook = 0);
+    provide(software_term_hook = 0);
+
+    provide(StartupHook = 0);
+    provide(ShutdownHook = 0);
+    provide(PreTaskHook = 0);
+    provide(PostTaskHook = 0);
+    provide(ErrorHook = 0);
+    provide(ProtectionHook = 0);
+
+    .CODEFLASH   0x00000000 :
+	.text :
+	{
+		__text = . ;
+		*(.reset.text)
+		*(.text)
+		_etext = . ;
+	} > INTROM
+
+	.call_table_data ALIGN (4) :
+	{
+	PROVIDE(__ctbp = .);
+	*(.call_table_data)
+	} > INTROM
+	
+	.call_table_text :
+	{
+	*(.call_table_text)
+	} > INTROM
+
+	. = ALIGN(4);
+	.rosdata : { *(.rosdata) } > INTROM
+
+	. = ALIGN(4);
+	.rodata : { *(.rodata) } > INTROM
+
+	_textend = .;
+
+	. = ALIGN(4);
+	__idata_start = . ;
+
+	.data	:  AT(__idata_start) 
+	{
+		. = ALIGN(4);
+		__data_start = . ;
+		*(.data)
+		. = ALIGN(8);
+	} > INTRAM
+
+	.sdabase  : AT(__idata_start + SIZEOF(.data))
+	.sdata    : AT(__idata_start + SIZEOF(.data))
+	{
+		*(.sdata)
+		_edata	=  . ;
+	} > INTRAM
+
+	__idata_end = __idata_start + SIZEOF(.data) + SIZEOF(.sdata);
+
+	.sbss                  :
+	{
+	  . = ALIGN(4);
+	  __bss_start = .;
+		*(.sbss)
+	} > INTRAM
+
+	.bss	   :
+	{
+	  . = ALIGN(4);
+	  *(.bss)
+	  *(COMMON)
+	  . = ALIGN(4);
+	  __bss_end = .;
+	} > INTRAM
+
+	.pe1_rom :
+	{
+	  *(.non_use_pe_rom)
+	} > INTROMPE1
+
+	.tdata ALIGN (4) :
+	{
+		PROVIDE (__ep = .);
+		*(.tbyte)
+		*(.tcommon_byte)
+		*(.tdata)
+		*(.tbss)
+		*(.tcommon)
+	} > INTRAM
+	
+	.comment 0 : { *(.comment) }	
+	.debug			0 : { *(.debug) }
+	.line			0 : { *(.line) }
+	.debug_srcinfo	0 : { *(.debug_srcinfo) }
+	.debug_sfnames	0 : { *(.debug_sfnames) }
+}
+/* provide a pointer for the stack */
+ 
Index: /atk2-sc3_fl850f1l/arch/v850_ghs/rh850_f1l_2m.ld
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ghs/rh850_f1l_2m.ld	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ghs/rh850_f1l_2m.ld	(revision 117)
@@ -0,0 +1,111 @@
+/*
+ *	RH850/F1L-2Mリンカスクリプト
+ */
+
+MEMORY
+{
+	INTROM(raxi) : org = 0x00000000, len = 2M
+	INTRAM(wax)  : org = 0xFEDE0000, len = 128k
+}
+
+SECTIONS
+{
+    provide(_hardware_init_hook = 0);
+    provide(_software_init_hook = 0);
+    provide(_software_term_hook = 0);
+
+    provide(StartupHook = 0);
+    provide(ShutdownHook = 0);
+    provide(PreTaskHook = 0);
+    provide(PostTaskHook = 0);
+    provide(ErrorHook = 0);
+    provide(ProtectionHook = 0);
+
+    provide(_bsssecinib_table = 0);
+    provide(_tnum_bsssec = 0);
+    provide(_datasecinib_table = 0);
+    provide(_tnum_datasec = 0);
+
+    .CODEFLASH   0x00000000 :
+	.text :  AT(0)
+	{
+		__text = . ;
+		*(.reset.text)
+		*(.text)
+		_etext = . ;
+	} > INTROM
+
+	.call_table_data ALIGN (4) :
+	{
+	PROVIDE(__ctbp = .);
+	*(.call_table_data)
+	} > INTROM
+	
+	.call_table_text :
+	{
+	*(.call_table_text)
+	} > INTROM
+
+	. = ALIGN(4);
+	.rosdata : { *(.rosdata) } > INTROM
+
+	. = ALIGN(4);
+	.rodata : { *(.rodata) } > INTROM
+
+	_textend = .;
+
+	. = ALIGN(4);
+	__idata_start = . ;
+
+	.data	:  AT(__idata_start) 
+	{
+		. = ALIGN(4);
+		__data_start = . ;
+		*(.data)
+		. = ALIGN(8);
+	} > INTRAM
+
+	.sdabase  : AT(__idata_start + SIZEOF(.data))
+	.sdata    : AT(__idata_start + SIZEOF(.data))
+	{
+		*(.sdata)
+		_edata	=  . ;
+	} > INTRAM
+
+	__idata_end = __idata_start + SIZEOF(.data) + SIZEOF(.sdata);
+
+	.sbss                  :
+	{
+	  . = ALIGN(4);
+	  __bss_start = .;
+		*(.sbss)
+	} > INTRAM
+
+	.bss	   :
+	{
+	  . = ALIGN(4);
+	  *(.bss)
+	  *(COMMON)
+	  . = ALIGN(4);
+	  __bss_end = .;
+	} > INTRAM
+
+	
+	.tdata ALIGN (4) :
+	{
+		PROVIDE (__ep = .);
+		*(.tbyte)
+		*(.tcommon_byte)
+		*(.tdata)
+		*(.tbss)
+		*(.tcommon)
+	} > INTRAM
+	
+	.comment 0 : { *(.comment) }	
+	.debug			0 : { *(.debug) }
+	.line			0 : { *(.line) }
+	.debug_srcinfo	0 : { *(.debug_srcinfo) }
+	.debug_sfnames	0 : { *(.debug_sfnames) }
+}
+/* provide a pointer for the stack */
+ 
Index: /atk2-sc3_fl850f1l/arch/v850_ghs/v850asm.inc
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ghs/v850asm.inc	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ghs/v850asm.inc	(revision 117)
@@ -0,0 +1,169 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by Spansion LLC, USA
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: v850asm.inc 151 2015-01-19 11:41:16Z t_ishikawa $  
+ */
+
+/*
+ *  V850アセンブラ用定義ファイル
+ */
+#define TOPPERS_MACRO_ONLY
+#define UINT_C(val)			(val)		/* 符号無し整数型の定数を作るマクロ */
+#define CAST(type, val)		(val)		/* 型キャストを行うマクロ */
+
+#include "kernel_impl.h"
+
+/*
+ * アセンブラマクロ内での引数の参照
+ */
+#define AMARG(name)  name
+
+	/*
+	 * ラベルロード Lea (Load Effective Address)
+	 */
+
+	.macro	Lea name, destination
+	mov	name, destination
+	.endm
+
+	/*
+	 * ラベル宣言 Flabel
+	 *
+	 *   関数名として使うラベル割付を行う
+	 */
+	.macro	Flabel name
+	.type	name,@function
+name:
+	.endm
+
+#define FLABEL(name) Flabel name
+
+	/*
+	 * スタック操作 - プッシュ
+	 */
+	
+	.macro	Push source
+	add	-4, sp
+	st.w	source, 0[sp]
+	.endm
+	
+	/*
+	 * スタック操作 - ポップ
+	 */
+	
+	.macro	Pop dest
+	ld.w	0[sp],dest
+	add	4, sp
+	.endm
+
+	/*
+	 * 割り込み禁止
+	 */
+	.macro	X_LOCK_ALL_INT reg1 reg2
+	ld.w	PMR, reg1
+	ld.w	0xffff, reg2
+	and		reg2,reg1
+	st.w	reg2
+	.endm
+
+/*
+ *  全割込み禁止マクロ
+ */
+.macro LOCK_ALL_INT
+    di
+.endm
+
+/*
+ *  全割込み禁止解除マクロ
+ */
+.macro UNLOCK_ALL_INT
+    ei
+.endm
+
+/*
+ *  V850E2M システムレジスタ
+ */
+ 
+#define scbp	12
+#define sccfg	11
+#define vmtid	 5
+#define vmadr	 6
+
+#define ipa0l	 6
+#define ipa0u	 7
+#define ipa1l	 8
+#define ipa1u	 9
+#define ipa2l	10
+#define ipa2u	11
+#define ipa3l	12
+#define ipa3u	13
+#define ipa4l	14
+#define ipa4u	15
+
+#define dpa0l	16
+#define dpa0u	17
+#define dpa1l	18
+#define dpa1u	19
+#define dpa2l	20
+#define dpa2u	21
+#define dpa3l	22
+#define dpa3u	23
+#define dpa4l	24
+#define dpa4u	25
+#define dpa5l	26
+#define dpa5u	27
+
+#define mca		24
+#define mcs		25
+#define mcc		26
+#define mcr		27
+
+#define mpm		 0
+
Index: /atk2-sc3_fl850f1l/arch/v850_ghs/v850e2_fl4_2m.ld
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ghs/v850e2_fl4_2m.ld	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ghs/v850e2_fl4_2m.ld	(revision 117)
@@ -0,0 +1,125 @@
+/*
+
+ *	V850E2/FX4-4012リンカスクリプト
+ */
+
+DEFAULTS {
+   heap_reserve = 8K
+}
+
+MEMORY
+{
+	INTROM(raxi) : org = 0x00000000, len = 2M
+	INTRAM(wax)  : org = 0xFEDDC000, len = 144k
+}
+
+SECTIONS
+{
+    provide(_hardware_init_hook = 0);
+    provide(_software_init_hook = 0);
+    provide(_software_term_hook = 0);
+    provide(_hardware_term_hook = 0);
+    provide(_bsssecinib_table = 0);
+    provide(_tnum_bsssec = 0);
+    provide(_datasecinib_table = 0);
+    provide(_tnum_datasec = 0);
+    provide(_StartupHook = 0);
+    provide(_ShutdownHook = 0);
+    provide(_PreTaskHook = 0);
+    provide(_PostTaskHook = 0);
+    provide(_ErrorHook = 0);
+    provide(_ProtectionHook = 0);
+
+    .CODEFLASH   0x00000000 :
+	.vector : AT(0)
+	{
+		*(.vector)
+	} > INTROM
+	.text :	
+	{
+		__text = . ;
+		__tp = . ;
+		*(.text)
+		_etext = . ;
+	} > INTROM
+
+	.call_table_data ALIGN (4) :
+	{
+	PROVIDE(__ctbp = .);
+	*(.call_table_data)
+	} > INTROM
+	
+	.call_table_text :
+	{
+	*(.call_table_text)
+	} > INTROM
+
+	. = ALIGN(4);
+	.rosdata : { *(.rosdata) } > INTROM
+
+	. = ALIGN(4);
+	.rodata : { *(.rodata) } > INTROM
+
+	_textend = .;
+    .syscall			                            : > INTROM
+    .secinfo						    : > INTROM
+    .fixaddr						    : > INTROM
+    .fixtype						    : > INTROM
+	. = ALIGN(4);
+	__idata_start = . ;
+
+	.data	:  AT(__idata_start) 
+	{
+		. = ALIGN(4);
+		__data_start = . ;
+		*(.data)
+		. = ALIGN(8);
+	} > INTRAM
+
+	.sdabase  : AT(__idata_start + SIZEOF(.data))
+	.sdata    : AT(__idata_start + SIZEOF(.data))
+	{
+		*(.sdata)
+		_edata	=  . ;
+	} > INTRAM
+
+	__idata_end = __idata_start + SIZEOF(.data) + SIZEOF(.sdata);
+
+	.sbss                  :
+	{
+	  . = ALIGN(4);
+	  __bss_start = .;
+		*(.sbss)
+	} > INTRAM
+
+	.bss	   :
+	{
+	  . = ALIGN(4);
+	  *(.bss)
+	  *(COMMON)
+	  . = ALIGN(4);
+	  __bss_end = .;
+	} > INTRAM
+	
+	
+	.tdata ALIGN (4) :
+	{
+		PROVIDE (__ep = .);
+		*(.tbyte)
+		*(.tcommon_byte)
+		*(.tdata)
+		*(.tbss)
+		*(.tcommon)
+	} > INTRAM
+    .heap    ALIGN(8) PAD(heap_reserve)   : > INTRAM
+	
+	.comment 0 : { *(.comment) }	
+	.debug			0 : { *(.debug) }
+	.line			0 : { *(.line) }
+	.debug_srcinfo	0 : { *(.debug_srcinfo) }
+	.debug_sfnames	0 : { *(.debug_sfnames) }
+	.debug_aranges	0 : { *(.debug_aranges) }
+	.debug_pubnames 0 : { *(.debug_pubnames) }	
+}
+/* provide a pointer for the stack */
+ 
Index: /atk2-sc3_fl850f1l/arch/v850_ghs/v850e2_px4_3507.ld
===================================================================
--- /atk2-sc3_fl850f1l/arch/v850_ghs/v850e2_px4_3507.ld	(revision 117)
+++ /atk2-sc3_fl850f1l/arch/v850_ghs/v850e2_px4_3507.ld	(revision 117)
@@ -0,0 +1,123 @@
+/*
+ *	V850E2/PX4-3507リンカスクリプト
+ */
+
+DEFAULTS {
+   heap_reserve = 8K
+}
+
+MEMORY
+{
+	INTROM(raxi) : org = 0x00000000, len = 512K
+	INTRAM(wax)  : org = 0xFEDF6000, len = 40k
+}
+
+SECTIONS
+{
+    provide(_hardware_init_hook = 0);
+    provide(_software_init_hook = 0);
+    provide(_software_term_hook = 0);
+    provide(_hardware_term_hook = 0);
+    provide(_bsssecinib_table = 0);
+    provide(_tnum_bsssec = 0);
+    provide(_datasecinib_table = 0);
+    provide(_tnum_datasec = 0);
+    provide(_StartupHook = 0);
+    provide(_ShutdownHook = 0);
+    provide(_PreTaskHook = 0);
+    provide(_PostTaskHook = 0);
+    provide(_ErrorHook = 0);
+    provide(_ProtectionHook = 0);
+
+    .CODEFLASH   0x00000000 :
+	.vector : AT(0)
+	{
+		*(.vector)
+	} > INTROM
+	.text :	
+	{
+		__text = . ;
+		__tp = . ;
+		*(.text)
+		_etext = . ;
+	} > INTROM
+
+	.call_table_data ALIGN (4) :
+	{
+	PROVIDE(__ctbp = .);
+	*(.call_table_data)
+	} > INTROM
+	
+	.call_table_text :
+	{
+	*(.call_table_text)
+	} > INTROM
+
+	. = ALIGN(4);
+	.rosdata : { *(.rosdata) } > INTROM
+
+	. = ALIGN(4);
+	.rodata : { *(.rodata) } > INTROM
+
+	_textend = .;
+    .syscall						    : > INTROM
+    .secinfo						    : > INTROM
+    .fixaddr						    : > INTROM
+    .fixtype						    : > INTROM
+	. = ALIGN(4);
+	__idata_start = . ;
+
+	.data	:  AT(__idata_start) 
+	{
+		. = ALIGN(4);
+		__data_start = . ;
+		*(.data)
+		. = ALIGN(8);
+	} > INTRAM
+
+	.sdabase  : AT(__idata_start + SIZEOF(.data))
+	.sdata    : AT(__idata_start + SIZEOF(.data))
+	{
+		*(.sdata)
+		_edata	=  . ;
+	} > INTRAM
+
+	__idata_end = __idata_start + SIZEOF(.data) + SIZEOF(.sdata);
+
+	.sbss                  :
+	{
+	  . = ALIGN(4);
+	  __bss_start = .;
+		*(.sbss)
+	} > INTRAM
+
+	.bss	   :
+	{
+	  . = ALIGN(4);
+	  *(.bss)
+	  *(COMMON)
+	  . = ALIGN(4);
+	  __bss_end = .;
+	} > INTRAM
+	
+	.tdata ALIGN (4) :
+	{
+		PROVIDE (__ep = .);
+		*(.tbyte)
+		*(.tcommon_byte)
+		*(.tdata)
+		*(.tbss)
+		*(.tcommon)
+	} > INTRAM
+    .heap    ALIGN(8) PAD(heap_reserve)   : > INTRAM
+	
+	.comment 0 : { *(.comment) }	
+	.debug			0 : { *(.debug) }
+	.line			0 : { *(.line) }
+	.debug_srcinfo	0 : { *(.debug_srcinfo) }
+	.debug_sfnames	0 : { *(.debug_sfnames) }
+	.debug_aranges	0 : { *(.debug_aranges) }
+	.debug_pubnames 0 : { *(.debug_pubnames) }	
+}
+/* provide a pointer for the stack */
+ 
Index: /atk2-sc3_fl850f1l/configure
===================================================================
--- /atk2-sc3_fl850f1l/configure	(revision 117)
+++ /atk2-sc3_fl850f1l/configure	(revision 117)
@@ -0,0 +1,309 @@
+#! /usr/bin/perl
+#
+#  TOPPERS ATK2
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+#      Automotive Kernel Version 2
+#
+#  Copyright (C) 2001-2003 by Embedded and Real-Time Systems Laboratory
+#                              Toyohashi Univ. of Technology, JAPAN
+#  Copyright (C) 2006-2015 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+#  Copyright (C) 2011-2013 by Spansion LLC, USA
+#  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+#  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+#  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+#  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+#  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+#  Copyright (C) 2011-2015 by Witz Corporation
+#  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+#  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+#  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+#
+#  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+#  $Id: configure 187 2015-06-25 03:39:04Z t_ishikawa $
+#
+
+use Getopt::Std;
+
+#  オプションの定義
+#
+#  -T <target>			ターゲット名（必須）
+#  -A <applname>		アプリケーションプログラム名（デフォルトはsample1）
+#  -C <cfgname>			コンフィギュレーションファイル名（デフォルトはsample1）
+#						（省略した場合，コンフィギュレーションファイル名もアプリケーションプログラム名となる）
+#						（拡張子を除いて指定．複数指定可）
+#  -h					ハードウェアカウンタを無効にするかどうかの指定（デフォルトは有効）
+#  -a <appldir>			アプリケーションのディレクトリ名
+#  -U <applobjs>		他のアプリケーションプログラムファイル
+#						（.oファイル名で指定．複数指定可）
+#  -L <kernel_lib>		カーネルライブラリ（libkernel.a）のディレクトリ名
+#						（省略した場合，カーネルライブラリもmakeする）
+#  -f					カーネルを関数単位でコンパイルするかどうかの指定
+#  -D <srcdir>			カーネル等のソースの置かれているディレクトリ
+#  -l <srclang>			プログラミング言語（現時点ではcとc++のみサポート）
+#  -t <templatedir>		テンプレートディレクトリの指定（デフォルトはsample）
+#  -m <makefile>		テンプレートMakefile名の指定（デフォルトはMakefile）
+#  -d <dbgenv>			実行環境の名称
+#  -r					トレースログ記録のサンプルコードを使用するかどうか
+#						の指定
+#  -s					システムタイマを使用するかどうかの指定
+#  -S					シリアル通信を有効化するかどうかの指定
+#  -p <perl>			perlのパス名（明示的に指定する場合）
+#  -g <cfg>				ジェネレータ（cfg）のパス名
+#  -o <options>			共通コンパイルオプション（COPTSに追加）
+#  -O <options>			共通シンボル定義オプション（CDEFSに追加）
+#  -k <options>			共通リンカオプション（LDFLAGSに追加）
+
+#  使用例(1)
+#
+#  % ../configure -T dve68k_gcc -D GDB_STUB -A perf1 -a ../test -U histogram.o
+#
+#  使用例(2)
+#
+#  % ../configure -T macosx_gcc -L .
+#	アプリケーションプログラムは sample1 になる．
+
+#
+#  オプションの処理
+#
+getopt("TACaULDltmdpgoOk");
+
+#
+#  変数の初期化
+#
+
+$target = $opt_T;
+$applname = $opt_A ? $opt_A : "sample1";
+$cfgname = $opt_C ? $opt_C : $applname;
+$omit_hw_counter = $opt_h ? "true" : "";
+$appldir = $opt_a ? $opt_a : "";
+$applobjs = $opt_U ? $opt_U : "";
+$kernel_lib = $opt_L ? $opt_L : "";
+$kernel_funcobjs = $opt_f ? "true" : "";
+$srclang = $opt_l ? $opt_l : "c";
+$makefile = $opt_m ? $opt_m : "Makefile";
+$dbgenv = $opt_d ? "TOPPERS_".$opt_d : "";
+$enable_trace = $opt_r ? "true" : "";
+$enable_sys_timer = $opt_s ? "true" : "";
+$copts = $opt_o ? $opt_o : "";
+$cdefs = $opt_O ? $opt_O : "";
+$ldflags = $opt_k ? $opt_k : "";
+$enable_serial = $opt_S ? $opt_S : !($opt_A || $opt_C);
+$cfg_serial = $enable_serial ? "CFGNAME := \$(CFGNAME) target_serial" : "";
+
+if ($applname eq "sample1") {
+	$applobjs .= " sample2.o"
+}
+
+#
+#  オブジェクトファイル名の拡張子を返す
+#
+sub get_objext {
+	if ($^O eq 'cygwin') {
+		return("exe");
+	}
+	else {
+		return("");
+	}
+}
+
+#
+#  プログラムの場所を検索する
+#
+sub get_path {
+	my($progname, @pathlist) = @_;
+	my($path);
+
+	foreach $path (@pathlist) {
+		if (-x $path."/".$progname) {
+			return($path."/".$progname);
+		}
+	}
+	return("");
+}
+
+#
+#  ファイルを変換する
+#
+sub convert {
+	my($infile, $outfile) = @_;
+	my($line);
+
+	print STDERR "configure: Generating $outfile from $infile.\n";
+	if (-f $outfile) {
+		print STDERR "configure: $outfile exists.",
+						"  Save as $outfile.bak.\n";
+		rename($outfile, $outfile.".bak");
+	}
+	unless (open(INFILE, $infile)) {
+		print STDERR "configure: can't open $infile\n";
+		exit(1);
+	}
+	unless (open(OUTFILE, "> ".$outfile)) {
+		print STDERR "configure: can't open $outfile\n";
+		exit(1);
+	}
+
+	while ($line = <INFILE>) {
+		chop $line;
+		while ($line =~ /^(.*)\@\(([A-Za-z_]+)\)(.*)$/) {
+			$line = $1.$vartable{$2}.$3;
+		}
+		print OUTFILE $line,"\n";
+	}
+
+	close(INFILE);
+	close(OUTFILE);
+}
+
+#
+#  サンプルを見つけてファイルを生成する
+#
+sub generate {
+	my($file, $mandatory) = @_;
+	my($path);
+
+	$path = $templatedir."/".$file.".".$target;
+	if (-f $path) {
+		convert($path, $file);
+		return;
+	}
+
+	$path = $templatedir."/".$file;
+	if ($mandatory || -f $path) {
+		convert($path, $file);
+	}
+}
+
+#
+#  ソースディレクトリ名を取り出す
+#
+$pwd = `pwd`; chop $pwd;
+if ($opt_D) {
+	$srcabsdir = $srcdir = $opt_D;
+}
+elsif ($0 =~ /(.*)\/configure/) {
+	$srcdir = $1;
+	if ($srcdir =~ /^\//) {
+		$srcabsdir = $srcdir;
+	}
+	else {
+		$srcabsdir = $pwd."/".$srcdir;
+	}
+}
+else {
+	$srcabsdir = $srcdir = $pwd;
+}
+
+$perl = $opt_p ? $opt_p : get_path("perl", ("/usr/local/bin", "/usr/bin"));
+$cfg_path = "/cfg/cfg/cfg";
+$cfg = $opt_g ? $opt_g : "\$(SRCDIR)".$cfg_path;
+$cfgfile = $opt_g ? $opt_g : $srcdir.$cfg_path;
+$templatedir = $opt_t ? $opt_t : $srcdir."/sample";
+
+#
+#  -Tオプションの確認
+#
+unless ($opt_T) {
+	print STDERR "configure: -T option is mandatory\n";
+	print STDERR "Installed targets are:\n";
+	foreach $targetname (<$srcdir/target/[a-zA-Z0-9]*>) {
+		$targetname =~ s|$srcdir/target/||;
+		print STDERR "\t$targetname\n";
+	}
+	exit(1);
+}
+
+#
+#  変数テーブルの作成
+#
+%vartable = ();
+$vartable{"TARGET"} = $target;
+$vartable{"APPLNAME"} = $applname;
+$vartable{"CFGNAME"} = $cfgname;
+$vartable{"OMIT_HW_COUNTER"} = $omit_hw_counter;
+$vartable{"APPLDIR"} = $appldir;
+$vartable{"APPLOBJS"} = $applobjs;
+$vartable{"KERNEL_LIB"} = $kernel_lib;
+$vartable{"KERNEL_FUNCOBJS"} = $kernel_funcobjs;
+$vartable{"SRCDIR"} = $srcdir;
+$vartable{"SRCABSDIR"} = $srcabsdir;
+$vartable{"SRCLANG"} = $srclang;
+$vartable{"DBGENV"} = $dbgenv;
+$vartable{"ENABLE_TRACE"} = $enable_trace;
+$vartable{"ENABLE_SYS_TIMER"} = $enable_sys_timer;
+$vartable{"CFG_SERIAL"} = $cfg_serial;
+$vartable{"PERL"} = $perl;
+$vartable{"CFG"} = $cfg;
+$objext = get_objext();
+$vartable{"OBJEXT"} = $objext;
+$vartable{"COPTS"} = $copts;
+$vartable{"CDEFS"} = $cdefs;
+$vartable{"LDFLAGS"} = $ldflags;
+
+#
+#  ターゲットディレクトリのチェック
+#
+
+if (! -d $srcdir."/target/".$target) {
+	print STDERR "configure: $srcdir/target/$target not exist\n";
+	exit(1);
+}
+
+#
+#  Makefile とアプリケーションファイルの生成
+#
+
+generate($makefile, 1);
+generate($applname.".c", 0);
+generate($applname.".cpp", 0);
+generate($applname.".h", 0);
+generate($cfgname.".arxml", 0);
+if ($applname eq "sample1") {
+	generate("sample.h", 0);
+	generate("sample2.h", 0);
+	generate("sample2.c", 0);
+	generate("Rte_Type.h", 0);
+}
+
+#
+#  cfg ができているかのチェック
+#
+
+if (!(-x ($objext eq "" ? $cfgfile : $cfgfile.".".$objext))) {
+	print STDERR "Executable file of the configurator (cfg) is not found.\n";
+}
Index: /atk2-sc3_fl850f1l/doc/porting.txt
===================================================================
--- /atk2-sc3_fl850f1l/doc/porting.txt	(revision 117)
+++ /atk2-sc3_fl850f1l/doc/porting.txt	(revision 117)
@@ -0,0 +1,2161 @@
+
+		TOPPERS/ATK2-SC3
+		ターゲット依存部 ポーティングガイド
+
+このドキュメントは，TOPPERS/ATK2-SC3を，未サポートのターゲットシステム
+にポーティングするために必要となるターゲット依存部の実装方法を説明する
+ものである．
+
+----------------------------------------------------------------------
+TOPPERS ATK2
+    Toyohashi Open Platform for Embedded Real-Time Systems
+    Automotive Kernel Version 2
+
+Copyright (C) 2011-2015 by Center for Embedded Computing Systems
+            Graduate School of Information Science, Nagoya Univ., JAPAN
+Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+Copyright (C) 2011-2013 by Spansion LLC, USA
+Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+Copyright (C) 2011-2015 by Witz Corporation
+Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+
+上記著作権者は，以下の (1)〜(3)の条件を満たす場合に限り，本ドキュメ
+ント（本ドキュメントを改変したものを含む．以下同じ）を使用・複製・改
+変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+(1) 本ドキュメントを利用する場合には，上記の著作権表示，この利用条件
+    および下記の無保証規定が，そのままの形でドキュメント中に含まれて
+    いること．
+(2) 本ドキュメントを改変する場合には，ドキュメントを改変した旨の記述
+    を，改変後のドキュメント中に含めること．ただし，改変後のドキュメ
+    ントが，TOPPERSプロジェクト指定の開発成果物である場合には，この限
+    りではない．
+(3) 本ドキュメントの利用により直接的または間接的に生じるいかなる損害
+    からも，上記著作権者およびTOPPERSプロジェクトを免責すること．また，
+    本ドキュメントのユーザまたはエンドユーザからのいかなる理由に基づ
+    く請求からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+
+本ドキュメントは，AUTOSAR（AUTomotive Open System ARchitecture）仕様
+に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するものではな
+い．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利用する
+者に対して，AUTOSARパートナーになることを求めている．
+
+本ドキュメントは，無保証で提供されているものである．上記著作権者およ
+びTOPPERSプロジェクトは，本ドキュメントに関して，特定の使用目的に対す
+る適合性も含めて，いかなる保証も行わない．また，本ドキュメントの利用
+により直接的または間接的に生じたいかなる損害に関しても，その責任を負
+わない．
+
+$Id: porting.txt 187 2015-06-25 03:39:04Z t_ishikawa $
+----------------------------------------------------------------------
+
+○目次
+
+◎０．本マニュアルの位置づけ
+１．共通事項
+	1.1 ターゲット依存部の構成
+	1.2 多重インクルードの防止
+	1.3 アセンブリ言語とのヘッダファイルの共用 
+	1.4 インクルード記述の方法
+	1.5 クリティカルセクションの出入処理の実現に関する制約
+２．システム構築環境のターゲット依存部
+	2.1 ターゲット略称とターゲット依存部のディレクトリ
+	2.2 Makefileのターゲット依存部
+	2.3 開発環境名とコマンド名の設定
+	2.4 コンパイルオプションとオブジェクトファイルの設定
+	2.5 オフセットファイルの生成方法
+		2.5.1 ジェネレータを用いる方法
+	○2.6 リンク方法の設定
+	○2.7 依存関係の定義
+	2.8 その他の設定
+３．AUTOSAR共通定義のターゲット依存部
+	3.1 整数型の最大値・最小値・ビット数
+	3.2 整数型
+	3.3 論理型，論理型の値
+	3.4 その他の型
+	3.5 コンパイラの拡張機能のためのマクロ定義
+	3.6 標準的な定義の上書き
+４．システムインタフェースレイヤ（SIL）のターゲット依存部
+	4.1 全割込み禁止状態の管理
+	4.2 プロセッサのエンディアン
+	4.3 I/O空間アクセス関数
+５．カーネルAPIのターゲット依存部
+	5.1 メモリ領域確保のための型定義
+	5.2 メモリ領域確保のためのマクロ
+	○5.3 オブジェクト型の上書き
+６．カーネル実装のターゲット依存部
+	6.1 カーネル実装のターゲット依存部の共通事項
+		○6.1.1 カーネル実装のターゲット依存部の構成要素
+		6.1.2 ターゲット依存部の関数の命名規則
+	6.2 トレースログ機能への対応
+	6.3 システム状態の管理
+		6.3.1 全割込み禁止状態の管理
+		6.3.2 コンテキストの管理
+		6.3.3 OS割込み禁止状態の管理
+	6.4 割込みに関連するシステム状態の管理
+		6.4.1 割込み優先度マスクの管理
+		6.4.2 割込みハンドラの先頭処理と末尾処理
+		◎6.4.3 個別割込み禁止状態の管理
+	6.5 タスクディスパッチャ
+		○6.5.1 タスクコンテキストブロックとタスク初期化コンテキストブロック
+		6.5.2 ディスパッチャ本体
+		6.5.3 タスクコンテキストからのディスパッチ
+		6.5.4 ディスパッチャの動作開始
+		○6.5.5 現在のコンテキストを捨ててディスパッチ
+		○6.5.6 タスクの起動処理
+	6.6 割込みハンドラ
+		○6.6.1 割込みハンドラの出入口処理
+		○6.6.2 割込み要求ラインの属性の設定
+		○6.6.3 割込み管理機能の初期化処理の変更
+		6.6.4 デフォルトのC2ISR
+		6.6.5 カーネル管理外の割込み
+		6.6.6 DisableAllInterrupts/EnableAllInterruptsの処理内容の変更
+		◎6.6.7 割込み禁止解除
+	6.7 スタックモニタリング
+		◎6.7.1 ディスパッチャとC2ISRの出入口処理でのスタックモニタリング
+		◎6.7.2 信頼関数実行の出口処理でのスタックモニタリング
+	○6.8 CPU例外ハンドラ
+	◎6.9 ソフトウェア割込みハンドラ
+	◎6.10 信頼OSAPと非信頼OSAPからのシステムサービス呼出し
+		◎6.10.1 システムサービス呼出しの定義
+		◎6.10.2 信頼OSAPからのシステムサービス呼出し
+		◎6.10.3 非信頼OSAPからのシステムサービス呼出し
+		◎6.10.4 ターゲット依存システムサービスの追加
+	◎6.11 メモリ保護機構（MPU）制御
+		◎6.11.1 スタックのMPU設定情報ブロック（STKMPUINFOB）
+		◎6.11.2 OSAP固有MPU設定情報ブロック（OSAPMPUINFOB）
+		◎6.11.3 MPU初期化処理
+		◎6.11.4 OSAP固有MPU情報設定処理
+		◎6.11.5 MPU依存のバックグラウンド領域チェック
+	◎6.12 メモリ管理のチューニング
+		◎6.12.1 メモリオブジェクトの管理
+		◎6.12.2 メモリアクセス権チェックのためのマクロ
+	6.13 エラーフック，シャットダウンフック呼び出し
+	○6.14 カーネルの起動・終了とスタック領域など
+	6.15 カーネル内部のチューニング
+		6.15.1 ビットマップサーチ
+	6.16 カーネル実装に関するその他の定義
+		6.16.1 エラーチェック方法の指定
+		6.16.2 非タスクコンテキスト用のスタック領域
+		6.16.3 空ラベルの定義
+		○6.16.4 各スタックのデフォルト値
+		○6.16.5 スタックマジックナンバー領域操作マクロの定義
+		◎6.16.6 標準以外メモリリージョン属性の定義
+	6.17 トレースログ機能に関する設定
+		6.17.1 取得できるトレースログの種類とマクロ
+		6.17.2 トレースログ記録のサンプルコード
+	◎6.18 信頼フック，シャットダウンフックの強制終了
+	◎6.19 コア起動
+	◎6.20 フックの確認
+	◎6.21 スタック切り替え
+	◎6.22 非信頼フックルーチンスタック領域
+	6.14 ハードウェアカウンタ
+		6.14.1 ハードウェアカウンタのファイル構成
+		6.14.2 ハードウェアカウンタの情報提供
+７．ジェネレータ設定ファイルのターゲット依存部
+	7.1 設定ファイルとターゲット依存部の位置付け
+	7.2 パス2のテンプレートファイルのターゲット依存部
+		○7.2.1 ターゲット非依存部をインクルードする前に定義すべき変数
+		○7.2.2 ターゲット非依存部で定義される変数
+	7.3 パス3のテンプレートファイルのターゲット依存部
+		○7.3.1 ターゲット非依存部をインクルードする前に定義すべき変数
+	◎7.4 パス4のテンプレートファイルのターゲット依存部
+		◎7.4.1 ターゲット非依存部をインクルードする前に定義すべき変数
+	○7.5 cfg1_out.cのリンクに必要なスタブの定義ファイル
+	◎7.6 data/bssセクション初期化ブロックの生成
+８．システムモジュール等のターゲット依存部
+	8.1 システムモジュールのターゲット依存部
+	○8.2 システムログ機能のターゲット依存定義
+	8.3 シリアルインタフェースドライバのターゲット依存部
+		8.3.1 変数，データ型，管理関数
+		8.3.2 デバイスサービスルーチン
+		8.3.3 コールバックルーチン
+	8.4 カーネル起動メッセージの出力のターゲット依存定義
+	8.5 サンプルプログラムとテストプログラムのターゲット依存定義
+	8.6 実行時間分布集計モジュールのターゲット依存定義
+	8.7 タイマドライバ
+		8.7.1 タイマドライバのファイル構成
+		8.7.2 ソフトウェアカウンタの定義
+		8.7.3 時間型の定義
+		8.7.4 タイマの初期化・終了処理・割込み処理
+		8.7.5 現在の時刻の取得
+９．その他
+	9.1 ドキュメント
+１０．リファレンス
+	○10.1 ターゲット依存部のファイル一覧
+
+○がついている項目はATK2-SC1から変更があった箇所を，◎はATK2-SC3で
+新規に追加された箇所を示し，それぞれ差分のみを記述している．
+
+
+０．本マニュアルの位置づけ
+TOPPERS/ATK2-SC3は，TOPPERS/ATK2-SC1をベースとしているため，多くのポー
+ティング項目はTOPPERS/ATK2-SC1と同一である．本ドキュメントでは，TOPPER
+S/ATK2-SC1と異なる点について説明する．そのため，まずTOPPERS/ATK2-SC1の
+ポーティングガイドを参照の後，本ドキュメントを参照すること．
+
+
+１．共通事項
+
+1.1 ターゲット依存部の構成
+
+ATK2-SC1から変更なし．
+
+1.2 多重インクルードの防止
+
+ATK2-SC1から変更なし．
+
+1.3 アセンブリ言語とのヘッダファイルの共用 
+
+ATK2-SC1から変更なし．
+
+1.4 インクルード記述の方法
+
+ATK2-SC1から変更なし．
+
+1.5 クリティカルセクションの出入処理の実現に関する制約
+
+ATK2-SC1から変更なし．
+
+２．システム構築環境のターゲット依存部
+
+2.1 ターゲット略称とターゲット依存部のディレクトリ
+
+ATK2-SC1から変更なし．
+
+2.2 Makefileのターゲット依存部
+
+ATK2-SC1から変更なし．
+
+2.3 開発環境名とコマンド名の設定
+
+ATK2-SC1から変更なし．
+
+2.4 コンパイルオプションとオブジェクトファイルの設定
+
+ATK2-SC1から変更なし．
+
+2.5 オフセットファイルの生成方法
+
+ATK2-SC1から変更なし．
+
+2.6 リンク方法の設定
+
+ATK2-SC3カーネルは，メモリの最適化を行うため，以下のマクロは，使用でき
+ない．
+
+(2-6-2) TEXT_START_ADDRESS		テキストセクションの先頭番地
+(2-6-3) DATA_START_ADDRESS		データセクションの先頭番地
+
+2.7 依存関係の定義
+
+ジェネレータの各パスに対して，ターゲット依存のファイルへの依存関係を定
+義する．具体的には，パス1，パス2，パス3，パス4が依存するファイルを，そ
+れぞれcfg1_out.c，Os_Lcfg.timestamp，kernel_mem3.c，kernel_mem.c，
+$(OBJFILE)に対する依存関係の形で記述する．
+
+ほとんどの場合に，ターゲット依存部ディレクトリのMakefile.targetには，
+以下の記述を含める必要がある．
+
+----------------------------------------
+kernel_mem3.c: $(TARGETDIR)/target_mem.tf
+kernel_mem.c: $(TARGETDIR)/target_mem2.tf $(TARGETDIR)/target_check.tf
+----------------------------------------
+
+2.8 その他の設定
+
+ATK2-SC1から変更なし．
+
+３．AUTOSAR共通定義のターゲット依存部
+
+3.1 整数型の最大値・最小値・ビット数
+
+ATK2-SC1から変更なし．
+
+3.2 整数型
+
+ATK2-SC1から変更なし．
+
+3.3 論理型，論理型の値
+
+ATK2-SC1から変更なし．
+
+3.4 その他の型
+
+ATK2-SC1から変更なし．
+
+3.5 コンパイラの拡張機能のためのマクロ定義
+
+ATK2-SC1から変更なし．
+
+3.6 標準的な定義の上書き
+
+ATK2-SC1から変更なし．
+
+４．システムインタフェースレイヤ（SIL）のターゲット依存部
+
+4.1 全割込み禁止状態の管理
+
+ATK2-SC1から変更なし．
+
+4.2 プロセッサのエンディアン
+
+ATK2-SC1から変更なし．
+
+５．カーネルAPIのターゲット依存部
+
+5.1 メモリ領域確保のための型定義
+
+ATK2-SC1から変更なし．
+
+5.2 メモリ領域確保のためのマクロ
+
+ATK2-SC1から変更なし．
+
+5.3 オブジェクト型の上書き
+
+(5-3-1) OMIT_DATA_TYPE (オプション)
+
+OMIT_DATA_TYPEマクロをターゲット依存部で定義した場合は，一部のオブジェ
+クトの型をターゲット依存部で定義することができる．
+
+(5-3-15) TrustedFunctionIndexType (オプション，デフォルトはuint32)
+(5-3-16) IocType              (オプション，デフォルトはuint32)
+(5-3-17) SenderIdType         (オプション，デフォルトはuint8)
+
+
+６．カーネル実装のターゲット依存部
+
+6.1 カーネル実装のターゲット依存部の共通事項
+
+6.1.1 カーネル実装のターゲット依存部の構成要素
+
+(c) ジェネレータ設定ファイル
+
+ジェネレータの設定ファイルのターゲット依存部を，target_def.csv，
+target.tf，target_mem.tf，target_mem2.tf，target_check.tfに用意する．
+ジェネレータ設定ファイルの記述方法については，７章で説明する．
+
+6.1.2 ターゲット依存部の関数の命名規則
+
+ATK2-SC1から変更なし．
+
+6.2 トレースログ機能への対応
+
+ATK2-SC1から変更なし．
+
+6.3 システム状態の管理
+
+6.3.1 全割込み禁止状態の管理
+
+ATK2-SC1から変更なし．
+
+6.3.2 コンテキストの管理
+
+ATK2-SC1から変更なし．
+
+6.3.3 OS割込み禁止状態の管理
+
+ATK2-SC1から変更なし．
+
+6.4 割込みに関連するシステム状態の管理
+
+6.4.1 割込み優先度マスクの管理
+
+ATK2-SC1から変更なし．
+
+6.4.2 割込みハンドラの先頭処理と末尾処理
+
+ATK2-SC1から変更なし．
+
+6.4.3 個別割込み禁止状態の管理
+
+(6-4-3-1) void x_disable_int(InterruptNumberType intno)
+
+intnoで指定された割込み番号の割込みを禁止する．
+
+(6-4-3-2) void x_enable_int(InterruptNumberType intno)
+
+intnoで指定された割込み番号の割込みを許可する．
+
+6.5 タスクディスパッチャ
+
+6.5.1 タスクコンテキストブロックとタスク初期化コンテキストブロック
+
+(6-5-1-4) OMIT_STKMPUINFOB（オプション）
+(6-5-1-5) STKMPUINFOB（オプション）
+
+MPU情報はターゲット依存なので，タスク初期化ブロック（TINIB）に入れたく
+ない場合は，OMIT_STKMPUINFOBをマクロ定義し，TINIB中からSTKMPUINFOBを外
+すことができる．
+
+OMIT_STKMPUINFOBをマクロ定義すると，TINIB中にMPU設定情報が含まれなくな
+るため，それに代わる情報は，ターゲット依存部で管理する必要がある．
+
+また，OMIT_STKMPUINFOBを定義した場合，ジェネレータテンプレートファイル
+から参照するtarget_def.csv（または，同等の役割を持つファイル）からTINIB
+関連のSTKMPUINFOB生成情報を削除することをお勧め．削除しない場合は，
+TINIB関連のSTKMPUINFOB情報定義は，無意味値となるため，使用してはいけな
+い．
+
+STKMPUINFOB管理する情報に関しては，「6.11.1 スタックのMPU設定情報ブロ
+ック（STKMPUINFOB）」を参照．
+
+(6-5-1-6) OMIT_OSAPMPUINFOB（オプション）
+(6-5-1-7) OSAPMPUINFOB（オプション）
+
+MPU情報はターゲット依存なので，OSアプリケーション初期化ブロック（OSAPINIB）
+に入れたくない場合は，OMIT_OSAPMPUINFOBをマクロ定義し，OSAPINIB中から
+OSAPMPUINFOBを外すことができる．
+
+OMIT_OSAPMPUINFOBをマクロ定義すると，OSAPINIB中にMPU設定情報が含まれな
+くなるため，それに代わる情報は，ターゲット依存部で管理する必要がある．
+
+また，OMIT_OSAPMPUINFOBを定義した場合，ジェネレータテンプレートファイル
+から参照するtarget_def.csv（または，同等の役割を持つファイル）から
+OSAPINIB関連のOSAPMPUINFOB生成情報を削除する必要がある．
+
+OSAPMPUINFOB管理する情報に関しては，「6.11.2 OSAP固有MPU設定情報ブロック
+（OSAPMPUINFOB）」を参照．
+
+6.5.2 ディスパッチャ本体
+
+ディスパッチャ本体（dispatcher）は，ターゲット非依存部から直接呼び出さ
+れることはなく，カーネルのターゲット依存部の内部からのみ呼び出される．
+dispatcherは，タスクコンテキスト・OS割込み禁止状態・割込み優先度マスク
+全解除状態から呼び出される．
+
+dispatcherの処理内容は次の通り．
+
+----------------------------------------
+void
+dispatcher(void)
+{
+#ifdef CFG_USE_STACKMONITORING
+	スタックポインタ方式によるスタックモニタリング
+	マジックナンバー方式によるスタックモニタリング
+#endif /* CFG_USE_STACKMONITORING */
+
+#ifdef CFG_USE_POSTTASKHOOK
+	if (PostTaskHook != 0) {
+		非タスクコンテキストに切り替える
+		call_posttaskhook();
+		コンテキストを戻す
+	}
+#endif /* CFG_USE_POSTTASKHOOK */
+
+  dispatcher_0:
+#ifdef LOG_DSP_ENTER
+	log_dsp_enter(p_runtsk);
+#endif /* LOG_DSP_ENTER */
+
+	if (callevel_stat & TSYS_DISALLINT) {
+		callevel_stat &= ~TSYS_DISALLINT;
+		全割込み禁止を解除する
+	}
+
+  dispatcher_1:
+	while ((p_runtsk = p_schedtsk) == NULL) {
+		割込みを許可したらOS割込み禁止解除状態になるよう準備する
+		非タスクコンテキストに切り換える
+		OS割込み禁止を解除し，割込み発生を待つ … (*1)
+		OS割込み禁止状態に戻す … (*2)
+		タスクコンテキストに戻す
+	}
+	p_runosap = p_runtsk->p_osapinib … (*3)
+	自タスク（p_runtsk）のTCBからスタックポインタを復帰する
+
+	/* タスクディスパッチ時にMPU情報も切替える */
+	if(タスクディスパッチする && p_runosapは非信頼OSアプリケーション){
+		スタック情報のMPU設定           … (*4)
+		if(p_runosapが切替えた){
+			OSアプリケーション情報のMPU設定 … (*5)
+		}
+	}
+
+#ifdef LOG_DSP_LEAVE
+	log_dsp_leave(p_runtsk);
+#endif /* LOG_DSP_LEAVE */
+
+#ifdef CFG_USE_PRETASKHOOK
+	if (PreTaskHook != 0) {
+		非タスクコンテキストに切り替える
+		call_pretaskhook();
+		タスクコンテキストに戻す
+	}
+#endif /* CFG_USE_PRETASKHOOK */
+
+	自タスクのTCBから実行再開番地を復帰し，そこへ分岐する
+}
+----------------------------------------
+
+割込み発生を待つ間に非タスクコンテキストに切り換えるのは，この間に実行
+される割込みハンドラ内で，タスクディスパッチをしないようにするためであ
+る．この時，割込みハンドラが，非タスクコンテキスト用のスタックを使うよ
+うにしなければならない．通常は，非タスクコンテキストに切り換える際に非
+タスクコンテキスト用のスタックに切り換え，タスクコンテキストに戻す際に
+元のスタックに切り換える．
+
+ターゲットによっては（特に，シミュレーション環境の場合），強制的に非タ
+スクコンテキストに切り換えることが難しい場合がある．その場合には，この
+間に実行される割込みハンドラ内でタスクディスパッチをしないような仕組み
+を実装することで，非タスクコンテキストへの切換えを省略することができる．
+
+(*1)において，割込みを許可する処理と，割込み発生を待つ処理とは，不可分
+に行なう必要がある．これを不可分に行なわない場合，割込みを許可した直後
+に割込みが入り，その中でタスクが実行可能状態になると，実行すべきタスク
+があるにもかかわらずプロセッサが割込み待ちになってしまう．
+
+また，(*1)において，割込み発生を待つ命令が用意されていない場合や，それ
+を発行するのが不都合な場合には，割込みをすべて許可して割込みを受け付け
+られる状態になった後に，割込み発生を待たずに次に進んでもよい．この場合，
+whileループによって，割込み発生を待つことになる．
+
+OS割込み禁止を解除するための情報（例えば，OS割込み禁止前の割込み優先度
+マスク）を変数に保持している場合には，(*2)でOS割込み禁止状態に戻す際に，
+その変数の値も元に戻っている必要がある．特に，その変数が，割込み待ちの
+間に実行した割込みハンドラ内で書き換えられる場合は，元の値に戻すことが
+必要である．
+
+割込み待ちの間は，p_runtskをNULL（＝0）に設定しなければならない（上の
+処理内容をそのまま実装すればこうなる）．このように設定しないと，割込み
+ハンドラからGetTaskIDを呼び出した際の動作が仕様に合致しなくなる．
+
+(*3)のp_runosapは，（p_runtskに相当） 現在 RUNNING のタスクが所属するOS
+アプリケーションを示すグローバル変数である．
+
+メモリ保護機能において，ディスパッチする時に，(*4)(*5)では，MPUに情報を
+設定する．また，(*5)のOSアプリケーション情報のMPU設定において，OSアプリ
+ケーションのプライベート領域は，現在のOSアプリケーションと切替え先のOS
+アプリケーションが同じである場合，情報が同じなので再設定しない．
+
+タスクディスパッチによるタスク切り替え前に，CFG_USE_POSTTASKHOOK定義さ
+れ，ユーザがポストタスクフックを定義した場合（PostTaskHook != NULL），
+ポストタスクフック呼び出しインターフェース（call_posttaskhook）を呼出
+す必要がある．
+その一方，タスクディスパッチによるタスク切り替え後に，
+CFG_USE_PRETASKHOOK定義され，ユーザがプレタスクフックを定義した場合
+（PreTaskHook != NULL），プレタスクフック呼び出しインターフェース
+（call_pretaskhook）を呼出す必要がある．
+そこで，アセンブリ言語で記述されているディスパッチャ処理中にプレ/ポス
+トタスクフックの呼び出しを埋め込む．標準的なプレ/ポストタスクフックが
+C言語で記述されていると想定して，それを呼び出すようにコーディングする．
+
+dispatcherをアセンブリ言語で記述する場合には，トレースログ取得処理は，
+「6.2 トレースログ機能への対応」の節で記述した方法でコーディングするこ
+と．なお，log_dsp_enterは切換え前のタスクのスタックで，log_dsp_leave 
+は切換え後のタスクのスタックで実行する．
+
+6.5.3 タスクコンテキストからのディスパッチ
+
+ATK2-SC1から変更なし．
+
+6.5.4 ディスパッチャの動作開始
+
+ATK2-SC1から変更なし．
+
+6.5.5 現在のコンテキストを捨ててディスパッチ
+
+(6-5-5-2) void exit_and_dispatch_nohook(void)
+
+現在のコンテキストを捨てて，ポストフック呼出さないディスパッチ
+（exit_and_dispatch_nohook）は，自タスクを強制終了させる処理関数から呼
+び出される．exit_and_dispatch_nohookは，リターンすることのない関数であ
+る．
+
+exit_and_dispatch_nohookは，タスクコンテキスト・OS割込み禁止状態・割込
+み優先度マスク全解除状態で呼び出される．
+
+exit_and_dispatch_nohookとexit_and_dispatchは，ポストタスクフック呼ぶ
+かどうか以外，同じである（タスク強制終了なので，p_runtsk=NULLとして実
+行）．
+
+exit_and_dispatch_nohookの処理内容は次の通り．
+
+----------------------------------------
+void
+exit_and_dispatch_nohook(void)
+{
+	dispatcher_0に分岐する
+}
+----------------------------------------
+
+6.5.6 タスクの起動処理
+
+(6-5-6-1) void activate_context(TCB *p_tcb)
+
+タスクの起動処理（activate_context）は，タスクを休止状態から実行できる
+状態にする時に呼ばれ，p_tcbで指定されたタスク（対象タスク）のTCB中のス
+タックポインタをタスクのシステムスタックに初期化する．また，p_tcbが信
+頼OSアプリケーションに所属する場合は，実行再開番地を信頼タスク開始時処
+理（start_stask_r）に設定し，p_tcbが非信頼OSアプリケーションに所属する
+場合は，実行再開番地を非信頼タスク開始時処理（start_utask_r）に設定す
+る．この時点では，後述する理由で，対象タスクのスタック領域を使ってはな
+らない．
+
+対象タスクが最初に実行される時には，対象タスクを自タスクとして，実行再
+開番地として登録したstart_utask_r（信頼タスクの場合はstart_stask_r）に
+分岐してくる．start_utask_r（信頼タスクの場合はstart_stask_r）には，
+dispatcherのみから分岐し，その時の状態は，タスクコンテキスト・OS割込み
+禁止状態・割込み優先度マスク全解除状態である．
+
+start_stask_rは，OS割込み禁止状態を解除した後，タスクの起動番地を呼び
+出す．
+さらに，タスクの起動番地から戻ってきた場合には，exit_taskを呼び出す．
+
+start_utask_rは，OS割込み禁止状態を解除した後，CPUを非特権モードへ設定
+する同時にタスクの起動番地を呼び出す．さらに，タスクの起動番地から戻っ
+てきた場合には，exit_utaskを呼び出す．
+
+activate_contextとstart_rの処理内容は次の通り．
+
+----------------------------------------
+void
+activate_context(TCB *p_tcb)
+{
+	指定されたタスク（p_tcb）のTCB中のスタックポインタを初期化する
+	if (指定されたタスクが非信頼タスク) {
+		start_utask_rを，実行再開番地として自タスクのTCBに保存する … (*a)
+	}
+	else {
+		start_stask_rを，実行再開番地として自タスクのTCBに保存する … (*a)
+	}
+	return;
+
+  start_stask_r:
+	呼出し関数をexit_taskとして設定する  … (*c)
+	特権モードで動作するよう準備
+	start_rに分岐する
+
+  start_utask_r:
+	呼出し関数をexit_utaskとして設定する  … (*c)
+	非特権モードで動作するよう準備
+	スタックをシステムスタックからユーザスタックに切り替える
+	start_rに分岐する
+
+  start_r:
+#ifdef CFG_USE_STACKMONITORING
+	タスク起動毎にタスクのシステムスタックのマジックナンバーを初期化する … (*d)
+#endif /* CFG_USE_STACKMONITORING */
+    p_runtsk->curpri = p_runtsk->p_tinib->exepri;
+	自タスクの起動番地へ分岐するように準備する
+	OS割込み禁止解除状態にする
+	動作モード設定する同時に，
+			自タスク（p_runtsk）の起動番地を呼び出す … (*e)
+}
+----------------------------------------
+
+(*c)で自タスクの起動番地を呼び出す時の返り番地をexit_utask(信頼タスク
+の場合exit_task)の番地としておき，タスクが不正終了した場合，保護処理を
+行う．
+
+ここで，タスクの起動処理において対象タスクのスタック領域を使ってはなら
+ない理由は，次の通り．複数の基本タスクがスタック領域を共有している場合
+に，タスクの起動時点では，そのタスクとスタック領域を共有しているタスク
+が，スタック領域を使用している可能性があるためである．
+
+このポーティングガイドでは，タスクの実行再開番地をTCBに保存している
+(*a)．これをスタックに保存する方法も考えられるが，タスクの起動処理でス
+タック領域が使えないことから，タスクの起動処理だけは例外扱いしなければ
+ならない．例えば，タスクの起動処理においてはTCB中のスタックポインタを
+特殊な値（例えば0）に設定しておき，ディスパッチャ本体でTCB中のスタック
+ポインタがその値の場合にはstart_utask_r（信頼の場合は，start_stask_r）
+に分岐させ，start_utask_r（信頼の場合は，start_stask_r）においてスタッ
+クポインタを初期化する方法が考えられる．
+
+(*d)において，SC3ではタスク強制終了があるので，タスク起動毎にマジック
+ナンバーを初期化する．
+
+(*e)において，CPU動作モードとタスクの呼出しは，同時に行う必要がある．
+start_utask_r（信頼の場合は，start_stask_r）は，特権モードで呼出される
+が，信頼OSアプリケーションに所属するタスクの場合，特権モードで，非信頼
+OSアプリケーションに所属するタスクは，非特権モードで実行する必要がある
+．例外/割込みからのリターン命令を使用するのが1つの方法である．
+
+6.6 割込みハンドラ
+
+6.6.1 割込みハンドラの出入口処理
+
+C2ISRの割込みの出入口処理の方法は，プロセッサによって大きく異なるが，
+ATK2-SC3においては，おおよその処理内容は次の通り．
+
+----------------------------------------
+void
+<割込みの出入口処理>(void)
+{
+	if (非特権モードで割込み発生) {
+		スタックを実行状態のタスクのシステムスタックに切り換える
+	}
+	少なくともOS割込みを禁止した状態にする … (*f)
+	スクラッチレジスタをスタックに保存する
+	if (タスクコンテキストで割込み発生) {
+		スタックを非タスクコンテキスト用のスタックに切り換え，
+								非タスクコンテキストに切り換える
+	}
+	割込み優先度マスクを，受け付けた割込み要求の割込優先度に設定し，
+				OS割込み禁止解除状態にする（受け付けた割込みよりも
+				優先度の高い割込みを受け付けるようにする）… (*i)
+
+#ifdef CFG_USE_STACKMONITORING
+	if (タスクコンテキストで割込み発生) {
+		スタックポインタチェック方式でタスクシステムスタックの
+											スタックモニタリングを行う
+		マジックナンバーチェック方式でタスクシステムスタックの
+											スタックモニタリングを行う
+	}
+	else {
+		スタック残量チェック方式でC2ISR用スタックのスタックモニタ
+		リングを行う
+		マジックナンバーチェック方式でC2ISR用スタックのスタックモニタ
+		リングを行う
+	}
+#endif /* CFG_USE_STACKMONITORING */
+
+	callevel_statを保存
+	callevel_statに割込みビットを立てる
+	run_trustedを保存
+	p_runosapを保存
+	p_runisrを保存
+	p_runisrを実行するC2ISRに対応するisrcb_tableの要素に設定する
+	p_runosapを実行するC2ISRが所属するOSアプリケーションに設定する
+
+	C2ISRを呼び出す
+
+#ifdef CFG_USE_STACKMONITORING
+	マジックナンバーチェック方式でC2ISR用スタックのスタックモニタリン
+	グを行う
+#endif /* CFG_USE_STACKMONITORING */
+
+	exit_isr2();			/* C2ISRの不正終了チェック */
+
+	p_runisrを復帰
+	p_runosapを復帰
+	run_trustedを復帰
+	callevel_statを復帰
+
+  ret_int:
+	if (タスクコンテキストで割込み発生) {
+		（少なくとも）OS割込みを禁止した状態にする
+		スタックをタスク用のスタックに戻し，タスクコンテキストに切り換える
+		スタックポインタを復帰
+		if (p_runtsk == NULL) {
+			OS割込み禁止状態にする … (*e)
+			割込み優先度マスクを，全解除状態（TIPM_ENAALL）に設定する
+								 … (*h)
+			dispatcherに分岐する
+		}
+		else if (p_runtsk != p_schedtsk) {
+			OS割込み禁止状態にする							… (*e)
+			割込み優先度マスクを，全解除状態（TIPM_ENAALL）に設定する
+															… (*h)
+			スクラッチレジスタを除くすべてのレジスタをスタックに保存す
+			る
+			スタックポインタを自タスク（p_runtsk）のTCBに保存する
+			ret_int_rを，実行再開番地として自タスクのTCBに保存する
+
+			dispatcherに分岐する
+
+		  ret_int_r:
+			スクラッチレジスタを除くすべてのレジスタをスタックから復帰
+			する
+		}
+	}
+	割込み処理からのリターン後に，割込み優先度マスクが
+								割込み処理前の値に戻るように準備する
+	割込み処理からのリターン後に，OS割込み禁止解除状態に戻るように準備
+	する
+	スクラッチレジスタをスタックから復帰する
+	割込み処理からのリターン
+}
+----------------------------------------
+
+6.6.2 割込み要求ラインの属性の設定
+
+(6-6-2-1) void x_config_int(InterruptNumber intno,
+							AttributeType intatr,
+							PriorityType intpri)
+
+intatrとして設定できる割込み属性は次の通り．ATK2-SC3の場合は，intatrに
+DISABLE/ENABLEいずれかが含まれ，ENABLEを指定した場合は，OS起動時に割込
+みが許可され，DISABLEを指定した場合は禁止される．
+
+	DISABLE		0x00	割込み要求禁止フラグをセット
+	ENABLE		0x01	割込み要求禁止フラグをクリア
+
+6.6.3 割込み管理機能の初期化処理の変更
+
+(6-6-3-9) intatr：割込み属性
+
+6.6.4 デフォルトのC2ISR
+
+ATK2-SC1から変更なし．
+
+6.6.5 カーネル管理外の割込み
+
+ATK2-SC1から変更なし．
+
+6.6.6 DisableAllInterrupts/EnableAllInterruptsの処理内容の変更
+
+ATK2-SC1から変更なし．
+
+6.6.7 割込み禁止解除
+
+(6-6-7-1) LOCAL_INLINE void x_clear_nested_os_int(void)
+
+6.7 スタックモニタリング
+
+SC3でもスタックモニタリング機能を実装する．非信頼タスクのユーザスタッ
+クスタックは，メモリ保護ユニット（MPU）より保護されるが，以下のスタッ
+クをスタックモニタリング機能で保護する．
+(1)非信頼タスクのシステムスタック
+(2)信頼タスクのシステムスタック
+(3)システムスタック
+(4)信頼関数実行時のスタック
+
+6.7.1 ディスパッチャとC2ISRの出入口処理でのスタックモニタリング
+
+ディスパッチャとC2ISRの出入口処理でのスタックモニタリングでスタックオ
+ーバーフローが検出された場合の処理は以下の通り．ATK2-SC3ではスタックオ
+ーバーフロー検出時のcall_protectionhook_mainからはリターンする可能性が
+ある．
+
+----------------------------------------
+#ifdef CFG_USE_STACKMONITORING
+void
+スタックオーバーフロー検出処理(void)
+{
+	uint32 ret;
+
+	if (C2ISRの出入口処理でのスタックモニタリング) {
+		OS割込み禁止状態にする
+		ret = E_OS_STACKFAULT | PEOB_STACKMONITORING_INTERRUPT;
+	}
+	if (タスクコンテキスト) {
+		非タスクコンテキストに切り替える
+		ret = E_OS_STACKFAULT | PEOB_STACKMONITORING_DISPATCHER;
+	}
+	call_protectionhook_main(ret);
+}
+#endif /* CFG_USE_STACKMONITORING */
+----------------------------------------
+
+現状，上記スタックモニタリングでスタックオーバー検出箇所による後処理
+は，区別していないため，以下のように定義している．スタック発生箇所によ
+る処理が変わる場合，別々で定義することが出来る．
+#define PROTECTION_ERROR_OPTIONAL_BIT   (0x80)
+#define PEOB_STACKMONITORING_INTERRUPT  PROTECTION_ERROR_OPTIONAL_BIT
+#define PEOB_STACKMONITORING_DISPATCHER PROTECTION_ERROR_OPTIONAL_BIT
+
+6.7.2 信頼関数実行の出口処理でのスタックモニタリング
+
+一方，信頼関数実行の出口処理でのスタックモニタリングでスタックオーバー
+フローが検出された場合の処理は以下の通り．ATK2-SC3ではスタックオーバー
+フロー検出時のcall_protectionhook_mainからはリターンしない．
+
+----------------------------------------
+StatusType
+CallTrustedFunction(...)
+{
+	...
+
+	信頼関数実行
+
+#ifdef CFG_USE_STACKMONITORING
+	if (C2ISR処理レベル) {
+		if (システムスタックマジックナンバーチェックNG) {
+			OS割込み禁止状態にする
+			call_protectionhk_main(E_OS_STACKFAULT);
+			/* ここには戻ってこない */
+		}
+	}
+	else {
+		if (実行中タスクシステムスタックマジックナンバーチェックNG) {
+			OS割込み禁止状態にする
+			call_protectionhk_main(E_OS_STACKFAULT);
+			/* ここには戻ってこない */
+		}
+	}
+#endif /* CFG_USE_STACKMONITORING */
+
+	...
+}
+----------------------------------------
+
+信頼関数実行前に，信頼関数使用するスタックの量と，使用するスタックの空
+き量を照合している．
+
+信頼関数実行後使用したスタックに対してマジックナンバー方式のみ，チェッ
+クしている理由は，チェックする時点で，スタックポインタは，信頼関数実行
+する前の状態に戻ったことである．
+
+
+6.8 CPU例外ハンドラ
+
+CPU例外の出入口処理の方法はプロセッサによって大きく異なるが，おおよそ
+の処理内容は次の通り．
+
+----------------------------------------
+void
+<CPU例外の出入口処理>(void)
+{
+	if (非特権モードで発生 && フック処理中で発生) {
+		if (CPU例外発生が未ネスト && C1ISR処理中以外でCPU例外発生) {
+			スタックを非タスクコンテキスト用のスタックに切り換え準備
+		}
+	}
+
+	スクラッチレジスタ及びスタックポインタを非タスクコンテキストスタッ
+	クに保存する
+
+	if (OS割込み禁止状態でない &&
+		C1ISR実行中のCPU例外でない && 全割込み禁止状態でない){
+		OS割込み禁止状態にする
+	}
+
+	ターゲット依存のCPU例外情報を取得する                   … (*h)
+
+	if (全割込み禁止解除状態でCPU例外発生) {
+		全割込み禁止状態を解除する                          … (*i)
+	}
+
+	ターゲット依存のCPU例外情報を退避する                   … (*j)
+	ターゲット依存のCPU例外情報を保存する
+
+	if (例外要因番号 > TNUM_EXCH) {
+		エラーコード = E_OS_PROTECTION_EXCEPTIONとする
+	}
+	else {
+		例外コード変換テーブルからエラーコードを取得する
+	}
+
+	call_protectionhook_main(エラーコード);
+
+	ターゲット依存のCPU例外情報を復帰する
+
+  ret_exc:
+	割込み・例外のネスト回数（except_nest_cnt）をディクリメントする
+
+	CPU例外処理からのリターン後に，CPU例外発生前の割込み禁止状態に戻る
+	ように準備する                                          … (*k)
+
+	CPU例外処理中に変更した全割込み状態をリターン後にも反映
+	するため，準備する                                      … (*l)
+
+	全割込み禁止状態にする
+
+  ret_int_1:
+	スクラッチレジスタをスタックから復帰する
+	退避したスタックポインタを復帰する
+	CPU例外処理からのリターン
+}
+----------------------------------------
+
+全割込み禁止状態でCPU例外が発生した場合は，全割込み禁止状態でプロテク
+ションフックを呼び出す．
+
+割込み応答性向上するには，全割込み禁止している状態の処理をなるべく少な
+くする必要があるので，例外発生要因情報の保存は，(*h)ではなく，(*i)処理
+の後にすべきである．上記の例では，(*j)で保存している．
+
+プロテクションフックを実行する際に経由する部分では，CPU例外が起こる可
+能性を極力減らすとともに，CPU例外を起こす可能性がある場合（例えば，ス
+クラッチレジスタをスタックに保存する時に，バスエラーなどのCPU例外が発
+生する可能性が考えられる）には，その可能性をターゲット依存部のユーザー
+ズマニュアルに記載しなければならない．
+
+ret_exc以降の処理は，割込みの出入口処理のret_int以降の処理とほぼ同じで
+あるため，ターゲットによっては，共通のルーチンを用いることができる可能
+性がある．
+
+CPU例外処理中に，全割込み禁止した場合，CPU例外戻った側に反映しなければ
+ならないので，(*l)で変更した全割込み状態をリターン後にも反映するため，
+工夫する．
+
+6.9 ソフトウェア割込みハンドラ
+
+ソフトウェア割込みハンドラは，SC3よりシステムサービスのエントリルーチ
+ンとして機能する．
+ソフトウェア割込みハンドラには，システムサービスの機能コード，システム
+サービスのパラメータを入力値として，渡す．システムサービス実行の戻り値
+を呼出し側に返す．
+
+ソフトウェア割込み本体は，以下の処理を行う．
+(a) 呼出し元のコンテキストの保存（リターン時の復帰に使用）
+
+(b) スタックの切替え（ユーザスタックからシステムスタックへ切替え）
+呼出元が特権モードの場合は切替えない（すでにシステムスタックか割込みス
+タックを使用しているため切替え不要）．
+
+(c) カーネルサービスの特定
+呼出し元から渡されたシステムサービスの機能コードを利用して，システムサ
+ービスの先頭アドレスを特定する．
+
+(d)システムサービス本体の呼出し
+上記(c)より取得したシステムサービスを呼出し， システムサービスの戻り値
+を呼出し元に返す準備を行う．
+
+(e) ソフトウェア割込みルーチンの終了処理
+上記(a)で保存した呼出し元のコンテキストを復帰し，呼出し元へリターンす
+る．
+
+ソフトウェア割込みによるシステムサービス呼出しのおおよその処理内容は次
+の通り．
+
+----------------------------------------
+uint32
+trap_handler(FunctionCodeType fncd, システムサービスパラメータリスト)
+{
+	uint32		retval;
+
+	if (非特権モードからの呼び出し) {
+		if (非信頼フック実行中からの呼び出し) {
+			スタックを非信頼フック実行前のスタックに切換える  … (*a)
+		}
+		else {
+			スタックを実行状態のタスクのシステムスタックに切換える
+		}
+	}
+	呼出し元コンテキストの保存
+
+	if (fncd > TMAX_SVCID) {
+		/*
+		 *  システムサービス不正呼出しの場合
+		 */
+		no_support_service();
+	}
+	else {
+		カーネルサービスの先頭アドレスの特定（svc_table[fncd]）
+		ソフトウェア割込みによりシステム状態が変化する場合には，
+					ソフトウェア割込み前のシステム状態に戻す … (*b)
+		システムサービス実行後の戻り番地（trp_SVC_ret）指定
+		システムサービスの実行：
+		retval = (*(svc_table[fncd]))(システムサービスパラメータリスト);
+	}
+
+
+  trp_SVC_ret:
+	ソフトウェア割込みからリターン後のシステム状態が，
+					この時点でのシステム状態になるよう準備する … (*c)
+	全割込み禁止状態にする
+
+	/* 性能測定用 キャッシュパージ処理 */
+#ifdef PERF_TEST
+	if (キャッシュパージフラグ != 0) {
+		命令キャッシュ領域クリア
+	}
+#endif /* PERF_TEST */
+
+	呼出し元コンテキストの復帰
+	return(retval);
+}
+----------------------------------------
+
+(*a)において，非信頼のフックルーチン実行中は，スタックポインタ保持変数
+（hook_savedsp）が非信頼のフックルーチンを実行前のスタックになっている
+ので，その続きからスタックを使う．
+
+(*b)において，ソフトウェア割込みより，システム状態が変化した場合，ソフ
+トウェア発生前の状態に戻して，システムサービスを呼出す．要は，システム
+サービスは，ソフトウェア割込み使用かどうかに関わらずシステム呼出し時点
+の状態で実行する．
+
+(*c)において，システムサービス処理中に，変更したシステム状態(例えば，
+全割込み禁止など）は，ソフトウェア割込みリターン後にも反映する．
+
+svc_tableは，システムサービステーブルと呼び，ソフトウェア割込みによる
+実行したいシステムサービスの先頭アドレスが登録される．ソフトウェア割込
+みによるシステムサービス指定する場合は，システムサービスコードを用い
+る．
+
+no_support_service()関数は，不正な機能コードを指定して，システムサービ
+ス発行時の処理であり，エラーコードにE_OS_SERVICEIDを設定し，サービスID
+にOSServiceId_INVALIDを設定して，エラーフックを呼出す．
+
+6.10 信頼OSAPと非信頼OSAPからのシステムサービス呼出し
+
+SC3のメモリ保護機能を実現するため，プロセッサは少なくとも特権モードと
+非特権モードをサポートする必要がある．カーネル及び信頼OSアプリケーショ
+ンに所属する処理単位は特権モードで実行し，メモリ保護機構（MPU）が働か
+ない（※1）．非信頼OSアプリケーションに所属する処理単位は非特権モード
+で実行し，メモリ保護機構（MPU）が働く．また，プロセッサは，ソフトウェ
+ア割込みなど非特権モードから特権モードへ遷移できる機能（命令）を有する．
+
+信頼OSアプリケーションは，システムサービスを直接関数呼び出しできるが，
+非信頼OSアプリケーションから，システムサービスを呼出すため，ソフトウェ
+ア割込みによる呼出し機能をターゲット依存部でカーネルのサービスコールの
+インタフェースを実装する．
+
+6.10.1 システムサービス呼出しの定義
+
+(1) システムサービスの関数呼出しの定義(svc_funcall.h)：
+
+----------------------------------------
+#define SVC_CALL(system_service) _kernel_ ## system_service
+
+#ifdef TOPPERS_SVC_FUNCCALL
+#define StartOS _kernel_StartOS
+#define ActivateTask _kernel_ActivateTask
+...
+#endif
+----------------------------------------
+
+(2) システムサービスのソフトウェア割込み呼出しの定義(tool_svc.h)：
+
+----------------------------------------
+#define SVC_TRAP(system_service) _trap_ ## system_service
+
+#ifndef TOPPERS_SVC_FUNCCALL
+#define StartOS _trap_StartOS
+#define ActivateTask _trap_ActivateTask
+...
+#endif
+
+void
+_trap_StartOS(AppModeType Mode)
+{
+	CAL_SVC_1N(void, TFN_STARTOS, AppModeType, Mode);
+}
+
+StatusType
+_trap_ActivateTask(TaskType TaskID)
+{
+	CAL_SVC_1M(StatusType, TFN_ACTIVATETASK, TaskType, TaskID);
+}
+----------------------------------------
+
+TFN_STARTOSなどは，呼び出したいシステムサービスコードであり，システム
+サービステーブル(svc_table)に登録したシステムサービスの添字である．
+
+(3) ソフトウェア割込み(例：trap)によるシステムサービス呼出し定義
+    (prc_svc.h)：
+
+----------------------------------------
+#define CAL_SVC_1N(TYPE, FNCD, TYPE1, PAR1)						\
+	register FunctionCodeType input_fncd_r	= (FNCD);			\
+	register TYPE1 input_param_r			= (TYPE1) (PAR1);	\
+	register FunctionCodeType output_r;							\
+	Asm (														\
+		"trap \n\t"												\
+		: input_fncd_r, input_param_r							\
+		: output_r												\
+		:  "...", "memory"										\
+		);														\
+----------------------------------------
+
+----------------------------------------
+#define CAL_SVC_1M(TYPE, FNCD, TYPE1, PAR1)						\
+	register FunctionCodeType input_fncd_r	= (FNCD);			\
+	register TYPE1 input_param_r			= (TYPE1) (PAR1);	\
+	register FunctionCodeType ret_r;							\
+	register FunctionCodeType output_r;							\
+	Asm (														\
+		"trap \n\t"												\
+		: input_fncd_r, input_param_r							\
+		: ret_r, output_r										\
+		:  "...","memory"										\
+		);														\
+	return ((TYPE) output_r);
+----------------------------------------
+
+※GCCの拡張アセンブリ構文：
+ asm(アセンブリテンプレート
+     : 出力オペランド
+     : 入力オペランド
+     : 破壊されるレジスタのリスト
+    )
+
+上記マクロ関数定義時，以下のルールを従う．
+マクロ名は，CAL_SVC_nxとし，nxは，意味を持つ．
+n：パラメータ数
+	範囲：0〜3（システムサービスのパラメータ数）
+	※ターゲット定義のシステムサービス追加した場合，その最大数に合わせ
+	る
+x：戻り値
+	範囲：N（戻り値なし），M（戻り値あり）
+
+6.10.2 信頼OSAPからのシステムサービス呼出し
+
+基本的にシステムサービスの呼出しは，ソフトウェア割込み経由で呼出しが基
+本であるが，システムサービス呼出しのオーバヘッドを削減するため，信頼OS
+アプリケーションに所属する処理単位からシステムサービスを呼出す場合，シ
+ステムサービスの呼出しは，(直接)関数呼出しも出来る．
+
+関数呼出しを指定するため，関数呼出しをしたいソースの先頭に，以下のマク
+ロを定義するか，SVC_CALL(system_service)より明示的に関数呼び出しのシス
+テムサービス実行をするかが出来る．
+
+(6.10.2.1) TOPPERS_SVC_FUNCCALL
+
+このマクロをソース先頭定義することで，ソースファイル内のシステムサービ
+スの呼出しは，_kernel_<system_service>に置換われ，関数呼出しとなる．
+
+6.10.3 非信頼OSAPからのシステムサービス呼出し
+
+ソースの先頭に，TOPPERS_SVC_FUNCCALLマクロを定義していない場合，システ
+ムサービスの実行は，ソフトウェア割込みよるシステムサービス実行となる．
+また，SVC_TRAP(system_service)より明示的にソフトウェア割込みによるシス
+テムサービス実行も出来る．
+
+6.10.4 ターゲット依存システムサービスの追加
+
+ターゲット依存のシステムサービスを追加したい場合，ターゲット依存システ
+ムサービステーブルテーブルは，以下のマクロを用いて定義する．
+
+(6.10.4.1) PRC_SVC_TABLE
+(6.10.4.2) PRC_SVC_NUM
+
+ターゲット依存で，追加したいシステムサービスの先頭アドレスを
+PRC_SVC_TABLEマクロの定義に追加し，システムサービス定義の数を
+PRC_SVC_NUMマクロに定義することで，システムサービステーブル(svc_table)
+に反映される．
+
+(6.10.4.3) OTHER_PRC_SVC_TABLE
+
+ターゲット依存で，追加したいシステムサービス関連マクロ（PRC_SVC_TABLE
+とPRC_SVC_NUM）は，別のヘッダファイル(*.h)に定義されている場合，上記マ
+クロOTHER_PRC_SVC_TABLEをインクルードファイル名に定義することが出来る．
+
+例：#define OTHER_PRC_SVC_TABLE target_svc_table_test.hを定義すること
+で，prc_config.hに#include "target_svc_table_test.h"として展開され，
+target_svc_table_test.hファイル定義しているPRC_SVC_TABLEとPRC_SVC_NUM
+が有効となる．
+
+上記ソフトウェア割込みによるシステムサービス呼び出し関係のファイルの生
+成は，utils/gensvc_atk（サービスコールインタフェース生成プログラム）に
+よる自動生成が出来る．
+
+6.11 メモリ保護機構（MPU）制御
+
+6.11.1 スタックのMPU設定情報ブロック（STKMPUINFOB）
+
+MPUによるスタック領域保護するため，MPUに設定する情報を保持するブロック
+をターゲット依存部に定義する．MPU設定情報は，ターゲット依存であるが，
+保持する情報は，以下である．
+
+(6.11.1.1) 領域の先頭番地
+(6.11.1.2) 領域の終端番地(若しくは領域のサイズ)
+
+6.11.2 OSAP固有MPU設定情報ブロック（OSAPMPUINFOB）
+
+MPUによるOSAP固有領域保護するため，MPUに設定する情報を保持するブロック
+をターゲット依存部に定義する．MPU設定情報は，ターゲット依存であるが，
+保持する情報は，以下である．
+
+(6.11.2.1) 領域の先頭番地（複数の命令領域・データ領域）
+(6.11.2.2) 領域の終端番地（複数の命令領域・データ領域）
+(6.11.2.3) アクセスパターン（読み・書き・実行）（複数の命令領域・デー
+           タ領域）
+(6.11.2.4) 命令領域数
+(6.11.2.5) データ領域数
+
+6.11.3 MPU初期化処理
+
+MPU機能を有効するため，MPUの初期化を行う処理は，以下の通りである．
+
+----------------------------------------
+void
+prc_init_mpu(void)
+{
+	
+	現在MPUに設定している情報の管理変数の初期化
+
+	/* MPU初期情報を設定するため */
+	MPU機能を無効にする
+	
+	/*  全命令・データMPUの0サイズ領域全アクセス権なしで初期化
+	 *  必要の場合，バックグラウンド領域MPU設定
+	 *  共有領域のMPU設定
+	 */
+	MPU初期情報を設定する
+
+	MPU機能を有効にする
+}
+----------------------------------------
+
+
+6.11.4 OSAP固有MPU情報設定処理
+
+各OSAP固有MPU情報をMPUに設定する機能は，以下の通りである．
+
+----------------------------------------
+void
+prc_set_osap_mpu(const OSAPINIB *p_osapinib)
+{
+	
+	if (既に設定中のOSAP != 設定するOSAP) {
+		既に設定中のOSAP = 設定するOSAP;
+
+		設定するOSAPのMPU情報を取得して，MPUに設定する … (*a)
+	}
+}
+----------------------------------------
+
+(*a)では，OSAP固有に命令領域とデータ領域は，複数存在する場合，全ての命
+令領域・データ領域に対して，アクセス権限を設定する．
+
+6.11.5 MPU依存のバックグラウンド領域チェック
+
+先頭番地及び終端番地により，引数で指定される領域は，命令バックグラウン
+ド領域に入っている場合，AP_Executable権あり，データバックグラウンド領
+域に入っている場合，AP_Writable | AP_Readable権あり，それ以外の場合，
+NO_ACCESS権を返す．
+
+----------------------------------------
+AccessType
+probe_trusted_osap_mem(const MemoryStartAddressType sadr, 
+		   const MemoryStartAddressType eadr)
+{
+	AccessType ret;
+
+	ret |= (領域[sadr1,eadr1] ⊆ 命令バックグラウンド領域)? 
+			AP_Executable : NO_ACCESS;                     … (*a)
+	ret |= (領域[sadr1,eadr1] ⊆ データバックグラウンド領域) ? 
+			(AP_Writable | AP_Readable) : NO_ACCESS;       … (*b)
+
+	return(ret);
+}
+----------------------------------------
+
+(*a)(*b)また，特権モード実行時，MPUの機能停止する設計において，バック
+グラウンド領域持たないため，AP_Executable | AP_Writable | AP_Readable
+のように全てのアクセス権ありで返しても良い．
+
+6.12 メモリ管理のチューニング
+
+6.12.1 メモリオブジェクトの管理
+
+(6.12.1.1） OMIT_STANDARD_MEMINIB（オプション）
+
+ターゲット非依存部に含まれる標準のメモリオブジェクト管理機能を用いない
+場合や，メモリオブジェクト管理機能の構造体，変数，関数をターゲット依存
+部で用意し，標準のメモリオブジェクト管理と同等の情報をターゲット依存の
+データ構造で管理する場合には，このシンボルをマクロ定義する．
+
+このシンボルをマクロ定義する場合，ターゲット依存部にメモリアクセスチェ
+ック用関数（check_osap_memory），C2ISRメモリアクセスチェック関数
+（check_isr_memory），タスクメモリアクセスチェック（check_task_memory）
+を用意する必要がある．
+
+check_osap_memory関数は，引数で指定したOSアプリケーションに対して，引
+数で指定するメモリ領域のアクセス権のチェックを行う．信頼OSアプリケーシ
+ョンの場合は，バックグラウンドをチェックする（現実装では全領域アクセス
+可能）．非信頼OSアプリケーションの場合は，メモリオブジェクトのアクセス
+属性（リード，ライト，実行）を返却する．
+
+check_isr_memory関数は，引数で指定した割込みにおいて，引数で指定したメ
+モリ開始アドレスとサイズのメモリ領域に対して，アクセス属性（リード，ラ
+イト，実行，スタック）を返す．また，引数で指定したメモリ領域は，メモリ
+オブジェクトを跨いだ場合，その情報を引数より返す必要がある．
+
+check_task_memory関数は，引数で指定したタスクにおいて，引数で指定したメ
+モリ開始アドレスとサイズのメモリ領域に対して，アクセス属性（リード，ラ
+イト，実行，スタック）を返す．また，引数で指定したメモリ領域は，メモリ
+オブジェクトを跨いだ場合，その情報を引数より返す必要がある．
+
+----------------------------------------
+
+AccessType
+check_osap_memory(const OSAPINIB *p_osapinib, 
+                  const MemoryStartAddressType adr,
+                  MemorySizeType size)
+{
+	AccessType ret;
+	
+	if (p_osapinib == 信頼OSアプリケーション) {
+		ret |= (領域[adr,adr + size] ⊆ バックグラウンド領域)? 
+				(AP_Executable | AP_Writable | AP_Readable) :
+				 NO_ACCESS;
+	}
+	else {
+		ret |= (領域[adr,adr + size] メモリオブジェクト跨ぐ)? 
+				(NO_ACCESS, *over_region = true)：
+				(領域[adr,adr + size]のアクセス権) ;
+	}
+	return (ret);
+}
+
+AccessType
+check_isr_memory(ISRCB *p_isrcb, const MemoryStartAddressType adr,
+				 MemorySizeType size, boolean *over_region)
+{
+	AccessType ret;
+
+	*over_region = false;
+	if (領域[adr,adr + size] メモリオブジェクト跨ぐ) {
+		*over_region = true;
+	}
+	else {
+		ret = (領域[adr,adr + size]  ⊆ 割込みスタック領域)? 
+				(AP_Readable | AP_Writable | AP_StackSpace)：
+				NO_ACCESS;
+	}
+
+	/* FL2では割込みは信頼OSアプリケーションにしか属さない */
+	ret |= AP_Readable | AP_Writable | AP_Executable;
+
+	return (ret);
+}
+
+AccessType
+check_task_memory(const TCB *p_tcb, const MemoryStartAddressType adr,
+					MemorySizeType size, boolean *over_region)
+{
+	AccessType ret;
+
+	*over_region = false;
+	if (領域[adr,adr + size] メモリオブジェクト跨ぐ) {
+		*over_region = true;
+	}
+
+	if (p_tcbは信頼OSアプリケーションに所属) {
+		ret = (領域[adr,adr + size]  ⊆ タスクシステムスタック領域)? 
+				(AP_Readable | AP_Writable | AP_StackSpace)：
+				NO_ACCESS;
+
+		/* 信頼タスクの場合は全アクセス可能 */
+		ret |= (AP_Readable | AP_Writable | AP_Executable);
+	}
+	else if (*over_region == false) {
+		ret = (領域[adr,adr + size] ⊆ タスクユーザスタック領域)? 
+				(AP_Writable | AP_Readable | AP_StackSpace)： 
+				(領域[adr,adr + size]のアクセス権);
+	}
+
+	return (ret);
+}
+
+----------------------------------------
+
+6.12.2 メモリアクセス権チェックのためのマクロ
+
+カーネル内標準で，実行中OSアプリケーションに対して，引数で指定した変
+数アドレスと変数タイプのアクセス（リード，ライド）権限のチェックマク
+ロが用意されている．メモリオブジェクトの依存部管理などにより，依存部
+でPROBE_MEM_WRITEとPROBE_MEM_RWを定義することで，標準のチェックマクロ
+を無効にすることができる．
+
+(6.12.2.1） PROBE_MEM_WRITE（オプション）
+(6.12.2.2） PROBE_MEM_RW（オプション）
+
+----------------------------------------
+
+#define PROBE_MEM_WRITE(p_var, type) \
+	 (領域[p_var,adr + sizeof(type)] & AP_Writable)
+
+#define PROBE_MEM_RW(p_var, type) \
+	 (領域[p_var,adr + sizeof(type)] & (AP_Readable | AP_Writable))
+
+----------------------------------------
+
+
+6.13 エラーフック，シャットダウンフック呼び出し
+
+節番号以外，ATK2-SC1から変更なし．
+
+6.14 カーネルの起動・終了とスタック領域など
+
+(6-14-1) スタートアップモジュール
+
+(c) void initialize_sections(void)でbssセクションとdataセクションの初
+    期化
+
+各dataセクションに初期値を設定し，各bssセクションをクリアする．
+
+まず，初期値ありデータセクションの初期化(dataセクション)の初期化を行
+う．初期値ありデータセクションを初期化する時に，dataセクション初期化テ
+ーブルにある初期化データ領域の先頭番地から，dataセクションに値を取得し
+て，セットする．dataセクション初期化テーブルは，dataセクションの初期化
+に依存してはいけないので，コンフィギュレーションのメモリ配置時に，読み
+専用データ領域（rodataセクション）に配置すればよい．
+
+dataセクション初期化後に，bssセクションを初期化すれば，bssセクション初
+期化ブロックは，する時，dataセクションは，読み専用データ領域に配置する
+必要がない．
+
+また，OMIT_INITIALIZE_SECTIONSマクロを定義することで，非依存部定義した
+bssセクションとdataセクションの初期化処理を無効化して，
+initialize_sectionsを依存部で実装することができる．
+
+カーネル本体は，kerflgがfalse（＝0）に初期化される以外に，bssセクショ
+ンが初期化されることに依存していないため，initialize_sectionsを依存部
+で用意する場合，bssセクション初期化分のシステムの起動時間を短縮するた
+めに，kerflgをfalseに初期化するだけで十分である．
+
+6.15 カーネル内部のチューニング
+
+6.15.1 ビットマップサーチ
+
+節番号以外，ATK2-SC1から変更なし．
+
+6.16 カーネル実装に関するその他の定義
+
+6.16.1 エラーチェック方法の指定
+
+節番号以外，ATK2-SC1から変更なし．
+
+6.16.2 非タスクコンテキスト用のスタック領域
+
+節番号以外，ATK2-SC1から変更なし．
+
+6.16.3 空ラベルの定義
+
+節番号以外，ATK2-SC1から変更なし．
+
+6.16.4 各スタックのデフォルト値
+
+(6-16-4-3) DEFAULT_TASKSYSTEMSTKSZ（オプション）
+(6-16-4-4) DEFAULT_ISRSYSTEMSTKSZ（オプション）
+(6-16-4-5) DEFAULT_HOOKSTKSZ（オプション）
+(6-16-4-6) DEFAULT_NONTRUSTEDHOOKSTKSZ（オプション）
+(6-16-4-7) DEFAULT_TRUSTEDFUNCTIONSTKSZ（オプション）
+(6-16-4-8) DEFAULT_OSSTKSZ（オプション）
+
+6.16.5 スタックマジックナンバー領域操作マクロの定義
+
+(6-16-5-2) TOPPERS_SSTK_MAGIC_REGION（オプション）
+
+スタックモニタリングで使用するタスクシステムスタック用マジックナンバー
+の格納位置を返すマクロであり，スタックの成長方向がアドレスの大きい方か
+ら小さい方へ成長することをデフォルト実装としている．スタック成長方向に
+よりターゲットで再定義することができる．p_tinibで指定ししたタスク初期
+化ブロックを基づいて，スタック成長方向によりターゲットで再定義すること
+ができる．
+
+6.16.6 標準以外メモリリージョン属性の定義
+
+ハードウェアにどのような性質のメモリリージョンが存在するかは，ターゲッ
+トに依存するので，標準ROM，標準RAM以外のメモリリージョンが存在する場合，
+ターゲット依存部で，属性を識別するため以下のマクロを定義する．
+
+(6-16-6-1)TARGET_REGATR
+
+ただし，非依存部で以下の定義値は，既にビット単位で予約されているので，
+定義値を注意する．
+    0x00    /* オブジェクト属性を指定しない */
+    0x01    /* 書込みアクセス禁止 */
+    0x02    /* 標準ROMリージョン */
+    0x04    /* 標準RAMリージョン */
+
+コンフィギュレーション時，非依存部のでTARGET_REGATRを用いて，定義した
+メモリリージョンの有効性をチェックしている．
+
+6.17 トレースログ機能に関する設定
+
+6.17.1 取得できるトレースログの種類とマクロ
+
+節番号以外，ATK2-SC1から変更なし．
+
+6.17.2 トレースログ記録のサンプルコード
+
+節番号以外，ATK2-SC1から変更なし．
+
+6.18 フック，シャットダウンフックの強制終了
+
+(6-18-1) void call_trusted_hook(void *hook, StatusType arg)
+
+call_trusted_hookはシャットダウンフック実行時にターゲット非依存部から呼
+び出される．信頼フックの強制終了処理と，実行再開可能にするためレジスタ
+の退避を行う．
+また，信頼シャットダウンフック実行中にエラーフックが発生して，更にエラー
+フック実行中にプロテクションフックが上がるようなフックのネストができた状
+態で，信頼シャットダウンフックを強制終了する可能性があるため，フックのネ
+ストがあっても実行最再開出来るようにする必要がある．そのため，処理単位を
+管理する変数(callevel_stat)，割込みネスト管理変数(except_nest_cnt)，信頼
+フックスタックポインタ退避変数(trusted_hook_savedsp)をスタックに退避する
+必要がある．
+上記のレジスタ及び変数をスタックに退避した後，信頼フック用スタックのスタ
+ックポインタを信頼フックスタックポインタ退避変数(trusted_hook_savedsp)に
+退避する．
+
+(6-18-2) void exit_trusted_shutdown_hook(void)
+
+exit_trusted_shutdown_hookはcall_trusted_hookにより実行されるフック
+ルーチンから呼び出されることを想定している．信頼シャットダウンフックの
+強制終了処理を行う．
+信頼フックスタックポインタ退避変数(trusted_hook_savedsp)を使用して，ス
+タックに退避されているデータはcall_trusted_hook実行時にスタックに退避さ
+れたもの(trusted_hook_savedsp，except_nest_cnt，callevel_stat)である．
+
+(6-18-3)
+void call_nontrusted_hook(void *hook, StatusType arg, uint32 HookType)
+
+call_nontrusted_hookは非信頼フック呼出し時にターゲット非依存部から呼び
+出される．非信頼フックの呼出しについて必要な処理を行う．
+
+----------------------------------------
+void call_nontrusted_hook(void *hook, StatusType arg, uint32 HookType)
+{
+	Callee-Savedレジスタ(r16-r23)，fpレジスタ，raレジスタをスタック退避
+	非信頼フック実行前スタックポインタ退避変数をスタックに退避
+	非信頼シャットダウンフック実行前スタックポインタ退避変数をスタック
+	に退避
+	非信頼フック実行前スタックポインタ退避変数に現在のスタックポインタ
+	を退避
+	if (HookTypeがシャットダウンフックではない場合) {
+		if (非信頼フックルーチンがネストしていない) {
+			非信頼フック用スタックのアドレスを元にmpubase設定値を生成
+			非信頼フック用スタックの先頭を格納
+			格納したスタックポインタを元にmpuacc設定値を生成
+			mpubaseレジスタ，mpuaccレジスタに生成した値を書き込み
+		}
+		
+		if (異なる非信頼OSAP所属フックがネストしている) {
+			[in]*hookをスタックに退避
+			[in]argをスタックに退避
+			非信頼フック使用スタックポインタ緒をスタックに退避
+			OSAPの専有領域のMPU設定を実施
+			退避していたスタックを復帰
+			現在MPUに設定しているスタックを所有するタスクのTCBの
+			スタックをスタックに退避
+			現在MPUに設定しているスタックを所有するタスクのTCBの
+			スタックを0クリア
+		}
+		スタックポインタを，非信頼フックルーチンのスタックに切替え
+		全割込み禁止状態に移行
+		estatusレジスタに，STATUS_Uビットを立て非特権モードの値を格納
+		eaレジスタに，パラメータ[in]Hookを格納
+		r4レジスタに，パラメータ[in]argを格納
+		raレジスタに，フック関数実行後の戻り番地として
+		exit_nontrusted_hook_trapを格納
+		eret命令により，非特権モード状態でパラメータ[in]Hook関数を実行
+		trapの機能コードとして，TFN_HOOK_RETURNを発行
+		trap命令実施し，例外ハンドラから
+		call_nontrusted_hook_trap_retを実行
+	} else {
+		非信頼シャットダウンフック実行前スタックポインタ退避変数に現在
+		のスタックポインタを退避
+		呼び出し元の処理単位を退避
+		非信頼フックのネスト値を退避
+		非信頼シャットダウンの強制終了
+	}
+}
+----------------------------------------
+
+(6-18-4) void exit_nontrusted_hook(void)
+
+exit_nontrusted_hookはcall_nontrusted_hookにより実行されるフックルーチ
+ンから呼び出されることを想定している．非信頼フックの強制終了処理を行い，
+呼び出し元には戻らない．
+
+6.19 コア起動
+
+(6-19-1) LOCAL_INLINE boolean x_start_core(CoreIdType coreid)
+
+指定されたコアの起動処理を行う．
+
+----------------------------------------
+LOCAL_INLINE boolean x_start_core(CoreIdType coreid)
+{
+	if (指定されたコアID＜サポートしているコア数) {
+		(SYSVER_REG5 + 4 * coreid )に，MAGIC_STARTを書き込む
+		TRUEを返す
+	} else {
+		FALSEを返す
+	}
+	返り値をリターン
+}
+----------------------------------------
+
+(6-19-2) LOCAL_INLINE boolean is_halt(CoreIdType coreid)
+
+指定されたコアが起動されたかの確認を行う．
+
+----------------------------------------
+LOCAL_INLINE boolean is_halt(CoreIdType coreid)
+{
+	if (SYSVER_REG5 + 4 * coreid )にMAGIC_STARTが書き込まれていない {
+		TRUEを返す
+	} else {
+		FALSEを返す
+	}
+}
+----------------------------------------
+
+6.20 フックの確認
+
+(6-20-1) LOCAL_INLINE boolean is_running_nontrusted_hook(void)
+
+非信頼フックルーチンが実行中であるかを確認する．
+
+----------------------------------------
+LOCAL_INLINE boolean is_running_nontrusted_hook(void)
+{
+	if (非信頼フックルーチン実行中) {
+		TRUEを返す
+	} else {
+		FALSEを返す
+	}
+}
+----------------------------------------
+
+(6-20-2) LOCAL_INLINE boolean is_running_nontrusted_shtdwnhk(void)
+
+非信頼シャットダウンフックルーチンが実行中であるかを確認する．
+
+----------------------------------------
+LOCAL_INLINE boolean is_running_nontrusted_shtdwnhk(void)
+{
+	if (非信頼フックルーチン実行中) {
+		TRUEを返す
+	} else {
+		FALSEを返す
+	}
+}
+----------------------------------------
+
+6.21 スタック切り替え
+
+call_protectionhk_main_stkchg (ercd)
+
+フック用スタックへの切り替えを実施した上でフックルーチンの実行を行う．
+
+6.22 非信頼フックルーチンスタック領域
+
+(6-22-1) AccessType probe_nthkstk(MemorySizeType start, MemorySizeType end)
+
+指定メモリ領域が非信頼フックルーチンスタック領域に存在するか確認する．
+
+----------------------------------------
+AccessType probe_nthkstk(MemorySizeType start, MemorySizeType end)
+{
+	戻り値変数をアクセス権なしで初期化
+	if (非信頼フック実行前のスタックポインタ変数が0でない場合) {
+		if ([in]start，[in]endで指定した領域が非信頼フックスタック領域に含まれる場合) {
+			戻り値変数に読書き権限＋スタックアクセス権限をアクセス権として設定
+		}
+	}
+	戻り値変数を返す
+}
+----------------------------------------
+
+(6-22-2) void cancel_nontrusted_hook(void)
+
+cancel_nontrusted_hookはタスク強制終了時に，ターゲット非依存部から呼び出される．
+非信頼フック実行中に非信頼フックスタック領域のMPU設定を無効化する．
+
+----------------------------------------
+void cancel_nontrusted_hook(void)
+{
+	if (非信頼フック実行前のスタックポインタ変数が0でない場合) {
+		非信頼フック実行前のスタックポインタ変数に0を設定
+		非信頼フックスタック領域に対して以下のように設定
+		・開始アドレス=0
+		・終了アドレス=0
+		・特権：読書き不可
+		・非特権：読書き不可
+	}
+}
+----------------------------------------
+
+6.14 ハードウェアカウンタ
+
+ATK2-SC1から変更なし．
+
+6.14.1 ハードウェアカウンタのファイル構成
+
+ATK2-SC1から変更なし．
+
+6.14.2 ハードウェアカウンタの情報提供
+
+ATK2-SC1から変更なし．
+
+
+７．ジェネレータ設定ファイルのターゲット依存部
+
+7.1 設定ファイルとターゲット依存部の位置付け
+
+ATK2-SC3のジェネレータは，設定ファイルの記述に従ってファイルの生成およ
+びエラーチェックを行う．ジェネレータの設定ファイルには，以下の5つがあ
+る．
+
+(a) XMLコンテナテーブル
+
+ATK2-SC1から変更なし．
+
+(b) 値取得シンボルテーブル
+
+ATK2-SC1から変更なし．
+
+(c) パス2のテンプレートファイル
+
+ジェネレータのパス2は，テンプレートファイルに従って，カーネルの構成・
+初期化ファイル（Os_Lcfg.c），構成・初期化ヘッダファイル（Os_Lcfg.h），
+メモリ構成・初期化ファイル（kernel_mem2.c），リンカスクリプトファイル
+（ldscript.ld），パス3, パス4に渡すテンプレート情報ファイル
+(cfg2_out.tf)などを生成する．このテンプレートファイルは，ターゲット非
+依存部とターゲット依存部に切り分けてあるが，他のファイルのターゲット依
+存部とは逆に，ターゲット依存部からターゲット非依存部をインクルードする
+形になっている．
+
+具体的には，targetディレクトリに置かれたtarget.tfで，必要な変数を定義
+した後，テンプレートファイルのターゲット非依存部（kernel/kernel.tf）を
+インクルードする．kernel.tfでは，カーネルのターゲット非依存部で使用す
+る変数定義等を生成する．kernel.tfをインクルードした後，target.tfでは，
+カーネルのターゲット依存部で使用する変数定義等を生成する．target.tfか
+ら，プロセッサ依存部，チップ依存部を，開発環境依存部を切り分けてもよい．
+
+パス2では，メモリ構成・初期化ファイルに，meminib_table, memtop_table, 
+datasecinib_table, bsssecinib_table, mpuinfo_shared(共有領域に対する
+MPUINFOB)，OSAP専有領域に対するMPUINFOBの情報を出力する．
+
+(d) パス3のテンプレートファイル
+
+ジェネレータのパス3は，テンプレートファイルに従って，パス2で生成した，
+meminib_table, memtop_table, datasecinib_table, bsssecinib_table,
+mpuinfo_shared(共有領域に対するMPUINFOB), OSAP専有領域に対するMPUINFOB
+の最適化を行う．このテンプレートファイルも，ターゲット非依存部とターゲ
+ット依存部に切り分けてあり，ターゲット依存部からターゲット非依存部をイ
+ンクルードする形になっている．
+
+具体的には，targetディレクトリに置かれたtarget_mem.tfで，必要な変数を
+定義した後，テンプレートファイルのターゲット非依存部
+（kernel/kernel_mem.tf）をインクルードする．kernel_mem.tfでは，カーネ
+ルのターゲット非依存部で，パス2で生成した各ファイルから情報を読込み，
+メモリ構成・初期化データ構造の最適化（隣接領域の統合・0サイズ領域の削
+除など）を行い，最適化したメモリ構成・初期化ファイル（kernel_mem3.c）
+を出力する．target_mem.tfから，プロセッサ依存部，チップ依存部を，開発
+環境依存部を切り分けてもよい．
+
+(e) パス4のテンプレートファイル
+
+ジェネレータのパス4は，テンプレートファイルに従って，パス3で生成した，
+meminib_table, memtop_table, datasecinib_table, bsssecinib_table,
+mpuinfo_shared(共有領域に対するMPUINFOB), OSAP専有領域に対するMPUINFOB
+を更に最適化を行い，最終のメモリ構成・初期化ファイル（kernel_mem.c）を
+出力する．このテンプレートファイルも，ターゲット非依存部とターゲット依
+存部に切り分けてあり，ターゲット依存部からターゲット非依存部をインクル
+ードする形になっている．
+
+具体的には，targetディレクトリに置かれたtarget_mem2.tfで，必要な変数を
+定義した後，テンプレートファイルのターゲット非依存部
+（kernel/kernel_mem2.tf）をインクルードする．kernel_mem2.tfでは，カー
+ネルのターゲット非依存部で，パス3で生成した各ファイルから情報を読込み，
+メモリ構成・初期化データ構造再度最適化を行い，パス3と変わらない最終の
+メモリ構成・初期化ファイル（kernel_mem.c）を出力する．target_mem.tfか
+ら，プロセッサ依存部，チップ依存部を，開発環境依存部を切り分けてもよ
+い．
+
+ジェネレータのパス4は，基本的にはパス3と同じ処理を行うが，パス3と違い，
+各メモリオブジェクトの開始と終端アドレスが最終のアドレスになるため，違
+うメモリリージョンに配置されるメモリオブジェクトの統合や，リンカで配置
+しないメモリオブジェクトの統合が可能になる．パス3とパス4ではメモリマッ
+プが変わらないようにするため，パス4での最適化により，配列のサイズが小
+さくできる場合でもサイズを変えないようにする．
+ジェネレータのパス4では，メモリオブジェクトの重なりのチェック等のエラー
+チェックも行う．
+
+なお，ジェネレータの詳細仕様と設定ファイルの記述方法については，別途
+PDFファイルの形で配布している「TOPPERS新世代カーネル用ジェネレータ仕様」
+および「TOPPERS新世代カーネル用ジェネレータ内蔵マクロプロセッサ仕様」
+を参照すること．
+
+7.2 パス2のテンプレートファイルのターゲット依存部
+
+
+7.2.1 ターゲット非依存部をインクルードする前に定義すべき変数
+
+
+(7-2-1-5) TARGET_SEC_ALIGN_STR	セクションのアラインサイズの定義
+(7-2-1-6) TARGET_PAGE_SIZE_STR	ページのアラインサイズの定義
+
+(7-2-1-7) TARGET_MEMATR_USTACK	ユーザスタック領域のメモリオブジェクト
+                                属性
+
+以下の標準セクションのメモリオブジェクト属性を定義する
+(7-2-1-8) MEMATR_TEXT		コード領域の属性
+(7-2-1-9) MEMATR_RODATA		読込み専用領域の属性
+(7-2-1-10) MEMATR_DATA		データ領域の属性
+(7-2-1-11) MEMATR_BSS		0初期化領域の属性
+(7-2-1-12) MEMATR_PRSV		プレザーブド領域の属性
+(7-2-1-13) MEMATR_SDATA		初期値ありショート領域の属性
+(7-2-1-14) MEMATR_SBSS		初期値なしショート領域の属性
+
+(7-2-1-15) START_OBJS		スタートアップモジュールの定義
+
+(7-2-1-16) SECTION_USTACK	ユーザスタック領域のセクション名生成関数
+
+(7-2-1-17) ALLOC_USTACK(taskid, ustksz)	ユーザスタック領域の確保関数
+
+(7-2-1-18) USTACK_ALIGN_SIZE(ustksz)	ユーザスタックのアライメント制
+                                        約に合わせたサイズを返す関数
+
+(7-2-1-19) SECTION_SHARED_USTACK(共有スタックID)	基本タスクの共有ス
+                                        タックのセクション名を返す関数
+
+(7-2-1-20) ALLOC_SHARED_USTACK(...)	基本タスクの共有スタックの確保関数
+  第1引数 共有スタック名
+  第2引数 共有スタックID(タスク優先度)
+  第3引数 スタックサイズ(アライメント調整済み)
+
+(7-2-1-21) ALLOC_SSTACK(...)	システムスタック領域の確保関数
+  第1引数 スタック名
+  第2引数 スタックサイズ
+  第3引数 変数定義に付与する指定子
+
+(7-2-1-22) ALLOC_HSTACK(...)	非信頼フックスタックの確保関数
+  第1引数 スタック名
+  第2引数 スタックサイズ
+
+
+(7-2-1-23) HSTACK_SIZE_STR(stksz)	非信頼フックスタックサイズのアライ
+                                    メント制約を満たすように拡張したサ
+                                    イズの文字列を返す関数
+
+(7-2-1-24) DEFINE_DSEC(void)	標準のセクションの定義関数
+  上記(7-2-1-9)〜(7-2-1-15)の標準のセクション(名前，属性，配置リージョ
+  ン名)の定義
+
+(7-2-1-25) SECTION_DESCRIPTION(secname)	リンクするセクション名記述の生
+                                        成関数
+
+
+(7-2-1-26) HOOK_ERRORCHECK_SEC(secid)（オプション）	ATT_SECに関するタ
+                                     ーゲット依存のエラーチェック関数
+
+
+
+(7-2-1-27) HOOK_ERRORCHECK_MEM(secid)（オプション）	ATT_MEMに関するタ
+                                     ーゲット依存のエラーチェック関数
+
+(7-2-1-28) TARGET_PROVIDE_GP(void)	gpレジスタの設定関数
+
+(7-2-1-29) TARGET_CODE_FILLER(moid)（オプション）	text領域をNOP命令
+                                                    で埋める関数
+  text領域のシンボル名をNOP命令で埋める
+
+(7-2-1-30) GENERATE_OUTPUT(void)（オプション）ターゲット依存のOUTPUT記
+                                              述の生成関数
+  出力するファイルの形式（BFD），ターゲットアーキテクチャ及びエントリ
+  を指定する．
+
+(7-2-1-31) GENERATE_PROVIDE(void)	ターゲット依存のPROVIDE記述の生成
+                                    関数
+
+
+(7-2-1-32) GENERATE_SECTION_FIRST(void)	ターゲット依存のセクション記述
+                                        の生成関数
+
+(7-2-1-33) GENERATE_STKMPUINFOB(taskid)	タスクスタックのMPUレジスタ設
+                                        定値を出力する関数
+  メモリサイズ確定のため，コンパイラ用ダミーのMPUレジスタ設定値を出力
+  する．
+
+(7-2-1-34) $CFG_PASS3 = 0$
+(7-2-1-35) $CFG_PASS4 = 0$
+
+また，パス2，パス3，パス4共通定義を共通処理ファイル(prc_common.tf)に定
+義し，各パス処理テンプレートファイルを処理前にインクルードする．
+
+(7-2-1-36) MEMORY_ALIGN		メモリのアライメント
+
+(7-2-1-37) CHECK_MP_ALIGN	第1引数と，第2引数がメモリ保護のアライメン
+                            ト制約を満たしているかチェックする関数
+
+(7-2-1-38) GENERATE_OSAPINIB_MPUINFOB(osapid)	OSAPINIBのMPUINFOBを出
+                                            力する関数
+
+(7-2-1-39) DEFINE_CONST_VAR(...)		rodata領域に配置される変数を定
+                                        義する関数
+  第1引数 変数型名
+  第2引数 変数名
+
+DEFINE_CONST_VARは，非依存部のテンプレートファイルでは，データセクション
+の初期化前に使用されるデータ（具体的には，ostkpt，tnum_datasec，
+datasecinib_table）を確実に定数領域（初期化が必要なく，リセット後にも
+値が保持される不揮発性領域）に配置するために用いられる．
+
+(7-2-1-40) GENERATE_STKMPUINFOB(taskid)	タスクスタックのMPUレジスタ設
+                                        定値を出力関数
+  この関数は，パス3, パス4のみ有効な定義とする．
+  上記(7-2-1-33)の定義は，パス2のみ有効
+
+(7-2-1-41) DEFINE_VAR_SEC(...)		変数を指定されたセクションに定義す
+                                    る関数
+  第1引数 セクション名
+  第2引数 型
+  第3引数 変数名
+  第4引数 変数の値
+
+(7-2-1-42) GENERATE_TARGET_MPUINFOB(void)	MPUレジスタ設定値の生成関数
+  MPU_REGIONを作成，統合し，共有領域及びOSAP専有領域のMPUレジスタ設定
+  値を生成する．
+
+(7-2-1-27) HOOK_ERRORCHECK_REG(regid)（オプション）	ATT_REGに関するタ
+                                     ーゲット依存のエラーチェック関数
+
+7.2.2 ターゲット非依存部で定義される変数
+
+(7-2-2-3) REG.xxxx[regid]		メモリリージョンの連想配列
+
+(7-2-2-4) MO.xxxx[moid]			メモリオブジェクトの連想配列
+
+(7-2-2-5) LNKSEC.xxxx[lsid]		LNK_SECで配置するセクションの連想配列
+
+(7-2-2-6) OSAP.xxxx[osapid]		OSAP情報の連想配列
+
+7.3 パス3のテンプレートファイルのターゲット依存部
+
+7.3.1 ターゲット非依存部をインクルードする前に定義すべき変数
+
+target_mem.tfからkernel_mem.tfをインクルードする前に，必要に応じて，次
+の変数を定義しておかなければならない．
+
+(7-3-1-2) $CFG_PASS3 = 1$
+(7-3-1-3) $CFG_PASS4 = 0$
+
+7.4 パス4のテンプレートファイルのターゲット依存部
+
+
+以下では，パス4のテンプレートファイルのターゲット依存部を記述する上で
+必要な事項について説明する．
+
+7.4.1 ターゲット非依存部をインクルードする前に定義すべき変数
+
+target_mem2.tfからkernel_mem2.tfをインクルードする前に，必要に応じて，
+次の変数を定義しておかなければならない．
+
+(7-4-1-1) $CFG_PASS3 = 0$
+(7-4-1-2) $CFG_PASS4 = 1$
+
+また，各メモリオブジェクトの領域のサイズチェック・オブジェクトの重なり
+チェックを必要に応じて，パス4で行う．
+
+パス3とパス4ではメモリマップが変わらないようにするため，パス4での最適
+化により，配列のサイズが小さくできる場合でもサイズを変えないようにす
+る．
+
+
+7.5 cfg1_out.cのリンクに必要なスタブの定義ファイル
+
+----------------------------------------
+...
+void
+initialize_sections(void)
+{
+}
+const MPUINFOB		_background_code_region;
+const MPUINFOB		_background_data_region;
+----------------------------------------
+
+7.6 data/bssセクション初期化ブロックの生成
+
+ターゲット依存部において，OMIT_STANDARD_DATASECINIBマクロを定義すると，
+ターゲット非依存部で，dataセクション初期化ブロックを生成しない．
+
+ターゲット依存部において，OMIT_STANDARD_BSSSECINIBマクロを定義すると，
+ターゲット非依存部で，bssセクション初期化ブロックを生成しない．
+
+dataセクションなどの先頭番地のラベルは，使用するコンパイラによっては，
+非依存部で生成される初期化ブロックから参照されるラベルと異なる場合が
+ある．
+そのような場合に，これらのマクロを定義することで，ターゲット依存で
+独自のdata/bssセクション初期化ブロックの生成処理を，テンプレートファイル
+によって定義することができる．
+
+８．システムモジュール等のターゲット依存部
+
+8.1 システムモジュールのターゲット依存部
+
+ATK2-SC1から変更なし．
+
+8.2 システムログ機能のターゲット依存定義
+
+(8-2-3) ターゲット定義のシステムサービスの追加
+システムログ機能は，ターゲット追加のシステムサービスとして位置付け，シ
+ステムログ機能使用する/使用しない場合，システムサービステーブルに追加/
+追加しないオプション（USE_KERNEL_LIBRARY_SYSLOG）をサポートする．
+
+USE_KERNEL_LIBRARY_SYSLOGマクロが定義されている場合，システムモジュー
+ルに用意している_kernel_KernelLibrarySyslog関数をターゲットで追加する
+システムサービステーブル定義（PRC_SVC_TABLE）に追加する．
+USE_KERNEL_LIBRARY_SYSLOGマクロが定義されない場合，
+_kernel_KernelLibrarySyslog関数をターゲットで追加するシステムサービス
+テーブル定義（PRC_SVC_TABLE）に追加しない．
+
+8.3 シリアルインタフェースドライバのターゲット依存部
+
+8.3.1 変数，データ型，管理関数
+
+ATK2-SC1から変更なし．
+
+8.3.2 デバイスサービスルーチン
+
+ATK2-SC1から変更なし．
+
+8.3.3 コールバックルーチン
+
+ATK2-SC1から変更なし．
+
+8.4 カーネル起動メッセージの出力のターゲット依存定義
+
+ATK2-SC1から変更なし．
+
+8.5 サンプルプログラムとテストプログラムのターゲット依存定義
+
+ATK2-SC1から変更なし．
+
+8.6 実行時間分布集計モジュールのターゲット依存定義
+
+ATK2-SC1から変更なし．
+
+8.7 タイマドライバ
+
+8.7.1 タイマドライバのファイル構成
+
+ATK2-SC1から変更なし．
+
+8.7.2 ソフトウェアカウンタの定義
+
+ATK2-SC1から変更なし．
+
+8.7.3 時間型の定義
+
+ATK2-SC1から変更なし．
+
+8.7.4 タイマの初期化・終了処理・割込み処理
+
+ATK2-SC1から変更なし．
+
+8.7.5 現在の時刻の取得
+
+ATK2-SC1から変更なし．
+
+９．その他
+
+9.1 ドキュメント
+
+ATK2-SC1から変更なし．
+
+１０．リファレンス
+
+10.1 ターゲット依存部のファイル一覧
+
+target_mem.tf			ジェネレータのパス3のテンプレートファイルのター
+						ゲット依存部（7.3 節）．
+target_mem2.tf			ジェネレータのパス4のテンプレートファイルのター
+						ゲット依存部（7.4 節）．
+target_mem.arxml		ターゲット依存の標準ROM/RAMなどメモリリージョ
+						ン定義のXMLコンテナコンフィギュレーション
+						ファイル．
+target_svc.h			ターゲット依存のソフトウェア割込みによるサービ
+						スコールインタフェースヘッダーファイル．
+target_serial_obj.arxml	シリアルドライバのシステムコンフィギュレーショ
+						ンファイル．
+target_serial_osap.arxmlシリアルドライバのシステムコンフィギュレーショ
+						ンファイル．
+target_test_obj.arxml	テストプログラムのターゲット依存定義のコンフィ
+						ギュレーションファイル．
+target_test_osap.arxml	テストプログラムのターゲット依存定義のコンフィ
+						ギュレーションファイル．
+target_timer_obj.arxml	タイマドライバのXMLコンテナ用システムコンフィ
+						ュレーションファイル．
+target_timer_osap.arxml	タイマドライバのXMLコンテナ用システムコンフィ
+						ュレーションファイル．
+
+
+以上
Index: /atk2-sc3_fl850f1l/doc/tuning_memo.txt
===================================================================
--- /atk2-sc3_fl850f1l/doc/tuning_memo.txt	(revision 117)
+++ /atk2-sc3_fl850f1l/doc/tuning_memo.txt	(revision 117)
@@ -0,0 +1,77 @@
+
+		TOPPERS/ATK2-SC3カーネル
+		機能拡張・チューニングガイド
+
+このドキュメントは，ATK2-SC3を，機能拡張・チューニングするための方法
+（またはヒント）を説明するものである．
+
+----------------------------------------------------------------------
+TOPPERS ATK2
+    Toyohashi Open Platform for Embedded Real-Time Systems
+    Automotive Kernel Version 2
+
+Copyright (C) 2011-2015 by Center for Embedded Computing Systems
+            Graduate School of Information Science, Nagoya Univ., JAPAN
+Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+Copyright (C) 2011-2013 by Spansion LLC, USA
+Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+Copyright (C) 2011-2015 by Witz Corporation
+Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+
+上記著作権者は，以下の (1)〜(3)の条件を満たす場合に限り，本ドキュメ
+ント（本ドキュメントを改変したものを含む．以下同じ）を使用・複製・改
+変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+(1) 本ドキュメントを利用する場合には，上記の著作権表示，この利用条件
+    および下記の無保証規定が，そのままの形でドキュメント中に含まれて
+    いること．
+(2) 本ドキュメントを改変する場合には，ドキュメントを改変した旨の記述
+    を，改変後のドキュメント中に含めること．ただし，改変後のドキュメ
+    ントが，TOPPERSプロジェクト指定の開発成果物である場合には，この限
+    りではない．
+(3) 本ドキュメントの利用により直接的または間接的に生じるいかなる損害
+    からも，上記著作権者およびTOPPERSプロジェクトを免責すること．また，
+    本ドキュメントのユーザまたはエンドユーザからのいかなる理由に基づ
+    く請求からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+
+本ドキュメントは，AUTOSAR（AUTomotive Open System ARchitecture）仕様
+に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するものではな
+い．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利用する
+者に対して，AUTOSARパートナーになることを求めている．
+
+本ドキュメントは，無保証で提供されているものである．上記著作権者およ
+びTOPPERSプロジェクトは，本ドキュメントに関して，特定の使用目的に対す
+る適合性も含めて，いかなる保証も行わない．また，本ドキュメントの利用
+により直接的または間接的に生じたいかなる損害に関しても，その責任を負
+わない．
+
+$Id: tuning_memo.txt 187 2015-06-25 03:39:04Z t_ishikawa $
+----------------------------------------------------------------------
+
+○目次
+
+・ビットサーチ命令の使用
+・タスク種別毎のTCB生成
+・○最適化するために型の依存部定義
+
+○がついている項目はATK2-SC1から変更があった箇所を，◎はATK2-SC3で新規
+に追加された箇所を示す．
+
+・ビットサーチ命令の使用
+
+ATK2-SC1から変更なし．
+
+・タスク種別毎にTCBを生成する
+
+ATK2-SC1から変更なし．
+
+・最適化するために型の依存部定義
+
+ATK2-SC3の場合，以下の型も含む：
+  typedef uint32	TrustedFunctionIndexType;  /* Trusted Function Index */
+
Index: /atk2-sc3_fl850f1l/doc/user.txt
===================================================================
--- /atk2-sc3_fl850f1l/doc/user.txt	(revision 117)
+++ /atk2-sc3_fl850f1l/doc/user.txt	(revision 117)
@@ -0,0 +1,559 @@
+
+		TOPPERS/ATK2-SC3
+		ユーザーズマニュアル
+
+このドキュメントは，TOPPERS/ATK2-SC3を使用するために必要な事項を説明
+するものである．
+
+----------------------------------------------------------------------
+TOPPERS ATK2
+    Toyohashi Open Platform for Embedded Real-Time Systems
+    Automotive Kernel Version 2
+
+Copyright (C) 2011-2015 by Center for Embedded Computing Systems
+            Graduate School of Information Science, Nagoya Univ., JAPAN
+Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+Copyright (C) 2011-2013 by Spansion LLC, USA
+Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+Copyright (C) 2011-2015 by Witz Corporation
+Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+
+上記著作権者は，以下の (1)〜(3)の条件を満たす場合に限り，本ドキュメ
+ント（本ドキュメントを改変したものを含む．以下同じ）を使用・複製・改
+変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+(1) 本ドキュメントを利用する場合には，上記の著作権表示，この利用条件
+    および下記の無保証規定が，そのままの形でドキュメント中に含まれて
+    いること．
+(2) 本ドキュメントを改変する場合には，ドキュメントを改変した旨の記述
+    を，改変後のドキュメント中に含めること．ただし，改変後のドキュメ
+    ントが，TOPPERSプロジェクト指定の開発成果物である場合には，この限
+    りではない．
+(3) 本ドキュメントの利用により直接的または間接的に生じるいかなる損害
+    からも，上記著作権者およびTOPPERSプロジェクトを免責すること．また，
+    本ドキュメントのユーザまたはエンドユーザからのいかなる理由に基づ
+    く請求からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+
+本ドキュメントは，AUTOSAR（AUTomotive Open System ARchitecture）仕様
+に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するものではな
+い．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利用する
+者に対して，AUTOSARパートナーになることを求めている．
+
+本ドキュメントは，無保証で提供されているものである．上記著作権者およ
+びTOPPERSプロジェクトは，本ドキュメントに関して，特定の使用目的に対す
+る適合性も含めて，いかなる保証も行わない．また，本ドキュメントの利用
+により直接的または間接的に生じたいかなる損害に関しても，その責任を負
+わない．
+
+$Id: user.txt 187 2015-06-25 03:39:04Z t_ishikawa $
+----------------------------------------------------------------------
+
+○目次
+
+◎０．本マニュアルの位置づけ
+１．TOPPERS/ATK2-SC3の概要
+	○1.1 TOPPERS/ATK2-SC3の位置付け
+	1.2 TOPPERS/ATK2-SC3の仕様
+	1.3 既知の問題
+	1.4 Cygwin環境における注意事項
+２．ターゲット依存部
+	2.1 ターゲット依存部の概要
+３．クイックスタートガイド
+	3.1 開発環境の準備
+	3.2 ジェネレータの構築
+	3.3 XMLスキーマの入手
+	3.4 サンプルプログラムの構築と実行
+	3.5 カーネルを関数単位でライブラリ化する方法
+	3.6 アプリケーションとカーネルを別々に構築する方法
+	3.7 カウンタの循環チェックの省略
+	3.8 Rte_Type.hの用意
+４．ディレクトリ構成・ファイル構成
+	4.1 配布パッケージのディレクトリ構成
+	○4.2 ターゲット非依存部のファイル構成
+５．コンフィギュレーションスクリプトの使い方
+６．Makefileの修正方法
+	6.1 Makefileの変数定義
+	6.2 コンパイルオプション
+○７．ジェネレータの使い方
+7.1 コンフィギュレーションファイル(arxml)
+８．システムモジュール
+	8.1 システムログ機能
+		8.1.1 低レベル出力
+		8.1.2 ログ情報の種別
+		8.1.3 ログ情報の重要度
+		8.1.4 ログ情報のデータ構造
+		8.1.5 システムログ機能のサービスコール
+		8.1.6 システムログ機能のためのライブラリ関数とマクロ
+		○8.1.7 システムログ機能のその他のサービス
+	8.2 シリアルインタフェースドライバ
+		8.2.1 シリアルインタフェースドライバのサービスコール
+	8.3 カーネル起動メッセージの出力
+９．サポートライブラリ
+	9.1 基本的なライブラリ関数
+	9.2 キュー操作ライブラリ関数
+	9.3 システムログ出力用ライブラリ関数
+	9.4 実行時間分布集計モジュール
+１０．使用上の注意とヒント
+	10.1 タイマドライバの組込み
+	10.2 ASSERTマクロの処理
+	10.3 システムログ機能の扱い
+	10.4 オブジェクトIDの管理
+	10.5 トレースログ記録のサンプルコードの使用方法
+	10.6 システムの起動時の初期化処理
+	10.7 想定するプログラミング言語
+	10.8 ユーザスタック領域定義
+	○10.9 スタックサイズを見積もる注意点
+	10.10 スタートアップ/シャットダウンフック無効時の注意点
+	◎10.11 メモリ保護機能
+	◎10.12 システムサービスの呼出し方法
+	◎10.13 スタックについて
+		◎10.13.1 タスク
+		◎10.13.2 C2ISR
+		◎10.13.3 信頼フック
+		◎10.13.4 非信頼フック
+	◎10.14 本カーネル実装の機能レベル
+	◎10.15 タスク間でのスタック領域の共有
+	10.16 システムタイマの使用方法
+１１．参考情報
+	11.1 利用条件と利用報告
+	11.2 保証・適用性・サポート
+	11.3 バグレポート
+	11.4 ウェブサイト
+	11.5 TOPPERSユーザーズメーリングリスト
+	11.6 TOPPERSプロジェクトのメンバ向けのサービス
+	11.7 TOPPERSプロジェクトへの参加
+
+○がついている項目はATK2-SC1から変更があった箇所を，◎はATK2-SC3で新規
+に追加された箇所を示す．
+
+
+０．本マニュアルの位置づけ
+TOPPERS/ATK2-SC3は，TOPPERS/ATK2-SC1をベースとしているため，多くの項目
+はTOPPERS/ATK2-SC1と同一である．本ドキュメントでは，TOPPERS/ATK2-SC1と
+異なる点について説明する．そのため，まずTOPPERS/ATK2-SC1のユーザーズマ
+ニュアルを参照の後，本ドキュメントを参照すること．
+
+
+１．TOPPERS/ATK2-SC3の概要
+
+1.1 TOPPERS/ATK2-SC3の位置付け
+
+TOPPERS/ATK2-SC3は，TOPPERS/ATK2-SC1に対して，AUTOSAR OS仕様のSC3をベ
+ースとしてメモリ保護などのアクセス保護機能を追加したリアルタイムカーネ
+ルである．
+
+1.2 TOPPERS/ATK2-SC3の仕様
+
+ATK2-SC1から変更なし．
+
+1.3 既知の問題
+
+ATK2-SC1から変更なし．
+
+1.4 Cygwin環境における注意事項
+
+ATK2-SC1から変更なし．
+
+
+２．ターゲット依存部
+
+2.1 ターゲット依存部の概要
+
+ATK2-SC1から変更なし．
+
+
+３．クイックスタートガイド
+
+3.1 開発環境の準備
+
+ATK2-SC1から変更なし．
+
+3.2 ジェネレータの構築
+
+ATK2-SC1から変更なし．
+
+3.3 XMLスキーマの入手
+
+ATK2-SC1から変更なし．
+
+3.4 サンプルプログラムの構築と実行
+
+ATK2-SC1から変更なし．
+
+3.5 カーネルを関数単位でライブラリ化する方法
+
+ATK2-SC1から変更なし．
+
+3.6 アプリケーションとカーネルを別々に構築する方法
+
+ATK2-SC1から変更なし．
+
+3.7 カウンタの循環チェックの省略
+
+ATK2-SC1から変更なし．
+
+3.8 Rte_Type.hの用意
+
+ATK2-SC1から変更なし．
+
+
+４．ディレクトリ構成・ファイル構成
+
+4.1 配布パッケージのディレクトリ構成
+
+ATK2-SC1から変更なし．
+
+4.2 ターゲット非依存部のファイル構成
+
+	include/
+		svc_funccall.h			システムサービス直接呼び出し（ソフトウェア割込みによる呼出しと区別）ための定義
+
+	kernel/
+		kernel_common.tf		コンフィギュレーション各パス共通定義の非依存部テンプレートファイル
+		kernel_mem.tf			コンフィギュレーションパス2用の非依存部テンプレートファイル
+		kernel_mem2.tf			コンフィギュレーションパス3，パス4用の非依存部テンプレートファイル
+		memory.h				メモリオブジェクト管理機能関連の定義
+		memory.c				メモリオブジェクト管理機能の内部関数
+		osap.h					OSアプリケーション機能関連の定義
+		osap.c					OSアプリケーション機能の内部関数
+		svc.def					サービスコール定義ファイル（サービスコールインタフェース生成ツール用）
+		svc_table.c				システムサービスのソフトウェア割込みによる呼出すための起動番地テーブル
+		ioc.tf					IOC向けジェネレータのパス2のテンプレートファイル
+		ioc_impl.h				IOC実装用標準ヘッダファイル
+		ioc_manage.c			IOC機能
+
+	sysmod/
+		chkobj.c		非信頼OSアプリケーションのオブジェクトアクセス可否をチェックするためのシステムサービス定義
+
+	library/
+		ATK2-SC1から変更なし．
+
+	arch/gcc/
+		ldscript.tf		リンカスクリプトの生成のテンプレートファイル
+		tool_svc.h		システムサービスソフトウェア割込みによる呼出し（直接呼び出しと区別）ための定義
+
+	arch/logtrace/
+		ATK2-SC1から変更なし．
+
+	utils/
+		gensvc_atk		サービスコールインタフェース生成ツール
+
+	sample/
+		sample1.h		サンプルプログラム(1)に関する定義（信頼OSアプリケーション）
+		sample1.c		サンプルプログラム(1)（信頼OSアプリケーション）
+		sample2.h		サンプルプログラム(2)に関する定義（非信頼OSアプリケーション）	
+		sample2.c		サンプルプログラム(2)（非信頼OSアプリケーション）
+		sample1.arxml	サンプルプログラム(1)(2)のコンフィギュレーションファイル（信頼/非信頼OSアプリケーション）
+
+	doc/
+		ATK2-SC1から変更なし．
+
+
+５．コンフィギュレーションスクリプトの使い方
+
+ATK2-SC1から変更なし．
+
+
+６．Makefileの修正方法
+
+6.1 Makefileの変数定義
+
+ATK2-SC1から変更なし．
+
+6.2 コンパイルオプション
+
+ATK2-SC1から変更なし．
+
+
+７．ジェネレータの使い方
+
+ジェネレータ（cfg）は，4つのパスで構成される．
+
+	-p［--pass］<パス番号>
+		パス番号を指定する．1〜4のいずれか．
+
+	-r［--rom-image］<ロードモジュール名>
+		ロードモジュールをSレコードフォーマットの形に変換したファイルの
+		名称を指定する．パス3，パス4でのみ有効．
+
+7.1 コンフィギュレーションファイル(arxml)
+
+ATK2-SC1から変更なし．
+
+
+８．システムモジュール
+
+8.1 システムログ機能
+
+ATK2-SC1から変更なし．
+
+8.1.1 低レベル出力
+
+ATK2-SC1から変更なし．
+
+8.1.2 ログ情報の種別
+
+ATK2-SC1から変更なし．
+
+8.1.3 ログ情報の重要度
+
+ATK2-SC1から変更なし．
+
+8.1.4 ログ情報のデータ構造
+
+ATK2-SC1から変更なし．
+
+8.1.5 システムログ機能のサービスコール
+
+ATK2-SC1から変更なし．
+
+8.1.6 システムログ機能のためのライブラリ関数とマクロ
+
+ATK2-SC1から変更なし．
+
+8.1.7 システムログ機能のその他のサービス
+
+(3)システムログ機能使用する/しない場合の設定
+システムログ機能は，ターゲット追加システムサービスとして位置付け，使用
+する場合，Makefileに以下のコンパイルオプションで記述する．
+
+CDEFS := $(CDEFS)  -DUSE_KERNEL_LIBRARY_SYSLOG
+
+コンパイルオプションである-DUSE_KERNEL_LIBRARY_SYSLOGは，カーネルレベ
+ルでのシステムログ機能を使用する/しない設定である．
+-DUSE_KERNEL_LIBRARY_SYSLOGが指定された場合，カーネルにシステムログ機
+能が追加され，各アプリに使用できる．-DUSE_KERNEL_LIBRARY_SYSLOGが指定さ
+れない場合，カーネルにシステムログ機能が無くなり，各アプリに使用できな
+い．
+
+また，各アプリ(ソースファイル)にシステムログ機能を使用する/しない設定を
+個別にしたい場合は，抑止したいソースファイルにおいて，"t_syslog.h"をイン
+クルードする前に，TOPPERS_OMIT_SYSLOGマクロを定義する．
+
+8.2 シリアルインタフェースドライバ
+
+8.2.1 シリアルインタフェースドライバのサービスコール
+
+ATK2-SC1から変更なし．
+
+8.3 カーネル起動メッセージの出力
+
+ATK2-SC1から変更なし．
+
+９．サポートライブラリ
+
+9.1 基本的なライブラリ関数
+
+ATK2-SC1から変更なし．
+
+9.2 キュー操作ライブラリ関数
+
+ATK2-SC1から変更なし．
+
+9.3 システムログ出力用ライブラリ関数
+
+ATK2-SC1から変更なし．
+
+9.4 実行時間分布集計モジュール
+
+ATK2-SC1から変更なし．
+
+
+１０．使用上の注意とヒント
+
+10.1 タイマドライバの組込み
+
+ATK2-SC1から変更なし．
+
+10.2 ASSERTマクロの処理
+
+ATK2-SC1から変更なし．
+
+10.3 システムログ機能の扱い
+
+ATK2-SC1から変更なし．
+
+10.4 オブジェクトIDの管理
+
+ATK2-SC1から変更なし．
+
+10.5 トレースログ記録のサンプルコードの使用方法
+
+ATK2-SC1から変更なし．
+
+10.6 システムの起動時の初期化処理
+
+ATK2-SC1から変更なし．
+
+10.7 想定するプログラミング言語
+
+ATK2-SC1から変更なし．
+
+10.8 ユーザスタック領域定義
+
+ATK2-SC1から変更なし．
+
+10.9 スタックサイズを見積もる注意点
+
+本カーネルは，C2ISR/信頼フック用スタックは，合わせて1つのスタックで確
+保され，非信頼フック用スタックは，システムに1つ確保される．
+
+10.10 スタートアップ/シャットダウンフック無効時の注意点
+
+ATK2-SC1から変更なし．
+
+10.11 メモリ保護機能
+
+システムには，信頼OSアプリケーションと非信頼OSアプリケーションが存在す
+る．信頼OSアプリケーションに属する処理単位は，プロセッサの特権モードで
+実行され，全てのOSオブジェクトに対して，全ての種別のアクセスを行うこと
+が許可される．非信頼OSアプリケーションに属する処理単位は，プロセッサの
+非特権モードで実行され，どのOSオブジェクトに対してどの種別のアクセスを
+行えるかを制限することができる．カーネル自体は，信頼OSアプリケーション
+と同様な振る舞いをする．
+
+信頼OSアプリケーションは，ハードウェアへのアクセスやシステムサービスの
+使用に制限がなく，非信頼OSアプリケーションは，ハードウェアへのアクセス
+やシステムサービスの使用が制限されるため，信頼OSアプリケーションに属す
+る処理単位は，それなりに信頼されるように作成する必要がある．
+
+10.12 システムサービスの呼出し方法
+
+本カーネルでは，システムサービスは，ソフトウェア割込みによって呼出すの
+が基本である．システムサービス呼出しを通常の方法で記述した場合，ソフト
+ウェア割込みによって呼出すことが生成される．
+
+一般に，ソフトウェア割込みによるシステムサービス呼出しはオーバヘッドが
+大きい．そのため，信頼OSアプリケーションに属する処理単位からは，関数呼
+出しによってシステムサービスを呼出すことで，オーバヘッドを削減すること
+ができる．そこで，信頼OSアプリケーションに属する処理単位から関数呼出し
+によってシステムサービスを呼出せるように，機能が用意されている．
+
+信頼OSアプリケーションに属する処理単位が実行する関数のみを含んだソース
+ファイルでは，カーネルヘッダファイル（Os.h）をインクルードする前に，マ
+クロを定義することで，システムサービス呼出しを通常の方法で記述した場合
+に，関数呼出しによって呼出すコードが生成される(「次世代車載システム向
+けRTOS外部仕様書」を参照)．
+
+gensvc_atkツールの使い方の補足：
+gensvc_atkツールは，サービスコールインタフェース生成プログラムであり，
+サービスコール定義ファイル（svc.def）を読み込んで，ソフトウェア割込み
+によるサービスコール呼出すための一部ソースファイルを生成できる．以下の
+ファイルをカレントディレクトリに生成され，それぞれのディレクトリへの移
+動は手動で行うこと．
+
+実行例：
+	gensvc_atk ../kernel/svc.def
+	（svc.devの記述方法は，svc.dev参照）
+
+生成ファイル：
+	svc_table.c → kernel/ に置く
+	kernel_fncode.h → include/ に置く
+	svc_call.h → include/ に置く
+	tool_svc.h→ arch/gcc/ に置く
+
+10.13 スタックについて
+
+本カーネルのスタックには，信頼タスク（信頼OSアプリケーションに属するタ
+スク）用スタック，非信頼タスク（非信頼OSアプリケーションに属するタスク
+）用スタック，非信頼タスク用システムスタック，C2ISR用スタック，信頼フ
+ック（信頼OSアプリケーションに属するフック）用スタックと非信頼フック
+（非信頼OSアプリケーションに属するフック）用スタックがある．
+
+10.13.1 タスク
+
+本カーネルでは，非信頼タスクにおいて，非信頼タスク用スタックと非信頼タ
+スク用システムスタックの2本を確保される．基本的に自タスクの非信頼タス
+ク用スタックを使用するが，システムサービス及び信頼関数を呼出す際に非信
+頼タスク用システムスタックを使用する．
+
+一方，信頼タスクにおいて，タスク用スタックとシステム用スタックを合せて
+1本で確保される．
+
+10.13.2 C2ISR
+
+本カーネルは，機能レベル2しか対応していないため，信頼C2ISR（信頼OSアプ
+リケーションに属するC2ISR）しかない．C2ISR実行時に使用するスタックは，
+C2ISR用スタックを使用する．
+
+本カーネルでは，C2ISR用スタックとカーネル自身用スタックと後述信頼フッ
+クに対して，メモリ保護を行わないため，合せて1本のスタックを確保される．
+
+10.13.3 信頼フック
+
+本カーネルでは，信頼フック（システムフックを含む）実行時に，信頼フック
+用スタックを使用する．前節の理由で，C2ISR用スタックとカーネル自身用ス
+タックと合せて1本のスタックを確保される．
+
+10.13.4 非信頼フック
+
+本カーネルでは，非信頼フック実行時に，非信頼フック用スタックを使用す
+る．
+
+上記の説明のように，スタックを見積もる時に，スタック使用対象を確認し
+て，見積もればよい．また，各スタックのデフォルト値は，ターゲットによっ
+て，定義されているため，ターゲット依存設計書を参照する．
+
+10.14 本カーネル実装の機能レベル
+
+本カーネルは，メモリ保護の機能レベル2及び保護違反時処理の機能レベル2を
+実装している．機能レベルについては，「次世代車載システム向けRTOS外部仕
+様書」2.3.2機能レベルを参照する．
+
+10.15 タスク間でのスタック領域の共有
+
+本カーネルでは，同優先度基本タスクのスタック自動的に共有をサポートして
+いる．更に同じOSアプリケーションに所属するユーザスタックも1つのメモリ
+オブジェクトとして配置する．なので，タスクのユーザスタック領域が，同じ
+OSアプリケーションに属する他のタスクのユーザスタック領域と重なっていて
+も，エラーとならない．
+
+この機能を実装した制限として，CheckTaskMemoryAccessが正しくエラーフッ
+クを上がらない場合がある．具体的には，自タスクのスタック領域の境界をま
+たぐメモリ領域に対してCheckTaskMemoryAccessを発行した場合に，引数のエ
+ラーコードにE_OS_ILLEGAL_ADDRESSを上がるべきところを，エラーフックが上
+がらない場合がある．
+
+10.16 システムタイマの使用方法
+
+ATK2-SC1から変更なし．
+
+
+１１．参考情報
+
+11.1 利用条件と利用報告
+
+ATK2-SC1から変更なし．
+
+11.2 保証・適用性・サポート
+
+ATK2-SC1から変更なし．
+
+11.3 バグレポート
+
+ATK2-SC1から変更なし．
+
+11.4 ウェブサイト
+
+ATK2-SC1から変更なし．
+
+11.5 TOPPERSユーザーズメーリングリスト
+
+ATK2-SC1から変更なし．
+
+11.6 TOPPERSプロジェクトのメンバ向けのサービス
+
+ATK2-SC1から変更なし．
+
+11.7 TOPPERSプロジェクトへの参加
+
+ATK2-SC1から変更なし．
+
+
+
+以上
Index: /atk2-sc3_fl850f1l/doc/version.txt
===================================================================
--- /atk2-sc3_fl850f1l/doc/version.txt	(revision 117)
+++ /atk2-sc3_fl850f1l/doc/version.txt	(revision 117)
@@ -0,0 +1,455 @@
+
+		TOPPERS/ATK2-SC3
+        ＜変更履歴＞
+
+このドキュメントは，ATK2-SC3のRelease 1.0.0以降の変更履歴を，新しい方
+から順に記述したものである．
+
+----------------------------------------------------------------------
+TOPPERS ATK2
+    Toyohashi Open Platform for Embedded Real-Time Systems
+    Automotive Kernel Version 2
+
+Copyright (C) 2011-2015 by Center for Embedded Computing Systems
+            Graduate School of Information Science, Nagoya Univ., JAPAN
+Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+Copyright (C) 2011-2013 by Spansion LLC, USA
+Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+Copyright (C) 2011-2015 by Witz Corporation
+Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+
+上記著作権者は，以下の (1)〜(3)の条件を満たす場合に限り，本ドキュメ
+ント（本ドキュメントを改変したものを含む．以下同じ）を使用・複製・改
+変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+(1) 本ドキュメントを利用する場合には，上記の著作権表示，この利用条件
+    および下記の無保証規定が，そのままの形でドキュメント中に含まれて
+    いること．
+(2) 本ドキュメントを改変する場合には，ドキュメントを改変した旨の記述
+    を，改変後のドキュメント中に含めること．ただし，改変後のドキュメ
+    ントが，TOPPERSプロジェクト指定の開発成果物である場合には，この限
+    りではない．
+(3) 本ドキュメントの利用により直接的または間接的に生じるいかなる損害
+    からも，上記著作権者およびTOPPERSプロジェクトを免責すること．また，
+    本ドキュメントのユーザまたはエンドユーザからのいかなる理由に基づ
+    く請求からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+
+本ドキュメントは，AUTOSAR（AUTomotive Open System ARchitecture）仕様
+に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するものではな
+い．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利用する
+者に対して，AUTOSARパートナーになることを求めている．
+
+本ドキュメントは，無保証で提供されているものである．上記著作権者およ
+びTOPPERSプロジェクトは，本ドキュメントに関して，特定の使用目的に対す
+る適合性も含めて，いかなる保証も行わない．また，本ドキュメントの利用
+により直接的または間接的に生じたいかなる損害に関しても，その責任を負
+わない．
+
+$Id: version.txt 187 2015-06-25 03:39:04Z t_ishikawa $
+----------------------------------------------------------------------
+		ATK2-SC3
+		Release 1.3.1 から 1.3.2 への変更点
+		リリース日 2015-03-30
+
+○変更点のリスト
+
+・信頼関数をネストして呼び出して戻ったときに，信頼関数実行中にタスク
+　コンテキストとプロテクションフックで判定される問題を修正
+
+・t_syslog.hからincludeするターゲット依存部のヘッダファイルを
+　target_syslog.hに修正
+
+・OsMemoryModuleNameの多重度を1..*に修正
+
+・kernel.tfで，OsIsrInterruptSourceにDISABLEを指定した場合にエラー
+　となる問題を修正
+
+・kernel_mem.tfで，標準のdata/bsssec_inibを出力する処理を省略した
+　際に，kernel_mem.cへの変数の出力を抑制するように修正
+
+・タスクディスパッチ発生時のスタックモニタリングなどにおいて，
+　保護違反タスクを強制終了した場合にそのタスクが正常に終了されない
+　問題を修正
+
+・システムサービスIDの振り直し
+
+・ハードウェアカウンタの割込みがセットされなくなる問題を修正
+
+・トレースログを有効化する設定を非依存部のsample/Makefileに移動
+
+・その他細かい修正
+	- コメントの修正など
+    - arch/logtrace/tlv.tfを削除
+    - configureでシリアル通信の有効/無効を切換えられるように修正
+    - sample1の修正
+
+・バージョン番号の更新
+
+○ターゲット依存部の要修正箇所（1.3.1 → 1.3.2）
+
+・割込みの初期状態が割込み禁止の場合でも，x_config_intにおいて
+　割込み優先度設定をするように修正
+
+・信頼関数の入り口でのスタックモニタリング（trustedfunc_stack_check）
+　において，sp == sstk + tf_stksz の場合に E_OS_STACKINSUFFICIENT
+　となるように修正（マジックナンバー領域を考慮）
+
+・ターゲット依存部のヘッダファイル名がprc_syslogであった場合，
+　target_syslog.hにファイル名を修正
+
+・Platform_Types.h で，stdint.h をincludeするように修正
+	- INT64_MAXの定義をターゲット依存で追加する
+
+・トレースログを有効化する設定をターゲット依存部のMakefileから
+　削除
+
+・sample1のために，target_test.hで，sample1で使用するハードウェア
+　カウンタから約1秒でアラームを起動するために，約1秒に相当する
+　ハードウェアカウンタのティック値をCOUNTER_MIN_CYCLEマクロに定義
+
+----------------------------------------------------------------------
+		ATK2-SC3
+		Release 1.3.0 から 1.3.1 への変更点
+		リリース日 2014-09-30
+
+○変更点のリスト
+
+・タスクの強制処理時に，対象タスクが操作中のカウンタの状態を戻す処理を
+  追加
+
+・タスクの強制処理時に，readyキューの状態が不正となる問題を修正
+
+・OSAP強制処理時に，タスク強制処理の合間で割込み禁止状態を解除しないように
+  修正
+
+・TerminateApplication発行時のOSAPの状態をチェックする処理を，OS割込み
+  禁止したあとに実施するように修正
+ 
+・コンパイル時に警告が出る問題への対応
+	- 拡張エラーやエラーフック有効時のみ使用するローカル変数をマクロに
+	  より無効化するように修正
+	- set_event_action，activate_task_actionの返り値の型をStatusTypeとし，
+	  ercdを返すように修正（これらの関数を呼び出す際にはvoidでキャスト）
+	- syslog内部でconstにキャストしている部分を修正
+	- sampleのソースコードから，使用していない関数svc_perrorを削除
+
+・TNUM_QUEUEIOCが0の場合にioccb_tableをTOPPERS_EMPTY_LABELを用いて出力
+  するように修正
+
+・OsMemorySectionInitializeにNO_INITIALIZEを指定した場合に正常に処理されない
+  問題を修正
+
+・標準のdata/bsssec_inibを出力する処理を省略可能とした
+
+・その他細かい修正
+	- コメントの修正など
+
+・バージョン番号の更新
+
+○ターゲット依存部の要修正箇所（1.3.0 → 1.3.1）
+
+・ディスパッチャのアイドルループにおいて，callevelを変更しないように
+　修正
+
+・ターゲット依存部において，独自のdata/bsssec_inibを出力したい場合，
+  OMIT_STANDARD_DATA/BSSSECINIBマクロをそれぞれ定義したうえで，初期化
+  ブロック生成処理を，ターゲット依存部のtfで定義する
+
+----------------------------------------------------------------------
+			ATK2-SC3
+		Release 1.2.1 から 1.3.0 への変更点
+		リリース日 2014-03-12
+
+○変更点のリスト
+
+・ABREX導入
+	- AUTOSAR準拠のコンフィギュレーションファイルはXML形式であり，手動
+	  で作成，編集するのに不向きである．YAML形式で記述したコンフィギュ
+	  レーション情報をXML形式へ変換するツール(ABREX)を開発した
+
+・静的APIの廃止
+	- SC3において，ターゲット依存部で用意するハードウェアカウンタへのア
+	  クセス権設定が困難であることから，ターゲット依存部で用意するコン
+	  フィギュレーション情報は，YAML形式として，ツール(ABREX)を用いて
+	  XMLへ変換する手法を採用した
+	- これに伴い，静的APIの必要性が無くなったため，廃止した
+	- 静的APIに関連するファイルを削除
+
+・複数XML入力対応
+	- 複数のXMLに分けてコンフィギュレーション情報を管理する際，これまで
+	  はプリプロセッサの#include機能をarxmlファイルに使用して実現してい
+	  たが，#includeはXMLとして標準的に使用できない記述であり，他のツー
+	  ルで作成したarxmlでは使用されないものであるので，プリプロセッサ用
+	  の記述を廃止した
+	- プリプロセッサ廃止に伴い，ジェネレータ最新版（1.9.4）でサポートさ
+	  れた，XML複数入力機能を用いて，複数のXMLに分けてコンフィギュレー
+	  ション情報を同時に処理できるように対応した
+	- 編集用として各arxmlファイルに対応するyamlファイルを追加した
+
+・ハードウェアカウンタをターゲット依存部で標準サポートとする
+	- AUTOSARでは，指定した時間で周期的にタスクを起動する使用方法が一般
+	  的であるため，1つ以上のハードウェアカウンタが必須であることから，
+	  ハードウェアカウンタをターゲット依存部で用意することにした
+
+・システムタイマを標準サポートから外す
+	- システムタイマは，主にトレースログや性能評価等で時間を計測するため
+	  に使用することを想定しており，AUTOSARでは必須の機能ではないため，
+	  標準の機能から外した
+
+・廃止コンテナ情報の削除漏れ対応
+	- 不要なOsMemoryRegionAttributeパラメータ設定を削除
+
+・依存部でC1ISR本体のextern宣言を制御できるように変更
+	- 依存部でコンフィギュレーション関数(EXTERN_C1ISR_HANDLER)を実装する
+	  ことで，非依存部で出力するC1ISR本体のextern宣言を変更できるように
+	  対応した
+
+・OS割込み禁止解除漏れバグの修正
+	- GetAlarmBase
+	- AllowAccess
+	- TerminateApplication
+
+・ジェネレータ設定ファイル(kernel.ini)にオプション情報追加
+	- 未定義パラメータチェックオプション：CheckUnknownParameter
+
+・Rte_Type.hインクルード対応
+	- AUTOSARではシステム全体で使用するデータ型を統合して定義する仕組み
+	  があり，定義したデータ型は，RTEジェネレータによって，Rte_Type.hに
+	  出力される
+	- IOC等で，OSからシステム全体で使用するデータ型を使用するために，
+	  Rte_Os_Type.hから，Rte_Type.hをインクルードするよう対応した
+	- RTEジェネレータを使用しない場合や，システム全体で使用するデータ型
+	  を使用しない場合は，空のRte_Type.hを用意する必要がある
+
+・バージョン番号の更新
+
+○ターゲット依存部の要修正箇所（1.2.1 → 1.3.0）
+
+・静的APIに関連するファイル，設定を削除
+
+・複数XML入力対応
+	- 依存部で用意するarxmlファイルに対応するyamlファイルを追加
+	- 統合可能なarxmlファイルを1つにまとめた
+
+・ハードウェアカウンタ追加
+	- target_hw_counter.c|.h|.cfg|.arxml
+	- target_test.c|.h|.cfg|.arxmlで実現している場合，ハードウェアカウ
+	  ンタ部分のみ切り出す
+	- デフォルトでtarget_timer.oをビルド対象としていた箇所を
+	  target_hw_counter.oへ変更
+
+・システムタイマのオプション化
+	- Makefileに新設したENABLE_SYS_TIMERがtrueの場合のみ，システムタイ
+	  マ用オブジェクト(target_timer.o等)をビルド対象とする
+
+----------------------------------------------------------------------
+		ATK2-SC3
+		Release 1.2.0 から 1.2.1 への変更点
+		リリース日 2013-12-26
+
+○変更点のリスト
+
+・システムサービスにおける，ポインタ渡し引数のアラインチェックを追加
+	- ALIGNED_TYPEマクロは，OS以外でも使用できるように定義
+
+・NULLマクロの定義をCompiler_Cfg.hからkernel_impl.hへ移動
+	- AUTOSARでは，NULLポインタ用マクロとして，NULL_PTR(Compiler.h)を
+	  使用する
+
+・kernel.tfで，PLABELを定義するように変更
+	- ターゲットによって，MPUの各領域に設定する値をtfで出力するときに，
+	  データセクションについてはPLABELを使いたい場合がある
+
+・force_terminate_task()からcancel_nontrusted_hook()の呼び出しを削除
+	- call_protectionhk_main()内でforce_terminate_task()を呼び出すケー
+	  スはタスク動作時のみなので，cancel_nontrusted_hook()の呼び出しが
+	  不要である
+
+・割込み禁止中にGet系システムサービス呼び出せるように変更
+	- 対象となるシステムサービスリスト
+	  GetTaskID
+	  GetTaskState
+	  GetISRID
+	  GetApplicationID
+	  GetApplicationState
+
+・割込み禁止状態でStartOSを呼び出した場合における，割込み許可処理の修正
+	- DisableAllInterruptsまたはSuspendAllInterruptsによる割込み禁止状
+	  態で，StartOSを呼び出した場合，EnableAllInterruptsまたは
+	  ResumeAllInterruptsの発行と同等の処理を行なって，割込み許可状態へ
+	  遷移した上で，OSを起動するように修正
+
+・TerminateApplicationの割込み禁止状態への対応
+	- 割込み許可状態での，S_D_CHECK_STATEを呼び出しを，S_CHECK_STATEへ
+	  変更
+	- OS割込み禁止状態でリターンする処理を修正
+
+・OS内部関数名の変更
+	- get_reltick_api → get_reltick
+	- get_abstick_api → get_abstick
+
+・信頼/非信頼マクロ定義の追加
+	- TOPPERS_TRUSTED：関数呼出しによるシステムサービスの実行
+	- TOPPERS_NON_TRUSTED：ソフトウェア割込みによるシステムサービスの
+	                       実行
+	※TOPPERS_TRUSTED，TOPPERS_NON_TRUSTED両方定義時，コンパイルエラー
+
+・OS割込み禁止解除関数が2回呼ばれるバグの修正
+	- GetCounterValue
+	- GetElapsedValue
+
+・IOC初期化ブロックに送受信データのアラインサイズ情報を追加
+	- IOCの送受信時に，アラインサイズ情報を使用してアラインチェックを
+	  行う
+
+・その他細かい修正
+
+・バージョン番号の更新
+
+○ターゲット依存部の要修正箇所（1.2.0 → 1.2.1）
+
+・Compiler_Cfg.hファイルにalignof，ALIGNED_TYPEマクロを定義する
+	- 指定型のアラインのサイズを取得するalignofマクロの定義
+	  定義例：
+	  #ifndef alignof
+	  #define alignof(type)                                     \
+	      offsetof(struct { uint8 field1; type field2; }, field2)
+	  #endif
+
+	- 指定アドレスがアラインされているかをチェックするALIGNED_TYPE
+	  マクロの定義
+	  定義例：
+	  #ifndef ALIGNED_TYPE
+	  #define ALIGNED_TYPE(addr, type)                     \
+	      ((((uintptr)(addr)) & (alignof(type) - 1)) == 0U)
+	  #endif
+
+----------------------------------------------------------------------
+		ATK2-SC3
+		Release 1.1.0 から 1.2.0 への変更点
+		リリース日 2013-06-28
+
+○変更点のリスト
+
+・SC3FL2の機能拡張に伴い，OSAPの終了/再起動をサポート
+	- TerminateApplicationシステムサービス追加
+	- AllowAccessシステムサービス追加
+	- プロテクションフックの戻り値がPRO_TERMINATEAPPL_RESTART/
+	  PRO_TERMINATEAPPL時の処理追加
+
+・コンフィギュレーションにおいて，他のOSAPから非信頼OSAP所属カウンタへ
+  の関連付け禁止するように変更
+
+・AUTOSAR R.4.0.3仕様誤記対応
+	- E_OS_PROTECTION_FATAL定義を追加して，OS_E_PARAM_POINTERを
+	  E_OS_PROTECTION_FATALとして定義するように変更
+
+・XMLコンテナ定義誤記対応
+	- OsSchTblAccesingApplicationをOsSchTblAccessingApplicationへ変更
+	- OsScheduleTableStartValueの多重度を1から0..1へ変更
+
+・Std_Types.hにあるATK2共通定義の移動
+	- ATK2共通定義をStd_Types.hからCompiler_Cfg.hに移動
+
+・OS起動前に参照される可能性がある変数の初期化対応
+	- OS起動前に参照される可能性がある変数を定義時に0初期化して，BSSに
+	  配置するように実装変更
+	- OS起動前に参照される可能性がある変数がOS起動時に再度初期化しない
+	  ように変更
+
+・コンフィギュレーションにおけるバグ修正
+	- USE_TSKINICTXBの条件判定が逆だったので，修正
+	- 変数名の誤記を修正
+	- GENERATE_OSAPINIB_MPUINFOBに引数追加し，引数による処理に変更
+	- cfg2_out.tfにLNK_SECの情報を出力するように変更
+
+・MISRAルール対応により，一部ソースコードを修正した
+
+・その他細かい修正
+
+・バージョン番号の更新
+
+○ターゲット依存部の要修正箇所（1.1.0 → 1.2.0）
+
+・Std_Types.hにあったatk2共通定義の追加
+	- atk2共通定義をCompiler_Cfg.hに追加
+
+----------------------------------------------------------------------
+		ATK2-SC3
+		Release 1.0.1 から 1.1.0 への変更点
+		リリース日 2013-06-28
+
+○変更点のリスト
+
+・StartOSシステムサービスのエラーコード変更
+	- OS起動後のStartOS呼出しによって実行されるエラーフックに
+	  渡すエラーコードを，E_OS_CALLEVELからE_OS_ACCESSへ変更
+
+・IOC機能の追加
+	- OSAP間通信するための機能を新規追加
+
+・ジェネレータ新バージョン（1.9.2）対応
+	- ジェネレータ設定ファイル（kernel_xml.ini）において，
+	 「AUTOSARスキーマのファイル名」設定値の変更
+
+・多重割込み発生時のスタックモニタリング方式変更
+	- スタックポインタチェック方式から
+	  スタック残量チェック方式に変更
+
+・HRP2のメモリ保護ロジックの追従
+	- メモリオブジェクトのメモリ配置方法をHRP2に合わせた
+	- メモリリージョン指定仕様の変更
+
+・ドキュメントの説明追加及び誤記修正
+	- ポーティングガイド
+	- ユーザーズマニュアル
+
+・その他細かい修正
+
+・バージョン番号の更新
+
+○ターゲット依存部の要修正箇所（1.0.1 → 1.1.0）
+
+特になし
+
+----------------------------------------------------------------------
+		ATK2-SC3
+		Release 1.0.0 から 1.0.1 への変更点
+		リリース日 2013-03-29
+
+○変更点のリスト
+
+・MISRAルール対応により，一部ソースコードを修正した
+
+・ジェネレータ新バージョン（1.9.1）対応
+	- ジェネレータ設定ファイル（kernel_xml.ini）の誤記修正
+	- ジェネレータ設定ファイル（kernel_xml.ini）のコメント修正
+
+・その他の修正．
+	- シャットダウンフック中のCPU例外処理の実装漏れ対応
+
+・ドキュメントの充実．コメントの修正
+
+・バージョン番号の更新
+
+○ターゲット依存部の要修正箇所（1.0.0 → 1.0.1）
+
+(1)非信頼シャットダウンフックの実行中かを返す関数
+   is_running_nontrusted_shutdown_hookを
+   is_running_nontrusted_shtdwnhkに修正
+
+(2)MPU依存の信頼OSアプリケーションメモリチェック関数
+   prc_chkmemをprobe_trusted_osap_memに修正
+
+(3)指定領域が非信頼フック用スタックに含まれるかチェック関数
+   prc_chk_nthkstkをprobe_nthkstkに修正
+
+(4)ネストしたOS割込み禁止をクリアする関数x_clear_nested_lock_cntを
+   x_clear_nested_os_intに修正
+
+----------------------------------------------------------------------
Index: /atk2-sc3_fl850f1l/include/MemMap.h
===================================================================
--- /atk2-sc3_fl850f1l/include/MemMap.h	(revision 117)
+++ /atk2-sc3_fl850f1l/include/MemMap.h	(revision 117)
@@ -0,0 +1,61 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2011-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: MemMap.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+#ifndef TOPPERS_MEMMAP_H
+#define TOPPERS_MEMMAP_H
+
+
+#endif /* TOPPERS_MEMMAP_H */
Index: /atk2-sc3_fl850f1l/include/Os.h
===================================================================
--- /atk2-sc3_fl850f1l/include/Os.h	(revision 117)
+++ /atk2-sc3_fl850f1l/include/Os.h	(revision 117)
@@ -0,0 +1,655 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2011-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: Os.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		ATK2 OSヘッダファイル
+ *
+ *  ATK2がサポートするシステムサービスの宣言と，必要なデー
+ *  タ型，定数，マクロの定義を含むヘッダファイル
+ *
+ *  アセンブリ言語のソースファイルからこのファイルをインクルードする時
+ *  は，TOPPERS_MACRO_ONLYを定義しておく
+ *  これにより，マクロ定義以外を除くようになっている
+ *
+ *  このファイルをインクルードする前にインクルードしておくべきファイル
+ *  はない
+ */
+
+#ifndef TOPPERS_OS_H
+#define TOPPERS_OS_H
+
+#ifdef TOPPERS_TRUSTED
+#define TOPPERS_SVC_FUNCCALL
+#endif
+
+#if defined(TOPPERS_TRUSTED) && defined(TOPPERS_NON_TRUSTED)
+#error "both TOPPERS_TRUSTED and TOPPERS_NON_TRUSTED are defined!"
+#endif
+
+/*
+ *  共通のデータ型・定数・マクロ
+ */
+#include "Std_Types.h"
+#include "MemMap.h"
+#include "Rte_Os_Type.h"
+
+#if !defined(TOPPERS_CFG1_OUT) && !defined(OMIT_INCLUDE_OS_CFG)
+#include "Os_Cfg.h"
+#endif
+
+/*
+ *  ターゲット依存部
+ */
+#include "target_kernel.h"
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  データ型の定義
+ */
+
+/*
+ *  オブジェクト番号の型定義
+ */
+typedef uint8	TaskStateType;                  /* タスク状態 */
+typedef uint32	EventMaskType;                  /* イベントマスク */
+typedef uint32	TickType;                       /* カウンタ値（ティック）*/
+typedef uint32	AppModeType;                    /* アプリケーションモード */
+typedef uint8	OSServiceIdType;                /* システムサービスID */
+typedef uint8	ScheduleTableStatusType;        /* スケジュールテーブル状態 */
+typedef uint8	ProtectionReturnType;           /* プロテクションフックからの返り値 */
+typedef uintptr	MemorySizeType;                 /* メモリ領域サイズ */
+typedef uint8	ApplicationType;                /* OSアプリケーションID */
+typedef uint8	ObjectTypeType;                 /* OSオブジェクト種別 */
+typedef uint8	ApplicationStateType;           /* OSアプリケーション状態 */
+typedef uint8	AccessType;                     /* メモリ領域アクセス権 */
+typedef boolean	ObjectAccessType;               /* OSオブジェクトアクセス権 */
+typedef uint8	RestartType;                    /* OSAPリスタート属性 */
+
+typedef struct {
+	TickType	maxallowedvalue;                /* カウンタ指定の最大値 */
+	TickType	ticksperbase;                   /* OSでは使用せず，ユーザが自由に使用する値 */
+	TickType	mincycle;                       /* サイクル指定の最小値 */
+} AlarmBaseType;
+
+/*
+ *  最適化するため，依存部再定義できる型
+ */
+#ifndef OMIT_DATA_TYPE
+typedef uint32	TimeType;                       /* 時間 */
+typedef uint32	AlarmType;                      /* アラームID */
+typedef uint32	ResourceType;                   /* リソースID */
+typedef uint32	TaskType;                       /* タスクID */
+typedef uint32	ISRType;                        /* ISR ID */
+typedef uint32	CounterType;                    /* カウンタID */
+typedef uint32	ScheduleTableType;              /* スケジュールテーブルID */
+typedef float32	PhysicalTimeType;               /* （ティックから時間に換算用）時間 */
+typedef uint32	IocType;                        /* IOC ID */
+typedef uint8	SenderIdType;                   /* Sender ID */
+typedef uint32	TrustedFunctionIndexType;       /* Trusted Function Index */
+#endif /* OMIT_DATA_TYPE */
+
+typedef AlarmBaseType *				AlarmBaseRefType;
+typedef TaskType *					TaskRefType;
+typedef TaskStateType *				TaskStateRefType;
+typedef EventMaskType *				EventMaskRefType;
+typedef TickType *					TickRefType;
+typedef ScheduleTableStatusType *	ScheduleTableStatusRefType;
+typedef ApplicationStateType *		ApplicationStateRefType;
+typedef void *						MemoryStartAddressType;             /* メモリ領域先頭 */
+typedef void *						TrustedFunctionParameterRefType;    /* Trusted Function Parameter */
+
+/*
+ *  保護違反を起こした処理単位の型
+ */
+typedef uint8 FaultyContextType;
+
+/*
+ *  OSオブジェクト宣言用のマクロ
+ */
+#define DeclareTask(TaskIdentifier)
+#define DeclareResource(ResourceIdentifier)
+#define DeclareEvent(EventIdentifier)
+#define DeclareAlarm(AlarmIdentifier)
+
+/*
+ *  メインルーチン定義用のマクロ
+ */
+#define TASK(TaskName)		void TaskMain ## TaskName(void)
+#define ISR(ISRName)		void ISRMain ## ISRName(void)
+#ifndef C1ISR
+#define C1ISR(ISRName)	void C1ISRMain ## ISRName(void)
+#endif /* C1ISR */
+
+#define TRUSTEDFUNCTION(TrustedFunctionName, FunctionIndex, FunctionParams)	\
+	StatusType TrustedFunctionName(											\
+		TrustedFunctionIndexType FunctionIndex,								\
+		TrustedFunctionParameterRefType FunctionParams						\
+		)
+
+/*
+ *  メモリ領域確保のための型定義
+ */
+#ifndef TOPPERS_STK_T
+#define TOPPERS_STK_T	sintptr
+#endif /* TOPPERS_STK_T */
+typedef	TOPPERS_STK_T StackType;    /* スタック領域を確保するための型 */
+
+/*
+ *  システムサービスパラメータ取得のための定義
+ */
+typedef union {
+	TaskType						tskid;
+	TaskRefType						p_tskid;
+	TaskStateRefType				p_stat;
+	ResourceType					resid;
+	EventMaskType					mask;
+	EventMaskRefType				p_mask;
+	AlarmType						almid;
+	AlarmBaseRefType				p_info;
+	TickRefType						p_tick;
+	TickRefType						p_val;
+	TickRefType						p_eval;
+	TickType						incr;
+	TickType						cycle;
+	TickType						start;
+	AppModeType						mode;
+	CounterType						cntid;
+	ScheduleTableType				schtblid;
+	TickType						offset;
+	ScheduleTableType				schtblid_from;
+	ScheduleTableType				schtblid_to;
+	ScheduleTableStatusRefType		p_schtblstate;
+	StatusType						error;
+	ISRType							isrid;
+	IocType							iocid;
+	SenderIdType					senderid;
+	TrustedFunctionIndexType		tfnid;
+	TrustedFunctionParameterRefType	tfnpr;
+	MemoryStartAddressType			adr;
+	MemorySizeType					sz;
+	ApplicationType					applid;
+	ApplicationStateRefType			p_appstat;
+	RestartType						restartoption;
+} _ErrorHook_Par;
+
+
+/*
+ *  メモリ領域確保のためのマクロ
+ *
+ *  以下のTOPPERS_COUNT_SZとTOPPERS_ROUND_SZの定義は，unitが2の巾乗であ
+ *  ることを仮定している．
+ */
+#ifndef TOPPERS_COUNT_SZ
+#define TOPPERS_COUNT_SZ(sz, unit)	(((sz) + (unit) - (1U)) / (unit))
+#endif /* TOPPERS_COUNT_SZ */
+#ifndef TOPPERS_ROUND_SZ
+#define TOPPERS_ROUND_SZ(sz, unit)	(((sz) + (unit) - (1U)) & (~((unit) - (1U))))
+#endif /* TOPPERS_ROUND_SZ */
+
+#define COUNT_STK_T(sz)		(TOPPERS_COUNT_SZ((sz), sizeof(StackType)))
+#define ROUND_STK_T(sz)		(TOPPERS_ROUND_SZ((sz), sizeof(StackType)))
+
+/*
+ *  フックルーチン
+ */
+#ifdef CFG_USE_SYSTEM_ERRORHOOK
+extern void ErrorHook(StatusType Error);
+#endif /* CFG_USE_SYSTEM_ERRORHOOK */
+
+#ifdef CFG_USE_PRETASKHOOK
+extern void PreTaskHook(void);
+#endif /* CFG_USE_PRETASKHOOK */
+
+#ifdef CFG_USE_POSTTASKHOOK
+extern void PostTaskHook(void);
+#endif /* CFG_USE_POSTTASKHOOK */
+
+#ifdef CFG_USE_SYSTEM_STARTUPHOOK
+extern void StartupHook(void);
+#endif /* CFG_USE_SYSTEM_STARTUPHOOK */
+
+#ifdef CFG_USE_SYSTEM_SHUTDOWNHOOK
+extern void ShutdownHook(StatusType Error);
+#endif /* CFG_USE_SYSTEM_SHUTDOWNHOOK */
+
+#ifdef CFG_USE_PROTECTIONHOOK
+extern ProtectionReturnType ProtectionHook(StatusType FatalError);
+#endif /* CFG_USE_PROTECTIONHOOK */
+
+/*
+ *  ライブラリで提供するシステムサービス
+ */
+extern ObjectAccessType CheckObjectAccess(ApplicationType ApplID, ObjectTypeType ObjectType, ...);
+extern ApplicationType CheckObjectOwnership(ObjectTypeType ObjectType, ...);
+
+/*
+ *  ファイル名，行番号の参照用の変数
+ */
+extern const char8	*fatal_file_name;   /* ファイル名 */
+extern sint32		fatal_line_num;     /* 行番号 */
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+/*
+ *  システムサービス呼出しのための定義と宣言
+ */
+#include "kernel_fncode.h"              /* 機能コードの定義 */
+#include "svc_funccall.h"               /* 関数呼出しによる呼出し */
+#include "target_svc.h"                 /* ソフトウェア割込みによる呼出し */
+
+#if !defined(TOPPERS_CFG1_OUT) && !defined(OMIT_INCLUDE_OS_CFG) && !defined(OMIT_INCLUDE_OS_LCFG)
+#include "Os_Lcfg.h"
+#endif
+
+/*
+ *  OSのエラーコード
+ */
+#define E_OS_ACCESS							UINT_C(1)
+#define E_OS_CALLEVEL						UINT_C(2)
+#define E_OS_ID								UINT_C(3)
+#define E_OS_LIMIT							UINT_C(4)
+#define E_OS_NOFUNC							UINT_C(5)
+#define E_OS_RESOURCE						UINT_C(6)
+#define E_OS_STATE							UINT_C(7)
+#define E_OS_VALUE							UINT_C(8)
+#define E_OS_SERVICEID						UINT_C(9)
+#define E_OS_ILLEGAL_ADDRESS				UINT_C(10)
+#define E_OS_MISSINGEND						UINT_C(11)
+#define E_OS_DISABLEDINT					UINT_C(12)
+#define E_OS_STACKFAULT						UINT_C(13)
+#define E_OS_PROTECTION_MEMORY				UINT_C(14)
+#define E_OS_PROTECTION_TIME_TASK			UINT_C(15)
+#define E_OS_PROTECTION_TIME_ISR			UINT_C(16)
+#define E_OS_PROTECTION_ARRIVAL_TASK		UINT_C(17)
+#define E_OS_PROTECTION_ARRIVAL_ISR			UINT_C(18)
+#define E_OS_PROTECTION_LOCKED_RESOURCE		UINT_C(19)
+#define E_OS_PROTECTION_LOCKED_OSINT		UINT_C(20)
+#define E_OS_PROTECTION_LOCKED_ALLINT		UINT_C(21)
+#define E_OS_PROTECTION_EXCEPTION			UINT_C(22)
+#define E_OS_PROTECTION_FATAL				UINT_C(23)
+#define E_OS_MODE							UINT_C(24)
+#define E_OS_SHUTDOWN_FATAL					UINT_C(25)
+#define E_OS_PARAM_POINTER					UINT_C(26)
+#define E_OS_SYS_ASSERT_FATAL				UINT_C(27)
+#define E_OS_STACKINSUFFICIENT				UINT_C(28)
+
+/* AUTOSAR仕様R4.0.3との互換性考慮 */
+#define OS_E_PARAM_POINTER					E_OS_PARAM_POINTER
+
+#define ERRCODE_NUM							UINT_C(28) /* エラーコード数 */
+/*
+ *  IOCのエラーコード
+ */
+#define IOC_E_OK			UINT_C(0)
+#define IOC_E_NOK			UINT_C(1)
+#define IOC_E_LIMIT			UINT_C(130)
+#define IOC_E_LOST_DATA		UINT_C(64)
+#define IOC_E_NO_DATA		UINT_C(131)
+
+/*
+ *  その他の定数値
+ */
+#define UINT32_INVALID		UINT_C(0xffffffff)
+#define UINT8_INVALID		UINT_C(0xff)
+
+#define SUSPENDED			((TaskStateType) 0) /* 休止状態 */
+#define RUNNING				((TaskStateType) 1) /* 実行状態 */
+#define READY				((TaskStateType) 2) /* 実行可能状態 */
+#define WAITING				((TaskStateType) 3) /* 待ち状態 */
+
+/*
+ *  最適化するため，依存部での再定義が必要
+ */
+#ifndef OMIT_DATA_TYPE
+#define INVALID_TASK			((TaskType) UINT32_INVALID)
+#define INVALID_ISR				((ISRType) UINT32_INVALID)
+#endif /* OMIT_DATA_TYPE */
+#define INVALID_APPMODETYPE		((AppModeType) UINT32_INVALID)
+#define INVALID_OSAPPLICATION	((ApplicationType) UINT8_INVALID)
+
+/*
+ *  スケジュールテーブルのステータス定義
+ */
+#define SCHEDULETABLE_STOPPED					((ScheduleTableStatusType) 0x01)
+#define SCHEDULETABLE_NEXT						((ScheduleTableStatusType) 0x02)
+#define SCHEDULETABLE_WAITING					((ScheduleTableStatusType) 0x04)
+#define SCHEDULETABLE_RUNNING					((ScheduleTableStatusType) 0x08)
+#define SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS	((ScheduleTableStatusType) 0x10)
+
+/*
+ *  OSアプリケーションの状態
+ */
+#define APPLICATION_ACCESSIBLE	((ApplicationStateType) 0)  /* 利用可能状態 */
+#define APPLICATION_RESTARTING	((ApplicationStateType) 1)  /* 再起動状態 */
+#define APPLICATION_TERMINATED	((ApplicationStateType) 2)  /* アプリケーション終了状態 */
+
+/*
+ *  アクセス情報
+ */
+#define ACCESS		(TRUE)
+#define NO_ACCESS	(FALSE)
+
+/*
+ *  システムサービスID
+ */
+#define OSServiceId_GetApplicationID			((OSServiceIdType) 0x00)
+#define OSServiceId_GetISRID					((OSServiceIdType) 0x01)
+#define OSServiceId_CallTrustedFunction			((OSServiceIdType) 0x02)
+#define OSServiceId_CheckISRMemoryAccess		((OSServiceIdType) 0x03)
+#define OSServiceId_CheckTaskMemoryAccess		((OSServiceIdType) 0x04)
+#define OSServiceId_StartScheduleTableRel		((OSServiceIdType) 0x07)
+#define OSServiceId_StartScheduleTableAbs		((OSServiceIdType) 0x08)
+#define OSServiceId_StopScheduleTable			((OSServiceIdType) 0x09)
+#define OSServiceId_NextScheduleTable			((OSServiceIdType) 0x0a)
+#define OSServiceId_GetScheduleTableStatus		((OSServiceIdType) 0x0e)
+#define OSServiceId_IncrementCounter			((OSServiceIdType) 0x0f)
+#define OSServiceId_GetCounterValue				((OSServiceIdType) 0x10)
+#define OSServiceId_GetElapsedValue				((OSServiceIdType) 0x11)
+#define OSServiceId_TerminateApplication		((OSServiceIdType) 0x12)
+#define OSServiceId_AllowAccess					((OSServiceIdType) 0x13)
+#define OSServiceId_GetApplicationState			((OSServiceIdType) 0x14)
+#define IOCServiceId_IOC_Send					((OSServiceIdType) 0x1e)
+#define IOCServiceId_IOC_Write					((OSServiceIdType) 0x1f)
+#define IOCServiceId_IOC_SendGroup				((OSServiceIdType) 0x20)
+#define IOCServiceId_IOC_WriteGroup				((OSServiceIdType) 0x21)
+#define IOCServiceId_IOC_Receive				((OSServiceIdType) 0x22)
+#define IOCServiceId_IOC_Read					((OSServiceIdType) 0x23)
+#define IOCServiceId_IOC_ReceiveGroup			((OSServiceIdType) 0x24)
+#define IOCServiceId_IOC_ReadGroup				((OSServiceIdType) 0x25)
+#define IOCServiceId_IOC_EmptyQueue				((OSServiceIdType) 0x26)
+
+#define OSServiceId_EnableInterruptSource		((OSServiceIdType) 0xa0)
+#define OSServiceId_DisableInterruptSource		((OSServiceIdType) 0xa1)
+#define OSServiceId_CheckTaskAccess				((OSServiceIdType) 0xa2)
+#define OSServiceId_CheckISRAccess				((OSServiceIdType) 0xa3)
+#define OSServiceId_CheckAlarmAccess			((OSServiceIdType) 0xa4)
+#define OSServiceId_CheckResourceAccess			((OSServiceIdType) 0xa5)
+#define OSServiceId_CheckCounterAccess			((OSServiceIdType) 0xa6)
+#define OSServiceId_CheckScheduleTableAccess	((OSServiceIdType) 0xa7)
+#define OSServiceId_CheckTaskOwnership			((OSServiceIdType) 0xa9)
+#define OSServiceId_CheckISROwnership			((OSServiceIdType) 0xaa)
+#define OSServiceId_CheckAlarmOwnership			((OSServiceIdType) 0xab)
+#define OSServiceId_CheckCounterOwnership		((OSServiceIdType) 0xac)
+#define OSServiceId_CheckScheduleTableOwnership	((OSServiceIdType) 0xad)
+#define OSServiceId_TaskMissingEnd				((OSServiceIdType) 0xaf)
+#define OSServiceId_ISRMissingEnd				((OSServiceIdType) 0xb0)
+#define OSServiceId_HookMissingEnd				((OSServiceIdType) 0xb1)
+
+#define OSServiceId_ActivateTask				((OSServiceIdType) 0xe0)
+#define OSServiceId_TerminateTask				((OSServiceIdType) 0xe1)
+#define OSServiceId_ChainTask					((OSServiceIdType) 0xe2)
+#define OSServiceId_Schedule					((OSServiceIdType) 0xe3)
+#define OSServiceId_GetTaskID					((OSServiceIdType) 0xe4)
+#define OSServiceId_GetTaskState				((OSServiceIdType) 0xe5)
+#define OSServiceId_EnableAllInterrupts			((OSServiceIdType) 0xe6)
+#define OSServiceId_DisableAllInterrupts		((OSServiceIdType) 0xe7)
+#define OSServiceId_ResumeAllInterrupts			((OSServiceIdType) 0xe8)
+#define OSServiceId_SuspendAllInterrupts		((OSServiceIdType) 0xe9)
+#define OSServiceId_ResumeOSInterrupts			((OSServiceIdType) 0xea)
+#define OSServiceId_SuspendOSInterrupts			((OSServiceIdType) 0xeb)
+#define OSServiceId_GetResource					((OSServiceIdType) 0xec)
+#define OSServiceId_ReleaseResource				((OSServiceIdType) 0xed)
+#define OSServiceId_SetEvent					((OSServiceIdType) 0xee)
+#define OSServiceId_ClearEvent					((OSServiceIdType) 0xef)
+#define OSServiceId_GetEvent					((OSServiceIdType) 0xf0)
+#define OSServiceId_WaitEvent					((OSServiceIdType) 0xf1)
+#define OSServiceId_GetAlarmBase				((OSServiceIdType) 0xf2)
+#define OSServiceId_GetAlarm					((OSServiceIdType) 0xf3)
+#define OSServiceId_SetRelAlarm					((OSServiceIdType) 0xf4)
+#define OSServiceId_SetAbsAlarm					((OSServiceIdType) 0xf5)
+#define OSServiceId_CancelAlarm					((OSServiceIdType) 0xf6)
+#define OSServiceId_GetActiveApplicationMode	((OSServiceIdType) 0xf7)
+#define OSServiceId_StartOS						((OSServiceIdType) 0xf8)
+#define OSServiceId_ShutdownOS					((OSServiceIdType) 0xf9)
+
+#define OSServiceId_INVALID						((OSServiceIdType) 0xff)  /* 無効なシステムサービスID */
+
+/*
+ *  保護違反を起こした処理単位の定義
+ */
+#define FC_INVALID			UINT_C(0x00)        /* 保護違反を起こした処理単位が特定できない */
+#define FC_TASK				UINT_C(0x01)        /* 保護違反を起こした処理単位がタスク */
+#define FC_C2ISR			UINT_C(0x02)        /* 保護違反を起こした処理単位がC2ISR */
+#define FC_SYSTEM_HOOK		UINT_C(0x03)        /* 保護違反を起こした処理単位がシステム定義のフック */
+#define FC_OSAP_HOOK		UINT_C(0x04)        /* 保護違反を起こした処理単位がOSAP固有のフック */
+#define FC_TRUSTED_FUNC		UINT_C(0x05)        /* 保護違反を起こした処理単位が信頼関数 */
+
+/*
+ *  システムサービスパラメータ取得のための定義
+ */
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  エラーフックOFF時，サービスID取得とパラメータ取得もOFFになる
+ */
+#ifdef CFG_USE_ERRORHOOK
+
+#ifdef CFG_USE_GETSERVICEID
+extern OSServiceIdType	_errorhook_svcid;
+#endif /* CFG_USE_GETSERVICEID */
+
+#ifdef CFG_USE_PARAMETERACCESS
+extern _ErrorHook_Par	errorhook_par1;
+extern _ErrorHook_Par	errorhook_par2;
+extern _ErrorHook_Par	errorhook_par3;
+#endif /* CFG_USE_PARAMETERACCESS */
+
+#endif /* CFG_USE_ERRORHOOK */
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+/*
+ *  エラーフックOFF時，サービスID取得とパラメータ取得もOFFになる
+ */
+#ifdef CFG_USE_ERRORHOOK
+
+/*
+ *  マクロの定義
+ */
+#ifdef CFG_USE_GETSERVICEID
+#define OSErrorGetServiceId()				(_errorhook_svcid)
+#endif /* CFG_USE_GETSERVICEID */
+
+/*
+ *  エラーを引き起こしたシステムサービスID
+ */
+#ifdef CFG_USE_PARAMETERACCESS
+#define OSError_StartOS_Mode()									(errorhook_par1.mode)
+#define OSError_ActivateTask_TaskID()							(errorhook_par1.tskid)
+#define OSError_ChainTask_TaskID()								(errorhook_par1.tskid)
+#define OSError_GetTaskID_TaskID()								(errorhook_par1.p_tskid)
+#define OSError_GetTaskState_TaskID()							(errorhook_par1.tskid)
+#define OSError_GetTaskState_State()							(errorhook_par2.p_stat)
+#define OSError_GetResource_ResID()								(errorhook_par1.resid)
+#define OSError_ReleaseResource_ResID()							(errorhook_par1.resid)
+#define OSError_SetEvent_TaskID()								(errorhook_par1.tskid)
+#define OSError_SetEvent_Mask()									(errorhook_par2.mask)
+#define OSError_ClearEvent_Mask()								(errorhook_par1.mask)
+#define OSError_GetEvent_TaskID()								(errorhook_par1.tskid)
+#define OSError_GetEvent_Event()								(errorhook_par2.p_mask)
+#define OSError_WaitEvent_Mask()								(errorhook_par1.mask)
+#define OSError_GetAlarmBase_AlarmID()							(errorhook_par1.almid)
+#define OSError_GetAlarmBase_Info()								(errorhook_par2.p_info)
+#define OSError_GetAlarm_AlarmID()								(errorhook_par1.almid)
+#define OSError_GetAlarm_Tick()									(errorhook_par2.p_tick)
+#define OSError_SetRelAlarm_AlarmID()							(errorhook_par1.almid)
+#define OSError_SetRelAlarm_increment()							(errorhook_par2.incr)
+#define OSError_SetRelAlarm_cycle()								(errorhook_par3.cycle)
+#define OSError_SetAbsAlarm_AlarmID()							(errorhook_par1.almid)
+#define OSError_SetAbsAlarm_start()								(errorhook_par2.start)
+#define OSError_SetAbsAlarm_cycle()								(errorhook_par3.cycle)
+#define OSError_CancelAlarm_AlarmID()							(errorhook_par1.almid)
+#define OSError_IncrementCounter_CounterID()					(errorhook_par1.cntid)
+#define OSError_GetCounterValue_CounterID()						(errorhook_par1.cntid)
+#define OSError_GetCounterValue_Value()							(errorhook_par2.p_val)
+#define OSError_GetElapsedValue_CounterID()						(errorhook_par1.cntid)
+#define OSError_GetElapsedValue_Value()							(errorhook_par2.p_val)
+#define OSError_GetElapsedValue_ElapsedValue()					(errorhook_par3.p_eval)
+#define OSError_StartScheduleTableRel_ScheduleTableID()			(errorhook_par1.schtblid)
+#define OSError_StartScheduleTableRel_Offset()					(errorhook_par2.offset)
+#define OSError_StartScheduleTableAbs_ScheduleTableID()			(errorhook_par1.schtblid)
+#define OSError_StartScheduleTableAbs_Start()					(errorhook_par2.start)
+#define OSError_StopScheduleTable_ScheduleTableID()				(errorhook_par1.schtblid)
+#define OSError_NextScheduleTable_ScheduleTableID_From()		(errorhook_par1.schtblid_from)
+#define OSError_NextScheduleTable_ScheduleTableID_To()			(errorhook_par2.schtblid_to)
+#define OSError_GetScheduleTableStatus_ScheduleTableID()		(errorhook_par1.schtblid)
+#define OSError_GetScheduleTableStatus_ScheduleStatus()			(errorhook_par2.p_schtblstate)
+#define OSError_ShutdownOS_Error()								(errorhook_par1.error)
+#define OSError_DisableInterruptSource_DisableISR()				(errorhook_par1.isrid)
+#define OSError_EnableInterruptSource_EnableISR()				(errorhook_par1.isrid)
+#define OSError_GetApplicationState_Application()				(errorhook_par1.applid)
+#define OSError_GetApplicationState_Value()						(errorhook_par2.p_appstat)
+#define OSError_CallTrustedFunction_FunctionIndex()				(errorhook_par1.tfnid)
+#define OSError_CallTrustedFunction_FunctionParams()			(errorhook_par2.tfnpr)
+#define OSError_CheckISRMemoryAccess_ISRID()					(errorhook_par1.isrid)
+#define OSError_CheckISRMemoryAccess_Address()					(errorhook_par2.adr)
+#define OSError_CheckISRMemoryAccess_Size()						(errorhook_par3.sz)
+#define OSError_CheckTaskMemoryAccess_TaskID()					(errorhook_par1.tskid)
+#define OSError_CheckTaskMemoryAccess_Address()					(errorhook_par2.adr)
+#define OSError_CheckTaskMemoryAccess_Size()					(errorhook_par3.sz)
+#define OSError_CheckTaskAccess_ApplID()						(errorhook_par1.applid)
+#define OSError_CheckTaskAccess_TaskID()						(errorhook_par2.tskid)
+#define OSError_CheckISRAccess_ApplID()							(errorhook_par1.applid)
+#define OSError_CheckISRAccess_ISRID()							(errorhook_par2.isrid)
+#define OSError_CheckAlarmAccess_ApplID()						(errorhook_par1.applid)
+#define OSError_CheckAlarmAccess_AlarmID()						(errorhook_par2.almid)
+#define OSError_CheckResourceAccess_ApplID()					(errorhook_par1.applid)
+#define OSError_CheckResourceAccess_ResID()						(errorhook_par2.resid)
+#define OSError_CheckCounterAccess_ApplID()						(errorhook_par1.applid)
+#define OSError_CheckCounterAccess_CounterID()					(errorhook_par2.cntid)
+#define OSError_CheckScheduleTableAccess_ApplID()				(errorhook_par1.applid)
+#define OSError_CheckScheduleTableAccess_ScheduleTableID()		(errorhook_par2.schtblid)
+#define OSError_CheckTaskOwnership_TaskID()						(errorhook_par1.tskid)
+#define OSError_CheckISROwnership_ISRID()						(errorhook_par1.isrid)
+#define OSError_CheckAlarmOwnership_AlarmID()					(errorhook_par1.almid)
+#define OSError_CheckCounterOwnership_CounterID()				(errorhook_par1.cntid)
+#define OSError_CheckScheduleTableOwnership_ScheduleTableID()	(errorhook_par1.schtblid)
+#define OSError_IocSend_IocId()									(errorhook_par1.iocid)
+#define OSError_IocSend_SenderId()								(errorhook_par2.senderid)
+#define OSError_IocWrite_IocId()								(errorhook_par1.iocid)
+#define OSError_IocWrite_SenderId()								(errorhook_par2.senderid)
+#define OSError_IocReceive_IocId()								(errorhook_par1.iocid)
+#define OSError_IocRead_IocId()									(errorhook_par1.iocid)
+#define OSError_IocEmptyQueue_IocId()							(errorhook_par1.iocid)
+#define OSError_TerminateApplication_Application()				(errorhook_par1.applid)
+#define OSError_TerminateApplication_RestartOption()			(errorhook_par2.restartoption)
+
+#endif /* CFG_USE_PARAMETERACCESS */
+
+#endif /* CFG_USE_ERRORHOOK */
+
+/*
+ *  プロテクションフック関係のマクロ
+ */
+#define PRO_IGNORE					UINT_C(0x00)
+#define PRO_SHUTDOWN				UINT_C(0x01)
+#define PRO_TERMINATETASKISR		UINT_C(0x02)
+#define PRO_TERMINATEAPPL			UINT_C(0x03)
+#define PRO_TERMINATEAPPL_RESTART	UINT_C(0x04)
+
+/*
+ *  OSAP終了/再起動関係のマクロ
+ */
+#define NO_RESTART					UINT_C(0x00)
+#define RESTART						UINT_C(0x01)
+
+/*
+ *  メモリアクセス権限チェックのためのマクロ
+ */
+
+/*
+ *  メモリ領域 権限
+ */
+
+#define AP_NoAccess		UINT_C(0x0)
+#define AP_Executable	UINT_C(0x1)
+#define AP_Readable		UINT_C(0x2)
+#define AP_Writable		UINT_C(0x4)
+#define AP_StackSpace	UINT_C(0x8)
+
+/*
+ *  アクセスチェックマクロ
+ */
+#define OSMEMORY_IS_READABLE(AccessType)	((AccessType) & AP_Readable)
+#define OSMEMORY_IS_WRITEABLE(AccessType)	((AccessType) & AP_Writable)
+#define OSMEMORY_IS_EXECUTABLE(AccessType)	((AccessType) & AP_Executable)
+#define OSMEMORY_IS_STACKSPACE(AccessType)	((AccessType) & AP_StackSpace)
+
+/*
+ *   オブジェクトタイプ
+ */
+#define OBJECT_TASK				UINT_C(0x01)
+#define OBJECT_ISR				UINT_C(0x02)
+#define OBJECT_ALARM			UINT_C(0x03)
+#define OBJECT_RESOURCE			UINT_C(0x04)
+#define OBJECT_COUNTER			UINT_C(0x05)
+#define OBJECT_SCHEDULETABLE	UINT_C(0x06)
+
+/*
+ *  バージョン情報
+ */
+#define OS_SW_MAJOR_VERSION				UINT_C(1)   /* サプライヤーバージョン */
+#define OS_SW_MINOR_VERSION				UINT_C(3)
+#define OS_SW_PATCH_VERSION				UINT_C(2)
+
+#define OS_AR_RELEASE_MAJOR_VERSION		UINT_C(4)   /* AUTOSARリリースバージョン */
+#define OS_AR_RELEASE_MINOR_VERSION		UINT_C(0)
+#define OS_AR_RELEASE_REVISION_VERSION	UINT_C(3)
+
+#define TKERNEL_NAME	"TOPPERS/ATK2-SC3"  /* カーネル名称（独自仕様） */
+
+#endif /* TOPPERS_OS_H */
Index: /atk2-sc3_fl850f1l/include/Rte_Os_Type.h
===================================================================
--- /atk2-sc3_fl850f1l/include/Rte_Os_Type.h	(revision 117)
+++ /atk2-sc3_fl850f1l/include/Rte_Os_Type.h	(revision 117)
@@ -0,0 +1,67 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2011-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: Rte_Os_Type.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+#ifndef TOPPERS_RTE_OS_TYPE_H
+#define TOPPERS_RTE_OS_TYPE_H
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/* RTEジェネレータにより生成される */
+#include "Rte_Type.h"
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_RTE_OS_TYPE_H */
Index: /atk2-sc3_fl850f1l/include/Std_Types.h
===================================================================
--- /atk2-sc3_fl850f1l/include/Std_Types.h	(revision 117)
+++ /atk2-sc3_fl850f1l/include/Std_Types.h	(revision 117)
@@ -0,0 +1,118 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2011-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: Std_Types.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		AUTOSAR仕様共通規定のデータ型・定数・マクロ
+ *
+ *  このヘッダファイルは，AUTOSAR仕様共通規定のデータ型・定数・マクロ
+ *  の定義を含むヘッダファイル
+ *  AUTOSAR仕様との互換性を必要とするアプリケーションがインクルード
+ *  することを想定している
+ *  ATK2のコンパイルに必要な共通の定義も本ヘッダにて定義する
+ *
+ *  アセンブリ言語のソースファイルからこのファイルをインクルードする時
+ *  は，TOPPERS_MACRO_ONLYを定義しておく
+ *  これにより，マクロ定義以外を除くようになっている
+ */
+
+#ifndef TOPPERS_STD_TYPES_H
+#define TOPPERS_STD_TYPES_H
+
+#include "Platform_Types.h"
+#include "Compiler.h"
+
+/*
+ *  Type definitions
+ */
+#ifndef TOPPERS_MACRO_ONLY
+
+typedef uint8 Std_ReturnType;
+
+typedef struct {
+	uint16	vendorID;
+	uint16	moduleID;
+	uint8	sw_major_version;
+	uint8	sw_minor_version;
+	uint8	sw_patch_version;
+} Std_VersionInfoType;
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+/*
+ *  Symbol definitions
+ */
+#ifndef STATUSTYPEDEFINED
+#define STATUSTYPEDEFINED
+
+#ifndef TOPPERS_MACRO_ONLY
+typedef unsigned char StatusType;   /* OSEK compliance */
+#endif /* TOPPERS_MACRO_ONLY */
+
+#define E_OK		UINT_C(0x00)
+#endif /* STATUSTYPEDEFINED */
+
+#define E_NOT_OK	UINT_C(0x01)
+
+#define STD_HIGH	UINT_C(1)   /* Physical state 5V or 3.3V */
+#define STD_LOW		UINT_C(0)   /* Physical state 0V         */
+
+#define STD_ACTIVE	UINT_C(1)   /* Logical state active */
+#define STD_IDLE	UINT_C(0)   /* Logical state idle   */
+
+#define STD_ON		UINT_C(1)
+#define STD_OFF		UINT_C(0)
+
+#endif /* TOPPERS_STD_TYPES_H */
Index: /atk2-sc3_fl850f1l/include/histogram.h
===================================================================
--- /atk2-sc3_fl850f1l/include/histogram.h	(revision 117)
+++ /atk2-sc3_fl850f1l/include/histogram.h	(revision 117)
@@ -0,0 +1,86 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2006-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: histogram.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		実行時間分布集計モジュール
+ */
+
+#ifndef TOPPERS_HISTOGRAM_H
+#define TOPPERS_HISTOGRAM_H
+
+#include "t_syslog.h"
+
+/*
+ *  実行時間分布計測の初期化
+ */
+extern boolean init_hist(ObjectIDType histid, uint32 maxval, uint32 *histarea);
+
+/*
+ *  実行時間計測の開始
+ */
+extern boolean begin_measure(ObjectIDType histid);
+
+/*
+ *  実行時間計測の終了
+ */
+extern boolean end_measure(ObjectIDType histid);
+
+/*
+ *  実行時間分布計測の表示
+ */
+extern boolean print_hist(ObjectIDType histid);
+
+#endif /* TOPPERS_HISTOGRAM_H */
Index: /atk2-sc3_fl850f1l/include/kernel_fncode.h
===================================================================
--- /atk2-sc3_fl850f1l/include/kernel_fncode.h	(revision 117)
+++ /atk2-sc3_fl850f1l/include/kernel_fncode.h	(revision 117)
@@ -0,0 +1,126 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2011-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: kernel_fncode.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*  This file is generated from svc.def by gensvc_atk. */
+
+#ifndef TOPPERS_KERNEL_FNCODE_H
+#define TOPPERS_KERNEL_FNCODE_H
+
+#define TMAX_SVCID	(61 + TARGET_SVC_NUM)
+
+#define TFN_STARTOS						UINT_C(0)
+#define TFN_SHUTDOWNOS					UINT_C(1)
+#define TFN_ACTIVATETASK				UINT_C(2)
+#define TFN_TERMINATETASK				UINT_C(3)
+#define TFN_CHAINTASK					UINT_C(4)
+#define TFN_SCHEDULE					UINT_C(5)
+#define TFN_GETTASKID					UINT_C(6)
+#define TFN_GETTASKSTATE				UINT_C(7)
+#define TFN_ENABLEALLINTERRUPTS			UINT_C(8)
+#define TFN_DISABLEALLINTERRUPTS		UINT_C(9)
+#define TFN_RESUMEALLINTERRUPTS			UINT_C(10)
+#define TFN_SUSPENDALLINTERRUPTS		UINT_C(11)
+#define TFN_RESUMEOSINTERRUPTS			UINT_C(12)
+#define TFN_SUSPENDOSINTERRUPTS			UINT_C(13)
+#define TFN_GETISRID					UINT_C(14)
+#define TFN_DISABLEINTERRUPTSOURCE		UINT_C(15)
+#define TFN_ENABLEINTERRUPTSOURCE		UINT_C(16)
+#define TFN_GETRESOURCE					UINT_C(17)
+#define TFN_RELEASERESOURCE				UINT_C(18)
+#define TFN_SETEVENT					UINT_C(19)
+#define TFN_CLEAREVENT					UINT_C(20)
+#define TFN_GETEVENT					UINT_C(21)
+#define TFN_WAITEVENT					UINT_C(22)
+#define TFN_GETALARMBASE				UINT_C(23)
+#define TFN_GETALARM					UINT_C(24)
+#define TFN_SETRELALARM					UINT_C(25)
+#define TFN_SETABSALARM					UINT_C(26)
+#define TFN_CANCELALARM					UINT_C(27)
+#define TFN_INCREMENTCOUNTER			UINT_C(28)
+#define TFN_GETCOUNTERVALUE				UINT_C(29)
+#define TFN_GETELAPSEDVALUE				UINT_C(30)
+#define TFN_CHECKISRMEMORYACCESS		UINT_C(31)
+#define TFN_CHECKTASKMEMORYACCESS		UINT_C(32)
+#define TFN_CHECKTASKACCESS				UINT_C(33)
+#define TFN_CHECKISRACCESS				UINT_C(34)
+#define TFN_CHECKALARMACCESS			UINT_C(35)
+#define TFN_CHECKRESOURCEACCESS			UINT_C(36)
+#define TFN_CHECKCOUNTERACCESS			UINT_C(37)
+#define TFN_CHECKSCHEDULETABLEACCESS	UINT_C(38)
+#define TFN_CHECKTASKOWNERSHIP			UINT_C(39)
+#define TFN_CHECKISROWNERSHIP			UINT_C(40)
+#define TFN_CHECKALARMOWNERSHIP			UINT_C(41)
+#define TFN_CHECKCOUNTEROWNERSHIP		UINT_C(42)
+#define TFN_CHECKSCHEDULETABLEOWNERSHIP	UINT_C(43)
+#define TFN_GETAPPLICATIONID			UINT_C(44)
+#define TFN_CALLTRUSTEDFUNCTION			UINT_C(45)
+#define TFN_GETAPPLICATIONSTATE			UINT_C(46)
+#define TFN_GETACTIVEAPPLICATIONMODE	UINT_C(47)
+#define TFN_STARTSCHEDULETABLEREL		UINT_C(48)
+#define TFN_STARTSCHEDULETABLEABS		UINT_C(49)
+#define TFN_STOPSCHEDULETABLE			UINT_C(50)
+#define TFN_NEXTSCHEDULETABLE			UINT_C(51)
+#define TFN_GETSCHEDULETABLESTATUS		UINT_C(52)
+#define TFN_GETFAULTYCONTEXT			UINT_C(53)
+#define TFN_IOC_SEND_GENERIC			UINT_C(54)
+#define TFN_IOC_WRITE_GENERIC			UINT_C(55)
+#define TFN_IOC_RECEIVE_GENERIC			UINT_C(56)
+#define TFN_IOC_READ_GENERIC			UINT_C(57)
+#define TFN_IOC_EMPTY_QUEUE_GENERIC		UINT_C(58)
+#define TFN_ALLOWACCESS					UINT_C(59)
+#define TFN_TERMINATEAPPLICATION		UINT_C(60)
+
+#endif /* TOPPERS_KERNEL_FNCODE_H */
Index: /atk2-sc3_fl850f1l/include/log_output.h
===================================================================
--- /atk2-sc3_fl850f1l/include/log_output.h	(revision 117)
+++ /atk2-sc3_fl850f1l/include/log_output.h	(revision 117)
@@ -0,0 +1,110 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: log_output.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		システムログのフォーマット出力
+ */
+
+#ifndef TOPPERS_LOG_OUTPUT_H
+#define TOPPERS_LOG_OUTPUT_H
+
+#include "t_syslog.h"
+
+/*
+ *  文字列整形出力
+ *
+ *  formatで指定されるフォーマット記述とp_argsで指定される引数列から作
+ *  成したメッセージを，1文字出力関数putcを用いて出力する
+ */
+extern void	_syslog_syslog_printf(const char8 *format, const uintptr *p_args,
+								  void (*outputc)(char8 c));
+
+/*
+ *  ログ情報の出力
+ *
+ *  p_syslogで指定されるログ情報を文字列に整形し，1文字出力関数putcを用
+ *  いて出力する
+ */
+extern void _syslog_syslog_print(const SYSLOG *p_syslog, void (*outputc)(char8 c));
+
+LOCAL_INLINE void
+syslog_printf(const char8 *format, const uintptr *p_args, void (*outputc)(char8 c))
+{
+	KERLIBSLG_PRM prm;
+
+	prm.index = KERLIBSLG_ID_SYSLOG_PRINTF;
+	prm.p_format = format;
+	prm.p_args = p_args;
+	prm.outputc = outputc;
+	KernelLibrarySyslog(&prm);
+	return;
+}
+
+LOCAL_INLINE void
+syslog_print(const SYSLOG *p_syslog, void (*outputc)(char8 c))
+{
+	KERLIBSLG_PRM prm;
+
+	prm.index = KERLIBSLG_ID_SYSLOG_PRINT;
+	prm.p_const_syslog = p_syslog;
+	prm.outputc = outputc;
+	KernelLibrarySyslog(&prm);
+	return;
+}
+
+#endif /* TOPPERS_LOG_OUTPUT_H */
Index: /atk2-sc3_fl850f1l/include/queue.h
===================================================================
--- /atk2-sc3_fl850f1l/include/queue.h	(revision 117)
+++ /atk2-sc3_fl850f1l/include/queue.h	(revision 117)
@@ -0,0 +1,149 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2006-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: queue.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		キュー操作ライブラリ
+ *
+ *  このキュー操作ライブラリでは，キューヘッダを含むリング構造のダブル
+ *  リンクキューを扱う．具体的には，キューヘッダの次エントリはキューの
+ *  先頭のエントリ，前エントリはキューの末尾のエントリとする．また，キ
+ *  ューの先頭のエントリの前エントリと，キューの末尾のエントリの次エン
+ *  トリは，キューヘッダとする．空のキューは，次エントリ，前エントリと
+ *  も自分自身を指すキューヘッダであらわす
+ */
+
+#ifndef	TOPPERS_QUEUE_H
+#define	TOPPERS_QUEUE_H
+
+/*
+ *  キューのデータ構造の定義
+ */
+typedef struct queue {
+	struct queue	*p_next;    /* 次エントリへのポインタ */
+	struct queue	*p_prev;    /* 前エントリへのポインタ */
+} QUEUE;
+
+/*
+ *  キューの初期化
+ */
+LOCAL_INLINE void
+queue_initialize(QUEUE *p_queue)
+{
+	p_queue->p_prev = p_queue;
+	p_queue->p_next = p_queue;
+}
+
+/*
+ *  キューの前エントリへの挿入
+ */
+LOCAL_INLINE void
+queue_insert_prev(QUEUE *p_queue, QUEUE *p_entry)
+{
+	p_entry->p_prev = p_queue->p_prev;
+	p_entry->p_next = p_queue;
+	p_queue->p_prev->p_next = p_entry;
+	p_queue->p_prev = p_entry;
+}
+
+/*
+ *  キューの後エントリへの挿入
+ */
+LOCAL_INLINE void
+queue_insert_next(QUEUE *p_queue, QUEUE *p_entry)
+{
+	p_entry->p_next = p_queue->p_next;
+	p_entry->p_prev = p_queue;
+	p_queue->p_next->p_prev = p_entry;
+	p_queue->p_next = p_entry;
+}
+
+/*
+ *  エントリの削除
+ */
+LOCAL_INLINE void
+queue_delete(QUEUE *p_entry)
+{
+	p_entry->p_prev->p_next = p_entry->p_next;
+	p_entry->p_next->p_prev = p_entry->p_prev;
+}
+
+/*
+ *  キューの次エントリの取出し
+ */
+LOCAL_INLINE QUEUE *
+queue_delete_next(QUEUE *p_queue)
+{
+	QUEUE *p_entry;
+
+	ASSERT(p_queue->p_next != p_queue);
+	p_entry = p_queue->p_next;
+	p_queue->p_next = p_entry->p_next;
+	p_entry->p_next->p_prev = p_queue;
+	return(p_entry);
+}
+
+/*
+ *  キューが空かどうかのチェック
+ */
+LOCAL_INLINE boolean
+queue_empty(const QUEUE *p_queue)
+{
+	return(p_queue->p_next == p_queue);
+}
+
+#endif /* TOPPERS_QUEUE_H */
Index: /atk2-sc3_fl850f1l/include/svc_funccall.h
===================================================================
--- /atk2-sc3_fl850f1l/include/svc_funccall.h	(revision 117)
+++ /atk2-sc3_fl850f1l/include/svc_funccall.h	(revision 117)
@@ -0,0 +1,193 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2011-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: svc_funccall.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*  This file is generated from svc.def by gensvc_atk. */
+
+#ifndef TOPPERS_SVC_FUNCCALL_H
+#define TOPPERS_SVC_FUNCCALL_H
+
+#define SVC_CALL(system_service)	_kernel_ ## system_service
+
+#ifdef TOPPERS_SVC_FUNCCALL
+#define StartOS						_kernel_StartOS
+#define ShutdownOS					_kernel_ShutdownOS
+#define ActivateTask				_kernel_ActivateTask
+#define TerminateTask				_kernel_TerminateTask
+#define ChainTask					_kernel_ChainTask
+#define Schedule					_kernel_Schedule
+#define GetTaskID					_kernel_GetTaskID
+#define GetTaskState				_kernel_GetTaskState
+#define EnableAllInterrupts			_kernel_EnableAllInterrupts
+#define DisableAllInterrupts		_kernel_DisableAllInterrupts
+#define ResumeAllInterrupts			_kernel_ResumeAllInterrupts
+#define SuspendAllInterrupts		_kernel_SuspendAllInterrupts
+#define ResumeOSInterrupts			_kernel_ResumeOSInterrupts
+#define SuspendOSInterrupts			_kernel_SuspendOSInterrupts
+#define GetISRID					_kernel_GetISRID
+#define DisableInterruptSource		_kernel_DisableInterruptSource
+#define EnableInterruptSource		_kernel_EnableInterruptSource
+#define GetResource					_kernel_GetResource
+#define ReleaseResource				_kernel_ReleaseResource
+#define SetEvent					_kernel_SetEvent
+#define ClearEvent					_kernel_ClearEvent
+#define GetEvent					_kernel_GetEvent
+#define WaitEvent					_kernel_WaitEvent
+#define GetAlarmBase				_kernel_GetAlarmBase
+#define GetAlarm					_kernel_GetAlarm
+#define SetRelAlarm					_kernel_SetRelAlarm
+#define SetAbsAlarm					_kernel_SetAbsAlarm
+#define CancelAlarm					_kernel_CancelAlarm
+#define IncrementCounter			_kernel_IncrementCounter
+#define GetCounterValue				_kernel_GetCounterValue
+#define GetElapsedValue				_kernel_GetElapsedValue
+#define CheckISRMemoryAccess		_kernel_CheckISRMemoryAccess
+#define CheckTaskMemoryAccess		_kernel_CheckTaskMemoryAccess
+#define CheckTaskAccess				_kernel_CheckTaskAccess
+#define CheckISRAccess				_kernel_CheckISRAccess
+#define CheckAlarmAccess			_kernel_CheckAlarmAccess
+#define CheckResourceAccess			_kernel_CheckResourceAccess
+#define CheckCounterAccess			_kernel_CheckCounterAccess
+#define CheckScheduleTableAccess	_kernel_CheckScheduleTableAccess
+#define CheckTaskOwnership			_kernel_CheckTaskOwnership
+#define CheckISROwnership			_kernel_CheckISROwnership
+#define CheckAlarmOwnership			_kernel_CheckAlarmOwnership
+#define CheckCounterOwnership		_kernel_CheckCounterOwnership
+#define CheckScheduleTableOwnership	_kernel_CheckScheduleTableOwnership
+#define GetApplicationID			_kernel_GetApplicationID
+#define CallTrustedFunction			_kernel_CallTrustedFunction
+#define GetApplicationState			_kernel_GetApplicationState
+#define GetActiveApplicationMode	_kernel_GetActiveApplicationMode
+#define StartScheduleTableRel		_kernel_StartScheduleTableRel
+#define StartScheduleTableAbs		_kernel_StartScheduleTableAbs
+#define StopScheduleTable			_kernel_StopScheduleTable
+#define NextScheduleTable			_kernel_NextScheduleTable
+#define GetScheduleTableStatus		_kernel_GetScheduleTableStatus
+#define GetFaultyContext			_kernel_GetFaultyContext
+#define ioc_send_generic			_kernel_ioc_send_generic
+#define ioc_write_generic			_kernel_ioc_write_generic
+#define ioc_receive_generic			_kernel_ioc_receive_generic
+#define ioc_read_generic			_kernel_ioc_read_generic
+#define ioc_empty_queue_generic		_kernel_ioc_empty_queue_generic
+#define AllowAccess					_kernel_AllowAccess
+#define TerminateApplication		_kernel_TerminateApplication
+#endif
+
+#ifndef TOPPERS_MACRO_ONLY
+
+extern void _kernel_StartOS(AppModeType Mode);
+extern void _kernel_ShutdownOS(StatusType Error);
+extern StatusType _kernel_ActivateTask(TaskType TaskID);
+extern StatusType _kernel_TerminateTask(void);
+extern StatusType _kernel_ChainTask(TaskType TaskID);
+extern StatusType _kernel_Schedule(void);
+extern StatusType _kernel_GetTaskID(TaskRefType TaskID);
+extern StatusType _kernel_GetTaskState(TaskType TaskID, TaskStateRefType State);
+extern void _kernel_EnableAllInterrupts(void);
+extern void _kernel_DisableAllInterrupts(void);
+extern void _kernel_ResumeAllInterrupts(void);
+extern void _kernel_SuspendAllInterrupts(void);
+extern void _kernel_ResumeOSInterrupts(void);
+extern void _kernel_SuspendOSInterrupts(void);
+extern ISRType _kernel_GetISRID(void);
+extern StatusType _kernel_DisableInterruptSource(ISRType DisableISR);
+extern StatusType _kernel_EnableInterruptSource(ISRType EnableISR);
+extern StatusType _kernel_GetResource(ResourceType ResID);
+extern StatusType _kernel_ReleaseResource(ResourceType ResID);
+extern StatusType _kernel_SetEvent(TaskType TaskID, EventMaskType Mask);
+extern StatusType _kernel_ClearEvent(EventMaskType Mask);
+extern StatusType _kernel_GetEvent(TaskType TaskID, EventMaskRefType Event);
+extern StatusType _kernel_WaitEvent(EventMaskType Mask);
+extern StatusType _kernel_GetAlarmBase(AlarmType AlarmID, AlarmBaseRefType Info);
+extern StatusType _kernel_GetAlarm(AlarmType AlarmID, TickRefType Tick);
+extern StatusType _kernel_SetRelAlarm(AlarmType AlarmID, TickType increment, TickType cycle);
+extern StatusType _kernel_SetAbsAlarm(AlarmType AlarmID, TickType start, TickType cycle);
+extern StatusType _kernel_CancelAlarm(AlarmType AlarmID);
+extern StatusType _kernel_IncrementCounter(CounterType CounterID);
+extern StatusType _kernel_GetCounterValue(CounterType CounterID, TickRefType Value);
+extern StatusType _kernel_GetElapsedValue(CounterType CounterID, TickRefType Value, TickRefType ElapsedValue);
+extern AccessType _kernel_CheckISRMemoryAccess(ISRType ISRID, MemoryStartAddressType Address, MemorySizeType Size);
+extern AccessType _kernel_CheckTaskMemoryAccess(TaskType TaskID, MemoryStartAddressType Address, MemorySizeType Size);
+extern ObjectAccessType _kernel_CheckTaskAccess(ApplicationType ApplID, TaskType TaskID);
+extern ObjectAccessType _kernel_CheckISRAccess(ApplicationType ApplID, ISRType ISRID);
+extern ObjectAccessType _kernel_CheckAlarmAccess(ApplicationType ApplID, AlarmType AlarmID);
+extern ObjectAccessType _kernel_CheckResourceAccess(ApplicationType ApplID, ResourceType ResID);
+extern ObjectAccessType _kernel_CheckCounterAccess(ApplicationType ApplID, CounterType CounterID);
+extern ObjectAccessType _kernel_CheckScheduleTableAccess(ApplicationType ApplID, ScheduleTableType ScheduleTableID);
+extern ApplicationType _kernel_CheckTaskOwnership(TaskType TaskID);
+extern ApplicationType _kernel_CheckISROwnership(ISRType ISRID);
+extern ApplicationType _kernel_CheckAlarmOwnership(AlarmType AlarmID);
+extern ApplicationType _kernel_CheckCounterOwnership(CounterType CounterID);
+extern ApplicationType _kernel_CheckScheduleTableOwnership(ScheduleTableType ScheduleTableID);
+extern ApplicationType _kernel_GetApplicationID(void);
+extern StatusType _kernel_CallTrustedFunction(TrustedFunctionIndexType FunctionIndex, TrustedFunctionParameterRefType FunctionParams);
+extern StatusType _kernel_GetApplicationState(ApplicationType Application, ApplicationStateRefType Value);
+extern AppModeType _kernel_GetActiveApplicationMode(void);
+extern StatusType _kernel_StartScheduleTableRel(ScheduleTableType ScheduleTableID, TickType Offset);
+extern StatusType _kernel_StartScheduleTableAbs(ScheduleTableType ScheduleTableID, TickType Start);
+extern StatusType _kernel_StopScheduleTable(ScheduleTableType ScheduleTableID);
+extern StatusType _kernel_NextScheduleTable(ScheduleTableType ScheduleTableID_From, ScheduleTableType ScheduleTableID_To);
+extern StatusType _kernel_GetScheduleTableStatus(ScheduleTableType ScheduleTableID, ScheduleTableStatusRefType ScheduleStatus);
+extern FaultyContextType _kernel_GetFaultyContext(void);
+extern Std_ReturnType _kernel_ioc_send_generic(IocType IocWrapperId, const void *in);
+extern Std_ReturnType _kernel_ioc_write_generic(IocType IocWrapperId, const void *in);
+extern Std_ReturnType _kernel_ioc_receive_generic(IocType IocId, void *out);
+extern Std_ReturnType _kernel_ioc_read_generic(IocType IocId, void *out);
+extern Std_ReturnType _kernel_ioc_empty_queue_generic(IocType IocId);
+extern StatusType _kernel_AllowAccess(void);
+extern StatusType _kernel_TerminateApplication(ApplicationType Application, RestartType RestartOption);
+
+#endif /* TOPPERS_MACRO_ONLY */
+#endif /* TOPPERS_SVC_FUNCCALL */
Index: /atk2-sc3_fl850f1l/include/t_stdlib.h
===================================================================
--- /atk2-sc3_fl850f1l/include/t_stdlib.h	(revision 117)
+++ /atk2-sc3_fl850f1l/include/t_stdlib.h	(revision 117)
@@ -0,0 +1,94 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: t_stdlib.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		基本的なライブラリ関数
+ */
+
+#ifndef TOPPERS_T_STDLIB_H
+#define TOPPERS_T_STDLIB_H
+
+/*
+ *  エラーメッセージ文字列を返す関数
+ *
+ *  ercdで指定されたエラーコードのメインエラーコードの名称（E_OS_ID，
+ *  E_OS_VALUEなど）の文字列を返す関数
+ */
+extern const char8 *atk2_strerror(StatusType ercd);
+
+/*
+ *  エラーメッセージ文字列を返す関数(IOC)
+ */
+extern const char8 *atk2_ioc_strerror(StatusType ercd);
+
+/*
+ *  エラーメッセージのログ出力
+ *
+ *  サービスコールがエラーを返した場合に，そのファイル名，行番号，メイ
+ *  ンエラーコード等を表示するための関数
+ */
+extern void	t_perror(uint32 prio, const char8 *file, sint32 line,
+					 const char8 *expr, StatusType ercd);
+
+/*
+ *  エラーメッセージのログ出力(IOC)
+ */
+extern void	t_ioc_perror(uint32 prio, const char8 *file, sint32 line,
+						 const char8 *expr, StatusType ercd);
+
+#endif /* TOPPERS_T_STDLIB_H */
Index: /atk2-sc3_fl850f1l/include/t_syslog.h
===================================================================
--- /atk2-sc3_fl850f1l/include/t_syslog.h	(revision 117)
+++ /atk2-sc3_fl850f1l/include/t_syslog.h	(revision 117)
@@ -0,0 +1,497 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: t_syslog.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		システムログ出力を行うための定義
+ *
+ *  システムログサービスは，システムのログ情報を出力するためのサービス
+ *  である
+ *  カーネルからのログ情報の出力にも用いるため，内部で待ち状態にはいる
+ *  ことはない
+ *
+ *  ログ情報は，カーネル内のログバッファに書き込むか，低レベルの文字出
+ *  力関数を用いて出力する
+ *  どちらを使うかは，拡張サービスコールで切り換えることができる
+ *
+ *  ログバッファ領域がオーバフローした場合には，古いログ情報を消して上
+ *  書きする
+ *
+ *  アセンブリ言語のソースファイルからこのファイルをインクルードする時
+ *  は，TOPPERS_MACRO_ONLYを定義しておくことで，マクロ定義以外の記述を
+ *  除くことができる
+ */
+
+#ifndef TOPPERS_T_SYSLOG_H
+#define TOPPERS_T_SYSLOG_H
+
+#include "Os.h"
+
+/*
+ *  ログ情報の種別の定義
+ */
+#define LOG_TYPE_COMMENT	UINT_C(0x01)    /* コメント */
+#define LOG_TYPE_ASSERT		UINT_C(0x02)    /* アサーションの失敗 */
+
+#define LOG_TYPE_ISR			UINT_C(0x11)    /* 割込みサービスルーチン */
+#define LOG_TYPE_ALM			UINT_C(0x12)    /* アラームハンドラ */
+#define LOG_TYPE_TSKSTAT		UINT_C(0x13)    /* タスク状態変化 */
+#define LOG_TYPE_DSP			UINT_C(0x14)    /* ディスパッチャ */
+#define LOG_TYPE_SVC			UINT_C(0x15)    /* サービスコール */
+#define LOG_TYPE_SCHTBL			UINT_C(0x16)    /* スケジュールテーブル満了処理 */
+#define LOG_TYPE_STAHOOK		UINT_C(0x17)    /* スタートアップフック */
+#define LOG_TYPE_ERRHOOK		UINT_C(0x18)    /* エラーフック */
+#define LOG_TYPE_PROHOOK		UINT_C(0x19)    /* プロテクションフック */
+#define LOG_TYPE_SHUTHOOK		UINT_C(0x1a)    /* シャットダウンフック */
+#define LOG_TYPE_STAHOOKOSAP	UINT_C(0x1b)    /* OSAPスタートアップフック */
+#define LOG_TYPE_ERRHOOKOSAP	UINT_C(0x1c)    /* OSAPエラーフック */
+#define LOG_TYPE_SHUTHOOKOSAP	UINT_C(0x1d)    /* OSAPシャットダウンフック */
+#define LOG_TYPE_TFN			UINT_C(0x1e)    /* 信頼関数 */
+
+#define LOG_ENTER			UINT_C(0x00)    /* 入口／開始 */
+#define LOG_LEAVE			UINT_C(0x80)    /* 出口／終了 */
+
+/*
+ *  ログ情報の重要度の定義
+ */
+#define LOG_EMERG			UINT_C(0)       /* シャットダウンに値するエラー */
+#define LOG_ALERT			UINT_C(1)
+#define LOG_CRIT			UINT_C(2)
+#define LOG_ERROR			UINT_C(3)       /* システムエラー */
+#define LOG_WARNING			UINT_C(4)       /* 警告メッセージ */
+#define LOG_NOTICE			UINT_C(5)
+#define LOG_INFO			UINT_C(6)
+#define LOG_DEBUG			UINT_C(7)       /* デバッグ用メッセージ */
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  ログ出力用データ型
+ */
+
+typedef uint32 ObjectIDType;                /* オブジェクトのID番号 */
+
+/*
+ *  ログ情報のデータ構造
+ */
+
+#define TMAX_LOGINFO	UINT_C(6)
+
+typedef struct {
+	uint32				logtype;                /* ログ情報の種別 */
+	SystemTimeMsType	logtim;                 /* ログ時刻 */
+	uintptr				loginfo[TMAX_LOGINFO];  /* その他のログ情報 */
+} SYSLOG;
+
+/*
+ *  ログ情報の重要度のビットマップを作るためのマクロ
+ */
+#define LOG_MASK(prio)		(1U << (prio))
+#define LOG_UPTO(prio)		((((uint32) 1) << ((prio) + 1U)) - 1U)
+
+#include "target_syslog.h"
+
+#ifndef TOPPERS_OMIT_SYSLOG
+
+/*
+ *  信頼OSアプリケーション用システムログ機能の初期化
+ */
+extern void _syslog_syslog_initialize(void);
+
+/*
+ *  信頼OSアプリケーション用出力すべきログ情報の重要度の設定
+ */
+extern StatusType _syslog_syslog_msk_log(uint32 lowmask);
+
+/*
+ *  信頼OSアプリケーション用ログ情報を出力するためのライブラリ関数
+ */
+extern StatusType _syslog_syslog_wri_log(uint32 prio, const SYSLOG *p_syslog);
+
+/*
+ *  非信頼OSアプリケーション用ログ情報を出力するためのライブラリ関数
+ */
+extern StatusType syslog_wri_log(uint32 prio, const SYSLOG *p_syslog);
+
+#define KERLIBSLG_ID_SYSLOG_INITIALIZE		UINT_C(0)
+#define KERLIBSLG_ID_SYSLOG_WRI_LOG			UINT_C(1)
+#define KERLIBSLG_ID_SYSLOG_MSK_LOG			UINT_C(3)
+#define KERLIBSLG_ID_SYSLOG_PRINTF			UINT_C(5)
+#define KERLIBSLG_ID_SYSLOG_PRINT			UINT_C(6)
+
+typedef struct kernel_library_syslog_parameter {
+	uint8			index;
+	uint32			prio;
+	const SYSLOG	*p_const_syslog;
+	uint32			lowmask;
+	const char8		*p_format;
+	const uintptr	*p_args;
+	void (*outputc)(char8 c);
+	StatusType return_er;
+} KERLIBSLG_PRM;
+
+LOCAL_INLINE void
+_syslog_1(uint32 prio, uint32 type, uintptr arg1)
+{
+	SYSLOG syslog;
+
+	syslog.logtype = type;
+	syslog.loginfo[0] = arg1;
+	(void) syslog_wri_log(prio, &syslog);
+}
+
+LOCAL_INLINE void
+_syslog_2(uint32 prio, uint32 type, uintptr arg1, uintptr arg2)
+{
+	SYSLOG syslog;
+
+	syslog.logtype = type;
+	syslog.loginfo[0] = arg1;
+	syslog.loginfo[1] = arg2;
+	(void) syslog_wri_log(prio, &syslog);
+}
+
+LOCAL_INLINE void
+_syslog_3(uint32 prio, uint32 type, uintptr arg1, uintptr arg2,
+		  uintptr arg3)
+{
+	SYSLOG syslog;
+
+	syslog.logtype = type;
+	syslog.loginfo[0] = arg1;
+	syslog.loginfo[1] = arg2;
+	syslog.loginfo[2] = arg3;
+	(void) syslog_wri_log(prio, &syslog);
+}
+
+LOCAL_INLINE void
+_syslog_4(uint32 prio, uint32 type, uintptr arg1, uintptr arg2,
+		  uintptr arg3, uintptr arg4)
+{
+	SYSLOG syslog;
+
+	syslog.logtype = type;
+	syslog.loginfo[0] = arg1;
+	syslog.loginfo[1] = arg2;
+	syslog.loginfo[2] = arg3;
+	syslog.loginfo[3] = arg4;
+	(void) syslog_wri_log(prio, &syslog);
+}
+
+LOCAL_INLINE void
+_syslog_5(uint32 prio, uint32 type, uintptr arg1, uintptr arg2,
+		  uintptr arg3, uintptr arg4, uintptr arg5)
+{
+	SYSLOG syslog;
+
+	syslog.logtype = type;
+	syslog.loginfo[0] = arg1;
+	syslog.loginfo[1] = arg2;
+	syslog.loginfo[2] = arg3;
+	syslog.loginfo[3] = arg4;
+	syslog.loginfo[4] = arg5;
+	(void) syslog_wri_log(prio, &syslog);
+}
+
+LOCAL_INLINE void
+_syslog_6(uint32 prio, uint32 type, uintptr arg1, uintptr arg2,
+		  uintptr arg3, uintptr arg4, uintptr arg5, uintptr arg6)
+{
+	SYSLOG syslog;
+
+	syslog.logtype = type;
+	syslog.loginfo[0] = arg1;
+	syslog.loginfo[1] = arg2;
+	syslog.loginfo[2] = arg3;
+	syslog.loginfo[3] = arg4;
+	syslog.loginfo[4] = arg5;
+	syslog.loginfo[5] = arg6;
+	(void) syslog_wri_log(prio, &syslog);
+}
+
+/*
+ *	ログ情報を出力するためのライブラリ関数
+ *	信頼関数を経由せず直接呼出しを行う
+ */
+LOCAL_INLINE void
+_syslog_syslog_1(uint32 prio, uint32 type, uintptr arg1)
+{
+	SYSLOG syslog;
+
+	syslog.logtype = type;
+	syslog.loginfo[0] = arg1;
+	(void) _syslog_syslog_wri_log(prio, &syslog);
+}
+
+LOCAL_INLINE void
+_syslog_syslog_2(uint32 prio, uint32 type, uintptr arg1, uintptr arg2)
+{
+	SYSLOG syslog;
+
+	syslog.logtype = type;
+	syslog.loginfo[0] = arg1;
+	syslog.loginfo[1] = arg2;
+	(void) _syslog_syslog_wri_log(prio, &syslog);
+}
+
+LOCAL_INLINE void
+_syslog_syslog_3(uint32 prio, uint32 type, uintptr arg1, uintptr arg2,
+				 uintptr arg3)
+{
+	SYSLOG syslog;
+
+	syslog.logtype = type;
+	syslog.loginfo[0] = arg1;
+	syslog.loginfo[1] = arg2;
+	syslog.loginfo[2] = arg3;
+	(void) _syslog_syslog_wri_log(prio, &syslog);
+}
+
+LOCAL_INLINE void
+_syslog_syslog_4(uint32 prio, uint32 type, uintptr arg1, uintptr arg2,
+				 uintptr arg3, uintptr arg4)
+{
+	SYSLOG syslog;
+
+	syslog.logtype = type;
+	syslog.loginfo[0] = arg1;
+	syslog.loginfo[1] = arg2;
+	syslog.loginfo[2] = arg3;
+	syslog.loginfo[3] = arg4;
+	(void) _syslog_syslog_wri_log(prio, &syslog);
+}
+
+
+LOCAL_INLINE void
+_syslog_syslog_5(uint32 prio, uint32 type, uintptr arg1, uintptr arg2,
+				 uintptr arg3, uintptr arg4, uintptr arg5)
+{
+	SYSLOG syslog;
+
+	syslog.logtype = type;
+	syslog.loginfo[0] = arg1;
+	syslog.loginfo[1] = arg2;
+	syslog.loginfo[2] = arg3;
+	syslog.loginfo[3] = arg4;
+	syslog.loginfo[4] = arg5;
+	(void) _syslog_syslog_wri_log(prio, &syslog);
+}
+
+LOCAL_INLINE void
+_syslog_syslog_6(uint32 prio, uint32 type, uintptr arg1, uintptr arg2,
+				 uintptr arg3, uintptr arg4, uintptr arg5, uintptr arg6)
+{
+	SYSLOG syslog;
+
+	syslog.logtype = type;
+	syslog.loginfo[0] = arg1;
+	syslog.loginfo[1] = arg2;
+	syslog.loginfo[2] = arg3;
+	syslog.loginfo[3] = arg4;
+	syslog.loginfo[4] = arg5;
+	syslog.loginfo[5] = arg6;
+	(void) _syslog_syslog_wri_log(prio, &syslog);
+}
+
+/*
+ *  ログ情報（コメント）を出力するためのライブラリ関数（vasyslog.c）
+ */
+extern void syslog(uint32 prio, const char8 *format, ...);
+
+#else /* TOPPERS_OMIT_SYSLOG */
+
+/*
+ *  システムログ出力を抑止する場合
+ */
+
+LOCAL_INLINE void
+_syslog_1(uint32 prio, uint32 type, uintptr arg1)
+{
+}
+
+LOCAL_INLINE void
+_syslog_2(uint32 prio, uint32 type, uintptr arg1, uintptr arg2)
+{
+}
+
+LOCAL_INLINE void
+_syslog_3(uint32 prio, uint32 type, uintptr arg1, uintptr arg2,
+		  uintptr arg3)
+{
+}
+
+LOCAL_INLINE void
+_syslog_4(uint32 prio, uint32 type, uintptr arg1, uintptr arg2,
+		  uintptr arg3, uintptr arg4)
+{
+}
+
+LOCAL_INLINE void
+_syslog_5(uint32 prio, uint32 type, uintptr arg1, uintptr arg2,
+		  uintptr arg3, uintptr arg4, uintptr arg5)
+{
+}
+
+LOCAL_INLINE void
+_syslog_6(uint32 prio, uint32 type, uintptr arg1, uintptr arg2,
+		  uintptr arg3, uintptr arg4, uintptr arg5, uintptr arg6)
+{
+}
+
+LOCAL_INLINE void
+_syslog_syslog_1(uint32 prio, uint32 type, uintptr arg1)
+{
+}
+
+LOCAL_INLINE void
+_syslog_syslog_2(uint32 prio, uint32 type, uintptr arg1, uintptr arg2)
+{
+}
+
+LOCAL_INLINE void
+_syslog_syslog_3(uint32 prio, uint32 type, uintptr arg1, uintptr arg2,
+				 uintptr arg3)
+{
+}
+
+LOCAL_INLINE void
+_syslog_syslog_4(uint32 prio, uint32 type, uintptr arg1, uintptr arg2,
+				 uintptr arg3, uintptr arg4)
+{
+}
+
+LOCAL_INLINE void
+_syslog_syslog_5(uint32 prio, uint32 type, uintptr arg1, uintptr arg2,
+				 uintptr arg3, uintptr arg4, uintptr arg5)
+{
+}
+
+LOCAL_INLINE void
+_syslog_syslog_6(uint32 prio, uint32 type, uintptr arg1, uintptr arg2,
+				 uintptr arg3, uintptr arg4, uintptr arg5, uintptr arg6)
+{
+}
+
+LOCAL_INLINE void
+syslog(uint32 prio, const char8 *format, ...)
+{
+}
+
+#endif /* TOPPERS_OMIT_SYSLOG */
+
+/*
+ *  ログ情報（コメント）を出力するためのマクロ
+ *
+ *  formatおよび後続の引数から作成したメッセージを，重大度prioでログ情
+ *  報として出力するためのマクロ
+ *  arg1〜argnはuintptr型にキャストするため，uintptr型に型変換できる任
+ *  意の型でよい
+ */
+
+#define syslog_0(prio, format) \
+	_syslog_1((prio), LOG_TYPE_COMMENT, (uintptr) (format))
+
+#define syslog_1(prio, format, arg1)						\
+	_syslog_2((prio), LOG_TYPE_COMMENT, (uintptr) (format),	\
+			  (uintptr) (arg1))
+
+#define syslog_2(prio, format, arg1, arg2)					\
+	_syslog_3((prio), LOG_TYPE_COMMENT, (uintptr) (format),	\
+			  (uintptr) (arg1), (uintptr) (arg2))
+
+#define syslog_3(prio, format, arg1, arg2, arg3)			\
+	_syslog_4((prio), LOG_TYPE_COMMENT, (uintptr) (format),	\
+			  (uintptr) (arg1), (uintptr) (arg2), (uintptr) (arg3))
+
+#define syslog_4(prio, format, arg1, arg2, arg3, arg4)				\
+	_syslog_5((prio), LOG_TYPE_COMMENT, (uintptr) (format),			\
+			  (uintptr) (arg1), (uintptr) (arg2), (uintptr) (arg3),	\
+			  (uintptr) (arg4))
+
+#define syslog_5(prio, format, arg1, arg2, arg3, arg4, arg5)		\
+	_syslog_6((prio), LOG_TYPE_COMMENT, (uintptr) (format),			\
+			  (uintptr) (arg1), (uintptr) (arg2), (uintptr) (arg3),	\
+			  (uintptr) (arg4), (uintptr) (arg5))
+
+#define syslog_syslog_0(prio, format) \
+	_syslog_syslog_1((prio), LOG_TYPE_COMMENT, (uintptr) (format))
+
+#define syslog_syslog_1(prio, format, arg1)						   \
+	_syslog_syslog_2((prio), LOG_TYPE_COMMENT, (uintptr) (format), \
+					 (uintptr) (arg1))
+
+#define syslog_syslog_2(prio, format, arg1, arg2)				   \
+	_syslog_syslog_3((prio), LOG_TYPE_COMMENT, (uintptr) (format), \
+					 (uintptr) (arg1), (uintptr) (arg2))
+
+#define syslog_syslog_3(prio, format, arg1, arg2, arg3)			   \
+	_syslog_syslog_4((prio), LOG_TYPE_COMMENT, (uintptr) (format), \
+					 (uintptr) (arg1), (uintptr) (arg2), (uintptr) (arg3))
+
+#define syslog_syslog_4(prio, format, arg1, arg2, arg3, arg4)			   \
+	_syslog_syslog_5((prio), LOG_TYPE_COMMENT, (uintptr) (format),		   \
+					 (uintptr) (arg1), (uintptr) (arg2), (uintptr) (arg3), \
+					 (uintptr) (arg4))
+
+#define syslog_syslog_5(prio, format, arg1, arg2, arg3, arg4, arg5)		   \
+	_syslog_syslog_6((prio), LOG_TYPE_COMMENT, (uintptr) (format),		   \
+					 (uintptr) (arg1), (uintptr) (arg2), (uintptr) (arg3), \
+					 (uintptr) (arg4), (uintptr) (arg5))
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_T_SYSLOG_H */
Index: /atk2-sc3_fl850f1l/kernel/Makefile.kernel
===================================================================
--- /atk2-sc3_fl850f1l/kernel/Makefile.kernel	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/Makefile.kernel	(revision 117)
@@ -0,0 +1,143 @@
+#
+#  TOPPERS ATK2
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+#      Automotive Kernel Version 2
+#
+#  Copyright (C) 2008-2015 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+#  Copyright (C) 2011-2013 by Spansion LLC, USA
+#  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+#  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+#  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+#  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+#  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+#  Copyright (C) 2011-2015 by Witz Corporation
+#  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+#  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+#  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+#
+#  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+#  $Id: Makefile.kernel 187 2015-06-25 03:39:04Z t_ishikawa $
+#
+
+#
+#		カーネルのファイル構成の定義
+#
+
+#
+#  1つのソースファイルから複数のオブジェクトファイルを生成するように作
+#  成されたソースファイルのリスト
+#
+KERNEL_FCSRCS = counter_manage.c counter.c alarm.c osctl_manage.c osctl.c task_manage.c \
+		event.c resource.c interrupt_manage.c interrupt.c task.c scheduletable.c \
+		osap.c memory.c ioc_manage.c svc_table.c
+
+#
+#  各ソースファイルから生成されるオブジェクトファイルのリスト
+#
+osctl = internal_call_errorhook.o call_posttaskhook.o call_pretaskhook.o init_stack_magic_region.o \
+		cancel_shutdown_hook.o callevel_chk_shutdown.o call_protectionhk_main.o internal_shutdownos.o \
+		internal_call_shtdwnhk.o
+
+osctl_manage = StartOS.o GetActiveApplicationMode.o ShutdownOS.o GetFaultyContext.o
+
+
+task = task_initialize.o search_schedtsk.o make_runnable.o make_non_runnable.o \
+		make_active.o preempt.o suspend.o release_taskresources.o cancel_taskcounters.o exit_task.o \
+		remove_task_from_queue.o suspend_ready_task.o force_terminate_task.o force_term_osap_task.o
+
+event = SetEvent.o ClearEvent.o GetEvent.o WaitEvent.o set_event_action.o
+
+task_manage = ActivateTask.o TerminateTask.o ChainTask.o Schedule.o GetTaskID.o \
+		GetTaskState.o activate_task_action.o
+
+resource = resource_initialize.o GetResource.o ReleaseResource.o
+
+counter = insert_cnt_expr_que.o delete_cnt_expr_que.o counter_initialize.o \
+		counter_terminate.o get_reltick.o get_abstick.o expire_process.o force_term_osap_counter.o
+
+counter_manage = IncrementCounter.o GetCounterValue.o GetElapsedValue.o notify_hardware_counter.o \
+		incr_counter_action.o incr_counter_process.o
+
+alarm = alarm_initialize.o alarm_expire.o GetAlarmBase.o GetAlarm.o SetRelAlarm.o SetAbsAlarm.o \
+		CancelAlarm.o force_term_osap_alarm.o
+
+interrupt = interrupt_initialize.o release_interrupts.o exit_isr2.o
+
+interrupt_manage = DisableAllInterrupts.o EnableAllInterrupts.o SuspendAllInterrupts.o \
+		ResumeAllInterrupts.o SuspendOSInterrupts.o ResumeOSInterrupts.o GetISRID.o \
+		DisableInterruptSource.o EnableInterruptSource.o
+
+scheduletable = schtbl_initialize.o StartScheduleTableRel.o StartScheduleTableAbs.o \
+		StopScheduleTable.o NextScheduleTable.o GetScheduleTableStatus.o \
+		schtbl_expire.o schtbl_expiry_process.o schtbl_head.o schtbl_exppoint_process.o schtbl_tail.o \
+		force_term_osap_schtbl.o
+
+osap = osap_initialize.o GetApplicationID.o GetApplicationState.o CallTrustedFunction.o CheckTaskAccess.o \
+		CheckISRAccess.o CheckAlarmAccess.o CheckResourceAccess.o CheckCounterAccess.o CheckScheduleTableAccess.o \
+		CheckTaskOwnership.o CheckISROwnership.o CheckAlarmOwnership.o CheckCounterOwnership.o CheckScheduleTableOwnership.o \
+		AllowAccess.o TerminateApplication.o internal_term_osap.o
+
+
+ioc_manage = ioc_initialize.o ioc_send_generic.o ioc_write_generic.o ioc_receive_generic.o \
+		ioc_read_generic.o ioc_empty_queue_generic.o
+
+memory = search_meminib.o check_address_stack.o check_osap_memory.o check_isr_memory.o CheckISRMemoryAccess.o \
+		 check_task_memory.o CheckTaskMemoryAccess.o check_hook_memory.o probe_memory_access.o probe_memory_write.o \
+		 probe_memory_read.o probe_memory_read_write.o initialize_sections.o
+
+svc_table = svc_table.o
+
+#
+#  生成されるオブジェクトファイルの依存関係の定義
+#
+$(osctl) $(osctl:.o=.s) $(osctl:.o=.d): osctl.c
+$(osctl_manage) $(osctl_manage:.o=.s) $(osctl_manage:.o=.d): osctl_manage.c
+$(task) $(task:.o=.s) $(task:.o=.d): task.c
+$(task_manage) $(task_manage:.o=.s) $(task_manage:.o=.d): task_manage.c
+$(event) $(event:.o=.s) $(event:.o=.d): event.c
+$(resource) $(resource:.o=.s) $(resource:.o=.d): resource.c
+$(counter) $(counter:.o=.s) $(counter:.o=.d): counter.c
+$(counter_manage) $(counter_manage:.o=.s) $(counter_manage:.o=.d): counter_manage.c
+$(alarm) $(alarm:.o=.s) $(alarm:.o=.d): alarm.c
+$(scheduletable) $(scheduletable:.o=.s) $(scheduletable:.o=.d): scheduletable.c
+$(interrupt) $(interrupt:.o=.s) $(interrupt:.o=.d): interrupt.c
+$(interrupt_manage) $(interrupt_manage:.o=.s) $(interrupt_manage:.o=.d): interrupt_manage.c
+$(osap) $(osap:.o=.s) $(osap:.o=.d): osap.c
+$(ioc_manage) $(ioc_manage:.o=.s) $(ioc_manage:.o=.d): ioc_manage.c
+$(memory) $(memory:.o=.s) $(memory:.o=.d): memory.c
+$(svc_table) $(svc_table:.o=.s) $(svc_table:.o=.d): svc_table.c
Index: /atk2-sc3_fl850f1l/kernel/alarm.c
===================================================================
--- /atk2-sc3_fl850f1l/kernel/alarm.c	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/alarm.c	(revision 117)
@@ -0,0 +1,515 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2004-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: alarm.c 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		アラーム管理モジュール
+ */
+
+#include "kernel_impl.h"
+#include "check.h"
+#include "alarm.h"
+
+/*
+ *  トレースログマクロのデフォルト定義
+ */
+#ifndef LOG_GETALB_ENTER
+#define LOG_GETALB_ENTER(almid)
+#endif /* LOG_GETALB_ENTER */
+
+#ifndef LOG_GETALB_LEAVE
+#define LOG_GETALB_LEAVE(ercd, info)
+#endif /* LOG_GETALB_LEAVE */
+
+#ifndef LOG_GETALM_ENTER
+#define LOG_GETALM_ENTER(almid)
+#endif /* LOG_GETALM_ENTER */
+
+#ifndef LOG_GETALM_LEAVE
+#define LOG_GETALM_LEAVE(ercd, p_tick)
+#endif /* LOG_GETALM_LEAVE */
+
+#ifndef LOG_SETREL_ENTER
+#define LOG_SETREL_ENTER(almid, incr, cycle)
+#endif /* LOG_SETREL_ENTER */
+
+#ifndef LOG_SETREL_LEAVE
+#define LOG_SETREL_LEAVE(ercd)
+#endif /* LOG_SETREL_LEAVE */
+
+#ifndef LOG_SETABS_ENTER
+#define LOG_SETABS_ENTER(almid, start, cycle)
+#endif /* LOG_SETABS_ENTER */
+
+#ifndef LOG_SETABS_LEAVE
+#define LOG_SETABS_LEAVE(ercd)
+#endif /* LOG_SETABS_LEAVE */
+
+#ifndef LOG_CANALM_ENTER
+#define LOG_CANALM_ENTER(almid)
+#endif /* LOG_CANALM_ENTER */
+
+#ifndef LOG_CANALM_LEAVE
+#define LOG_CANALM_LEAVE(ercd)
+#endif /* LOG_CANALM_LEAVE */
+
+#ifndef LOG_ALM_ENTER
+#define LOG_ALM_ENTER(p_cntexpinfo)
+#endif /* LOG_ALM_ENTER */
+
+#ifndef LOG_ALM_LEAVE
+#define LOG_ALM_LEAVE(p_cntexpinfo)
+#endif /* LOG_ALM_LEAVE */
+
+/*
+ *  アラーム機能の初期化
+ */
+#ifdef TOPPERS_alarm_initialize
+
+void
+alarm_initialize(void)
+{
+	AlarmType	i;
+	ALMCB		*p_almcb;
+
+	for (i = 0U; i < tnum_alarm; i++) {
+		p_almcb = &(almcb_table[i]);
+
+		p_almcb->p_alminib = &(alminib_table[i]);
+		(p_almcb->cntexpinfo).expirefunc = &alarm_expire;
+		if ((p_almcb->p_alminib->autosta & ((AppModeType) 1 << appmodeid)) != APPMODE_NONE) {
+			if (p_almcb->p_alminib->actatr == ABSOLUTE) {
+				/*
+				 *  絶対時間の起動
+				 *  満了時間が0の場合，次の周期の0のタイミングとなる
+				 *  （get_abstickに考慮済み）
+				 */
+				(p_almcb->cntexpinfo).expiretick =
+					get_abstick(p_almcb->p_alminib->p_cntcb, p_almcb->p_alminib->almval);
+			}
+			else {
+				/* 相対時間の起動 */
+				(p_almcb->cntexpinfo).expiretick =
+					get_reltick(p_almcb->p_alminib->p_cntcb, p_almcb->p_alminib->almval);
+			}
+			p_almcb->cycle = p_almcb->p_alminib->cycle;
+
+			insert_cnt_expr_que(&(p_almcb->cntexpinfo), p_almcb->p_alminib->p_cntcb);
+		}
+		else {
+			queue_initialize(&(p_almcb->cntexpinfo.cntexpque));
+		}
+	}
+}
+
+#endif /* TOPPERS_alarm_initialize */
+
+/*
+ *  アラーム情報の取得
+ */
+#ifdef TOPPERS_GetAlarmBase
+
+StatusType
+GetAlarmBase(AlarmType AlarmID, AlarmBaseRefType Info)
+{
+	StatusType	ercd = E_OK;
+	ALMCB		*p_almcb;
+	CNTCB		*p_cntcb;
+	OSAPCB		*p_osapcb;
+
+	LOG_GETALB_ENTER(AlarmID);
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_GETALARMBASE);
+	CHECK_ID(AlarmID < tnum_alarm);
+	CHECK_PARAM_POINTER(Info);
+	CHECK_MEM_WRITE(Info, AlarmBaseType);
+	p_almcb = get_almcb(AlarmID);
+	CHECK_RIGHT(p_almcb->p_alminib->acsbtmp);
+	p_cntcb = p_almcb->p_alminib->p_cntcb;
+
+	p_osapcb = p_almcb->p_alminib->p_osapcb;
+	x_nested_lock_os_int();
+
+	/* アラーム所属のOSAPの状態をチェック */
+	D_CHECK_ACCESS((p_osapcb->osap_stat == APPLICATION_ACCESSIBLE) ||
+				   ((p_osapcb->osap_stat == APPLICATION_RESTARTING) &&
+					(p_osapcb == p_runosap)));
+
+	Info->maxallowedvalue = p_cntcb->p_cntinib->maxval;
+	Info->ticksperbase = p_cntcb->p_cntinib->tickbase;
+	Info->mincycle = p_cntcb->p_cntinib->mincyc;
+
+  d_exit_no_errorhook:
+	x_nested_unlock_os_int();
+  exit_no_errorhook:
+	LOG_GETALB_LEAVE(ercd, Info);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+  d_exit_errorhook:
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.almid = AlarmID;
+	_errorhook_par2.p_info = Info;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_GetAlarmBase);
+	goto d_exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_GetAlarmBase */
+
+/*
+ *  アラームの状態参照
+ */
+#ifdef TOPPERS_GetAlarm
+
+StatusType
+GetAlarm(AlarmType AlarmID, TickRefType Tick)
+{
+	StatusType	ercd = E_OK;
+	TickType	curval;
+	ALMCB		*p_almcb;
+	CNTCB		*p_cntcb;
+	OSAPCB		*p_osapcb;
+
+	LOG_GETALM_ENTER(AlarmID);
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_GETALARM);
+	CHECK_ID(AlarmID < tnum_alarm);
+	CHECK_PARAM_POINTER(Tick);
+	CHECK_MEM_WRITE(Tick, TickType);
+	p_almcb = get_almcb(AlarmID);
+	CHECK_RIGHT(p_almcb->p_alminib->acsbtmp);
+	p_cntcb = p_almcb->p_alminib->p_cntcb;
+
+	p_osapcb = p_almcb->p_alminib->p_osapcb;
+	x_nested_lock_os_int();
+	/* アラーム所属のOSAPの状態をチェック */
+	D_CHECK_ACCESS((p_osapcb->osap_stat == APPLICATION_ACCESSIBLE) ||
+				   ((p_osapcb->osap_stat == APPLICATION_RESTARTING) &&
+					(p_osapcb == p_runosap)));
+
+	S_D_CHECK_NOFUNC(queue_empty(&(p_almcb->cntexpinfo.cntexpque)) == FALSE);
+
+	/*
+	 *  カウンタの現在値を取得
+	 *  ハードウェアカウンタの場合，既に満了している可能性がある
+	 */
+	curval = get_curval(p_cntcb, CNTID(p_cntcb));
+
+	*Tick = diff_tick(p_almcb->cntexpinfo.expiretick, curval, p_cntcb->p_cntinib->maxval2);
+
+  d_exit_no_errorhook:
+	x_nested_unlock_os_int();
+  exit_no_errorhook:
+	LOG_GETALM_LEAVE(ercd, Tick);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+  d_exit_errorhook:
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.almid = AlarmID;
+	_errorhook_par2.p_tick = Tick;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_GetAlarm);
+	goto d_exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_GetAlarm */
+
+/*
+ *  アラームの設定（相対値）
+ */
+#ifdef TOPPERS_SetRelAlarm
+
+StatusType
+SetRelAlarm(AlarmType AlarmID, TickType increment, TickType cycle)
+{
+	StatusType	ercd = E_OK;
+	TickType	maxval;
+	ALMCB		*p_almcb;
+	CNTCB		*p_cntcb;
+	OSAPCB		*p_osapcb;
+
+	LOG_SETREL_ENTER(AlarmID, increment, cycle);
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_SETRELALARM);
+	CHECK_ID(AlarmID < tnum_alarm);
+	p_almcb = get_almcb(AlarmID);
+	CHECK_RIGHT(p_almcb->p_alminib->acsbtmp);
+	p_cntcb = p_almcb->p_alminib->p_cntcb;
+
+	maxval = p_cntcb->p_cntinib->maxval;
+	CHECK_VALUE((0U < increment) && (increment <= maxval));
+	CHECK_VALUE((cycle == 0U)
+				|| ((p_cntcb->p_cntinib->mincyc <= cycle) && (cycle <= maxval)));
+
+	p_osapcb = p_almcb->p_alminib->p_osapcb;
+	x_nested_lock_os_int();
+	/* アラーム所属のOSAPの状態をチェック */
+	D_CHECK_ACCESS((p_osapcb->osap_stat == APPLICATION_ACCESSIBLE) ||
+				   ((p_osapcb->osap_stat == APPLICATION_RESTARTING) &&
+					(p_osapcb == p_runosap)));
+
+	S_D_CHECK_STATE(queue_empty(&(p_almcb->cntexpinfo.cntexpque)) != FALSE);
+
+	p_almcb->cntexpinfo.expiretick = get_reltick(p_cntcb, increment);
+	p_almcb->cycle = cycle;
+
+	insert_cnt_expr_que(&(p_almcb->cntexpinfo), p_cntcb);
+
+  d_exit_no_errorhook:
+	x_nested_unlock_os_int();
+  exit_no_errorhook:
+	LOG_SETREL_LEAVE(ercd);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+  d_exit_errorhook:
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.almid = AlarmID;
+	_errorhook_par2.incr = increment;
+	_errorhook_par3.cycle = cycle;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_SetRelAlarm);
+	goto d_exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_SetRelAlarm */
+
+/*
+ *  アラームの設定（絶対値）
+ */
+#ifdef TOPPERS_SetAbsAlarm
+
+StatusType
+SetAbsAlarm(AlarmType AlarmID, TickType start, TickType cycle)
+{
+	StatusType	ercd = E_OK;
+	TickType	maxval;
+	ALMCB		*p_almcb;
+	CNTCB		*p_cntcb;
+	OSAPCB		*p_osapcb;
+
+	LOG_SETABS_ENTER(AlarmID, start, cycle);
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_SETABSALARM);
+	CHECK_ID(AlarmID < tnum_alarm);
+	p_almcb = get_almcb(AlarmID);
+	CHECK_RIGHT(p_almcb->p_alminib->acsbtmp);
+	p_cntcb = p_almcb->p_alminib->p_cntcb;
+
+	maxval = p_cntcb->p_cntinib->maxval;
+	CHECK_VALUE(start <= maxval);
+	CHECK_VALUE((cycle == 0U)
+				|| ((p_cntcb->p_cntinib->mincyc <= cycle) && (cycle <= maxval)));
+
+	p_osapcb = p_almcb->p_alminib->p_osapcb;
+	x_nested_lock_os_int();
+	/* アラーム所属のOSAPの状態をチェック */
+	D_CHECK_ACCESS((p_osapcb->osap_stat == APPLICATION_ACCESSIBLE) ||
+				   ((p_osapcb->osap_stat == APPLICATION_RESTARTING) &&
+					(p_osapcb == p_runosap)));
+
+	S_D_CHECK_STATE(queue_empty(&(p_almcb->cntexpinfo.cntexpque)) != FALSE);
+
+	p_almcb->cntexpinfo.expiretick = get_abstick(p_cntcb, start);
+	p_almcb->cycle = cycle;
+
+	insert_cnt_expr_que(&(p_almcb->cntexpinfo), p_cntcb);
+
+  d_exit_no_errorhook:
+	x_nested_unlock_os_int();
+  exit_no_errorhook:
+	LOG_SETABS_LEAVE(ercd);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+  d_exit_errorhook:
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.almid = AlarmID;
+	_errorhook_par2.start = start;
+	_errorhook_par3.cycle = cycle;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_SetAbsAlarm);
+	goto d_exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_SetAbsAlarm */
+
+/*
+ *  アラームのキャンセル
+ */
+#ifdef TOPPERS_CancelAlarm
+
+StatusType
+CancelAlarm(AlarmType AlarmID)
+{
+	StatusType	ercd = E_OK;
+	ALMCB		*p_almcb;
+	OSAPCB		*p_osapcb;
+
+	LOG_CANALM_ENTER(AlarmID);
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_CANCELALARM);
+	CHECK_ID(AlarmID < tnum_alarm);
+	p_almcb = get_almcb(AlarmID);
+	CHECK_RIGHT(p_almcb->p_alminib->acsbtmp);
+
+	p_osapcb = p_almcb->p_alminib->p_osapcb;
+	x_nested_lock_os_int();
+	/* アラーム所属のOSAPの状態をチェック */
+	D_CHECK_ACCESS((p_osapcb->osap_stat == APPLICATION_ACCESSIBLE) ||
+				   ((p_osapcb->osap_stat == APPLICATION_RESTARTING) &&
+					(p_osapcb == p_runosap)));
+
+	S_D_CHECK_NOFUNC(queue_empty(&(p_almcb->cntexpinfo.cntexpque)) == FALSE);
+
+	delete_cnt_expr_que(&(p_almcb->cntexpinfo), p_almcb->p_alminib->p_cntcb);
+
+  d_exit_no_errorhook:
+	x_nested_unlock_os_int();
+  exit_no_errorhook:
+	LOG_CANALM_LEAVE(ercd);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+  d_exit_errorhook:
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.almid = AlarmID;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_CancelAlarm);
+	goto d_exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_CancelAlarm */
+
+/*
+ *  アラーム満了アクション処理用関数
+ */
+#ifdef TOPPERS_alarm_expire
+
+void
+alarm_expire(CNTEXPINFO *p_cntexpinfo, const CNTCB *p_cntcb)
+{
+	ALMCB	*p_almcb;
+	OSAPCB	*p_runosap_saved;
+
+	p_almcb = (ALMCB *) p_cntexpinfo;
+
+	/* カウンタ満了キューへの再挿入（周期アラームの場合） */
+	if (p_almcb->cycle > 0U) {
+		p_cntexpinfo->expiretick = add_tick(p_cntexpinfo->expiretick, p_almcb->cycle,
+											p_cntcb->p_cntinib->maxval2);
+		insert_cnt_expr_que(p_cntexpinfo, (CNTCB *) p_cntcb);
+	}
+
+	LOG_ALM_ENTER(p_almcb);
+
+	p_runosap_saved = p_runosap;
+	p_runosap = p_almcb->p_alminib->p_osapcb;
+
+	/* アラーム満了アクションの呼出し */
+	(p_almcb->p_alminib->action)();
+
+	p_runosap = p_runosap_saved;
+
+	LOG_ALM_LEAVE(p_almcb);
+}
+
+#endif /* TOPPERS_alarm_expire */
+
+/*
+ *  OSAP所属するアラームの強制終了
+ */
+#ifdef TOPPERS_force_term_osap_alarm
+
+void
+force_term_osap_alarm(OSAPCB *p_osapcb)
+{
+	/* カウンタの満了キューから消す */
+	AlarmType	i;
+	ALMCB		*p_almcb;
+
+	for (i = 0U; i < tnum_alarm; i++) {
+		if (alminib_table[i].p_osapcb == p_osapcb) {
+			p_almcb = &almcb_table[i];
+			/*
+			 *  満了キューから削除する
+			 *  初期化より先に実施する必要がある
+			 */
+			delete_cnt_expr_que(&(p_almcb->cntexpinfo), p_almcb->p_alminib->p_cntcb);
+			p_almcb->cycle = 0U;
+		}
+	}
+}
+
+#endif /* TOPPERS_force_term_osap_alarm */
Index: /atk2-sc3_fl850f1l/kernel/alarm.h
===================================================================
--- /atk2-sc3_fl850f1l/kernel/alarm.h	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/alarm.h	(revision 117)
@@ -0,0 +1,126 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2004-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: alarm.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		アラーム機能
+ */
+
+#ifndef TOPPERS_ALARM_H
+#define TOPPERS_ALARM_H
+
+#include "counter.h"
+
+/*
+ *  アラームIDからアラーム管理ブロックを取り出すためのマクロ
+ */
+#define get_almcb(almid)	(&(almcb_table[(almid)]))
+
+/*
+ *  アラーム初期化ブロック
+ */
+typedef struct alarm_initialization_block {
+	CNTCB			*p_cntcb;       /* 駆動カウンタ管理ブロックのポインタ */
+	FunctionRefType	action;         /* アラーム満了アクション */
+	AppModeType		autosta;        /* 起動するモード */
+	TickType		almval;         /* expire するティック値 */
+	TickType		cycle;          /* アラームの周期 */
+	AttributeType	actatr;         /* 満了アクション・自動起動の属性 */
+	OSAPCB			*p_osapcb;      /* 所属するOSアプリケーションの管理ブロック */
+	uint32			acsbtmp;        /* アクセス許可OSアプリケーション ビットマップ */
+} ALMINIB;
+
+/*
+ *  アラーム管理ブロック
+ */
+typedef struct alarm_control_block {
+	CNTEXPINFO		cntexpinfo;     /* カウンタ満了情報(構造体の先頭に入る必要) */
+	const ALMINIB	*p_alminib;     /* アラーム初期化ブロックポインタ */
+	TickType		cycle;          /* アラームの周期 */
+} ALMCB;
+
+/*
+ *  アラーム数を保持する変数の宣言（Os_Lcfg.c）
+ */
+extern const AlarmType	tnum_alarm;       /* アラームの数 */
+
+/*
+ *  アラーム初期化ブロックのエリア（Os_Lcfg.c）
+ */
+extern const ALMINIB	alminib_table[];
+
+/*
+ *  アラーム管理ブロックのエリア（Os_Lcfg.c）
+ */
+extern ALMCB			almcb_table[];
+
+/*
+ *  アラーム機能の初期化
+ */
+extern void alarm_initialize(void);
+
+/*
+ *  アラーム満了アクション処理用関数
+ */
+extern void alarm_expire(CNTEXPINFO *p_cntexpinfo, const CNTCB *p_cntcb);
+
+/*
+ *  OSAP所属するアラームの強制終了
+ */
+extern void force_term_osap_alarm(OSAPCB *p_osapcb);
+
+#endif /* TOPPERS_ALARM_H */
Index: /atk2-sc3_fl850f1l/kernel/allfunc.h
===================================================================
--- /atk2-sc3_fl850f1l/kernel/allfunc.h	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/allfunc.h	(revision 117)
@@ -0,0 +1,211 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2011-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: allfunc.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		すべての関数をコンパイルするための定義
+ */
+
+#ifndef TOPPERS_ALLFUNC_H
+#define TOPPERS_ALLFUNC_H
+
+/* alarm.c */
+#define TOPPERS_alarm_initialize
+#define TOPPERS_GetAlarmBase
+#define TOPPERS_GetAlarm
+#define TOPPERS_SetRelAlarm
+#define TOPPERS_SetAbsAlarm
+#define TOPPERS_CancelAlarm
+#define TOPPERS_alarm_expire
+#define TOPPERS_force_term_osap_alarm
+
+/* counter_manage.c */
+#define TOPPERS_IncrementCounter
+#define TOPPERS_GetCounterValue
+#define TOPPERS_GetElapsedValue
+#define TOPPERS_notify_hardware_counter
+#define TOPPERS_incr_counter_action
+#define TOPPERS_incr_counter_process
+
+/* counter.c */
+#define TOPPERS_insert_cnt_expr_que
+#define TOPPERS_delete_cnt_expr_que
+#define TOPPERS_counter_initialize
+#define TOPPERS_counter_terminate
+#define TOPPERS_get_reltick
+#define TOPPERS_get_abstick
+#define TOPPERS_expire_process
+#define TOPPERS_force_term_osap_counter
+
+/* event.c */
+#define TOPPERS_SetEvent
+#define TOPPERS_ClearEvent
+#define TOPPERS_GetEvent
+#define TOPPERS_WaitEvent
+#define TOPPERS_set_event_action
+
+/* interrupt.c */
+#define TOPPERS_interrupt_initialize
+#define TOPPERS_release_interrupts
+#define TOPPERS_exit_isr2
+
+/* interrupt_manage.c */
+#define TOPPERS_DisableAllInterrupts
+#define TOPPERS_EnableAllInterrupts
+#define TOPPERS_SuspendAllInterrupts
+#define TOPPERS_ResumeAllInterrupts
+#define TOPPERS_SuspendOSInterrupts
+#define TOPPERS_ResumeOSInterrupts
+#define TOPPERS_GetISRID
+#define TOPPERS_DisableInterruptSource
+#define TOPPERS_EnableInterruptSource
+
+/* osctl.c */
+#define TOPPERS_internal_call_errorhook
+#define TOPPERS_call_posttaskhook
+#define TOPPERS_call_pretaskhook
+#define TOPPERS_cancel_shutdown_hook
+#define TOPPERS_callevel_chk_shutdown
+#define TOPPERS_call_protectionhk_main
+#define TOPPERS_init_stack_magic_region
+#define TOPPERS_internal_shutdownos
+#define TOPPERS_internal_call_shtdwnhk
+
+/* osctl_manage.c */
+#define TOPPERS_StartOS
+#define TOPPERS_GetActiveApplicationMode
+#define TOPPERS_ShutdownOS
+#define TOPPERS_GetFaultyContext
+
+/* resource.c */
+#define TOPPERS_resource_initialize
+#define TOPPERS_GetResource
+#define TOPPERS_ReleaseResource
+
+/* scheduletable.c */
+#define TOPPERS_schtbl_initialize
+#define TOPPERS_StartScheduleTableRel
+#define TOPPERS_StartScheduleTableAbs
+#define TOPPERS_StopScheduleTable
+#define TOPPERS_NextScheduleTable
+#define TOPPERS_GetScheduleTableStatus
+#define TOPPERS_schtbl_expire
+#define TOPPERS_schtbl_expiry_process
+#define TOPPERS_schtbl_head
+#define TOPPERS_schtbl_exppoint_process
+#define TOPPERS_schtbl_tail
+#define TOPPERS_force_term_osap_schtbl
+
+/* task.c */
+#define TOPPERS_task_initialize
+#define TOPPERS_search_schedtsk
+#define TOPPERS_make_runnable
+#define TOPPERS_make_non_runnable
+#define TOPPERS_make_active
+#define TOPPERS_preempt
+#define TOPPERS_suspend
+#define TOPPERS_release_taskresources
+#define TOPPERS_cancel_taskcounters
+#define TOPPERS_exit_task
+#define TOPPERS_remove_task_from_queue
+#define TOPPERS_suspend_ready_task
+#define TOPPERS_force_terminate_task
+#define TOPPERS_force_term_osap_task
+
+/* task_manage.c */
+#define TOPPERS_ActivateTask
+#define TOPPERS_TerminateTask
+#define TOPPERS_ChainTask
+#define TOPPERS_Schedule
+#define TOPPERS_GetTaskID
+#define TOPPERS_GetTaskState
+#define TOPPERS_activate_task_action
+
+/* memory.c */
+#define TOPPERS_search_meminib
+#define TOPPERS_check_address_stack
+#define TOPPERS_check_osap_memory
+#define TOPPERS_check_isr_memory
+#define TOPPERS_CheckISRMemoryAccess
+#define TOPPERS_check_task_memory
+#define TOPPERS_CheckTaskMemoryAccess
+#define TOPPERS_check_hook_memory
+#define TOPPERS_probe_memory_access
+#define TOPPERS_probe_memory_read
+#define TOPPERS_probe_memory_write
+#define TOPPERS_probe_memory_read_write
+#define TOPPERS_initialize_sections
+
+/* osap.c */
+#define TOPPERS_osap_initialize
+#define TOPPERS_GetApplicationID
+#define TOPPERS_GetApplicationState
+#define TOPPERS_CallTrustedFunction
+#define TOPPERS_CheckTaskAccess
+#define TOPPERS_CheckISRAccess
+#define TOPPERS_CheckAlarmAccess
+#define TOPPERS_CheckResourceAccess
+#define TOPPERS_CheckCounterAccess
+#define TOPPERS_CheckScheduleTableAccess
+#define TOPPERS_CheckTaskOwnership
+#define TOPPERS_CheckISROwnership
+#define TOPPERS_CheckAlarmOwnership
+#define TOPPERS_CheckCounterOwnership
+#define TOPPERS_CheckScheduleTableOwnership
+#define TOPPERS_internal_term_osap
+#define TOPPERS_TerminateApplication
+#define TOPPERS_AllowAccess
+
+#endif /* TOPPERS_ALLFUNC_H */
Index: /atk2-sc3_fl850f1l/kernel/check.h
===================================================================
--- /atk2-sc3_fl850f1l/kernel/check.h	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/check.h	(revision 117)
@@ -0,0 +1,246 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: check.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		エラーチェック用マクロ
+ */
+
+#ifndef TOPPERS_CHECK_H
+#define TOPPERS_CHECK_H
+
+#include "Os_Cfg.h"
+#include "memory.h"
+
+/*
+ * 汎用チェックマクロ
+ */
+#define CHECK_ERROR_ERCD(exp, error) \
+	do {							 \
+		if (!(exp)) {				 \
+			ercd = (error);			 \
+			goto error_exit;		 \
+		}							 \
+	} while (0)
+
+#define CHECK_ERROR_NO_ERCD(exp) \
+	do {						 \
+		if (!(exp)) {			 \
+			goto error_exit;	 \
+		}						 \
+	} while (0)
+
+#define D_CHECK_ERROR_ERCD(exp, error) \
+	do {							   \
+		if (!(exp)) {				   \
+			ercd = (error);			   \
+			goto d_error_exit;		   \
+		}							   \
+	} while (0)
+
+#define D_CHECK_ERROR_NO_ERCD(exp) \
+	do {						   \
+		if (!(exp)) {			   \
+			goto d_error_exit;	   \
+		}						   \
+	} while (0)
+
+/*
+ *  標準エラーのチェックマクロ
+ */
+#define S_CHECK_ERROR(exp, error)		CHECK_ERROR_ERCD(exp, error)
+
+
+#ifdef CFG_USE_ERRORHOOK
+/*
+ *  エラーフック使用有無によるラベルの再定義
+ */
+#define error_exit		exit_errorhook
+#define d_error_exit	d_exit_errorhook
+
+/*
+ *  エラーフックを使用する時はエラーコードを代入する
+ */
+#define S_N_CHECK_ERROR(exp, error)		CHECK_ERROR_ERCD(exp, error)
+
+#else /* CFG_USE_ERRORHOOK */
+/*
+ *  エラーフック使用有無によるラベルの再定義
+ */
+#define error_exit		exit_no_errorhook
+#define d_error_exit	d_exit_no_errorhook
+
+/*
+ *  エラーフックを使用しない時はエラーコードを代入しない
+ */
+#define S_N_CHECK_ERROR(exp, error)		CHECK_ERROR_NO_ERCD(exp)
+
+#endif /* CFG_USE_ERRORHOOK */
+
+
+/* 以下のチェックマクロをOS内部で用いる */
+
+/*
+ *  エラーコードに対応したマクロ
+ *   標準エラー
+ */
+#ifdef OMIT_STANDARD_DISALLINT
+
+#define S_CHECK_DISALLINT()
+#define S_N_CHECK_DISALLINT()
+
+#else /* OMIT_STANDARD_DISALLINT */
+
+#define S_CHECK_DISALLINT()								 \
+	S_CHECK_ERROR(										 \
+		((callevel_stat & TSYS_DISALLINT) == TSYS_NULL), \
+		E_OS_DISABLEDINT								 \
+		)
+#define S_N_CHECK_DISALLINT()							 \
+	S_N_CHECK_ERROR(									 \
+		((callevel_stat & TSYS_DISALLINT) == TSYS_NULL), \
+		E_OS_DISABLEDINT								 \
+		)
+
+#endif /* OMIT_STANDARD_DISALLINT */
+
+#define S_CHECK_STATE(exp)				S_CHECK_ERROR(exp, E_OS_STATE)
+#define S_N_CHECK_STATE(exp)			S_N_CHECK_ERROR(exp, E_OS_STATE)
+#define S_CHECK_LIMIT(exp)				S_CHECK_ERROR(exp, E_OS_LIMIT)
+#define S_N_CHECK_LIMIT(exp)			S_N_CHECK_ERROR(exp, E_OS_LIMIT)
+#define S_D_CHECK_NOFUNC(exp)			D_CHECK_ERROR_ERCD(exp, E_OS_NOFUNC)
+#define S_D_CHECK_STATE(exp)			D_CHECK_ERROR_ERCD(exp, E_OS_STATE)
+#define S_D_CHECK_LIMIT(exp)			D_CHECK_ERROR_ERCD(exp, E_OS_LIMIT)
+
+#define S_D_CHECK_IOC_LIMIT(exp) do { \
+		if (!(exp)) {				  \
+			ercd = IOC_E_LIMIT;		  \
+			p_ioccb->lostflg = TRUE;  \
+			goto d_error_exit;		  \
+		}							  \
+} while (0)
+
+#define S_D_CHECK_IOC_LOST(exp) do {  \
+		if (!(exp)) {				  \
+			ercd = IOC_E_LOST_DATA;	  \
+			p_ioccb->lostflg = FALSE; \
+			goto d_error_exit;		  \
+		}							  \
+} while (0)
+
+#define S_D_CHECK_IOC_NO_DATA(exp)		D_CHECK_ERROR_ERCD(exp, IOC_E_NO_DATA)
+
+
+/*
+ *  エラーコードに対応したマクロ
+ *   拡張エラー
+ */
+#define CHECK_ACCESS(exp)				CHECK_ERROR_ERCD(exp, E_OS_ACCESS)
+#define D_CHECK_ACCESS(exp)				D_CHECK_ERROR_ERCD(exp, E_OS_ACCESS)
+#define CHECK_CALLEVEL(clmask)					  \
+	CHECK_ERROR_ERCD(							  \
+		((callevel_stat | (clmask)) == (clmask)), \
+		E_OS_CALLEVEL							  \
+		)
+#define CHECK_NOFUNC(exp)				CHECK_ERROR_ERCD(exp, E_OS_NOFUNC)
+#define CHECK_RESOURCE(exp)				CHECK_ERROR_ERCD(exp, E_OS_RESOURCE)
+#define CHECK_STATE(exp)				CHECK_ERROR_ERCD(exp, E_OS_STATE)
+#define D_CHECK_STATE(exp)				D_CHECK_ERROR_ERCD(exp, E_OS_STATE)
+#define CHECK_VALUE(exp)				CHECK_ERROR_ERCD(exp, E_OS_VALUE)
+#define CHECK_DISABLEDINT()										\
+	CHECK_ERROR_ERCD(											\
+		((callevel_stat &										\
+		  (TSYS_DISALLINT | TSYS_SUSALLINT | TSYS_SUSOSINT)) ==	\
+		 TSYS_NULL												\
+		),														\
+		E_OS_DISABLEDINT										\
+		)
+#define CHECK_PARAM_POINTER(p_exp)		CHECK_ERROR_ERCD(((p_exp) != NULL), OS_E_PARAM_POINTER)
+#define CHECK_ID(exp)					CHECK_ERROR_ERCD(exp, E_OS_ID)
+#define D_CHECK_ID(exp)					D_CHECK_ERROR_ERCD(exp, E_OS_ID)
+#define CHECK_IOC_ACCESS(exp)			CHECK_ERROR_ERCD(exp, IOC_E_NOK)
+#define CHECK_IOC_CALLEVEL_DISABLEDINT(clmask)	  \
+	CHECK_ERROR_ERCD(							  \
+		((callevel_stat | (clmask)) == (clmask)), \
+		IOC_E_NOK								  \
+		)
+#define CHECK_SERVICEID(exp)			CHECK_ERROR_ERCD(exp, E_OS_SERVICEID)
+#define CHECK_RIGHT(btmp)														   \
+	CHECK_ERROR_ERCD(															   \
+		(run_trusted != FALSE) || ((p_runosap->p_osapinib->btptn & (btmp)) != 0U), \
+		E_OS_ACCESS																   \
+		)
+#define CHECK_ILLEGAL_ADDRESS(exp)		CHECK_ERROR_ERCD(exp, E_OS_ILLEGAL_ADDRESS)
+#define CHECK_MEM_WRITE(p_var, type)	CHECK_ERROR_ERCD((PROBE_MEM_WRITE(p_var, type) != FALSE), E_OS_ILLEGAL_ADDRESS)
+#define CHECK_MEM_RW(p_var, type)		CHECK_ERROR_ERCD((PROBE_MEM_RW(p_var, type) != FALSE), E_OS_ILLEGAL_ADDRESS)
+#define CHECK_NO_ERCD(exp)				CHECK_ERROR_NO_ERCD(exp)
+#define CHECK_IOC_MEM_READ(p_var, size, alignsz) {			\
+		if ((probe_memory_read(p_var, size) == FALSE) ||	\
+			(((uintptr) (p_var) & (alignsz - 1U)) != 0U)) {	\
+			ercd = E_OS_SYS_ASSERT_FATAL;					\
+			goto exit_no_errorhook;							\
+		}													\
+}
+#define CHECK_IOC_MEM_WRITE(p_var, size, alignsz) {			\
+		if ((probe_memory_write(p_var, size) == FALSE) ||	\
+			(((uintptr) (p_var) & (alignsz - 1U)) != 0U)) {	\
+			ercd = E_OS_SYS_ASSERT_FATAL;					\
+			goto exit_no_errorhook;							\
+		}													\
+}
+
+#endif /* TOPPERS_CHECK_H */
Index: /atk2-sc3_fl850f1l/kernel/counter.c
===================================================================
--- /atk2-sc3_fl850f1l/kernel/counter.c	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/counter.c	(revision 117)
@@ -0,0 +1,465 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2004-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: counter.c 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		カウンタ制御モジュール
+ */
+
+#include "kernel_impl.h"
+#include "task.h"
+#include "counter.h"
+
+/*
+ *  トレースログマクロのデフォルト定義
+ */
+#ifndef LOG_INCCNT_ENTER
+#define LOG_INCCNT_ENTER(cntid)
+#endif /* LOG_INCCNT_ENTER */
+
+#ifndef LOG_INCCNT_LEAVE
+#define LOG_INCCNT_LEAVE(ercd)
+#endif /* LOG_INCCNT_LEAVE */
+
+#ifndef LOG_GETCNT_ENTER
+#define LOG_GETCNT_ENTER(cntid, p_val)
+#endif /* LOG_GETCNT_ENTER */
+
+#ifndef LOG_GETCNT_LEAVE
+#define LOG_GETCNT_LEAVE(ercd, val)
+#endif /* LOG_GETCNT_LEAVE */
+
+#ifndef LOG_GETECT_ENTER
+#define LOG_GETECT_ENTER(cntid, val, p_eval)
+#endif /* LOG_GETECT_ENTER */
+
+#ifndef LOG_GETECT_LEAVE
+#define LOG_GETECT_LEAVE(ercd, val, eval)
+#endif /* LOG_GETECT_LEAVE */
+
+/*
+ *  カウンタ満了キューへの挿入
+ */
+#ifdef TOPPERS_insert_cnt_expr_que
+
+void
+insert_cnt_expr_que(CNTEXPINFO *p_cntexpinfo, CNTCB *p_cntcb)
+{
+	TickType	enqval, curval;
+	QUEUE		*next;
+	CounterType cntid;
+
+	enqval = p_cntexpinfo->expiretick;
+
+	/*
+	 *  カウンタ満了キューへの挿入位置を決定するための基準点
+	 *
+	 *  ハードウェアカウンタの場合，カウンタ満了キューへの挿入位置を決める基準点は
+	 *  満了処理時に更新している値を使用し，ハードウェアから現在値を取得はしない
+	 *  (ハードウェアカウンタ上のティック値は満了しているが，まだ満了処理を実行して
+	 *  いない場合に，挿入場所の基準がずれてしまうため)
+	 */
+	curval = p_cntcb->curval;
+
+	/* 挿入場所のサーチ */
+	next = p_cntcb->cntexpque.p_next;
+
+	if (curval < enqval) {
+		/* カウンタのオーバーフローが起こらない場合 */
+		while ((next != &(p_cntcb->cntexpque)) &&
+			   (curval <= ((CNTEXPINFO *) next)->expiretick) &&
+			   (((CNTEXPINFO *) next)->expiretick <= enqval)) {
+			next = next->p_next;
+		}
+	}
+	else {
+		/* カウンタのオーバーフローが起こる場合 */
+		while ((next != &(p_cntcb->cntexpque)) &&
+			   ((curval <= ((CNTEXPINFO *) next)->expiretick)
+				|| (((CNTEXPINFO *) next)->expiretick <= enqval))) {
+			next = next->p_next;
+		}
+	}
+
+	queue_insert_prev(next, &(p_cntexpinfo->cntexpque));
+
+	/*
+	 *  ハードウェアカウンタかつ先頭に挿入した場合,再度ハードウェアカウンタに
+	 *  満了時間を設定し直す必要がある
+	 */
+	cntid = CNTID(p_cntcb);
+	if (is_hwcnt(cntid) && (p_cntcb->cntexpque.p_next == &(p_cntexpinfo->cntexpque))) {
+
+		/* 現在設定されている時刻をキャンセル */
+		(hwcntinib_table[cntid].cancel)();
+
+		/* 先頭に挿入した時刻に再設定 */
+		(hwcntinib_table[cntid].set)(enqval);
+		p_cntcb->hwset = TRUE;
+
+		/*
+		 *  再設定中に次の満了時間を過ぎてしまったかチェック
+		 *
+		 *  過ぎてしまった場合, 強制割込みにより満了処理を実行する
+		 *  またsetした時間とgetした時間が同じであった場合,
+		 *  ハードウェアで取りこぼしていると想定し, 強制割込みを発生させる
+		 *  ハードウェアで取りこぼしていない場合に強制割込みを起こしても問題ない
+		 */
+		if (diff_tick((hwcntinib_table[cntid].get)(), enqval,
+					  p_cntcb->p_cntinib->maxval2) <= p_cntcb->p_cntinib->maxval) {
+			/* 現在設定されている時刻をキャンセル */
+			(hwcntinib_table[cntid].cancel)();
+			/* 強制割込みを発生させる */
+			(hwcntinib_table[cntid].trigger)();
+		}
+	}
+}
+
+#endif /* TOPPERS_insert_cnt_expr_que */
+
+/*
+ *  カウンタ満了キューから削除
+ */
+#ifdef TOPPERS_delete_cnt_expr_que
+
+void
+delete_cnt_expr_que(CNTEXPINFO *p_cntexpinfo, CNTCB *p_cntcb)
+{
+	CounterType cntid;
+	QUEUE		*p_cntexpque;
+
+	/* カウンタキューから満了処理を削除する前の先頭キュー保持 */
+	p_cntexpque = p_cntcb->cntexpque.p_next;
+
+	queue_delete(&(p_cntexpinfo->cntexpque));
+	queue_initialize(&(p_cntexpinfo->cntexpque));
+
+	/*
+	 *  ハードウェアカウンタかつ削除する満了処理はカウンタ満了の
+	 *  先頭の場合，タイマをキャンセルする
+	 */
+	cntid = CNTID(p_cntcb);
+	if (is_hwcnt(cntid) && (p_cntcb->cntexpque.p_next != p_cntexpque)) {
+
+		/* 現在設定されている時刻をキャンセル */
+		(hwcntinib_table[cntid].cancel)();
+
+		/* ペンディング中の割込み要求をキャンセル */
+		(hwcntinib_table[cntid].intcancel)();
+
+		/*
+		 *  p_cntexpinfoで指定された満了処理削除後，カウンタ満了次の
+		 *  満了処理の満了点を設定する
+		 */
+		if (queue_empty(&(p_cntcb->cntexpque)) == FALSE) {
+
+			/* 先頭に挿入した時刻に再設定 */
+			(hwcntinib_table[cntid].set)(((CNTEXPINFO *) p_cntcb->cntexpque.p_next)->expiretick);
+			p_cntcb->hwset = TRUE;
+
+			/*
+			 *  再設定中に次の満了時間を過ぎてしまったかチェック
+			 *
+			 *  過ぎてしまった場合, 強制割込みにより満了処理を実行する
+			 *  またsetした時間とgetした時間が同じであった場合,
+			 *  ハードウェアで取りこぼしていると想定し, 強制割込みを発生させる
+			 *  ハードウェアで取りこぼしていない場合に強制割込みを起こしても問題ない
+			 */
+			if (diff_tick((hwcntinib_table[cntid].get)(),
+						  ((CNTEXPINFO *) p_cntcb->cntexpque.p_next)->expiretick,
+						  p_cntcb->p_cntinib->maxval2) <= p_cntcb->p_cntinib->maxval) {
+				/* 現在設定されている時刻をキャンセル */
+				(hwcntinib_table[cntid].cancel)();
+				/* 強制割込みを発生させる */
+				(hwcntinib_table[cntid].trigger)();
+			}
+		}
+	}
+
+}
+
+#endif /* TOPPERS_delete_cnt_expr_que */
+
+/*
+ *  カウンタ機能の初期化
+ */
+#ifdef TOPPERS_counter_initialize
+
+void
+counter_initialize(void)
+{
+	CounterType	i;
+	CNTCB		*p_cntcb;
+
+	for (i = 0U; i < tnum_counter; i++) {
+		p_cntcb = &(cntcb_table[i]);
+		p_cntcb->p_cntinib = &(cntinib_table[i]);
+		p_cntcb->curval = 0U;
+		p_cntcb->p_prevcntcb = NULL;
+		queue_initialize(&(p_cntcb->cntexpque));
+		p_cntcb->cstat = CS_NULL;
+	}
+
+	for (i = 0U; i < tnum_hardcounter; i++) {
+		(hwcntinib_table[i].init)(cntinib_table[i].maxval2,
+								  hwcntinib_table[i].nspertick);
+		(hwcntinib_table[i].start)();
+	}
+
+}
+
+#endif /* TOPPERS_counter_initialize */
+
+/*
+ *  カウンタ機能の終了処理
+ */
+#ifdef TOPPERS_counter_terminate
+
+void
+counter_terminate(void)
+{
+	CounterType i;
+
+	for (i = 0U; i < tnum_hardcounter; i++) {
+		(hwcntinib_table[i].stop)();
+	}
+}
+
+#endif /* TOPPERS_counter_terminate */
+
+/*
+ *  指定した相対時間からのカウンタ値取得(APIからの取得)
+ *
+ *  指定したカウンタの現在値と, 渡された相対値を足しこみ更新値を
+ *  戻り値として返す
+ */
+#ifdef TOPPERS_get_reltick
+
+TickType
+get_reltick(const CNTCB *p_cntcb, TickType relval)
+{
+	CounterType	cntid;
+	TickType	result;
+	TickType	curval;
+
+	cntid = CNTID(p_cntcb);
+
+	curval = get_curval(p_cntcb, cntid);
+
+	/* 現在時間から指定されたオフセット分過ぎた時間を算出する */
+	result = add_tick(curval, relval, p_cntcb->p_cntinib->maxval2);
+
+	return(result);
+}
+
+#endif /* TOPPERS_get_reltick */
+
+/*
+ *  指定した絶対時間からのカウンタ値取得(APIからの取得)
+ *
+ *  引数で渡された絶対値を指定したカウンタの現在値に変換し
+ *  更新値を戻り値として返す
+ */
+#ifdef TOPPERS_get_abstick
+
+TickType
+get_abstick(const CNTCB *p_cntcb, TickType absval)
+{
+	CounterType	cntid;
+	TickType	result;
+	TickType	curval;
+	TickType	nextval;
+
+	cntid = CNTID(p_cntcb);
+
+	curval = get_curval(p_cntcb, cntid);
+
+	/* maxval2を考慮した絶対時間に変換 */
+	nextval = absval +  p_cntcb->p_cntinib->maxval + 1U;
+
+	if (curval < (p_cntcb->p_cntinib->maxval + 1U)) {
+		/*
+		 *  カウンタの現在値が0〜maxvalの間の場合，
+		 *  絶対時刻に未到達なので，絶対時刻を返す
+		 */
+		if (absval > curval) {
+			result = absval;
+		}
+		else {
+			result = nextval;
+		}
+	}
+	else {
+		/*
+		 *  カウンタの現在値がmaxval〜maxval2の間の場合，
+		 *  maxval2考慮した絶対も超えたので，絶対時刻を返す
+		 */
+		if (nextval <= curval) {
+			result = absval;
+		}
+		else {
+			result = nextval;
+		}
+	}
+
+	return(result);
+}
+
+#endif /* TOPPERS_get_abstick */
+
+/*
+ *  カウンタの満了処理
+ */
+#ifdef TOPPERS_expire_process
+
+void
+expire_process(CNTCB *p_cntcb, CounterType cntid)
+{
+	CNTEXPINFO	*p_cntexpinfo;
+	TickType	nowval;
+
+	p_cntcb->hwset = FALSE;
+	nowval = get_curval(p_cntcb, cntid);
+
+	/*
+	 *  カウンタの満了処理
+	 *
+	 *  キューが空でなく, リアルタイムな現在時間から見てキューの先頭の満了
+	 *  時間が既に過ぎていれば, 満了処理を実行する
+	 *
+	 *  リアルタイムな現在時間をその都度取得するため,キューの先頭満了処理
+	 *  の満了時間を再設定する時に目的の満了時間を超えてしまってもカバー
+	 *  できる
+	 */
+	while ((queue_empty(&(p_cntcb->cntexpque)) == FALSE) &&
+		   (diff_tick(nowval, ((CNTEXPINFO *) p_cntcb->cntexpque.p_next)->expiretick,
+					  p_cntcb->p_cntinib->maxval2) <= p_cntcb->p_cntinib->maxval)) {
+
+		/* カウンタ満了キューの先頭の満了処理を，キューから外す */
+		p_cntexpinfo = (CNTEXPINFO *) p_cntcb->cntexpque.p_next;
+		queue_delete(&(p_cntexpinfo->cntexpque));
+		queue_initialize(&(p_cntexpinfo->cntexpque));
+
+		if (is_hwcnt(cntid)) {
+			/*
+			 *  カウンタ値を満了処理の満了点で更新し，満了処理キューに満了点を
+			 *  挿入する時，満了処理キューの挿入位置比較に使用
+			 */
+			p_cntcb->curval = p_cntexpinfo->expiretick;
+
+			/*
+			 *  次の満了点の設定
+			 *  次の満了点が実時間を経過していない場合設定する
+			 */
+			if ((queue_empty(&(p_cntcb->cntexpque)) == FALSE) && ((diff_tick((hwcntinib_table[cntid].get)(),
+																			 ((CNTEXPINFO *) p_cntcb->cntexpque.p_next)->expiretick, p_cntcb->p_cntinib->maxval2)) >
+																  p_cntcb->p_cntinib->maxval)) {
+				(hwcntinib_table[cntid].set)(((CNTEXPINFO *) p_cntcb->cntexpque.p_next)->expiretick);
+				p_cntcb->hwset = TRUE;
+			}
+		}
+
+		/* カウンタ満了処理呼出し */
+		(p_cntexpinfo->expirefunc)(p_cntexpinfo, p_cntcb);
+
+		/*
+		 *  タスクからの呼び出し時，高優先度タスクレディ状態になった場合あるので，
+		 *  チェックしてディスパッチする
+		 */
+		if ((p_runtsk != p_schedtsk) && (callevel_stat == TCL_TASK)) {
+			dispatch();
+		}
+
+		/*
+		 *  割込みレスポンス考慮し，1個の満了点処理後に
+		 *  1回の割込許可/禁止を実施
+		 */
+		x_nested_unlock_os_int();
+		x_nested_lock_os_int();
+
+		nowval = get_curval(p_cntcb, cntid);
+	}
+
+	if (is_hwcnt(cntid) && (queue_empty(&(p_cntcb->cntexpque)) == FALSE) && (p_cntcb->hwset == FALSE)) {
+		(hwcntinib_table[cntid].set)(((CNTEXPINFO *) p_cntcb->cntexpque.p_next)->expiretick);
+	}
+}
+#endif /* TOPPERS_expire_process */
+
+/*
+ *  OSAP所属するカウンタの強制終了
+ */
+#ifdef TOPPERS_force_term_osap_counter
+
+void
+force_term_osap_counter(OSAPCB *p_osapcb)
+{
+	CounterType	i;
+	CNTCB		*p_cntcb;
+
+	/* 状態をクリアする */
+	/* 現在値を0に初期化する */
+	for (i = 0U; i < tnum_counter; i++) {
+		if (cntinib_table[i].p_osapcb == p_osapcb) {
+			p_cntcb = &cntcb_table[i];
+			p_cntcb->curval = 0U;
+			p_cntcb->cstat = CS_NULL;
+		}
+	}
+}
+
+#endif /* TOPPERS_force_term_osap_counter */
Index: /atk2-sc3_fl850f1l/kernel/counter.h
===================================================================
--- /atk2-sc3_fl850f1l/kernel/counter.h	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/counter.h	(revision 117)
@@ -0,0 +1,332 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2004-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: counter.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		カウンタ機能
+ */
+
+#ifndef TOPPERS_COUNTER_H
+#define TOPPERS_COUNTER_H
+
+#include "queue.h"
+
+/*
+ *  カウンタ状態の定義
+ *  IncrementCounterのネスト防止策
+ */
+#define CS_NULL		(FALSE)         /* 非操作中 */
+#define CS_DOING	(TRUE)          /* 操作中 */
+
+/*
+ *  カウンタIDからカウンタ管理ブロックを取り出すためのマクロ
+ */
+#define get_cntcb(cntid)	(&(cntcb_table[(cntid)]))
+
+/*
+ *  カウンタIDでハードウェアカウンタかチェック用マクロ
+ */
+#define is_hwcnt(cntid)		((cntid) < tnum_hardcounter)
+
+/*
+ *  CNTCBからカウンタIDを取り出すためのマクロ
+ */
+#define CNTID(p_cntcb)	((CounterType) ((p_cntcb) - cntcb_table))
+
+/*
+ *  満了アクションの属性
+ */
+#define ACTIVATETASK		UINT_C(0x01)    /* タスク起動 */
+#define SETEVENT			UINT_C(0x02)    /* イベントセット */
+#define CALLBACK			UINT_C(0x04)    /* コールバック */
+#define INCREMENTCOUNTER	UINT_C(0x08)    /* カウンタインクリメント */
+
+/*
+ *  自動起動の属性
+ */
+#define ABSOLUTE			UINT_C(0x10)    /* 絶対値起動 */
+#define RELATIVE			UINT_C(0x20)    /* 相対値起動 */
+
+/*
+ *  各ハードウェアカウンタ処理関数型
+ */
+typedef void (*HardwareCounterInitRefType)(TickType maxval, TimeType nspertick);    /* 初期化関数型 */
+typedef void (*HardwareCounterStartRefType)(void);                                  /* 開始関数型 */
+typedef void (*HardwareCounterStopRefType)(void);                                   /* 停止関数型 */
+typedef void (*HardwareCounterSetRefType)(TickType exprtick);                       /* 時間設定関数型 */
+typedef TickType (*HardwareCounterGetRefType)(void);                                /* 時間取得関数型 */
+typedef void (*HardwareCounterCancelRefType)(void);                                 /* 設定時間取消関数型 */
+typedef void (*HardwareCounterTriggerRefType)(void);                                /* 強制割込み要求関数型 */
+typedef void (*HardwareCounterIntClearRefType)(void);                               /* 割込み要求クリア関数型 */
+typedef void (*HardwareCounterIntCancelRefType)(void);                              /* 割込み要求取消関数型 */
+typedef void (*HardwareCounterIncrementRefType)(void);                              /* インクリメント関数型 */
+
+/*
+ *  ハードウェアカウンタ処理関数型
+ */
+typedef struct hardware_counter_initialization_block {
+	HardwareCounterInitRefType		init;               /* 初期化関数ポインタ */
+	HardwareCounterStartRefType		start;              /* 開始関数ポインタ */
+	HardwareCounterStopRefType		stop;               /* 停止関数ポインタ */
+	HardwareCounterSetRefType		set;                /* 時間設定関数ポインタ */
+	HardwareCounterGetRefType		get;                /* 時間取得関数ポインタ*/
+	HardwareCounterCancelRefType	cancel;             /* 時間取消関数ポインタ */
+	HardwareCounterTriggerRefType	trigger;            /* 強制割込み要求関数ポインタ */
+	HardwareCounterIntClearRefType	intclear;           /* 割込み要求クリア関数型 */
+	HardwareCounterIntCancelRefType	intcancel;          /* 割込み要求取消関数型 */
+	HardwareCounterIncrementRefType	increment;          /* インクリメント関数ポインタ */
+	TimeType						nspertick;          /* ハードウェアカウンタでの1ティックの重み(ns単位) */
+} HWCNTINIB;
+
+/*
+ *  カウンタ初期化ブロック
+ */
+typedef struct counter_initialization_block {
+	TickType	maxval;                                 /* カウンタの最大値 */
+	TickType	maxval2;                                /* カウンタの最大値の2倍+1 */
+	TickType	tickbase;                               /* OS内部では使用せず，ユーザが自由に使用する値 */
+	TickType	mincyc;                                 /* 周期の最小値 */
+	OSAPCB		*p_osapcb;                              /* 所属するOSアプリケーションの管理ブロック */
+	uint32		acsbtmp;                                /* アクセス許可OSアプリケーション ビットマップ */
+} CNTINIB;
+
+/*
+ *  カウンタ管理ブロック
+ */
+typedef struct counter_control_block {
+	QUEUE							cntexpque;          /* カウンタ満了キュー */
+	const CNTINIB					*p_cntinib;         /* カウンタ初期化ブロックポインタ */
+	TickType						curval;             /* カウンタの現在ティック */
+	struct counter_control_block	*p_prevcntcb;       /* 前に獲得したカウンタ管理ブロックへのポインタ */
+	boolean							cstat;              /* カウンタ操作中フラグ */
+	boolean							hwset;              /* ハードウェアカウンタセットフラグ */
+} CNTCB;
+
+/*
+ *  カウンタ満了情報
+ */
+typedef struct counter_expire_info CNTEXPINFO;
+
+/*
+ *  満了処理関数型
+ */
+typedef void (*EXPFP)(CNTEXPINFO *p_cntexpinfo, const CNTCB *p_cntcb);
+
+/*
+ *  カウンタ満了情報
+ */
+struct counter_expire_info {
+	QUEUE		cntexpque;                              /* カウンタ満了キュー(構造体の先頭に入る必要) */
+	TickType	expiretick;                             /* 満了するカウンタ上のティック値 */
+	EXPFP		expirefunc;                             /* 満了処理関数ポインタ */
+};
+
+
+/*
+ *  ハードウェアカウンタ数を保持する変数の宣言（Os_Lcfg.c）
+ */
+extern const CounterType	tnum_hardcounter;
+
+/*
+ *  カウンタ数を保持する変数の宣言（Os_Lcfg.c）
+ */
+extern const CounterType	tnum_counter;
+
+/*
+ *  カウンタ初期化ブロックのエリア（Os_Lcfg.c）
+ */
+extern const CNTINIB		cntinib_table[];
+
+/*
+ *  カウンタ管理ブロックのエリア（Os_Lcfg.c）
+ */
+extern CNTCB				cntcb_table[];
+
+/*
+ *  ハードウェアカウンタ処理関数テーブル（Os_Lcfg.c）
+ */
+extern const HWCNTINIB		hwcntinib_table[];
+
+/*
+ *  ティック値の加算
+ */
+LOCAL_INLINE TickType
+add_tick(TickType val, TickType incr, TickType maxval2)
+{
+	TickType result;
+	/*
+	 *  素直な条件式は val + incr <= maxval2 であるが，この条件式で
+	 *  は，val + incr が TickType で表せる範囲を超える場合に正しく
+	 *  判定できなくなるため，次の条件式としている
+	 */
+	if (incr <= (maxval2 - val)) {
+		result = val + incr;
+	}
+	else {
+		/*
+		 *  下の計算式で，val + incr と maxval2 + 1 が TickType で表
+		 *  せる範囲を超える場合があるが，オーバフローしても求まる値は
+		 *  正しいため差し支えない
+		 */
+		result = (val + incr) - (maxval2 + 1U);
+	}
+	return(result);
+}
+
+/*
+ *  ティック値の差
+ */
+LOCAL_INLINE TickType
+diff_tick(TickType val1, TickType val2, TickType maxval2)
+{
+	TickType result;
+
+	if (val1 >= val2) {
+		result = val1 - val2;
+	}
+	else {
+		/*
+		 *  下の計算式で，val1 - val2 と maxval2 + 1 が TickType で表せ
+		 *  る範囲を超える場合があるが，オーバフローしても求まる値は正
+		 *  しいため差し支えない
+		 */
+		result = (val1 - val2) + (maxval2 + 1U);
+	}
+	return(result);
+}
+
+/*
+ *  カウンタの現在値取得
+ *  ソフトウェアカウンタの場合, CNTCBのcurvalデータを返す
+ *  ハードウェアカウンタの場合, 最新の現在時間を返す
+ */
+LOCAL_INLINE TickType
+get_curval(const CNTCB *p_cntcb, CounterType cntid)
+{
+	TickType curval;
+
+	/* カウンタ値の取得 */
+	if (is_hwcnt(cntid)) {
+		curval = (hwcntinib_table[cntid].get)();
+	}
+	else {
+		curval = p_cntcb->curval;
+	}
+
+	return(curval);
+}
+
+/*
+ *  指定した相対時間からのカウンタ値取得(APIからの取得)
+ */
+extern TickType get_reltick(const CNTCB *p_cntcb, TickType relval);
+
+/*
+ *  指定した絶対時間からのカウンタ値取得(APIからの取得)
+ */
+extern TickType get_abstick(const CNTCB *p_cntcb, TickType absval);
+
+/*
+ *  カウンタ機能の初期化
+ */
+extern void counter_initialize(void);
+
+/*
+ *  カウンタ機能の終了処理
+ */
+extern void counter_terminate(void);
+
+/*
+ *  カウンタ満了キューへの挿入
+ */
+extern void insert_cnt_expr_que(CNTEXPINFO *p_cntexpinfo, CNTCB *p_cntcb);
+
+/*
+ *  カウンタ満了キューから削除
+ */
+extern void delete_cnt_expr_que(CNTEXPINFO *p_cntexpinfo, CNTCB *p_cntcb);
+
+/*
+ *  カウンタの満了処理
+ */
+extern void expire_process(CNTCB *p_cntcb, CounterType cntid);
+
+/*
+ *  ハードウェアカウンタ満了処理
+ */
+extern void notify_hardware_counter(CounterType cntid);
+
+/*
+ *  カウンタのインクリメント
+ *
+ *  条件：割込み禁止状態で呼ばれる
+ */
+extern StatusType incr_counter_process(CNTCB *p_cntcb, CounterType CounterID);
+
+/*
+ *  アラーム満了によるカウンタのインクリメント
+ *
+ *  条件：割込み禁止状態で呼ばれる
+ */
+extern StatusType incr_counter_action(OSAPCB *p_expire_osapcb, CounterType CounterID);
+
+/*
+ *  OSAP所属するカウンタの強制終了
+ */
+extern void force_term_osap_counter(OSAPCB *p_osapcb);
+
+#endif /* TOPPERS_COUNTER_H */
Index: /atk2-sc3_fl850f1l/kernel/counter_manage.c
===================================================================
--- /atk2-sc3_fl850f1l/kernel/counter_manage.c	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/counter_manage.c	(revision 117)
@@ -0,0 +1,403 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2004-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: counter_manage.c 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		カウンタ管理モジュール
+ */
+
+#include "kernel_impl.h"
+#include "check.h"
+#include "counter.h"
+
+/*
+ *  トレースログマクロのデフォルト定義
+ */
+#ifndef LOG_INCCNT_ENTER
+#define LOG_INCCNT_ENTER(cntid)
+#endif /* LOG_INCCNT_ENTER */
+
+#ifndef LOG_INCCNT_LEAVE
+#define LOG_INCCNT_LEAVE(ercd)
+#endif /* LOG_INCCNT_LEAVE */
+
+#ifndef LOG_GETCNT_ENTER
+#define LOG_GETCNT_ENTER(cntid)
+#endif /* LOG_GETCNT_ENTER */
+
+#ifndef LOG_GETCNT_LEAVE
+#define LOG_GETCNT_LEAVE(ercd, p_val)
+#endif /* LOG_GETCNT_LEAVE */
+
+#ifndef LOG_GETEPS_ENTER
+#define LOG_GETEPS_ENTER(cntid, p_val)
+#endif /* LOG_GETEPS_ENTER */
+
+#ifndef LOG_GETEPS_LEAVE
+#define LOG_GETEPS_LEAVE(ercd, p_val, p_eval)
+#endif /* LOG_GETEPS_LEAVE */
+
+/*
+ *  カウンタのインクリメント
+ */
+#ifdef TOPPERS_IncrementCounter
+
+StatusType
+IncrementCounter(CounterType CounterID)
+{
+	StatusType	ercd = E_OK;
+	CNTCB		*p_cntcb;
+	OSAPCB		*p_osapcb;
+
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_INCREMENTCOUNTER);
+	CHECK_ID(CounterID < tnum_counter);
+	CHECK_ID(CounterID >= tnum_hardcounter);
+
+	p_cntcb = get_cntcb(CounterID);
+	CHECK_RIGHT(p_cntcb->p_cntinib->acsbtmp);
+
+	p_osapcb = p_cntcb->p_cntinib->p_osapcb;
+	x_nested_lock_os_int();
+
+	/* カウンタ所属のOSAPの状態をチェック */
+	D_CHECK_ACCESS((p_osapcb->osap_stat == APPLICATION_ACCESSIBLE) ||
+				   ((p_osapcb->osap_stat == APPLICATION_RESTARTING) &&
+					(p_osapcb == p_runosap)));
+
+	/*
+	 *  カウンタのインクリメント
+	 *  エラーの場合はincr_counter_processでエラーフック呼び出しているので，
+	 *  ここでは，エラーフックを呼び出さない
+	 */
+	ercd = incr_counter_process(p_cntcb, CounterID);
+
+  d_exit_no_errorhook:
+	x_nested_unlock_os_int();
+  exit_no_errorhook:
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+  d_exit_errorhook:
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.cntid = CounterID;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_IncrementCounter);
+	goto d_exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_IncrementCounter */
+
+/*
+ *  カウンタ値の参照
+ */
+#ifdef TOPPERS_GetCounterValue
+
+StatusType
+GetCounterValue(CounterType CounterID, TickRefType Value)
+{
+	StatusType	ercd = E_OK;
+	CNTCB		*p_cntcb;
+	TickType	curval;
+	OSAPCB		*p_osapcb;
+
+	LOG_GETCNT_ENTER(CounterID);
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_GETCOUNTERVALUE);
+	CHECK_ID(CounterID < tnum_counter);
+	CHECK_PARAM_POINTER(Value);
+	CHECK_MEM_WRITE(Value, TickType);
+	p_cntcb = get_cntcb(CounterID);
+	CHECK_RIGHT(p_cntcb->p_cntinib->acsbtmp);
+
+	/*
+	 *  内部処理のため，コンフィギュレーション設定値の２倍＋１までカウント
+	 *  アップするのでカウンタ値が設定値よりも大きい場合は設定値を減算する
+	 *
+	 *  *Value を直接操作してもよいが,局所変数がレジスタに割当てられること
+	 *  による速度を期待している
+	 */
+	p_osapcb = p_cntcb->p_cntinib->p_osapcb;
+	x_nested_lock_os_int();
+
+	/* カウンタ所属のOSAPの状態をチェック */
+	D_CHECK_ACCESS((p_osapcb->osap_stat == APPLICATION_ACCESSIBLE) ||
+				   ((p_osapcb->osap_stat == APPLICATION_RESTARTING) &&
+					(p_osapcb == p_runosap)));
+
+	curval = get_curval(p_cntcb, CounterID);
+	x_nested_unlock_os_int();
+
+	if (curval > p_cntcb->p_cntinib->maxval) {
+		curval -= (p_cntcb->p_cntinib->maxval + 1U);
+	}
+	*Value = curval;
+
+  exit_no_errorhook:
+	LOG_GETCNT_LEAVE(ercd, Value);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+  d_exit_errorhook:
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.cntid = CounterID;
+	_errorhook_par2.p_val = Value;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_GetCounterValue);
+#endif /* CFG_USE_ERRORHOOK */
+  d_exit_no_errorhook:
+	x_nested_unlock_os_int();
+	goto exit_no_errorhook;
+}
+
+#endif /* TOPPERS_GetCounterValue */
+
+/*
+ *  経過カウンタ値の参照
+ */
+#ifdef TOPPERS_GetElapsedValue
+
+StatusType
+GetElapsedValue(CounterType CounterID, TickRefType Value, TickRefType ElapsedValue)
+{
+	StatusType	ercd = E_OK;
+	CNTCB		*p_cntcb;
+	TickType	curval;
+	OSAPCB		*p_osapcb;
+
+	LOG_GETEPS_ENTER(CounterID, Value);
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_GETELAPSEDVALUE);
+	CHECK_ID(CounterID < tnum_counter);
+	CHECK_PARAM_POINTER(Value);
+	CHECK_PARAM_POINTER(ElapsedValue);
+	CHECK_MEM_RW(Value,  TickType);
+	CHECK_MEM_WRITE(ElapsedValue, TickType);
+	p_cntcb = get_cntcb(CounterID);
+	CHECK_RIGHT(p_cntcb->p_cntinib->acsbtmp);
+
+	CHECK_VALUE(*Value <= p_cntcb->p_cntinib->maxval);
+
+	/*
+	 *  内部処理のため，コンフィギュレーション設定値の２倍＋１までカウント
+	 *  アップするのでカウンタ値が設定値よりも大きい場合は設定値を減算する
+	 */
+	p_osapcb = p_cntcb->p_cntinib->p_osapcb;
+	x_nested_lock_os_int();
+
+	/* カウンタ所属のOSAPの状態をチェック */
+	D_CHECK_ACCESS((p_osapcb->osap_stat == APPLICATION_ACCESSIBLE) ||
+				   ((p_osapcb->osap_stat == APPLICATION_RESTARTING) &&
+					(p_osapcb == p_runosap)));
+
+	curval = get_curval(p_cntcb, CounterID);
+	x_nested_unlock_os_int();
+
+	if (curval > p_cntcb->p_cntinib->maxval) {
+		curval -= (p_cntcb->p_cntinib->maxval + 1U);
+	}
+	*ElapsedValue = diff_tick(curval, *Value, p_cntcb->p_cntinib->maxval);
+	*Value = curval;
+
+  exit_no_errorhook:
+	LOG_GETEPS_LEAVE(ercd, Value, ElapsedValue);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+  d_exit_errorhook:
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.cntid = CounterID;
+	_errorhook_par2.p_val = Value;
+	_errorhook_par3.p_eval = ElapsedValue;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_GetElapsedValue);
+#endif /* CFG_USE_ERRORHOOK */
+  d_exit_no_errorhook:
+	x_nested_unlock_os_int();
+	goto exit_no_errorhook;
+}
+
+#endif /* TOPPERS_GetElapsedValue */
+
+/*
+ *  ハードウェアカウンタ満了処理
+ *
+ *  割込みルーチンより実行される
+ */
+#ifdef TOPPERS_notify_hardware_counter
+
+void
+notify_hardware_counter(CounterType cntid)
+{
+	CNTCB *p_cntcb;
+
+	p_cntcb = get_cntcb(cntid);
+
+	/* カウンタ満了処理中はOS割込みを禁止 */
+	x_nested_lock_os_int();
+
+	/*
+	 *  ハードウェアカウンタに対応するC2ISRが起動した際に，
+	 *  割込み要求のクリア処理を実行する
+	 */
+	(hwcntinib_table[cntid].intclear)();
+
+	expire_process(p_cntcb, cntid);
+
+	x_nested_unlock_os_int();
+}
+
+#endif /* TOPPERS_notify_hardware_counter */
+
+/*
+ *  カウンタのインクリメント
+ *
+ *  条件：割込み禁止状態で呼ばれる
+ */
+#ifdef TOPPERS_incr_counter_process
+
+StatusType
+incr_counter_process(CNTCB *p_cntcb, CounterType CounterID)
+{
+	StatusType	ercd = E_OK;
+	TickType	newval;
+
+	LOG_INCCNT_ENTER(CounterID);
+
+	/*
+	 *  カウンタが操作中(IncrementCounterのネスト）の場合エラー
+	 *  ※独自仕様
+	 */
+	D_CHECK_STATE(p_cntcb->cstat == CS_NULL);
+
+	p_cntcb->cstat = CS_DOING;
+
+	newval = add_tick(p_cntcb->curval, 1U, p_cntcb->p_cntinib->maxval2);
+
+	p_cntcb->curval = newval;
+
+	if (p_runisr == NULL) {
+		p_cntcb->p_prevcntcb = p_runtsk->p_lastcntcb;
+		p_runtsk->p_lastcntcb = p_cntcb;
+	}
+
+	expire_process(p_cntcb, CounterID);
+
+	if (p_runisr == NULL) {
+		p_runtsk->p_lastcntcb = p_cntcb->p_prevcntcb;
+	}
+
+	p_cntcb->cstat = CS_NULL;
+
+  d_exit_no_errorhook:
+	LOG_INCCNT_LEAVE(ercd);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  d_exit_errorhook:
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.cntid = CounterID;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_IncrementCounter);
+	goto d_exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_incr_counter_process */
+
+/*
+ *  アラーム満了によるカウンタのインクリメント
+ *
+ *  条件：割込み禁止状態で呼ばれる
+ */
+#ifdef TOPPERS_incr_counter_action
+
+StatusType
+incr_counter_action(OSAPCB *p_expire_osapcb, CounterType CounterID)
+{
+	StatusType	ercd = E_OK;
+	CNTCB		*p_cntcb;
+	OSAPCB		*p_osapcb;
+
+	p_cntcb = get_cntcb(CounterID);
+	p_osapcb = p_cntcb->p_cntinib->p_osapcb;
+	/* 満了点所属のOSAP及びインクリメントカウンタ所属のOSAPの状態をチェック */
+	D_CHECK_ACCESS((p_osapcb->osap_stat == APPLICATION_ACCESSIBLE) || (p_expire_osapcb == p_osapcb));
+
+	ercd = incr_counter_process(p_cntcb, CounterID);
+
+  d_exit_no_errorhook:
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  d_exit_errorhook:
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.cntid = CounterID;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_IncrementCounter);
+	goto d_exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_incr_counter_action */
Index: /atk2-sc3_fl850f1l/kernel/event.c
===================================================================
--- /atk2-sc3_fl850f1l/kernel/event.c	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/event.c	(revision 117)
@@ -0,0 +1,346 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2004-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: event.c 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		イベント管理モジュール
+ */
+
+#include "kernel_impl.h"
+#include "check.h"
+#include "task.h"
+
+/*
+ *  トレースログマクロのデフォルト定義
+ */
+#ifndef LOG_TSKSTAT
+#define LOG_TSKSTAT(p_tcb)
+#endif /* LOG_TSKSTAT */
+
+#ifndef LOG_SETEVT_ENTER
+#define LOG_SETEVT_ENTER(tskid, mask)
+#endif /* LOG_SETEVT_ENTER */
+
+#ifndef LOG_SETEVT_LEAVE
+#define LOG_SETEVT_LEAVE(ercd)
+#endif /* LOG_SETEVT_LEAVE */
+
+#ifndef LOG_CLREVT_ENTER
+#define LOG_CLREVT_ENTER(p_runtsk, mask)
+#endif /* LOG_CLREVT_ENTER */
+
+#ifndef LOG_CLREVT_LEAVE
+#define LOG_CLREVT_LEAVE(ercd)
+#endif /* LOG_CLREVT_LEAVE */
+
+#ifndef LOG_GETEVT_ENTER
+#define LOG_GETEVT_ENTER(tskid)
+#endif /* LOG_GETEVT_ENTER */
+
+#ifndef LOG_GETEVT_LEAVE
+#define LOG_GETEVT_LEAVE(ercd, tskid, p_mask)
+#endif /* LOG_GETEVT_LEAVE */
+
+#ifndef LOG_WAIEVT_ENTER
+#define LOG_WAIEVT_ENTER(p_runtsk, mask)
+#endif /* LOG_WAIEVT_ENTER */
+
+#ifndef LOG_WAIEVT_LEAVE
+#define LOG_WAIEVT_LEAVE(ercd)
+#endif /* LOG_WAIEVT_LEAVE */
+
+/*
+ *  イベントのセット
+ */
+#ifdef TOPPERS_SetEvent
+
+StatusType
+SetEvent(TaskType TaskID, EventMaskType Mask)
+{
+	StatusType	ercd = E_OK;
+	TCB			*p_tcb;
+	OSAPCB		*p_osapcb;
+
+	LOG_SETEVT_ENTER(TaskID, Mask);
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_SETEVENT);
+	CHECK_ID(TaskID < tnum_task);
+	CHECK_ACCESS(TaskID < tnum_exttask);
+	p_tcb = get_tcb(TaskID);
+	CHECK_RIGHT(p_tcb->p_tinib->acsbtmp);
+
+	p_osapcb = p_tcb->p_tinib->p_osapcb;
+	x_nested_lock_os_int();
+
+	/* タスク所属のOSAPの状態をチェック */
+	D_CHECK_ACCESS((p_osapcb->osap_stat == APPLICATION_ACCESSIBLE) ||
+				   ((p_osapcb->osap_stat == APPLICATION_RESTARTING) &&
+					(p_osapcb == p_runosap)));
+	D_CHECK_STATE(p_tcb->tstat != SUSPENDED);
+
+	p_tcb->curevt |= Mask;
+	if ((p_tcb->curevt & p_tcb->waievt) != EVTMASK_NONE) {
+		p_tcb->waievt = EVTMASK_NONE;
+		if ((make_runnable(p_tcb) != FALSE) && (callevel_stat == TCL_TASK)) {
+			dispatch();
+		}
+	}
+
+  d_exit_no_errorhook:
+	x_nested_unlock_os_int();
+  exit_no_errorhook:
+	LOG_SETEVT_LEAVE(ercd);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+  d_exit_errorhook:
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.tskid = TaskID;
+	_errorhook_par2.mask = Mask;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_SetEvent);
+	goto d_exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_SetEvent */
+
+/*
+ *  イベントのクリア
+ */
+#ifdef TOPPERS_ClearEvent
+
+StatusType
+ClearEvent(EventMaskType Mask)
+{
+	StatusType ercd = E_OK;
+
+	LOG_CLREVT_ENTER(p_runtsk, Mask);
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_CLEAREVENT);
+	CHECK_ACCESS(TSKID(p_runtsk) < tnum_exttask);
+
+	x_nested_lock_os_int();
+	p_runtsk->curevt &= ~Mask;
+
+  d_exit_no_errorhook:
+	x_nested_unlock_os_int();
+  exit_no_errorhook:
+	LOG_CLREVT_LEAVE(ercd);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.mask = Mask;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_ClearEvent);
+	goto d_exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_ClearEvent */
+
+/*
+ *  イベントの状態参照
+ */
+#ifdef TOPPERS_GetEvent
+
+StatusType
+GetEvent(TaskType TaskID, EventMaskRefType Event)
+{
+	StatusType	ercd = E_OK;
+	TCB			*p_tcb;
+	OSAPCB		*p_osapcb;
+
+	LOG_GETEVT_ENTER(TaskID);
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_GETEVENT);
+	CHECK_ID(TaskID < tnum_task);
+	CHECK_ACCESS(TaskID < tnum_exttask);
+	CHECK_PARAM_POINTER(Event);
+	CHECK_MEM_WRITE(Event, EventMaskType);
+	p_tcb = get_tcb(TaskID);
+	CHECK_RIGHT(p_tcb->p_tinib->acsbtmp);
+
+	p_osapcb = p_tcb->p_tinib->p_osapcb;
+	x_nested_lock_os_int();
+
+	/* タスク所属のOSAPの状態をチェック */
+	D_CHECK_ACCESS((p_osapcb->osap_stat == APPLICATION_ACCESSIBLE) ||
+				   ((p_osapcb->osap_stat == APPLICATION_RESTARTING) &&
+					(p_osapcb == p_runosap)));
+	/* 対象タスクが休止状態の場合はエラーとする */
+	D_CHECK_STATE((p_tcb->tstat != SUSPENDED) || (p_tcb == p_runtsk));
+
+	*Event = p_tcb->curevt;
+
+  d_exit_no_errorhook:
+	x_nested_unlock_os_int();
+  exit_no_errorhook:
+	LOG_GETEVT_LEAVE(ercd, TaskID, Event);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+  d_exit_errorhook:
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.tskid = TaskID;
+	_errorhook_par2.p_mask = Event;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_GetEvent);
+	goto d_exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_GetEvent */
+
+/*
+ *  イベント待ち
+ */
+#ifdef TOPPERS_WaitEvent
+
+StatusType
+WaitEvent(EventMaskType Mask)
+{
+	StatusType ercd = E_OK;
+
+	LOG_WAIEVT_ENTER(p_runtsk, Mask);
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_WAITEVENT);
+	CHECK_ACCESS(TSKID(p_runtsk) < tnum_exttask);
+	CHECK_RESOURCE(p_runtsk->p_lastrescb == NULL);
+
+	x_nested_lock_os_int();
+	if ((p_runtsk->curevt & Mask) == EVTMASK_NONE) {
+		p_runtsk->curpri = p_runtsk->p_tinib->inipri;
+		p_runtsk->tstat = WAITING;
+		LOG_TSKSTAT(p_runtsk);
+		p_runtsk->waievt = Mask;
+		make_non_runnable();
+		dispatch();
+		p_runtsk->curpri = p_runtsk->p_tinib->exepri;
+	}
+
+  d_exit_no_errorhook:
+	x_nested_unlock_os_int();
+  exit_no_errorhook:
+	LOG_WAIEVT_LEAVE(ercd);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.mask = Mask;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_WaitEvent);
+	goto d_exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_WaitEvent */
+
+/*
+ *  満了処理専用イベントのセット
+ *
+ *  条件：OS割込み禁止状態で呼ばれる
+ */
+#ifdef TOPPERS_set_event_action
+
+StatusType
+set_event_action(OSAPCB *p_expire_osapcb, TaskType TaskID, EventMaskType Mask)
+{
+	StatusType	ercd;
+	TCB			*p_tcb;
+	OSAPCB		*p_osapcb;
+
+	LOG_SETEVT_ENTER(TaskID, Mask);
+	p_tcb = get_tcb(TaskID);
+
+	p_osapcb = p_tcb->p_tinib->p_osapcb;
+	/* 満了点所属のOSAP及びセットイベント対象タスク所属のOSAPの状態をチェック */
+	D_CHECK_ACCESS((p_osapcb->osap_stat == APPLICATION_ACCESSIBLE) || (p_expire_osapcb == p_osapcb));
+	D_CHECK_STATE(p_tcb->tstat != SUSPENDED);
+	ercd = E_OK;
+
+	p_tcb->curevt |= Mask;
+	if ((p_tcb->curevt & p_tcb->waievt) != EVTMASK_NONE) {
+		p_tcb->waievt = EVTMASK_NONE;
+		(void) make_runnable(p_tcb);
+	}
+
+  d_exit_no_errorhook:
+	LOG_SETEVT_LEAVE(ercd);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  d_exit_errorhook:
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.tskid = TaskID;
+	_errorhook_par2.mask = Mask;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_SetEvent);
+	goto d_exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_set_event_action */
Index: /atk2-sc3_fl850f1l/kernel/genoffset.tf
===================================================================
--- /atk2-sc3_fl850f1l/kernel/genoffset.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/genoffset.tf	(revision 117)
@@ -0,0 +1,159 @@
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$  Copyright (C) 2011-2015 by Center for Embedded Computing Systems
+$              Graduate School of Information Science, Nagoya Univ., JAPAN
+$  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+$  Copyright (C) 2011-2013 by Spansion LLC, USA
+$  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+$  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+$  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+$  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+$  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+$  Copyright (C) 2011-2015 by Witz Corporation
+$  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+$  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+$  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+$
+$  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+$  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+$  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+$  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+$      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+$      スコード中に含まれていること．
+$  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+$      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+$      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+$      の無保証規定を掲載すること．
+$  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+$      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+$      と．
+$    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+$        作権表示，この利用条件および下記の無保証規定を掲載すること．
+$    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+$        報告すること．
+$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+$      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+$      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+$      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+$      免責すること．
+$
+$  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+$  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+$  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+$  用する者に対して，AUTOSARパートナーになることを求めている．
+$
+$  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+$  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+$  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$  の責任を負わない．
+$
+$  $Id: genoffset.tf 187 2015-06-25 03:39:04Z t_ishikawa $
+$
+
+$
+$  #defineディレクティブの生成
+$
+$FUNCTION DEFINE$
+	#define $ARGV[1]$$TAB$$FORMAT("%d", +ARGV[2])$$NL$
+$END$
+
+$
+$  ビットのサーチ
+$
+$FUNCTION SEARCH_BIT$
+	$_val = ARGV[1]$
+	$FOREACH _val_bit RANGE(0,7)$
+		$IF (_val & 1) != 0$
+			$RESULT = _val_bit$
+		$END$
+		$_val = _val >> 1$
+	$END$
+$END$
+
+$
+$  ビットフィールドのオフセットとビット位置の定義の生成
+$
+$FUNCTION DEFINE_BIT$
+	$label = ARGV[1]$
+	$struct_size = ARGV[2]$
+	$output_size = ARGV[3]$
+
+	$top = SYMBOL(label)$
+	$IF !LENGTH(top)$
+		$ERROR$$FORMAT("label %1% not found", label)$$END$
+	$ELSE$
+		$val = 0$
+		$FOREACH i RANGE(0,struct_size-1)$
+			$tmp_val = PEEK(top + i, 1)$
+			$IF val == 0 && tmp_val != 0$
+				$val = tmp_val$
+				$offset = i$
+			$END$
+		$END$
+
+		$IF val == 0$
+			$ERROR$$FORMAT("bit not found in %1%", ARGV[1])$$END$
+		$ELSE$
+			$val_bit = SEARCH_BIT(val)$
+			$RESULT = {}$
+			$IF EQ(output_size, "W")$
+				$IF SIL_ENDIAN_BIG$
+					$val_bit = val_bit + 24 - ((offset & 0x03) << 3)$
+				$ELSE$
+					$val_bit = val_bit + ((offset & 0x03) << 3)$
+				$END$
+				$offset = offset & ~0x03$
+			$ELSE$$IF EQ(output_size, "H")$
+				$IF SIL_ENDIAN_BIG$
+					$val_bit = val_bit + 8 - ((offset & 0x01) << 3)$
+				$ELSE$
+					$val_bit = val_bit + ((offset & 0x01) << 3)$
+				$END$
+				$offset = offset & ~0x01$
+			$END$$END$
+		$END$
+
+		#define $label$$TAB$$FORMAT("%d", +offset)$$NL$
+		#define $label$_bit$TAB$$FORMAT("%d", +val_bit)$$NL$
+		#define $label$_mask$TAB$$FORMAT("0x%x", 1 << val_bit)$$NL$
+	$END$
+$END$
+
+$
+$  バイト配置のチェック
+$
+$FUNCTION MAGIC_CHECK$
+	$size = ARGV[1]$
+	$check = ARGV[2]$
+
+	$label = FORMAT("MAGIC_%d", +size)$
+	$top = SYMBOL(label)$
+	$IF !LENGTH(top)$
+		$ERROR$$FORMAT("label %1% not found", label)$$END$
+	$ELSE$
+		$FOREACH offset RANGE(1,size)$
+			$IF SIL_ENDIAN_BIG$
+				$val = PEEK(top + offset - 1, 1)$
+			$ELSE$
+				$val = PEEK(top + size - offset, 1)$
+			$END$
+			$IF val != AT(check, offset - 1)$
+				$ERROR$$FORMAT("value check of %1% failed", label)$$END$
+			$END$
+		$END$
+	$END$
+$END$
+
+$MAGIC_CHECK(1, { 0x12 })$
+$MAGIC_CHECK(2, { 0x12, 0x34 })$
+$MAGIC_CHECK(4, { 0x12, 0x34, 0x56, 0x78 })$
+
+$
+$  ファイルヘッダの生成
+$
+$FILE "offset.h"$
+$NL$
Index: /atk2-sc3_fl850f1l/kernel/interrupt.c
===================================================================
--- /atk2-sc3_fl850f1l/kernel/interrupt.c	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/interrupt.c	(revision 117)
@@ -0,0 +1,228 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2004-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: interrupt.c 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		割込み制御モジュール
+ */
+
+#include "kernel_impl.h"
+#include "interrupt.h"
+
+#ifdef TOPPERS_interrupt_initialize
+/*
+ *  実行中のC2ISR
+ */
+ISRCB	*p_runisr;
+
+/*
+ *  割込み管理機能内部で使用する変数の定義
+ */
+
+/*
+ *  SuspendAllInterrupts のネスト回数
+ *
+ *  sus_all_cntはシステム全体でのネスト回数
+ *  sus_all_cnt_ctxは処理単位に閉じたネスト回数
+ */
+uint8	sus_all_cnt = 0U;
+uint8	sus_all_cnt_ctx = 0U;
+
+/*
+ *  SuspendOSInterrupts のネスト回数
+ *
+ *  sus_os_cntはシステム全体でのネスト回数
+ *  sus_os_cnt_ctxは処理単位に閉じたネスト回数
+ */
+uint8	sus_os_cnt = 0U;
+uint8	sus_os_cnt_ctx = 0U;
+
+/*
+ *  割込み管理機能の初期化
+ */
+#ifndef OMIT_INITIALIZE_INTERRUPT
+
+void
+interrupt_initialize(void)
+{
+	ISRType				i;
+	InterruptNumberType	j;
+	ISRCB				*p_isrcb;
+	const INTINIB		*p_intinib;
+
+	p_runisr = NULL;
+
+	sus_all_cnt = 0U;
+	sus_all_cnt_ctx = 0U;
+	sus_os_cnt = 0U;
+	sus_os_cnt_ctx = 0U;
+
+	for (i = 0U; i < tnum_isr2; i++) {
+		p_isrcb = &(isrcb_table[i]);
+		p_isrcb->p_isrinib = &(isrinib_table[i]);
+		p_isrcb->p_lastrescb = NULL;
+#ifdef CFG_USE_PROTECTIONHOOK
+		p_isrcb->calltfn = FALSE;
+#endif /* CFG_USE_PROTECTIONHOOK */
+	}
+
+	for (j = 0U; j < tnum_intno; j++) {
+		p_intinib = &(intinib_table[j]);
+		x_config_int(p_intinib->intno, p_intinib->intatr, p_intinib->intpri);
+	}
+}
+
+#endif /* OMIT_INITIALIZE_INTERRUPT */
+#endif /* TOPPERS_interrupt_initialize */
+
+/*
+ *  割込み禁止の解除
+ */
+#ifdef TOPPERS_release_interrupts
+
+void
+release_interrupts(OSServiceIdType serviceId)
+{
+#ifdef CFG_USE_ERRORHOOK
+	boolean call_error_hook = FALSE;
+#endif /* CFG_USE_ERRORHOOK */
+
+	if (sus_os_cnt_ctx > 0U) {
+		sus_os_cnt -= sus_os_cnt_ctx;
+		sus_os_cnt_ctx = 0U;
+
+		if (sus_os_cnt == 0U) {
+			LEAVE_CALLEVEL(TSYS_SUSOSINT);
+			x_nested_unlock_os_int();
+		}
+#ifdef CFG_USE_ERRORHOOK
+		call_error_hook = TRUE;
+#endif /* CFG_USE_ERRORHOOK */
+	}
+
+	if (sus_all_cnt_ctx > 0U) {
+		sus_all_cnt -= sus_all_cnt_ctx;
+		sus_all_cnt_ctx = 0U;
+		if (sus_all_cnt == 0U) {
+			LEAVE_CALLEVEL(TSYS_SUSALLINT);
+			ASSERT((callevel_stat & TSYS_DISALLINT) == TSYS_NULL);
+			x_unlock_all_int();
+		}
+#ifdef CFG_USE_ERRORHOOK
+		call_error_hook = TRUE;
+#endif /* CFG_USE_ERRORHOOK */
+	}
+
+	/* C2ISRの場合のみDisAllを解除する */
+	if (serviceId == OSServiceId_ISRMissingEnd) {
+		if ((callevel_stat & TSYS_DISALLINT) != TSYS_NULL) {
+			LEAVE_CALLEVEL(TSYS_DISALLINT);
+			x_unlock_all_int();
+#ifdef CFG_USE_ERRORHOOK
+			call_error_hook = TRUE;
+#endif /* CFG_USE_ERRORHOOK */
+		}
+	}
+
+#ifdef CFG_USE_ERRORHOOK
+	if ((serviceId != OSServiceId_Invalid) && (call_error_hook != FALSE)) {
+		call_errorhook(E_OS_DISABLEDINT, serviceId);
+	}
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_release_interrupts */
+
+/*
+ *  C2ISR終了時のチェック関数
+ */
+#ifdef TOPPERS_exit_isr2
+
+/*
+ *  C2ISRの全リソース返却
+ */
+LOCAL_INLINE void
+release_isrresources(ISRCB *p_isrcb)
+{
+
+	/* OS割込み禁止状態以上で来るはず */
+	if (p_isrcb->p_lastrescb != NULL) {
+		do {
+			x_set_ipm(p_isrcb->p_lastrescb->prevpri);
+			p_isrcb->p_lastrescb->lockflg = FALSE;
+			p_isrcb->p_lastrescb = p_isrcb->p_lastrescb->p_prevrescb;
+		} while (p_isrcb->p_lastrescb != NULL);
+
+#ifdef CFG_USE_ERRORHOOK
+		call_errorhook(E_OS_RESOURCE, OSServiceId_ISRMissingEnd);
+#endif /* CFG_USE_ERRORHOOK */
+	}
+}
+
+void
+exit_isr2(void)
+{
+	x_nested_lock_os_int();
+
+	release_interrupts(OSServiceId_ISRMissingEnd);
+
+	release_isrresources(p_runisr);
+
+	x_nested_unlock_os_int();
+}
+
+#endif /* TOPPERS_exit_isr2 */
Index: /atk2-sc3_fl850f1l/kernel/interrupt.h
===================================================================
--- /atk2-sc3_fl850f1l/kernel/interrupt.h	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/interrupt.h	(revision 117)
@@ -0,0 +1,183 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2004-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: interrupt.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		割込み管理機能
+ */
+
+#ifndef TOPPERS_INTERRUPT_H
+#define TOPPERS_INTERRUPT_H
+
+#include "resource.h"
+#include "osap.h"
+
+/*
+ *  優先度値の定義（内部表現）
+ */
+#define TPRI_MINISR		(-1)            /* 最低割込み優先度 */
+
+/*
+ *  ISRIDからISRCBを取り出すためのマクロ
+ */
+#define get_isrcb(isrid)	(&(isrcb_table[(isrid)]))
+
+/*
+ *  ISRCBからISRIDを取り出すためのマクロ
+ */
+#define ISR2ID(p_isrcb)	((ISRType) ((p_isrcb) - isrcb_table))
+
+#ifndef OMIT_INITIALIZE_INTERRUPT
+
+/*
+ *  割込み要求ライン初期化ブロック
+ */
+typedef struct interrupt_request_initialization_block {
+	InterruptNumberType	intno;          /* 割込み番号 */
+	AttributeType		intatr;         /* 割込み属性 */
+	PriorityType		intpri;         /* 割込み優先度 */
+#if defined(TOPPERS_CFG1_OUT) || defined(CFG_USE_STACKMONITORING)
+	MemorySizeType remain_stksz;        /* スタック残量チェック方式用スタックサイズ */
+#endif /* defined(TOPPERS_CFG1_OUT) || defined(CFG_USE_STACKMONITORING) */
+} INTINIB;
+
+/*
+ *  割込み要求ラインの数（Os_Lcfg.c）
+ */
+extern const InterruptNumberType	tnum_intno;
+
+/*
+ *  割込み要求ライン初期化ブロックのエリア（Os_Lcfg.c）
+ */
+extern const INTINIB				intinib_table[];
+
+/*
+ *  ISRCBから割込み番号を割出すマクロ
+ */
+#define GET_INTNO(p_isrcb)	((p_isrcb)->p_isrinib->p_intinib->intno)
+
+/*
+ *  ISRCBから割込み優先度を割出すマクロ
+ */
+#define GET_INTPRI(p_isrcb)	((p_isrcb)->p_isrinib->p_intinib->intpri)
+
+#endif /* OMIT_INITIALIZE_INTERRUPT */
+
+typedef struct isr_initialization_block {
+	const INTINIB	*p_intinib;     /* 割込み要求ライン初期化ブロックへのポインタ */
+	OSAPCB			*p_osapcb;      /* 所属するOSアプリケーションの管理ブロック */
+	uint32			acsbtmp;        /* アクセス許可OSアプリケーション ビットマップ */
+} ISRINIB;
+
+typedef struct isr_control_block {
+	const ISRINIB	*p_isrinib;
+	RESCB			*p_lastrescb;   /* 最後に獲得したリソース管理ブロックへのポインタ */
+#ifdef CFG_USE_PROTECTIONHOOK
+	boolean	calltfn;                /* 信頼関数呼び出し中フラグ */
+#endif /* CFG_USE_PROTECTIONHOOK */
+} ISRCB;
+
+/*
+ *  C2ISR数を保持する変数の宣言（Os_Lcfg.c）
+ */
+extern const ISRType	tnum_isr2;                         /* C2ISRの数 */
+
+/*
+ *  C2ISRの初期化ブロックのエリア（Os_Lcfg.c）
+ */
+extern const ISRINIB	isrinib_table[];
+
+/*
+ *  C2ISRの管理ブロックのエリア（Os_Lcfg.c）
+ */
+extern ISRCB			isrcb_table[];
+
+/*
+ *  実行中のC2ISR
+ *
+ *  C2ISRを実行していない時は，NULL にする
+ */
+extern ISRCB			*p_runisr;
+
+/*
+ *  SuspendAllInterrupts のネスト回数
+ */
+extern uint8			sus_all_cnt;
+extern uint8			sus_all_cnt_ctx;
+/*
+ *  SuspendOSInterrupts のネスト回数
+ */
+extern uint8			sus_os_cnt;
+extern uint8			sus_os_cnt_ctx;
+
+/*
+ *  割込み管理機能の初期化
+ */
+extern void interrupt_initialize(void);
+
+/*
+ *  割込み禁止の強制解除
+ */
+
+extern void release_interrupts(OSServiceIdType serviceId);
+
+/*
+ *  C2ISR終了時のチェック関数
+ */
+extern void exit_isr2(void);
+
+#endif /* TOPPERS_INTERRUPT_H */
Index: /atk2-sc3_fl850f1l/kernel/interrupt_manage.c
===================================================================
--- /atk2-sc3_fl850f1l/kernel/interrupt_manage.c	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/interrupt_manage.c	(revision 117)
@@ -0,0 +1,468 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2004-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: interrupt_manage.c 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		割込み管理モジュール
+ */
+
+#include "kernel_impl.h"
+#include "check.h"
+#include "interrupt.h"
+
+/*
+ *  トレースログマクロのデフォルト定義
+ */
+#ifndef LOG_DISINT_ENTER
+#define LOG_DISINT_ENTER()
+#endif /* LOG_DISINT_ENTER */
+
+#ifndef LOG_DISINT_LEAVE
+#define LOG_DISINT_LEAVE()
+#endif /* LOG_DISINT_LEAVE */
+
+#ifndef LOG_ENAINT_ENTER
+#define LOG_ENAINT_ENTER()
+#endif /* LOG_ENAINT_ENTER */
+
+#ifndef LOG_ENAINT_LEAVE
+#define LOG_ENAINT_LEAVE()
+#endif /* LOG_ENAINT_LEAVE */
+
+#ifndef LOG_SUSALL_ENTER
+#define LOG_SUSALL_ENTER()
+#endif /* LOG_SUSALL_ENTER */
+
+#ifndef LOG_SUSALL_LEAVE
+#define LOG_SUSALL_LEAVE()
+#endif /* LOG_SUSALL_LEAVE */
+
+#ifndef LOG_RSMALL_ENTER
+#define LOG_RSMALL_ENTER()
+#endif /* LOG_RSMALL_ENTER */
+
+#ifndef LOG_RSMALL_LEAVE
+#define LOG_RSMALL_LEAVE()
+#endif /* LOG_RSMALL_LEAVE */
+
+#ifndef LOG_SUSOSI_ENTER
+#define LOG_SUSOSI_ENTER()
+#endif /* LOG_SUSOSI_ENTER */
+
+#ifndef LOG_SUSOSI_LEAVE
+#define LOG_SUSOSI_LEAVE()
+#endif /* LOG_SUSOSI_LEAVE */
+
+#ifndef LOG_RSMOSI_ENTER
+#define LOG_RSMOSI_ENTER()
+#endif /* LOG_RSMOSI_ENTER */
+
+#ifndef LOG_RSMOSI_LEAVE
+#define LOG_RSMOSI_LEAVE()
+#endif /* LOG_RSMOSI_LEAVE */
+
+#ifndef LOG_GETISRID_ENTER
+#define LOG_GETISRID_ENTER()
+#endif /* LOG_GETISRID_ENTER */
+
+#ifndef LOG_GETISRID_LEAVE
+#define LOG_GETISRID_LEAVE(ercd)
+#endif /* LOG_GETISRID_LEAVE */
+
+#ifndef LOG_DISINTSRC_ENTER
+#define LOG_DISINTSRC_ENTER(isrid)
+#endif /* LOG_DISINTSRC_ENTER */
+
+#ifndef LOG_DISINTSRC_LEAVE
+#define	LOG_DISINTSRC_LEAVE(ercd)
+#endif /* LOG_DISINTSRC_LEAVE */
+
+#ifndef LOG_ENAINTSRC_ENTER
+#define LOG_ENAINTSRC_ENTER(isrid)
+#endif /* LOG_ENAINTSRC_ENTER */
+
+#ifndef LOG_ENAINTSRC_LEAVE
+#define	LOG_ENAINTSRC_LEAVE(ercd)
+#endif /* LOG_ENAINTSRC_LEAVE */
+
+/*
+ *  すべての割込みの禁止（高速簡易版）
+ *  全割込み禁止状態へ移行
+ */
+#ifdef TOPPERS_DisableAllInterrupts
+
+#ifndef OMIT_STANDARD_DISALLINT
+
+void
+DisableAllInterrupts(void)
+{
+	LOG_DISINT_ENTER();
+	if ((callevel_stat & (TSYS_DISALLINT | TSYS_SUSALLINT | TSYS_SUSOSINT)) == TSYS_NULL) {
+		x_lock_all_int();
+		ENTER_CALLEVEL(TSYS_DISALLINT);
+	}
+	LOG_DISINT_LEAVE();
+}
+
+#endif /* OMIT_STANDARD_DISALLINT */
+
+#endif /* TOPPERS_DisableAllInterrupts */
+
+/*
+ *  すべての割込みの許可（高速簡易版）
+ *  全割込み禁止状態を解除する
+ */
+#ifdef TOPPERS_EnableAllInterrupts
+
+#ifndef OMIT_STANDARD_DISALLINT
+
+void
+EnableAllInterrupts(void)
+{
+	LOG_ENAINT_ENTER();
+	if ((callevel_stat & (TSYS_SUSALLINT | TSYS_SUSOSINT)) == TSYS_NULL) {
+		if ((callevel_stat & TSYS_DISALLINT) != TSYS_NULL) {
+			LEAVE_CALLEVEL(TSYS_DISALLINT);
+			x_unlock_all_int();
+		}
+	}
+	LOG_ENAINT_LEAVE();
+}
+
+#endif /* OMIT_STANDARD_DISALLINT */
+
+#endif /* TOPPERS_EnableAllInterrupts */
+
+/*
+ *  全割込み禁止
+ *  CPU全ての割込みが対象の割込み禁止(ネストカウント有り)
+ */
+#ifdef TOPPERS_SuspendAllInterrupts
+
+void
+SuspendAllInterrupts(void)
+{
+#ifdef CFG_USE_ERRORHOOK
+	StatusType ercd;
+#endif /* CFG_USE_ERRORHOOK */
+
+	LOG_SUSALL_ENTER();
+	S_N_CHECK_DISALLINT();
+	/* ネスト回数の上限値超過 */
+	S_N_CHECK_LIMIT(sus_all_cnt != UINT8_INVALID);
+
+	if (sus_all_cnt == 0U) {
+		x_lock_all_int();
+		ENTER_CALLEVEL(TSYS_SUSALLINT);
+	}
+
+	sus_all_cnt++;
+	sus_all_cnt_ctx++;
+
+  exit_no_errorhook:
+	LOG_SUSALL_LEAVE();
+	return;
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	if (kerflg != FALSE) {
+		x_nested_lock_os_int();
+		call_errorhook(ercd, OSServiceId_SuspendAllInterrupts);
+		x_nested_unlock_os_int();
+		goto exit_no_errorhook;
+	}
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_SuspendAllInterrupts */
+
+/*
+ *  全割込み禁止解除
+ *  CPU全ての割込みが対象の割込み許可(ネストカウント有り)
+ */
+#ifdef TOPPERS_ResumeAllInterrupts
+
+void
+ResumeAllInterrupts(void)
+{
+#ifdef CFG_USE_ERRORHOOK
+	StatusType ercd;
+#endif /* CFG_USE_ERRORHOOK */
+
+	LOG_RSMALL_ENTER();
+	S_N_CHECK_DISALLINT();
+	S_N_CHECK_STATE(sus_all_cnt_ctx != 0U);
+
+	sus_all_cnt--;
+	sus_all_cnt_ctx--;
+
+	if (sus_all_cnt == 0U) {
+		LEAVE_CALLEVEL(TSYS_SUSALLINT);
+		x_unlock_all_int();
+	}
+
+  exit_no_errorhook:
+	LOG_RSMALL_LEAVE();
+	return;
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	if (kerflg != FALSE) {
+		x_nested_lock_os_int();
+		call_errorhook(ercd, OSServiceId_ResumeAllInterrupts);
+		x_nested_unlock_os_int();
+		goto exit_no_errorhook;
+	}
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_ResumeAllInterrupts */
+
+/*
+ *  OS割込みの禁止
+ *  C2ISRが対象の割込み禁止(ネストカウント有り)
+ */
+#ifdef TOPPERS_SuspendOSInterrupts
+
+void
+SuspendOSInterrupts(void)
+{
+#ifdef CFG_USE_ERRORHOOK
+	StatusType ercd;
+#endif /* CFG_USE_ERRORHOOK */
+
+	LOG_SUSOSI_ENTER();
+	S_N_CHECK_DISALLINT();
+	/* ネスト回数の上限値超過 */
+	S_N_CHECK_LIMIT(sus_os_cnt != UINT8_INVALID);
+
+	if (sus_os_cnt == 0U) {
+		x_suspend_lock_os_int();
+		ENTER_CALLEVEL(TSYS_SUSOSINT);
+	}
+
+	sus_os_cnt++;
+	sus_os_cnt_ctx++;
+
+  exit_no_errorhook:
+	LOG_SUSOSI_LEAVE();
+	return;
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+	call_errorhook(ercd, OSServiceId_SuspendOSInterrupts);
+	x_nested_unlock_os_int();
+	goto exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_SuspendOSInterrupts */
+
+/*
+ *  OS割込み禁止解除
+ *  C2ISRが対象の割込み許可(ネストカウント有り)
+ */
+#ifdef TOPPERS_ResumeOSInterrupts
+
+void
+ResumeOSInterrupts(void)
+{
+#ifdef CFG_USE_ERRORHOOK
+	StatusType ercd;
+#endif /* CFG_USE_ERRORHOOK */
+
+	LOG_RSMOSI_ENTER();
+	S_N_CHECK_DISALLINT();
+	S_N_CHECK_STATE(sus_os_cnt_ctx != 0U);
+
+	sus_os_cnt--;
+	sus_os_cnt_ctx--;
+
+	if (sus_os_cnt == 0U) {
+		LEAVE_CALLEVEL(TSYS_SUSOSINT);
+		x_resume_unlock_os_int();
+	}
+
+  exit_no_errorhook:
+	LOG_RSMOSI_LEAVE();
+	return;
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+	call_errorhook(ercd, OSServiceId_ResumeOSInterrupts);
+	x_nested_unlock_os_int();
+	goto exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_ResumeOSInterrupts */
+
+/*
+ *  C2ISR IDの取得
+ */
+#ifdef TOPPERS_GetISRID
+
+ISRType
+GetISRID(void)
+{
+	ISRType		isrid;
+	StatusType	ercd;
+
+	LOG_GETISRID_ENTER();
+	CHECK_CALLEVEL(CALLEVEL_GETISRID);
+
+	isrid = (p_runisr == NULL) ? INVALID_ISR : ISR2ID(p_runisr);
+
+  exit_finish:
+	LOG_GETISRID_LEAVE(isrid);
+	return(isrid);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+	/*
+	 *  エラー発生時はINVALID_ISRIDが返るが，エラーが発生したのか実行中の
+	 *  C2ISRが存在しないのか区別するため，エラーフックを呼ぶ
+	 */
+	call_errorhook(ercd, OSServiceId_GetISRID);
+	x_nested_unlock_os_int();
+#endif /* CFG_USE_ERRORHOOK */
+
+  exit_no_errorhook:
+	isrid = INVALID_ISR;
+	goto exit_finish;
+}
+
+#endif /* TOPPERS_GetISRID */
+
+/*
+ *  割込みの禁止
+ */
+#ifdef TOPPERS_DisableInterruptSource
+
+StatusType
+DisableInterruptSource(ISRType DisableISR)
+{
+	ISRCB		*p_isrcb;
+	StatusType	ercd;
+
+	LOG_DISINTSRC_ENTER(DisableISR);
+	CHECK_CALLEVEL(CALLEVEL_DISABLEINTERRUPTSOURCE);
+	CHECK_ID(DisableISR < tnum_isr2);
+	p_isrcb = get_isrcb(DisableISR);
+	CHECK_RIGHT(p_isrcb->p_isrinib->acsbtmp);
+
+	x_disable_int(GET_INTNO(p_isrcb));
+	ercd = E_OK;
+
+  exit_no_errorhook:
+	LOG_DISINTSRC_LEAVE(ercd);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.isrid = DisableISR;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_DisableInterruptSource);
+	x_nested_unlock_os_int();
+	goto exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_DisableInterruptSource */
+
+/*
+ *  割込みの許可
+ */
+#ifdef TOPPERS_EnableInterruptSource
+
+StatusType
+EnableInterruptSource(ISRType EnableISR)
+{
+	ISRCB		*p_isrcb;
+	StatusType	ercd;
+
+	LOG_ENAINTSRC_ENTER(EnableISR);
+	CHECK_CALLEVEL(CALLEVEL_ENABLEINTERRUPTSOURCE);
+	CHECK_ID(EnableISR < tnum_isr2);
+	p_isrcb = get_isrcb(EnableISR);
+	CHECK_RIGHT(p_isrcb->p_isrinib->acsbtmp);
+
+	x_enable_int(GET_INTNO(p_isrcb));
+	ercd = E_OK;
+
+  exit_no_errorhook:
+	LOG_ENAINTSRC_LEAVE(ercd);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.isrid = EnableISR;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_EnableInterruptSource);
+	x_nested_unlock_os_int();
+	goto exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_EnableInterruptSource */
Index: /atk2-sc3_fl850f1l/kernel/ioc.tf
===================================================================
--- /atk2-sc3_fl850f1l/kernel/ioc.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/ioc.tf	(revision 117)
@@ -0,0 +1,825 @@
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$  Copyright (C) 2012-2015 by Center for Embedded Computing Systems
+$              Graduate School of Information Science, Nagoya Univ., JAPAN
+$  Copyright (C) 2012-2015 by FUJI SOFT INCORPORATED, JAPAN
+$  Copyright (C) 2012-2013 by Spansion LLC, USA
+$  Copyright (C) 2012-2015 by NEC Communication Systems, Ltd., JAPAN
+$  Copyright (C) 2012-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+$  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+$  Copyright (C) 2012-2015 by Sunny Giken Inc., JAPAN
+$  Copyright (C) 2012-2015 by TOSHIBA CORPORATION, JAPAN
+$  Copyright (C) 2012-2015 by Witz Corporation
+$  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+$  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+$  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+$
+$  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+$  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+$  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+$  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+$      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+$      スコード中に含まれていること．
+$  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+$      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+$      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+$      の無保証規定を掲載すること．
+$  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+$      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+$      と．
+$    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+$        作権表示，この利用条件および下記の無保証規定を掲載すること．
+$    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+$        報告すること．
+$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+$      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+$      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+$      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+$      免責すること．
+$
+$  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+$  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+$  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+$  用する者に対して，AUTOSARパートナーになることを求めている．
+$
+$  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+$  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+$  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$  の責任を負わない．
+$
+$  $Id: ioc.tf 187 2015-06-25 03:39:04Z t_ishikawa $
+$
+
+$ =====================================================================
+$ IMPLEMENTATION_DATA_TYPE.CATEGORYの値を返す関数
+$ ARGV[1] = IMPLEMENTATION_DATA_TYPE.SHORT_NAME_PATH
+$ =====================================================================
+
+$FUNCTION GET_CATEGORY$
+	$datatypeid = 0$
+	$datatypecategory = "NULL"$
+
+	$FOREACH shortnamepath  IMPLEMENTATION_DATA_TYPE.SHORT_NAME_PATH.ID_LIST$
+		$IF EQ(shortnamepath , ARGV[1]) && LENGTH(IMPLEMENTATION_DATA_TYPE.CATEGORY[datatypeid])$
+			$datatypecategory = IMPLEMENTATION_DATA_TYPE.CATEGORY[datatypeid]$
+		$END$
+		$datatypeid = datatypeid + 1$
+	$END$
+	
+$	// 一致するCATEGORYが存在しないとエラー
+	$IF EQ(datatypecategory, "NULL")$
+		$ERROR ARGV[2]$$FORMAT(_("CATEGORY(%1%) is not defined"), ARGV[1])$$END$
+	$END$
+	
+	$RESULT = datatypecategory$
+$END$
+
+$ =====================================================================
+$ IMPLEMENTATION_DATA_TYPE.SHORT_NAMEの値を返す関数
+$ ARGV[1] = IMPLEMENTATION_DATA_TYPE.SHORT_NAME_PATH
+$ =====================================================================
+
+$FUNCTION GET_SHORT_NAME$
+	$datatypeid = 0$
+	$datatypeshortname = "NULL"$
+
+	$FOREACH shortnamepath  IMPLEMENTATION_DATA_TYPE.SHORT_NAME_PATH.ID_LIST$
+		$IF EQ(shortnamepath , ARGV[1])$
+			$datatypeshortname = IMPLEMENTATION_DATA_TYPE.SHORT_NAME[datatypeid]$
+		$END$
+		$datatypeid = datatypeid + 1$
+	$END$
+	
+$	// 一致するIMPLEMENTATION_DATA_TYPEが存在しないとエラー
+	$IF EQ(datatypeshortname, "NULL")$
+		$ERROR ARGV[2]$$FORMAT(_("%1% is not defined"), ARGV[1])$$END$
+	$END$
+
+	$RESULT = datatypeshortname$
+$END$
+
+$ =====================================================================
+$ IOCのエラーチェックと内部データの生成
+$ =====================================================================
+$TRACE("IOC CHECK")$
+
+$
+$ IOCのOS内部で用いるIDを割り当てる
+$ キューあり通信からIDを割り当てる
+$
+$i = 0$
+$tnum_queioc = 0$
+$new_id_list = {}$
+$FOREACH iocid IOC.ID_LIST$
+	$IF !EQ(IOC.BUFLEN[iocid] ,"NULL")$
+		$IOC.ID[iocid] = i$
+		$i = i + 1$
+		$tnum_queioc = tnum_queioc + 1$
+		$new_id_list = APPEND(new_id_list, iocid)$
+	$END$
+$END$
+$FOREACH iocid IOC.ID_LIST$
+	$IF EQ(IOC.BUFLEN[iocid] ,"NULL")$
+		$IOC.ID[iocid] = i$
+		$i = i + 1$
+		$new_id_list = APPEND(new_id_list, iocid)$
+	$END$
+$END$
+$IOC.ID_LIST = new_id_list$
+
+$ 
+$ IOCとIOCDATAの関連付け
+$ 
+$ IOCDATA.IOCからIOC.IOCDATA_LISTの作成
+$FOREACH iocdataid IOCDATA.ID_LIST$
+	$iocid                   = IOCDATA.IOC[iocdataid]$
+	$IOC.IOCDATA_LIST[iocid] = APPEND(IOC.IOCDATA_LIST[iocid], VALUE(IOCDATA.ID_LIST[iocdataid], iocdataid))$
+$END$
+
+$ 
+$ IOCとIOCSNDの関連付け
+$ 
+$ IOCSND.IOCからIOC.IOCSND_LISTの作成
+$FOREACH iocsndid IOCSND.ID_LIST$
+	$iocid                  = IOCSND.IOC[iocsndid]$
+	$IOC.IOCSND_LIST[iocid] = APPEND(IOC.IOCSND_LIST[iocid], VALUE(IOCSND.ID_LIST[iocsndid], iocsndid))$
+$END$
+
+
+$ 
+$ IOCとIOCRCVの関連付け
+$ 
+$ IOCRCV.IOCからIOC.IOCRCV_LISTの作成
+$FOREACH iocrcvid IOCRCV.ID_LIST$
+	$iocid             = IOCRCV.IOC[iocrcvid]$
+	$IOC.IOCRCV[iocid] = APPEND(IOC.IOCRCV[iocid], VALUE(IOCRCV.ID_LIST[iocrcvid], iocrcvid))$
+$END$
+
+
+$ 
+$ エラーチェック
+$ 
+$FOREACH iocid IOC.ID_LIST$
+$ 	// buflenに0を指定していないか
+	$IF IOC.BUFLEN[iocid] == 0 && !EQ(IOC.BUFLEN[iocid], "NULL")$
+		$ERROR IOC.TEXT_LINE[iocid]$$FORMAT(_("illegal %1% `%2%\'. Do not specify `0\'" ), "buflen", IOC.BUFLEN[iocid])$$END$
+	$END$
+
+$ 	// グループ通信の場合，indexで0が定義されていか．また，indexが省略されていないか
+	$IF LENGTH(IOC.IOCDATA_LIST[iocid]) > 1$
+		$FOREACH iocdataid IOC.IOCDATA_LIST[iocid]$
+			$IF EQ(IOCDATA.INDEX[iocdataid], "NULL")$
+				$ERROR IOCDATA.TEXT_LINE[iocdataid]$$FORMAT(_("illegal %1% `%2%\' if Group communication"), "index", IOCDATA.INDEX[iocdataid])$$END$
+			$END$
+		$END$
+	$END$
+
+$ 	// 1:1通信の場合，OsIocSenderPropertiesのsenderidがNULL以外ではないか
+	$IF LENGTH(IOC.IOCSND_LIST[iocid]) == 1$
+		$FOREACH iocsndid IOC.IOCSND_LIST[iocid]$
+			$IF !EQ(IOCSND.SENDERID[iocsndid], "NULL")$
+				$ERROR IOCSND.TEXT_LINE[iocsndid]$$FORMAT(_("illegal %1% `%2%\' if 1:1 communication"), "senderid", IOCSND.SENDERID[iocsndid])$$END$
+			$END$
+		$END$
+	$END$
+
+$ 	// N:1通信の場合，OsIocSenderPropertiesのsenderidが省略されていないか
+	$IF LENGTH(IOC.IOCSND_LIST[iocid]) > 1$
+		$FOREACH iocsndid IOC.IOCSND_LIST[iocid]$
+			$IF EQ(IOCSND.SENDERID[iocsndid], "NULL")$
+				$ERROR IOCSND.TEXT_LINE[iocsndid]$$FORMAT(_("illegal %1% `%2%\' if N:1 communication"), "senderid", IOCSND.SENDERID[iocsndid])$$END$
+			$END$
+		$END$
+	$END$
+
+$ 	// キュー無し通信の場合，初期化値を指定しているか
+	$IF IOC.ID[iocid] >= tnum_queioc$
+		$IF EQ(IOCDATA.INITVAL[IOC.IOCDATA_LIST[iocid]], "NULL")$
+			$ERROR IOC.TEXT_LINE[iocid]$$FORMAT(_("illegal %1% `%2%\' in case of using unqueued" ), "initval", IOCDATA.INITVAL[IOC.IOCDATA_LIST[iocid]])$$END$
+		$END$
+	$END$
+
+$	//1:1通信の場合，センダとレシーバが同一OSAPに所属していないか
+	$iocsnd = IOC.IOCSND_LIST[iocid]$
+	$IF LENGTH(IOC.IOCSND_LIST[iocid]) == 1$
+		$IF EQ(IOCSND.OSAPID[iocsnd], IOCRCV.OSAPID[IOC.IOCRCV[iocid]])$
+			$ERROR IOC.TEXT_LINE[iocsndid]$$FORMAT(_("Sender and receiver are refferenced the same osap `%1%`"), IOCSND.OSAPID[iocsnd])$$END$
+		$END$
+	$END$
+$END$
+
+$FOREACH iocsndid IOC.IOCSND_LIST$
+$ 	// FUNCTION, MACRO, DO_NOT_CARE, 省略(NULL)以外はエラー
+	$IF !EQ(IOCSND.IMPLKIND[iocsndid], "FUNCTION")
+	 && !EQ(IOCSND.IMPLKIND[iocsndid], "DO_NOT_CARE")
+	 && !EQ(IOCSND.IMPLKIND[iocsndid], "NULL")
+	 && !EQ(IOCSND.IMPLKIND[iocsndid], "MACRO")$
+		$ERROR IOCSND.TEXT_LINE[iocsndid]$$FORMAT(_("illegal %1% `%2%\'. Do not specify anything other than `FUNCTION\', `MACRO\', `DO_NOT_CARE\' and omission"), "implkind", IOCSND.IMPLKIND[iocsnd])$$END$
+	$END$
+$END$
+
+
+$ 
+$ グループ通信となるIOC.IOCDATA_LISTをIOCDATA.INDEXの順にソート
+$ 
+$FOREACH iocid IOC.ID_LIST$
+	$IF LENGTH(IOC.IOCDATA_LIST[iocid]) > 1$
+		$find = 0$
+		$new_list = {}$
+		$FOREACH index RANGE(0, LENGTH(IOC.IOCDATA_LIST[iocid])-1)$
+			$FOREACH iocdataid IOC.IOCDATA_LIST[iocid]$
+				$IF IOCDATA.INDEX[iocdataid] == index$
+					$new_list = APPEND(new_list, iocdataid)$
+					$find = find + 1$
+				$END$
+			$END$
+			$IF find == 0$
+				$ERROR IOCDATA.TEXT_LINE[iocdataid]$$FORMAT(_("OsIocDataPropertyIndex `%1%\' is missing for `%2%\'. These should be sequential."), index, IOCDATA.IOC[iocdataid])$$END$
+			$END$
+			$IF find > 1$
+				$ERROR IOCDATA.TEXT_LINE[iocdataid]$$FORMAT(_("OsIocDataPropertyIndex `%1%\' is duplicated for `%2%\'. These should be unique."), index, IOCDATA.IOC[iocdataid])$$END$
+			$END$
+			$find = 0$
+		$END$
+		$IOC.IOCDATA_LIST[iocid] = new_list$
+	$END$
+$END$
+
+
+$ =====================================================================
+$ Os_Lcfg.hの生成
+$ =====================================================================
+
+$FILE "Os_Lcfg.h"$
+
+/****** Object IOC ******/$NL$
+$IF LENGTH(IOC.ID_LIST)$
+$ 	// IOC IDの作成
+	/* IOC ID */$NL$
+	$FOREACH iocid IOC.ID_LIST$
+		#define $iocid$$TAB$UINT_C($IOC.ID[iocid]$)$NL$
+	$END$
+	$NL$
+
+$ 	// Wrapper IDの作成．IOCSNDのオブジェクト識別IDを使用する
+	/* Wrapper ID */$NL$
+	$FOREACH wrapperid RANGE(0, LENGTH(IOCSND.ID_LIST) - 1)$
+		#define IOC_WRAPPER_$wrapperid$$TAB$UINT_C($wrapperid$)$NL$
+	$END$
+	$NL$
+$END$
+
+	#define TNUM_IOC			UINT_C($LENGTH(IOC.ID_LIST)$)$NL$
+	#define TNUM_QUEUEIOC		UINT_C($tnum_queioc$)$NL$
+	#define TNUM_IOC_WRAPPER	UINT_C($LENGTH(IOCSND.ID_LIST)$)$NL$
+
+
+$ =====================================================================
+$ Os_Lcfg.cの生成
+$ =====================================================================
+$FILE "Os_Lcfg.c"$
+
+	/****** Object IOC ******/$NL$
+	const IocType	tnum_ioc = TNUM_IOC;$NL$
+	const IocType	tnum_queueioc = TNUM_QUEUEIOC;$NL$
+	$NL$
+
+$IF LENGTH(IOC.ID_LIST)$
+$ 	// IOC初期化値
+	/*$NL$
+	$SPC$*  IOC Initialize Value$NL$
+	$SPC$*/$NL$
+	$FOREACH iocid IOC.ID_LIST$
+		/* $iocid$ */$NL$
+		$IF IOC.ID[iocid] < tnum_queioc$
+			/* No initialize value because queue communication */$NL$
+		$ELSE$
+			$IF EQ(IOCDATA.INITVAL[IOC.IOCDATA_LIST[iocid]], "NULL")$
+$ 				// ここには来ない（エラーチェック処理で検出済み）
+				/* No initialize value */$NL$
+			$ELSE$
+				IOCMB_$iocid$ ioc_inival_$iocid$ = {$NL$
+				$JOINEACH iocdata IOC.IOCDATA_LIST[iocid] ",\n"$
+					$TAB$$IOCDATA.INITVAL[iocdata]$
+				$END$
+				$NL$};$NL$
+			$END$
+		$END$
+		$NL$
+	$END$
+	$NL$
+
+$ 	// IOC初期化値テーブル
+	void *ioc_inival_table[TNUM_IOC] = {$NL$
+	$JOINEACH iocid IOC.ID_LIST ",\n"$
+		$IF IOC.ID[iocid] < tnum_queioc$
+			$TAB$NULL
+		$ELSE$
+			$IF EQ(IOCDATA.INITVAL[IOC.IOCDATA_LIST[iocid]], "NULL")$
+				$TAB$NULL
+			$ELSE$
+				$TAB$(void *)&ioc_inival_$iocid$
+			$END$
+		$END$
+	$END$
+	$NL$};$NL$
+	$NL$
+
+$ 	// IOC管理ブロックテーブル
+	$IF tnum_queioc > 0$
+		IOCCB ioccb_table[TNUM_QUEUEIOC];$NL$
+	$ELSE$
+		TOPPERS_EMPTY_LABEL(IOCCB, ioccb_table);$NL$
+	$END$
+	$NL$
+
+$ 	// IOCデータ管理ブロックテーブルの宣言
+	$FOREACH iocid IOC.ID_LIST$
+		$IF EQ(IOC.BUFLEN[iocid], "NULL")$
+			IOCMB_$iocid$ iocmb_table_$iocid$[1];$NL$
+		$ELSE$
+			IOCMB_$iocid$ iocmb_table_$iocid$[$IOC.BUFLEN[iocid]$];$NL$
+		$END$
+	$END$
+	$NL$
+
+$ 	// IOC初期化テーブル
+	const IOCINIB iocinib_table[TNUM_IOC] = {$NL$
+	$JOINEACH iocid IOC.ID_LIST ",\n"$
+		$TAB${$NL$
+			$TAB$$TAB$$+IOC.BUFLEN[iocid]$U,$NL$
+			$TAB$$TAB$sizeof(IOCMB_$iocid$),$NL$
+			$TAB$$TAB$alignof(IOCMB_$iocid$),$NL$
+			#ifdef CFG_USE_ERRORHOOK$NL$
+			$IF LENGTH(IOC.IOCDATA_LIST[iocid]) != 1$
+				$TAB$$TAB$TRUE,$NL$
+			$ELSE$
+				$TAB$$TAB$FALSE,$NL$
+			$END$
+			#endif /* CFG_USE_ERRORHOOK */$NL$
+			$TAB$$TAB$&osapcb_table[$IOCRCV.OSAPID[IOC.IOCRCV[iocid]]$],$NL$
+			$TAB$$TAB$&iocmb_table_$iocid$$NL$
+		$TAB$}
+	$END$
+	$NL$};$NL$
+	$NL$
+
+$ 	// IOCラッパー初期化テーブル
+	const IOCWRPINIB iocwrpinib_table[TNUM_IOC_WRAPPER] = {$NL$
+	$JOINEACH iocsndid IOCSND.ID_LIST ",\n"$
+		$TAB${$NL$
+			$TAB$$TAB$&iocinib_table[$IOCSND.IOC[iocsndid]$],$NL$
+			$TAB$$TAB$&osapcb_table[$IOCSND.OSAPID[iocsndid]$],$NL$
+			$IF EQ(IOCSND.SENDERID[iocsndid], "NULL")$
+				$TAB$0$NL$
+			$ELSE$
+				$TAB$$TAB$$IOCSND.SENDERID[iocsndid]$$NL$
+			$END$
+		$TAB$}
+	$END$
+	$NL$};$NL$
+	$NL$
+$ELSE$
+	TOPPERS_EMPTY_LABEL(void *, ioc_inival_table);$NL$
+	TOPPERS_EMPTY_LABEL(IOCCB, ioccb_table);$NL$
+	TOPPERS_EMPTY_LABEL(const IOCINIB, iocinib_table);$NL$
+	TOPPERS_EMPTY_LABEL(const IOCWRPINIB, iocwrpinib_table);$NL$
+
+$END$
+
+
+$ =====================================================================
+$ Ioc.hの生成
+$ =====================================================================
+$FILE "Ioc.h"$
+#ifndef TOPPERS_IOC_H$NL$
+#define TOPPERS_IOC_H$NL$
+$NL$
+
+#include "Os.h"$NL$
+#include "Os_Lcfg.h"$NL$
+$NL$
+
+$IF LENGTH(IOC.ID_LIST)$
+	/* IOC data management block */$NL$
+	$FOREACH iocid IOC.ID_LIST$
+		typedef struct ioc_data_management_block_$iocid$ {$NL$
+		$arg = 1$
+		$FOREACH iocdataid IOC.IOCDATA_LIST[iocid]$
+			$TAB$$GET_SHORT_NAME(IOCDATA.DATATYPE[iocdataid])$$TAB$data$arg$;$NL$
+			$arg = arg + 1$
+		$END$
+		}IOCMB_$iocid$;$NL$
+		$NL$
+	$END$
+$ELSE$
+	/* IOC is not used */
+$END$
+
+
+$ =====================================================================
+$ Ioc.cの生成
+$ =====================================================================
+$FILE "Ioc.c"$
+
+$IF LENGTH(IOC.ID_LIST)$
+	#include "Ioc.h"$NL$
+$ELSE$
+	/* IOC is not used */
+$END$
+
+$ =====================================================================
+$ APIの生成
+$ =====================================================================
+$IF LENGTH(IOC.ID_LIST)$
+	$FOREACH iocid IOC.ID_LIST$
+		$FILE "Ioc.h"$
+		$NL$
+		/* $iocid$ API */
+		$FILE "Ioc.c"$
+		$NL$
+		
+		$shortname = GET_SHORT_NAME(IOCDATA.DATATYPE[IOC.IOCDATA_LIST[iocid]], iocid)$
+		$category = GET_CATEGORY(IOCDATA.DATATYPE[IOC.IOCDATA_LIST[iocid]], iocid)$
+		/* $iocid$ API */
+$ 		// 送信API
+$		// 1:1通信
+		$IF LENGTH(IOC.IOCSND_LIST[iocid]) == 1$
+$ 			// 1:1，単一データ通信
+			$IF LENGTH(IOC.IOCDATA_LIST[iocid]) == 1$
+$				// 1:1，単一データ通信，キュー無し
+				$IF EQ(IOC.BUFLEN[iocid], "NULL")$
+					$iocsender = "IocWrite"$
+					$iocsender_generic = "ioc_write_generic"$
+$				// 1:1，単一データ通信，キューあり
+				$ELSE$
+					$iocsender = "IocSend"$
+					$iocsender_generic = "ioc_send_generic"$
+				$END$
+$				// FUNCTION, MACRO, DO_NOT_CARE, 省略(NULL)を判断してコードを生成
+				$FOREACH iocsnd IOC.IOCSND_LIST[iocid]$
+$					// FUNCTION, MACRO, DO_NOT_CARE, 省略(NULL)以外のエラーチェックは確認済み
+					$IF !EQ(IOCSND.IMPLKIND[iocsnd], "MACRO")$
+						$FILE "Ioc.h"$
+						extern Std_ReturnType $iocsender$_$iocid$(
+							$IF !EQ(category, "VALUE")$
+								const $shortname$ *
+							$ELSE$
+								$shortname$$SPC$
+							$END$
+						in1);
+						
+						$FILE "Ioc.c"$
+						Std_ReturnType$NL$
+						$iocsender$_$iocid$(
+							$IF !EQ(category, "VALUE")$
+								const $shortname$ *
+							$ELSE$
+								$shortname$$SPC$
+							$END$
+						in1)$NL$
+						{$NL$
+							$TAB$Std_ReturnType$TAB$ercd;$NL$
+							$TAB$IOCMB_$iocid$$TAB$in;$NL$
+							$TAB$in.data1 =$SPC$
+								$IF !EQ(category, "VALUE")$
+									*
+								$END$
+							in1;$NL$
+							$TAB$ercd = $iocsender_generic$(IOC_WRAPPER_$+iocsnd - 1$, (void *)(&in));$NL$
+							$TAB$return(ercd);$NL$
+						}$NL$
+					$ELSE$
+						$FILE "Ioc.h"$
+						LOCAL_INLINE Std_ReturnType$NL$
+						$iocsender$_$iocid$(
+							$IF !EQ(category, "VALUE")$
+								const $shortname$ *
+							$ELSE$
+								$shortname$$SPC$
+							$END$
+						 in1)$NL$
+						{$NL$
+							$TAB$Std_ReturnType$TAB$ercd;$NL$
+							$TAB$IOCMB_$iocid$$TAB$in;$NL$
+							$TAB$in.data1 =$SPC$
+								$IF !EQ(category, "VALUE")$
+								 *
+								$END$
+							in1;$NL$
+							$TAB$ercd = $iocsender_generic$(IOC_WRAPPER_$+iocsnd - 1$, (void *)(&in));$NL$
+							$TAB$return(ercd);$NL$
+						}$NL$
+					$END$
+				$END$
+$ 			// 1:1，グループ通信
+			$ELSE$
+$				// 1:1，グループ通信，キュー無し
+				$IF EQ(IOC.BUFLEN[iocid], "NULL")$
+					$iocsender = "IocWriteGroup"$
+					$iocsender_generic = "ioc_write_generic"$
+$				// 1:1，グループ通信，キューあり
+				$ELSE$
+					$iocsender = "IocSendGroup"$
+					$iocsender_generic = "ioc_send_generic"$
+				$END$
+$				// FUNCTION, MACRO, DO_NOT_CARE, 省略(NULL)を判断してコードを生成
+				$FOREACH iocsnd IOC.IOCSND_LIST[iocid]$
+$					// FUNCTION, MACRO, DO_NOT_CARE, 省略(NULL)以外のエラーチェックは確認済み
+					$IF !EQ(IOCSND.IMPLKIND[iocsnd], "MACRO")$
+						$FILE "Ioc.h"$
+						extern Std_ReturnType $iocsender$_$iocid$(
+							$arg = 1$
+							$JOINEACH iocdata IOC.IOCDATA_LIST[iocid] ", "$
+								$shortname = GET_SHORT_NAME(IOCDATA.DATATYPE[iocdata], iocid)$
+								$IF !EQ(GET_CATEGORY(IOCDATA.DATATYPE[iocdata], iocid), "VALUE")$
+									const $shortname$ *in$arg$
+								$ELSE$
+									$shortname$ in$arg$
+								$END$
+								$arg = arg + 1$
+							$END$
+						);
+						$FILE "Ioc.c"$
+						Std_ReturnType$NL$
+						$iocsender$_$iocid$(
+							$arg = 1$
+							$JOINEACH iocdata IOC.IOCDATA_LIST[iocid] ", "$
+								$shortname = GET_SHORT_NAME(IOCDATA.DATATYPE[iocdata], iocid)$
+								$IF !EQ(GET_CATEGORY(IOCDATA.DATATYPE[iocdata], iocid), "VALUE")$
+									const $shortname$ *in$arg$
+								$ELSE$
+									$shortname$ in$arg$
+								$END$
+								$arg = arg + 1$
+							$END$
+						)$NL$
+						{$NL$
+							$TAB$Std_ReturnType$TAB$ercd;$NL$
+							$TAB$IOCMB_$iocid$$TAB$in;$NL$
+							$arg = 1$
+							$FOREACH iocdata IOC.IOCDATA_LIST[iocid]$
+								$TAB$in.data$arg$ =$SPC$
+									$IF !EQ(GET_CATEGORY(IOCDATA.DATATYPE[iocdata], iocid), "VALUE")$
+										*
+									$END$
+								in$arg$;$NL$
+								$arg = arg + 1$
+							$END$
+							$TAB$ercd = $iocsender_generic$(IOC_WRAPPER_$+iocsnd - 1$, (void *)(&in));$NL$
+							$TAB$return(ercd);$NL$
+						}$NL$
+					$ELSE$
+						$FILE "Ioc.h"$
+						LOCAL_INLINE Std_ReturnType$NL$
+						$iocsender$_$iocid$(
+							$arg = 1$
+							$JOINEACH iocdata IOC.IOCDATA_LIST[iocid] ", "$
+								$shortname = GET_SHORT_NAME(IOCDATA.DATATYPE[iocdata], iocid)$
+								$IF !EQ(GET_CATEGORY(IOCDATA.DATATYPE[iocdata], iocid), "VALUE")$
+									const $shortname$ *in$arg$
+								$ELSE$
+									$shortname$ in$arg$
+								$END$
+								$arg = arg + 1$
+							$END$
+						)$NL$
+						{$NL$
+							$TAB$Std_ReturnType$TAB$ercd;$NL$
+							$TAB$IOCMB_$iocid$$TAB$in;$NL$
+							$arg = 1$
+							$FOREACH iocdata IOC.IOCDATA_LIST[iocid]$
+								$TAB$in.data$arg$ =$SPC$
+									$IF !EQ(GET_CATEGORY(IOCDATA.DATATYPE[iocdata], iocid), "VALUE")$
+										*
+									$END$
+								in$arg$;$NL$
+								$arg = arg + 1$
+							$END$
+							$TAB$ercd = $iocsender_generic$(IOC_WRAPPER_$+iocsnd - 1$, (void *)(&in));$NL$
+							$TAB$return(ercd);$NL$
+						}
+					$END$
+				$END$
+			$END$
+$ 		// N:1通信
+		$ELSE$
+$ 			// N:1，通常通信
+			$IF LENGTH(IOC.IOCDATA_LIST[iocid]) == 1$
+$ 				// N:1，単一データ通信，キュー無し
+				$IF EQ(IOC.BUFLEN[iocid], "NULL")$
+					$iocsender = "IocWrite"$
+					$iocsender_generic = "ioc_write_generic"$
+$ 				// N:1，単一データ通信，キューあり
+				$ELSE$
+					$iocsender = "IocSend"$
+					$iocsender_generic = "ioc_send_generic"$
+				$END$
+$				// FUNCTION, MACRO, DO_NOT_CARE, 省略(NULL)を判断してコードを生成
+				$FOREACH iocsnd IOC.IOCSND_LIST[iocid]$
+$					// FUNCTION, MACRO, DO_NOT_CARE, 省略(NULL)以外のエラーチェックは確認済み
+					$IF !EQ(IOCSND.IMPLKIND[iocsnd], "MACRO")$
+						$FILE "Ioc.h"$
+						extern Std_ReturnType $iocsender$_$iocid$_$IOCSND.SENDERID[iocsnd]$(
+							$IF !EQ(category, "VALUE")$
+								const $shortname$ *
+							$ELSE$
+								$shortname$$SPC$
+							$END$
+						in1);
+						
+						$FILE "Ioc.c"$
+						Std_ReturnType$NL$
+						$iocsender$_$iocid$_$IOCSND.SENDERID[iocsnd]$(
+							$IF !EQ(category, "VALUE")$
+								const $shortname$ *
+							$ELSE$
+								$shortname$$SPC$
+							$END$
+						in1)$NL$
+						{$NL$
+							$TAB$Std_ReturnType$TAB$ercd;$NL$
+							$TAB$IOCMB_$iocid$$TAB$in;$NL$
+							$TAB$in.data1 =$SPC$
+								$IF !EQ(category, "VALUE")$
+									*
+								$END$
+							in1;$NL$
+							$TAB$ercd = $iocsender_generic$(IOC_WRAPPER_$+iocsnd - 1$, (void *)(&in));$NL$
+							$TAB$return(ercd);$NL$
+						}$NL$
+					$ELSE$
+						$FILE "Ioc.h"$
+						LOCAL_INLINE Std_ReturnType$NL$
+						$iocsender$_$iocid$_$IOCSND.SENDERID[iocsnd]$(
+							$IF !EQ(category, "VALUE")$
+								const $shortname$ *
+							$ELSE$
+								$shortname$$SPC$
+							$END$
+						in1)$NL$
+						{$NL$
+							$TAB$Std_ReturnType$TAB$ercd;$NL$
+							$TAB$IOCMB_$iocid$$TAB$in;$NL$
+							$TAB$in.data1 =$SPC$
+								$IF !EQ(category, "VALUE")$
+								 *
+								$END$
+							in1;$NL$
+							$TAB$ercd = $iocsender_generic$(IOC_WRAPPER_$+iocsnd - 1$, (void *)(&in));$NL$
+							$TAB$return(ercd);$NL$
+						}
+					$END$
+				$END$
+$ 			// N:1，グループ通信のコンフィギュレーションはエラー
+			$ELSE$
+				$ERROR IOC.TEXT_LINE[iocid]$$FORMAT(_("N:1 and Group IOC can not be used."))$$END$
+			$END$
+		$END$
+
+$ 		// 受信API - 受信APIは1:1 or N:1によってAPI生成は変化しない
+$ 		// 単一データ通信
+		$IF LENGTH(IOC.IOCDATA_LIST[iocid]) == 1$
+$	 		// 単一データ通信，キュー無し
+			$IF EQ(IOC.BUFLEN[iocid], "NULL")$
+				$iocreceiver = "IocRead"$
+				$iocreceiver_generic = "ioc_read_generic"$
+				$iocerrorcheck = "ercd == IOC_E_OK"$
+$	 		// 単一データ通信，キューあり
+			$ELSE$
+				$iocreceiver = "IocReceive"$
+				$iocreceiver_generic = "ioc_receive_generic"$
+				$iocerrorcheck = "(ercd == IOC_E_OK) || (ercd == IOC_E_LOST_DATA)"$
+			$END$
+$			// FUNCTION, MACRO, DO_NOT_CARE, 省略(NULL)を判断してコードを生成
+$			// FUNCTION, MACRO, DO_NOT_CARE, 省略(NULL)以外のエラーチェックは確認済み
+			$IF !EQ(IOCRCV.IMPLKIND[IOC.IOCRCV[iocid]], "MACRO")$
+				$FILE "Ioc.h"$
+				extern Std_ReturnType $iocreceiver$_$iocid$($shortname$ *out1);
+				
+				$FILE "Ioc.c"$
+				Std_ReturnType$NL$
+				$iocreceiver$_$iocid$($shortname$ *out1)$NL$
+				{$NL$
+					$TAB$Std_ReturnType$TAB$ercd;$NL$
+					$TAB$IOCMB_$iocid$$TAB$out;$NL$
+					$TAB$ercd = $iocreceiver_generic$($iocid$, (void *)(&out));$NL$
+					$TAB$if ($iocerrorcheck$) {$NL$
+					$TAB$$TAB$*out1 = out.data1;$NL$
+					$TAB$}$NL$
+					$TAB$return(ercd);$NL$
+				}$NL$
+			$ELSE$
+				$FILE "Ioc.h"$
+				LOCAL_INLINE Std_ReturnType$NL$
+				$iocreceiver$_$iocid$($shortname$ *out1)$NL$
+				{$NL$
+					$TAB$Std_ReturnType$TAB$ercd;$NL$
+					$TAB$IOCMB_$iocid$$TAB$out;$NL$
+					$TAB$ercd = $iocreceiver_generic$($iocid$, (void *)(&out));$NL$
+					$TAB$if ($iocerrorcheck$) {$NL$
+					$TAB$$TAB$*out1 = out.data1;$NL$
+					$TAB$}$NL$
+					$TAB$return(ercd);$NL$
+				}
+			$END$
+$ 		// グループ通信
+		$ELSE$
+$ 			// グループ通信，キュー無し
+			$IF EQ(IOC.BUFLEN[iocid], "NULL")$
+				$iocreceiver = "IocReadGroup"$
+				$iocreceiver_generic = "ioc_read_generic"$
+				$iocerrorcheck = "ercd == IOC_E_OK"$
+$ 			// グループ通信，キューあり
+			$ELSE$
+				$iocreceiver = "IocReceiveGroup"$
+				$iocreceiver_generic = "ioc_receive_generic"$
+				$iocerrorcheck = "(ercd == IOC_E_OK) || (ercd == IOC_E_LOST_DATA)"$
+			$END$
+$			// FUNCTION, MACRO, DO_NOT_CARE, 省略(NULL)を判断してコードを生成
+$			// FUNCTION, MACRO, DO_NOT_CARE, 省略(NULL)以外のエラーチェックは確認済み
+			$IF !EQ(IOCRCV.IMPLKIND[IOC.IOCRCV[iocid]], "MACRO")$
+				$FILE "Ioc.h"$
+				extern Std_ReturnType $iocreceiver$_$iocid$(
+				$arg = 1$
+				$JOINEACH iocdata IOC.IOCDATA_LIST[iocid] ", "$
+					$shortname = GET_SHORT_NAME(IOCDATA.DATATYPE[iocdata], iocid)$
+					$shortname$$SPC$*out$arg$
+					$arg = arg + 1$
+				$END$
+				);
+				
+				$FILE "Ioc.c"$
+				Std_ReturnType$NL$
+				$iocreceiver$_$iocid$(
+				$arg = 1$
+				$JOINEACH iocdata IOC.IOCDATA_LIST[iocid] ", "$
+					$shortname = GET_SHORT_NAME(IOCDATA.DATATYPE[iocdata], iocid)$
+					$shortname$$SPC$*out$arg$
+					$arg = arg + 1$
+				$END$
+				)$NL$
+				{$NL$
+					$TAB$Std_ReturnType$TAB$ercd;$NL$
+					$TAB$IOCMB_$iocid$$TAB$out;$NL$
+					$TAB$ercd = $iocreceiver_generic$($iocid$, (void *)(&out));$NL$
+					$TAB$if ($iocerrorcheck$) {$NL$
+					$arg = 1$
+					$FOREACH iocdata IOC.IOCDATA_LIST[iocid]$
+						$TAB$$TAB$*out$arg$ = out.data$arg$;$NL$
+						$arg = arg + 1$
+					$END$
+					$TAB$}$NL$
+					$TAB$return(ercd);$NL$
+				}$NL$
+			$ELSE$
+				$FILE "Ioc.h"$
+				LOCAL_INLINE Std_ReturnType$NL$
+				$iocreceiver$_$iocid$(
+				$arg = 1$
+				$JOINEACH iocdata IOC.IOCDATA_LIST[iocid] ", "$
+					$shortname = GET_SHORT_NAME(IOCDATA.DATATYPE[iocdata], iocid)$
+					$shortname$$SPC$*out$arg$
+					$arg = arg + 1$
+				$END$
+				)$NL$
+				{$NL$
+					$TAB$Std_ReturnType$TAB$ercd;$NL$
+					$TAB$IOCMB_$iocid$$TAB$out;$NL$
+					$TAB$ercd = $iocreceiver_generic$($iocid$, (void *)(&out));$NL$
+					$TAB$if ($iocerrorcheck$) {$NL$
+					$arg = 1$
+					$FOREACH iocdata IOC.IOCDATA_LIST[iocid]$
+						$TAB$$TAB$*out$arg$ = out.data$arg$;$NL$
+						$arg = arg + 1$
+					$END$
+					$TAB$}$NL$
+					$TAB$return(ercd);$NL$
+				}
+			$END$
+		$END$
+
+$ 		// queue empty API
+		$IF !EQ(IOC.BUFLEN[iocid], "NULL")$
+			$FILE "Ioc.h"$
+			extern Std_ReturnType IocEmptyQueue_$iocid$(void);
+			
+			$FILE "Ioc.c"$
+			Std_ReturnType$NL$
+			IocEmptyQueue_$iocid$(void)$NL$
+			{$NL$
+				$TAB$Std_ReturnType	ercd;$NL$
+				$TAB$ercd = ioc_empty_queue_generic($iocid$);$NL$
+				$TAB$return(ercd);$NL$
+			}$NL$
+		$END$
+	$END$
+$END$
+
+$FILE "Ioc.h"$
+$NL$
+#endif /* TOPPERS_IOC_H_ */$NL$
Index: /atk2-sc3_fl850f1l/kernel/ioc_impl.h
===================================================================
--- /atk2-sc3_fl850f1l/kernel/ioc_impl.h	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/ioc_impl.h	(revision 117)
@@ -0,0 +1,152 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by Spansion LLC, USA
+ *  Copyright (C) 2012-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: ioc_impl.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		IOC機能
+ */
+
+#ifndef TOPPERS_IOC_IMPL_H
+#define TOPPERS_IOC_IMPL_H
+
+#include "kernel_impl.h"
+#include "osap.h"
+
+/*
+ *  Wrapper IDからIOCWRPINIBを取り出すためのマクロ
+ */
+#define get_iocwrpinib(WrapperId)	(&iocwrpinib_table[(WrapperId)])
+
+/*
+ *  IOC IDからIOCCB,IOCINIBを取り出すためのマクロ
+ */
+#define get_ioccb(iocid)		(&ioccb_table[(iocid)])
+#define get_iocinib(iocid)		(&iocinib_table[(iocid)])
+
+/*
+ *  IOCWRPINIBからIOC IDを取り出すためのマクロ
+ */
+#define IOCID(p_iocwrpinib)	((IocType) (((p_iocwrpinib)->p_iocinib) - iocinib_table))
+
+
+
+/*
+ *  IOC初期化ブロック
+ */
+typedef struct ioc_initialization_block {
+	uint32	maxque;                 /* キュー数 */
+	uint32	datasz;                 /* データサイズ */
+	uint32	alignsz;                /* アラインサイズ */
+#ifdef CFG_USE_ERRORHOOK
+	boolean	groupflg;            /* グループ通信フラグ */
+#endif /* CFG_USE_ERRORHOOK */
+	OSAPCB	*p_rcvosapcb;        /* Receiverが所属するOSAPの初期化ブロックへのポインタ */
+	void	*p_iocmb;
+} IOCINIB;
+
+/*
+ *  IOC管理ブロック（Os_Lcfg.c）
+ */
+typedef struct ioc_control_block {
+	uint32	quecnt;                 /* 現在のキュー数 */
+	uint32	head;                   /* キューの先頭 */
+	uint32	tail;                   /* キューの最後 */
+	boolean	lostflg;                /* キューフルエラー(E_LOST_DATA)用フラグ */
+} IOCCB;
+
+/*
+ *  IOC Wrapper初期化ブロック
+ */
+typedef struct ioc_wrapper_initialization_block {
+	const IOCINIB	*p_iocinib;         /* IOC初期化ブロックへのポインタ */
+	OSAPCB			*p_sndosapcb;       /* Senderが所属するOSAPの初期化ブロックへのポインタ */
+	SenderIdType	senderid;           /* SenderID */
+} IOCWRPINIB;
+
+
+extern const IocType	tnum_ioc;       /* IOCの数 */
+extern const IocType	tnum_queueioc;  /* キューありIOCの数 */
+
+/*
+ *  IOC Wrapper初期化ブロック（Os_Lcfg.c）
+ */
+extern const IOCWRPINIB	iocwrpinib_table[];
+
+/*
+ *  IOC初期化ブロック（Os_Lcfg.c）
+ */
+extern const IOCINIB	iocinib_table[];
+
+/*
+ *  IOC管理ブロック（Os_Lcfg.c）
+ */
+extern IOCCB			ioccb_table[];
+
+/*
+ *  IOC WRAPPER初期化ブロック（Os_Lcfg.c）
+ */
+extern const IOCWRPINIB	iocwrpinib_table[];
+
+/*
+ *  IOC初期化値テーブル
+ */
+extern void				*ioc_inival_table[];
+
+/*
+ *  IOC管理モジュールの初期化
+ */
+extern void ioc_initialize(void);
+
+#endif /* TOPPERS_IOC_IMPL_H */
Index: /atk2-sc3_fl850f1l/kernel/ioc_manage.c
===================================================================
--- /atk2-sc3_fl850f1l/kernel/ioc_manage.c	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/ioc_manage.c	(revision 117)
@@ -0,0 +1,405 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by Spansion LLC, USA
+ *  Copyright (C) 2012-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: ioc_manage.c 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		IOCモジュール
+ */
+#include "ioc_impl.h"
+#include "check.h"
+
+/*
+ *  トレースログマクロのデフォルト定義
+ */
+#ifndef LOG_IOCSEND_ENTER
+#define LOG_IOCSEND_ENTER(senderid)
+#endif /* LOG_IOCSEND_ENTER */
+
+#ifndef LOG_IOCSEND_LEAVE
+#define LOG_IOCSEND_LEAVE(ercd)
+#endif /* LOG_IOCSEND_LEAVE */
+
+#ifndef LOG_IOCWRITE_ENTER
+#define LOG_IOCWRITE_ENTER(senderid)
+#endif /* LOG_IOCWRITE_ENTER */
+
+#ifndef LOG_IOCWRITE_LEAVE
+#define LOG_IOCWRITE_LEAVE(ercd)
+#endif /* LOG_IOCWRITE_LEAVE */
+
+#ifndef LOG_IOCRECEIVE_ENTER
+#define LOG_IOCRECEIVE_ENTER(iocid)
+#endif /* LOG_IOCRECEIVE_ENTER */
+
+#ifndef LOG_IOCRECEIVE_LEAVE
+#define LOG_IOCRECEIVE_LEAVE(ercd)
+#endif /* LOG_IOCRECEIVE_LEAVE */
+
+#ifndef LOG_IOCREAD_ENTER
+#define LOG_IOCREAD_ENTER(iocid)
+#endif /* LOG_IOCREAD_ENTER */
+
+#ifndef LOG_IOCREAD_LEAVE
+#define LOG_IOCREAD_LEAVE(ercd)
+#endif /* LOG_IOCREAD_LEAVE */
+
+#ifndef LOG_IOCEMPTYQUEUE_ENTER
+#define LOG_IOCEMPTYQUEUE_ENTER(iocid)
+#endif /* LOG_IOCEMPTYQUEUE_ENTER */
+
+#ifndef LOG_IOCEMPTUQUEUE_LEAVE
+#define LOG_IOCEMPTUQUEUE_LEAVE(ercd)
+#endif /* LOG_IOCEMPTUQUEUE_LEAVE */
+
+
+/* 内部関数のプロトタイプ宣言 */
+LOCAL_INLINE void ioc_memcpy(void *p_dst, const void *p_src, uint32 sz);
+
+
+/*
+ *  初期化関数
+ */
+void
+ioc_initialize(void)
+{
+	IocType			i;
+	IOCCB			*p_ioccb;
+	const IOCINIB	*p_iocinib;
+
+	/* キューの初期化 */
+	for (i = 0U; i < tnum_queueioc; i++) {
+		p_ioccb = &ioccb_table[i];
+		p_ioccb->quecnt = 0U;
+		p_ioccb->head = 0U;
+		p_ioccb->tail = 0U;
+		p_ioccb->lostflg = FALSE;
+	}
+
+	/* 各IOCのバッファ初期化 */
+	for (i = 0U; i < tnum_ioc; i++) {
+		if (ioc_inival_table[i] != NULL) {
+			p_iocinib = &iocinib_table[i];
+			ioc_memcpy((void *) (p_iocinib->p_iocmb), ioc_inival_table[i], p_iocinib->datasz);
+		}
+	}
+}
+
+
+
+LOCAL_INLINE void
+ioc_memcpy(void *p_dst, const void *p_src, uint32 sz)
+{
+	uint8		*p_tmp_dst = (uint8 *) p_dst;
+	const uint8	*p_tmp_src = (const uint8 *) p_src;
+
+	while (sz > 0U)	{
+		*p_tmp_dst = *p_tmp_src;
+		p_tmp_dst++;
+		p_tmp_src++;
+		sz--;
+	}
+}
+
+
+Std_ReturnType
+ioc_send_generic(IocType IocWrapperId, const void *in)
+{
+	const IOCWRPINIB	*p_iocwrpinib;
+	const IOCINIB		*p_iocinib;
+	IOCCB				*p_ioccb;
+	Std_ReturnType		ercd = IOC_E_OK;
+
+	p_iocwrpinib = get_iocwrpinib(IocWrapperId);
+	p_iocinib = get_iocinib(IOCID(p_iocwrpinib));
+	p_ioccb = get_ioccb(IOCID(p_iocwrpinib));
+
+	LOG_IOCSEND_ENTER(p_iocwrpinib->senderid);
+
+	CHECK_IOC_CALLEVEL_DISABLEDINT(CALLEVEL_IOCSEND);
+	CHECK_IOC_ACCESS(p_iocwrpinib->p_sndosapcb == p_runosap);
+	CHECK_IOC_MEM_READ((const MemoryStartAddressType) in, p_iocinib->datasz, p_iocinib->alignsz);
+
+	x_nested_lock_os_int();
+
+	S_D_CHECK_IOC_LIMIT(p_ioccb->quecnt < p_iocinib->maxque);
+	ioc_memcpy((void *) ((uint32) p_iocinib->p_iocmb + ((p_iocinib->datasz) * (p_ioccb->tail))), in, p_iocinib->datasz);
+	p_ioccb->quecnt++;
+	p_ioccb->tail++;
+	if (p_ioccb->tail >= p_iocinib->maxque) {
+		p_ioccb->tail = 0U;
+	}
+
+  d_exit_no_errorhook:
+	x_nested_unlock_os_int();
+  exit_no_errorhook:
+	LOG_IOCSEND_LEAVE(ercd);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  d_exit_errorhook:
+	goto errorhook_start;
+
+  exit_errorhook:
+	x_nested_lock_os_int();
+  errorhook_start:
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.iocid = IOCID(p_iocwrpinib);
+	_errorhook_par2.senderid = p_iocwrpinib->senderid;
+#endif /* CFG_USE_PARAMETERACCESS */
+	if (p_iocinib->groupflg != FALSE) {
+		call_errorhook(ercd, IOCServiceId_IOC_SendGroup);
+	}
+	else {
+		call_errorhook(ercd, IOCServiceId_IOC_Send);
+	}
+	x_nested_unlock_os_int();
+	goto exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+
+Std_ReturnType
+ioc_write_generic(IocType IocWrapperId, const void *in)
+{
+	const IOCWRPINIB	*p_iocwrpinib;
+	const IOCINIB		*p_iocinib;
+	Std_ReturnType		ercd = IOC_E_OK;
+
+	p_iocwrpinib = get_iocwrpinib(IocWrapperId);
+	p_iocinib = get_iocinib(IOCID(p_iocwrpinib));
+
+	LOG_IOCWRITE_ENTER(p_iocwrpinib->senderid);
+
+	CHECK_IOC_CALLEVEL_DISABLEDINT(CALLEVEL_IOCWRITE);
+	CHECK_IOC_ACCESS(p_iocwrpinib->p_sndosapcb == p_runosap);
+	CHECK_IOC_MEM_READ((const MemoryStartAddressType) in, p_iocinib->datasz, p_iocinib->alignsz);
+
+	x_nested_lock_os_int();
+
+	ioc_memcpy((void *) (p_iocinib->p_iocmb), in, p_iocinib->datasz);
+
+  d_exit_no_errorhook:
+	x_nested_unlock_os_int();
+  exit_no_errorhook:
+	LOG_IOCWRITE_LEAVE(ercd);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  d_exit_errorhook:
+	goto errorhook_start;
+
+  exit_errorhook:
+	x_nested_lock_os_int();
+  errorhook_start:
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.iocid = IOCID(p_iocwrpinib);
+	_errorhook_par2.senderid = p_iocwrpinib->senderid;
+#endif /* CFG_USE_PARAMETERACCESS */
+	if (p_iocinib->groupflg != FALSE) {
+		call_errorhook(ercd, IOCServiceId_IOC_WriteGroup);
+	}
+	else {
+		call_errorhook(ercd, IOCServiceId_IOC_Write);
+	}
+	x_nested_unlock_os_int();
+	goto exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+
+Std_ReturnType
+ioc_receive_generic(IocType IocId, void *out)
+{
+	const IOCINIB	*p_iocinib;
+	IOCCB			*p_ioccb;
+	Std_ReturnType	ercd = IOC_E_OK;
+
+	LOG_IOCRECEIVE_ENTER(IocId);
+
+	p_iocinib = get_iocinib(IocId);
+	p_ioccb = get_ioccb(IocId);
+
+	CHECK_IOC_CALLEVEL_DISABLEDINT(CALLEVEL_IOCRECEIVE);
+	CHECK_IOC_ACCESS(p_iocinib->p_rcvosapcb == p_runosap);
+	CHECK_IOC_MEM_WRITE(out, p_iocinib->datasz, p_iocinib->alignsz);
+
+	x_nested_lock_os_int();
+
+	S_D_CHECK_IOC_NO_DATA(p_ioccb->quecnt > 0U);
+	ioc_memcpy(out, (void *) ((uint32) p_iocinib->p_iocmb + ((p_iocinib->datasz) * (p_ioccb->head))), p_iocinib->datasz);
+
+	p_ioccb->quecnt--;
+	p_ioccb->head++;
+	if (p_ioccb->head >= p_iocinib->maxque) {
+		p_ioccb->head = 0U;
+	}
+
+	S_D_CHECK_IOC_LOST(p_ioccb->lostflg == FALSE);
+
+  d_exit_no_errorhook:
+	x_nested_unlock_os_int();
+  exit_no_errorhook:
+	LOG_IOCRECEIVE_LEAVE(ercd);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  d_exit_errorhook:
+	goto errorhook_start;
+
+  exit_errorhook:
+	x_nested_lock_os_int();
+  errorhook_start:
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.iocid = IocId;
+#endif /* CFG_USE_PARAMETERACCESS */
+	if (p_iocinib->groupflg != FALSE) {
+		call_errorhook(ercd, IOCServiceId_IOC_ReceiveGroup);
+	}
+	else {
+		call_errorhook(ercd, IOCServiceId_IOC_Receive);
+	}
+	x_nested_unlock_os_int();
+	goto exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+
+Std_ReturnType
+ioc_read_generic(IocType IocId, void *out)
+{
+	const IOCINIB	*p_iocinib;
+	Std_ReturnType	ercd = IOC_E_OK;
+
+	LOG_IOCREAD_ENTER(IocId);
+
+	p_iocinib = get_iocinib(IocId);
+
+	CHECK_IOC_CALLEVEL_DISABLEDINT(CALLEVEL_IOCREAD);
+	CHECK_IOC_ACCESS(p_iocinib->p_rcvosapcb == p_runosap);
+	CHECK_IOC_MEM_WRITE(out, p_iocinib->datasz, p_iocinib->alignsz);
+
+	x_nested_lock_os_int();
+
+	ioc_memcpy(out, (void *) (p_iocinib->p_iocmb), p_iocinib->datasz);
+
+  d_exit_no_errorhook:
+	x_nested_unlock_os_int();
+  exit_no_errorhook:
+	LOG_IOCREAD_LEAVE(ercd);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  d_exit_errorhook:
+	goto errorhook_start;
+
+  exit_errorhook:
+	x_nested_lock_os_int();
+  errorhook_start:
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.iocid = IocId;
+#endif /* CFG_USE_PARAMETERACCESS */
+	if (p_iocinib->groupflg != FALSE) {
+		call_errorhook(ercd, IOCServiceId_IOC_ReadGroup);
+	}
+	else {
+		call_errorhook(ercd, IOCServiceId_IOC_Read);
+	}
+	x_nested_unlock_os_int();
+	goto exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+
+Std_ReturnType
+ioc_empty_queue_generic(IocType IocId)
+{
+	IOCCB			*p_ioccb;
+	const IOCINIB	*p_iocinib;
+	Std_ReturnType	ercd = IOC_E_OK;
+
+	p_ioccb = get_ioccb(IocId);
+	p_iocinib = get_iocinib(IocId);
+
+	CHECK_IOC_CALLEVEL_DISABLEDINT(CALLEVEL_IOCEMPTYQUEUE);
+	CHECK_IOC_ACCESS(p_iocinib->p_rcvosapcb == p_runosap);
+
+	x_nested_lock_os_int();
+
+	p_ioccb->quecnt = 0U;
+	p_ioccb->head = 0U;
+	p_ioccb->tail = 0U;
+	p_ioccb->lostflg = FALSE;
+
+  d_exit_no_errorhook:
+	x_nested_unlock_os_int();
+  exit_no_errorhook:
+	LOG_IOCREAD_LEAVE(ercd);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  d_exit_errorhook:
+	goto errorhook_start;
+
+  exit_errorhook:
+	x_nested_lock_os_int();
+  errorhook_start:
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.iocid = IocId;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, IOCServiceId_IOC_EmptyQueue);
+	x_nested_unlock_os_int();
+	goto exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
Index: /atk2-sc3_fl850f1l/kernel/kernel.csv
===================================================================
--- /atk2-sc3_fl850f1l/kernel/kernel.csv	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/kernel.csv	(revision 117)
@@ -0,0 +1,164 @@
+/AUTOSAR/EcucDefs/Os,,,1
+/AUTOSAR/EcucDefs/Os/OsOS,OS,,1
+/AUTOSAR/EcucDefs/Os/OsOS/OsScalabilityClass,SC,ENUM,0,1
+/AUTOSAR/EcucDefs/Os/OsOS/OsMemoryProtectionLevel,MLEVEL,ENUM,0,1
+/AUTOSAR/EcucDefs/Os/OsOS/OsViolationHandlingLevel,VLEVEL,ENUM,0,1
+/AUTOSAR/EcucDefs/Os/OsOS/OsStackMonitoring,STACKMONITORING,BOOLEAN,1
+/AUTOSAR/EcucDefs/Os/OsOS/OsStatus,STATUS,ENUM,1
+/AUTOSAR/EcucDefs/Os/OsOS/OsUseGetServiceId,GETSERVICEID,BOOLEAN,1
+/AUTOSAR/EcucDefs/Os/OsOS/OsUseParameterAccess,PARAMETERACCESS,BOOLEAN,1
+/AUTOSAR/EcucDefs/Os/OsOS/OsHooks,HOOK,,1
+/AUTOSAR/EcucDefs/Os/OsOS/OsHooks/OsStartupHook,STARTUPHOOK,BOOLEAN,1
+/AUTOSAR/EcucDefs/Os/OsOS/OsHooks/OsShutdownHook,SHUTDOWNHOOK,BOOLEAN,1
+/AUTOSAR/EcucDefs/Os/OsOS/OsHooks/OsPreTaskHook,PRETASKHOOK,BOOLEAN,1
+/AUTOSAR/EcucDefs/Os/OsOS/OsHooks/OsPostTaskHook,POSTTASKHOOK,BOOLEAN,1
+/AUTOSAR/EcucDefs/Os/OsOS/OsHooks/OsErrorHook,ERRORHOOK,BOOLEAN,1
+/AUTOSAR/EcucDefs/Os/OsOS/OsHooks/OsProtectionHook,PROTECTIONHOOK,BOOLEAN,1
+/AUTOSAR/EcucDefs/Os/OsOS/OsOsStack,OSTK,,0,1
+/AUTOSAR/EcucDefs/Os/OsOS/OsOsStack/OsOsStackSize,STKSZ,INT,1
+/AUTOSAR/EcucDefs/Os/OsOS/OsOsStack/OsOsStackStartAddress,STK,+STRING,0,1
+/AUTOSAR/EcucDefs/Os/OsOS/OsHookStack,HSTK,,0,1
+/AUTOSAR/EcucDefs/Os/OsOS/OsHookStack/OsHookStackSize,STKSZ,INT,1
+/AUTOSAR/EcucDefs/Os/OsOS/OsNonTrustedHookStack,NTHSTK,,0,1
+/AUTOSAR/EcucDefs/Os/OsOS/OsNonTrustedHookStack/OsNonTrustedHookStackSize,STKSZ,INT,1
+/AUTOSAR/EcucDefs/Os/OsOS/OsNonTrustedHookStack/OsNonTrustedHookStackStartAddress,STK,+STRING,0,1
+/AUTOSAR/EcucDefs/Os/OsInclude,XINCLUDE,,0,*
+/AUTOSAR/EcucDefs/Os/OsInclude/OsIncludeFileName,XINCNAME,+INCLUDE,1,*
+/AUTOSAR/EcucDefs/Os/OsAppMode,APP,,1,*
+/AUTOSAR/EcucDefs/Os/OsTask,TSK,,0,*
+/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation,ACTIVATION,INT,1
+/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority,PRIORITY,INT,1
+/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule,SCHEDULE,ENUM,1
+/AUTOSAR/EcucDefs/Os/OsTask/OsTaskEventRef,EVT_LIST,REF,0,*
+/AUTOSAR/EcucDefs/Os/OsTask/OsTaskResourceRef,RES_LIST,REF,0,*
+/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize,STKSZ,INT,0,1
+/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackStartAddress,STK,+STRING,0,1
+/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAccessingApplication,ACS_OSAP_LIST,REF,0,*
+/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize,SSTKSZ,INT,0,1
+/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackStartAddress,SSTK,+STRING,0,1
+/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAutostart,TSK.AUTOSTART,,0,1
+/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAutostart/OsTaskAppModeRef,APP_LIST,REF,1,*
+/AUTOSAR/EcucDefs/Os/OsIsr,ISR,,0,*
+/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrCategory,CATEGORY,ENUM,1
+/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrInterruptNumber,INTNO,INT,1
+/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrInterruptPriority,INTPRI,INT,1
+/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrResourceRef,RES_LIST,REF,0,*
+/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrStackSize,STKSZ,INT,0,1
+/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrInterruptTrigger,INTATR,INT,0,1
+/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrInterruptSource,SOURCE,ENUM,1
+/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrAccessingApplication,ACS_OSAP_LIST,REF,0,*
+/AUTOSAR/EcucDefs/Os/OsEvent,EVT,,0,*
+/AUTOSAR/EcucDefs/Os/OsEvent/OsEventMask,MASK,INT,0,1
+/AUTOSAR/EcucDefs/Os/OsResource,RES,,0,*
+/AUTOSAR/EcucDefs/Os/OsResource/OsResourceProperty,RESATR,ENUM,1
+/AUTOSAR/EcucDefs/Os/OsResource/OsResourceLinkedResourceRef,LINKEDRESID,REF,0,1
+/AUTOSAR/EcucDefs/Os/OsResource/OsResourceAccessingApplication,ACS_OSAP_LIST,REF,0,*
+/AUTOSAR/EcucDefs/Os/OsCounter,CNT,,0,*
+/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterMaxAllowedValue,MAXALLOWED,INT,1
+/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterMinCycle,MINCYCLE,INT,1
+/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterTicksPerBase,TICKSPERBASE,INT,1
+/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterType,CNTATR,ENUM,1
+/AUTOSAR/EcucDefs/Os/OsCounter/OsSecondsPerTick,SECONDSPERTICK,FLOAT,0,1
+/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterIsrRef,ISRID,REF,0,1
+/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterAccessingApplication,ACS_OSAP_LIST,REF,0,*
+/AUTOSAR/EcucDefs/Os/OsAlarm,ALM,,0,*
+/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmCounterRef,CNTID,REF,1
+/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAccessingApplication,ACS_OSAP_LIST,REF,0,*
+/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction,ALM.ACTION,,1
+/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmActivateTask,ALM.ACTION.ACTIVATETASK,,0,1
+/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmActivateTask/OsAlarmActivateTaskRef,TSKID,REF,1
+/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmCallback,ALM.ACTION.CALLBACK,,0,1
+/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmCallback/OsAlarmCallbackName,CALLBACK,FUNCTION,1
+/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmIncrementCounter,ALM.ACTION.INCREMENTCOUNTER,,0,1
+/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmIncrementCounter/OsAlarmIncrementCounterRef,INCID,REF,1
+/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent,ALM.ACTION.SETEVENT,,0,1
+/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent/OsAlarmSetEventRef,EVTID,REF,1
+/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent/OsAlarmSetEventTaskRef,TSKID,REF,1
+/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart,ALM.AUTOSTART,,0,1
+/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAlarmTime,ALARMTIME,INT,1
+/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAppModeRef,APP_LIST,REF,1,*
+/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmCycleTime,CYCLETIME,INT,1
+/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAutostartType,TYPE,ENUM,1
+/AUTOSAR/EcucDefs/Os/OsScheduleTable,SCHTBL,,0,*
+/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableDuration,DURATIONTICK,INT,1
+/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableRepeating,REPEAT,BOOLEAN,1
+/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableCounterRef,CNTID,REF,1
+/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsSchTblAccessingApplication,ACS_OSAP_LIST,REF,0,*
+/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableAutostart,SCHTBL.AUTOSTART,,0,1
+/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableAutostart/OsScheduleTableStartValue,STARTTICK,INT,0,1
+/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableAutostart/OsScheduleTableAutostartType,TYPE,ENUM,1
+/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableAutostart/OsScheduleTableAppModeRef,APP_LIST,REF,1,*
+/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint,SCHTBL.EXPPT,,1,*
+/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTblExpPointOffset,OFFSET,INT,1
+/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting,SCHTBL.EXPPT.SETEVENT,,0,*
+/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting/OsScheduleTableSetEventRef,EVTID,REF,1
+/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting/OsScheduleTableSetEventTaskRef,TSKID,REF,1
+/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableTaskActivation,SCHTBL.EXPPT.ACTIVATETASK,,0,*
+/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableTaskActivation/OsScheduleTableActivateTaskRef,TSKID,REF,1
+/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableSync,SCHTBL.SYNC,,0,1
+/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableSync/OsScheduleTblSyncStrategy,STRATEGY,ENUM,1
+/AUTOSAR/EcucDefs/Os/OsApplication,OSAP,,0,*
+/AUTOSAR/EcucDefs/Os/OsApplication/OsTrusted,TRUSTED,BOOLEAN,1
+/AUTOSAR/EcucDefs/Os/OsApplication/OsAppAlarmRef,ALM_LIST,REF,0,*
+/AUTOSAR/EcucDefs/Os/OsApplication/OsAppCounterRef,CNT_LIST,REF,0,*
+/AUTOSAR/EcucDefs/Os/OsApplication/OsAppIsrRef,ISR_LIST,REF,0,*
+/AUTOSAR/EcucDefs/Os/OsApplication/OsAppScheduleTableRef,SCHTBL_LIST,REF,0,*
+/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef,TSK_LIST,REF,0,*
+/AUTOSAR/EcucDefs/Os/OsApplication/OsAppMemorySectionRef,SEC_LIST,REF,0,*
+/AUTOSAR/EcucDefs/Os/OsApplication/OsAppMemoryModuleRef,MOD_LIST,REF,0,*
+/AUTOSAR/EcucDefs/Os/OsApplication/OsAppMemoryAreaRef,MEM_LIST,REF,0,*
+/AUTOSAR/EcucDefs/Os/OsApplication/OsRestartTask,RESTARTTASK,REF,0,1
+/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks,OSAP.HOOK,,1
+/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppErrorHook,ERRORHOOK,BOOLEAN,1
+/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppShutdownHook,SHUTDOWNHOOK,BOOLEAN,1
+/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppStartupHook,STARTUPHOOK,BOOLEAN,1
+/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction,OSAP.TFN,,0,*
+/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction/OsTrustedFunctionName,FUNC,FUNCTION,1
+/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction/OsTrustedFunctionStackSize,STKSZ,INT,0,1
+/AUTOSAR/EcucDefs/Os/OsMemoryRegion,REG,,2,*
+/AUTOSAR/EcucDefs/Os/OsMemoryRegion/OsMemoryRegionName,REGION,STRING,1
+/AUTOSAR/EcucDefs/Os/OsMemoryRegion/OsMemoryRegionWriteable,WRITE,BOOLEAN,1
+/AUTOSAR/EcucDefs/Os/OsMemoryRegion/OsMemoryRegionStartAddress,BASE,INT,1
+/AUTOSAR/EcucDefs/Os/OsMemoryRegion/OsMemoryRegionSize,SIZE,INT,1
+/AUTOSAR/EcucDefs/Os/OsStandardMemoryRegion,SRG,,1
+/AUTOSAR/EcucDefs/Os/OsStandardMemoryRegion/OsStandardMemoryRomRegionRef,STDROM,REF,1
+/AUTOSAR/EcucDefs/Os/OsStandardMemoryRegion/OsStandardMemoryRamRegionRef,STDRAM,REF,1
+/AUTOSAR/EcucDefs/Os/OsMemoryArea,MEM,,0,*
+/AUTOSAR/EcucDefs/Os/OsMemoryArea/OsMemoryAreaStartAddress,BASE,+STRING,1
+/AUTOSAR/EcucDefs/Os/OsMemoryArea/OsMemoryAreaSize,SIZE,INT,1
+/AUTOSAR/EcucDefs/Os/OsMemoryArea/OsMemoryAreaWritable,WRITE,BOOLEAN,1
+/AUTOSAR/EcucDefs/Os/OsMemoryArea/OsMemoryAreaReadable,READ,BOOLEAN,1
+/AUTOSAR/EcucDefs/Os/OsMemoryArea/OsMemoryAreaExecutable,EXEC,BOOLEAN,1
+/AUTOSAR/EcucDefs/Os/OsMemoryArea/OsMemoryAreaCacheable,CACHE,BOOLEAN,1
+/AUTOSAR/EcucDefs/Os/OsMemoryArea/OsMemoryAreaDevice,DEVICE,BOOLEAN,1
+/AUTOSAR/EcucDefs/Os/OsMemorySection,SEC,,0,*
+/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionName,SECTION,STRING,1
+/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionMemoryRegionRef,MEMREG,REF,1
+/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionWritable,WRITE,BOOLEAN,1
+/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionReadable,READ,BOOLEAN,1
+/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExecutable,EXEC,BOOLEAN,1
+/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionShort,SDATA,BOOLEAN,1
+/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionCacheable,CACHE,BOOLEAN,1
+/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionDevice,DEVICE,BOOLEAN,1
+/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionInitialize,INIT,ENUM,0,1
+/AUTOSAR/EcucDefs/Os/OsMemorySection/OsMemorySectionExport,EXPORT,BOOLEAN,1
+/AUTOSAR/EcucDefs/Os/OsMemoryModule,MOD,,0,*
+/AUTOSAR/EcucDefs/Os/OsMemoryModule/OsMemoryModuleName,MODULE,STRING,1,*
+/AUTOSAR/EcucDefs/Os/OsMemoryModule/OsMemoryModuleExport,EXPORT,BOOLEAN,1
+/AUTOSAR/EcucDefs/Os/OsLinkSection,LNK,,0,*
+/AUTOSAR/EcucDefs/Os/OsLinkSection/OsLinkSectionName,SECTION,STRING,1
+/AUTOSAR/EcucDefs/Os/OsLinkSection/OsLinkSectionMemoryRegionRef,MEMREG,REF,1
+/AUTOSAR/EcucDefs/Os/OsIoc,OSIOC,,0,1
+/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication,IOC,,0,*
+/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocBufferLength,BUFLEN,INT,0,1
+/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties,IOCDATA,,1,*
+/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties/OsIocDataPropertyIndex,INDEX,INT,0,1
+/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties/OsIocInitValue,INITVAL,+STRING,0,1
+/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties/OsIocDataTypeRef,DATATYPE,+STRING,1
+/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocReceiverProperties,IOCRCV,,1
+/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocReceiverProperties/OsIocFunctionImplementationKind,IMPLKIND,+STRING,0,1
+/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocReceiverProperties/OsIocReceivingOsApplicationRef,OSAPID,REF,1
+/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties,IOCSND,,1,*
+/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties/OsIocFunctionImplementationKind,IMPLKIND,+STRING,0,1
+/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties/OsIocSenderId,SENDERID,INT,0,1
+/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties/OsIocSendingOsApplicationRef,OSAPID,REF,1
Index: /atk2-sc3_fl850f1l/kernel/kernel.ini
===================================================================
--- /atk2-sc3_fl850f1l/kernel/kernel.ini	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/kernel.ini	(revision 117)
@@ -0,0 +1,23 @@
+;ATK2 AUTOSAR R4.0 用ジェネレータ設定ファイル
+
+;AUTOSARの対応バージョン（3または4のみ対応）
+AUTOSARVersion=4
+
+;AUTOSARスキーマのファイル名（cfg.exeの相対パスで記載）
+Schema=./AUTOSAR_4-0-3_STRICT.xsd
+
+;AUTOSARスキーマのロケーション情報
+SchemaLocation=http://autosar.org/schema/r4.0
+
+;多重度チェックのコンテナのパス情報
+ContainerPath=/AUTOSAR/EcucDefs
+
+;対象モジュール名
+ModuleName=Os
+
+;未定義パラメータチェックオプション(TRUE：未定義パラメータに対して警告を表示，
+;FALSE:未定義パラメータに対して警告を表示しない，省略時はFALSEと見なす)
+CheckUnknownParameter=FALSE
+
+;汎用XML評価テーブルファイル名（cfg.exeの相対パスで記載）
+XMLEvaluateFile=../../kernel/system.csv
Index: /atk2-sc3_fl850f1l/kernel/kernel.tf
===================================================================
--- /atk2-sc3_fl850f1l/kernel/kernel.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/kernel.tf	(revision 117)
@@ -0,0 +1,4661 @@
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$  Copyright (C) 2007 by TAKAGI Nobuhisa
+$  Copyright (C) 2007-2015 by Center for Embedded Computing Systems
+$              Graduate School of Information Science, Nagoya Univ., JAPAN
+$  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+$  Copyright (C) 2011-2013 by Spansion LLC, USA
+$  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+$  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+$  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+$  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+$  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+$  Copyright (C) 2011-2015 by Witz Corporation
+$  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+$  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+$  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+$
+$  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+$  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+$  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+$  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+$      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+$      スコード中に含まれていること．
+$  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+$      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+$      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+$      の無保証規定を掲載すること．
+$  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+$      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+$      と．
+$    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+$        作権表示，この利用条件および下記の無保証規定を掲載すること．
+$    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+$        報告すること．
+$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+$      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+$      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+$      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+$      免責すること．
+$
+$  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+$  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+$  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+$  用する者に対して，AUTOSARパートナーになることを求めている．
+$
+$  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+$  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+$  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$  の責任を負わない．
+$
+$  $Id: kernel.tf 187 2015-06-25 03:39:04Z t_ishikawa $
+$
+
+$TRACE("EXEC kernel.tf")$
+
+$ XMLのデータ構造に問題があるか
+$FATAL = 0$
+
+$ =====================================================================
+$ boolean判定関数
+$ =====================================================================
+
+$FUNCTION IS_TRUE$
+	$true_list = {1, "1", "true", "TRUE", "ON", "ENABLE"}$
+	$false_list = {0, "0", "false", "FALSE", "OFF", "DISABLE"}$
+	$error_flag = 1$
+	
+	$FOREACH false false_list$
+		$IF EQ(false, ARGV[1])$
+			$check_result = VALUE("FALSE", 0)$
+			$error_flag = 0$
+		$END$
+	$END$
+	$FOREACH true true_list$
+		$IF EQ(true, ARGV[1])$
+			$check_result = VALUE("TRUE", 1)$
+			$error_flag = 0$
+		$END$
+	$END$
+
+	$IF error_flag > 0$
+		$ERROR ARGV[2]$$FORMAT(_("%1% must be boolean type"), ARGV[1])$$END$
+	$END$
+
+	$RESULT = check_result$
+$END$
+
+$ =====================================================================
+$ boolean変換
+$ =====================================================================
+
+$OS.STACKMONITORING[1] = IS_TRUE(OS.STACKMONITORING[1], OS.TEXT_LINE[1])$
+$OS.GETSERVICEID[1] = IS_TRUE(OS.GETSERVICEID[1], OS.TEXT_LINE[1])$
+$OS.PARAMETERACCESS[1] = IS_TRUE(OS.PARAMETERACCESS[1], OS.TEXT_LINE[1])$
+$HOOK.STARTUPHOOK[1] = IS_TRUE(HOOK.STARTUPHOOK[1], HOOK.TEXT_LINE[1])$
+$HOOK.SHUTDOWNHOOK[1] = IS_TRUE(HOOK.SHUTDOWNHOOK[1], HOOK.TEXT_LINE[1])$
+$HOOK.PRETASKHOOK[1] = IS_TRUE(HOOK.PRETASKHOOK[1], HOOK.TEXT_LINE[1])$
+$HOOK.POSTTASKHOOK[1] = IS_TRUE(HOOK.POSTTASKHOOK[1], HOOK.TEXT_LINE[1])$
+$HOOK.ERRORHOOK[1] = IS_TRUE(HOOK.ERRORHOOK[1], HOOK.TEXT_LINE[1])$
+$HOOK.PROTECTIONHOOK[1] = IS_TRUE(HOOK.PROTECTIONHOOK[1], HOOK.TEXT_LINE[1])$
+$FOREACH schtblid SCHTBL.ID_LIST$
+	$SCHTBL.REPEAT[schtblid] = IS_TRUE(SCHTBL.REPEAT[schtblid],SCHTBL.TEXT_LINE[schtblid])$
+$END$
+$FOREACH osapid OSAP.ID_LIST$
+	$OSAP.TRUSTED[osapid] = IS_TRUE(OSAP.TRUSTED[osapid], OSAP.TEXT_LINE[osapid])$
+$END$
+$FOREACH hookid OSAP.HOOK.ID_LIST$
+	$OSAP.HOOK.STARTUPHOOK[hookid] = IS_TRUE(OSAP.HOOK.STARTUPHOOK[hookid], OSAP.TEXT_LINE[osapid])$
+	$OSAP.HOOK.SHUTDOWNHOOK[hookid] = IS_TRUE(OSAP.HOOK.SHUTDOWNHOOK[hookid], OSAP.TEXT_LINE[osapid])$
+	$OSAP.HOOK.ERRORHOOK[hookid] = IS_TRUE(OSAP.HOOK.ERRORHOOK[hookid], OSAP.TEXT_LINE[osapid])$
+$END$
+$FOREACH regid REG.ID_LIST$
+	$REG.WRITE[regid] = IS_TRUE(REG.WRITE[regid])$
+$END$
+$FOREACH memid MEM.ID_LIST$
+	$MEM.WRITE[memid] = IS_TRUE(MEM.WRITE[memid], MEM.TEXT_LINE[memid])$
+	$MEM.READ[memid] = IS_TRUE(MEM.READ[memid], MEM.TEXT_LINE[memid])$
+	$MEM.EXEC[memid] = IS_TRUE(MEM.EXEC[memid], MEM.TEXT_LINE[memid])$
+	$MEM.CACHE[memid] = IS_TRUE(MEM.CACHE[memid], MEM.TEXT_LINE[memid])$
+	$MEM.DEVICE[memid] = IS_TRUE(MEM.DEVICE[memid], MEM.TEXT_LINE[memid])$
+$END$
+$FOREACH secid SEC.ID_LIST$
+	$SEC.WRITE[secid] = IS_TRUE(SEC.WRITE[secid], SEC.TEXT_LINE[secid])$
+	$SEC.READ[secid] = IS_TRUE(SEC.READ[secid], SEC.TEXT_LINE[secid])$
+	$SEC.EXEC[secid] = IS_TRUE(SEC.EXEC[secid], SEC.TEXT_LINE[secid])$
+	$SEC.SDATA[secid] = IS_TRUE(SEC.SDATA[secid], SEC.TEXT_LINE[secid])$
+	$SEC.CACHE[secid] = IS_TRUE(SEC.CACHE[secid], SEC.TEXT_LINE[secid])$
+	$SEC.DEVICE[secid] = IS_TRUE(SEC.DEVICE[secid], SEC.TEXT_LINE[secid])$
+$END$
+$FOREACH modid MOD.ID_LIST$
+	$MOD.EXPORT[modid] = IS_TRUE(MOD.EXPORT[modid], MOD.TEXT_LINE[modid])$
+$END$
+
+
+$ =====================================================================
+$ OSAPのエラーチェックと関連づけ
+$ =====================================================================
+
+$FOREACH osapid OSAP.ID_LIST$
+	$FOREACH tskid OSAP.TSK_LIST[osapid]$
+		$IF LENGTH(TSK.OSAPID[tskid])$
+			$ERROR OSAP.TEXT_LINE[osapid]$$FORMAT(_("OsTask(%1%) belongs to another OsApplication(%2%)"), tskid, TSK.OSAPID[tskid])$$END$
+		$ELSE$
+			$TSK.OSAPID[tskid] = osapid$
+		$END$
+	$END$
+
+	$FOREACH cntid OSAP.CNT_LIST[osapid]$
+		$IF LENGTH(CNT.OSAPID[cntid])$
+			$ERROR OSAP.TEXT_LINE[osapid]$$FORMAT(_("OsCounter(%1%) belongs to another OsApplication(%2%)"), cntid, CNT.OSAPID[cntid])$$END$
+		$ELSE$
+			$CNT.OSAPID[cntid] = osapid$
+		$END$
+	$END$
+
+	$FOREACH almid OSAP.ALM_LIST[osapid]$
+		$IF LENGTH(ALM.OSAPID[almid])$
+			$ERROR OSAP.TEXT_LINE[osapid]$$FORMAT(_("OsAlarm(%1%) belongs to another OsApplication(%2%)"), almid, ALM.OSAPID[almid])$$END$
+		$ELSE$
+			$ALM.OSAPID[almid] = osapid$
+		$END$
+	$END$
+
+	$FOREACH isrid OSAP.ISR_LIST[osapid]$
+		$IF LENGTH(ISR.OSAPID[isrid])$
+			$ERROR OSAP.TEXT_LINE[osapid]$$FORMAT(_("OsIsr(%1%) belongs to another OsApplication(%2%)"), isrid, ISR.OSAPID[isrid])$$END$
+		$ELSE$
+			$ISR.OSAPID[isrid] = osapid$
+		$END$
+	$END$
+
+	$FOREACH schtblid OSAP.SCHTBL_LIST[osapid]$
+		$IF LENGTH(SCHTBL.OSAPID[schtblid])$
+			$ERROR OSAP.TEXT_LINE[osapid]$$FORMAT(_("OsScheduleTable(%1%) belongs to another OsApplication(%2%)"), schtblid, SCHTBL.OSAPID[schtblid])$$END$
+		$ELSE$
+			$SCHTBL.OSAPID[schtblid] = osapid$
+		$END$
+	$END$
+
+	$FOREACH secid OSAP.SEC_LIST[osapid]$
+		$IF LENGTH(SEC.OSAPID[secid])$
+			$ERROR OSAP.TEXT_LINE[osapid]$$FORMAT(_("OsMemorySection(%1%) belongs to another OsApplication(%2%)"),secid, SEC.OSAPID[secid])$$END$
+		$ELSE$
+			$SEC.OSAPID[secid] = osapid$
+		$END$
+	$END$
+
+	$FOREACH modid OSAP.MOD_LIST[osapid]$
+		$IF LENGTH(MOD.OSAPID[modid])$
+			$ERROR OSAP.TEXT_LINE[osapid]$$FORMAT(_("OsMemoryModule(%1%) belongs to another OsApplication(%2%)"), modid, MOD.OSAPID[modid])$$END$
+		$ELSE$
+			$MOD.OSAPID[modid] = osapid$
+		$END$
+	$END$
+
+	$FOREACH memid OSAP.MEM_LIST[osapid]$
+		$IF LENGTH(MEM.OSAPID[memid])$
+			$ERROR OSAP.TEXT_LINE[osapid]$$FORMAT(_("OsMemoryArea(%1%) belongs to another OsApplication(%2%)"), memid, MEM.OSAPID[memid])$$END$
+		$ELSE$
+			$MEM.OSAPID[memid] = osapid$
+		$END$
+	$END$
+
+	$IF LENGTH(OSAP.RESTARTTASK[osapid])$
+		$FOREACH tskid TSK.ID_LIST$
+			$IF EQ(OSAP.RESTARTTASK[osapid], tskid)$
+				$IF LENGTH(TSK.OSAPID[tskid]) && !EQ(TSK.OSAPID[tskid], osapid)$
+					$ERROR OSAP.TEXT_LINE[osapid]$$FORMAT(_("OsRestartTask(%1%) belongs to another OsApplication(%2%)"), tskid, TSK.OSAPID[tskid])$$END$
+				$ELIF LENGTH(TSK.AUTOSTART.APP_LIST[tskid])$
+					$WARNING OSAP.TEXT_LINE[osapid]$$FORMAT(_("OsRestartTask(%1%) is set to an auto start task"), tskid)$$END$
+					$OSAP.RESTARTTASK[osapid] = tskid$
+					$TSK.OSAPID[tskid] = osapid$
+				$ELSE$
+					$OSAP.RESTARTTASK[osapid] = tskid$
+					$TSK.OSAPID[tskid] = osapid$
+				$END$
+			$END$
+		$END$
+		$IF !LENGTH(OSAP.RESTARTTASK[osapid])$
+$			// OsRestartTaskが見つからなかった
+			$ERROR OSAP.TEXT_LINE[osapid]$$FORMAT(_("OsRestartTask(%1%) of OSAP(%2%) no exist"), OSAP.RESTARTTASK[osapid], osapid)$$END$
+		$END$
+	$ELSE$
+		$OSAP.RESTARTTASK[osapid] = "NO_RESTART_TASK"$
+	$END$
+$END$
+
+$ OSAP.HOOK.*をOSAP.*にコピー
+$FOREACH hookid OSAP.HOOK.ID_LIST$
+	$osapid = OSAP.HOOK.PARENT[hookid]$
+	$OSAP.STARTUPHOOK[osapid] = OSAP.HOOK.STARTUPHOOK[hookid]$
+	$OSAP.SHUTDOWNHOOK[osapid] = OSAP.HOOK.SHUTDOWNHOOK[hookid]$
+	$OSAP.ERRORHOOK[osapid] = OSAP.HOOK.ERRORHOOK[hookid]$
+$END$
+
+$ OSAP.TFN.*をTFN.*にコピー
+$TFN.ID_LIST = {}$
+$FOREACH tfnid OSAP.TFN.ID_LIST$
+	$osapid = OSAP.TFN.PARENT[tfnid]$
+	$FOREACH tfnid2 TFN.ID_LIST$
+		$IF EQ(tfnid, tfnid2)$
+			$ERROR OSAP.TEXT_LINE[tfnid]$$FORMAT(_("duplicate OsApplicationTrustedFunction name(%1%) in OSAP (%2%) and (%3%)"), tfnid, osapid, TFN.OSAPID[tfnid2])$$END$
+			$DIE()$
+		$END$
+	$END$
+	$TFN.ID_LIST = APPEND(TFN.ID_LIST, tfnid)$
+	$TFN.FUNC[tfnid] = OSAP.TFN.FUNC[tfnid]$
+	$TFN.STKSZ[tfnid] = OSAP.TFN.STKSZ[tfnid]$
+	$TFN.OSAPID[tfnid] = osapid$
+$END$
+
+
+$ =====================================================================
+$ OSTK.STKがない場合にNULLを入れる
+$ =====================================================================
+
+$FOREACH ostkid OSTK.ID_LIST$
+	$IF !LENGTH(OSTK.STK[ostkid])$
+		$OSTK.STK[ostkid] = "NULL"$
+	$END$
+$END$
+
+
+$ =====================================================================
+$ NTHSTK.STKがない場合にNULLを入れる
+$ =====================================================================
+
+$FOREACH nthstkid NTHSTK.ID_LIST$
+	$IF !LENGTH(NTHSTK.STK[nthstkid])$
+		$NTHSTK.STK[nthstkid] = "NULL"$
+	$END$
+$END$
+
+
+$ =====================================================================
+$ REG.REGATRとREG.REGNAMEの作成
+$ REG.REGIONとREG.ID_LISTの整形
+$ =====================================================================
+
+$new_id_list = {}$
+$FOREACH regid REG.ID_LIST$
+	$IF !LENGTH(REG.REGATR[regid])$
+		$REG.REGATR[regid] = TA_NULL$
+	$END$
+	$IF !REG.WRITE[regid]$
+		$REG.REGATR[regid] = REG.REGATR[regid] | TA_NOWRITE$
+	$END$
+	$REG.REGION[regid] = ESCSTR(REG.REGION[regid])$
+	$new_id_list = APPEND(new_id_list, +regid)$
+$END$
+$REG.ID_LIST = new_id_list$
+$REG.ORDER_LIST = new_id_list$
+
+
+$ =====================================================================
+$ SRG.STDROMとSRG.STDRAMを整形
+$ =====================================================================
+
+$new_id_list = {}$
+$FOREACH srgid SRG.ID_LIST$
+	$SRG.STDROM[srgid] = VALUE(ESCSTR(SRG.STDROM[srgid]), +srgid)$
+	$SRG.STDRAM[srgid] = VALUE(ESCSTR(SRG.STDRAM[srgid]), +srgid)$
+	$new_id_list = APPEND(new_id_list, +srgid)$
+$END$
+$SRG.ORDER_LIST = new_id_list$
+
+$ =====================================================================
+$ SECのエラーチェックとSEC.MEMATRの作成
+$ =====================================================================
+
+$FOREACH secid SEC.ID_LIST$
+	$SEC.MEMATR[secid] = 0$
+
+	$IF LENGTH(SEC.INIT[secid])$
+		$IF EQ(SEC.INIT[secid], "DATA")$
+			$SEC.MEMATR[secid] = TA_MEMINI$
+		$ELIF EQ(SEC.INIT[secid], "BSS")$
+			$SEC.MEMATR[secid] = TA_NULL$
+		$ELIF EQ(SEC.INIT[secid], "NO_INITIALIZE")$
+			$SEC.MEMATR[secid] = TA_MEMPRSV$
+		$ELSE$
+			$ERROR SEC.TEXT_LINE[secid]$$FORMAT(_("OsMemorySectionInitialize must be DATA or BSS or NO_INITIALIZE"))$$END$
+		$END$
+		$IF !REG.WRITE[SEC.MEMREG[secid]]$
+			$ERROR SEC.TEXT_LINE[secid]$$FORMAT(_("OsMemorySectionInitialize must not be defined on nonwritable memory region"))$$END$
+		$END$
+	$ELSE$
+		$IF REG.WRITE[SEC.MEMREG[secid]]$
+			$ERROR SEC.TEXT_LINE[secid]$$FORMAT(_("OsMemorySectionInitialize must be defined on writable memory region"))$$END$
+		$END$
+	$END$
+
+	$IF !SEC.WRITE[secid]$
+		$SEC.MEMATR[secid] = SEC.MEMATR[secid] | TA_NOWRITE$
+	$END$
+	$IF !SEC.READ[secid]$
+		$SEC.MEMATR[secid] = SEC.MEMATR[secid] | TA_NOREAD$
+	$END$
+	$IF SEC.EXEC[secid]$
+		$SEC.MEMATR[secid] = SEC.MEMATR[secid] | TA_EXEC$
+	$END$
+	$IF SEC.SDATA[secid]$
+		$SEC.MEMATR[secid] = SEC.MEMATR[secid] | TA_SDATA$
+	$END$
+	$IF !SEC.CACHE[secid]$
+		$SEC.MEMATR[secid] = SEC.MEMATR[secid] | TA_UNCACHE$
+	$END$
+	$IF SEC.DEVICE[secid]$
+		$SEC.MEMATR[secid] = SEC.MEMATR[secid] | TA_IODEV$
+	$END$
+$END$
+
+
+$ =====================================================================
+$ MEM.MEMATRの作成
+$ =====================================================================
+
+$FOREACH memid MEM.ID_LIST$
+	$MEM.MEMATR[memid] = TA_MEMPRSV$
+	$IF !MEM.WRITE[memid]$
+		$MEM.MEMATR[memid] = MEM.MEMATR[memid] | TA_NOWRITE$
+	$END$
+	$IF !MEM.READ[memid]$
+		$MEM.MEMATR[memid] = MEM.MEMATR[memid] | TA_NOREAD$
+	$END$
+	$IF MEM.EXEC[memid]$
+		$MEM.MEMATR[memid] = MEM.MEMATR[memid] | TA_EXEC$
+	$END$
+	$IF !MEM.CACHE[memid]$
+		$MEM.MEMATR[memid] = MEM.MEMATR[memid] | TA_UNCACHE$
+	$END$
+	$IF MEM.DEVICE[memid]$
+		$MEM.MEMATR[memid] = MEM.MEMATR[memid] | TA_IODEV$
+	$END$
+$END$
+
+
+$ =====================================================================
+$ LNKをSECに統合する
+$ =====================================================================
+
+$IF LENGTH(SEC.ID_LIST)$
+	$i = AT(SEC.ID_LIST, LENGTH(SEC.ID_LIST) - 1) + 1$
+$ELSE$
+	$i = 1$
+$END$
+$FOREACH lnkid LNK.ID_LIST$
+	$SEC.SECTION[i] = LNK.SECTION[lnkid]$
+	$SEC.MEMREG[i] = LNK.MEMREG[lnkid]$
+	$SEC.ID_LIST = APPEND(SEC.ID_LIST, VALUE(lnkid, i))$
+	$SEC.ORDER_LIST = APPEND(SEC.ORDER_LIST, VALUE(lnkid, i))$
+	$i = i + 1$
+$END$
+
+$ MEMREGはREFになっているがkernel.tfでは文字列として扱う
+$FOREACH secid SEC.ID_LIST$
+	$SEC.MEMREG[secid] = REG.REGION[SEC.MEMREG[secid]]$
+	$SEC.SECTION[secid] = ESCSTR(SEC.SECTION[secid])$
+$END$
+
+
+$ =====================================================================
+$ MOD.MODULEの作成
+$ =====================================================================
+
+$nummod = LENGTH(MOD.ORDER_LIST)$
+$FOREACH modid MOD.ID_LIST$
+	$FOREACH name MOD.MODULE[modid]$
+		$IF EQ(name, AT(MOD.MODULE[modid], 0))$
+			$MOD.MODULE[modid] = ESCSTR(name)$
+		$ELSE$
+			$nummod = nummod + 1$
+			$MOD.ORDER_LIST = APPEND(nummod, MOD.ORDER_LIST)$
+			$MOD.MODULE[nummod] = ESCSTR(name)$
+			$MOD.OSAPID[nummod] = MOD.OSAPID[modid]$
+			$MOD.TEXT_LINE[nummod] = MOD.TEXT_LINE[modid]$
+			$MOD.EXPORT[nummod] = MOD.EXPORT[modid]$
+		$END$
+	$END$
+$END$
+
+$ =====================================================================
+$ TSKのエラーチェックと関連づけ
+$ =====================================================================
+
+$TRACE("ASSOCIATE TASK")$
+
+$ TSK.AUTOSTARTをTSKにコピー
+$FOREACH aid TSK.AUTOSTART.ID_LIST$
+	$tskid                = TSK.AUTOSTART.PARENT[aid]$
+	$TSK.APP_LIST[tskid]  = TSK.AUTOSTART.APP_LIST[aid]$
+$END$
+
+
+$FOREACH tskid TSK.ID_LIST$
+	$IF LENGTH(TSK.OSAPID[tskid])$
+		$IF OSAP.TRUSTED[TSK.OSAPID[tskid]]$
+$			// 信頼タスクはOsTaskSystemStackStartAddressの使用不可
+			$IF LENGTH(TSK.SSTK[tskid])$
+				$ERROR TSK.TEXT_LINE[tskid]$$FORMAT(_("Trusted OsTask(%1%) can't use OsTaskSystemStackStartAddress"), tskid)$$END$
+			$END$
+		$ELSE$
+$			// 非信頼タスクでシステムスタックの先頭番地が指定されてサイズが指定されない
+			$IF LENGTH(TSK.SSTK[tskid]) && !LENGTH(TSK.SSTKSZ[tskid])$
+				$ERROR TSK.TEXT_LINE[tskid]$$FORMAT(_("OsTaskSystemStackSize of Non-Trusted OsTask(%1%) is necessary when OsTaskSystemStackStartAddress is used"), tskid)$$END$
+			$END$
+		$END$
+	$END$
+$END$
+
+
+$ =====================================================================
+$ ISRのエラーチェックと関連づけ
+$ =====================================================================
+
+$TRACE("ASSOCIATE ISR")$
+
+$FOREACH isrid ISR.ID_LIST$
+	$IF !(EQ(ISR.SOURCE[isrid], "ENABLE") || EQ(ISR.SOURCE[isrid], "DISABLE"))$
+		$ERROR ISR.TEXT_LINE[isrid]$$FORMAT(_("OsIsrInterruptSource must be ENABLE or DISABLE"))$$END$
+	$END$
+
+$	// C1ISRはENABLEにする必要がある
+	$IF EQ(ISR.SOURCE[isrid], "DISABLE") && EQ(ISR.CATEGORY[isrid], "CATEGORY_1")$
+		$ERROR ISR.TEXT_LINE[isrid]$$FORMAT(_("OsIsrInterruptSource of C1ISR OsIsr(%1%) must include ENABLE"), isrid)$$END$
+	$END$
+
+	$IF EQ(ISR.SOURCE[isrid], "ENABLE")$
+		$IF LENGTH(ISR.INTATR[isrid])$
+			$ISR.INTATR[isrid] = VALUE(CONCAT(ISR.INTATR[isrid], " | ENABLE"), ISR.INTATR[isrid] | ENABLE)$
+		$ELSE$
+			$ISR.INTATR[isrid] = ENABLE$
+		$END$
+	$ELSE$
+		$IF LENGTH(ISR.INTATR[isrid])$
+			$ISR.INTATR[isrid] = VALUE(CONCAT(ISR.INTATR[isrid], " | DISABLE"), ISR.INTATR[isrid] | DISABLE)$
+		$ELSE$
+			$ISR.INTATR[isrid] = DISABLE$
+		$END$
+	$END$
+
+	$IF EQ(ISR.CATEGORY[isrid], "CATEGORY_1")$
+		$IF LENGTH(ISR.STKSZ[isrid])$
+			$ERROR ISR.TEXT_LINE[isrid]$$FORMAT(_("OsIsrStackSize of C1ISR OsIsr(%1%) must not define"), isrid)$$END$
+		$ELSE$
+			$ISR.STKSZ[isrid] = 0$
+		$END$
+	$ELIF EQ(ISR.CATEGORY[isrid], "CATEGORY_2")$
+		$IF LENGTH(ISR.STKSZ[isrid]) && (ISR.STKSZ[isrid] == 0)$
+			$ERROR ISR.TEXT_LINE[isrid]$$FORMAT(_("OsIsrStackSize of C2ISR OsIsr(%1%) should not defined zero"), isrid)$$END$
+		$END$
+$		// C2ISRスタックサイズのデフォルト設定
+		$IF !LENGTH(ISR.STKSZ[isrid])$
+			$ISR.STKSZ[isrid] = DEFAULT_ISRSTKSZ$
+		$END$
+	$END$
+$END$
+
+
+$ =====================================================================
+$ EVTに関する処理
+$ =====================================================================
+
+$FOREACH evtid EVT.ID_LIST$
+$	// マスクが省略された場合はAUTOにする
+	$IF !LENGTH(EVT.MASK[evtid])$
+		$EVT.MASK[evtid] = AUTO$
+	$END$
+$END$
+
+
+$ =====================================================================
+$ CNTに関する処理
+$ =====================================================================
+
+$FOREACH cntid CNT.ID_LIST$
+	$IF EQ(CNT.CNTATR[cntid], "HARDWARE")$
+		$IF !LENGTH(CNT.ISRID[cntid])$
+			$FATAL = 1$
+			$ERROR CNT.TEXT_LINE[cntid]$$FORMAT(_("OsCounterIsrRef of HARDWARE OsCounter(%1%) is not defined"), cntid)$$END$
+		$END$
+
+$		// NSPERTICKをSECONDSPERTICKから計算する
+		$IF LENGTH(CNT.SECONDSPERTICK[cntid])$
+			$CNT.NSPERTICK[cntid] = CONCAT(CNT.SECONDSPERTICK[cntid], " * 1000000000")$
+		$END$
+	$END$
+
+$END$
+
+
+$ =====================================================================
+$ ALMに関する処理
+$ =====================================================================
+
+$TRACE("ASSOCIATE ALARM")$
+
+$ ALM.AUTOSTART.*からALM.*にコピー
+$FOREACH aid ALM.AUTOSTART.ID_LIST$
+	$almid                              = ALM.AUTOSTART.PARENT[aid]$
+	$ALM.APP_LIST[almid]                = ALM.AUTOSTART.APP_LIST[aid]$
+	$ALM.ALARMTIME[almid]               = ALM.AUTOSTART.ALARMTIME[aid]$
+	$ALM.CYCLETIME[almid]               = ALM.AUTOSTART.CYCLETIME[aid]$
+	$ALM.AUTOSTARTTYPE[almid]           = ALM.AUTOSTART.TYPE[aid]$
+$END$
+
+$FOREACH almid ALM.ID_LIST$
+	$ALM.ALMATR_COUNT[almid] = 0$
+$END$
+
+$ ALM.ACTION.ACTIVATETASK.*からALM.*にコピー
+$FOREACH almactid ALM.ACTION.ACTIVATETASK.ID_LIST$
+	$almid                      = ALM.ACTION.PARENT[ALM.ACTION.ACTIVATETASK.PARENT[almactid]]$
+	$ALM.ALMATR[almid]          = "ACTIVATETASK"$
+	$ALM.TSKID[almid]           = ALM.ACTION.ACTIVATETASK.TSKID[almactid]$
+	$ALM.ALMATR_COUNT[almid]    = ALM.ALMATR_COUNT[almid] + 1$
+$END$
+
+$ ALM.ACTION.SETEVENT.*からALM.*にコピー
+$FOREACH almactid ALM.ACTION.SETEVENT.ID_LIST$
+	$almid                      = ALM.ACTION.PARENT[ALM.ACTION.SETEVENT.PARENT[almactid]]$
+	$ALM.ALMATR[almid]          = "SETEVENT"$
+	$ALM.TSKID[almid]           = ALM.ACTION.SETEVENT.TSKID[almactid]$
+	$ALM.EVTID[almid]           = ALM.ACTION.SETEVENT.EVTID[almactid]$
+	$ALM.ALMATR_COUNT[almid]    = ALM.ALMATR_COUNT[almid] + 1$
+$END$
+
+$ ALM.ACTION.INCREMENTCOUNTER.*からALM.*にコピー
+$FOREACH almactid ALM.ACTION.INCREMENTCOUNTER.ID_LIST$
+	$almid                      = ALM.ACTION.PARENT[ALM.ACTION.INCREMENTCOUNTER.PARENT[almactid]]$
+	$ALM.ALMATR[almid]          = "INCREMENTCOUNTER"$
+	$ALM.INCID[almid]           = ALM.ACTION.INCREMENTCOUNTER.INCID[almactid]$
+	$ALM.ALMATR_COUNT[almid]    = ALM.ALMATR_COUNT[almid] + 1$
+$END$
+
+$IF LENGTH(ALM.ACTION.CALLBACK.ID_LIST)$
+	$ERROR ALM.ACTION.CALLBACK.TEXT_LINE[1]$$FORMAT(_("OsAlarmCallback can't be used in SC3"))$$END$
+$END$
+
+$ ALM.ACTION.*を2つ以上定義していないか
+$FOREACH almid ALM.ID_LIST$
+	$IF ALM.ALMATR_COUNT[almid] != 1$
+		$FATAL = 1$
+		$ERROR ALM.TEXT_LINE[almid]$$FORMAT(_("OsAlarmAction of OsAlarm(%1%) have too many sub container"), almid)$$END$
+	$END$
+$END$
+
+
+$ =====================================================================
+$ SCHTBLに関する処理
+$ =====================================================================
+
+$TRACE("ASSOCIATE SCHTBL")$
+
+$ 省略された場合はNONEにする
+$FOREACH schtblid SCHTBL.ID_LIST$
+	$SCHTBL.SYNCSTRATEGY[schtblid] = "NONE"$
+$END$
+
+$ SCHTBL.AUTOSTART.*からSCHTBL.*にコピー
+$FOREACH aid SCHTBL.AUTOSTART.ID_LIST$
+	$schtblid                                 = SCHTBL.AUTOSTART.PARENT[aid]$
+	$SCHTBL.APP_LIST[schtblid]                = SCHTBL.AUTOSTART.APP_LIST[aid]$
+	$IF LENGTH(SCHTBL.AUTOSTART.STARTTICK[aid])$
+		$SCHTBL.STARTTICK[schtblid]           = SCHTBL.AUTOSTART.STARTTICK[aid]$
+	$ELSE$
+$		// 省略されたことを示す
+		$SCHTBL.STARTTICK[schtblid]           = "NULL"$
+	$END$
+	$SCHTBL.AUTOSTARTTYPE[schtblid]           = SCHTBL.AUTOSTART.TYPE[aid]$
+$END$
+
+$FOREACH syncid SCHTBL.SYNC.ID_LIST$
+	$schtblid = SCHTBL.SYNC.PARENT[syncid]$
+	$SCHTBL.SYNCSTRATEGY[schtblid] = SCHTBL.SYNC.STRATEGY[syncid]$
+$END$
+
+
+$ =====================================================================
+$ EXPPTACTに関する処理
+$ =====================================================================
+
+$ SCHTBL.EXPPT.ACTIVATETASK.*からEXPPTACTにコピー
+$i = 0$
+$FOREACH acttskid SCHTBL.EXPPT.ACTIVATETASK.ID_LIST$
+	$expid                          = SCHTBL.EXPPT.ACTIVATETASK.PARENT[acttskid]$
+	$schtblid                       = SCHTBL.EXPPT.PARENT[expid]$
+
+	$EXPPTACT.SCHTBLID[i]           = schtblid$
+	$EXPPTACT.OFFSET[i]             = SCHTBL.EXPPT.OFFSET[expid]$
+	$EXPPTACT.TSKID[i]              = SCHTBL.EXPPT.ACTIVATETASK.TSKID[acttskid]$
+	$EXPPTACT.EXPIREATR[i]          = "ACTIVATETASK"$
+
+	$EXPPTACT.ID_LIST               = APPEND(EXPPTACT.ID_LIST, i)$
+	$i                              = i + 1$
+$END$
+
+$ SCHTBL.EXPPT.SETEVENT.*からEXPPTACTにコピー
+$FOREACH setevid SCHTBL.EXPPT.SETEVENT.ID_LIST$
+	$expid                          = SCHTBL.EXPPT.SETEVENT.PARENT[setevid]$
+	$schtblid                       = SCHTBL.EXPPT.PARENT[expid]$
+
+	$EXPPTACT.SCHTBLID[i]           = schtblid$
+	$EXPPTACT.OFFSET[i]             = SCHTBL.EXPPT.OFFSET[expid]$
+	$EXPPTACT.TSKID[i]              = SCHTBL.EXPPT.SETEVENT.TSKID[setevid]$
+	$EXPPTACT.EVTID[i]              = SCHTBL.EXPPT.SETEVENT.EVTID[setevid]$
+	$EXPPTACT.EXPIREATR[i]          = "SETEVENT"$
+
+	$EXPPTACT.ID_LIST               = APPEND(EXPPTACT.ID_LIST, i)$
+	$i                              = i + 1$
+$END$
+
+$IF FATAL$
+	$DIE()$
+$END$
+
+
+$ =====================================================================
+$ IOCに関する処理
+$ =====================================================================
+
+$ OsIocCommunication
+$FOREACH iocid IOC.ID_LIST$
+$ 	// 省略されたパラメータにNULLを入れる
+	$IF !LENGTH(IOC.BUFLEN[iocid])$
+		$IOC.BUFLEN[iocid] = VALUE("NULL", 0)$
+	$END$
+$END$
+
+$ OsIocDataProperties
+$FOREACH iocdataid IOCDATA.ID_LIST$
+$ 	// IOCDATA.PARENTをIOCDATA.IOCへコピー
+	$IOCDATA.IOC[iocdataid]  = IOCDATA.PARENT[iocdataid]$
+
+$ 	// 省略されたパラメータにNULLを入れる
+	$IF !LENGTH(IOCDATA.INDEX[iocdataid])$
+		$IOCDATA.INDEX[iocdataid] = "NULL"$
+	$END$
+	$IF !LENGTH(IOCDATA.INITVAL[iocdataid])$
+		$IOCDATA.INITVAL[iocdataid] = "NULL"$
+	$END$
+$END$
+
+$ OsIocSenderProperties
+$FOREACH iocsndid IOCSND.ID_LIST$
+$ 	// IOCSND.PARENTをIOCSND.IOCへコピー
+	$IOCSND.IOC[iocsndid]   = IOCSND.PARENT[iocsndid]$
+
+$ 	// 省略されたパラメータにNULLを入れる
+	$IF !LENGTH(IOCSND.SENDERID[iocsndid])$
+		$IOCSND.SENDERID[iocsndid] = "NULL"$
+	$END$
+	$IF !LENGTH(IOCSND.IMPLKIND[iocsndid])$
+		$IOCSND.IMPLKIND[iocsndid] = "NULL"$
+	$END$
+$END$
+
+$ OsIocReceiverProperties
+$FOREACH iocrcvid IOCRCV.ID_LIST$
+$ 	// IOCRCV.PARENTをIOCRCV.IOCへコピー
+	$IOCRCV.IOC[iocrcvid] = IOCRCV.PARENT[iocrcvid]$
+
+$ 	// 省略されたパラメータにNULLを入れる
+	$IF !LENGTH(IOCRCV.IMPLKIND[iocrcvid])$
+		$IOCRCV.IMPLKIND[iocrcvid] = "NULL"$
+	$END$
+$END$
+
+$INCLUDE "kernel/kernel_common.tf"$
+
+$ =====================================================================
+$ OSのエラーチェック
+$ =====================================================================
+
+$IF !EQ(OS.STATUS[1], "EXTENDED")$
+	$ERROR OS.TEXT_LINE[1]$$FORMAT(_("OsStatus must be EXTENDED"))$$END$
+$END$
+
+$IF LENGTH(OS.SC[1]) && !EQ(OS.SC[1], "SC3")$
+	$ERROR OS.TEXT_LINE[1]$$FORMAT(_("OsScalabilityClass must be SC3"))$$END$
+$END$
+
+$IF LENGTH(OS.MLEVEL[1]) && !EQ(OS.MLEVEL[1], "Level2")$
+	$ERROR OS.TEXT_LINE[1]$$FORMAT(_("OsMemoryProtectionLevel must be Level2"))$$END$
+$END$
+
+$IF LENGTH(OS.VLEVEL[1]) && !EQ(OS.VLEVEL[1], "Level2")$
+	$ERROR OS.TEXT_LINE[1]$$FORMAT(_("OsViolationHandlingLevel must be Level2"))$$END$
+$END$
+
+
+$ =====================================================================
+$ OSAPのエラーチェックと内部データの生成
+$ =====================================================================
+
+$i = 0$
+$ntosap = 0$
+$FOREACH osapid OSAP.ID_LIST$
+	$OSAP.ID[osapid] = i$
+	$i = i + 1$
+	$IF OSAP.TRUSTED[osapid]$
+		$OSAP.BTMP[osapid] = 0$
+		$OSAP.ACPTN[osapid] = VALUE("TACP_KERNEL", TACP_KERNEL)$
+	$ELSE$
+		$OSAP.BTMP[osapid] = 1 << ntosap$
+		$OSAP.ACPTN[osapid] = 1 << ntosap$
+		$ntosap = ntosap + 1$
+	$END$
+$END$
+
+$ 非信頼OSAP数はTMAX_NTOSAPP以下か？
+$IF ntosap > TMAX_NTOSAPP$
+	$ERROR$$FORMAT(_("Too many Non-Trusted OsApplication %1% > %2%)"), ntosap, TMAX_NTOSAPP)$$END$
+$END$
+
+
+$ =====================================================================
+$ タスクの関連づけ
+$ =====================================================================
+
+$FOREACH tskid TSK.ID_LIST$
+$	// TSKとRESの関連づけ
+	$FOREACH resid TSK.RES_LIST[tskid]$
+		$RES.TSK_LIST[resid] = APPEND(RES.TSK_LIST[resid], tskid)$
+	$END$
+$	// TSKとEVTの関連づけ
+	$FOREACH evtid TSK.EVT_LIST[tskid]$
+		$EVT.TSK_LIST[evtid] = APPEND(EVT.TSK_LIST[evtid], tskid)$
+	$END$
+$END$
+
+
+$ =====================================================================
+$ ISR関連のエラーチェックと内部データの生成
+$ =====================================================================
+
+$TRACE("ISR CHECK")$
+
+$FOREACH isrid ISR.ID_LIST$
+$	// INTNOが他のISRと重複している場合
+	$FOREACH isrid2 ISR.ID_LIST$
+		$IF ISR.INTNO[isrid] == ISR.INTNO[isrid2] && isrid2 < isrid$
+			$ERROR ISR.TEXT_LINE[isrid]$$FORMAT(_("OsIsrInterruptNumber(%1%) of OsIsr(%2%) is duplicated"), ISR.INTNO[isrid], isrid)$$END$
+		$END$
+	$END$
+
+$	// intpriが割込み優先度として正しくない場合
+	$IF (ISR.INTPRI[isrid] > TNUM_INTPRI) || (ISR.INTPRI[isrid] < 1)$
+		$ERROR ISR.TEXT_LINE[isrid]$$FORMAT(_("illegal OsIsrInterruptPriority(%1%) of OsIsr(%2%)"), ISR.INTPRI[isrid], isrid)$$END$
+	$END$
+
+	$IF !(EQ(ISR.CATEGORY[isrid], "CATEGORY_1") || EQ(ISR.CATEGORY[isrid], "CATEGORY_2"))$
+		$ERROR ISR.TEXT_LINE[isrid]$$FORMAT(_("OsIsrCategory of OsIsr(%1%) must be CATEGORY_1 or CATEGORY_2"), isrid)$$END$
+	$END$
+
+$	// ISRとRESの関連づけ
+	$FOREACH resid ISR.RES_LIST[isrid]$
+		$RES.ISR_LIST[resid] = APPEND(RES.ISR_LIST[resid], isrid)$
+	$END$
+
+	$IF LENGTH(ISR.OSAPID[isrid])$
+$		// ISRを 定義した OSアプリケーションは信頼OSアプリケーションか?
+$		// 機能レベル2ではISRは非信頼に所属できない
+		$IF !OSAP.TRUSTED[ISR.OSAPID[isrid]]$
+			$ERROR ISR.TEXT_LINE[isrid]$$FORMAT(_("OsAppIsrRef(%1%) of OsApplication(%2%) can't be assign to Non-Trusted OS-Application"), 
+											isrid, ISR.OSAPID[isrid])$$END$
+		$END$
+
+$		// ISRへのアクセス権の設定
+		$ISR.ACSBTMP[isrid] = OSAP.BTMP[ISR.OSAPID[isrid]]$
+		$FOREACH osapid ISR.ACS_OSAP_LIST[isrid]$
+			$ISR.ACSBTMP[isrid] = ISR.ACSBTMP[isrid] | OSAP.BTMP[osapid]$
+		$END$
+	$ELSE$
+		$ERROR ISR.TEXT_LINE[isrid]$$FORMAT(_("OsIsr(%1%) does not belong OsApplication"), isrid)$$END$
+	$END$
+$END$
+
+
+$ C2ISRの最低優先度
+$MAX_PRI_ISR2 = -1$
+$ C2ISRの最高優先度
+$MIN_PRI_ISR2 = MAX_PRI_ISR2$
+
+$i = 0$
+$FOREACH isrid ISR.ID_LIST$
+	$IF EQ(ISR.CATEGORY[isrid], "CATEGORY_2")$
+		$ISR.ID[isrid] = i$
+		$i = i + 1$
+		$ISR2.ID_LIST = APPEND(ISR2.ID_LIST, isrid)$
+		$IF MIN_PRI_ISR2 > -ISR.INTPRI[isrid]$
+			$MIN_PRI_ISR2 = -ISR.INTPRI[isrid]$
+		$END$
+		$ISR.INT_ENTRY[isrid] = CONCAT("_kernel_inthdr_", +ISR.INTNO[isrid])$
+
+$		// INTNOが割込み番号として正しくない場合
+		$IF !LENGTH(FIND(INTNO_CREISR2_VALID, ISR.INTNO[isrid]))$
+			$ERROR ISR.TEXT_LINE[isrid]$$FORMAT(_("illegal OsIsrInterruptNumber(%1%) of OsIsr(%2%)"), ISR.INTNO[isrid], isrid)$$END$
+		$END$
+	$END$
+$END$
+
+$ C2ISRが定義されていない場合
+$IF !LENGTH(ISR2.ID_LIST)$
+	$MAX_PRI_ISR2 = 0$
+	$MIN_PRI_ISR2 = 0$
+$END$
+
+
+$ C1ISRの最低優先度
+$MAX_PRI_ISR1 = MIN_PRI_ISR2 - 1$
+$ C1ISRの最高優先度
+$MIN_PRI_ISR1 = -TNUM_INTPRI$
+
+$FOREACH isrid ISR.ID_LIST$
+	$IF EQ(ISR.CATEGORY[isrid], "CATEGORY_1")$
+		$ISR1.ID_LIST = APPEND(ISR1.ID_LIST, isrid)$
+		$ISR.ID[isrid] = i$
+		$i = i + 1$
+
+$		// C1ISRの割込み優先度がMIN_PRI_ISR2以上である場合
+		$IF -ISR.INTPRI[isrid] >= MIN_PRI_ISR2$
+			$ERROR ISR.TEXT_LINE[isrid]$$FORMAT(_("OsIsrInterruptPriority(%1%) of OsIsr(%2%) is lower than or equal to C2ISR min priority(%3%)"), ISR.INTPRI[isrid], isrid, -MIN_PRI_ISR2)$$END$
+		$END$
+		$ISR.INT_ENTRY[isrid] = CONCAT("C1ISRMain", isrid)$
+
+$		// INTNOが割込み番号として正しくない場合
+		$IF !LENGTH(FIND(INTNO_VALID, ISR.INTNO[isrid]))$
+			$ERROR ISR.TEXT_LINE[isrid]$$FORMAT(_("illegal OsIsrInterruptNumber(%1%) of OsIsr(%2%)"), ISR.INTNO[isrid], isrid)$$END$
+		$END$
+	$END$
+$END$
+
+
+$ ISR.ID_LISTをC2ISR, C1ISRの順序にする
+$ISR.ID_LIST = APPEND(ISR2.ID_LIST, ISR1.ID_LIST)$
+
+
+$FOREACH isrid ISR1.ID_LIST$
+$	// C1ISRはリソースを取得できない
+	$IF LENGTH(ISR.RES_LIST[isrid])$
+		$ERROR ISR.TEXT_LINE[isrid]$$FORMAT(_("C1ISR(%1%) can't use RESOURCE"), isrid)$$END$
+	$END$
+$END$
+
+
+$FOREACH isrid ISR2.ID_LIST$
+$	// ISRは内部リソースを取得できない
+$	// リンクリソースは標準リソースにリンクするものであるためリンクリソースであればエラーとする．
+
+	$FOREACH resid ISR.RES_LIST[isrid]$
+		$IF EQ(RES.RESATR[resid], "INTERNAL") || EQ(RES.RESATR[resid], "LINKED")$
+			$ERROR ISR.TEXT_LINE[isrid]$$FORMAT(_("OsIsrResourceRef(%1%) of OsIsr(%2%) must be standard resource"), resid, isrid)$$END$
+		$END$
+	$END$
+$END$
+
+
+$ =====================================================================
+$ リソース関連のエラーチェックと内部データの生成
+$ =====================================================================
+
+$TRACE("RESOURCE CHECK")$
+
+$FOREACH resid RES.ID_LIST$
+$	// 関連付けフラグの初期化(リソースがどのタスク/C2ISRにも関連付けされていない場合，warning出力し，オブジェクトを生成しない)
+	$RES.RELATION_FLAG[resid] = (LENGTH(RES.TSK_LIST[resid]) || LENGTH(RES.ISR_LIST[resid]))$
+$END$
+
+
+$FOREACH resid RES.ID_LIST$
+	$resatr = RES.RESATR[resid]$
+$	// resatrの内容チェック（"STANDARD","INTERNAL","LINKED"以外ならエラー）
+	$IF !(EQ(resatr, "STANDARD") || EQ(resatr, "INTERNAL") || EQ(resatr, "LINKED"))$
+		$ERROR RES.TEXT_LINE[resid]$$FORMAT(_("OsResourceProperty of OsResource(%1%) must be STANDARD or INTERNAL or LINKED"), resid)$$END$
+	$END$
+
+	$IF EQ(RES.RESATR[resid], "LINKED")$
+		$lnkresid = RES.LINKEDRESID[resid]$
+
+		$IF !LENGTH(lnkresid)$
+			$ERROR RES.TEXT_LINE[resid]$$FORMAT(_("OsResourceLinkedResourceRef of OsResource(%1%) is not defined"), resid)$$END$
+			$DIE()$
+		$END$
+
+		$RES.RELATION_FLAG[resid] = RES.RELATION_FLAG[lnkresid]$
+
+$		// 被リンク側の属性が標準リソースか．
+		$IF !EQ(RES.RESATR[lnkresid], "STANDARD")$
+			$ERROR RES.TEXT_LINE[resid]$$FORMAT(_("OsResourceLinkedResourceRef(%1%) of OsResource(%2%) must be standard resource"), lnkresid, resid)$$END$
+		$END$
+
+$		// LINKEDRESOURCE以外のパラメータ（ACS_OSAP_LIST）指定しているか.
+		$IF LENGTH(RES.ACS_OSAP_LIST[resid])$
+			$ERROR RES.TEXT_LINE[resid]$$FORMAT(_("OsResourceAccessingApplication of LINKED OsResource(%1%) must not define"), resid)$$END$
+		$END$
+	$END$
+
+	$IF !RES.RELATION_FLAG[resid]$
+		$WARNING RES.TEXT_LINE[resid]$$FORMAT(_("OsResource(%1%) is not related to any TASK or ISR"), resid)$$END$
+	$END$
+
+$	// リソースへのアクセス権の設定
+	$RES.ACSBTMP[resid] = 0$
+	$FOREACH osapid RES.ACS_OSAP_LIST[resid]$
+		$RES.ACSBTMP[resid] = RES.ACSBTMP[resid] | OSAP.BTMP[osapid]$
+	$END$
+$END$
+
+
+$
+$ リソースのOS内部で用いるIDを割り当てる
+$ 内部リソース以外(標準，リンク)からIDを割り当てる
+$
+$i = 0$
+$tnum_intres = 0$
+$new_id_list = {}$
+$FOREACH resid RES.ID_LIST$
+	$IF !EQ(RES.RESATR[resid], "INTERNAL") && RES.RELATION_FLAG[resid]$
+		$RES.ID[resid] = i$
+		$i = i + 1$
+		$new_id_list = APPEND(new_id_list, resid)$
+	$END$
+$END$
+$STDRES.ID_LIST = new_id_list$
+$FOREACH resid RES.ID_LIST$
+	$IF EQ(RES.RESATR[resid], "INTERNAL") && RES.RELATION_FLAG[resid]$
+		$RES.ID[resid] = i$
+		$i = i + 1$
+		$tnum_intres = tnum_intres + 1$
+		$new_id_list = APPEND(new_id_list, resid)$
+	$END$
+$END$
+$RES.ID_LIST = new_id_list$
+
+
+$FOREACH resid RES.ID_LIST$
+	$IF !EQ(RES.RESATR[resid], "LINKED")$
+
+$		// リソースの上限優先度の計算(タスク)
+		$ceilpri = 0$
+		$FOREACH tskid RES.TSK_LIST[resid]$
+			$tskpri = TSK.PRIORITY[tskid]$
+			$IF ceilpri < tskpri$
+				$ceilpri = tskpri$
+			$END$
+		$END$
+		$RES.CEILPRI[resid] = ceilpri$
+
+$		// リソースの上限優先度の計算(ISR)
+$		// ISRの優先度は-1〜としている
+		$ceilpri = 0$
+		$FOREACH isrid RES.ISR_LIST[resid]$
+			$intpri = -ISR.INTPRI[isrid]$
+			$IF ceilpri > intpri$
+				$ceilpri = intpri$
+			$END$
+		$END$
+
+$		// ISRを用いるリソースの場合のみ更新
+		$IF ceilpri < 0$
+			$RES.CEILPRI[resid] = ceilpri$
+		$END$
+	$END$
+$END$
+
+
+$FOREACH resid RES.ID_LIST$
+$	// リンクリソースの上限優先度とアクセス権の設定
+	$IF EQ(RES.RESATR[resid], "LINKED")$
+		$RES.CEILPRI[resid] = RES.CEILPRI[RES.LINKEDRESID[resid]]$
+		$RES.ACSBTMP[resid] = RES.ACSBTMP[RES.LINKEDRESID[resid]]$
+	$END$
+$END$
+
+
+
+$ =====================================================================
+$ アプリケーションモードのエラーチェック
+$ =====================================================================
+
+$ APP
+$ アプリケーションモードは32個以下か．
+$IF LENGTH(APP.ID_LIST) > 32$
+	$ERROR$$FORMAT(_("too many OsAppMode %1% > 32"), LENGTH(APP.ID_LIST))$$END$
+$END$
+
+$i = 0$
+$FOREACH appid APP.ID_LIST$
+	$APP.ID[appid] = i$
+	$i = i + 1$
+$END$
+
+
+$ =====================================================================
+$ タスク関連のエラーチェックと内部データの生成
+$ =====================================================================
+
+$TRACE("TASK CHECK")$
+
+$FOREACH tskid TSK.ID_LIST$
+	$TSK.EXTENDED[tskid] = LENGTH(TSK.EVT_LIST[tskid]) > 0$
+
+$	// 内部リソースを取得する場合，取得時の優先度を設定
+	$FOREACH resid TSK.RES_LIST[tskid]$
+		$IF EQ(RES.RESATR[resid], "INTERNAL")$
+			$TSK.INRESPRI[tskid] = RES.CEILPRI[resid]$
+
+			$osapid = TSK.OSAPID[tskid]$
+			$IF !OSAP.TRUSTED[osapid]$
+				$IF !(RES.ACSBTMP[resid] & OSAP.BTMP[osapid])$
+					$ERROR TSK.TEXT_LINE[tskid]$$FORMAT(_("OsTaskResourceRef of OsTask(%1%) can't access INTERNAL OsResource(%2%)"), tskid, resid)$$END$
+				$END$
+			$END$
+		$END$
+	$END$
+
+$	// タスクのAUTOSTARTの起動パターン
+	$astptn = 0$
+	$FOREACH appid TSK.APP_LIST[tskid]$
+		$astptn = astptn | (1 << APP.ID[appid])$
+	$END$
+	$TSK.ASTPTN[tskid] = astptn$
+
+$	// タスクに関連付けされたイベントマスクのORをとる(AUTOは0で計算)
+	$TSK.EVTMSK[tskid] = 0$
+
+	$FOREACH evtid TSK.EVT_LIST[tskid]$
+		$TSK.EVTMSK[tskid] = TSK.EVTMSK[tskid] | EVT.MASK[evtid]$
+	$END$
+
+
+	$tskpri = TSK.PRIORITY[tskid]$
+	$tskext = TSK.EXTENDED[tskid]$
+	$tskact = TSK.ACTIVATION[tskid]$
+	$tsksch = TSK.SCHEDULE[tskid]$
+
+$	// priorityの範囲チェック
+	$IF (tskpri < TMIN_TPRI) || (TMAX_TPRI < tskpri)$
+		$ERROR TSK.TEXT_LINE[tskid]$$FORMAT(_("OsTaskPriority(%1%) of OsTask(%2%) is a range error"), tskpri, tskid)$$END$
+	$END$
+
+$	// activationの範囲チェック
+	$IF !tskext$
+		$IF (tskact == 0) || (256 < tskact)$
+			$ERROR TSK.TEXT_LINE[tskid]$$FORMAT(_("OsTaskActivation(%1%) of OsTask(%2%) is a range error"), tskact, tskid)$$END$
+		$END$
+	$ELSE$
+		$IF (tskact != 1)$
+			$ERROR TSK.TEXT_LINE[tskid]$$FORMAT(_("OsTaskActivation(%1%) of OsTask(%2%) must be 1"), tskact, tskid)$$END$
+		$END$
+	$END$
+
+$	// scheduleの内容チェック（"NON","FULL"以外ならエラー）
+	$IF !(EQ(tsksch, "NON") || EQ(tsksch, "FULL"))$
+		$ERROR TSK.TEXT_LINE[tskid]$$FORMAT(_("OsTaskSchedule of OsTask(%1%) must be NON or FULL"), tskid)$$END$
+	$END$
+
+	$intres_flag = 0$
+
+	$FOREACH resid TSK.RES_LIST[tskid]$
+		$IF EQ(RES.RESATR[resid], "INTERNAL")$
+
+$			// タスクには最大1つの内部リソースしか割り当てられないため，
+$			// 内部リソースを2つ以上割り当てた場合はエラーとする．
+
+$			// 割り当てたリソースが内部リソースなら確認用フラグをセットする．
+$			// 内部リソース確認用フラグがすでにセットされていたらエラーとする．
+			$IF intres_flag == 0$
+				$intres_flag = 1$
+			$ELSE$
+				$ERROR TSK.TEXT_LINE[tskid]$$FORMAT(_("too many assigned internal resource OsTaskResourceRef(%1%) of OsTask(%2%)"), resid, tskid)$$END$
+			$END$
+
+$			// 内部リソースがノンプリエンプティブのタスクと関連付けられていたらエラーとする．
+			$IF EQ(TSK.SCHEDULE[tskid], "NON")$
+				$ERROR TSK.TEXT_LINE[tskid]$$FORMAT(_("internal resource OsTaskResourceRef(%1%) of OsTask(%2%) can't be assign to a nonpreemptable task"), resid, tskid)$$END$
+			$END$
+		$END$
+
+$		// リンクリソースは標準リソースにリンクするものであるため
+$		// リンクリソースであればエラーとする．
+		$IF EQ(RES.RESATR[resid], "LINKED")$
+			$ERROR TSK.TEXT_LINE[tskid]$$FORMAT(_("OsTaskResourceRef(%1%) of OsTask(%2%) is linked resource"), resid, tskid)$$END$
+		$END$
+	$END$
+
+$	// タスクへのアクセス権の設定
+	$IF LENGTH(TSK.OSAPID[tskid])$
+		$TSK.ACSBTMP[tskid] = OSAP.BTMP[TSK.OSAPID[tskid]]$
+		$FOREACH osapid TSK.ACS_OSAP_LIST[tskid]$
+			$TSK.ACSBTMP[tskid] = TSK.ACSBTMP[tskid] | OSAP.BTMP[osapid]$
+		$END$
+	$ELSE$
+		$ERROR TSK.TEXT_LINE[tskid]$$FORMAT(_("OsTask(%1%) does not belong OsApplication"), tskid)$$END$
+	$END$
+$END$
+
+
+$
+$ タスクのOS内部で用いるIDを割り当てる
+$ 拡張タスクからIDを割り当てる
+$
+$i = 0$
+$tnum_exttask = 0$
+$new_id_list = {}$
+$FOREACH tskid TSK.ID_LIST$
+	$IF TSK.EXTENDED[tskid]$
+		$TSK.ID[tskid] = i$
+		$i = i + 1$
+		$tnum_exttask = tnum_exttask + 1$
+		$new_id_list = APPEND(new_id_list, tskid)$
+	$END$
+$END$
+$FOREACH tskid TSK.ID_LIST$
+	$IF !TSK.EXTENDED[tskid]$
+		$TSK.ID[tskid] = i$
+		$i = i + 1$
+		$new_id_list = APPEND(new_id_list, tskid)$
+	$END$
+$END$
+$TSK.ID_LIST = new_id_list$
+
+
+
+$ =====================================================================
+$ イベントマスク値決定
+$ =====================================================================
+
+$TRACE("EVENT CHECK")$
+
+$auto_evt_msk = 1$
+$auto_evt_num = 0$
+$FOREACH evtid EVT.ID_LIST$
+$	//マスク値指定有
+	$IF !EQ(EVT.MASK[evtid], AUTO)$
+		$IF (EVT.MASK[evtid] == 0)$
+			$ERROR EVT.TEXT_LINE[evtid]$$FORMAT(_("OsEventMask of OsEvent(%1%) must not be zero"), evtid)$$END$
+			$DIE()$
+		$END$
+		$EVT.CALC_MASK[evtid] = EVT.MASK[evtid]$
+$	//マスク値指定無
+	$ELSE$
+		$EVT.CALC_MASK[evtid] = 0$
+$		//タスクに関連付け有
+		$IF LENGTH(EVT.TSK_LIST[evtid])$
+			$hit_flg = 0$
+			$auto_tskevt_msk = 1$
+			$FOREACH i RANGE(1, 32)$
+				$IF !hit_flg$
+					$ok_flg = 1$
+					$FOREACH tskid EVT.TSK_LIST[evtid]$
+						$IF (TSK.EVTMSK[tskid] & auto_tskevt_msk) != 0$
+							$ok_flg = 0$
+						$END$
+					$END$
+
+$					//全タスクで空きビット発見
+					$IF ok_flg$
+						$hit_flg = 1$
+						$FOREACH tskid EVT.TSK_LIST[evtid]$
+							$TSK.EVTMSK[tskid] = TSK.EVTMSK[tskid] | auto_tskevt_msk$
+						$END$
+						$EVT.CALC_MASK[evtid] = auto_tskevt_msk$
+					$ELSE$
+						$auto_tskevt_msk = auto_tskevt_msk << 1$
+					$END$
+				$END$
+			$END$
+$			//空きビットなし
+			$IF !hit_flg$
+				$ERROR EVT.TEXT_LINE[evtid]$$FORMAT(_("Auto OsEventMask of OsEvent(%1%) is no free"), evtid)$$END$
+				$DIE()$
+			$END$
+$		//タスクに関連付け無
+		$ELSE$
+			$IF auto_evt_num > 31$
+				$ERROR EVT.TEXT_LINE[evtid]$$FORMAT(_("Auto OsEventMask of OsEvent(%1%) is over(32)"))$$END$
+				$DIE()$
+			$END$
+			$EVT.CALC_MASK[evtid] = auto_evt_msk$
+			$auto_evt_msk = auto_evt_msk << 1$
+			$auto_evt_num = auto_evt_num + 1$
+		$END$
+	$END$
+$END$
+$NL$
+
+
+
+$ =====================================================================
+$ カウンタ関連のエラーチェックと内部データの生成
+$ =====================================================================
+
+$TRACE("COUNTER CHECK")$
+
+
+$FOREACH cntid CNT.ID_LIST$
+$	// カウンタの属性はSOFTWARE / HARDWAREかチェック
+	$IF !(EQ(CNT.CNTATR[cntid], "SOFTWARE") || EQ(CNT.CNTATR[cntid], "HARDWARE"))$
+		$ERROR CNT.TEXT_LINE[cntid]$$FORMAT(_("OsCounterType of OsCounter(%1%) must be SOFTWARE or HARDWARE"), cntid)$$END$
+	$END$
+$END$
+
+
+$
+$ カウンタのOS内部で用いるIDを割り当てる
+$ ハードウェアカウンタからIDを割り当てる
+$
+$i = 0$
+$new_id_list = {}$
+$FOREACH cntid CNT.ID_LIST$
+	$IF EQ(CNT.CNTATR[cntid], "HARDWARE")$
+		$CNT.ID[cntid] = i$
+		$i = i + 1$
+		$new_id_list = APPEND(new_id_list, cntid)$
+	$END$
+$END$
+$FOREACH cntid CNT.ID_LIST$
+	$IF EQ(CNT.CNTATR[cntid], "SOFTWARE")$
+		$CNT.ID[cntid] = i$
+		$i = i + 1$
+		$new_id_list = APPEND(new_id_list, cntid)$
+	$END$
+$END$
+$CNT.ID_LIST = new_id_list$
+
+
+$HWCNT.ID_LIST = {}$
+$FOREACH cntid CNT.ID_LIST$
+	$cnttpb = CNT.TICKSPERBASE[cntid]$
+	$cntmin = CNT.MINCYCLE[cntid]$
+	$cntmax = CNT.MAXALLOWED[cntid]$
+
+$	// ticksperbaseの範囲確認
+	$IF (cnttpb < 1) || (cnttpb > 0x7fffffff)$
+		$ERROR CNT.TEXT_LINE[cntid]$$FORMAT(_("OsCounterTicksPerBase(%1%) of OsCounter(%2%) is a range error"), cnttpb, cntid)$$END$
+	$END$
+
+$	// mincycleの範囲確認
+	$IF (cntmin < 1) || (cntmin > 0x7fffffff)$
+		$ERROR CNT.TEXT_LINE[cntid]$$FORMAT(_("OsCounterMinCycle(%1%) of OsCounter(%2%) is a range error"), cntmin, cntid)$$END$
+	$END$
+
+$	// maxallowedvalueの範囲確認
+	$IF (cntmax < 1) || (cntmax > 0x7fffffff)$
+		$ERROR CNT.TEXT_LINE[cntid]$$FORMAT(_("OsCounterMaxAllowedValue(%1%) of OsCounter(%2%) is a range error"), cntmax, cntid)$$END$
+	$END$
+
+$	// mincycleがmaxallowedvalueより大きいか．
+	$IF cntmax < cntmin$
+		$ERROR CNT.TEXT_LINE[cntid]$$FORMAT(_("OsCounterMinCycle(%1%) of OsCounter(%2%) is more than OsCounterMaxAllowedValue(%3%)"), cntmin, cntid, cntmax)$$END$
+	$END$
+
+$	// ハードウェアカウンタのISRがCATEGORY_2かチェック
+	$IF EQ(CNT.CNTATR[cntid], "HARDWARE")$
+		$IF EQ(ISR.CATEGORY[CNT.ISRID[cntid]], "CATEGORY_2")$
+			$HWCNT.ID_LIST = APPEND(HWCNT.ID_LIST, cntid)$
+		$ELSE$
+			$ERROR CNT.TEXT_LINE[cntid]$$FORMAT(_("OsCounterIsrRef(%1%) of OsCounter(%2%) is C1ISR"), CNT.ISRID[cntid], cntid)$$END$
+		$END$
+
+		$IF ISR.OSAPID[CNT.ISRID[cntid]] != CNT.OSAPID[cntid]$
+			$ERROR CNT.TEXT_LINE[cntid]$$FORMAT(_("HARDWARE OsCounter(%1%) and OsCounterIsrRef(%2%) must belong to the same OsApplication"), cntid, isrid)$$END$
+		$END$
+	$END$
+
+$	// カウンタへのアクセス権の設定
+	$IF LENGTH(CNT.OSAPID[cntid])$
+		$CNT.ACSBTMP[cntid] = OSAP.BTMP[CNT.OSAPID[cntid]]$
+		$FOREACH osapid CNT.ACS_OSAP_LIST[cntid]$
+			$CNT.ACSBTMP[cntid] = CNT.ACSBTMP[cntid] | OSAP.BTMP[osapid]$
+		$END$
+	$ELSE$
+		$ERROR CNT.TEXT_LINE[cntid]$$FORMAT(_("OsCounter(%1%) does not belong OsApplication"), cntid)$$END$
+	$END$
+$END$
+
+
+
+$ =====================================================================
+$ アラーム関連のエラーチェックと内部データの生成
+$ =====================================================================
+
+$TRACE("ALARM CHECK")$
+
+$i = 0$
+$FOREACH almid ALM.ID_LIST$
+
+$	// アラームのAUTOSTARTの起動パターン
+	$astptn = 0$
+	$FOREACH appid ALM.APP_LIST[almid]$
+		$astptn = astptn | (1 << APP.ID[appid])$
+	$END$
+	$ALM.ASTPTN[almid] = astptn$
+
+$	// IDの設定
+	$ALM.ID[almid] = i$
+	$i = i + 1$
+
+$	// アプリケーションモード設定した場合のみ，アラーム初回起動ティック値と周期の適切性をチェック
+	$IF ALM.ASTPTN[almid]$
+$		// アラーム初回起動ティック値は，カウンタ最大値を超えるか或いは0より小さいか
+		$IF CNT.MAXALLOWED[ALM.CNTID[almid]] < ALM.ALARMTIME[almid] || ALM.ALARMTIME[almid] < 0$
+			$ERROR ALM.TEXT_LINE[almid]$$FORMAT(_("OsAlarmAlarmTime(%1%) of OsAlarm(%2%) must be in the range 0 .. OsCounterMaxAllowedValue(%3%)"), 
+													ALM.ALARMTIME[almid], almid, CNT.MAXALLOWED[ALM.CNTID[almid]])$$END$
+		$END$
+
+$		// アラーム周期は，カウンタ最大値を超えるか，0より小さいか，カウンタの最小周期より小さい(0を除く)か
+		$IF CNT.MAXALLOWED[ALM.CNTID[almid]] < ALM.CYCLETIME[almid] || ALM.CYCLETIME[almid] < 0 ||
+			(ALM.CYCLETIME[almid] < CNT.MINCYCLE[ALM.CNTID[almid]] && ALM.CYCLETIME[almid] != 0)$
+			$ERROR ALM.TEXT_LINE[almid]$$FORMAT(_("OsAlarmCycleTime(%1%) of OsAlarm(%2%) must be zero OR in the range OsCounterMinCycle(%3%) .. OsCounterMaxAllowedValue(%4%)"), 
+											ALM.CYCLETIME[almid], almid, CNT.MINCYCLE[ALM.CNTID[almid]], CNT.MAXALLOWED[ALM.CNTID[almid]])$$END$
+		$END$
+
+$		// autostarttypeにABSOLUTE/RELATIVE以外のものが登録されていないか
+		$IF !(EQ(ALM.AUTOSTARTTYPE[almid], "ABSOLUTE") || EQ(ALM.AUTOSTARTTYPE[almid], "RELATIVE"))$
+			$ERROR ALM.TEXT_LINE[almid]$$FORMAT(_("OsAlarmAutostartType of OsAlarm(%1%) must be ABSOLUTE or RELATIVE"), almid)$$END$
+		$END$
+
+$		// autostarttypeがRELATIVEの場合はSTARTTICK==0は禁止
+		$IF EQ(ALM.AUTOSTARTTYPE[almid], "RELATIVE") && ALM.ALARMTIME[almid] == 0$
+			$ERROR ALM.TEXT_LINE[almid]$$FORMAT(_("OsAlarmAlarmTime of RELATIVE OsAlarm(%1%) must not be zero"), almid)$$END$
+		$END$
+	$END$
+
+$	// アラームへのアクセス権の設定
+	$IF LENGTH(ALM.OSAPID[almid])$
+		$ALM.ACSBTMP[almid] = OSAP.BTMP[ALM.OSAPID[almid]]$
+		$FOREACH osapid ALM.ACS_OSAP_LIST[almid]$
+			$ALM.ACSBTMP[almid] = ALM.ACSBTMP[almid] | OSAP.BTMP[osapid]$
+		$END$
+	$ELSE$
+		$ERROR ALM.TEXT_LINE[almid]$$FORMAT(_("OsAlarm(%1%) does not belong OsApplication"), almid)$$END$
+		$DIE()$
+	$END$
+
+	$osapid = ALM.OSAPID[almid]$
+
+	$IF EQ(ALM.ALMATR[almid], "ACTIVATETASK") || EQ(ALM.ALMATR[almid], "SETEVENT")$
+		$IF !OSAP.TRUSTED[osapid]$
+			$IF !(TSK.ACSBTMP[ALM.TSKID[almid]] & OSAP.BTMP[osapid])$
+				$ERROR ALM.TEXT_LINE[almid]$$FORMAT(_("OsAlarmActivateTaskRef or OsAlarmSetEventTaskRef of OsAlarm(%1%) can't access OsTask(%2%)"), 
+												almid, ALM.TSKID[almid])$$END$
+			$END$
+		$END$
+	$END$
+
+$	// taskが拡張タスクか(SETEVENTの場合)
+	$IF EQ(ALM.ALMATR[almid], "SETEVENT")$
+		$IF !TSK.EXTENDED[ALM.TSKID[almid]]$
+			$ERROR ALM.TEXT_LINE[almid]$$FORMAT(_("OsAlarmSetEventTaskRef(%1%) of OsAlarm(%2%) is not extended task"), ALM.TSKID[almid], almid)$$END$
+		$END$
+	$END$
+
+	$IF EQ(ALM.ALMATR[almid], "INCREMENTCOUNTER")$
+		$IF !OSAP.TRUSTED[osapid]$
+			$IF !(CNT.ACSBTMP[ALM.INCID[almid]] & OSAP.BTMP[osapid])$
+				$ERROR ALM.TEXT_LINE[almid]$$FORMAT(_("OsAlarmIncrementCounterRef of OsAlarm(%1%) can't access OsCounter(%2%)"), 
+												almid, ALM.INCID[almid])$$END$
+			$END$
+		$END$
+
+$		// アラームからハードウェアカウンタをインクリメントしているかチェック
+		$IF EQ(CNT.CNTATR[ALM.INCID[almid]], "HARDWARE")$
+			$ERROR ALM.TEXT_LINE[almid]$$FORMAT(_("OsAlarmIncrementCounterRef(%1%) of OsAlarm(%2%) is hardware counter"), ALM.INCID[almid], almid)$$END$
+		$END$
+	$END$
+$END$
+
+
+$
+$ IncrementCounterの循環チェックのための関数
+$
+
+$ 行列の掛け算
+$FUNCTION MATRIX_MUL$
+	$FOREACH i RANGE(0, matrix_size - 1)$
+		$FOREACH j RANGE(0, matrix_size - 1)$
+			$result = {}$
+			$FOREACH k RANGE(0, matrix_size - 1)$
+				$IF LENGTH(result) == 0$
+					$IF LENGTH(result_matrix[i * matrix_size + k]) && LENGTH(base_matrix[k * matrix_size + j])$
+						$result = APPEND(result_matrix[i * matrix_size + k], base_matrix[k * matrix_size + j])$
+					$END$
+				$END$
+			$END$
+$			// 掛け算結果を一時行列に保持
+			$tmp_matrix[i * matrix_size + j] = result$
+		$END$
+	$END$
+$	// 掛け算結果を結果行列にセット
+	$FOREACH i RANGE(0, matrix_size - 1)$
+		$FOREACH j RANGE(0, matrix_size - 1)$
+			$result_matrix[i * matrix_size + j] = tmp_matrix[i * matrix_size + j]$
+		$END$
+	$END$
+$END$
+
+
+$ 行列の0初期化
+$ base_matrix   初期行列
+$ result_matrix 掛け算の結果の行列
+$FUNCTION INIT_MATRIX$
+	$FOREACH almid ALM.ID_LIST$
+		$IF EQ(ALM.ALMATR[almid], "INCREMENTCOUNTER")$
+			$i = ALM.CNTID[almid] - 1$
+			$j = ALM.INCID[almid] - 1$
+			$IF !LENGTH(base_matrix[i * matrix_size + j])$
+				$base_matrix[i * matrix_size + j] = {almid}$
+				$result_matrix[i * matrix_size + j] = {almid}$
+			$END$
+		$END$
+	$END$
+$END$
+
+
+$ アラームの循環リストを最小IDのアラームが先頭になるようにローテートさせる
+$ また，循環リストに重複したアラームが含まれていたら重複したアラーム以降を
+$ リストから取り除く
+$FUNCTION ROTATE_LOOPED_ALARM$
+$	// 関数内でiを使うため退避
+	$tmp_i = i$
+	$alm_list = ARGV[1]$
+	$size = LENGTH(alm_list)$
+$	// リスト内でのアラームIDの最小値
+	$min_alm_id = AT(alm_list, 0)$
+	$min_alm_id_index = 0$
+	$FOREACH i RANGE(1, size - 1)$
+		$IF min_alm_id > AT(alm_list, i)$
+			$min_alm_id = AT(alm_list, i)$
+			$min_alm_id_index = i$
+		$END$
+	$END$
+	$RESULT = {}$
+$	// 重複したアラームIDが存在するか
+	$duplicate = 0$
+	$FOREACH i RANGE(0, size - 1)$
+		$append_alm = AT(alm_list, (min_alm_id_index + i) % size)$
+		$IF LENGTH(FIND(RESULT, append_alm)) > 0$
+$			// 重複したアラームがあればそれ以降は追加しない
+			$duplicate = 1$
+		$END$
+		$IF duplicate == 0$
+			$RESULT = APPEND(RESULT, append_alm)$
+		$END$
+	$END$
+	$i = tmp_i$
+$END$
+
+
+$FUNCTION CHECK_COUNTER_LOOP$
+	$matrix_size = LENGTH(CNT.ID_LIST)$
+
+	$INIT_MATRIX()$
+
+$	// 循環アラームリストのリスト
+	$alm_loop_list_size = 0$
+
+$	// ループの検出とエラー出力
+	$FOREACH n RANGE(0,  matrix_size - 1)$
+		$FOREACH i RANGE(0,  matrix_size - 1)$
+			$IF LENGTH(result_matrix[i * matrix_size + i]) > 0$
+				$result_matrix[i * matrix_size + i] = ROTATE_LOOPED_ALARM(result_matrix[i * matrix_size + i])$
+				$find = 0$
+				$FOREACH ii RANGE(0, alm_loop_list_size - 1)$
+$	 				// 過去に検出したリストに含まれるか調べる
+					$IF EQ(alm_loop_list[ii], result_matrix[i * matrix_size + i])$
+						$find = 1$
+					$END$
+				$END$
+				$IF find == 0$
+					$alm_loop_list[alm_loop_list_size] = result_matrix[i * matrix_size + i]$
+					$alm_loop_list_size = alm_loop_list_size + 1$
+					$ERROR ALM.TEXT_LINE[AT(result_matrix[i * matrix_size + i], 0)]$
+								$FORMAT(_("OsAlarmIncrementCounterRef of OsAlarm(%1%) is a cyclic chain of alarm action"), result_matrix[i * matrix_size + i])$$END$
+				$END$
+			$END$
+		$END$
+		$MATRIX_MUL()$
+	$END$
+$END$
+
+
+$ 直接/間接的にカウンターをインクリメントするか(INCREMENTCOUNTERの場合)
+$ ユーザヘッダにOMIT_CHECK_CYCLIC_CHAINの定義があれば，アラーム循環チェックを行わない
+$IF !OMIT_CHECK_CYCLIC_CHAIN$
+	$CHECK_COUNTER_LOOP()$
+$END$
+
+$ 他の非信頼OSAPに所属するカウンタを指定した場合
+$FOREACH almid ALM.ID_LIST$
+	$IF !EQ(ALM.OSAPID[almid], CNT.OSAPID[ALM.CNTID[almid]])$
+		$IF !OSAP.TRUSTED[CNT.OSAPID[ALM.CNTID[almid]]]$
+			$ERROR ALM.TEXT_LINE[almid]$$FORMAT(_("OsAlarmCounterRef(%1%) is on a other Non-Trusted OS-Application"), ALM.CNTID[almid])$$END$
+		$END$
+	$END$
+$END$
+
+
+$ =====================================================================
+$ スケジュールテーブル関連のエラーチェックと内部データの生成
+$ =====================================================================
+
+$TRACE("SCHEDULETABLE CHECK")$
+
+$FOREACH schtblid SCHTBL.ID_LIST$
+$	// 同期方法設定値チェック
+$	// syncstrategyにNONE/IMPLICITいずれか一つが指定されているか
+	$IF !(EQ(SCHTBL.SYNCSTRATEGY[schtblid], "NONE") || EQ(SCHTBL.SYNCSTRATEGY[schtblid], "IMPLICIT"))$
+		$ERROR SCHTBL.TEXT_LINE[schtblid]$
+				$FORMAT(_("OsScheduleTblSyncStrategy of OsScheduleTable(%1%) must be NONE or IMPLICIT"), schtblid)$$END$
+	$END$
+$END$
+
+
+$ 各スケジュールテーブルIDの定義(暗黙同期定義は先，非同期定義は後)
+$i = 0$
+$ スケジュール初期化ブロック生成時に使用する順序付きリスト変数
+$new_id_list = {}$
+$FOREACH schtblid SCHTBL.ID_LIST$
+	$IF EQ(SCHTBL.SYNCSTRATEGY[schtblid], "IMPLICIT")$
+		$SCHTBL.ID[schtblid] = i$
+		$i = i + 1$
+		$new_id_list = APPEND(new_id_list, schtblid)$
+	$END$
+$END$
+$FOREACH schtblid SCHTBL.ID_LIST$
+	$IF EQ(SCHTBL.SYNCSTRATEGY[schtblid], "NONE")$
+		$SCHTBL.ID[schtblid] = i$
+		$i = i + 1$
+		$new_id_list = APPEND(new_id_list, schtblid)$
+	$END$
+$END$
+$NL$
+$SCHTBL.ID_LIST = new_id_list$
+
+
+$exppt_index = 0$
+$EXPPT.ID_LIST = {}$
+$FOREACH expptactid EXPPTACT.ID_LIST$
+$	// 満了アクションの属性と満了アクション処理内容設定の整合性チェック
+$	// taskが拡張タスクか(SETEVENTの場合)
+	$IF EQ(EXPPTACT.EXPIREATR[expptactid], "SETEVENT")$
+		$IF !TSK.EXTENDED[EXPPTACT.TSKID[expptactid]]$
+			$ERROR EXPPTACT.TEXT_LINE[expptactid]$
+						$FORMAT(_("OsScheduleTableSetEventTaskRef(%1%) of OsScheduleTableExpiryPoint(%2%) is not extended task"), EXPPTACT.TSKID[expptactid], expptactid)$$END$
+		$END$
+	$END$
+
+	$schtblid = EXPPTACT.SCHTBLID[expptactid]$
+	$FOREACH expptid EXPPT.ID_LIST$
+		$IF EXPPT.OFFSET[expptid] == EXPPTACT.OFFSET[expptactid] &&
+			EXPPTACT.SCHTBLID[expptactid] == EXPPT.SCHTBLID[expptid]$
+			$EXPPTACT.EXPPTID[expptactid] = expptid$
+		$END$
+	$END$
+
+$	// 満了点情報の生成とスケジュールテーブルとの関連付け
+	$IF !LENGTH(EXPPTACT.EXPPTID[expptactid])$
+		$EXPPT.ID_LIST = APPEND(EXPPT.ID_LIST, exppt_index)$
+		$EXPPT.SCHTBLID[exppt_index] = schtblid$
+		$EXPPT.OFFSET[exppt_index] = EXPPTACT.OFFSET[expptactid]$
+		$SCHTBL.EXPPTINDEX_LIST[schtblid] = APPEND(SCHTBL.EXPPTINDEX_LIST[schtblid], exppt_index)$
+		$EXPPTACT.EXPPTID[expptactid] = exppt_index$
+
+$		満了点のオフセットがスケジュールテーブルの周期を超えたかチェック
+		$IF EXPPT.OFFSET[exppt_index] > SCHTBL.DURATIONTICK[schtblid]$
+			$ERROR EXPPTACT.TEXT_LINE[expptactid]$
+						$FORMAT(_("OsScheduleTblExpPointOffset(%1%) of OsScheduleTableExpiryPoint(%2%) of OsScheduleTable(%3%) more than OsScheduleTableDuration(%4%)"), 
+							EXPPTACT.OFFSET[expptactid], expptactid, schtblid, SCHTBL.DURATIONTICK[schtblid])$$END$
+		$END$
+		$exppt_index = exppt_index + 1$
+	$END$
+
+	$osapid = SCHTBL.OSAPID[schtblid]$
+	$IF !OSAP.TRUSTED[osapid]$
+		$IF !(TSK.ACSBTMP[EXPPTACT.TSKID[expptactid]] & OSAP.BTMP[osapid])$
+			$ERROR SCHTBL.TEXT_LINE[schtblid]$$FORMAT(_("OsScheduleTableActivateTaskRef or OsScheduleTableSetEventTaskRef of OsScheduleTable(%1%) can't access OsTask(%2%)"), 
+												schtblid, EXPPTACT.TSKID[expptactid])$$END$
+		$END$
+	$END$
+$END$
+
+
+$ 暗黙スケジュールカウント用変数
+$tnum_implscheduletable = 0$
+
+$FOREACH schtblid SCHTBL.ID_LIST$
+$	// EXPPTINDEX_LISTをOFFSETの順にソートする
+	$SCHTBL.EXPPTINDEX_LIST[schtblid] = SORT(SCHTBL.EXPPTINDEX_LIST[schtblid], "EXPPT.OFFSET")$
+
+	$astptn = 0$
+	$FOREACH appid SCHTBL.APP_LIST[schtblid]$
+		$astptn = astptn | (1 << APP.ID[appid])$
+	$END$
+	$SCHTBL.ASTPTN[schtblid] = astptn$
+
+$	// アプリケーションモード設定した場合のみ，初回起動ティック値をチェック
+	$IF SCHTBL.ASTPTN[schtblid]$
+
+		$IF !(EQ(SCHTBL.AUTOSTARTTYPE[schtblid], "ABSOLUTE") || EQ(SCHTBL.AUTOSTARTTYPE[schtblid], "RELATIVE"))$
+$			// autostarttypeにABSOLUTE/RELATIVE以外のものが登録されていないか
+			$ERROR SCHTBL.TEXT_LINE[schtblid]$$FORMAT(_("OsScheduleTableAutostartType of OsScheduleTable(%1%) must be ABSOLUTE or RELATIVE"), schtblid)$$END$
+		$ELIF EQ(SCHTBL.STARTTICK[schtblid], "NULL")$
+$			// 初回起動ティック値が省略されたたか
+			$ERROR SCHTBL.TEXT_LINE[schtblid]$$FORMAT(_("OsScheduleTableStartValue(%1%) of %2% AutoStart OsScheduleTable(%3%) must be designated"),
+													SCHTBL.STARTTICK[schtblid], SCHTBL.AUTOSTARTTYPE[schtblid], schtblid)$$END$
+			$DIE()$
+		$END$
+
+$		// 初回起動ティック値は，カウンタ最大値を超えるか或いは0より小さいか
+		$IF CNT.MAXALLOWED[SCHTBL.CNTID[schtblid]] < SCHTBL.STARTTICK[schtblid] || SCHTBL.STARTTICK[schtblid] < 0$
+			$ERROR SCHTBL.TEXT_LINE[schtblid]$$FORMAT(_("OsScheduleTableStartValue(%1%) of OsScheduleTable(%2%) must be in the range 0 .. OsCounterMaxAllowedValue(%3%)"), 
+													SCHTBL.STARTTICK[schtblid], schtblid, CNT.MAXALLOWED[SCHTBL.CNTID[schtblid]])$$END$
+		$END$
+
+		$IF EQ(SCHTBL.AUTOSTARTTYPE[schtblid], "RELATIVE")$
+$			// autostarttypeがRELATIVEの場合はSTARTTICK==0は禁止
+			$IF SCHTBL.STARTTICK[schtblid] == 0$
+				$ERROR SCHTBL.TEXT_LINE[schtblid]$$FORMAT(_("OsScheduleTableStartValue of RELATIVE OsScheduleTable(%1%) must not be zero"), schtblid)$$END$
+			$END$
+
+$			//暗黙スケジュールテーブルのautostarttypeにRELATIVEが指定されているか
+			$IF EQ(SCHTBL.SYNCSTRATEGY[schtblid], "IMPLICIT")$
+				$ERROR SCHTBL.TEXT_LINE[schtblid]$$FORMAT(_("OsScheduleTableAutostartType of IMPLICIT OsScheduleTable(%1%) must not be RELATIVE"), schtblid)$$END$
+			$END$
+		$END$
+	$END$
+
+$	//満了点数254を超えるかチェック
+	$IF LENGTH(SCHTBL.EXPPTINDEX_LIST[schtblid]) > 254$
+		$ERROR SCHTBL.TEXT_LINE[schtblid]$
+					$FORMAT(_("too many OsScheduleTableExpiryPoint of OsScheduleTable(%1%) %2% > 254"), schtblid, LENGTH(SCHTBL.EXPPTINDEX_LIST[schtblid]))$$END$
+	$ELSE$
+		$previous_exp_expptid = AT(SCHTBL.EXPPTINDEX_LIST[schtblid], 0)$
+
+$		// 初期オフセットは，0か接続カウンタの最小周期〜最大値かになる必要がある
+		$IF EXPPT.OFFSET[previous_exp_expptid] != 0 && (EXPPT.OFFSET[previous_exp_expptid] < CNT.MINCYCLE[SCHTBL.CNTID[schtblid]] ||
+												 EXPPT.OFFSET[previous_exp_expptid] > CNT.MAXALLOWED[SCHTBL.CNTID[schtblid]])$
+			$ERROR EXPPT.TEXT_LINE[previous_exp_expptid]$
+							$FORMAT(_("The Initial Offset(%1%) of OsScheduleTable(%2%) must be zero OR in the range OsCounterMinCycle(%3%) .. OsCounterMaxAllowedValue(%4%)"), 
+								EXPPT.OFFSET[previous_exp_expptid], schtblid, CNT.MINCYCLE[SCHTBL.CNTID[schtblid]], CNT.MAXALLOWED[SCHTBL.CNTID[schtblid]])$$END$
+		$END$
+
+$		// 各満了点間の遅延値は，接続カウンタの最小周期〜最大値かになる必要がある
+		$FOREACH exp_expptid SCHTBL.EXPPTINDEX_LIST[schtblid]$
+			$IF previous_exp_expptid != exp_expptid$
+				$IF (EXPPT.OFFSET[exp_expptid] - EXPPT.OFFSET[previous_exp_expptid] < CNT.MINCYCLE[SCHTBL.CNTID[schtblid]]) ||
+					(EXPPT.OFFSET[exp_expptid] - EXPPT.OFFSET[previous_exp_expptid] > CNT.MAXALLOWED[SCHTBL.CNTID[schtblid]])$
+					$ERROR EXPPT.TEXT_LINE[exp_expptid]$
+						$FORMAT(_("The delay of OsScheduleTable(%1%) between OsScheduleTblExpPointOffset(%2% and %3%) must be in the range OsCounterMinCycle(%4%) .. OsCounterMaxAllowedValue(%5%)"),
+							schtblid, EXPPT.OFFSET[previous_exp_expptid], EXPPT.OFFSET[exp_expptid], CNT.MINCYCLE[SCHTBL.CNTID[schtblid]], CNT.MAXALLOWED[SCHTBL.CNTID[schtblid]])$$END$
+				$END$
+				$previous_exp_expptid = exp_expptid$
+			$END$
+		$END$
+
+$		// 最終遅延値は，接続カウンタの最小周期〜最大値かになる必要がある（単発の場合0が許される）
+		$IF ((SCHTBL.DURATIONTICK[schtblid] - EXPPT.OFFSET[previous_exp_expptid] < CNT.MINCYCLE[SCHTBL.CNTID[schtblid]]) ||
+			(SCHTBL.DURATIONTICK[schtblid] - EXPPT.OFFSET[previous_exp_expptid] > CNT.MAXALLOWED[SCHTBL.CNTID[schtblid]])) &&
+			!(SCHTBL.DURATIONTICK[schtblid] - EXPPT.OFFSET[previous_exp_expptid] == 0 && SCHTBL.REPEAT[schtblid] != 1)$
+			$ERROR EXPPT.TEXT_LINE[previous_exp_expptid]$
+						$FORMAT(_("Final Delay(%1%) of OsScheduleTable(%2%) must be in the range OsCounterMinCycle(%3%) .. OsCounterMaxAllowedValue(%4%), and allow zero when single-shot"), 
+							(SCHTBL.DURATIONTICK[schtblid] - EXPPT.OFFSET[previous_exp_expptid]), schtblid, CNT.MINCYCLE[SCHTBL.CNTID[schtblid]], CNT.MAXALLOWED[SCHTBL.CNTID[schtblid]])$$END$
+		$END$
+	$END$
+
+$	// 暗黙スケジュールテーブルのカウント
+	$IF EQ(SCHTBL.SYNCSTRATEGY[schtblid], "IMPLICIT")$
+		$tnum_implscheduletable = tnum_implscheduletable + 1$
+
+$		暗黙スケジュールテーブルの周期は，駆動カウント最大値+1かチェック
+		$IF SCHTBL.DURATIONTICK[schtblid] != CNT.MAXALLOWED[SCHTBL.CNTID[schtblid]] + 1$
+			$ERROR SCHTBL.TEXT_LINE[schtblid]$$FORMAT(_("OsScheduleTableDuration(%1%) of IMPLICIT OsScheduleTable(%2%) must be OsCounterMaxAllowedValue(%3%) + 1"), 
+													SCHTBL.DURATIONTICK[schtblid], schtblid, CNT.MAXALLOWED[SCHTBL.CNTID[schtblid]])$$END$
+		$END$
+	$END$
+
+$	// スケジュールテーブルへのアクセス権の設定
+	$IF LENGTH(SCHTBL.OSAPID[schtblid])$
+		$SCHTBL.ACSBTMP[schtblid] = OSAP.BTMP[SCHTBL.OSAPID[schtblid]]$
+		$FOREACH osapid SCHTBL.ACS_OSAP_LIST[schtblid]$
+			$SCHTBL.ACSBTMP[schtblid] = SCHTBL.ACSBTMP[schtblid] | OSAP.BTMP[osapid]$
+		$END$
+	$ELSE$
+		$ERROR SCHTBL.TEXT_LINE[schtblid]$$FORMAT(_("OsScheduleTable(%1%) does not belong OsApplication"), schtblid)$$END$
+	$END$
+$END$
+
+$ 他の非信頼OSAPに所属するカウンタを指定した場合
+$FOREACH schtblid SCHTBL.ID_LIST$
+	$IF !EQ(SCHTBL.OSAPID[schtblid], CNT.OSAPID[SCHTBL.CNTID[schtblid]])$
+		$IF !OSAP.TRUSTED[CNT.OSAPID[SCHTBL.CNTID[schtblid]]]$
+			$ERROR SCHTBL.TEXT_LINE[schtblid]$$FORMAT(_("OsScheduleTableCounterRef(%1%) is on a other Non-Trusted OS-Application"), SCHTBL.CNTID[schtblid])$$END$
+		$END$
+	$END$
+$END$
+
+
+$ =====================================================================
+$ 信頼関数のエラーチェックとID設定
+$ =====================================================================
+
+$i = 0$
+$FOREACH tfnid TFN.ID_LIST$
+	$TFN.ID[tfnid] = i$
+	$i = i + 1$
+
+$	// OSアプリケーションは信頼OSアプリケーションか?
+	$IF !OSAP.TRUSTED[TFN.OSAPID[tfnid]]$
+		$ERROR TFN.TEXT_LINE[tfnid]$$FORMAT(_("OsApplicationTrustedFunction(%1%) of OsApplication(%2%) can't be assign to Non-Trusted OS-Application"), 
+										tfnid, TFN.OSAPID[tfnid])$$END$
+	$END$
+
+	$IF EQ(TFN.FUNC[tfnid], REGEX_REPLACE(TFN.FUNC[tfnid], "^TRUSTED_", ""))$
+		$ERROR TFN.TEXT_LINE[tfnid]$$FORMAT(_("OsTrustedFunctionName(%1%) of OsApplication(%2%) function name must begin with TRUSTED_"), 
+										TFN.FUNC[tfnid], TFN.OSAPID[tfnid])$$END$
+	$END$
+$END$
+
+
+$ =====================================================================
+$ 以下はHRP2からの移植
+$ =====================================================================
+
+$ =====================================================================
+$ 保護ドメインに関する前処理
+$ =====================================================================
+
+$
+$  保護ドメインリストの作成
+$	DOMLIST：ユーザドメインのリスト
+$	DOMLIST_ALL：カーネルドメイン，ユーザドメイン，無所属のリスト
+$
+$FOREACH domid OSAP.ID_LIST$
+	$IF !OSAP.TRUSTED[domid]$
+		$DOMLIST = APPEND(DOMLIST, domid)$
+	$END$
+$END$
+$DOMLIST_ALL = APPEND(TDOM_KERNEL, DOMLIST, TDOM_NONE)$
+
+$
+$  保護ドメイン毎のデフォルトのアクセス許可パターンの作成
+$
+$DEFAULT_ACPTN[TDOM_KERNEL] = VALUE("TACP_KERNEL", TACP_KERNEL)$
+$FOREACH domid OSAP.ID_LIST$
+	$DEFAULT_ACPTN[domid] = OSAP.ACPTN[domid]$
+$END$
+$DEFAULT_ACPTN[TDOM_NONE] = VALUE("TACP_SHARED", TACP_SHARED)$
+
+$
+$  保護ドメインのラベルの作成
+$	OSAP.LABEL[domid]：保護ドメインのラベル
+$
+$OSAP.LABEL[TDOM_KERNEL] = "kernel"$
+$FOREACH domid OSAP.ID_LIST$
+	$IF !OSAP.TRUSTED[domid]$
+		$OSAP.LABEL[domid] = domid$
+	$END$
+$END$
+$OSAP.LABEL[TDOM_NONE] = "shared"$
+
+$ =====================================================================
+$ メモリオブジェクトに関する前処理
+$
+$ 統合前のメモリオブジェクトの情報をMO.XXXX[moid]に生成する．
+$
+$ nummo：統合前のメモリオブジェクトの数
+$ MO.TYPE[moid]：メモリオブジェクトのタイプ
+$	TOPPERS_ATTMOD：OsMemoryModuleで登録されたセクション
+$					モジュール名をMO.MODULE[moid]に設定
+$	TOPPERS_ATTSEC：OsMemorySectionで登録されたセクション
+$	TOPPERS_ATTMEM：OsMemoryAreaで登録されたセクション
+$					先頭番地をMO.BASE[moid]に設定
+$					サイズをMO.SIZE[moid]に設定
+$	TOPPERS_USTACK：タスクのユーザスタック領域
+$					タスクIDをMO.STKORDER[moid]に設定
+$					先頭番地をMO.BASE[moid]に設定（ユーザスタック領域をア
+$					プリケーションが指定した場合のみ）
+$					サイズをMO.SIZE[moid]に設定
+$ MO.LINKER[moid]：リンカが配置するメモリオブジェクトか？
+$ MO.OSAPID[moid]：属するOSAP（無所属の場合はTDOM_NONE）
+$ MO.MEMREG[moid]：メモリリージョン番号（リンカが配置する場合のみ）
+$ MO.SECTION[moid]：セクション名（リンカが配置する場合のみ）
+$ MO.MEMATR[moid]：メモリオブジェクト属性
+$ MO.ACPTN1[moid]：通常操作1（書込み）のアクセス許可パターン
+$ MO.ACPTN2[moid]：通常操作2（読出し，実行）のアクセス許可パターン
+$ MO.TEXT_LINE[moid]：メモリオブジェクトを登録したコンフィギュレーションフィアルの行番号
+$ MO_USTACK_LIST：ジェネレータが割り付けるユーザスタック領域のリスト
+$ MO_USTACK_LIST2：先頭番地を指定されたユーザスタック領域のリスト
+$ =====================================================================
+
+$TOPPERS_ATTMOD = VALUE("TOPPERS_ATTMOD", TOPPERS_ATTSEC + 1)$
+$nummo = 0$
+$MO_USTACK_LIST = {}$
+$MO_USTACK_LIST2 = {}$ 
+
+$
+$  配置するセクションに関する前処理
+$
+$ OsLinkSectionで配置するセクション（メモリオブジェクトとして登録しない）の情
+$ 報を，LNKSEC[lsid]に生成する．
+$
+$ numls：配置するセクションの数
+$ LNKSEC.MEMREG[lsid]：メモリリージョン番号
+$ LNKSEC.SECTION[lsid]：セクション名
+
+$numls = 0$
+
+$
+$  OsMemoryRegionで登録されたリージョンに関するエラーチェックと前処理
+$
+$ REG_LIST：処理済みのメモリリージョンのリスト
+$ REG.REGNAME[reg]：メモリリージョン名（＝UNESCSTR(MO.REGION[reg])）
+$
+$FOREACH reg REG.ORDER_LIST$
+$	// REG.REGNAME[reg]の作成
+	$REG.REGNAME[reg] = UNESCSTR(REG.REGION[reg])$
+
+$	// メモリリージョン名が登録済みの場合
+	$FOREACH reg2 REG_LIST$
+		$IF EQ(REG.REGNAME[reg], REG.REGNAME[reg2])$
+			$ERROR REG.TEXT_LINE[reg]$$FORMAT(_("OsMemoryRegionName(%1%) of OsMemoryRegion(%2%) is duplicated"), REG.REGNAME[reg], reg)$$END$
+		$END$
+	$END$
+
+$	// regatrが（［TA_NOWRITE］）でない場合
+	$IF (REG.REGATR[reg] & ~(TA_NOWRITE|TARGET_REGATR)) != 0$
+		$ERROR REG.TEXT_LINE[reg]$$FORMAT(_("illegal attribute(%1%) of OsMemoryRegion(%2%)"), REG.REGATR[reg], reg)$$END$
+	$END$
+
+$	// ドメインに所属している場合
+	$IF LENGTH(REG.DOMAIN[reg])$
+		$ERROR REG.TEXT_LINE[reg]$$FORMAT(_("OsMemoryRegion(%1%) must be outside of OsApplication"), REG.REGNAME[reg])$$END$
+	$END$
+
+$	// sizeが0の場合
+	$IF REG.SIZE[reg] == 0$
+		$ERROR REG.TEXT_LINE[reg]$$FORMAT(_("OsMemoryRegionSize of OsMemoryRegion(%1%) must not be zero"), reg)$$END$
+	$END$
+
+$	// base+sizeが最大アドレスを越える場合
+	$limit = (REG.BASE[reg] + REG.SIZE[reg]) & ((1 << sizeof_void_ptr * 8) - 1)$
+	$IF limit < REG.BASE[reg] && limit != 0$
+		$ERROR REG.TEXT_LINE[reg]$$FORMAT(_("OsMemoryRegionSize(%1%) of OsMemoryRegion(%2%) is too large"), REG.SIZE[reg], reg)$$END$
+	$END$
+
+$	// 登録済みのメモリリージョンと領域が重なる場合
+	$FOREACH reg2 REG_LIST$
+		$IF ((REG.BASE[reg] <= REG.BASE[reg2]
+						&& REG.BASE[reg] + REG.SIZE[reg] > REG.BASE[reg2])
+		  || (REG.BASE[reg2] < REG.BASE[reg]
+						&& REG.BASE[reg2] + REG.SIZE[reg2] > REG.BASE[reg]))$
+			$ERROR REG.TEXT_LINE[reg]$
+					$FORMAT(_("OsMemoryRegionName(%1%) of OsMemoryRegion(%2%) overlaps with another OsMemoryRegionName(%3%) of OsMemoryRegion(%4%)"), 
+						REG.REGNAME[reg], reg, REG.REGNAME[reg2], reg2)$$END$
+		$END$
+	$END$
+
+$	// ターゲット依存のエラーチェック
+	$IF ISFUNCTION("HOOK_ERRORCHECK_REG")$
+		$HOOK_ERRORCHECK_REG(reg)$
+	$END$
+	$REG_LIST = APPEND(REG_LIST, reg)$
+$END$
+
+$ REG_ORDERの生成
+$REG_ORDER = SORT(REG.ORDER_LIST, "REG.BASE")$
+
+$
+$  OsStandardMemoryRegionで定義された標準メモリリージョンに関するエラーチェックと前処理
+$
+$ STANDARD_ROM：標準ROMリージョンのメモリリージョン番号
+$ STANDARD_RAM：標準RAMリージョンのメモリリージョン番号
+$
+$IF !LENGTH(SRG.ORDER_LIST)$
+$	//OsStandardMemoryRegionがない場合は，ここで処理を止める（以降のエラーの抑止）
+	$ERROR$$FORMAT(_("no standard memory region is registered"))$$END$
+	$DIE()$
+$ELSE$
+$	// ドメインの囲みの中に記述されている場合 
+	$IF LENGTH(SRG.DOMAIN[1])$
+		$ERROR SEG.TEXT_LINE[1]$$FORMAT(_("OsStandardMemoryRegion must be outside of OsApplication"))$$END$
+	$END$
+
+$	// OsStandardMemoryRegionが複数ある
+	$IF LENGTH(SRG.ORDER_LIST) > 1$
+		$ERROR$$FORMAT(_("too many OsStandardMemoryRegion"))$$END$
+	$END$
+
+$	// stdromが登録されているかのチェック
+	$STANDARD_ROM = 0$
+	$FOREACH reg REG.ORDER_LIST$
+		$IF EQ(UNESCSTR(SRG.STDROM[1]), REG.REGNAME[reg])$
+			$STANDARD_ROM = reg$
+		$END$
+	$END$
+	$IF STANDARD_ROM == 0$
+		$ERROR SRG.TEXT_LINE[1]$$FORMAT(_("illegal region name(%1%) in OsStandardMemoryRegion"), UNESCSTR(SRG.STDROM[1]))$
+		$END$
+	$END$
+
+$	// stdromがTA_NOWRITE属性かのチェック
+	$IF (REG.REGATR[STANDARD_ROM] & TA_NOWRITE) == 0$
+		$ERROR SRG.TEXT_LINE[1]$$FORMAT(_("standard ROM region must have TA_NOWRITE attribute"))$$END$
+	$END$
+
+$	// stdramが登録されているかのチェック
+	$STANDARD_RAM = 0$
+	$FOREACH reg REG.ORDER_LIST$
+		$IF EQ(UNESCSTR(SRG.STDRAM[1]), REG.REGNAME[reg])$
+			$STANDARD_RAM = reg$
+		$END$
+	$END$
+	$IF STANDARD_RAM == 0$
+		$ERROR SRG.TEXT_LINE[1]$$FORMAT(_("illegal region name(%1%) in OsStandardMemoryRegion"), UNESCSTR(SRG.STDRAM[1]))$
+		$END$
+	$END$
+
+$	// stdramがTA_NOWRITE属性でないかのチェック
+	$IF (REG.REGATR[STANDARD_RAM] & TA_NOWRITE) != 0$
+		$ERROR SRG.TEXT_LINE[1]$$FORMAT(_("standard RAM region must not have TA_NOWRITE attribute"))$$END$
+	$END$
+
+$	// どちらかがエラーの場合は，ここで処理を止める（以降のエラーの抑止）
+	$IF STANDARD_ROM==0 || STANDARD_RAM==0$
+		$DIE()$
+	$END$
+$END$
+
+$
+$  標準のセクションの定義と標準セクションのリストの作成
+$
+$ DSEC_SECTION_LIST：標準のセクションと保護ドメイン毎標準セクションのリスト
+$
+$FOREACH dsec DSEC.ORDER_LIST$
+	$DSEC_SECTION_LIST = APPEND(DSEC_SECTION_LIST, DSEC.SECTION[dsec])$
+$END$
+$FOREACH domid DOMLIST_ALL$
+	$FOREACH dsec DSEC.ORDER_LIST$
+		$DSEC_SECTION_LIST = APPEND(DSEC_SECTION_LIST,
+					FORMAT("%s_%s", DSEC.SECTION[dsec], OSAP.LABEL[domid]))$
+	$END$
+$END$
+
+$
+$  OsMemoryModuleで登録したのと同等に扱うモジュールの処理
+$
+$ 先頭でOsMemoryModuleで登録したのと同等：START_OBJS, libkernel.o, kernel_mem.o, libkernel.a
+$ 末尾でOsMemoryModuleで登録したのと同等：*, END_OBJS
+$
+$IF TOPPERS_SUPPORT_ATT_MOD$
+	$nummod = LENGTH(MOD.ORDER_LIST)$
+
+	$FUNCTION ATT_MOD_FIRST$
+		$nummod = nummod + 1$
+		$MOD.ORDER_LIST = APPEND(nummod, MOD.ORDER_LIST)$
+		$MOD.MODULE[nummod] = ESCSTR(ARGV[1])$
+		$MOD.OSAPID[nummod] = ARGV[2]$
+		$MOD.TEXT_LINE[nummod] = 0$
+		$MOD.EXPORT[nummod] = 0$
+	$END$
+
+	$FUNCTION ATT_MOD_LAST$
+		$nummod = nummod + 1$
+		$MOD.ORDER_LIST = APPEND(MOD.ORDER_LIST, nummod)$
+		$MOD.MODULE[nummod] = ESCSTR(ARGV[1])$
+		$MOD.OSAPID[nummod] = ARGV[2]$
+		$MOD.TEXT_LINE[nummod] = 0$
+		$MOD.EXPORT[nummod] = 0$
+	$END$
+
+	$FOREACH module APPEND("libkernel.a", "kernel_mem.o", "Os_Lcfg.o",
+															START_OBJS)$
+		$ATT_MOD_FIRST(module, TDOM_KERNEL)$
+	$END$
+
+	$ATT_MOD_LAST("*", TDOM_NONE)$
+	$FOREACH module END_OBJS$
+		$ATT_MOD_LAST(module, TDOM_KERNEL)$
+	$END$
+$END$
+
+$
+$  OsMemoryModuleで登録されたモジュールに関する情報の生成
+$
+$ MOD_LIST：処理済みのモジュールのリスト
+$
+$FOREACH mod MOD.ORDER_LIST$
+$	// OsMemoryModuleがサポートされていない場合
+	$IF !TOPPERS_SUPPORT_ATT_MOD$
+		$ERROR MOD.TEXT_LINE[mod]$$FORMAT(_("OsMemoryModule is not supported on this target"))$$END$
+	$END$
+
+$	// moduleが登録済みの場合
+	$FOREACH mod2 MOD_LIST$
+		$IF EQ(MOD.MODULE[mod], MOD.MODULE[mod2])$
+			$ERROR MOD.TEXT_LINE[mod]$$FORMAT(_("OsMemoryModuleName(%1%) of OsMemoryModule(%2%) is duplicated"), UNESCSTR(MOD.MODULE[mod]), mod)$$END$
+		$END$
+	$END$
+
+$	// ターゲット依存のエラーチェック
+	$IF ISFUNCTION("HOOK_ERRORCHECK_MOD")$
+		$HOOK_ERRORCHECK_MOD(mod)$
+	$END$
+
+$	// メモリオブジェクト情報の生成
+	$FOREACH dsec DSEC.ORDER_LIST$
+		$nummo = nummo + 1$
+		$MO.TYPE[nummo] = TOPPERS_ATTMOD$
+		$MO.MODULE[nummo] = UNESCSTR(MOD.MODULE[mod])$
+		$MO.LINKER[nummo] = 1$
+		$IF EQ(MOD.OSAPID[mod], "")$
+			$MO.OSAPID[nummo] = TDOM_NONE$
+		$ELSE$
+			$MO.OSAPID[nummo] = MOD.OSAPID[mod]$
+		$END$
+		$IF DSEC.MEMREG[dsec] == 1$
+			$MO.MEMREG[nummo] = STANDARD_ROM$
+		$ELSE$
+			$MO.MEMREG[nummo] = STANDARD_RAM$
+		$END$
+		$MO.SECTION[nummo] = DSEC.SECTION[dsec]$
+		$MO.MEMATR[nummo] = DSEC.MEMATR[dsec]$
+
+		$domptn = DEFAULT_ACPTN[MO.OSAPID[nummo]]$
+		$MO.ACPTN1[nummo] = domptn$
+		$MO.ACPTN2[nummo] = domptn$
+		$IF MOD.EXPORT[mod] == 1$
+			$MO.ACPTN2[nummo] = TACP_SHARED$
+		$END$
+		$MO.TEXT_LINE[nummo] = MOD.TEXT_LINE[mod]$
+	$END$
+	$MOD_LIST = APPEND(MOD_LIST, mod)$
+$END$
+
+$
+$  OsMemorySection定義と同等の機能を提供
+$  第1引数 セクション名
+$  第2引数 メモリ属性
+$  第3引数 メモリリージョン
+$  第4引数 共有リード専有ライトにするか
+$
+$FUNCTION ATT_SEC$
+	$section = ARGV[1]$
+	$mematr = ARGV[2]$
+	$memreg = ARGV[3]$
+	$export = ARGV[4]$
+
+	$numsec = LENGTH(SEC.ORDER_LIST)$
+	$numsec = numsec + 1$
+	$SEC.ORDER_LIST = APPEND(numsec, SEC.ORDER_LIST)$
+	$SEC.SECTION[numsec] = ESCSTR(section)$
+	$SEC.MEMATR[numsec] = mematr$
+	$SEC.MEMREG[numsec] = REG.REGION[memreg]$
+	$SEC.OSAPID[numsec] = TDOM_KERNEL$
+	$SEC.TEXT_LINE[numsec] = 0$
+	$SEC.EXPORT[numsec] = export$
+$END$
+
+$ATT_SEC(".srpw_bss_kernel", TA_SDATA, STANDARD_RAM, 1)$
+
+$
+$  OsMemorySection／OsLinkSectionで登録されたセクションに関する情報の生成
+$
+$ SEC_LIST：処理済みのセクションのリスト
+$
+$FOREACH sec SEC.ORDER_LIST$
+$	// sectionが標準のセクションの場合
+	$IF TOPPERS_SUPPORT_ATT_MOD || !LENGTH(SEC.MEMATR[sec])$
+		$IF LENGTH(FIND(DSEC_SECTION_LIST, UNESCSTR(SEC.SECTION[sec])))$
+			$ERROR SEC.TEXT_LINE[sec]$
+				$FORMAT(_("OsMemorySectionName of OsMemorySection(%1%) can't be attached default section(%2%)"), sec, UNESCSTR(SEC.SECTION[sec]))$
+			$END$
+		$END$
+	$END$
+
+$	// sectionが登録済みの場合
+	$FOREACH sec2 SEC_LIST$
+		$IF EQ(SEC.SECTION[sec], SEC.SECTION[sec2])$
+			$ERROR SEC.TEXT_LINE[sec]$
+				$FORMAT(_("OsMemorySectionName(%1%) of OsMemorySection(%2%) is duplicated"), UNESCSTR(SEC.SECTION[sec]), sec)$
+			$END$
+		$END$
+	$END$
+
+$	// memregのチェック
+	$memreg = 0$
+	$FOREACH reg REG.ORDER_LIST$
+		$IF EQ(UNESCSTR(SEC.MEMREG[sec]), REG.REGNAME[reg])$
+			$memreg = reg$
+		$END$
+	$END$
+	$IF memreg == 0$
+		$ERROR SEC.TEXT_LINE[sec]$
+			$FORMAT(_("illegal OSMemorySectionMemoryRegionRef(%1%) of OsMemorySection(%2%)"), SEC.MEMREG[sec], sec)$
+		$END$
+$		// 以降のエラーの抑止
+		$memreg = STANDARD_RAM$
+	$END$
+
+	$IF LENGTH(SEC.MEMATR[sec])$
+$		// OsMemorySectionの場合
+
+$		// mematrが（［TA_NOWRITE|TA_NOREAD|TA_EXEC|TA_MEMINI|TA_MEMPRSV|TA_SDATA|TA_UNCACHE|TA_IODEV］）でない場合
+$		// mematrにTA_MEMINIとTA_MEMPRSVの両方を指定した場合（TA_RSATR）
+		$IF (SEC.MEMATR[sec] & ~(TA_NOWRITE|TA_NOREAD|TA_EXEC|TA_MEMINI|TA_MEMPRSV|TA_SDATA|TA_UNCACHE|TA_IODEV|TARGET_MEMATR)) != 0
+			|| (SEC.MEMATR[sec] & (TA_MEMINI|TA_MEMPRSV)) == (TA_MEMINI|TA_MEMPRSV)$
+			$ERROR SEC.TEXT_LINE[sec]$$FORMAT(_("illegal attribute(%1%) of OsMemorySection(%2%)"), SEC.MEMATR[sec], sec)$$END$
+		$END$
+
+		$IF (SEC.EXPORT[sec] == 1 && (SEC.MEMATR[sec] & (TA_NOWRITE | TA_NOREAD | TA_EXEC)))$
+			$ERROR SEC.TEXT_LINE[sec]$$FORMAT(_("illegal Exported section memory attribute(%1%) of OsMemorySection(%2%)"), SEC.MEMATR[sec], sec)$$END$
+		$END$
+
+$		// ターゲット依存のエラーチェック
+		$IF ISFUNCTION("HOOK_ERRORCHECK_SEC")$
+			$HOOK_ERRORCHECK_SEC(sec)$
+		$END$
+
+$		// メモリオブジェクト情報の生成
+		$nummo = nummo + 1$
+		$MO.TYPE[nummo] = TOPPERS_ATTSEC$
+		$MO.LINKER[nummo] = 1$
+		$IF EQ(SEC.OSAPID[sec], "")$
+			$MO.OSAPID[nummo] = TDOM_NONE$
+		$ELSE$
+			$MO.OSAPID[nummo] = SEC.OSAPID[sec]$
+		$END$
+		$MO.MEMREG[nummo] = memreg$
+		$MO.SECTION[nummo] = UNESCSTR(SEC.SECTION[sec])$
+		$IF (REG.REGATR[memreg] & TA_NOWRITE) != 0$
+$			// メモリリージョン属性にTA_NOWRITEが設定されている時は，
+$			// メモリオブジェクト属性にTA_NOWRITEを設定する．
+			$MO.MEMATR[nummo] = SEC.MEMATR[sec] | TA_NOWRITE$
+		$ELSE$
+			$MO.MEMATR[nummo] = SEC.MEMATR[sec]$
+		$END$
+
+		$domptn = DEFAULT_ACPTN[MO.OSAPID[nummo]]$
+		$MO.ACPTN1[nummo] = domptn$
+		$MO.ACPTN2[nummo] = domptn$
+		$IF SEC.EXPORT[sec] == 1$
+			$MO.ACPTN2[nummo] = TACP_SHARED$
+		$END$
+		$MO.TEXT_LINE[nummo] = SEC.TEXT_LINE[sec]$
+	$ELSE$
+$		// OsLinkSectionの場合
+
+$		// 配置するセクション情報の生成
+		$numls = numls + 1$
+		$LNKSEC.MEMREG[numls] = memreg$
+		$LNKSEC.SECTION[numls] = UNESCSTR(SEC.SECTION[sec])$
+	$END$
+	$SEC_LIST = APPEND(SEC_LIST, sec)$
+$END$
+
+$
+$  OsLinkSection定義と同等の機能を提供
+$  第1引数 セクション名
+$  第3引数 メモリリージョン
+$
+$FUNCTION LNK_SEC$
+	$section = ARGV[1]$
+	$memreg = ARGV[2]$
+
+	$numls = numls + 1$
+	$LNKSEC.MEMREG[numls] = memreg$
+	$LNKSEC.SECTION[numls] = section$
+$END$
+
+$
+$  保護ドメイン毎の標準セクションに関する情報の生成
+$
+$FOREACH domid DOMLIST_ALL$
+	$FOREACH dsec DSEC.ORDER_LIST$
+$		// メモリオブジェクト情報の生成
+		$nummo = nummo + 1$
+		$MO.TYPE[nummo] = TOPPERS_ATTSEC$
+		$MO.LINKER[nummo] = 1$
+		$MO.OSAPID[nummo] = domid$
+		$IF DSEC.MEMREG[dsec] == 1$
+			$MO.MEMREG[nummo] = STANDARD_ROM$
+		$ELSE$
+			$MO.MEMREG[nummo] = STANDARD_RAM$
+		$END$
+		$MO.SECTION[nummo] = FORMAT("%s_%s", DSEC.SECTION[dsec], OSAP.LABEL[domid])$
+		$MO.MEMATR[nummo] = DSEC.MEMATR[dsec]$
+
+		$domptn = DEFAULT_ACPTN[domid]$
+		$MO.ACPTN1[nummo] = domptn$
+		$MO.ACPTN2[nummo] = domptn$
+	$END$
+$END$
+
+$
+$  OsMemoryAreaで登録されたセクションに関する情報の生成
+$
+$FOREACH mem MEM.ORDER_LIST$
+$	// mematrが（［TA_NOWRITE|TA_NOREAD|TA_EXEC|TA_MEMINI|TA_MEMPRSV|TA_UNCACHE|TA_IODEV］）でない場合
+$	// mematrにTA_MEMPRSVを指定しないかTA_MEMINIを指定した場合（TA_RSATR）
+	$IF (MEM.MEMATR[mem] & ~(TA_NOWRITE|TA_NOREAD|TA_EXEC|TA_MEMINI|TA_MEMPRSV|TA_UNCACHE|TA_IODEV|TARGET_MEMATR)) != 0
+		|| (MEM.MEMATR[mem] & (TA_MEMINI|TA_MEMPRSV)) != TA_MEMPRSV$
+		$ERROR MEM.TEXT_LINE[mem]$$FORMAT(_("illegal attribute(%1%) of OsMemoryArea(%2%)"), MEM.MEMATR[mem], mem)$$END$
+	$END$
+
+$	// sizeが0の場合
+	$IF MEM.SIZE[mem] == 0$
+		$ERROR MEM.TEXT_LINE[mem]$$FORMAT(_("OsMemoryAreaSize of OsMemoryArea(%2%) must not be zero"), MEM.SIZE[mem], mem)$$END$
+	$END$
+
+$	// ターゲット依存のエラーチェック
+	$IF ISFUNCTION("HOOK_ERRORCHECK_MEM")$
+		$HOOK_ERRORCHECK_MEM(mem)$
+	$END$
+
+$	// メモリオブジェクト情報の生成
+	$nummo = nummo + 1$
+	$MO.TYPE[nummo] = TOPPERS_ATTMEM$
+	$MO.BASE[nummo] = MEM.BASE[mem]$
+	$MO.SIZE[nummo] = MEM.SIZE[mem]$
+	$MO.LINKER[nummo] = 0$
+	$IF EQ(MEM.OSAPID[mem], "")$
+		$MO.OSAPID[nummo] = TDOM_NONE$
+	$ELSE$
+		$MO.OSAPID[nummo] = MEM.OSAPID[mem]$
+	$END$
+	$MO.MEMATR[nummo] = MEM.MEMATR[mem]$
+
+	$domptn = DEFAULT_ACPTN[MO.OSAPID[nummo]]$
+	$MO.ACPTN1[nummo] = domptn$
+	$MO.ACPTN2[nummo] = domptn$
+	$MO.TEXT_LINE[nummo] = MEM.TEXT_LINE[mem]$
+$END$
+
+$FOREACH moid RANGE(1, nummo)$
+	$IF MO.OSAPID[moid] != TDOM_KERNEL && MO.OSAPID[moid] != TDOM_NONE &&
+		OSAP.TRUSTED[MO.OSAPID[moid]]$
+		$MO.OSAPID[moid] = TDOM_KERNEL$
+	$END$
+$END$
+
+$ =====================================================================
+$ HRP2からの移植ここまで
+$ =====================================================================
+
+
+$ =====================================================================
+$ Os_Cfg_tmp.hの生成 Os_Cfg.hと差分がある場合Makefile内Os_Cfg.hへコピー
+$ =====================================================================
+
+$TRACE("OUTPUT FILES")$
+
+$FILE "Os_Cfg_tmp.h"$
+/* Os_Cfg.h */$NL$
+#ifndef TOPPERS_OS_CFG_H$NL$
+#define TOPPERS_OS_CFG_H$NL$
+$NL$
+
+/****** Scalability Class ******/$NL$$NL$
+
+#define CFG_USE_SCALABILITYCLASS3$NL$
+$NL$
+
+/****** Object OS ******/$NL$$NL$
+$IF OS.STACKMONITORING[1]$
+	#define CFG_USE_STACKMONITORING$NL$
+$END$
+
+$IF OS.GETSERVICEID[1]$
+	#define CFG_USE_GETSERVICEID$NL$
+$END$
+
+$IF OS.PARAMETERACCESS[1]$
+	#define CFG_USE_PARAMETERACCESS$NL$
+$END$
+
+$USE_HOOK = 0$
+
+$NL$
+/****** Object HOOK ******/$NL$$NL$
+$IF HOOK.STARTUPHOOK[1]$
+	#define CFG_USE_SYSTEM_STARTUPHOOK$NL$
+	$USE_HOOK = 1$
+$END$
+
+$IF HOOK.SHUTDOWNHOOK[1]$
+	#define CFG_USE_SYSTEM_SHUTDOWNHOOK$NL$
+	$USE_HOOK = 1$
+$END$
+
+$IF HOOK.PRETASKHOOK[1]$
+	#define CFG_USE_PRETASKHOOK$NL$
+	$USE_HOOK = 1$
+$END$
+
+$IF HOOK.POSTTASKHOOK[1]$
+	#define CFG_USE_POSTTASKHOOK$NL$
+	$USE_HOOK = 1$
+$END$
+
+$IF HOOK.ERRORHOOK[1]$
+	#define CFG_USE_SYSTEM_ERRORHOOK$NL$
+	$USE_HOOK = 1$
+$END$
+
+$IF HOOK.PROTECTIONHOOK[1]$
+	#define CFG_USE_PROTECTIONHOOK$NL$
+	$USE_HOOK = 1$
+$END$
+
+$use_osap_startuphook = 0$
+$FOREACH osapid OSAP.ID_LIST$
+	$IF OSAP.STARTUPHOOK[osapid]$
+		$use_osap_startuphook = 1$
+	$END$
+$END$
+
+$IF use_osap_startuphook$
+	#define CFG_USE_OSAP_STARTUPHOOK$NL$
+	$USE_HOOK = 1$
+$END$
+
+$use_osap_shutdownhook = 0$
+$FOREACH osapid OSAP.ID_LIST$
+	$IF OSAP.SHUTDOWNHOOK[osapid]$
+		$use_osap_shutdownhook = 1$
+	$END$
+$END$
+
+$IF use_osap_shutdownhook$
+	#define CFG_USE_OSAP_SHUTDOWNHOOK$NL$
+	$USE_HOOK = 1$
+$END$
+
+$use_osap_errorhook = 0$
+$FOREACH osapid OSAP.ID_LIST$
+	$IF OSAP.ERRORHOOK[osapid]$
+		$use_osap_errorhook = 1$
+	$END$
+$END$
+
+$IF use_osap_errorhook$
+	#define CFG_USE_OSAP_ERRORHOOK$NL$
+	$USE_HOOK = 1$
+$END$
+
+#if defined(CFG_USE_SYSTEM_STARTUPHOOK) || defined(CFG_USE_OSAP_STARTUPHOOK)$NL$
+#define CFG_USE_STARTUPHOOK$NL$
+#endif$NL$
+
+#if defined(CFG_USE_SYSTEM_SHUTDOWNHOOK) || defined(CFG_USE_OSAP_SHUTDOWNHOOK)$NL$
+#define CFG_USE_SHUTDOWNHOOK$NL$
+#endif$NL$
+
+#if defined(CFG_USE_SYSTEM_ERRORHOOK) || defined(CFG_USE_OSAP_ERRORHOOK)$NL$
+#define CFG_USE_ERRORHOOK$NL$
+#endif$NL$
+
+$NL$
+#endif /* TOPPERS_OS_CFG_H */$NL$
+
+
+$ =====================================================================
+$ Os_Lcfg.hの生成
+$ =====================================================================
+
+$FILE "Os_Lcfg.h"$
+/* Os_Lcfg.h */$NL$
+#ifndef TOPPERS_OS_LCFG_H$NL$
+#define TOPPERS_OS_LCFG_H$NL$
+$NL$
+
+$
+$ オブジェクト数マクロの出力
+$
+#define TNUM_ALARM				UINT_C($LENGTH(ALM.ID_LIST)$)$NL$
+#define TNUM_COUNTER			UINT_C($LENGTH(CNT.ID_LIST)$)$NL$
+#define TNUM_HARDCOUNTER		UINT_C($LENGTH(HWCNT.ID_LIST)$)$NL$
+#define TNUM_ISR2				UINT_C($LENGTH(ISR2.ID_LIST)$)$NL$
+#define TNUM_STD_RESOURCE		UINT_C($LENGTH(STDRES.ID_LIST)$)$NL$
+#define TNUM_TASK				UINT_C($LENGTH(TSK.ID_LIST)$)$NL$
+#define TNUM_EXTTASK			UINT_C($tnum_exttask$)$NL$
+#define TNUM_APP_MODE			UINT_C($LENGTH(APP.ID_LIST)$)$NL$
+#define TNUM_SCHEDULETABLE		UINT_C($LENGTH(SCHTBL.ID_LIST)$)$NL$
+#define TNUM_IMPLSCHEDULETABLE	UINT_C($tnum_implscheduletable$)$NL$
+#define	TNUM_TFN				UINT_C($LENGTH(TFN.ID_LIST)$)$NL$
+#define TNUM_OSAP				UINT_C($LENGTH(OSAP.ID_LIST)$)$NL$
+$NL$
+
+/*$NL$
+$SPC$*  Default Definitions of Trace Log Macros$NL$
+$SPC$*/$NL$
+$NL$
+#ifndef TOPPERS_ENABLE_TRACE$NL$
+#ifndef LOG_USER_MARK$NL$
+#define LOG_USER_MARK(str)$NL$
+#endif /* LOG_USER_MARK */$NL$
+#endif /* TOPPERS_ENABLE_TRACE */$NL$
+$NL$
+ /****** Object TASK ******/$NL$$NL$
+
+$ タスクのIDの出力
+$FOREACH tskid TSK.ID_LIST$
+	#define $tskid$$TAB$UINT_C($TSK.ID[tskid]$)$NL$
+$END$
+$NL$
+
+ /****** Object COUNTER ******/$NL$$NL$
+
+$ カウンタIDの出力
+
+$FOREACH cntid CNT.ID_LIST$
+	#define $cntid$$TAB$UINT_C($CNT.ID[cntid]$)$NL$
+$END$
+$NL$
+
+$ カウンタオブジェクトのOS定数の出力
+$FOREACH cntid CNT.ID_LIST$
+	#define OSMAXALLOWEDVALUE_$cntid$$TAB$((TickType) $+CNT.MAXALLOWED[cntid]$)$NL$
+	#define OSTICKSPERBASE_$cntid$$TAB$((TickType) $+CNT.TICKSPERBASE[cntid]$)$NL$
+	#define OSMINCYCLE_$cntid$$TAB$((TickType) $+CNT.MINCYCLE[cntid]$)$NL$
+$END$
+$NL$
+
+$ ティック値から時間への変換マクロ(PhysicalTimeTypeの型はfloat,doubleのいずれかと想定)
+$FOREACH cntid HWCNT.ID_LIST$
+	$IF LENGTH(CNT.NSPERTICK[cntid])$
+		#define OS_TICKS2SEC_$cntid$(tick)$TAB$(((PhysicalTimeType)$CNT.NSPERTICK[cntid]$) * (tick) / 1000000000U)$NL$
+		#define OS_TICKS2MS_$cntid$(tick)$TAB$(((PhysicalTimeType)$CNT.NSPERTICK[cntid]$) * (tick) / 1000000U)$NL$
+		#define OS_TICKS2US_$cntid$(tick)$TAB$(((PhysicalTimeType)$CNT.NSPERTICK[cntid]$) * (tick) / 1000U)$NL$
+		#define OS_TICKS2NS_$cntid$(tick)$TAB$(((PhysicalTimeType)$CNT.NSPERTICK[cntid]$) * (tick))$NL$
+	$END$
+	$NL$
+$END$
+
+ /****** Object ALARM ******/$NL$$NL$
+
+$ アラームIDの出力
+$FOREACH almid ALM.ID_LIST$
+	#define $almid$$TAB$UINT_C($ALM.ID[almid]$)$NL$
+$END$
+$NL$
+
+ /****** Object SCHEDULETABLE ******/$NL$$NL$
+
+$ スケジュールテーブルIDの出力
+$FOREACH schtblid SCHTBL.ID_LIST$
+	#define $schtblid$$TAB$UINT_C($SCHTBL.ID[schtblid]$)$NL$
+$END$
+$NL$
+
+ /****** Object RESOURCE ******/$NL$$NL$
+
+$ リソースIDの出力
+$FOREACH resid RES.ID_LIST$
+	#define $resid$$TAB$UINT_C($RES.ID[resid]$)$NL$
+$END$
+$NL$
+
+ /****** Object ISR ******/$NL$$NL$
+
+$ ISRのIDの出力
+$FOREACH isrid ISR.ID_LIST$
+	#define $isrid$$TAB$UINT_C($ISR.ID[isrid]$)$NL$
+$END$
+$NL$
+
+ /****** Object APPMODE ******/$NL$$NL$
+
+$FOREACH appid APP.ID_LIST$
+	#define $appid$$TAB$UINT_C($APP.ID[appid]$)$NL$
+$END$
+$NL$
+
+$ イベントの出力
+ /****** Object EVENT ******/$NL$
+$FOREACH evtid EVT.ID_LIST$
+	#define $evtid$$TAB$UINT_C($FORMAT("0x%08x", +EVT.CALC_MASK[evtid])$)$NL$
+$END$
+$NL$
+
+$ 信頼関数のIDの出力
+ /****** Object Trusted Function ******/$NL$$NL$
+$FOREACH tfnid TFN.ID_LIST$
+	#define $tfnid$$TAB$UINT_C($TFN.ID[tfnid]$)$NL$
+$END$
+$NL$
+
+$ OSAPのIDの出力
+ /****** Object OSApplication ******/$NL$
+$FOREACH osapid OSAP.ID_LIST$
+	#define $osapid$ UINT_C($OSAP.ID[osapid]$)$NL$
+$END$
+$NL$
+
+$NL$
+
+
+$ =====================================================================
+$ Os_Lcfg.cの生成
+$ =====================================================================
+$FILE "Os_Lcfg.c"$
+
+/* Os_Lcfg.c */$NL$
+#include "kernel/kernel_int.h"$NL$
+#include "Os_Lcfg.h"$NL$
+$IF LENGTH(IOC.ID_LIST)$
+	#include "Ioc.h"$NL$
+	$NL$
+$END$
+$NL$
+#ifndef TOPPERS_EMPTY_LABEL$NL$
+#define TOPPERS_EMPTY_LABEL(x, y) x y[0]$NL$
+#endif$NL$
+$NL$
+
+$
+$  トレースログマクロのデフォルト定義
+$
+/*$NL$
+$SPC$*  Default Definitions of Trace Log Macros$NL$
+$SPC$*/$NL$
+$NL$
+#ifndef LOG_ISR_ENTER$NL$
+#define LOG_ISR_ENTER(isrid)$NL$
+#endif /* LOG_ISR_ENTER */$NL$
+$NL$
+#ifndef LOG_ISR_LEAVE$NL$
+#define LOG_ISR_LEAVE(isrid)$NL$
+#endif /* LOG_ISR_LEAVE */$NL$
+$NL$
+
+$
+$  インクルードディレクティブ（#include）
+$
+/*$NL$
+$SPC$*  Include Directives (#include)$NL$
+$SPC$*/$NL$
+$NL$
+$INCLUDES$
+$NL$
+
+$
+$ オブジェクト数変数の出力
+$
+const AlarmType					tnum_alarm				= TNUM_ALARM;$NL$
+const CounterType				tnum_counter			= TNUM_COUNTER;$NL$
+const CounterType				tnum_hardcounter		= TNUM_HARDCOUNTER;$NL$
+const ISRType					tnum_isr2				= TNUM_ISR2;$NL$
+const ResourceType				tnum_stdresource		= TNUM_STD_RESOURCE;$NL$
+const TaskType					tnum_task				= TNUM_TASK;$NL$
+const TaskType					tnum_exttask			= TNUM_EXTTASK;$NL$
+const AppModeType				tnum_appmode			= TNUM_APP_MODE;$NL$
+const ScheduleTableType			tnum_scheduletable		= TNUM_SCHEDULETABLE;$NL$
+const ScheduleTableType			tnum_implscheduletable	= TNUM_IMPLSCHEDULETABLE;$NL$
+const TrustedFunctionIndexType	tnum_tfn				= TNUM_TFN;$NL$
+const ApplicationType			tnum_osap				= TNUM_OSAP;$NL$
+$NL$
+
+$
+$  タスク
+$
+$NL$
+ /****** Object TASK ******/$NL$
+$NL$
+
+$ =====================================================================
+$ 以下はHRP2からの移植
+$ =====================================================================
+$
+$  システムスタック領域の確保関数
+$
+$IF !ISFUNCTION("ALLOC_SSTACK")$
+$FUNCTION ALLOC_SSTACK$
+	$IF !EQ(ARGV[3], "")$
+		$ARGV[3]$$SPC$
+	$END$
+	StackType $ARGV[1]$[COUNT_STK_T($ARGV[2]$)];$NL$
+$END$
+$END$
+
+$  システムスタックサイズが，0であるか，ターゲット定義の最小値
+$  （TARGET_MIN_SSTKSZ）よりも小さい場合のエラーチェック関数
+$FUNCTION CHECK_MIN_SSTKSZ$
+	$IF ARGV[1] == 0 || (TARGET_MIN_SSTKSZ && ARGV[1] < TARGET_MIN_SSTKSZ)$
+		$ERROR TSK.TEXT_LINE[tskid]$$FORMAT(_("%1%(%2%) of OsTask(%3%) is too small"), ARGV[2], ARGV[1], tskid)$$END$
+	$END$
+$END$
+
+$ システムスタック領域の生成とそれに関するエラーチェック
+$FOREACH tskid TSK.ID_LIST$
+	$IF OSAP.TRUSTED[TSK.OSAPID[tskid]]$
+$		// 信頼タスクの場合の処理
+
+$		// sstkが省略されておらず，NULLでない場合
+		$IF LENGTH(TSK.SSTK[tskid]) && !EQ(TSK.SSTK[tskid],"NULL")$
+			$ERROR TSK.TEXT_LINE[tskid]$$FORMAT(_("OsTaskSystemStackStartAddress of trusted OsTask(%1%) must not define"), tskid)$$END$
+		$END$
+
+$		// NULL(0)か0を指定した場合，スタックサイズのデフォルト設定
+		$IF !LENGTH(TSK.STKSZ[tskid]) || TSK.STKSZ[tskid] == 0$
+			$TSK.STKSZ[tskid] = DEFAULT_TASKSTKSZ$
+		$END$
+
+		$IF EQ(TSK.STK[tskid], "NULL")$
+$			// stkがNULLの場合の処理
+
+			$IF LENGTH(TSK.SSTKSZ[tskid]) && TSK.SSTKSZ[tskid] > 0$
+$				// sstkszが省略されていない場合の処理
+
+$				// システムスタック領域のサイズを求める（エラーチェックに
+$				// 使うため，エラーチェックの前に求めておく）
+				$sstksz = VALUE(FORMAT("(%1%) + (%2%)",
+									TSK.STKSZ[tskid], TSK.SSTKSZ[tskid]),
+								TSK.STKSZ[tskid] + TSK.SSTKSZ[tskid])$
+
+$				// stksz+sstkszがターゲット定義の最小値よりも小さい場合
+				$CHECK_MIN_SSTKSZ(sstksz, "OsTaskStackSize+OsTaskSystemStackSize")$
+			$ELSE$
+$				// sstkszが省略されている場合の処理
+
+$				// stkszが，ターゲット定義の最小値よりも小さい場合
+				$CHECK_MIN_SSTKSZ(TSK.STKSZ[tskid], "OsTaskStackSize")$
+
+$				// システムスタック領域のサイズを求める
+				$sstksz = TSK.STKSZ[tskid]$
+			$END$
+
+			$IF TSK.EXTENDED[tskid]$
+$				// システムスタック領域の確保
+				$ALLOC_SSTACK(CONCAT("_kernel_sstack_", tskid), sstksz, "")$
+				$TSK.TINIB_SSTKSZ[tskid] = FORMAT("ROUND_STK_T(%1%)", sstksz)$
+				$TSK.TINIB_SSTK[tskid] = CONCAT("_kernel_sstack_", tskid)$
+			$ELSE$
+				$TSK.TINIB_SSTK[tskid] = CONCAT("_kernel_shared_sstack_", +TSK.PRIORITY[tskid])$
+				$TSK.SHARED_SSTK_ID[tskid] = TSK.PRIORITY[tskid]$
+$ 				// 基本タスク用の共有スタックのサイズを求める
+				$IF !LENGTH(shared_sstack_size[TSK.PRIORITY[tskid]])
+						|| shared_sstack_size[TSK.PRIORITY[tskid]] < sstksz$
+					$shared_sstack_size[TSK.PRIORITY[tskid]] = sstksz$
+				$END$
+			$END$
+		$ELSE$
+$			// stkがNULLでない場合の処理
+
+$			// stkszが，ターゲット定義の最小値よりも小さい場合
+			$CHECK_MIN_SSTKSZ(TSK.STKSZ[tskid], "OsTaskStackSize")$
+
+$			// stkszがスタック領域のサイズの制約を満たしていない場合
+			$IF CHECK_STKSZ_ALIGN
+							&& (TSK.STKSZ[tskid] & (CHECK_STKSZ_ALIGN - 1))$
+				$ERROR TSK.TEXT_LINE[tskid]$$FORMAT(_("OsTaskStackSize(%1%) of OsTask(%2%) is not aligned"), TSK.STKSZ[tskid], tskid)$$END$
+			$END$
+
+$			// sstkszが省略されておらず，0でない場合
+			$IF LENGTH(TSK.SSTKSZ[tskid]) && (TSK.SSTKSZ[tskid] != 0)$
+				$ERROR TSK.TEXT_LINE[tskid]$
+						$FORMAT(_("OsTaskSystemStackSize(%1%) of OsTask(%2%) must be zero because OsTaskStackStartAddress defined"), TSK.SSTKSZ[tskid], tskid)$$END$
+			$END$
+
+			$TSK.TINIB_SSTKSZ[tskid] = TSK.STKSZ[tskid]$
+			$TSK.TINIB_SSTK[tskid] = TSK.STK[tskid]$
+		$END$
+	$ELSE$
+$		// 非信頼タスクの場合
+		$IF !LENGTH(TSK.SSTK[tskid]) || EQ(TSK.SSTK[tskid], "NULL")$
+$			// sstkが省略されているか，NULLの場合の処理
+
+			$IF LENGTH(TSK.SSTKSZ[tskid])$
+$				// sstkszが省略されていない場合の処理
+
+$				// NULL(0)か0を指定した場合，タスクスタックサイズのデフォルト設定
+				$IF TSK.SSTKSZ[tskid] == 0$
+					$TSK.SSTKSZ[tskid] = DEFAULT_TASKSYSTEMSTKSZ$
+				$END$
+
+$				// sstkszが0か，ターゲット定義の最小値よりも小さい場合
+				$CHECK_MIN_SSTKSZ(TSK.SSTKSZ[tskid], "OsTaskSystemStackSize")$
+
+$				// システムスタック領域のサイズを求める
+				$sstksz = TSK.SSTKSZ[tskid]$
+			$ELSE$
+$				// sstkszが省略されている場合の処理
+
+$				// システムスタック領域のサイズを求める
+				$sstksz = DEFAULT_TASKSYSTEMSTKSZ$
+			$END$
+
+			$IF TSK.EXTENDED[tskid]$
+$				// システムスタック領域の確保
+				$TSK.TINIB_SSTKSZ[tskid] = FORMAT("ROUND_STK_T(%1%)", sstksz)$
+				$ALLOC_SSTACK(CONCAT("_kernel_sstack_", tskid), TSK.TINIB_SSTKSZ[tskid], "")$
+				$TSK.TINIB_SSTK[tskid] = CONCAT("_kernel_sstack_", tskid)$
+			$ELSE$
+				$TSK.TINIB_SSTK[tskid] = CONCAT("_kernel_shared_sstack_", +TSK.PRIORITY[tskid])$
+				$TSK.SHARED_SSTK_ID[tskid] = TSK.PRIORITY[tskid]$
+$ 				// 基本タスク用の共有スタックのサイズを求める
+				$IF !LENGTH(shared_sstack_size[TSK.PRIORITY[tskid]])
+						|| shared_sstack_size[TSK.PRIORITY[tskid]] < sstksz$
+					$shared_sstack_size[TSK.PRIORITY[tskid]] = sstksz$
+				$END$
+			$END$
+		$ELSE$
+$			// sstkが省略されておらず，NULLでない場合の処理
+
+$			// NULL(0)か0を指定した場合，タスクスタックサイズのデフォルト設定
+			$IF !LENGTH(TSK.SSTKSZ[tskid]) || TSK.SSTKSZ[tskid] == 0$
+				$TSK.SSTKSZ[tskid] = DEFAULT_TASKSYSTEMSTKSZ$
+			$END$
+
+$			// sstkszが0か，ターゲット定義の最小値よりも小さい場合
+			$CHECK_MIN_SSTKSZ(TSK.SSTKSZ[tskid], "OsTaskSystemStackSize")$
+
+$			// sstkszがスタック領域のサイズの制約を満たしていない場合
+			$IF CHECK_STKSZ_ALIGN
+							&& (TSK.SSTKSZ[tskid] & (CHECK_STKSZ_ALIGN - 1))$
+				$ERROR TSK.TEXT_LINE[tskid]$$FORMAT(_("OsTaskSystemStackSize(%1%) of OsTask(%2%) is not aligned"), TSK.SSTKSZ[tskid], tskid)$$END$
+			$END$
+
+			$TSK.TINIB_SSTKSZ[tskid] = TSK.SSTKSZ[tskid]$
+			$TSK.TINIB_SSTK[tskid] = TSK.SSTK[tskid]$
+		$END$
+	$END$
+$END$
+
+$FOREACH tskid TSK.ID_LIST$
+	$IF LENGTH(TSK.SHARED_SSTK_ID[tskid])$
+		$TSK.TINIB_SSTKSZ[tskid] = FORMAT("ROUND_STK_T(%1%)", shared_sstack_size[TSK.PRIORITY[tskid]])$
+	$END$
+$END$
+
+$FOREACH tskpri RANGE(TMIN_TPRI, TMAX_TPRI)$
+	$IF LENGTH(shared_sstack_size[tskpri])$
+		$ALLOC_SSTACK(CONCAT("_kernel_shared_sstack_", +tskpri), shared_sstack_size[tskpri], "")$
+	$END$
+$END$
+$NL$
+
+$ ユーザスタック領域の生成とそれに関するエラーチェック
+$FOREACH tskid TSK.ID_LIST$
+	$IF OSAP.TRUSTED[TSK.OSAPID[tskid]]$
+$		// 信頼タスクの場合の処理
+		$TSK.TINIB_USTKSZ[tskid] = VALUE("0U", 0)$
+		$TSK.TINIB_USTK[tskid] = "NULL"$
+	$ELSE$
+$		// 非信頼タスクの場合の処理
+
+$		// MO生成するかのフラグ
+		$create_mo = 1$
+
+$		// 未指定か，NULL(0)か0を指定した場合，タスクスタックサイズのデフォルト設定
+		$IF !LENGTH(TSK.STKSZ[tskid]) || TSK.STKSZ[tskid] == 0$
+			$TSK.STKSZ[tskid] = DEFAULT_TASKSTKSZ$
+		$END$
+
+$		// stkszが0か，ターゲット定義の最小値（TARGET_MIN_USTKSZ）よりも
+$		// 小さい場合
+		$IF TSK.STKSZ[tskid] == 0 || (TARGET_MIN_USTKSZ &&
+							TSK.STKSZ[tskid] < TARGET_MIN_USTKSZ)$
+			$ERROR TSK.TEXT_LINE[tskid]$$FORMAT(_("OsTaskStackSize(%1%) of OsTask(%2%) is too small"), TSK.STKSZ[tskid], tskid)$$END$
+		$END$
+
+		$IF EQ(TSK.STK[tskid],"NULL")$
+$			// stkがNULLの場合の処理
+
+$			// ユーザスタック領域の確保
+			$IF TSK.EXTENDED[tskid]$
+				$ALLOC_USTACK(tskid, TSK.STKSZ[tskid])$
+			$ELSE$
+				$TSK.TINIB_USTK[tskid] = CONCAT("_kernel_shared_ustack_", +TSK.PRIORITY[tskid])$
+				$TSK.SHARED_USTK_ID[tskid] = TSK.PRIORITY[tskid]$
+$ 				// 基本タスク用の共有スタックのサイズを求める
+				$IF !LENGTH(shared_ustack_size[TSK.PRIORITY[tskid]])
+						|| shared_ustack_size[TSK.PRIORITY[tskid]] < TSK.STKSZ[tskid]$
+					$shared_ustack_size[TSK.PRIORITY[tskid]] = TSK.STKSZ[tskid]$
+				$END$
+			$END$
+		$ELSE$
+$			// stkがNULLでないの場合の処理
+
+$			// stkszがスタック領域のサイズの制約を満たしていない場合
+			$IF CHECK_USTKSZ_ALIGN
+							&& (TSK.STKSZ[tskid] & (CHECK_USTKSZ_ALIGN - 1))$
+				$ERROR TSK.TEXT_LINE[tskid]$$FORMAT(_("OsTaskStackSize(%1%) of OsTask(%2%) is not aligned"), TSK.STKSZ[tskid], tskid)$$END$
+			$END$
+
+			$TSK.TINIB_USTKSZ[tskid] = TSK.STKSZ[tskid]$
+			$TSK.TINIB_USTK[tskid] = TSK.STK[tskid]$
+
+$			// 共有するユーザスタック領域の検出
+			$FOREACH moid MO_USTACK_LIST2$
+				$IF MO.OSAPID[moid] == TSK.OSAPID[tskid] && 
+						EQ(MO.BASE[moid], TSK.STK[tskid]) && 
+							EQ(MO.SIZE[moid], TSK.STKSZ[tskid])$
+					$create_mo = 0$
+					$TSK.USTACK_MO[tskid] = moid$
+				$END$
+			$END$
+		$END$
+
+		$IF LENGTH(TSK.SHARED_USTK_ID[tskid])$
+			$IF LENGTH(shared_ustack_mo[TSK.SHARED_USTK_ID[tskid]])$
+				$create_mo = 0$
+				$TSK.USTACK_MO[tskid] = shared_ustack_mo[TSK.SHARED_USTK_ID[tskid]]$
+			$END$
+		$END$
+
+		$IF create_mo$
+$			// メモリオブジェクト情報の生成
+			$nummo = nummo + 1$
+			$MO.TYPE[nummo] = TOPPERS_USTACK$
+			$MO.TSKID[nummo] = tskid$
+			$MO.STKORDER[nummo] = tskid$
+			$IF !EQ(TSK.STK[tskid],"NULL")$
+				$MO.BASE[nummo] = TSK.STK[tskid]$
+				$MO.LINKER[nummo] = 0$
+				$MO.SIZE[nummo] = TSK.TINIB_USTKSZ[tskid]$
+				$MO_USTACK_LIST2 = APPEND(MO_USTACK_LIST2, nummo)$
+			$ELSE$
+				$MO.LINKER[nummo] = 1$
+				$MO.MEMREG[nummo] = STANDARD_RAM$
+				$IF LENGTH(TSK.SHARED_USTK_ID[tskid])$
+					$MO.SECTION[nummo] = SECTION_SHARED_USTACK(TSK.SHARED_USTK_ID[tskid])$
+					$shared_ustack_mo[TSK.SHARED_USTK_ID[tskid]] = nummo$
+				$ELSE$
+					$MO.SECTION[nummo] = SECTION_USTACK(tskid)$
+					$MO.SIZE[nummo] = TSK.STKSZ[tskid]$
+				$END$
+				$MO_USTACK_LIST = APPEND(MO_USTACK_LIST, nummo)$
+			$END$
+			$MO.OSAPID[nummo] = TSK.OSAPID[tskid]$
+			$MO.MEMATR[nummo] = TARGET_MEMATR_USTACK$
+
+			$domptn = DEFAULT_ACPTN[MO.OSAPID[nummo]]$
+			$MO.ACPTN1[nummo] = domptn$
+			$MO.ACPTN2[nummo] = domptn$
+			$MO.TEXT_LINE[nummo] = TSK.TEXT_LINE[tskid]$
+			$TSK.USTACK_MO[tskid] = nummo$
+		$END$
+	$END$
+$END$
+
+$ =====================================================================
+$ HRP2からの移植ここまで
+$ =====================================================================
+
+$ OSAPCBの出力
+$IF LENGTH(OSAP.ID_LIST)$
+	OSAPCB osapcb_table[TNUM_OSAP];$NL$
+$ELSE$
+	TOPPERS_EMPTY_LABEL(OSAPCB, osapcb_table);$NL$
+$END$
+
+$FOREACH tskid TSK.ID_LIST$
+	$IF LENGTH(TSK.SHARED_USTK_ID[tskid])$
+		$TSK.TINIB_USTKSZ[tskid] = shared_ustack_size[TSK.PRIORITY[tskid]]$
+		$MO.SIZE[TSK.USTACK_MO[tskid]] = TSK.TINIB_USTKSZ[tskid]$
+	$END$
+$END$
+
+$FOREACH tskpri RANGE(TMIN_TPRI, TMAX_TPRI)$
+	$IF LENGTH(shared_ustack_size[tskpri])$
+		$shared_ustack_size[tskpri] = CONCAT(USTACK_ALIGN_SIZE(shared_ustack_size[tskpri]), "U")$
+		$ALLOC_SHARED_USTACK(CONCAT("_kernel_shared_ustack_", +tskpri), tskpri, shared_ustack_size[tskpri])$
+	$END$
+$END$
+
+$NL$
+
+$ TCBの出力
+$IF LENGTH(TSK.ID_LIST)$
+	TCB tcb_table[TNUM_TASK];$NL$
+	$NL$
+$ELSE$
+	TOPPERS_EMPTY_LABEL(TCB, tcb_table);$NL$
+$END$
+
+$
+$ カウンタの出力
+$
+$NL$
+ /****** Object COUNTER ******/$NL$
+$NL$
+
+$IF LENGTH(CNT.ID_LIST)$
+	const CNTINIB cntinib_table[TNUM_COUNTER] = {$NL$
+	$JOINEACH cntid CNT.ID_LIST ",\n"$
+		$TAB${ $CNT.MAXALLOWED[cntid]$,$SPC$
+		($CNT.MAXALLOWED[cntid]$ * 2U) + 1U,$SPC$
+		$CNT.TICKSPERBASE[cntid]$,$SPC$
+		$CNT.MINCYCLE[cntid]$,$SPC$
+		&(osapcb_table[$CNT.OSAPID[cntid]$]),$SPC$
+		$FORMAT("0x%08xU", +CNT.ACSBTMP[cntid])$ }
+	$END$
+	$NL$
+	};$NL$
+	$NL$
+
+	CNTCB cntcb_table[TNUM_COUNTER];$NL$
+$ELSE$
+	TOPPERS_EMPTY_LABEL(const CNTINIB, cntinib_table);$NL$
+	TOPPERS_EMPTY_LABEL(CNTCB, cntcb_table);$NL$
+$END$
+
+$ ハードウェアカウンタポインタテーブル定義の出力
+$IF LENGTH(HWCNT.ID_LIST)$
+	const HWCNTINIB hwcntinib_table[TNUM_HARDCOUNTER] = $NL$
+	{$NL$
+	$JOINEACH cntid HWCNT.ID_LIST ",\n"$
+		$TAB${$NL$
+			$TAB$$TAB$&init_hwcounter_$cntid$,$NL$
+			$TAB$$TAB$&start_hwcounter_$cntid$,$NL$
+			$TAB$$TAB$&stop_hwcounter_$cntid$,$NL$
+			$TAB$$TAB$&set_hwcounter_$cntid$,$NL$
+			$TAB$$TAB$&get_hwcounter_$cntid$,$NL$
+			$TAB$$TAB$&cancel_hwcounter_$cntid$,$NL$
+			$TAB$$TAB$&trigger_hwcounter_$cntid$,$NL$
+			$TAB$$TAB$&int_clear_hwcounter_$cntid$,$NL$
+			$TAB$$TAB$&int_cancel_hwcounter_$cntid$,$NL$
+			$TAB$$TAB$&increment_hwcounter_$cntid$,$NL$
+			$TAB$$TAB$$CNT.NSPERTICK[cntid]$$NL$
+		$TAB$}
+	$END$
+	$NL$};$NL$
+
+$ELSE$
+	TOPPERS_EMPTY_LABEL(const HWCNTINIB, hwcntinib_table);$NL$
+$END$
+$NL$
+
+
+$
+$ アラームの出力
+$
+$NL$
+ /****** Object ALARM ******/$NL$
+$NL$
+
+$FOREACH almid ALM.ID_LIST$
+
+$	// タスク起動用のアクション関数
+	$IF EQ(ALM.ALMATR[almid], "ACTIVATETASK")$
+		static void$NL$
+		_activate_alarm_$+almid$(void);$NL$
+		static void$NL$
+		_activate_alarm_$+almid$(void)$NL$
+		{$NL$
+		$TAB$(void) activate_task_action(&(osapcb_table[$ALM.OSAPID[almid]$]), $ALM.TSKID[almid]$);$NL$
+		}$NL$
+
+$	// イベントセット用のアクション関数
+	$ELIF EQ(ALM.ALMATR[almid], "SETEVENT")$
+		static void$NL$
+		_setevent_alarm_$+almid$(void);$NL$
+		static void$NL$
+		_setevent_alarm_$+almid$(void)$NL$
+		{$NL$
+		$TAB$(void) set_event_action(&(osapcb_table[$ALM.OSAPID[almid]$]), $ALM.TSKID[almid]$, $ALM.EVTID[almid]$);$NL$
+		}$NL$
+
+$	// IncrementCounter用のアクション関数
+	$ELIF EQ(ALM.ALMATR[almid], "INCREMENTCOUNTER")$
+		static void$NL$
+		_incrementcounter_alarm_$+almid$(void);$NL$
+		static void$NL$
+		_incrementcounter_alarm_$+almid$(void)$NL$
+		{$NL$
+		$TAB$(void) incr_counter_action(&(osapcb_table[$ALM.OSAPID[almid]$]), $ALM.INCID[almid]$);$NL$
+		}$NL$
+	$END$
+
+	$NL$
+$END$
+
+$ アラームコントロールブロック
+
+$IF LENGTH(ALM.ID_LIST)$
+	const ALMINIB alminib_table[TNUM_ALARM] = {$NL$
+	$JOINEACH almid ALM.ID_LIST ",\n"$
+		$TAB${ &(cntcb_table[$ALM.CNTID[almid]$]),$SPC$
+		$IF EQ(ALM.ALMATR[almid], "ACTIVATETASK")$
+$			// タスク起動用
+			&_activate_alarm_$+almid$,$SPC$
+		$ELIF EQ(ALM.ALMATR[almid], "SETEVENT")$
+$			// イベントセット用
+			&_setevent_alarm_$+almid$,$SPC$
+		$ELIF EQ(ALM.ALMATR[almid], "INCREMENTCOUNTER")$
+$			// IncrementCounter用
+			&_incrementcounter_alarm_$+almid$,$SPC$
+		$END$
+
+		$FORMAT("0x%08xU", +ALM.ASTPTN[almid])$,$SPC$
+		$IF ALM.ASTPTN[almid]$
+			$ALM.ALARMTIME[almid]$,$SPC$
+			$ALM.CYCLETIME[almid]$,$SPC$
+$			// 自動起動属性以外の属性を管理しない
+			$ALM.AUTOSTARTTYPE[almid]$,$SPC$
+		$ELSE$
+			0U, 0U, 0U,$SPC$
+		$END$
+		&(osapcb_table[$ALM.OSAPID[almid]$]),$SPC$
+		$FORMAT("0x%08xU", +ALM.ACSBTMP[almid])$$SPC$}
+	$END$
+	$NL$
+	};$NL$
+	$NL$
+
+	ALMCB	almcb_table[TNUM_ALARM];$NL$
+$ELSE$
+	TOPPERS_EMPTY_LABEL(const ALMINIB, alminib_table);$NL$
+	TOPPERS_EMPTY_LABEL(ALMCB, almcb_table);$NL$
+$END$
+
+
+$
+$ スケジュールテーブルの出力
+$
+$NL$
+ /****** Object SCHEDULETABLE ******/$NL$
+$NL$
+
+$ 各スケジュールテーブルの各満了点のアクション関数と満了点管理ブロックの生成
+$FOREACH schtblid SCHTBL.ID_LIST$
+	/* Object SCHEDULETABLE($schtblid$) */$NL$
+	$NL$
+	$FOREACH exppt_index RANGE(0, LENGTH(SCHTBL.EXPPTINDEX_LIST[schtblid]) - 1)$
+		$expptid = AT(SCHTBL.EXPPTINDEX_LIST[schtblid], exppt_index)$
+		static void$NL$
+		_expire_scheduletable_$+schtblid$_$exppt_index$(void);$NL$
+		static void$NL$
+		_expire_scheduletable_$+schtblid$_$exppt_index$(void)$NL$
+		{$NL$
+$		// タスク起動
+		$FOREACH expptactid EXPPTACT.ID_LIST$
+			$IF EXPPTACT.EXPPTID[expptactid] == expptid && EQ(EXPPTACT.EXPIREATR[expptactid], "ACTIVATETASK")$
+				$TAB$(void) activate_task_action(&(osapcb_table[$SCHTBL.OSAPID[EXPPTACT.SCHTBLID[expptactid]]$]), $EXPPTACT.TSKID[expptactid]$);$NL$
+			$END$
+		$END$
+$		// イベントセット
+		$FOREACH expptactid EXPPTACT.ID_LIST$
+			$IF EXPPTACT.EXPPTID[expptactid] == expptid && EQ(EXPPTACT.EXPIREATR[expptactid], "SETEVENT")$
+				$TAB$(void) set_event_action(&(osapcb_table[$SCHTBL.OSAPID[EXPPTACT.SCHTBLID[expptactid]]$]), $EXPPTACT.TSKID[expptactid]$, $EXPPTACT.EVTID[expptactid]$);$NL$
+			$END$
+		$END$
+		}$NL$
+	$END$
+	$NL$
+	static const SCHTBLEXPPTCB schtblexppt_table_$+schtblid$[$LENGTH(SCHTBL.EXPPTINDEX_LIST[schtblid])$] = {$NL$
+	$JOINEACH exppt_index RANGE(0, LENGTH(SCHTBL.EXPPTINDEX_LIST[schtblid]) - 1) ",\n"$
+		$expptid = AT(SCHTBL.EXPPTINDEX_LIST[schtblid], exppt_index)$
+		$TAB${ $EXPPT.OFFSET[expptid]$, &_expire_scheduletable_$+schtblid$_$exppt_index$ }
+	$END$
+	$NL$
+	};$NL$
+	$NL$
+$END$
+$NL$
+
+$ スケジュールテーブル関連のデータブロックの宣言
+$IF LENGTH(SCHTBL.ID_LIST)$
+	const SCHTBLINIB schtblinib_table[TNUM_SCHEDULETABLE] = {$NL$
+	$JOINEACH schtblid SCHTBL.ID_LIST ",\n"$
+		$TAB${ &(cntcb_table[$SCHTBL.CNTID[schtblid]$]),$SPC$
+		$SCHTBL.DURATIONTICK[schtblid]$,$SPC$
+		$FORMAT("0x%08xU", +SCHTBL.ASTPTN[schtblid])$,$SPC$
+		$IF SCHTBL.ASTPTN[schtblid]$
+			$SCHTBL.AUTOSTARTTYPE[schtblid]$,$SPC$
+			$SCHTBL.STARTTICK[schtblid]$, $SPC$
+		$ELSE$
+			0U, 0U,$SPC$
+		$END$
+		schtblexppt_table_$+schtblid$,$SPC$
+		$IF SCHTBL.REPEAT[schtblid]$
+			TRUE,$SPC$
+		$ELSE$
+			FALSE,$SPC$
+		$END$
+		$LENGTH(SCHTBL.EXPPTINDEX_LIST[schtblid])$U,$SPC$
+		&(osapcb_table[$SCHTBL.OSAPID[schtblid]$]),$SPC$
+		$FORMAT("0x%08xU", +SCHTBL.ACSBTMP[schtblid])$ }
+	$END$
+	$NL$
+	};$NL$
+	$NL$
+	SCHTBLCB schtblcb_table[TNUM_SCHEDULETABLE];$NL$
+$ELSE$
+	TOPPERS_EMPTY_LABEL(const SCHTBLINIB, schtblinib_table);$NL$
+	TOPPERS_EMPTY_LABEL(SCHTBLCB, schtblcb_table);$NL$
+$END$
+
+$NL$
+
+
+$
+$ リソースの出力
+$
+$NL$
+ /****** Object RESOURCE ******/$NL$
+$NL$
+
+$IF LENGTH(STDRES.ID_LIST)$
+	const RESINIB resinib_table[TNUM_STD_RESOURCE] = {$NL$
+	$JOINEACH resid STDRES.ID_LIST ",\n"$
+		$IF RES.CEILPRI[resid] > 0$
+$           タスクのみが扱うリソースの場合
+			$TAB${ $TMAX_TPRI - RES.CEILPRI[resid]$,$SPC$
+		$ELSE$
+$           ISRも扱うリソースの場合
+			$TAB${ $RES.CEILPRI[resid]$,$SPC$
+		$END$
+		$FORMAT("0x%08xU", +RES.ACSBTMP[resid])$ }
+	$END$
+	$NL$
+	};$NL$
+	$NL$
+
+	RESCB rescb_table[TNUM_STD_RESOURCE];$NL$
+$ELSE$
+	TOPPERS_EMPTY_LABEL(const RESINIB, resinib_table);$NL$
+	TOPPERS_EMPTY_LABEL(RESCB, rescb_table);$NL$
+$END$
+
+$NL$
+
+
+$
+$ オブジェクト初期化ルーチン
+$
+$NL$
+void$NL$
+object_initialize(void)$NL$
+{$NL$
+$TAB$osap_initialize();$NL$
+$TAB$interrupt_initialize();$NL$
+$IF LENGTH(STDRES.ID_LIST)$
+$TAB$resource_initialize();$NL$
+$END$
+$TAB$task_initialize();$NL$
+$IF LENGTH(CNT.ID_LIST)$
+$TAB$counter_initialize();$NL$
+$END$
+$IF LENGTH(ALM.ID_LIST)$
+$TAB$alarm_initialize();$NL$
+$END$
+$IF LENGTH(SCHTBL.ID_LIST)$
+$TAB$schtbl_initialize();$NL$
+$END$
+$IF LENGTH(IOC.ID_LIST)$
+$TAB$ioc_initialize();$NL$
+$END$
+}$NL$
+$NL$
+
+$
+$ オブジェクト終了処理ルーチン
+$
+$NL$
+void$NL$
+object_terminate(void)$NL$
+{$NL$
+$IF LENGTH(CNT.ID_LIST)$
+$TAB$counter_terminate();$NL$
+$END$
+}$NL$
+$NL$
+
+$
+$  割込み管理機能
+$
+$NL$
+/*$NL$
+$SPC$*  Interrupt Management Functions$NL$
+$SPC$*/$NL$
+$NL$
+
+$ ISR用の割込みハンドラ
+$FOREACH isrid ISR2.ID_LIST$
+	void$NL$
+	$ISR.INT_ENTRY[isrid]$(void)$NL$
+	{$NL$
+	$TAB$i_begin_int($ISR.INTNO[isrid]$);$NL$
+	$TAB$LOG_ISR_ENTER($isrid$);$NL$
+	$TAB$ISRNAME($isrid$)();$NL$
+	$TAB$LOG_ISR_LEAVE($isrid$);$NL$
+	$TAB$i_end_int($ISR.INTNO[isrid]$);$NL$
+	}$NL$
+$END$
+$NL$
+
+$ ハードウェアカウンタ割込み処理
+/* HardWare Counter Interrupt Handler(C2ISR) */$NL$
+$FOREACH cntid HWCNT.ID_LIST$
+	ISR($CNT.ISRID[cntid]$)$NL$
+	{$NL$
+		$TAB$notify_hardware_counter($cntid$);$NL$
+	}$NL$
+$END$
+$NL$
+
+/*$NL$
+$SPC$*  Stack Area for Non-task Context$NL$
+$SPC$*/$NL$
+$NL$
+
+$ 非タスクコンテキスト用のスタック領域サイズ計算
+$FOREACH isrid ISR2.ID_LIST$
+$ 	// NULL(0)か0を指定した場合，デフォルト値設定
+	$IF ISR.STKSZ[isrid] == 0$
+		$ISR.STKSZ[isrid] = DEFAULT_ISRSTKSZ$
+	$END$
+
+$	// 非タスクコンテキスト用のスタック領域計算の為，優先度毎最大値の合計準備
+	$IF LENGTH(ISR.STKSZ[isrid]) && (!LENGTH(isr_shared_stack_size[ISR.INTPRI[isrid]])
+			|| isr_shared_stack_size[ISR.INTPRI[isrid]] < ISR.STKSZ[isrid])$
+		$isr_shared_stack_size[ISR.INTPRI[isrid]] = ISR.STKSZ[isrid]$
+	$END$
+$END$
+
+$	// MINIMUM_OSTKSZは，非タスクコンテキストスタックサイズの最小値として，依存部に設置
+$total_stksz = MINIMUM_OSTKSZ$
+
+$ ISRスタック領域のサイズを合計
+$FOREACH isrpri RANGE(-MAX_PRI_ISR2, -MIN_PRI_ISR2)$
+	$IF LENGTH(isr_shared_stack_size[isrpri])$
+		$total_stksz = total_stksz + isr_shared_stack_size[isrpri]$
+	$END$
+$END$
+
+$IF USE_HOOK$
+$ 	// スタックサイズのデフォルト設定
+$ 	// NULL(0)か0を指定した場合，デフォルト値設定
+	$IF LENGTH(HSTK.ID_LIST) && HSTK.STKSZ[1] != 0$
+		$total_stksz = total_stksz + HSTK.STKSZ[1]$
+	$ELSE$
+		$total_stksz = total_stksz + DEFAULT_HOOKSTKSZ$
+	$END$
+$END$
+
+$IF OS.STACKMONITORING[1]$
+$ スタック残量チェック方式用のスタック残量サイズ計算
+$FOREACH isrid ISR.ID_LIST$
+	$ISR.STKSZ_2[isrid] = ISR.STKSZ[isrid]$
+	$IF (EQ(ISR.CATEGORY[isrid], "CATEGORY_2"))$
+		$FOREACH isrpri RANGE(-ISR.INTPRI[isrid], -MIN_PRI_ISR2)$
+			$IF ISR.INTPRI[isrid] < isrpri$
+				$IF	LENGTH(isr_shared_stack_size[isrpri])$
+					$ISR.STKSZ_2[isrid] = ISR.STKSZ_2[isrid] + isr_shared_stack_size[isrpri]$
+				$END$
+			$END$
+		$END$
+	$END$
+$END$
+
+$ フック有効時，スタック残量チェック方式用スタックサイズを加算
+$IF USE_HOOK$
+	$FOREACH isrid2 ISR2.ID_LIST$
+		$IF LENGTH(HSTK.ID_LIST) && HSTK.STKSZ[1] != 0$
+			$ISR.STKSZ_2[isrid2] = ISR.STKSZ_2[isrid2] + HSTK.STKSZ[1]$
+		$ELSE$
+			$ISR.STKSZ_2[isrid2] = ISR.STKSZ_2[isrid2] +DEFAULT_HOOKSTKSZ$
+		$END$
+	$END$
+$END$
+$END$
+
+$ 割込み管理機能のための標準的な初期化情報の生成
+$IF !OMIT_INITIALIZE_INTERRUPT$
+
+$	// 割込み要求ライン数
+	#define TNUM_INTNO	UINT_C($LENGTH(ISR.ID_LIST)$)$NL$
+	const InterruptNumberType tnum_intno = TNUM_INTNO;$NL$
+	$NL$
+
+$	// 割込み要求ライン初期化テーブル
+	$IF LENGTH(ISR.ID_LIST)$
+		const INTINIB intinib_table[TNUM_INTNO] = {$NL$
+		$JOINEACH isrid ISR.ID_LIST ",\n"$
+			$TAB${ ($ISR.INTNO[isrid]$),$ISR.INTATR[isrid]$, ($-ISR.INTPRI[isrid]$), 
+			$IF OS.STACKMONITORING[1]$
+				$FORMAT("0x%xU",+ISR.STKSZ_2[isrid])$ 
+			$END$
+			}
+		$END$$NL$
+		};$NL$
+	$ELSE$
+		TOPPERS_EMPTY_LABEL(const INTINIB, intinib_table);$NL$
+	$END$
+	$NL$
+$END$
+
+$
+$ ISRの出力
+$
+$NL$
+ /****** Object ISR ******/$NL$
+$NL$
+$NL$
+
+$IF LENGTH(ISR2.ID_LIST)$
+	const ISRINIB isrinib_table[TNUM_ISR2] = {$NL$
+	$JOINEACH isrid ISR2.ID_LIST ",\n"$
+		$TAB${$NL$
+		$TAB$$TAB$&(intinib_table[$isrid$]),$SPC$
+		&(osapcb_table[$ISR.OSAPID[isrid]$]), $FORMAT("0x%08xU", +ISR.ACSBTMP[isrid])$$NL$
+		$TAB$}
+	$END$
+	$NL$
+	};$NL$
+	$NL$
+
+	ISRCB isrcb_table[TNUM_ISR2];$NL$
+	$NL$
+$ELSE$
+	TOPPERS_EMPTY_LABEL(const ISRINIB, isrinib_table);$NL$
+	TOPPERS_EMPTY_LABEL(ISRCB, isrcb_table);$NL$
+$END$
+
+$
+$  Trusted Function
+$
+
+$NL$
+ /******** Trusted Function ********/
+$NL$
+
+$  Trusted Function 初期化ブロックの生成
+$IF LENGTH(TFN.ID_LIST)$
+	const TFINIB tfinib_table[TNUM_TFN] = {$NL$
+	$JOINEACH tfnid TFN.ID_LIST ",\n"$
+$		// 信頼関数スタックサイズのデフォルト設定
+$ 		// NULL(0)か0を指定した場合，デフォルト設定
+		$IF !LENGTH(TFN.STKSZ[tfnid]) || TFN.STKSZ[tfnid] == 0$
+			$TFN.STKSZ[tfnid] = DEFAULT_TRUSTEDFUNCTIONSTKSZ$
+		$END$
+		$TAB${ &$TFN.FUNC[tfnid]$, $TFN.STKSZ[tfnid]$ }
+	$END$$NL$
+	};$NL$
+	$NL$
+$ELSE$
+	TOPPERS_EMPTY_LABEL(const TFINIB, tfinib_table);$NL$
+$END$
+
+$
+$  非タスクコンテキスト用のスタック領域
+$
+$IF !LENGTH(OSTK.ID_LIST)$
+$	// OSTKがない場合の計算したスタック合計値の設定
+$	// 非スタックコンテキストスタックサイズ = ISR共有後サイズ + MINIMUM_OSTKSZ
+	$ALLOC_SSTACK("_kernel_ostack", FORMAT("0x%xU", +total_stksz), "static")$
+	#define TOPPERS_OSTKSZ		$FORMAT("ROUND_STK_T(0x%xU)", +total_stksz)$$NL$
+	#define TOPPERS_OSTK		(_kernel_ostack)$NL$
+$ELSE$
+$ 	// スタックサイズのデフォルト設定
+$ 	// NULL(0)か0を指定した場合，デフォルト値設定
+	$IF !LENGTH(OSTK.STKSZ[1]) || OSTK.STKSZ[1] == 0$
+		$OSTK.STKSZ[1] = DEFAULT_OSSTKSZ$
+	$END$
+
+$ 	// stkszがスタック領域のサイズとして正しくない場合
+	$IF !EQ(OSTK.STK[1], "NULL") && CHECK_STKSZ_ALIGN
+							&& OSTK.STKSZ[1] & (CHECK_STKSZ_ALIGN - 1)$
+		$ERROR OSTK.TEXT_LINE[1]$$FORMAT(_("OsOsStackSize(%1%) is not aligned"), OSTK.STKSZ[1])$$END$
+	$END$
+
+$ 	// stkszが必要なスタックサイズより小さい場合
+	$IF OSTK.STKSZ[1] < total_stksz$
+		$ERROR OSTK.TEXT_LINE[1]$$FORMAT(_("OsOsStackSize(%1%) is necessary 0x%2$x and more)"), OSTK.STKSZ[1], +total_stksz)$$END$
+	$END$
+
+	$IF EQ(OSTK.STK[1], "NULL")$
+$		// スタック領域の自動割付け
+		$ALLOC_SSTACK("_kernel_ostack", OSTK.STKSZ[1], "")$
+		#define TOPPERS_OSTKSZ		ROUND_STK_T($OSTK.STKSZ[1]$)$NL$
+		#define TOPPERS_OSTK		(_kernel_ostack)$NL$
+	$ELSE$
+		#define TOPPERS_OSTKSZ		($OSTK.STKSZ[1]$)$NL$
+		#define TOPPERS_OSTK		($OSTK.STK[1]$)$NL$
+	$END$
+$END$
+$NL$
+
+$ 非タスクコンテキスト用のスタック領域
+const MemorySizeType	_ostksz = TOPPERS_OSTKSZ;$NL$
+StackType * const		_ostk = (StackType *) TOPPERS_OSTK;$NL$
+$NL$
+#ifdef TOPPERS_OSTKPT$NL$
+$IF ISFUNCTION("DEFINE_CONST_VAR")$
+	$DEFINE_CONST_VAR("StackType * const", "_ostkpt")$ = TOPPERS_OSTKPT(TOPPERS_OSTK, TOPPERS_OSTKSZ);$NL$
+$ELSE$
+	StackType * const	_ostkpt = TOPPERS_OSTKPT(TOPPERS_OSTK, TOPPERS_OSTKSZ);$NL$
+$END$
+#endif /* TOPPERS_OSTKPT */$NL$
+$NL$
+
+$USE_NONTRUST_HOOK = 0$
+$FOREACH osapid OSAP.ID_LIST$
+	$IF !OSAP.TRUSTED[osapid] && (OSAP.STARTUPHOOK[osapid] || OSAP.SHUTDOWNHOOK[osapid] || OSAP.ERRORHOOK[osapid])$
+		$USE_NONTRUST_HOOK = 1$
+	$END$
+$END$
+
+$IF USE_NONTRUST_HOOK$
+$	// スタックサイズのデフォルト設定
+	$IF !LENGTH(NTHSTK.ID_LIST)$
+		$NTHSTK.STK[1] = "NULL"$
+		$NTHSTK.STKSZ[1] = DEFAULT_NONTRUSTEDHOOKSTKSZ$
+	$END$
+
+$ 	// NULL(0)か0を指定した場合，デフォルト値設定
+	$IF !LENGTH(NTHSTK.STKSZ[1]) || NTHSTK.STKSZ[1] == 0$
+		$NTHSTK.STKSZ[1] = DEFAULT_NONTRUSTEDHOOKSTKSZ$
+	$END$
+
+	const MemorySizeType  _nthkstksz = $HSTACK_SIZE_STR(NTHSTK.STKSZ[1])$;$NL$
+	$IF EQ(NTHSTK.STK[1], "NULL")$
+		$ALLOC_HSTACK("_kernel_nhstack", NTHSTK.STKSZ[1])$
+		StackType * const	_nthkstk = _kernel_nhstack;$NL$
+	$ELSE$
+$ 		// hstkszがスタック領域のサイズとして正しくない場合
+		$IF CHECK_USTKSZ_ALIGN && NTHSTK.STKSZ[1] & (CHECK_USTKSZ_ALIGN - 1)$
+			$ERROR NTHSTK.TEXT_LINE[1]$$FORMAT(_("OsNonTrustedHookStackSize(%1%) is not aligned"), NTHSTK.STKSZ[1])$$END$
+		$END$
+		StackType * const	_nthkstk = (StackType *)$NTHSTK.STK[1]$;$NL$
+	$END$
+$ELSE$
+	const MemorySizeType  _nthkstksz = 0U;$NL$
+	StackType * const _nthkstk = 0;$NL$
+$END$
+
+$ =====================================================================
+$ IOC情報の生成
+$ =====================================================================
+$INCLUDE "kernel/ioc.tf"$
+
+
+$FILE "Os_Lcfg.h"$
+#ifndef TOPPERS_MACRO_ONLY$NL$
+
+$
+$  割込み管理機能
+$
+$NL$
+/*$NL$
+$SPC$*  Interrupt Management Functions$NL$
+$SPC$*/$NL$
+$NL$
+
+$FOREACH isrid ISR.ID_LIST$
+$	//割込み関数であることを示すコンパイルオプションを付ける関数が定義されている場合か
+	$IF EQ(ISR.CATEGORY[isrid], "CATEGORY_1") && ISFUNCTION("EXTERN_C1ISR_HANDLER")$
+		$EXTERN_C1ISR_HANDLER(ISR.INT_ENTRY[isrid])$$NL$
+	$ELSE$
+		extern void $ISR.INT_ENTRY[isrid]$(void);$NL$
+	$END$
+$END$
+
+$ ISR用の割込みハンドラ
+$FOREACH isrid ISR2.ID_LIST$
+	extern ISR($isrid$);$NL$
+$END$
+$NL$
+
+$ // OSアプリケーション定義のフックルーチンのプロトタイプ宣言
+/****** OSApplication Specified Hook ******/$NL$
+$FOREACH osapid OSAP.ID_LIST$
+	$output_flag = 0$
+	$IF OSAP.STARTUPHOOK[osapid]$
+		extern void StartupHook_$osapid$(void);$NL$
+		$output_flag = 1$
+	$END$
+	$IF OSAP.ERRORHOOK[osapid]$
+		extern void ErrorHook_$osapid$(StatusType ercd);$NL$
+		$output_flag = 1$
+	$END$
+	$IF OSAP.SHUTDOWNHOOK[osapid]$
+		extern void ShutdownHook_$osapid$(StatusType ercd);$NL$
+		$output_flag = 1$
+	$END$
+	$IF output_flag == 1$
+		$NL$
+	$END$
+$END$
+
+#ifdef TOPPERS_ENABLE_TRACE$NL$
+extern const char8 *atk2_appid_str(AppModeType id);$NL$
+extern const char8 *atk2_tskid_str(TaskType id);$NL$
+extern const char8 *atk2_isrid_str(ISRType id);$NL$
+extern const char8 *atk2_cntid_str(CounterType id);$NL$
+extern const char8 *atk2_almid_str(AlarmType id);$NL$
+extern const char8 *atk2_resid_str(ResourceType id);$NL$
+extern const char8 *atk2_schtblid_str(ScheduleTableType id);$NL$
+extern const char8 *atk2_evtid_str(TaskType task, EventMaskType event);$NL$
+extern const char8 *atk2_osapid_str(ApplicationType id);$NL$
+extern const char8 *atk2_iocid_str(IocType id);$NL$
+extern const char8 *atk2_tfnid_str(TrustedFunctionIndexType id);$NL$
+#endif /* TOPPERS_ENABLE_TRACE */$NL$
+$NL$
+
+$ ハードウェアカウンタの外部参照宣言の出力
+$FOREACH cntid HWCNT.ID_LIST$
+	extern void init_hwcounter_$cntid$(TickType maxval, TimeType nspertick);$NL$
+	extern void start_hwcounter_$cntid$(void);$NL$
+	extern void stop_hwcounter_$cntid$(void);$NL$
+	extern void set_hwcounter_$cntid$(TickType exprtick);$NL$
+	extern TickType get_hwcounter_$cntid$(void);$NL$
+	extern void cancel_hwcounter_$cntid$(void);$NL$
+	extern void trigger_hwcounter_$cntid$(void);$NL$
+	extern void int_clear_hwcounter_$cntid$(void);$NL$
+	extern void int_cancel_hwcounter_$cntid$(void);$NL$
+	extern void increment_hwcounter_$cntid$(void);$NL$
+$END$
+$NL$
+
+ /******** Trusted Function ********/
+$NL$
+
+$ TFNのextern宣言
+$FOREACH tfnid TFN.ID_LIST$
+extern TRUSTEDFUNCTION($TFN.FUNC[tfnid]$, FunctionIndex, FunctionParams);$NL$
+$END$
+$NL$
+
+$IF ISFUNCTION("EXTERN_INT_HANDLER")$
+	$EXTERN_INT_HANDLER()$
+$END$
+
+#endif /* TOPPERS_MACRO_ONLY */$NL$
+
+#endif /* TOPPERS_OS_LCFG_H */$NL$
+
+
+$FILE "Os_Lcfg.c"$
+#ifdef TOPPERS_ENABLE_TRACE$NL$
+const char8 *$NL$
+atk2_appid_str(AppModeType id)$NL$
+{$NL$
+$IF LENGTH(APP.ID_LIST)$
+	$TAB$const char8	*appid_str;$NL$
+	$TAB$switch (id) {$NL$
+	$FOREACH appid APP.ID_LIST$
+		$TAB$case $appid$:$NL$
+		$TAB$$TAB$appid_str = "$appid$";$NL$
+		$TAB$$TAB$break;$NL$
+	$END$
+	$TAB$default:$NL$
+	$TAB$$TAB$appid_str = "";$NL$
+	$TAB$$TAB$break;$NL$
+	$TAB$}$NL$
+	$TAB$return(appid_str);$NL$
+$ELSE$
+	$TAB$return("");$NL$
+$END$
+}$NL$
+
+const char8 *$NL$
+atk2_tskid_str(TaskType id)$NL$
+{$NL$
+$TAB$const char8	*tskid_str;$NL$
+$TAB$switch (id) {$NL$
+$FOREACH tskid TSK.ID_LIST$
+	$TAB$case $tskid$:$NL$
+	$TAB$$TAB$tskid_str = "$tskid$";$NL$
+	$TAB$$TAB$break;$NL$
+$END$
+$TAB$case INVALID_TASK:$NL$
+$TAB$$TAB$tskid_str = "INVALID_TASK";$NL$
+$TAB$$TAB$break;$NL$
+$TAB$default:$NL$
+$TAB$$TAB$tskid_str = "";$NL$
+$TAB$$TAB$break;$NL$
+$TAB$}$NL$
+$TAB$return(tskid_str);$NL$
+}$NL$
+
+$NL$
+const char8 *$NL$
+atk2_isrid_str(ISRType id)$NL$
+{$NL$
+$TAB$const char8	*isrid_str;$NL$
+$TAB$switch (id) {$NL$
+$FOREACH isrid ISR.ID_LIST$
+	$TAB$case $isrid$:$NL$
+	$TAB$$TAB$isrid_str = "$isrid$";$NL$
+	$TAB$$TAB$break;$NL$
+$END$
+$TAB$case INVALID_ISR:$NL$
+$TAB$$TAB$isrid_str = "INVALID_ISR";$NL$
+$TAB$$TAB$break;$NL$
+$TAB$default:$NL$
+$TAB$$TAB$isrid_str = "";$NL$
+$TAB$$TAB$break;$NL$
+$TAB$}$NL$
+$TAB$return(isrid_str);$NL$
+}$NL$
+
+$NL$
+const char8 *$NL$
+atk2_cntid_str(CounterType id)$NL$
+{$NL$
+$IF LENGTH(CNT.ID_LIST)$
+	$TAB$const char8	*cntid_str;$NL$
+	$TAB$switch (id) {$NL$
+	$FOREACH cntid CNT.ID_LIST$
+		$TAB$case $cntid$:$NL$
+		$TAB$$TAB$cntid_str = "$cntid$";$NL$
+		$TAB$$TAB$break;$NL$
+	$END$
+	$TAB$default:$NL$
+	$TAB$$TAB$cntid_str = "";$NL$
+	$TAB$$TAB$break;$NL$
+	$TAB$}$NL$
+	$TAB$return(cntid_str);$NL$
+$ELSE$
+	$TAB$return("");$NL$
+$END$
+}$NL$
+
+$NL$
+const char8 *$NL$
+atk2_almid_str(AlarmType id)$NL$
+{$NL$
+$IF LENGTH(ALM.ID_LIST)$
+	$TAB$const char8	*almid_str;$NL$
+	$TAB$switch (id) {$NL$
+	$FOREACH almid ALM.ID_LIST$
+		$TAB$case $almid$:$NL$
+		$TAB$$TAB$almid_str = "$almid$";$NL$
+		$TAB$$TAB$break;$NL$
+	$END$
+	$TAB$default:$NL$
+	$TAB$$TAB$almid_str = "";$NL$
+	$TAB$$TAB$break;$NL$
+	$TAB$}$NL$
+	$TAB$return(almid_str);$NL$
+$ELSE$
+	$TAB$return("");$NL$
+$END$
+}$NL$
+
+$NL$
+const char8 *$NL$
+atk2_resid_str(ResourceType id)$NL$
+{$NL$
+$IF LENGTH(RES.ID_LIST)$
+	$TAB$const char8	*resid_str;$NL$
+	$TAB$switch (id) {$NL$
+	$FOREACH resid RES.ID_LIST$
+		$TAB$case $resid$:$NL$
+		$TAB$$TAB$resid_str = "$resid$";$NL$
+		$TAB$$TAB$break;$NL$
+	$END$
+	$TAB$default:$NL$
+	$TAB$$TAB$resid_str = "";$NL$
+	$TAB$$TAB$break;$NL$
+	$TAB$}$NL$
+	$TAB$return(resid_str);$NL$
+$ELSE$
+	$TAB$return("");$NL$
+$END$
+}$NL$
+
+$NL$
+const char8 *$NL$
+atk2_schtblid_str(ScheduleTableType id)$NL$
+{$NL$
+$IF LENGTH(SCHTBL.ID_LIST)$
+	$TAB$const char8	*schtblid_str;$NL$
+	$TAB$switch (id) {$NL$
+	$FOREACH schtblid SCHTBL.ID_LIST$
+		$TAB$case $schtblid$:$NL$
+		$TAB$$TAB$schtblid_str = "$schtblid$";$NL$
+		$TAB$$TAB$break;$NL$
+	$END$
+	$TAB$default:$NL$
+	$TAB$$TAB$schtblid_str = "";$NL$
+	$TAB$$TAB$break;$NL$
+	$TAB$}$NL$
+	$TAB$return(schtblid_str);$NL$
+$ELSE$
+	$TAB$return("");$NL$
+$END$
+}$NL$
+
+$NL$
+const char8 *$NL$
+atk2_evtid_str(TaskType task, EventMaskType event)$NL$
+{$NL$
+$TAB$const char8	*evtid_str;$NL$
+$IF LENGTH(TSK.ID_LIST)$
+	$TAB$switch (task) {$NL$
+	$FOREACH tskid TSK.ID_LIST$
+		$TAB$case $tskid$:$NL$
+		$IF LENGTH(TSK.EVT_LIST[tskid])$
+			$TAB$$TAB$switch (event) {$NL$
+			$FOREACH evtid TSK.EVT_LIST[tskid]$
+				$TAB$$TAB$case $evtid$:$NL$
+				$TAB$$TAB$$TAB$evtid_str = "$evtid$";$NL$
+				$TAB$$TAB$$TAB$break;$NL$
+			$END$
+			$TAB$$TAB$default:$NL$
+			$TAB$$TAB$$TAB$evtid_str = NULL;$NL$
+			$TAB$$TAB$$TAB$break;$NL$
+			$TAB$$TAB$}$NL$
+		$ELSE$
+			$TAB$$TAB$evtid_str = NULL;$NL$
+		$END$
+		$TAB$$TAB$break;$NL$
+	$END$
+	$TAB$default:$NL$
+	$TAB$$TAB$evtid_str = NULL;$NL$
+	$TAB$$TAB$break;$NL$
+	$TAB$}$NL$
+$END$
+$TAB$if (evtid_str == NULL) {$NL$
+$FOREACH evtid EVT.ID_LIST$
+	$TAB$$TAB$if (event == $evtid$) {$NL$
+	$TAB$$TAB$$TAB$evtid_str = "$evtid$";$NL$
+	$TAB$$TAB$}$NL$
+$END$
+$TAB$}$NL$
+$TAB$return(evtid_str);$NL$
+}$NL$
+
+$NL$
+const char8 *$NL$
+atk2_osapid_str(ApplicationType id)$NL$
+{$NL$
+$TAB$const char8	*osapid_str;$NL$
+$TAB$switch (id) {$NL$
+$FOREACH osapid OSAP.ID_LIST$
+	$TAB$case $osapid$:$NL$
+	$TAB$$TAB$osapid_str = "$osapid$";$NL$
+	$TAB$$TAB$break;$NL$
+$END$
+$TAB$case INVALID_OSAPPLICATION:$NL$
+$TAB$$TAB$osapid_str = "INVALID_OSAPPLICATION";$NL$
+$TAB$$TAB$break;$NL$
+$TAB$default:$NL$
+$TAB$$TAB$osapid_str = "";$NL$
+$TAB$$TAB$break;$NL$
+$TAB$}$NL$
+$TAB$return(osapid_str);$NL$
+}$NL$
+
+$NL$
+const char8 *$NL$
+atk2_iocid_str(IocType id)$NL$
+{$NL$
+$TAB$const char8	*iocid_str;$NL$
+$TAB$switch (id) {$NL$
+$FOREACH iocid IOC.ID_LIST$
+	$TAB$case $iocid$:$NL$
+	$TAB$$TAB$iocid_str = "$iocid$";$NL$
+	$TAB$$TAB$break;$NL$
+$END$
+$TAB$default:$NL$
+$TAB$$TAB$iocid_str = "";$NL$
+$TAB$$TAB$break;$NL$
+$TAB$}$NL$
+$TAB$return(iocid_str);$NL$
+}$NL$
+
+$NL$
+const char8 *$NL$
+atk2_tfnid_str(TrustedFunctionIndexType id)$NL$
+{$NL$
+$IF LENGTH(TFN.ID_LIST)$
+	$TAB$const char8	*tfnid_str;$NL$
+	$TAB$switch (id) {$NL$
+	$FOREACH tfnid TFN.ID_LIST$
+	$TAB$case $tfnid$:$NL$
+	$TAB$$TAB$tfnid_str = "$tfnid$";$NL$
+	$TAB$$TAB$break;$NL$
+	$END$
+	$TAB$default:$NL$
+	$TAB$$TAB$tfnid_str = "";$NL$
+	$TAB$$TAB$break;$NL$
+	$TAB$}$NL$
+	$TAB$return(tfnid_str);$NL$
+$ELSE$
+	$TAB$return("");$NL$
+$END$
+}$NL$
+#endif /* TOPPERS_ENABLE_TRACE */$NL$
+
+
+$ =====================================================================
+$ 以下はHRP2からの移植
+$ =====================================================================
+
+$
+$  メモリオブジェクト管理機能
+$
+
+$
+$  統合前のメモリオブジェクトの情報の加工
+$
+$ 統合前のメモリオブジェクトの情報に，以下の情報を追加ないしは修正を加
+$ える．
+$
+$ MO.MEMATR[moid]：メモリオブジェクト属性
+$	TA_NOWRITE属性のメモリリージョンに配置される場合は，TA_MEMINIと
+$	TA_MEMPRSVをクリアする
+$ MO.ACPTN1[moid]：通常操作1（書込み）のアクセス許可パターン
+$	MO.MEMATR[moid]にTA_NOWRITEが設定されている場合は0にする．
+$ MO.CLASS[moid]：メモリオブジェクトを配置するための分類指標（リンカが
+$				  配置する場合のみ）
+$	0：標準のメモリオブジェクト属性，ACPTN1とACPTN2が標準
+$	  （タスクのユーザスタック領域もここに含める）
+$	1：標準のメモリオブジェクト属性，ACPTN1またはACPTN2が標準でない
+$	2：標準でないメモリオブジェクト属性
+$ MO.SRPW[moid]：共有リード専有ライト領域か？（リンカが配置する場合のみ）
+$ MEMATR_MASK：メモリオブジェクト属性が標準であるかを判定する時のマスク
+$
+$IF !LENGTH(MEMATR_MASK)$
+	$MEMATR_MASK = ~TA_SDATA$
+$END$
+$FOREACH moid RANGE(1, nummo)$
+	$domptn = DEFAULT_ACPTN[MO.OSAPID[moid]]$
+
+	$IF (MO.MEMATR[moid] & TA_NOWRITE) != 0$
+		$MO.ACPTN1[moid] = TACP_KERNEL$
+	$END$
+
+	$IF (MO.MEMATR[moid] & (TA_NOREAD | TA_EXEC)) == TA_NOREAD$
+		$MO.ACPTN2[moid] = TACP_KERNEL$
+	$END$
+
+	$IF MO.MEMATR[moid] & TA_NOREAD$
+		$MO.ACPTN_R[moid] = TACP_KERNEL$
+	$ELSE$
+		$MO.ACPTN_R[moid] = MO.ACPTN2[moid]$
+	$END$
+
+	$MO.ACPTN_W[moid] = MO.ACPTN1[moid]$
+
+	$IF MO.MEMATR[moid] & TA_EXEC$
+		$MO.ACPTN_X[moid] = MO.ACPTN2[moid]$
+	$ELSE$
+		$MO.ACPTN_X[moid] = TACP_KERNEL$
+	$END$
+
+	$IF MO.LINKER[moid]$
+		$MO.SRPW[moid] = 0$
+		$IF (REG.REGATR[MO.MEMREG[moid]] & TA_NOWRITE) != 0$
+			$MO.MEMATR[moid] = MO.MEMATR[moid] & ~(TA_MEMINI|TA_MEMPRSV)$
+			$IF (MO.MEMATR[moid] & TA_EXEC) != 0
+						&& (MO.MEMATR[moid] & MEMATR_MASK) != MEMATR_TEXT
+				|| (MO.MEMATR[moid] & TA_EXEC) == 0
+						&& (MO.MEMATR[moid] & MEMATR_MASK) != MEMATR_RODATA$
+				$MO.CLASS[moid] = 2$
+			$ELIF MO.ACPTN2[moid] != domptn$
+				$MO.CLASS[moid] = 1$
+$				// ROMで共有リード（実行）の場合はドメインなしにする
+$				// 次のIF文は必ず真なのでROMの場合はCLASS==1は存在しない
+				$IF MO.ACPTN2[moid] == TACP_SHARED$
+					$MO.OSAPID[moid] = TDOM_NONE$
+					$MO.CLASS[moid] = 0$
+				$END$
+			$ELSE$
+				$MO.CLASS[moid] = 0$
+			$END$
+		$ELSE$
+			$IF MO.TYPE[moid] == TOPPERS_USTACK$
+				$MO.CLASS[moid] = 0$
+			$ELIF (MO.MEMATR[moid] & TA_MEMINI) != 0
+						&& (MO.MEMATR[moid] & MEMATR_MASK) != MEMATR_DATA
+				|| (MO.MEMATR[moid] & TA_MEMPRSV) != 0
+						&& (MO.MEMATR[moid] & MEMATR_MASK) != MEMATR_PRSV
+				|| (MO.MEMATR[moid] & (TA_MEMINI|TA_MEMPRSV)) == 0
+						&& (MO.MEMATR[moid] & MEMATR_MASK) != MEMATR_BSS$
+				$MO.CLASS[moid] = 2$
+
+			$ELIF MO.ACPTN1[moid] != domptn$
+$				// ここに来ることはない
+				$MO.CLASS[moid] = 1$
+			$ELIF MO.ACPTN2[moid] != domptn$
+				$MO.CLASS[moid] = 1$
+				$IF MO.ACPTN2[moid] == TACP_SHARED$
+					$MO.SRPW[moid] = 1$
+				$END$
+			$ELSE$
+				$MO.CLASS[moid] = 0$
+			$END$
+		$END$
+
+$		// 書き込みできない領域はSRPWにしない
+		$IF (MO.MEMATR[moid] & TA_NOWRITE) == 0$
+			$IF MO.ACPTN1[moid] == domptn && MO.ACPTN2[moid] != domptn && MO.ACPTN2[moid] == TACP_SHARED$
+				$MO.SRPW[moid] = 1$
+			$END$
+		$END$
+	$END$
+$END$
+
+$
+$  統合前のメモリオブジェクトをソートするための配列を作る
+$
+$ MO.ORDER[moid]：メモリオブジェクトをソートするための1次指標
+$ MO.MEMATR1[moid]：ソートする際に，ACPTN1，ACPTN2より先に用いる属性
+$ MO.MEMATR2[moid]：ソートする際に，ACPTN1，ACPTN2より後に用いる属性
+$
+$FOREACH moid RANGE(1, nummo)$
+$	// まず，STANDARD_ROMを最初にし，その後はメモリリージョン番号の順に
+$	// ソートする．
+	$IF MO.LINKER[moid]$
+		$IF MO.MEMREG[moid] == STANDARD_ROM$
+			$memreg = 0$
+		$ELSE$
+			$memreg = MO.MEMREG[moid]$
+		$END$
+	$ELSE$
+$		// リンカが配置しないものは，最後にする．
+		$memreg = LENGTH(REG.ORDER_LIST) + 1$
+	$END$
+	$order = memreg$
+
+$	// 次に，配置タイプによってソートする．
+	$IF MO.TYPE[moid] == TOPPERS_USTACK$
+$		// ユーザスタック領域の配置タイプの決定．
+		$type = 1$
+	$ELIF MO.ACPTN1[moid] == 0 && MO.ACPTN2[moid] == TACP_SHARED
+									&& (MO.MEMATR[moid] & TA_SDATA) != 0$
+$		// 共有リード・ライト不可のショートデータ領域の配置タイプの決定．
+$		// カーネルドメインの共有リード専有ライト領域もここに含まれる．
+		$type = 4$
+	$ELIF MO.LINKER[moid] && MO.SRPW[moid]$
+$		// 共有リード専有ライト領域の配置タイプの決定．
+		$IF (MO.MEMATR[moid] & TA_SDATA) != 0$
+			$type = 5$
+		$ELSE$
+			$type = 3$
+		$END$
+	$ELIF MO.OSAPID[moid] == TDOM_KERNEL$
+$		// カーネルドメインの配置タイプの決定．
+		$IF (MO.MEMATR[moid] & TA_SDATA) != 0$
+			$type = 6$
+		$ELSE$
+			$type = 0$
+		$END$
+	$ELIF MO.OSAPID[moid] == TDOM_NONE$
+$		// 無所属の配置タイプの決定．
+		$IF MO.LINKER[moid] && MO.CLASS[moid] == 0$
+			$IF (MO.MEMATR[moid] & TA_SDATA) != 0$
+				$type = 7$
+			$ELSE$
+				$type = 8$
+			$END$
+		$ELSE$
+			$IF (MO.MEMATR[moid] & TA_SDATA) != 0$
+				$type = 6$
+			$ELSE$
+				$type = 2$
+			$END$
+		$END$
+	$ELSE$
+$		// ユーザドメインの配置タイプの決定．
+		$IF (MO.MEMATR[moid] & TA_SDATA) != 0$
+			$type = 6$
+		$ELSE$
+			$type = 2$
+		$END$
+	$END$
+	$order = (order << 4) + type$
+
+$	// 次に，保護ドメインによってソートする．
+$	// ユーザドメインの数が32個以下であることを仮定している．
+	$IF MO.OSAPID[moid] == TDOM_KERNEL$
+		$domain = 0$
+	$ELIF MO.OSAPID[moid] == TDOM_NONE$
+		$domain = 63$
+	$ELSE$	
+		$domain = MO.OSAPID[moid]$
+	$END$
+	$order = (order << 6) + domain$
+
+$	// 次に，メモリオブジェクトを配置するための分類指標によって配置する．
+	$class = 0$
+	$IF MO.LINKER[moid] && MO.TYPE[moid] != TOPPERS_USTACK$
+		$IF (REG.REGATR[MO.MEMREG[moid]] & TA_NOWRITE) != 0$
+			$IF MO.OSAPID[moid] == TDOM_NONE$
+$				// TA_NOWRITE属性のメモリリージョンの無所属は，CLASSの逆順
+$				// に配置する．
+				$class = 2 - MO.CLASS[moid]$
+			$ELSE$
+$				// カーネルドメインとユーザドメインは，CLASSの順に配置する．
+				$class = MO.CLASS[moid]$
+			$END$
+		$ELSE$
+			$IF MO.OSAPID[moid] == TDOM_KERNEL || MO.OSAPID[moid] == TDOM_NONE$
+$				// TA_NOWRITE属性でないメモリリージョンのカーネルドメイン
+$				// と無所属は，CLASSの逆順に配置する．
+				$class = 2 - MO.CLASS[moid]$
+			$ELSE$
+$				// ユーザドメインは，CLASSの順に配置する．
+				$class = MO.CLASS[moid]$
+			$END$
+		$END$
+	$END$
+	$order = (order << 2) + class$
+
+$	// 結果をMO.ORDER[moid]に格納する
+	$MO.ORDER[moid] = order$
+
+$	// MO.MEMATR1[moid]とMO.MEMATR2[moid]を設定する
+	$IF MO.LINKER[moid]$
+		$IF (REG.REGATR[MO.MEMREG[moid]] & TA_NOWRITE) != 0$
+			$MO.MEMATR1[moid] = MO.MEMATR[moid] & ~TA_EXEC$
+			$MO.MEMATR2[moid] = MO.MEMATR[moid] & TA_EXEC$
+$			// TA_EXECが設定されている方を前に配置する
+			$MO.MEMATR2[moid] = MO.MEMATR2[moid] ^ TA_EXEC$
+		$ELSE$
+			$MO.MEMATR1[moid] = MO.MEMATR[moid] & ~(TA_MEMINI|TA_MEMPRSV)$
+			$MO.MEMATR2[moid] = MO.MEMATR[moid] & (TA_MEMINI|TA_MEMPRSV)$
+$			// TA_MEMINIが設定されている方を前に配置する
+			$MO.MEMATR2[moid] = MO.MEMATR2[moid] ^ TA_MEMINI$
+		$END$
+	$END$
+$END$
+
+$
+$  メモリオブジェクトをソートするための比較関数
+$
+$IF !ISFUNCTION("MO_COMPARE")$
+$FUNCTION MO_COMPARE$
+$	まずは，MO.ORDERで比較する．
+	$RESULT = MO.ORDER[ARGV[1]] - MO.ORDER[ARGV[2]]$
+	$IF (RESULT == 0) && MO.LINKER[ARGV[1]]$
+$		// MO.ORDERが同じで，リンカの配置対象の場合は，さらにソートする．
+		$_moid1 = ARGV[1]$
+		$_moid2 = ARGV[2]$
+		$IF MO.TYPE[_moid1] == TOPPERS_USTACK$
+$			// ユーザスタック領域の場合
+$			// MO.STKORDERでソートする．
+			$RESULT = MO.STKORDER[_moid1] - MO.STKORDER[_moid2]$
+		$ELIF MO.MEMATR1[_moid1] != MO.MEMATR1[_moid2]$
+$			// MO.MEMATR1が異なれば，それでソートする．
+			$RESULT = MO.MEMATR1[_moid1] - MO.MEMATR1[_moid2]$
+		$ELIF MO.ACPTN1[_moid1] != MO.ACPTN1[_moid2]$
+$			// MO.ACPTN1が異なれば，それでソートする．
+			$RESULT = MO.ACPTN1[_moid1] - MO.ACPTN1[_moid2]$
+		$ELIF MO.ACPTN2[_moid1] != MO.ACPTN2[_moid2]$
+$			// MO.ACPTN2が異なれば，それでソートする．
+			$RESULT = MO.ACPTN2[_moid1] - MO.ACPTN2[_moid2]$
+		$ELIF MO.MEMATR2[_moid1] != MO.MEMATR2[_moid2]$
+$			// MO.MEMATR2が異なれば，それでソートする．
+			$RESULT = MO.MEMATR2[_moid1] - MO.MEMATR2[_moid2]$
+		$ELSE$
+			$RESULT = 0$
+		$END$
+	$END$
+$END$
+$END$
+
+$
+$  メモリオブジェクトのソート
+$
+$ 最初にMO.ORDERでソートしておくことで，MO_COMPAREを使ったソートが効率
+$ 化されることを期待している．
+$
+$MO_ORDER = SORT(RANGE(1, nummo), "MO.ORDER")$
+$MO_ORDER = LSORT(MO_ORDER, "MO_COMPARE")$
+
+$
+$  メモリオブジェクトの統合処理
+$
+$ MO.SEFLAG[moid]：以下のビットのビット毎論理和に設定する．
+$	0x01：セクションの先頭
+$	0x02：セクションの最後
+$	0x04：メモリオブジェクトの先頭
+$	0x08：メモリオブジェクトの最後
+$	0x10：メモリ保護単位の先頭
+$	0x20：メモリ保護単位の最後
+$	0x40：メモリリージョンの先頭
+$	0x80：メモリリージョンの最後
+$	0x100：共有リード専用ライト領域全体の先頭
+$	0x200：共有リード専用ライト領域全体の最後
+$	0x400：ショートデータセクションの先頭
+$ MO.MOEND[moid]：統合後のメモリオブジェクトの最後のmoid（統合後の
+$							メモリオブジェクトの先頭のmoidに対して設定）
+$ MO_SECTION_LIST：セクションの先頭のリスト
+$ MO_START_LIST：メモリオブジェクトの先頭のリスト
+$ MO_START_LIST_NOLINKER：リンカが配置しないメモリオブジェクトの先頭のリスト
+$ MO_MPROTECT_LIST：メモリ保護単位の先頭のリスト
+$
+$MO_SECTION_LIST = {}$
+$MO_START_LIST = {}$
+$MO_START_LIST_NOLINKER = {}$
+$MO_MPROTECT_LIST = {}$
+$i = 0$
+$FOREACH moid MO_ORDER$
+	$IF i == 0$
+		$MO.SEFLAG[moid] = 0x15$
+		$mostart = moid$
+		$IF MO.LINKER[moid]$
+			$MO.SEFLAG[moid] = MO.SEFLAG[moid] | 0x40$
+		$END$
+	$ELSE$
+		$IF MO.ORDER[moid] != MO.ORDER[prev_moid]
+				|| (MO.TYPE[moid] & TOPPERS_ATTSEC) == 0
+				|| (MO.TYPE[prev_moid] & TOPPERS_ATTSEC) == 0
+				|| (MO.MEMATR[moid] & ~(TA_MEMINI|TA_MEMPRSV))
+						!= (MO.MEMATR[prev_moid] & ~(TA_MEMINI|TA_MEMPRSV))
+				|| MO.ACPTN1[moid] != MO.ACPTN1[prev_moid]
+				|| MO.ACPTN2[moid] != MO.ACPTN2[prev_moid]$
+			$MO.SEFLAG[moid] = 0x15$
+			$MO.SEFLAG[prev_moid] = MO.SEFLAG[prev_moid] | 0x2a$
+			$MO.MOEND[mostart] = prev_moid$
+			$mostart = moid$
+		$ELIF MO.MEMATR[moid] != MO.MEMATR[prev_moid]$
+			$MO.SEFLAG[moid] = 0x05$
+			$MO.SEFLAG[prev_moid] = MO.SEFLAG[prev_moid] | 0x0a$
+			$MO.MOEND[mostart] = prev_moid$
+			$mostart = moid$
+		$ELSE$
+			$MO.SEFLAG[moid] = 0$
+		$END$
+
+		$IF MO.LINKER[prev_moid] && MO.LINKER[moid]
+					&& MO.MEMREG[prev_moid] != MO.MEMREG[moid]$
+			$MO.SEFLAG[moid] = MO.SEFLAG[moid] | 0x40$
+			$MO.SEFLAG[prev_moid] = MO.SEFLAG[prev_moid] | 0x80$
+		$ELIF MO.LINKER[prev_moid] && !MO.LINKER[moid]$
+			$MO.SEFLAG[prev_moid] = MO.SEFLAG[prev_moid] | 0x80$
+		$END$
+
+		$IF !(MO.LINKER[prev_moid] && MO.SRPW[prev_moid])
+					&& (MO.LINKER[moid] && MO.SRPW[moid])$
+			$MO.SEFLAG[moid] = MO.SEFLAG[moid] | 0x100$
+		$END$
+		$IF (MO.LINKER[prev_moid] && MO.SRPW[prev_moid])
+					&& !(MO.LINKER[moid] && MO.SRPW[moid])$
+			$MO.SEFLAG[prev_moid] = MO.SEFLAG[prev_moid] | 0x200$
+		$END$
+		$IF !(MO.LINKER[prev_moid] && (MO.MEMATR[prev_moid] & TA_SDATA) != 0)
+					&& (MO.LINKER[moid] && (MO.MEMATR[moid] & TA_SDATA) != 0)$
+			$MO.SEFLAG[moid] = MO.SEFLAG[moid] | 0x400$
+		$END$
+	$END$
+
+$	// MO_SECTION_LIST，MO_START_LIST，MO_MPROTECT_LISTへの追加
+	$IF (MO.SEFLAG[moid] & 0x01) != 0$
+		$MO_SECTION_LIST = APPEND(MO_SECTION_LIST, moid)$
+	$END$
+	$IF (MO.SEFLAG[moid] & 0x04) != 0$
+		$MO_START_LIST = APPEND(MO_START_LIST, moid)$
+		$IF (!MO.LINKER[moid])$
+			$MO_START_LIST_NOLINKER = APPEND(MO_START_LIST_NOLINKER, moid)$
+		$END$
+	$END$
+	$IF (MO.SEFLAG[moid] & 0x10) != 0$
+		$MO_MPROTECT_LIST = APPEND(MO_MPROTECT_LIST, moid)$
+	$END$
+
+	$prev_moid = moid$
+	$i = i + 1$
+$END$
+$MO.SEFLAG[prev_moid] = MO.SEFLAG[prev_moid] | 0x2a$
+$MO.MOEND[mostart] = prev_moid$
+$IF MO.LINKER[prev_moid]$
+	$MO.SEFLAG[prev_moid] = MO.SEFLAG[prev_moid] | 0x80$
+$END$
+$IF MO.LINKER[prev_moid] && MO.SRPW[prev_moid]$
+	$MO.SEFLAG[prev_moid] = MO.SEFLAG[prev_moid] | 0x200$
+$END$
+
+$
+$  メモリオブジェクトのラベルの生成
+$
+$ MO.SLABEL[moid]：セクションのラベル
+$ MO.ILABEL[moid]：初期化データ領域のラベル
+$ MO.MLABEL[moid]：メモリオブジェクトのラベル
+$ MO.PLABEL[moid]：メモリ保護単位のラベル
+$ DATASEC_LIST：dataセクションのリスト
+$ BSSSEC_LIST：bssセクションのリスト
+$
+$DATASEC_LIST = {}$
+$BSSSEC_LIST = {}$
+$FOREACH moid MO_ORDER$
+	$IF MO.LINKER[moid]$
+		$IF MO.MEMREG[moid] == STANDARD_ROM || MO.MEMREG[moid] == STANDARD_RAM$
+			$reglabel = ""$
+		$ELSE$
+			$reglabel = FORMAT("%s_", REG.REGNAME[MO.MEMREG[moid]])$
+		$END$
+		$domlabel = OSAP.LABEL[MO.OSAPID[moid]]$
+
+		$ilabel = ""$
+		$plabel = ""$
+		$IF (REG.REGATR[MO.MEMREG[moid]] & TA_NOWRITE) != 0$
+			$IF (MO.MEMATR[moid] & TA_EXEC) != 0$
+				$typelabel = "text"$
+			$ELSE$
+				$typelabel = "rodata"$
+			$END$
+			$acptn12 = FORMAT("%x", +MO.ACPTN2[moid])$
+		$ELSE$
+			$IF (MO.MEMATR[moid] & TA_MEMINI) != 0$
+				$IF (MO.MEMATR[moid] & TA_SDATA) != 0$
+					$typelabel = "sdata"$
+				$ELSE$
+					$typelabel = "data"$
+				$END$
+				$IF (MO.SEFLAG[moid] & 0x01) != 0$
+					$DATASEC_LIST = APPEND(DATASEC_LIST, moid)$
+				$END$
+				$ilabel = FORMAT("%si%s_%s", reglabel, typelabel, domlabel)$
+			$ELIF (MO.MEMATR[moid] & TA_MEMPRSV) != 0$
+				$IF (MO.MEMATR[moid] & TA_SDATA) != 0$
+					$typelabel = "sprsv"$
+				$ELSE$
+					$typelabel = "prsv"$
+				$END$
+			$ELSE$
+				$IF (MO.MEMATR[moid] & TA_SDATA) != 0$
+					$typelabel = "sbss"$
+				$ELSE$
+					$typelabel = "bss"$
+				$END$
+				$IF (MO.SEFLAG[moid] & 0x01) != 0$
+					$BSSSEC_LIST = APPEND(BSSSEC_LIST, moid)$
+				$END$
+			$END$
+			$acptn12 = FORMAT("%x_%x", +MO.ACPTN1[moid], +MO.ACPTN2[moid])$
+			$IF (MO.MEMATR[moid] & TA_SDATA) != 0$
+				$plabel = FORMAT("%ssram_%s", reglabel, domlabel)$
+			$ELSE$
+				$plabel = FORMAT("%sram_%s", reglabel, domlabel)$
+			$END$
+		$END$
+		$label = FORMAT("%s%s_%s", reglabel, typelabel, domlabel)$
+		$IF MO.TYPE[moid] == TOPPERS_USTACK$
+			$MO.SLABEL[moid] = REGEX_REPLACE(MO.SECTION[moid], "\\.", "")$
+			$MO.MLABEL[moid] = REGEX_REPLACE(MO.SECTION[moid], "\\.", "")$
+			$MO.PLABEL[moid] = ""$
+		$ELIF MO.CLASS[moid] == 0$
+			$MO.SLABEL[moid] = label$
+			$IF !EQ(ilabel, "")$
+				$MO.ILABEL[moid] = ilabel$
+			$END$
+			$MO.MLABEL[moid] = FORMAT("%s__std", label)$
+			$IF !EQ(plabel, "")$
+				$MO.PLABEL[moid] = plabel$
+			$END$
+		$ELIF MO.CLASS[moid] == 1$
+			$MO.SLABEL[moid] = FORMAT("%s_%s", label, acptn12)$
+			$IF !EQ(ilabel, "")$
+				$MO.ILABEL[moid] = FORMAT("%s_%s", ilabel, acptn12)$
+			$END$
+			$MO.MLABEL[moid] = FORMAT("%s__%s", label,	acptn12)$
+			$IF !EQ(plabel, "")$
+				$MO.PLABEL[moid] = FORMAT("%s_%s", plabel, acptn12)$
+			$END$
+		$ELSE$
+			$MO.SLABEL[moid] = FORMAT("%s_%s_%x", label,
+												acptn12, +MO.MEMATR[moid])$
+			$IF !EQ(ilabel, "")$
+				$MO.ILABEL[moid] = FORMAT("%s_%s_%x", ilabel,
+												acptn12, +MO.MEMATR[moid])$
+			$END$
+			$MO.MLABEL[moid] = FORMAT("%s__%s_%x", label,
+								acptn12, +MO.MEMATR[moid])$
+			$IF !EQ(plabel, "")$
+				$MO.PLABEL[moid] = FORMAT("%s_%s_%x", plabel,
+						acptn12, MO.MEMATR[moid] & ~(TA_MEMINI|TA_MEMPRSV))$
+			$END$
+		$END$
+	$END$
+$END$
+
+$		
+$ =====================================================================
+$ 仮のメモリ構成・初期化ファイルの生成
+$ =====================================================================
+$FILE "kernel_mem2.c"$
+#include "kernel_int.h"$NL$
+#include "Os_Lcfg.h"$NL$
+
+#ifndef TOPPERS_EMPTY_LABEL$NL$
+#define TOPPERS_EMPTY_LABEL(x, y) x y[0]$NL$
+#endif$NL$
+
+/*$NL$
+$SPC$*  Include Directives (#include)$NL$
+$SPC$*/$NL$
+$NL$
+$INCLUDES$
+$NL$
+
+$
+$  仮メモリオブジェクト初期化ブロックの生成
+$
+$IF !OMIT_STANDARD_MEMINIB$
+
+$	// アドレス0を置く領域
+	$tsize_meminib = 1$
+	$FOREACH moid MO_START_LIST$
+$		// メモリオブジェクトの先頭番地を置く領域
+		$tsize_meminib = tsize_meminib + 1$
+		$IF !MO.LINKER[moid]$
+$			// リンカが配置しないメモリオブジェクトは最終番地も必要
+			$tsize_meminib = tsize_meminib + 1$
+		$ELIF (MO.SEFLAG[MO.MOEND[moid]] & 0x80) != 0$
+$			// メモリリージョンの最後のメモリオブジェクトは最終番地も必要
+			$tsize_meminib = tsize_meminib + 1$
+		$END$
+	$END$
+
+	const uint32 tnum_meminib = $tsize_meminib$U;$NL$
+	$NL$
+
+	void *const memtop_table[$tsize_meminib$] = {
+	$IF LENGTH(MO_START_LIST_NOLINKER)$
+		$NL$
+		$JOINEACH moid MO_START_LIST_NOLINKER ",\n"$
+			$TAB$(void *)($MO.BASE[moid]$)  /* $MO.ACPTN_R[moid]$, $MO.ACPTN_W[moid]$, $MO.ACPTN_X[moid]$ */
+		$END$$NL$
+	$ELSE$
+		$SPC$0$SPC$
+	$END$
+	};$NL$
+	$NL$
+
+	const MEMINIB meminib_table[$tsize_meminib$] =
+	$SPC${{ TA_NULL, 0U, 0U, 0U }};$NL$
+	$NL$
+$END$
+
+$
+$  dataセクション初期化ブロックの生成
+$
+$IF !OMIT_STANDARD_DATASECINIB$
+	/*$NL$
+	$SPC$*	Data Section Management Functions$NL$
+	$SPC$*/$NL$
+	$NL$
+
+$	// dataセクションの数
+	#define TNUM_DATASEC	$IF !OMIT_IDATA$$LENGTH(DATASEC_LIST)$$ELSE$0$END$$NL$
+	$NL$
+
+	$IF ISFUNCTION("DEFINE_CONST_VAR")$
+		$DEFINE_CONST_VAR("const uint32", "tnum_datasec")$ = TNUM_DATASEC;$NL$
+	$ELSE$
+		const uint32 tnum_datasec = TNUM_DATASEC;$NL$
+	$END$
+	$NL$
+
+$	// dataセクション初期化ブロック
+	$IF !OMIT_IDATA && LENGTH(DATASEC_LIST)$
+		$IF ISFUNCTION("DEFINE_CONST_VAR")$
+			$DEFINE_CONST_VAR("const DATASECINIB", "datasecinib_table[TNUM_DATASEC]")$ =
+		$ELSE$
+			const DATASECINIB datasecinib_table[TNUM_DATASEC] =
+		$END$
+		$SPC${{ 0U, 0U, 0U }};$NL$
+	$ELSE$
+		TOPPERS_EMPTY_LABEL(const DATASECINIB, datasecinib_table);$NL$
+		$NL$
+	$END$$NL$
+$END$
+
+$
+$  bssセクション初期化ブロックの生成
+$
+$IF !OMIT_STANDARD_BSSSECINIB$
+	/*$NL$
+	$SPC$*	BSS Section Management Functions$NL$
+	$SPC$*/$NL$
+	$NL$
+
+$	// bssセクションの数
+	#define TNUM_BSSSEC	$LENGTH(BSSSEC_LIST)$$NL$
+	$NL$
+
+	const uint32 tnum_bsssec = TNUM_BSSSEC;$NL$
+	$NL$
+
+$	// bssセクション初期化ブロック
+	$IF LENGTH(BSSSEC_LIST)$
+		const BSSSECINIB bsssecinib_table[TNUM_BSSSEC] = {{0U, 0U}};$NL$
+	$ELSE$
+		TOPPERS_EMPTY_LABEL(const BSSSECINIB, bsssecinib_table);$NL$
+	$END$$NL$
+$END$
+
+$ =====================================================================
+$ HRP2からの移植ここまで
+$ =====================================================================
+
+$ ターゲット依存部で必要なMPUINFOBを出力する
+$GENERATE_TARGET_MPUINFOB()$
+
+$ タスクスタック領域をextern宣言する(kernel_common.tf)
+$GENERATE_EXPORT_TSK_STK()$
+
+$ タスクをextern宣言する(kernel_common.tf)
+$EXTERN_TSK()$
+
+$ タスク管理ブロックをextern宣言する(kernel_common.tf)
+$EXTERN_TCB()$
+
+$ OSAP管理ブロックをextern宣言する(kernel_common.tf)
+$EXTERN_OSAPCB()$
+
+$ タスク初期化ブロックを出力する(kernel_common.tf)
+$GENERATE_TINIB_TABLE()$
+
+$ OSアプリケーション初期化ブロックを出力する(kernel_common.tf)
+$GENERATE_OSAPINIB_TABLE()$
+
+$ =====================================================================
+$  パス3, パス4に渡す情報の生成
+$ =====================================================================
+
+$FILE "cfg2_out.tf"$
+$$ cfg2_out.tf$NL$
+$NL$
+
+$ STANDARD_ROM，STANDARD_RAMの出力
+$$STANDARD_ROM = $STANDARD_ROM$$$$NL$
+$$STANDARD_RAM = $STANDARD_RAM$$$$NL$
+$NL$
+
+$ REG_ORDERの出力
+$$REG_ORDER = { $REG_ORDER$ }$$$NL$
+$NL$
+
+$ REG.*の出力
+$FOREACH reg REG.ORDER_LIST$
+	$$REG.REGNAME[$reg$] = $REG.REGION[reg]$$$$NL$
+	$$REG.REGATR[$reg$] = VALUE($ESCSTR(REG.REGATR[reg])$,
+									$SPC$$+REG.REGATR[reg]$)$$$NL$
+	$$REG.BASE[$reg$] = VALUE($ESCSTR(REG.BASE[reg])$,
+									$SPC$$+REG.BASE[reg]$)$$$NL$
+	$$REG.SIZE[$reg$] = VALUE($ESCSTR(REG.SIZE[reg])$,
+									$SPC$$+REG.SIZE[reg]$)$$$NL$
+	$NL$
+$END$
+
+$ MO_ORDER，MO_SECTION_LIST，MO_START_LIST，MO_START_LIST_NOLINKER，
+$ MO_MPROTECT_LISTの出力
+$$MO_ORDER = { $MO_ORDER$ }$$$NL$
+$NL$
+$$MO_SECTION_LIST = { $MO_SECTION_LIST$ }$$$NL$
+$NL$
+$$MO_START_LIST = { $MO_START_LIST$ }$$$NL$
+$NL$
+$$MO_START_LIST_NOLINKER = { $MO_START_LIST_NOLINKER$ }$$$NL$
+$NL$
+$$MO_MPROTECT_LIST = { $MO_MPROTECT_LIST$ }$$$NL$
+$NL$
+
+$ tsize_meminibの出力
+$IF !OMIT_STANDARD_MEMINIB$
+	$$tsize_meminib = $tsize_meminib$$$$NL$
+	$NL$
+$END$
+
+$ MO_SECTION_LIST，DATASEC_LIST，BSSSEC_LISTの出力
+$$MO_SECTION_LIST = { $MO_SECTION_LIST$ }$$$NL$
+$NL$
+$$DATASEC_LIST = { $DATASEC_LIST$ }$$$NL$
+$NL$
+$$BSSSEC_LIST = { $BSSSEC_LIST$ }$$$NL$
+$NL$
+
+$ MO.*の出力
+$FOREACH moid MO_ORDER$
+	$$MO.TYPE[$moid$] = VALUE($ESCSTR(MO.TYPE[moid])$,
+									$SPC$$+MO.TYPE[moid]$)$$$NL$
+	$IF MO.TYPE[moid] == TOPPERS_ATTMOD$
+		$$MO.MODULE[$moid$] = $ESCSTR(MO.MODULE[moid])$$$$NL$
+	$ELIF MO.TYPE[moid] == TOPPERS_ATTMEM$
+		$$MO.BASE[$moid$] = $ESCSTR(MO.BASE[moid])$$$$NL$
+		$$MO.SIZE[$moid$] = VALUE($ESCSTR(MO.SIZE[moid])$,
+									$SPC$$+MO.SIZE[moid]$)$$$NL$
+		$IF LENGTH(MO.PADDR[moid])$
+			$$MO.PADDR[$moid$] = VALUE($ESCSTR(MO.PADDR[moid])$,
+									$SPC$$+MO.PADDR[moid]$)$$$NL$
+		$END$
+	$ELIF MO.TYPE[moid] == TOPPERS_USTACK$
+		$$MO.TSKID[$moid$] = VALUE($ESCSTR(MO.TSKID[moid])$,
+									$SPC$$+MO.TSKID[moid]$)$$$NL$
+		$IF !MO.LINKER[moid]$
+			$$MO.BASE[$moid$] = $ESCSTR(MO.BASE[moid])$$$$NL$
+			$$MO.SIZE[$moid$] = VALUE($ESCSTR(MO.SIZE[moid])$,
+									$SPC$$+MO.SIZE[moid]$)$$$NL$
+		$ELSE$
+			$$MO.SIZE[$moid$] = VALUE($ESCSTR(MO.SIZE[moid])$,
+									$SPC$$+MO.SIZE[moid]$)$$$NL$
+		$END$
+		$IF LENGTH(MO.STKORDER[moid])$
+			$$MO.STKORDER[$moid$] = $+MO.STKORDER[moid]$$$$NL$
+		$END$
+	$END$
+	$$MO.LINKER[$moid$] = $MO.LINKER[moid]$$$$NL$
+	$$MO.OSAPID[$moid$] = VALUE($ESCSTR(MO.OSAPID[moid])$,
+									$SPC$$+MO.OSAPID[moid]$)$$$NL$
+	$IF MO.LINKER[moid]$
+		$$MO.MEMREG[$moid$] = $MO.MEMREG[moid]$$$$NL$
+		$$MO.SECTION[$moid$] = $ESCSTR(MO.SECTION[moid])$$$$NL$
+		$$MO.CLASS[$moid$] = $MO.CLASS[moid]$$$$NL$
+		$$MO.SRPW[$moid$] = $MO.SRPW[moid]$$$$NL$
+		$$MO.MEMATR1[$moid$] = $MO.MEMATR1[moid]$$$$NL$
+		$$MO.MEMATR2[$moid$] = $MO.MEMATR2[moid]$$$$NL$
+	$END$
+	$$MO.MEMATR[$moid$] = VALUE($ESCSTR(MO.MEMATR[moid])$,
+									$SPC$$+MO.MEMATR[moid]$)$$$NL$
+	$$MO.ACPTN1[$moid$] = VALUE($ESCSTR(MO.ACPTN1[moid])$,
+									$SPC$$+MO.ACPTN1[moid]$)$$$NL$
+	$$MO.ACPTN2[$moid$] = VALUE($ESCSTR(MO.ACPTN2[moid])$,
+									$SPC$$+MO.ACPTN2[moid]$)$$$NL$
+	$$MO.ACPTN_R[$moid$] = VALUE($ESCSTR(MO.ACPTN_R[moid])$,
+									$SPC$$+MO.ACPTN_R[moid]$)$$$NL$
+	$$MO.ACPTN_W[$moid$] = VALUE($ESCSTR(MO.ACPTN_W[moid])$,
+									$SPC$$+MO.ACPTN_W[moid]$)$$$NL$
+	$$MO.ACPTN_X[$moid$] = VALUE($ESCSTR(MO.ACPTN_X[moid])$,
+									$SPC$$+MO.ACPTN_X[moid]$)$$$NL$
+	$IF LENGTH(MO.TEXT_LINE[moid])$
+		$$MO.TEXT_LINE[$moid$] = VALUE($ESCSTR(MO.TEXT_LINE[moid])$,
+									$SPC$$+MO.TEXT_LINE[moid]$)$$$NL$
+	$END$
+	$IF LENGTH(MO.ILABEL[moid])$
+		$$MO.ILABEL[$moid$] = $ESCSTR(MO.ILABEL[moid])$$$$NL$
+	$END$
+	$$MO.ORDER[$moid$] = $MO.ORDER[moid]$$$$NL$
+	$$MO.SEFLAG[$moid$] = 0x$FORMAT("%x", +MO.SEFLAG[moid])$$$$NL$
+	$IF LENGTH(MO.MOEND[moid])$
+		$$MO.MOEND[$moid$] = $MO.MOEND[moid]$$$$NL$
+	$END$
+	$$MO.SLABEL[$moid$] = $ESCSTR(MO.SLABEL[moid])$$$$NL$
+	$$MO.ILABEL[$moid$] = $ESCSTR(MO.ILABEL[moid])$$$$NL$
+	$$MO.MLABEL[$moid$] = $ESCSTR(MO.MLABEL[moid])$$$$NL$
+	$$MO.PLABEL[$moid$] = $ESCSTR(MO.PLABEL[moid])$$$$NL$
+	$NL$
+$END$
+
+$$OSAP.ID_LIST = {
+$JOINEACH osapid OSAP.ID_LIST ","$
+	VALUE("$osapid$", $+osapid$)
+$END$
+}$$$NL$
+$NL$
+$FOREACH osapid OSAP.ID_LIST$
+	$$OSAP.BTMP[$+osapid$] = $OSAP.BTMP[osapid]$$$$NL$
+	$$OSAP.STARTUPHOOK[$+osapid$] = $+OSAP.STARTUPHOOK[osapid]$$$$NL$
+	$$OSAP.SHUTDOWNHOOK[$+osapid$] = $+OSAP.SHUTDOWNHOOK[osapid]$$$$NL$
+	$$OSAP.ERRORHOOK[$+osapid$] = $+OSAP.ERRORHOOK[osapid]$$$$NL$
+	$$OSAP.RESTARTTASK[$+osapid$] = $ESCSTR(OSAP.RESTARTTASK[osapid])$$$$NL$
+	$$DEFAULT_ACPTN[$+osapid$] = VALUE($ESCSTR(DEFAULT_ACPTN[osapid])$,
+									$SPC$$+DEFAULT_ACPTN[osapid]$)$$$NL$
+$END$
+$NL$
+$$DEFAULT_ACPTN[TDOM_KERNEL] = $DEFAULT_ACPTN[TDOM_KERNEL]$$$$NL$
+$$DEFAULT_ACPTN[TDOM_NONE] = $DEFAULT_ACPTN[TDOM_NONE]$$$$NL$
+$NL$
+
+$$TSK.ID_LIST = {
+$JOINEACH tskid TSK.ID_LIST ","$
+	VALUE("$tskid$", $+tskid$)
+$END$
+}$$$NL$
+$NL$
+$FOREACH tskid TSK.ID_LIST$
+	$$TSK.OSAPID[$+tskid$] = VALUE("$TSK.OSAPID[tskid]$", $+TSK.OSAPID[tskid]$)$$$NL$
+	$$TSK.ACSBTMP[$+tskid$] = $TSK.ACSBTMP[tskid]$$$$NL$
+	$$TSK.ASTPTN[$+tskid$] = $TSK.ASTPTN[tskid]$$$$NL$
+	$IF LENGTH(TSK.INRESPRI[tskid])$
+		$$TSK.INRESPRI[$+tskid$] = $TSK.INRESPRI[tskid]$$$$NL$
+	$END$
+	$$TSK.TINIB_USTKSZ[$+tskid$] = $ESCSTR(TSK.TINIB_USTKSZ[tskid])$$$$NL$
+	$$TSK.TINIB_USTK  [$+tskid$] = $ESCSTR(TSK.TINIB_USTK  [tskid])$$$$NL$
+	$$TSK.TINIB_SSTKSZ[$+tskid$] = $ESCSTR(TSK.TINIB_SSTKSZ[tskid])$$$$NL$
+	$$TSK.TINIB_SSTK  [$+tskid$] = $ESCSTR(TSK.TINIB_SSTK  [tskid])$$$$NL$
+	$IF LENGTH(TSK.SHARED_USTK_ID[tskid])$
+		$$TSK.SHARED_USTK_ID[$+tskid$] = $TSK.SHARED_USTK_ID[tskid]$$$$NL$
+	$END$
+	$IF LENGTH(TSK.SHARED_SSTK_ID[tskid])$
+		$$TSK.SHARED_SSTK_ID[$+tskid$] = $TSK.SHARED_SSTK_ID[tskid]$$$$NL$
+	$END$
+	$IF LENGTH(TSK.USTACK_MO[tskid])$
+		$$TSK.USTACK_MO[$+tskid$]    = VALUE($ESCSTR(TSK.USTACK_MO[tskid])$,
+											$SPC$$+TSK.USTACK_MO[tskid]$)$$$NL$
+	$END$
+	$NL$
+$END$
+
+$FOREACH tskpri RANGE(TMIN_TPRI, TMAX_TPRI)$
+	$IF LENGTH(shared_ustack_size[tskpri])$
+		$$shared_ustack_size[$tskpri$] = $ESCSTR(shared_ustack_size[tskpri])$$$$NL$
+	$END$
+	$IF LENGTH(shared_sstack_size[tskpri])$
+		$$shared_sstack_size[$tskpri$] = $ESCSTR(shared_sstack_size[tskpri])$$$$NL$
+	$END$
+$END$
+
+$NL$
+$$HWCNT.ID_LIST = {
+$JOINEACH hwcntid HWCNT.ID_LIST ","$
+	VALUE("$hwcntid$", $+hwcntid$)
+$END$
+}$$$NL$
+
+$$USE_NONTRUST_HOOK = $USE_NONTRUST_HOOK$$$$NL$
+$NL$
+
+$ LNKSEC.*の出力
+$$numls = $numls$$$$NL$
+$NL$
+$FOREACH lsid RANGE(1, numls)$
+	$$LNKSEC.MEMREG[$lsid$] = $LNKSEC.MEMREG[lsid]$$$$NL$
+	$$LNKSEC.SECTION[$lsid$] = $ESCSTR(LNKSEC.SECTION[lsid])$$$$NL$
+	$NL$
+$END$
Index: /atk2-sc3_fl850f1l/kernel/kernel_common.tf
===================================================================
--- /atk2-sc3_fl850f1l/kernel/kernel_common.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/kernel_common.tf	(revision 117)
@@ -0,0 +1,341 @@
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$  Copyright (C) 2011-2015 by Center for Embedded Computing Systems
+$              Graduate School of Information Science, Nagoya Univ., JAPAN
+$  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+$  Copyright (C) 2011-2013 by Spansion LLC, USA
+$  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+$  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+$  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+$  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+$  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+$  Copyright (C) 2011-2015 by Witz Corporation
+$  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+$  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+$  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+$
+$  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+$  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+$  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+$  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+$      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+$      スコード中に含まれていること．
+$  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+$      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+$      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+$      の無保証規定を掲載すること．
+$  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+$      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+$      と．
+$    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+$        作権表示，この利用条件および下記の無保証規定を掲載すること．
+$    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+$        報告すること．
+$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+$      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+$      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+$      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+$      免責すること．
+$
+$  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+$  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+$  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+$  用する者に対して，AUTOSARパートナーになることを求めている．
+$
+$  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+$  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+$  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$  の責任を負わない．
+$
+$  $Id: kernel_common.tf 187 2015-06-25 03:39:04Z t_ishikawa $
+$
+
+$ =====================================================================
+$ TSK.STKとTSK.SSTKを整形
+$ =====================================================================
+
+$FOREACH tskid TSK.ID_LIST$
+$   // 省略された場合はNULLにする
+	$IF !LENGTH(TSK.STK[tskid])$
+		$TSK.STK[tskid] = "NULL"$
+	$END$
+
+$   // 省略された場合はNULLにする
+	$IF !LENGTH(TSK.SSTK[tskid])$
+		$TSK.SSTK[tskid] = "NULL"$
+	$END$
+$END$
+
+$ =====================================================================
+$  メモリオブジェクトの先頭と末尾のアドレスの取り出し
+$ =====================================================================
+
+$IF !ISFUNCTION("START_SYMBOL")$
+$FUNCTION START_SYMBOL$
+	$RESULT = SYMBOL(CONCAT("__start_", ARGV[1]))$
+$END$
+$END$
+
+$IF !ISFUNCTION("LIMIT_SYMBOL")$
+$FUNCTION LIMIT_SYMBOL$
+	$RESULT = SYMBOL(CONCAT("__limit_", ARGV[1]))$
+$END$
+$END$
+
+$ =====================================================================
+$  データセクションのLMAからVMAへのコピー
+$ =====================================================================
+
+$FUNCTION COPY_LMA$
+	$FOREACH lma LMA.ORDER_LIST$
+		$start_data = SYMBOL(LMA.START_DATA[lma])$
+		$end_data = SYMBOL(LMA.END_DATA[lma])$
+		$start_idata = SYMBOL(LMA.START_IDATA[lma])$
+		$IF !LENGTH(start_data)$
+			$ERROR$
+				$FORMAT(_("symbol '%1%' not found"), LMA.START_DATA[lma])$
+			$END$
+		$ELIF !LENGTH(end_data)$
+			$ERROR$
+				$FORMAT(_("symbol '%1%' not found"), LMA.END_DATA[lma])$
+			$END$
+		$ELIF !LENGTH(start_idata)$
+			$ERROR$
+				$FORMAT(_("symbol '%1%' not found"), LMA.START_IDATA[lma])$
+			$END$
+		$ELSE$
+			$BCOPY(start_idata, start_data, end_data - start_data)$
+		$END$
+	$END$
+$END$
+
+$
+$  タスクのスタックをextern宣言する
+$
+$FUNCTION GENERATE_EXPORT_TSK_STK$
+	$FOREACH tskid TSK.ID_LIST$
+		$IF OSAP.TRUSTED[TSK.OSAPID[tskid]]$
+			$extern_sstk = EQ(TSK.STK[tskid], "NULL") && !LENGTH(TSK.SHARED_SSTK_ID[tskid])$
+			$extern_ustk = 0$
+		$ELSE$
+			$extern_sstk = EQ(TSK.SSTK[tskid], "NULL") && !LENGTH(TSK.SHARED_SSTK_ID[tskid])$
+			$extern_ustk = EQ(TSK.STK[tskid], "NULL") && !LENGTH(TSK.SHARED_USTK_ID[tskid])$
+		$END$
+
+		$IF extern_sstk$
+			extern StackType _kernel_sstack_$tskid$[COUNT_STK_T($TSK.TINIB_SSTKSZ[tskid]$)];$NL$
+		$END$
+		$IF extern_ustk$
+			extern StackType _kernel_ustack_$tskid$[COUNT_STK_T($TSK.TINIB_USTKSZ[tskid]$)];$NL$
+		$END$
+	$END$
+	$FOREACH tskpri RANGE(TMIN_TPRI, TMAX_TPRI)$
+		$IF LENGTH(shared_ustack_size[tskpri])$
+			extern StackType _kernel_shared_ustack_$tskpri$[COUNT_STK_T(ROUND_STK_T($shared_ustack_size[tskpri]$))];$NL$
+		$END$
+		$IF LENGTH(shared_sstack_size[tskpri])$
+			extern StackType _kernel_shared_sstack_$tskpri$[COUNT_STK_T(ROUND_STK_T($shared_sstack_size[tskpri]$))];$NL$
+		$END$
+	$END$
+	$NL$
+$END$
+
+$
+$ タスクのextern宣言
+$
+$FUNCTION EXTERN_TSK$
+$ 	//タスクのextern宣言
+	$FOREACH tskid TSK.ID_LIST$
+		extern TASK($tskid$);$NL$
+	$END$
+	$NL$
+$END$
+
+$
+$ タスク初期化ブロックの出力
+$
+$FUNCTION GENERATE_TINIB_TABLE$
+	/* Task Initialization Block */$NL$
+	$IF LENGTH(TSK.ID_LIST)$
+		const TINIB tinib_table[TNUM_TASK] = {$NL$
+		$JOINEACH tskid TSK.ID_LIST ",\n"$
+			$TAB${$NL$
+			$TAB$$TAB$&TASKNAME($tskid$),$NL$
+
+$			// タスク初期化コンテキストブロック，スタック領域
+			$IF USE_TSKINICTXB$
+				$GENERATE_TSKINICTXB(tskid)$
+			$ELSE$
+				$TAB$$TAB$$TSK.TINIB_SSTKSZ[tskid]$,$NL$
+				$TAB$$TAB$(void *) $TSK.TINIB_SSTK[tskid]$,$NL$
+				$TAB$$TAB$$TSK.TINIB_USTKSZ[tskid]$,$NL$
+				$TAB$$TAB$(void *) $TSK.TINIB_USTK[tskid]$,$NL$
+			$END$
+
+			$TAB$$TAB$&(osapcb_table[$TSK.OSAPID[tskid]$]),$NL$
+			$TAB$$TAB$$FORMAT("0x%08xU", +TSK.ACSBTMP[tskid])$,$NL$
+			$TAB$$TAB$$TMAX_TPRI - TSK.PRIORITY[tskid]$,$NL$
+			$IF EQ(TSK.SCHEDULE[tskid], "NON") $
+				$TAB$$TAB$$+TPRI_MAXTASK$,$NL$
+			$ELSE$
+				$IF LENGTH(TSK.INRESPRI[tskid])$
+					$TAB$$TAB$$TMAX_TPRI - TSK.INRESPRI[tskid]$,$NL$
+				$ELSE$
+					$TAB$$TAB$$TMAX_TPRI - TSK.PRIORITY[tskid]$,$NL$
+				$END$
+			$END$
+
+			$TAB$$TAB$($TSK.ACTIVATION[tskid]$) - 1U,$NL$
+			$IF !OMIT_STKMPUINFOB$
+				$TAB$$TAB$$FORMAT("0x%08xU", +TSK.ASTPTN[tskid])$,$NL$
+				$GENERATE_STKMPUINFOB(tskid)$
+			$ELSE$
+				$TAB$$TAB$$FORMAT("0x%08xU", +TSK.ASTPTN[tskid])$$NL$
+			$END$
+			$TAB$}
+		$END$
+		$NL$
+		};$NL$
+	$ELSE$
+		TOPPERS_EMPTY_LABEL(const TINIB, tinib_table);$NL$
+	$END$
+	$NL$
+$END$
+
+$
+$  OSアプリケーション初期化ブロックの出力
+$
+$FUNCTION GENERATE_OSAPINIB_TABLE$
+	$IF LENGTH(OSAP.ID_LIST)$
+		const OSAPINIB osapinib_table[TNUM_OSAP] = {$NL$
+		$JOINEACH osapid OSAP.ID_LIST ",\n"$
+			$TAB${$NL$
+			$IF OSAP.STARTUPHOOK[osapid]$
+				$TAB$$TAB$&StartupHook_$osapid$,$NL$
+			$ELSE$
+				$TAB$$TAB$NULL,$NL$
+			$END$
+			$IF OSAP.ERRORHOOK[osapid]$
+				$TAB$$TAB$&ErrorHook_$osapid$,$NL$
+			$ELSE$
+				$TAB$$TAB$NULL,$NL$
+			$END$
+			$IF OSAP.SHUTDOWNHOOK[osapid]$
+				$TAB$$TAB$&ShutdownHook_$osapid$,$NL$
+			$ELSE$
+				$TAB$$TAB$NULL,$NL$
+			$END$
+			$IF EQ(OSAP.RESTARTTASK[osapid], "NO_RESTART_TASK")$
+				$TAB$$TAB$NULL,$NL$
+			$ELSE$
+				$TAB$$TAB$&tcb_table[$OSAP.RESTARTTASK[osapid]$],$NL$
+			$END$
+			$IF OSAP.TRUSTED[osapid]$
+				$TAB$$TAB$TA_TRUSTED,$NL$
+			$ELSE$
+				$TAB$$TAB$TA_NONTRUSTED,$NL$
+			$END$
+
+			$IF !OMIT_OSAPMPUINFOB$
+				$TAB$$TAB$$FORMAT("0x%08xU", +OSAP.BTMP[osapid])$,$NL$
+				$GENERATE_OSAPINIB_MPUINFOB(osapid)$
+			$ELSE$
+				$TAB$$TAB$$FORMAT("0x%08xU", +OSAP.BTMP[osapid])$$NL$
+			$END$
+
+			$TAB$}
+		$END$
+		$NL$
+		};$NL$
+		$NL$
+	$ELSE$
+		TOPPERS_EMPTY_LABEL(const OSAPINIB, osapinib_table);$NL$
+	$END$
+$END$
+
+$
+$  メモリオブジェクトのベースアドレス順のリストから
+$  非信頼OSAPからアクセスできない領域を除いたリスト
+$  をMO_MEMTOP_ORDER_MEMINIBに入れる
+$
+$FUNCTION SET_MEMTOP_ORDER$
+	$prev = 0$
+	$FOREACH moid SORT(MO_SECTION_LIST, "MO.BASEADDR")$
+	
+		$IF (MO.ACPTN_R[moid] != TACP_KERNEL || MO.ACPTN_W[moid] != TACP_KERNEL || MO.ACPTN_X[moid] != TACP_KERNEL)$
+			$IF !prev || (MO.LIMITADDR[prev] <= MO.BASEADDR[moid] && MO.LIMITADDR[prev] != 0)$
+				$MO_MEMTOP_ORDER_MEMINIB = APPEND(MO_MEMTOP_ORDER_MEMINIB, moid)$
+				$prev = moid$
+			$ELSE$
+$				// 同じOSAPに所属するユーザスタックの領域合併
+				$IF MO.TYPE[moid] == TOPPERS_USTACK &&
+					MO.TYPE[prev] == TOPPERS_USTACK &&
+					MO.OSAPID[prev] == MO.OSAPID[moid]$
+$					// ユーザスタック領域の併合処理
+					$MO.TSKID[prev] = 0$
+					$MO.TSKID[moid] = 0$
+					$MO.BASE[moid] = MO.BASE[prev]$
+					$MO.BASEADDR[moid] = MO.BASEADDR[prev]$
+					$IF MO.LIMITADDR[prev] < MO.LIMITADDR[moid]
+													&& MO.LIMITADDR[prev] != 0$
+						$MO.SIZE[prev] = MO.LIMITADDR[moid] - MO.BASEADDR[prev]$
+						$MO.LIMITADDR[prev] = MO.LIMITADDR[moid]$
+					$ELSE$
+						$MO.SIZE[moid] = MO.SIZE[prev]$
+						$MO.LIMITADDR[moid] = MO.LIMITADDR[prev]$
+					$END$
+				$END$
+			$END$
+		$END$
+	$END$
+$END$
+
+$
+$  隣接するメモリオブジェクトのメモリ保護属性が等しい場合は統合する
+$
+$FUNCTION MERGE_MEMINIB$
+	$merged_moid = 0$
+	$FOREACH moid MO_MEMTOP_ORDER_MEMINIB$
+		$IF merged_moid &&
+			(CFG_PASS4 ||
+			 MO.LINKER[merged_moid] && MO.LINKER[moid] &&
+			 MO.MEMREG[merged_moid] == MO.MEMREG[moid]) &&
+			((MO.MERGED_LIMITADDR[merged_moid] == MO.BASEADDR[moid] &&
+			MO.ACPTN_R[merged_moid] == MO.ACPTN_R[moid] &&
+			MO.ACPTN_W[merged_moid] == MO.ACPTN_W[moid] &&
+			MO.ACPTN_X[merged_moid] == MO.ACPTN_X[moid]) ||
+			MO.LIMITADDR[moid] == MO.BASEADDR[moid])$
+
+			$MO.MERGED_LIMITADDR[merged_moid] = MO.LIMITADDR[moid]$
+			$MO.MERGED_LIMIT[merged_moid] = MO.LIMIT[moid]$
+		$ELSE$
+			$merged_moid = moid$
+			$new_list = APPEND(new_list, merged_moid)$
+			$MO.MERGED_LIMITADDR[moid] = MO.LIMITADDR[moid]$
+			$MO.MERGED_LIMIT[moid] = MO.LIMIT[moid]$
+		$END$
+	$END$
+	$MO_MEMTOP_ORDER_MEMINIB = new_list$
+$END$
+
+$
+$ OSAPCB外部参照宣言生成
+$
+$FUNCTION EXTERN_OSAPCB$
+$ 	//OSAPCBのextern宣言
+	extern OSAPCB osapcb_table[];$NL$
+	$NL$
+$END$
+
+$
+$ TCB外部参照宣言生成
+$
+$FUNCTION EXTERN_TCB$
+$ 	//TCBのextern宣言
+	extern TCB tcb_table[];$NL$
+	$NL$
+$END$
Index: /atk2-sc3_fl850f1l/kernel/kernel_def.csv
===================================================================
--- /atk2-sc3_fl850f1l/kernel/kernel_def.csv	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/kernel_def.csv	(revision 117)
@@ -0,0 +1,72 @@
+TOPPERS_SUPPORT_ATT_MOD,#defined(TOPPERS_SUPPORT_ATT_MOD)
+SIL_ENDIAN_BIG,#defined(SIL_ENDIAN_BIG)
+SIL_ENDIAN_LITTLE,#defined(SIL_ENDIAN_LITTLE)
+TDOM_KERNEL,TDOM_KERNEL
+TDOM_NONE,TDOM_NONE
+TACP_KERNEL,TACP_KERNEL
+TACP_SHARED,TACP_SHARED
+TOPPERS_ATTSEC,TOPPERS_ATTSEC
+TOPPERS_ATTMEM,TOPPERS_ATTMEM
+TOPPERS_USTACK,TOPPERS_USTACK
+OMIT_STANDARD_MEMINIB,#defined(OMIT_STANDARD_MEMINIB)
+OMIT_IDATA,#defined(OMIT_IDATA)
+OMIT_STANDARD_DATASECINIB,#defined(OMIT_STANDARD_DATASECINIB)
+OMIT_STANDARD_BSSSECINIB,#defined(OMIT_STANDARD_BSSSECINIB)
+TARGET_REGATR,#defined(TARGET_REGATR),,TARGET_REGATR
+TARGET_MEMATR,#defined(TARGET_MEMATR),,TARGET_MEMATR
+TARGET_MIN_SSTKSZ,#defined(TARGET_MIN_SSTKSZ),,TARGET_MIN_SSTKSZ
+TARGET_MIN_USTKSZ,#defined(TARGET_MIN_USTKSZ),,TARGET_MIN_USTKSZ
+CHECK_STKSZ_ALIGN,#defined(CHECK_STKSZ_ALIGN),,CHECK_STKSZ_ALIGN
+CHECK_USTKSZ_ALIGN,#defined(CHECK_USTKSZ_ALIGN),,CHECK_USTKSZ_ALIGN
+CHECK_FUNC_ALIGN,#defined(CHECK_FUNC_ALIGN),,CHECK_FUNC_ALIGN
+CHECK_FUNC_NONNULL,#defined(CHECK_FUNC_NONNULL)
+CHECK_STACK_ALIGN,#defined(CHECK_STACK_ALIGN),,CHECK_STACK_ALIGN
+CHECK_STACK_NONNULL,#defined(CHECK_STACK_NONNULL)
+CHECK_USTACK_ALIGN,#defined(CHECK_USTACK_ALIGN),,CHECK_USTACK_ALIGN
+CHECK_USTACK_NONNULL,#defined(CHECK_USTACK_NONNULL)
+TOPPERS_LABEL_ASM,#defined(TOPPERS_LABEL_ASM)
+sizeof_StackType,sizeof(StackType)
+sizeof_MemorySizeType,sizeof(MemorySizeType)
+sizeof_void_ptr,sizeof(void*)
+sizeof_FunctionRefType,sizeof(FunctionRefType)
+sizeof_TINIB,sizeof(TINIB)
+sizeof_HWCNTINIB,sizeof(HWCNTINIB)
+offsetof_TINIB_task,"offsetof(TINIB,task)"
+offsetof_TINIB_ustk,#!defined(USE_TSKINICTXB),,"offsetof(TINIB,ustk)"
+offsetof_TINIB_sstksz,#!defined(USE_TSKINICTXB),,"offsetof(TINIB,sstksz)"
+offsetof_TINIB_sstk,#!defined(USE_TSKINICTXB),,"offsetof(TINIB,sstk)"
+offsetof_HWCNTINIB_init,"offsetof(HWCNTINIB,init)"
+sizeof_ALMINIB,sizeof(ALMINIB)
+offsetof_ALMINIB_action,"offsetof(ALMINIB,action)"
+sizeof_TFINIB,sizeof(TFINIB)
+sizeof_TrustedFunctionRefType,sizeof(TrustedFunctionRefType)
+TA_NULL,TA_NULL
+TA_NOWRITE,TA_NOWRITE
+TA_NOREAD,TA_NOREAD
+TA_EXEC,TA_EXEC
+TA_MEMINI,TA_MEMINI
+TA_MEMPRSV,TA_MEMPRSV
+TA_SDATA,TA_SDATA
+TA_UNCACHE,TA_UNCACHE
+TA_IODEV,TA_IODEV
+ENABLE,ENABLE
+DISABLE,DISABLE
+AUTO,AUTO
+TMIN_TPRI,TMIN_TPRI
+TMAX_TPRI,TMAX_TPRI
+TPRI_MAXTASK,TPRI_MAXTASK
+TMAX_NTOSAPP,TMAX_NTOSAPP
+OMIT_INITIALIZE_INTERRUPT,#defined(OMIT_INITIALIZE_INTERRUPT)
+USE_TSKINICTXB,#defined(USE_TSKINICTXB)
+OMIT_CHECK_CYCLIC_CHAIN,#defined(OMIT_CHECK_CYCLIC_CHAIN)
+MINIMUM_OSTKSZ,MINIMUM_OSTKSZ
+DEFAULT_TASKSTKSZ,DEFAULT_TASKSTKSZ
+DEFAULT_TASKSYSTEMSTKSZ,DEFAULT_TASKSYSTEMSTKSZ
+DEFAULT_ISRSTKSZ,DEFAULT_ISRSTKSZ
+DEFAULT_ISRSYSTEMSTKSZ,DEFAULT_ISRSYSTEMSTKSZ
+DEFAULT_HOOKSTKSZ,DEFAULT_HOOKSTKSZ
+DEFAULT_NONTRUSTEDHOOKSTKSZ,DEFAULT_NONTRUSTEDHOOKSTKSZ
+DEFAULT_TRUSTEDFUNCTIONSTKSZ,DEFAULT_TRUSTEDFUNCTIONSTKSZ
+DEFAULT_OSSTKSZ,DEFAULT_OSSTKSZ
+OMIT_STKMPUINFOB,#defined(OMIT_STKMPUINFOB)
+OMIT_OSAPMPUINFOB,#defined(OMIT_OSAPMPUINFOB)
Index: /atk2-sc3_fl850f1l/kernel/kernel_impl.h
===================================================================
--- /atk2-sc3_fl850f1l/kernel/kernel_impl.h	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/kernel_impl.h	(revision 117)
@@ -0,0 +1,396 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: kernel_impl.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		ATK2内部向け標準ヘッダファイル
+ *
+ *  このヘッダファイルは，カーネルを構成するプログラムのソースファイル
+ *  で必ずインクルードするべき標準ヘッダファイルである
+ *
+ *  アセンブリ言語のソースファイルからこのファイルをインクルードする時
+ *  は，TOPPERS_MACRO_ONLYを定義しておく
+ *  これにより，マクロ定義以外を除くようになっている
+ */
+
+#ifndef TOPPERS_KERNEL_IMPL_H
+#define TOPPERS_KERNEL_IMPL_H
+
+/*
+ *  カーネル内部用リネームを使用するための定義
+ */
+#ifndef TOPPERS_SVC_FUNCCALL
+#define TOPPERS_SVC_FUNCCALL
+#endif
+
+/*
+ *  アプリケーションと共通のヘッダファイル
+ */
+#define OMIT_INCLUDE_OS_LCFG
+#include "Os.h"
+
+/* 無効ポインタ */
+#ifndef NULL
+#define NULL		NULL_PTR
+#endif /* NULL */
+
+/*
+ *  型キャストを行うマクロの定義
+ */
+#ifndef CAST
+#define CAST(type, val)		((type) (val))
+#endif /* CAST */
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/* 最適化するため，依存部再定義できる型 */
+#ifndef OMIT_DATA_TYPE
+/*
+ *  カーネル内部のデータ型
+ */
+typedef uint32	InterruptNumberType;            /* 割込み番号 */
+typedef uint32	AttributeType;                  /* オブジェクトの属性 */
+typedef sint32	PriorityType;                   /* 優先度 */
+#endif /* OMIT_DATA_TYPE */
+
+typedef void (*FunctionRefType)(void);          /* プログラムの起動番地 */
+
+/*
+ *  エラーフックOFF時，サービスID取得とパラメータ取得もOFFになる
+ */
+#ifdef CFG_USE_ERRORHOOK
+
+#ifdef CFG_USE_PARAMETERACCESS
+extern _ErrorHook_Par	_errorhook_par1;
+extern _ErrorHook_Par	_errorhook_par2;
+extern _ErrorHook_Par	_errorhook_par3;
+#endif /* CFG_USE_PARAMETERACCESS */
+
+#endif /* CFG_USE_ERRORHOOK */
+
+/*
+ *  OS内部からのShutdownOSの呼び出し
+ */
+extern void internal_shutdownos(StatusType ercd);
+
+#ifdef CFG_USE_SHUTDOWNHOOK
+extern void internal_call_shtdwnhk(StatusType ercd);
+#endif /* CFG_USE_SHUTDOWNHOOK */
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+/*
+ *  ASSERTマクロ
+ */
+#ifndef NDEBUG
+#define ASSERT(exp) do {								\
+		if (!(exp)) {									\
+			fatal_file_name = __FILE__;					\
+			fatal_line_num = __LINE__;					\
+			internal_shutdownos(E_OS_SYS_ASSERT_FATAL);	\
+		}												\
+} while (0)
+
+#else /* NDEBUG */
+#define ASSERT(exp)
+#endif /* NDEBUG */
+
+/*
+ *  ターゲット依存情報の定義
+ */
+#include "target_config.h"
+
+/*
+ *  すべての関数をコンパイルするための定義
+ */
+#ifdef ALLFUNC
+#include "allfunc.h"
+#endif /* ALLFUNC */
+
+/*
+ *  アプリケーションモード値の定義
+ */
+#define APPMODE_NONE	((AppModeType) 0)   /* モードなし */
+
+/*
+ *  実行中のコンテキスト（callevel_statの下位12ビット）の値の定義
+ *  TCL_NULLの時に，本来の呼出下コンテキストが判別できなくなることに注意
+ */
+#define TCL_NULL			UINT_C(0x0000)                          /* システムサービスを呼び出せない */
+#define TCL_TASK			UINT_C(0x0001)                          /* タスク */
+#define TCL_ISR2			UINT_C(0x0002)                          /* C2ISR */
+#define TCL_PROTECT			UINT_C(0x0004)                          /* ProtectionHook */
+#define TCL_PREPOST			UINT_C(0x0008)                          /* PreTaskHook，PostTaskHook */
+#define TCL_SYS_STARTUP		UINT_C(0x0010)                          /* システム定義のStartupHook */
+#define TCL_SYS_SHUTDOWN	UINT_C(0x0020)                          /* システム定義のShutdownHook */
+#define TCL_SYS_ERROR		UINT_C(0x0040)                          /* システム定義のErrorHook */
+#define TCL_OSAP_STARTUP	UINT_C(0x0100)                          /* OSアプリケーションに所属のStartupHook */
+#define TCL_OSAP_SHUTDOWN	UINT_C(0x0200)                          /* OSアプリケーションに所属のShutdownHook */
+#define TCL_OSAP_ERROR		UINT_C(0x0400)                          /* OSアプリケーションに所属のErrorHook */
+#define TCL_STARTUP			(TCL_SYS_STARTUP | TCL_OSAP_STARTUP)    /* StartupHook */
+#define TCL_SHUTDOWN		(TCL_SYS_SHUTDOWN | TCL_OSAP_SHUTDOWN)  /* ShutdownHook */
+#define TCL_ERROR			(TCL_SYS_ERROR | TCL_OSAP_ERROR)        /* ErrorHook */
+#define TCL_OSAP_MASK		(TCL_OSAP_STARTUP | TCL_OSAP_SHUTDOWN | TCL_OSAP_ERROR)
+/* OSアプリケーションに所属のフックマスク */
+#define TCLMASK				UINT_C(0x0fff)                          /* コールレベルを示すビットのマスク */
+
+/*
+ *  システム状態 (callevel_statの上位4ビット)の値の定義
+ */
+#define TSYS_NULL			UINT_C(0x0000)      /* システム状態クリア */
+#define TSYS_DISALLINT		UINT_C(0x1000)      /* DisableAllInterrupts発行中 */
+#define TSYS_SUSALLINT		UINT_C(0x2000)      /* SuspendAllInterrupts発行中 */
+#define TSYS_SUSOSINT		UINT_C(0x4000)      /* SuspendOSInterrupts発行中 */
+#define TSYS_ISR1			UINT_C(0x8000)      /* C1ISR起動済み */
+#define TSYSMASK			UINT_C(0xf000)      /* システム状態を示すビットのマスク */
+
+
+#ifdef CFG_USE_STACKMONITORING
+#ifndef STACK_MAGIC_NUMBER
+/*
+ *  スタックモニタリング用マジックナンバーの定義
+ *  ターゲット依存部の定義は優先される
+ */
+#define STACK_MAGIC_NUMBER	0x4E434553      /* NCESのASCIIコード(0x4E434553) */
+#endif /* STACK_MAGIC_NUMBER */
+
+#ifndef TOPPERS_ISTK_MAGIC_REGION
+/* 割込みスタック用マジックナンバー領域取得マクロ */
+#define TOPPERS_ISTK_MAGIC_REGION(stk, stksz)	(stk)
+#endif /* TOPPERS_ISTK_MAGIC_REGION */
+
+#ifndef TOPPERS_SSTK_MAGIC_REGION
+/* 信頼タスクスタック用マジックナンバー領域取得マクロ */
+#ifndef USE_TSKINICTXB
+#define TOPPERS_SSTK_MAGIC_REGION(p_tinib)	((StackType *) ((p_tinib)->sstk))
+#endif /* USE_TSKINICTXB */
+#endif /* TOPPERS_SSTK_MAGIC_REGION */
+
+#endif /* CFG_USE_STACKMONITORING */
+
+#define TFN_EXIT_TASK	(TMAX_SVCID - TARGET_SVC_NUM)
+#define exit_task		(_kernel_exit_task)
+
+/*
+ *  フック種別の定義
+ */
+#define STARTUP_HOOK	UINT_C(0)
+#define SHUTDOWN_HOOK	UINT_C(1)
+#define ERROR_HOOK		UINT_C(2)
+
+/*
+ *  プロテクションフックエラーオプション
+ */
+#define PROTECTION_ERROR_OPTIONAL_BIT	(PEOB_STACKMONITORING_INTERRUPT | PEOB_STACKMONITORING_DISPATCH | PEOB_STACKMONITORING_TERMTASK)
+#define PEOB_STACKMONITORING_INTERRUPT	UINT_C(0x80)
+#define PEOB_STACKMONITORING_DISPATCH	UINT_C(0x40)
+#define PEOB_STACKMONITORING_TERMTASK	UINT_C(0x20)
+/*
+ *  callevel_statのビット操作
+ */
+#define ENTER_CALLEVEL(bit)		(callevel_stat |= (bit))
+#define LEAVE_CALLEVEL(bit)		(callevel_stat &= (uint16) ~(bit))
+
+
+/*
+ *  各システムサービスを呼び出せる処理単位
+ */
+#define CALLEVEL_ACTIVATETASK				(TCL_TASK | TCL_ISR2)
+#define CALLEVEL_TERMINATETASK				(TCL_TASK)
+#define CALLEVEL_CHAINTASK					(TCL_TASK)
+#define CALLEVEL_SCHEDULE					(TCL_TASK)
+#define CALLEVEL_GETTASKID					(TSYS_DISALLINT | TSYS_SUSALLINT | TSYS_SUSOSINT | TCL_TASK | TCL_ISR2 | TCL_ERROR | TCL_PREPOST | TCL_PROTECT)
+#define CALLEVEL_GETTASKSTATE				(TSYS_DISALLINT | TSYS_SUSALLINT | TSYS_SUSOSINT | TCL_TASK | TCL_ISR2 | TCL_ERROR | TCL_PREPOST)
+#define CALLEVEL_GETRESOURCE				(TCL_TASK | TCL_ISR2)
+#define CALLEVEL_RELEASERESOURCE			(TCL_TASK | TCL_ISR2)
+#define CALLEVEL_SETEVENT					(TCL_TASK | TCL_ISR2)
+#define CALLEVEL_CLEAREVENT					(TCL_TASK)
+#define CALLEVEL_GETEVENT					(TCL_TASK | TCL_ISR2 | TCL_ERROR | TCL_PREPOST)
+#define CALLEVEL_WAITEVENT					(TCL_TASK)
+#define CALLEVEL_GETALARMBASE				(TCL_TASK | TCL_ISR2 | TCL_ERROR | TCL_PREPOST)
+#define CALLEVEL_GETALARM					(TCL_TASK | TCL_ISR2 | TCL_ERROR | TCL_PREPOST)
+#define CALLEVEL_SETRELALARM				(TCL_TASK | TCL_ISR2)
+#define CALLEVEL_SETABSALARM				(TCL_TASK | TCL_ISR2)
+#define CALLEVEL_CANCELALARM				(TCL_TASK | TCL_ISR2)
+#define CALLEVEL_GETACTIVEAPPMODE			(TCL_TASK | TCL_ISR2 | TCL_ERROR | TCL_PREPOST | TCL_STARTUP | TCL_SHUTDOWN)
+#define CALLEVEL_SHUTDOWNOS					(TCL_TASK | TCL_ISR2 | TCL_ERROR | TCL_STARTUP)
+#define CALLEVEL_GETISRID					(TSYS_DISALLINT | TSYS_SUSALLINT | TSYS_SUSOSINT | TCL_TASK | TCL_ISR2 | TCL_ERROR | TCL_PROTECT)
+#define CALLEVEL_INCREMENTCOUNTER			(TCL_TASK | TCL_ISR2)
+#define CALLEVEL_GETCOUNTERVALUE			(TCL_TASK | TCL_ISR2)
+#define CALLEVEL_GETELAPSEDVALUE			(TCL_TASK | TCL_ISR2)
+#define CALLEVEL_STARTSCHEDULETABLEREL		(TCL_TASK | TCL_ISR2)
+#define CALLEVEL_STARTSCHEDULETABLEABS		(TCL_TASK | TCL_ISR2)
+#define CALLEVEL_STOPSCHEDULETABLE			(TCL_TASK | TCL_ISR2)
+#define CALLEVEL_NEXTSCHEDULETABLE			(TCL_TASK | TCL_ISR2)
+#define CALLEVEL_GETSCHEDULETABLESTATUS		(TCL_TASK | TCL_ISR2)
+#define CALLEVEL_GETAPPLICATIONID			(TSYS_DISALLINT | TSYS_SUSALLINT | TSYS_SUSOSINT | TCL_TASK | TCL_ISR2 | TCL_ERROR | TCL_PREPOST | TCL_STARTUP | TCL_SHUTDOWN | TCL_PROTECT)
+#define CALLEVEL_CALLTRUSTEDFUNCTION		(TCL_TASK | TCL_ISR2)
+#define CALLEVEL_CHECKISRMEMORYACCESS		(TCL_TASK | TCL_ISR2 | TCL_ERROR | TCL_PROTECT)
+#define CALLEVEL_CHECKTASKMEMORYACCESS		(TCL_TASK | TCL_ISR2 | TCL_ERROR | TCL_PROTECT)
+#define CALLEVEL_CHECKOBJECTACCESS			(TCL_TASK | TCL_ISR2 | TCL_ERROR | TCL_PROTECT)
+#define CALLEVEL_CHECKOBJECTOWNERSHIP		(TCL_TASK | TCL_ISR2 | TCL_ERROR | TCL_PROTECT)
+#define CALLEVEL_GETAPPLICATIONSTATE		(TSYS_DISALLINT | TSYS_SUSALLINT | TSYS_SUSOSINT | TCL_TASK | TCL_ISR2 | TCL_ERROR | TCL_PREPOST | TCL_STARTUP | TCL_SHUTDOWN | TCL_PROTECT)
+#define CALLEVEL_DISABLEINTERRUPTSOURCE		(TCL_TASK | TCL_ISR2 | TCL_ERROR | TCL_PREPOST | TCL_STARTUP | TCL_SHUTDOWN | TCL_PROTECT | TSYS_DISALLINT | TSYS_SUSALLINT | TSYS_SUSOSINT)
+#define CALLEVEL_ENABLEINTERRUPTSOURCE		(TCL_TASK | TCL_ISR2 | TCL_ERROR | TCL_PREPOST | TCL_STARTUP | TCL_SHUTDOWN | TCL_PROTECT | TSYS_DISALLINT | TSYS_SUSALLINT | TSYS_SUSOSINT)
+#define CALLEVEL_GETFAULTYCONTEXT			(TCL_PROTECT)
+#define CALLEVEL_IOCSEND					(TCL_TASK | TCL_ISR2)
+#define CALLEVEL_IOCWRITE					(TCL_TASK | TCL_ISR2)
+#define CALLEVEL_IOCRECEIVE					(TCL_TASK | TCL_ISR2)
+#define CALLEVEL_IOCREAD					(TCL_TASK | TCL_ISR2)
+#define CALLEVEL_IOCEMPTYQUEUE				(TCL_TASK | TCL_ISR2)
+#define CALLEVEL_ALLOWACCESS				(TCL_TASK | TCL_ISR2)
+#define CALLEVEL_TERMINATEAPPLICATION		(TCL_TASK | TCL_ISR2 | TCL_OSAP_ERROR)
+
+/*
+ *  その他の定数値（標準割込みモデル）
+ */
+#define TIPM_ENAALL		UINT_C(0)   /* 割込み優先度マスク全解除 */
+
+/*
+ *  オブジェクト属性の定義（標準割込みモデル）
+ */
+#define ENABLE		UINT_C(0x01)
+#define DISABLE		UINT_C(0x00)
+
+
+/*
+ *  OS内部用無効なシステムサービスID
+ */
+#define OSServiceId_Invalid		((OSServiceIdType) 0xff)
+
+/*
+ *  ヘッダファイルを持たないモジュールの関数・変数の宣言
+ */
+#ifndef TOPPERS_MACRO_ONLY
+
+#ifdef TOPPERS_StartOS
+/*
+ *  アプリケーションモードの数
+ */
+extern const AppModeType	tnum_appmode;
+
+#endif /* TOPPERS_StartOS */
+
+/*
+ *  OS実行制御のための変数（osctl_manage.c）
+ */
+extern uint16				callevel_stat;  /* 実行中のコンテキスト */
+extern AppModeType			appmodeid;      /* アプリケーションモードID */
+
+/*
+ *  カーネル動作状態フラグ
+ */
+extern boolean				kerflg;
+
+/*
+ *  特権モードで動作中かを示すフラグ
+ */
+extern boolean				run_trusted;
+
+/*
+ *  エラーフック呼び出しのための宣言（osctl.c）
+ */
+#ifdef CFG_USE_ERRORHOOK
+extern void internal_call_errorhook(StatusType ercd, OSServiceIdType svcid);
+#endif /* CFG_USE_ERRORHOOK */
+
+/*
+ *  ポストタスクフック/プレタスクフック
+ *  スタックモニタリング機能の初期化/プロテクションフック呼び出しのための宣言（osctl.c）
+ */
+#ifdef CFG_USE_POSTTASKHOOK
+extern void call_posttaskhook(void);
+#endif /* CFG_USE_POSTTASKHOOK */
+
+#ifdef CFG_USE_PRETASKHOOK
+extern void call_pretaskhook(void);
+#endif /* CFG_USE_PRETASKHOOK */
+
+#ifdef CFG_USE_STACKMONITORING
+extern void init_stack_magic_region(void);
+#endif /* CFG_USE_STACKMONITORING */
+
+extern void cancel_shutdown_hook(void);
+extern void callevel_chk_shutdown(StatusType ercd);
+
+extern void call_protectionhk_main(StatusType peob_ercd);
+
+/*
+ *  各モジュールの初期化（Os_Lcfg.c）
+ */
+extern void object_initialize(void);
+
+/*
+ *  各モジュールの終了処理（Os_Lcfg.c）
+ */
+extern void object_terminate(void);
+
+/*
+ *  非タスクコンテキスト用のスタック領域（Os_Lcfg.c）
+ */
+extern const MemorySizeType	_ostksz;        /* スタック領域のサイズ（丸めた値） */
+extern StackType * const	_ostk;          /* スタック領域の先頭番地 */
+#ifdef TOPPERS_OSTKPT
+extern StackType * const	_ostkpt;        /* スタックポインタの初期値 */
+#endif /* TOPPERS_OSTKPT */
+
+extern const MemorySizeType	_nthkstksz;
+extern StackType * const	_nthkstk;
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_KERNEL_IMPL_H */
Index: /atk2-sc3_fl850f1l/kernel/kernel_int.h
===================================================================
--- /atk2-sc3_fl850f1l/kernel/kernel_int.h	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/kernel_int.h	(revision 117)
@@ -0,0 +1,124 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: kernel_int.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		Os_Lcfg.c（およびcfg1_out.c）用ヘッダファイル
+ */
+
+#ifndef TOPPERS_KERNEL_INT_H
+#define TOPPERS_KERNEL_INT_H
+
+/*
+ *  カーネル標準ヘッダファイル
+ */
+#include "kernel_impl.h"
+
+/*
+ *  カーネルの各ヘッダファイル
+ */
+#include "task.h"
+#include "counter.h"
+#include "alarm.h"
+#include "interrupt.h"
+#include "resource.h"
+#include "scheduletable.h"
+#include "memory.h"
+#include "ioc_impl.h"
+
+/*
+ *  メインルーチン名定義用のマクロ
+ */
+#define TASKNAME(TaskName)	TaskMain ## TaskName
+#define ISRNAME(ISRName)	ISRMain ## ISRName
+
+/*
+ *  オブジェクトの属性の定義（コンフィギュレーションファイルでのみ使用）
+ */
+
+/*
+ *  イベントマスク値
+ */
+#define AUTO		UINT_C(0x00)    /* イベントマスク値=AUTO */
+
+#define TA_NOWRITE		UINT_C(0x01)    /* 書込みアクセス禁止 */
+#define TA_NOREAD		UINT_C(0x02)    /* 読出しアクセス禁止 */
+#define TA_EXEC			UINT_C(0x04)    /* 実行アクセス許可 */
+#define TA_MEMINI		UINT_C(0x08)    /* メモリの初期化を行う */
+#define TA_MEMPRSV		UINT_C(0x10)    /* メモリの初期化を行わない */
+#define TA_SDATA		UINT_C(0x20)    /* ショートデータ領域に配置 */
+#define TA_UNCACHE		UINT_C(0x40)    /* キャッシュ不可 */
+#define TA_IODEV		UINT_C(0x80)    /* 周辺デバイスの領域 */
+
+#ifdef TOPPERS_TARGET_SUPPORT_ATT_MOD
+#define TOPPERS_SUPPORT_ATT_MOD         /* ATT_MODがサポートされている */
+#endif /* TOPPERS_TARGET_SUPPORT_ATT_MOD */
+
+/*
+ * OSアプリケーションID（HRP2の保護ドメインID）
+ */
+#define TDOM_KERNEL		(-1)            /* カーネルドメイン */
+#define TDOM_NONE		(-2)            /* 無所属（保護ドメインに属さない）*/
+
+#define TA_NULL			UINT_C(0)       /* オブジェクト属性を指定しない */
+
+/*
+ * OSアプリケーション関係のマクロ
+ */
+#define TMAX_NTOSAPP		32          /* 非信頼OSアプリケーションの最大数 */
+
+#endif /* TOPPERS_KERNEL_INT_H */
Index: /atk2-sc3_fl850f1l/kernel/kernel_mem.tf
===================================================================
--- /atk2-sc3_fl850f1l/kernel/kernel_mem.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/kernel_mem.tf	(revision 117)
@@ -0,0 +1,690 @@
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$  Copyright (C) 2011-2015 by Center for Embedded Computing Systems
+$              Graduate School of Information Science, Nagoya Univ., JAPAN
+$  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+$  Copyright (C) 2011-2013 by Spansion LLC, USA
+$  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+$  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+$  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+$  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+$  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+$  Copyright (C) 2011-2015 by Witz Corporation
+$  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+$  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+$  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+$
+$  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+$  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+$  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+$  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+$      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+$      スコード中に含まれていること．
+$  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+$      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+$      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+$      の無保証規定を掲載すること．
+$  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+$      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+$      と．
+$    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+$        作権表示，この利用条件および下記の無保証規定を掲載すること．
+$    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+$        報告すること．
+$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+$      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+$      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+$      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+$      免責すること．
+$
+$  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+$  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+$  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+$  用する者に対して，AUTOSARパートナーになることを求めている．
+$
+$  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+$  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+$  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$  の責任を負わない．
+$
+$  $Id: kernel_mem.tf 187 2015-06-25 03:39:04Z t_ishikawa $
+$
+
+$  パス2，パス3からの情報の読込み
+$
+$INCLUDE "cfg2_out.tf"$
+$INCLUDE "cfg3_out.tf"$
+$INCLUDE "kernel/kernel_common.tf"$
+
+$
+$  データセクションのLMAからVMAへのコピー
+$
+$COPY_LMA()$
+
+$ =====================================================================
+$ kernel_mem.cの共通部分の生成
+$ =====================================================================
+
+$FILE "kernel_mem.c"$
+/* kernel_mem.c */$NL$
+#include "kernel/kernel_int.h"$NL$
+#include "Os_Lcfg.h"$NL$
+#include "kernel_mem.h"$NL$
+#ifndef TOPPERS_EMPTY_LABEL$NL$
+#define TOPPERS_EMPTY_LABEL(x, y) x y[0]$NL$
+#endif$NL$
+$NL$
+
+/*$NL$
+$SPC$*  Include Directives (#include)$NL$
+$SPC$*/$NL$
+$NL$
+$INCLUDES$
+$NL$
+
+$ =====================================================================
+$ シンボルと仮メモリオブジェクト初期化ブロックの読込みと前処理
+$ =====================================================================
+
+$
+$ シンボルと仮メモリオブジェクト初期化ブロックの読込み
+$
+$ MO.BASEADDR[moid]：メモリオブジェクトの先頭番地
+$ MO.LIMITADDR[moid]：メモリオブジェクトの上限番地
+$ MO.POFFSET[moid]：物理アドレスとのオフセット
+$ MO_MEMTOP_LIST：サイズが0でないメモリオブジェクトのリスト
+
+$IF !OMIT_STANDARD_MEMINIB$
+	$MO_MEMTOP_LIST = {}$
+	$memtop_table = SYMBOL("memtop_table")$
+	$offset = 0$
+	$FOREACH moid MO_START_LIST$
+		$IF MO.LINKER[moid]$
+			$MO.BASEADDR[moid] = START_SYMBOL(MO.MLABEL[moid])$
+			$MO.LIMITADDR[moid] = LIMIT_SYMBOL(MO.MLABEL[moid])$
+			$MO.POFFSET[moid] = 0$
+		$ELSE$
+			$MO.BASEADDR[moid] = PEEK(memtop_table + offset, sizeof_void_ptr)$
+			$offset = offset + sizeof_void_ptr$
+			$MO.LIMITADDR[moid] = (MO.BASEADDR[moid] + MO.SIZE[moid]) & ((1 << sizeof_void_ptr * 8) - 1)$
+			$IF LENGTH(MO.PADDR[moid])$
+				$MO.POFFSET[moid] = MO.PADDR[moid] - MO.BASEADDR[moid]$
+			$ELSE$
+				$MO.POFFSET[moid] = 0$
+			$END$
+		$END$
+
+		$IF MO.BASEADDR[moid] != MO.LIMITADDR[moid]$
+			$IF MO.BASEADDR[moid] < MO.LIMITADDR[moid]
+											|| MO.LIMITADDR[moid] == 0$
+				$MO_MEMTOP_LIST = APPEND(MO_MEMTOP_LIST, moid)$
+			$ELIF MO.TYPE[moid] == TOPPERS_ATTMEM$
+				$ERROR MO.TEXT_LINE[moid]$ 
+					$FORMAT(_("%1% `%2%\' is too large"),
+								"size", MO.SIZE[moid])$
+				$END$
+			$ELSE$
+				$ERROR MO.TEXT_LINE[moid]$
+					$FORMAT(_("illegal memory object size"))$
+				$END$
+			$END$
+		$END$
+	$END$
+$END$
+
+$
+$ メモリオブジェクトの重なりのチェック
+$
+$ MO.SUPPRESSLIMIT[moid]：次のメモリオブジェクトと隣接している
+$ MO.MERGED[moid]：併合されたユーザスタック領域の併合先
+$ MO.MERGELAST[moid]：併合された最後のユーザスタック領域（併合先のメモ
+$                     リオブジェクトに設定）
+$ MO_MEMTOP_ORDER：メモリオブジェクトのベースアドレス順のリスト
+
+$MO_MEMTOP_ORDER = {}$
+$prev = 0$
+$FOREACH moid SORT(MO_MEMTOP_LIST, "MO.BASEADDR")$
+$	// ユーザスタック領域は併合される前の情報を用いてタスクスタックのMPU情報生成
+	$IF MO.TYPE[moid] == TOPPERS_USTACK$
+		$MO.NOMERGE_BASEADDR[moid] = MO.BASEADDR[moid]$
+		$MO.NOMERGE_LIMITADDR[moid] = MO.LIMITADDR[moid]$
+	$END$
+	$IF !prev || (MO.LIMITADDR[prev] <= MO.BASEADDR[moid]
+											&& MO.LIMITADDR[prev] != 0)$
+$		// メモリオブジェクトの領域に重なりがない場合
+		$IF prev && MO.LIMITADDR[prev] == MO.BASEADDR[moid]$
+$			// メモリオブジェクトの領域が連続している場合
+			$IF MO.TYPE[moid] == TOPPERS_USTACK
+					&& MO.TYPE[prev] == TOPPERS_USTACK
+					&& MO.OSAPID[prev] == MO.OSAPID[moid]$
+$				// ユーザスタック領域の併合処理（連続している場合）
+				$MO.BASE[moid] = MO.BASE[prev]$
+				$MO.BASEADDR[moid] = MO.BASEADDR[prev]$
+				$MO.SIZE[prev] = MO.LIMITADDR[moid] - MO.BASEADDR[prev]$
+				$MO.LIMITADDR[prev] = MO.LIMITADDR[moid]$
+				$MO.SIZE[moid] = MO.SIZE[prev]$
+				$MO.MERGED[moid] = prev$
+				$MO.MERGELAST[prev] = moid$
+			$ELSE$
+				$MO.SUPPRESSLIMIT[prev] = 1$
+				$MO_MEMTOP_ORDER = APPEND(MO_MEMTOP_ORDER, moid)$
+				$prev = moid$
+			$END$
+		$ELSE$
+$			// メモリオブジェクトの領域が連続していない場合 
+			$MO_MEMTOP_ORDER = APPEND(MO_MEMTOP_ORDER, moid)$
+			$prev = moid$
+		$END$
+	$ELSE$
+$		// メモリオブジェクトの領域に重なりがある場合
+		$IF MO.TYPE[moid] == TOPPERS_USTACK && !MO.LINKER[moid]
+			&& MO.TYPE[prev] == TOPPERS_USTACK && !MO.LINKER[prev]
+			&& MO.OSAPID[prev] == MO.OSAPID[moid]$
+$			// ユーザスタック領域の併合処理（重なりがある場合） 
+			$MO.TSKID[prev] = 0$
+			$MO.TSKID[moid] = 0$
+			$MO.BASE[moid] = MO.BASE[prev]$
+			$MO.BASEADDR[moid] = MO.BASEADDR[prev]$
+			$IF MO.LIMITADDR[prev] < MO.LIMITADDR[moid]
+											&& MO.LIMITADDR[prev] != 0$
+				$MO.SIZE[prev] = MO.LIMITADDR[moid] - MO.BASEADDR[prev]$
+				$MO.LIMITADDR[prev] = MO.LIMITADDR[moid]$
+			$ELSE$
+				$MO.LIMITADDR[moid] = MO.LIMITADDR[prev]$
+			$END$
+			$MO.SIZE[moid] = MO.SIZE[prev]$
+			$MO.MERGED[moid] = prev$
+			$MO.MERGELAST[prev] = moid$
+		$ELSE$
+$			// メモリオブジェクトの領域に重なりがある場合
+			$IF !(MO.TYPE[moid] == TOPPERS_USTACK && MO.TYPE[prev] == TOPPERS_USTACK)$
+$				// エラーメッセージの出力
+				$IF MO.TYPE[moid] == TOPPERS_ATTMEM$
+					$ERROR MO.TEXT_LINE[moid]$
+						$FORMAT(_("memory object overlaps with another memory object"))$
+					$END$
+				$ELIF MO.TYPE[prev] == TOPPERS_ATTMEM$
+					$ERROR MO.TEXT_LINE[prev]$
+						$FORMAT(_("memory object overlaps with another memory object"))$
+					$END$
+				$ELIF MO.TYPE[moid] == TOPPERS_USTACK$
+					$ERROR MO.TEXT_LINE[moid]$
+						$FORMAT(_("user stack area overlaps with another memory object"))$
+					$END$
+				$ELIF MO.TYPE[prev] == TOPPERS_USTACK$
+					$ERROR MO.TEXT_LINE[prev]$
+						$FORMAT(_("user stack area overlaps with another memory object"))$
+					$END$
+				$ELSE$
+					$ERROR MO.TEXT_LINE[moid]$
+						$FORMAT(_("memory objects overlap"))$
+					$END$
+				$END$
+			$END$
+		$END$
+	$END$
+$END$
+$IF MO.LIMITADDR[prev] == 0$
+	$MO.SUPPRESSLIMIT[prev] = 1$
+$END$
+
+$ =====================================================================
+$ メモリオブジェクト初期化ブロックの生成
+$ =====================================================================
+
+$IF ISFUNCTION("GENERATE_MEMINIB_TABLE")$
+$	// ターゲット依存部のメモリオブジェクト初期化ブロック生成処理を呼ぶ
+	$GENERATE_MEMINIB_TABLE()$
+$ELIF !OMIT_STANDARD_MEMINIB$
+$	// メモリオブジェクト初期化ブロックに出力するエントリの決定
+$
+$	// tnum_meminib：メモリオブジェクト初期化ブロックに出力するエントリ数
+$	// genzero：アドレス0に対応するエントリを出力する
+	$tnum_meminib = 0$
+	$prev = 0$
+	$FOREACH moid MO_MEMTOP_ORDER$
+		$IF !prev && MO.BASEADDR[moid] != 0$
+			$genzero = 1$
+			$tnum_meminib = tnum_meminib + 1$
+		$END$
+		$IF LENGTH(MO.SUPPRESSLIMIT[moid])$
+			$tnum_meminib = tnum_meminib + 1$
+		$ELSE$
+			$tnum_meminib = tnum_meminib + 2$
+		$END$
+		$prev = moid$
+	$END$
+
+$	// tsize_meminibの妥当性チェック
+	$IF tsize_meminib < tnum_meminib$
+		$ERROR$$FORMAT(_("illegal memory object initialization block size"))$$END$
+	$END$
+
+$	// tnum_meminibの生成
+	const uint32 tnum_meminib = $tnum_meminib$U;$NL$
+	$NL$
+
+$	// memtop_tableの生成
+	void *const memtop_table[$tsize_meminib$] = {$NL$
+	$IF LENGTH(genzero)$
+		$TAB$0,$NL$
+	$END$
+	$JOINEACH moid MO_MEMTOP_ORDER ",\n"$
+		$IF MO.LINKER[moid]$
+			$TAB$&__start_$MO.MLABEL[moid]$
+			$SPC$/* $FORMAT("%x", MO.BASEADDR[moid])$ */
+			$IF !LENGTH(MO.SUPPRESSLIMIT[moid])$
+				 ,$NL$$TAB$&__limit_$MO.MLABEL[ALT(MO.MERGELAST[moid],moid)]$ 
+				$SPC$/* $FORMAT("%x", MO.LIMITADDR[moid])$ */
+			$END$
+		$ELSE$
+			$TAB$(void *)($MO.BASE[moid]$)
+			$SPC$/* $FORMAT("%x", MO.BASEADDR[moid])$ */
+			$IF !LENGTH(MO.SUPPRESSLIMIT[moid])$
+				,$NL$$TAB$(void *)(((uint8 *)($MO.BASE[moid]$)) + ($MO.SIZE[moid]$))
+				$SPC$/* $FORMAT("%x", MO.LIMITADDR[moid])$ */
+			$END$
+		$END$
+	$END$
+	$IF tnum_meminib < tsize_meminib$
+		$FOREACH i RANGE(tnum_meminib + 1, tsize_meminib)$
+			,$NL$$TAB$NULL
+		$END$
+	$END$$NL$
+	};$NL$
+	$NL$
+
+$	// meminib_tableの生成
+	const MEMINIB meminib_table[$tsize_meminib$] = {$NL$
+	$IF LENGTH(genzero)$
+		$TAB${ TA_NULL, TACP_KERNEL, TACP_KERNEL, TACP_KERNEL },$NL$
+	$END$
+	$JOINEACH moid MO_MEMTOP_ORDER ",\n"$
+		$TAB${
+		$IF MO.TYPE[moid] == TOPPERS_USTACK$
+			$SPC$TOPPERS_USTACK|($MO.MEMATR[moid]$),
+		$ELSE$
+			$IF MO.TYPE[moid] == TOPPERS_ATTMEM$
+				$SPC$TOPPERS_ATTMEM|($FORMAT("0x%xU", +MO.MEMATR[moid])$),
+			$ELSE$
+				$SPC$TOPPERS_ATTSEC|($FORMAT("0x%xU", +MO.MEMATR[moid])$),
+			$END$
+		$END$
+		$SPC$$MO.ACPTN_R[moid]$,
+		$SPC$$MO.ACPTN_W[moid]$,
+		$SPC$$MO.ACPTN_X[moid]$
+		$SPC$}
+		$IF !LENGTH(MO.SUPPRESSLIMIT[moid])$
+			,$NL$$TAB${ TA_NULL, TACP_KERNEL, TACP_KERNEL, TACP_KERNEL }
+		$END$
+	$END$
+	$IF tnum_meminib < tsize_meminib$
+		$FOREACH i RANGE(tnum_meminib + 1, tsize_meminib)$
+			,$NL$$TAB${ 0U, 0U, 0U, 0U }
+		$END$
+	$END$$NL$
+	};$NL$
+	$NL$
+$END$
+
+$
+$  dataセクション初期化ブロックの生成
+$
+$IF !OMIT_IDATA && LENGTH(DATASEC_LIST) && !LENGTH(DATASEC_LIST_OPTIMIZED)$
+$	// サイズが0でないdataセクションのリスト（MO_DATASEC_LIST）を作成
+$	// パス3で作成していない場合には，ここで作成する．
+	$MO_DATASEC_LIST = {}$
+	$FOREACH moid DATASEC_LIST$
+		$IF MO.BASEADDR[moid] != MO.LIMITADDR[moid]$
+			$MO_DATASEC_LIST = APPEND(MO_DATASEC_LIST, moid)$
+		$END$
+	$END$
+$END$
+
+$IF !OMIT_STANDARD_DATASECINIB$
+	/*$NL$
+	$SPC$*	Data Section Management Functions$NL$
+	$SPC$*/$NL$
+	$NL$
+
+	$IF !OMIT_IDATA && LENGTH(DATASEC_LIST)$
+$	    // dataセクション初期化ブロックで使うシンボルのextern宣言
+        $FOREACH moid MO_DATASEC_LIST$
+            extern uint8 __start_$MO.SLABEL[moid]$;$NL$
+            extern uint8 __end_$MO.SLABEL[moid]$;$NL$
+            extern uint8 __start_$MO.ILABEL[moid]$;$NL$
+        $END$$NL$
+
+$	    // dataセクションの数
+        #define TNUM_DATASEC		$IF !OMIT_IDATA$$LENGTH(MO_DATASEC_LIST)$U$ELSE$0$END$$NL$
+        #define TNUM_DATASEC_TBL	$IF !OMIT_IDATA$$LENGTH(DATASEC_LIST)$U$ELSE$0$END$$NL$
+        $NL$
+
+        $IF ISFUNCTION("DEFINE_CONST_VAR")$
+            $DEFINE_CONST_VAR("const uint32", "tnum_datasec")$ = TNUM_DATASEC;$NL$
+        $ELSE$
+            const uint32 tnum_datasec = TNUM_DATASEC;$NL$
+        $END$
+        $NL$
+
+		$IF ISFUNCTION("DEFINE_CONST_VAR")$
+			$DEFINE_CONST_VAR("const DATASECINIB", "datasecinib_table[TNUM_DATASEC_TBL]")$ = {
+		$ELSE$
+			const DATASECINIB datasecinib_table[TNUM_DATASEC_TBL] = {
+		$END$
+		$IF LENGTH(MO_DATASEC_LIST)$
+			$NL$
+			$JOINEACH moid MO_DATASEC_LIST ",\n"$
+				$TAB${ &__start_$MO.SLABEL[moid]$, &__end_$MO.SLABEL[moid]$, 
+				&__start_$MO.ILABEL[moid]$ }
+			$END$$NL$
+		$ELSE$
+			{ 0U, 0U, 0U }
+		$END$
+		};$NL$
+	$ELSE$
+        const uint32 tnum_datasec = 0;$NL$
+		TOPPERS_EMPTY_LABEL(const DATASECINIB, datasecinib_table);$NL$
+	$END$$NL$
+$END$
+
+$
+$  bssセクション初期化ブロックの生成
+$
+$IF LENGTH(BSSSEC_LIST) && !LENGTH(BSSSEC_LIST_OPTIMIZED)$
+$	// サイズが0でないbssセクションのリスト（MO_BSSSEC_LIST）を作成
+	$MO_BSSSEC_LIST = {}$
+	$FOREACH moid BSSSEC_LIST$
+		$IF MO.BASEADDR[moid] != MO.LIMITADDR[moid]$
+			$MO_BSSSEC_LIST = APPEND(MO_BSSSEC_LIST, moid)$
+		$END$
+	$END$
+$END$
+
+$IF !OMIT_STANDARD_BSSSECINIB$
+	/*$NL$
+	$SPC$*	BSS Section Management Functions$NL$
+	$SPC$*/$NL$
+	$NL$
+
+	$IF LENGTH(BSSSEC_LIST)$
+$	    // bssセクション初期化ブロックで使うシンボルのextern宣言
+        $FOREACH moid MO_BSSSEC_LIST$
+            extern uint8 __start_$MO.SLABEL[moid]$;$NL$
+            extern uint8 __end_$MO.SLABEL[moid]$;$NL$
+        $END$$NL$
+
+$		// bssセクションの数
+		const uint32 tnum_bsssec = $LENGTH(MO_BSSSEC_LIST)$U;$NL$
+		$NL$
+
+$		// bssセクション初期化ブロック
+		const BSSSECINIB bsssecinib_table[$LENGTH(BSSSEC_LIST)$] = {
+		$IF LENGTH(MO_BSSSEC_LIST)$
+			$NL$
+			$JOINEACH moid MO_BSSSEC_LIST ",\n"$
+				$TAB${ &__start_$MO.SLABEL[moid]$, &__end_$MO.SLABEL[moid]$ }
+			$END$$NL$
+		$ELSE$
+			{ 0, 0 }
+		$END$
+		};$NL$
+	$ELSE$
+		const uint32 tnum_bsssec = 0U;$NL$
+		TOPPERS_EMPTY_LABEL(const BSSSECINIB, bsssecinib_table);$NL$
+	$END$$NL$
+$END$
+
+$ ターゲット依存部で必要なMPUINFOBを出力する
+$GENERATE_TARGET_MPUINFOB()$
+
+$FOREACH moid MO_MEMTOP_LIST$
+$	// ユーザスタック領域は併合される前の情報を用いてタスクスタックのMPU情報生成
+	$IF MO.TYPE[moid] == TOPPERS_USTACK$
+$		// 併合された情報を退避して，タスク初期化ブロック生成後に復帰
+		$tmp = MO.BASEADDR[moid]$
+		$MO.BASEADDR[moid] = MO.NOMERGE_BASEADDR[moid]$
+		$MO.NOMERGE_BASEADDR[moid] = tmp$
+		$tmp = MO.LIMITADDR[moid]$
+		$MO.LIMITADDR[moid] = MO.NOMERGE_LIMITADDR[moid]$
+		$MO.NOMERGE_LIMITADDR[moid] = tmp$
+	$END$
+$END$
+
+$ タスク初期化ブロックを出力する(kernel_common.tf)
+$GENERATE_TINIB_TABLE()$
+
+$FOREACH moid MO_MEMTOP_LIST$
+$	// 併合された情報を復帰
+	$IF MO.TYPE[moid] == TOPPERS_USTACK$
+		$MO.BASEADDR[moid] = MO.NOMERGE_BASEADDR[moid]$
+		$MO.LIMITADDR[moid] = MO.NOMERGE_LIMITADDR[moid]$
+	$END$
+$END$
+
+$ OSアプリケーション初期化ブロックを出力する(kernel_common.tf)
+$GENERATE_OSAPINIB_TABLE()$
+
+$FILE "kernel_mem.h"$
+/* kernel_mem.h */$NL$
+#ifndef TOPPERS_KERNEL_MEM_H$NL$
+#define TOPPERS_KERNEL_MEM_H$NL$
+/*$NL$
+$SPC$*  Include Directives (#include)$NL$
+$SPC$*/$NL$
+$NL$
+$INCLUDES$
+$NL$
+$NL$
+
+$IF !ISFUNCTION("GENERATE_MEMINIB_TABLE") && !OMIT_STANDARD_MEMINIB$
+$	// memtop_tableで参照するラベルの宣言の生成
+	$FOREACH moid MO_MEMTOP_ORDER$
+		$IF MO.LINKER[moid]$
+			extern uint8 __start_$MO.MLABEL[moid]$;$NL$
+			$IF !LENGTH(MO.SUPPRESSLIMIT[moid])$
+				extern uint8 __limit_$MO.MLABEL[ALT(MO.MERGELAST[moid],moid)]$;
+				$NL$
+			$END$
+		$END$
+	$END$$NL$
+$END$
+
+$ タスクスタック領域をextern宣言する(kernel_common.tf)
+$GENERATE_EXPORT_TSK_STK()$
+
+$ タスクをextern宣言する(kernel_common.tf)
+$EXTERN_TSK()$
+
+$ OSAP管理ブロックをextern宣言する(kernel_common.tf)
+$EXTERN_OSAPCB()$
+
+$ タスク管理ブロックをextern宣言する(kernel_common.tf)
+$EXTERN_TCB()$
+
+#endif /* TOPPERS_KERNEL_MEM_H */$NL$
+
+$ =====================================================================
+$ オブジェクト管理領域等に関するエラーチェック
+$ =====================================================================
+
+$
+$ メモリ領域を含むメモリオブジェクトのサーチ
+$
+$FUNCTION SEARCH_MO$
+	$_base = ARGV[1]$
+	$_limit = (ARGV[1] + ARGV[2]) & ((1 << sizeof_void_ptr * 8) - 1)$
+	$IF _limit < _base && _limit != 0$
+		$RESULT = 0$
+	$ELSE$
+		$i = 1$
+		$j = LENGTH(MO_MEMTOP_ORDER)$
+		$found = 0$
+
+		$WHILE !found && i <= j$
+			$k = (i + j) / 2$
+			$_moid = AT(MO_MEMTOP_ORDER,k-1)$
+			$IF _base < MO.BASEADDR[_moid]$
+				$j = k - 1$
+			$ELIF _base >= MO.LIMITADDR[_moid] && MO.LIMITADDR[_moid] != 0$
+				$i = k + 1$
+			$ELSE$
+				$found = _moid$
+			$END$
+		$END$
+		$IF found && _limit > MO.LIMITADDR[found] && MO.LIMITADDR[found] != 0$
+			$found = 0$
+		$END$
+		$RESULT = found$
+	$END$
+$END$
+
+$
+$ メモリ領域がカーネル専用のメモリオブジェクトに含まれているかのチェック
+$
+$FUNCTION CHECK_MEMOBJ_KERNEL$
+	$moid = SEARCH_MO(ARGV[1], ARGV[2])$
+	$IF moid && MO.ACPTN1[moid] == TACP_KERNEL
+				&& MO.ACPTN2[moid] == TACP_KERNEL$
+		$RESULT = 0$
+	$ELSE$		
+		$RESULT = 1$
+	$END$
+$END$
+
+$
+$ システムタスクのスタック領域とユーザタスクのシステムスタック領域が，
+$ カーネル専用のメモリオブジェクトに含まれているかのチェック
+$
+$IF !USE_TSKINICTXB$
+	$tinib = SYMBOL("tinib_table")$
+	$FOREACH tskid TSK.ID_LIST$
+		$sstk = PEEK(tinib + offsetof_TINIB_sstk, sizeof_void_ptr)$
+		$sstksz = PEEK(tinib + offsetof_TINIB_sstksz, sizeof_MemorySizeType)$
+		$IF CHECK_MEMOBJ_KERNEL(sstk, sstksz)$
+			$IF TSK.OSAPID[tskid] == TDOM_KERNEL$
+				$ERROR TSK.TEXT_LINE[tskid]$
+					$FORMAT(_("stack area of `%1%\' is not included in any kernel memory object"), tskid)$
+				$END$
+			$ELSE$
+				$ERROR TSK.TEXT_LINE[tskid]$
+					$FORMAT(_("system stack area of `%1%\' is not included in any kernel memory object"), tskid)$
+				$END$
+			$END$
+		$END$
+		$tinib = tinib + sizeof_TINIB$
+	$END$
+$END$
+
+$
+$ 非タスクコンテキスト用のスタック領域が，カーネル専用のメモリオブジェ
+$ クトに含まれているかのチェック
+$
+$istk = PEEK(SYMBOL("_ostk"), sizeof_void_ptr)$
+$istksz = PEEK(SYMBOL("_ostksz"), sizeof_StackType)$
+$IF CHECK_MEMOBJ_KERNEL(istk, istksz)$
+	$ERROR OSTK.TEXT_LINE[1]$ 
+		$FORMAT(_("interrupt context stack area is not included in any kernel memory object"))$
+	$END$
+$END$
+
+$ =====================================================================
+$ アラインメントとNULLでないかに関するエラーチェック
+$ =====================================================================
+
+$
+$  関数の先頭番地のチェック
+$
+$IF CHECK_FUNC_ALIGN || CHECK_FUNC_NONNULL$
+$	// タスクとタスク例外処理ルーチンの先頭番地のチェック
+	$tinib = SYMBOL("tinib_table")$
+	$FOREACH tskid TSK.ID_LIST$
+		$task = PEEK(tinib + offsetof_TINIB_task, sizeof_FunctionRefType)$
+		$IF CHECK_FUNC_ALIGN && (task & (CHECK_FUNC_ALIGN - 1)) != 0$
+			$ERROR TSK.TEXT_LINE[tskid]$
+				$FORMAT(_("%1% `%2%\' of `%3%\' in %4% is not aligned"),
+				"task", TSK.TASK[tskid], tskid, "OsTask")$$END$
+		$END$
+		$IF CHECK_FUNC_NONNULL && task == 0$
+			$ERROR TSK.TEXT_LINE[tskid]$
+				$FORMAT(_("%1% `%2%\' of `%3%\' in %4% is null"),
+				"task", TSK.TASK[tskid], tskid, "OsTask")$$END$
+		$END$
+		$tinib = tinib + sizeof_TINIB$
+	$END$
+$END$
+
+$
+$  スタック領域の先頭番地のチェック
+$
+$IF CHECK_STACK_ALIGN || CHECK_STACK_NONNULL$
+	$tinib = SYMBOL("tinib_table")$
+	$FOREACH tskid TSK.ID_LIST$
+$		// タスクのシステムスタック領域の先頭番地のチェック
+		$IF USE_TSKINICTXB$
+			$sstk = GET_SSTK_TSKINICTXB(tinib)$
+		$ELSE$
+			$sstk = PEEK(tinib + offsetof_TINIB_sstk, sizeof_void_ptr)$
+		$END$
+		$IF CHECK_STACK_ALIGN && (sstk & (CHECK_STACK_ALIGN - 1)) != 0$
+			$IF TSK.OSAPID[tskid] == TDOM_KERNEL$
+				$ERROR TSK.TEXT_LINE[tskid]$
+					$FORMAT(_("%1% `%2%\' of `%3%\' in %4% is not aligned"),
+					"stk", TSK.STK[tskid], tskid, "OsTask")$$END$
+			$ELSE$
+				$ERROR TSK.TEXT_LINE[tskid]$
+					$FORMAT(_("%1% `%2%\' of `%3%\' in %4% is not aligned"),
+					"sstk", TSK.SSTK[tskid], tskid, "OsTask")$$END$
+			$END$
+		$END$
+		$IF CHECK_STACK_NONNULL && sstk == 0$
+			$IF TSK.OSAPID[tskid] == TDOM_KERNEL$
+				$ERROR TSK.TEXT_LINE[tskid]$
+					$FORMAT(_("%1% `%2%\' of `%3%\' in %4% is null"),
+					"stk", TSK.STK[tskid], tskid, "OsTask")$$END$
+			$ELSE$
+				$ERROR TSK.TEXT_LINE[tskid]$
+					$FORMAT(_("%1% `%2%\' of `%3%\' in %4% is null"),
+					"sstk", TSK.SSTK[tskid], tskid, "OsTask")$$END$
+			$END$
+		$END$
+
+$		// タスクのユーザスタック領域の先頭番地のチェック
+		$IF !OSAP.TRUSTED[TSK.OSAPID[tskid]]$
+			$IF USE_TSKINICTXB$
+				$ustk = GET_USTK_TSKINICTXB(tinib)$
+			$ELSE$
+				$ustk = PEEK(tinib + offsetof_TINIB_ustk, sizeof_void_ptr)$
+			$END$
+			$IF CHECK_USTACK_ALIGN && (ustk & (CHECK_USTACK_ALIGN - 1)) != 0$
+				$ERROR TSK.TEXT_LINE[tskid]$
+					$FORMAT(_("%1% `%2%\' of `%3%\' in %4% is not aligned"),
+					"stk", TSK.STK[tskid], tskid, "OsTask")$$END$
+			$END$
+			$IF CHECK_USTACK_NONNULL && ustk == 0$
+				$ERROR TSK.TEXT_LINE[tskid]$
+					$FORMAT(_("%1% `%2%\' of `%3%\' in %4% is null"),
+					"stk", TSK.STK[tskid], tskid, "OsTask")$$END$
+			$END$
+		$END$
+
+		$tinib = tinib + sizeof_TINIB$
+	$END$
+
+$	// 非タスクコンテキスト用のスタック領域の先頭番地のチェック
+	$istk = PEEK(SYMBOL("_ostk"), sizeof_void_ptr)$
+	$IF CHECK_STACK_ALIGN && (istk & (CHECK_STACK_ALIGN - 1)) != 0$
+		$ERROR OSTK.TEXT_LINE[1]$
+			$FORMAT(_("%1% `%2%\' in %3% is not aligned"),
+			"istk", OSTK.STK[1], "OsOsStack")$$END$
+	$END$
+	$IF CHECK_STACK_NONNULL && istk == 0$
+		$ERROR OSTK.TEXT_LINE[1]$
+			$FORMAT(_("%1% `%2%\' in %3% is null"),
+			"istk", OSTK.STK[1], "OsOsStack")$$END$
+	$END$
+$END$
Index: /atk2-sc3_fl850f1l/kernel/kernel_opt.tf
===================================================================
--- /atk2-sc3_fl850f1l/kernel/kernel_opt.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/kernel_opt.tf	(revision 117)
@@ -0,0 +1,307 @@
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$  Copyright (C) 2011-2015 by Center for Embedded Computing Systems
+$              Graduate School of Information Science, Nagoya Univ., JAPAN
+$  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+$  Copyright (C) 2011-2013 by Spansion LLC, USA
+$  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+$  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+$  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+$  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+$  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+$  Copyright (C) 2011-2015 by Witz Corporation
+$  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+$  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+$  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+$
+$  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+$  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+$  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+$  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+$      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+$      スコード中に含まれていること．
+$  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+$      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+$      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+$      の無保証規定を掲載すること．
+$  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+$      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+$      と．
+$    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+$        作権表示，この利用条件および下記の無保証規定を掲載すること．
+$    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+$        報告すること．
+$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+$      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+$      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+$      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+$      免責すること．
+$
+$  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+$  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+$  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+$  用する者に対して，AUTOSARパートナーになることを求めている．
+$
+$  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+$  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+$  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$  の責任を負わない．
+$
+$  $Id: kernel_opt.tf 187 2015-06-25 03:39:04Z t_ishikawa $
+$
+
+$
+$  パス2からの情報の読込み
+$
+$INCLUDE "cfg2_out.tf"$
+$INCLUDE "kernel/kernel_common.tf"$
+
+$
+$  データセクションのLMAからVMAへのコピー
+$
+$COPY_LMA()$
+
+$ =====================================================================
+$ kernel_mem3.cの共通部分の生成
+$ =====================================================================
+
+$FILE "kernel_mem3.c"$
+/* kernel_mem3.c */$NL$
+#include "kernel/kernel_int.h"$NL$
+#include "Os_Lcfg.h"$NL$
+#ifndef TOPPERS_EMPTY_LABEL$NL$
+#define TOPPERS_EMPTY_LABEL(x, y) x y[0]$NL$
+#endif$NL$
+$NL$
+
+/*$NL$
+$SPC$*  Include Directives (#include)$NL$
+$SPC$*/$NL$
+$NL$
+$INCLUDES$
+$NL$
+
+$ =====================================================================
+$ シンボルと仮メモリオブジェクト初期化ブロックの読込み
+$ =====================================================================
+
+$
+$ シンボルと仮メモリオブジェクト初期化ブロックの読込み
+$
+$ MO.BASEADDR[moid]：メモリオブジェクトの先頭番地
+$ MO.LIMITADDR[moid]：メモリオブジェクトの上限番地
+
+$IF !OMIT_STANDARD_MEMINIB$
+	$MO_MEMTOP_LIST = {}$
+	$memtop_table = SYMBOL("memtop_table")$
+	$offset = 0$
+	$FOREACH moid MO_START_LIST$
+		$IF MO.LINKER[moid]$
+			$MO.BASEADDR[moid] = START_SYMBOL(MO.MLABEL[moid])$
+			$MO.LIMITADDR[moid] = LIMIT_SYMBOL(MO.MLABEL[moid])$
+		$ELSE$
+			$MO.BASEADDR[moid] = PEEK(memtop_table + offset, sizeof_void_ptr)$
+			$offset = offset + sizeof_void_ptr$
+			$MO.LIMITADDR[moid] = (MO.BASEADDR[moid] + MO.SIZE[moid]) & ((1 << sizeof_void_ptr * 8) - 1)$
+		$END$
+	$END$
+$END$
+
+$ =====================================================================
+$ 仮のメモリ構成・初期化ファイルの生成
+$ =====================================================================
+
+$
+$  仮メモリオブジェクト初期化ブロックの生成
+$
+$IF ISFUNCTION("GENERATE_MEMINIB_TABLE")$
+$	// ターゲット依存部のメモリオブジェクト初期化ブロック生成処理を呼ぶ
+	$GENERATE_MEMINIB_TABLE()$
+$ELIF !OMIT_STANDARD_MEMINIB$
+	$IF LENGTH(OPTIMIZE_MEMINIB)$
+$		// アドレス0を置く領域
+		$tsize_meminib = 1$
+		$FOREACH moid MO_START_LIST$
+$			// サイズが0でないメモリオブジェクトの先頭番地を置く領域
+			$IF MO.BASEADDR[moid] != MO.LIMITADDR[moid]$
+				$tsize_meminib = tsize_meminib + 1$
+			$END$
+			$IF !MO.LINKER[moid]$
+$				// リンカが配置しないメモリオブジェクトは最終番地も必要
+				$tsize_meminib = tsize_meminib + 1$
+			$ELIF (MO.SEFLAG[MO.MOEND[moid]] & 0x80) != 0$
+$				// メモリリージョンの最後のメモリオブジェクトは最終番地も必要
+				$tsize_meminib = tsize_meminib + 1$
+			$END$
+		$END$
+
+$		// ターゲット依存でtsize_meminibを補正する場合
+		$IF ISFUNCTION("CALC_TSIZE_MEMINIB")$
+			$CALC_TSIZE_MEMINIB()$
+		$END$
+	$END$
+
+	const uint32 tnum_meminib = $tsize_meminib$U;$NL$
+	$NL$
+
+	void *const memtop_table[$tsize_meminib$] = {
+	$IF LENGTH(MO_START_LIST_NOLINKER)$
+		$NL$
+		$JOINEACH moid MO_START_LIST_NOLINKER ",\n"$
+			$TAB$(void *)($MO.BASE[moid]$)
+		$END$$NL$
+	$ELSE$
+		$SPC$0$SPC$
+	$END$
+	};$NL$
+	$NL$
+
+	const MEMINIB meminib_table[$tsize_meminib$] =
+	$SPC${{ TA_NULL, 0U, 0U, 0U }};$NL$
+	$NL$
+$END$
+
+$
+$  仮dataセクション初期化ブロックの生成
+$
+$IF LENGTH(OPTIMIZE_DATASEC_LIST) && !OMIT_IDATA && LENGTH(DATASEC_LIST)$
+$	// 仮dataセクション初期化ブロックのサイズの適正化処理
+$	// サイズが0でないdataセクションのリスト（MO_DATASEC_LIST）を作成
+	$MO_DATASEC_LIST = {}$
+	$FOREACH moid DATASEC_LIST$
+		$IF MO.BASEADDR[moid] != MO.LIMITADDR[moid]$
+			$MO_DATASEC_LIST = APPEND(MO_DATASEC_LIST, moid)$
+		$END$
+	$END$
+
+$	// パス4に引き渡す情報
+	$DATASEC_LIST = MO_DATASEC_LIST$
+	$DATASEC_LIST_OPTIMIZED = 1$
+$END$
+
+$
+$	// dataセクションの数とdataセクション初期化ブロック
+$
+$IF !OMIT_STANDARD_DATASECINIB$
+	/*$NL$
+	$SPC$*	Data Section Management Functions$NL$
+	$SPC$*/$NL$
+	$NL$
+
+$	// dataセクションの数
+	#define TNUM_DATASEC	$IF !OMIT_IDATA$$LENGTH(DATASEC_LIST)$$ELSE$0$END$$NL$
+	$NL$
+
+	$IF ISFUNCTION("DEFINE_CONST_VAR")$
+		$DEFINE_CONST_VAR("const uint32", "tnum_datasec")$ = TNUM_DATASEC;$NL$
+	$ELSE$
+		const uint32 tnum_datasec = TNUM_DATASEC;$NL$
+	$END$
+	$NL$
+
+$	// dataセクション初期化ブロック
+	$IF !OMIT_IDATA  && LENGTH(DATASEC_LIST)$
+		$IF ISFUNCTION("DEFINE_CONST_VAR")$
+			$DEFINE_CONST_VAR("const DATASECINIB", "datasecinib_table[TNUM_DATASEC]")$ =
+		$ELSE$
+			const DATASECINIB datasecinib_table[TNUM_DATASEC] =
+		$END$
+		$SPC${{ 0U, 0U, 0U }};$NL$
+	$ELSE$
+		TOPPERS_EMPTY_LABEL(const DATASECINIB, datasecinib_table);$NL$
+		$NL$
+	$END$$NL$
+$END$
+
+$
+$  仮bssセクション初期化ブロックの生成
+$
+$IF LENGTH(OPTIMIZE_BSSSEC_LIST) && LENGTH(BSSSEC_LIST)$
+$	// 仮bssセクション初期化ブロックのサイズの適正化処理
+$	// サイズが0でないbssセクションのリスト（MO_BSSSEC_LIST）を作成
+	$MO_BSSSEC_LIST = {}$
+	$FOREACH moid BSSSEC_LIST$
+		$IF MO.BASEADDR[moid] != MO.LIMITADDR[moid]$
+			$MO_BSSSEC_LIST = APPEND(MO_BSSSEC_LIST, moid)$
+		$END$
+	$END$
+
+$	// パス4に引き渡す情報
+	$BSSSEC_LIST = MO_BSSSEC_LIST$
+	$BSSSEC_LIST_OPTIMIZED = 1$
+$END$
+
+$
+$	// bssセクションの数とbssセクション初期化ブロック
+$
+$IF !OMIT_STANDARD_BSSSECINIB$
+	/*$NL$
+	$SPC$*	BSS Section Management Functions$NL$
+	$SPC$*/$NL$
+	$NL$
+
+$	// bssセクション初期化ブロック
+	$IF LENGTH(BSSSEC_LIST)$
+		const uint32 tnum_bsssec = $LENGTH(BSSSEC_LIST)$U;$NL$
+		const BSSSECINIB bsssecinib_table[$LENGTH(BSSSEC_LIST)$] =
+		$SPC${{ 0U, 0U }};$NL$
+	$ELSE$
+		const uint32 _kernel_tnum_bsssec = 0U;$NL$
+		TOPPERS_EMPTY_LABEL(const BSSSECINIB, bsssecinib_table);$NL$
+	$END$$NL$
+$END$
+
+$ ターゲット依存部で必要なMPUINFOBを出力する
+$GENERATE_TARGET_MPUINFOB()$
+
+$ タスクスタック領域をextern宣言する(kernel_common.tf)
+$GENERATE_EXPORT_TSK_STK()$
+
+$ タスクをextern宣言する(kernel_common.tf)
+$EXTERN_TSK()$
+
+$ OSAP管理ブロックをextern宣言する(kernel_common.tf)
+$EXTERN_OSAPCB()$
+
+$ タスク管理ブロックをextern宣言する(kernel_common.tf)
+$EXTERN_TCB()$
+
+$ タスク初期化ブロックを出力する(kernel_common.tf)
+$GENERATE_TINIB_TABLE()$
+
+$ OSアプリケーション初期化ブロックを出力する(kernel_common.tf)
+$GENERATE_OSAPINIB_TABLE()$
+
+$ =====================================================================
+$  パス4に渡す情報の生成
+$ =====================================================================
+
+$FILE "cfg3_out.tf"$
+$$ cfg3_out.tf$NL$
+$NL$
+
+$ tsize_meminibの出力
+$IF !OMIT_STANDARD_MEMINIB$
+	$$tsize_meminib = $tsize_meminib$$$$NL$
+	$NL$
+$END$
+
+$ DATASEC_LIST，MO_DATASEC_LIST，DATASEC_LIST_OPTIMIZEDの出力
+$$DATASEC_LIST = { $DATASEC_LIST$ }$$$NL$
+$IF LENGTH(DATASEC_LIST_OPTIMIZED)$
+	$$MO_DATASEC_LIST = { $MO_DATASEC_LIST$ }$$$NL$
+	$$DATASEC_LIST_OPTIMIZED = $DATASEC_LIST_OPTIMIZED$$$$NL$
+$END$
+$NL$
+
+$ BSSSEC_LIST，MO_BSSSEC_LIST，BSSSEC_LIST_OPTIMIZEDの出力
+$$BSSSEC_LIST = { $BSSSEC_LIST$ }$$$NL$
+$IF LENGTH(BSSSEC_LIST_OPTIMIZED)$
+	$$MO_BSSSEC_LIST = { $MO_BSSSEC_LIST$ }$$$NL$
+	$$BSSSEC_LIST_OPTIMIZED = $BSSSEC_LIST_OPTIMIZED$$$$NL$
+$END$
+$NL$
Index: /atk2-sc3_fl850f1l/kernel/memory.c
===================================================================
--- /atk2-sc3_fl850f1l/kernel/memory.c	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/memory.c	(revision 117)
@@ -0,0 +1,523 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: memory.c 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+#include "kernel_impl.h"
+#include "check.h"
+#include "task.h"
+#include "interrupt.h"
+#include "memory.h"
+
+/*
+ *		メモリオブジェクト管理モジュール
+ */
+
+/*
+ *  トレースマクロのデフォルト定義
+ */
+
+#ifndef LOG_CHKISRMEMACS_ENTER
+#define LOG_CHKISRMEMACS_ENTER(ISRID, Address, Size)
+#endif /* LOG_CHKISRMEMACS_ENTER */
+
+#ifndef LOG_CHKISRMEMACS_LEAVE
+#define LOG_CHKISRMEMACS_LEAVE(ercd)
+#endif /* LOG_CHKISRMEMACS_LEAVE */
+
+#ifndef LOG_CHKTSKMEMACS_ENTER
+#define LOG_CHKTSKMEMACS_ENTER(TaskID, Address, Size)
+#endif /* LOG_CHKTSKMEMACS_ENTER */
+
+#ifndef LOG_CHKTSKMEMACS_LEAVE
+#define LOG_CHKTSKMEMACS_LEAVE(ercd)
+#endif /* LOG_CHKTSKMEMACS_LEAVE */
+
+
+/*
+ *  内部関数のプロトタイプ宣言
+ */
+#ifndef USE_TSKINICTXB
+
+LOCAL_INLINE AccessType check_address_sstack(const MemoryStartAddressType base, MemorySizeType size, const TINIB *p_tinib);
+LOCAL_INLINE AccessType check_address_ustack(const MemoryStartAddressType base, MemorySizeType size, const TINIB *p_tinib);
+
+#endif /* USE_TSKINICTXB */
+
+/*
+ *  タスクメモリアクセスチェックシステムサービス
+ *  指定された タスク の 指定されたメモリ領域のアクセス権をチェックする
+ */
+#ifdef TOPPERS_CheckTaskMemoryAccess
+
+AccessType
+CheckTaskMemoryAccess(TaskType TaskID, MemoryStartAddressType Address, MemorySizeType Size)
+{
+	AccessType	access;
+	StatusType	ercd;
+	TCB			*p_tcb;
+	boolean		over_region;
+
+	LOG_CHKTSKMEMACS_ENTER(TaskID, Address, Size);
+
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_CHECKTASKMEMORYACCESS);
+	CHECK_ID(TaskID < tnum_task);
+	CHECK_VALUE(Size > 0U);
+
+	p_tcb = get_tcb(TaskID);
+
+	access = check_task_memory(p_tcb, Address, Size, &over_region);
+	CHECK_ILLEGAL_ADDRESS(over_region == FALSE);
+
+  exit_finish:
+	LOG_CHKTSKMEMACS_LEAVE(access);
+	return(access);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.tskid = TaskID;
+	_errorhook_par2.adr = Address;
+	_errorhook_par3.sz = Size;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_CheckTaskMemoryAccess);
+	x_nested_unlock_os_int();
+#endif /* CFG_USE_ERRORHOOK */
+
+  exit_no_errorhook:
+	access = AP_NoAccess;
+	goto exit_finish;
+}
+
+#endif /* TOPPERS_CheckTaskMemoryAccess */
+
+/*
+ *  ISRメモリアクセスチェックシステムサービス
+ *  指定された ISR の 指定されたメモリ領域のアクセス権をチェックする
+ */
+#ifdef TOPPERS_CheckISRMemoryAccess
+
+AccessType
+CheckISRMemoryAccess(ISRType ISRID, MemoryStartAddressType Address, MemorySizeType Size)
+{
+	AccessType	access;
+	StatusType	ercd;
+	ISRCB		*p_isrcb;
+	boolean		over_region;
+
+	LOG_CHKISRMEMACS_ENTER(ISRID, Address, Size);
+
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_CHECKISRMEMORYACCESS);
+	CHECK_ID(ISRID < tnum_isr2);
+	CHECK_VALUE(Size > 0U);
+
+	p_isrcb = get_isrcb(ISRID);
+
+	access = check_isr_memory(p_isrcb, Address, Size, &over_region);
+	CHECK_ILLEGAL_ADDRESS(over_region == FALSE);
+
+  exit_finish:
+	LOG_CHKISRMEMACS_LEAVE(access);
+	return(access);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.isrid = ISRID;
+	_errorhook_par2.adr = Address;
+	_errorhook_par3.sz = Size;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_CheckISRMemoryAccess);
+	x_nested_unlock_os_int();
+#endif /* CFG_USE_ERRORHOOK */
+
+  exit_no_errorhook:
+	access = AP_NoAccess;
+	goto exit_finish;
+}
+
+#endif /* TOPPERS_CheckISRMemoryAccess */
+
+/*
+ *  メモリアクセスチェック関数
+ */
+
+/*
+ *  スタックアクセスチェック本体
+ */
+#ifdef TOPPERS_check_address_stack
+
+AccessType
+check_address_stack(const MemoryStartAddressType base, MemorySizeType size, const MemoryStartAddressType mobase, MemorySizeType mosize)
+{
+	AccessType result;
+	if (within_memobj(base, size, mobase, mosize) != FALSE) {
+		result = AP_Readable | AP_Writable | AP_StackSpace;
+	}
+	else {
+		result = NO_ACCESS;
+	}
+	return(result);
+}
+
+#endif /* TOPPERS_check_address_stack */
+
+#ifndef USE_TSKINICTXB
+
+LOCAL_INLINE AccessType
+check_address_sstack(const MemoryStartAddressType base, MemorySizeType size, const TINIB *p_tinib)
+{
+	return(check_address_stack(base, size, p_tinib->sstk, p_tinib->sstksz));
+}
+
+LOCAL_INLINE AccessType
+check_address_ustack(const MemoryStartAddressType base, MemorySizeType size, const TINIB *p_tinib)
+{
+	return(check_address_stack(base, size, p_tinib->ustk, p_tinib->ustksz));
+}
+
+#endif /* USE_TSKINICTXB */
+
+
+#ifndef OMIT_STANDARD_MEMINIB
+/*
+ *  メモリオブジェクト初期化ブロックの検索
+ */
+#ifdef TOPPERS_search_meminib
+
+uint32
+search_meminib(MemoryStartAddressType addr)
+{
+	uint32 left, right, i;
+
+	left = 0U;
+	right = tnum_meminib - 1U;
+	while (left < right) {
+		i = (left + right + 1U) / 2U;
+		if (addr < (MemoryStartAddressType const) memtop_table[i]) {
+			right = i - 1U;
+		}
+		else {
+			left = i;
+		}
+	}
+	return(left);
+}
+
+#endif /* TOPPERS_search_meminib */
+/*
+ *  メモリアクセスチェック
+ *   メモリプロテクション単位(OSアプリケーション) でのチェックを行う
+ *
+ *  信頼OSアプリケーションの場合は，バックグラウンドをチェックする
+ *    現実装では全領域アクセス可能
+ *  非信頼OSアプリケーションの場合は，メモリオブジェクトの属性を返却する
+ */
+#ifdef TOPPERS_check_osap_memory
+
+AccessType
+check_osap_memory(OSAPCB *p_osapcb, const MemoryStartAddressType adr, MemorySizeType size)
+{
+	AccessType				access = AP_NoAccess;
+	const MEMINIB			*p_meminib;
+	uint32					pos;
+	uint32					btptn;
+	MemoryStartAddressType	sadr = adr;
+	MemoryStartAddressType	eadr = (MemoryStartAddressType) ((MemorySizeType) sadr + size);
+
+	if (p_osapcb->p_osapinib->osap_trusted != FALSE) {
+		access = probe_trusted_osap_mem(sadr, eadr);
+	}
+	else {
+
+		pos = search_meminib(sadr);
+		p_meminib = &(meminib_table[pos]);
+		if ((pos + 1U) < tnum_meminib) {
+			if (((uint8 *) eadr - 1) < (uint8 * const) memtop_table[pos + 1U]) {
+				btptn = p_osapcb->p_osapinib->btptn;
+				access |= ((p_meminib->acptnr & btptn) != 0U) ? AP_Readable   : AP_NoAccess;
+				access |= ((p_meminib->acptnw & btptn) != 0U) ? AP_Writable   : AP_NoAccess;
+				access |= ((p_meminib->acptnx & btptn) != 0U) ? AP_Executable : AP_NoAccess;
+			}
+		}
+	}
+	return(access);
+}
+
+#endif /* TOPPERS_check_osap_memory */
+
+/*
+ *  ISRメモリアクセスチェックシステムサービス(カーネル内部用)
+ */
+#ifdef TOPPERS_check_isr_memory
+
+AccessType
+check_isr_memory(ISRCB *p_isrcb, const MemoryStartAddressType adr, MemorySizeType size, boolean *over_region)
+{
+	AccessType				access = AP_NoAccess;
+	uint32					pos;
+	MemoryStartAddressType	sadr = adr;
+	MemorySizeType			memsize;
+
+	pos = search_meminib(sadr);
+	memsize = (MemorySizeType) (((uint8 *) (((pos + 1U) < tnum_meminib) ?
+											((uint8 * const) memtop_table[pos + 1U]) : 0U)) - (const uint8 *) adr);
+
+	/* リージョンを跨ったか判定 */
+	if (size > memsize) {
+		*over_region = TRUE;
+	}
+	else {
+		*over_region = FALSE;
+		access = check_address_stack(adr, size, _ostk, _ostksz);
+	}
+
+	/* 機能レベル2ではC2ISRは信頼しかないので，全アクセス可能にする */
+	access |= (AP_Readable | AP_Writable | AP_Executable);
+
+	return(access);
+}
+
+#endif /* TOPPERS_check_isr_memory */
+
+/*
+ *  タスクメモリアクセスチェックシステムサービス(カーネル内部用)
+ */
+#ifdef TOPPERS_check_task_memory
+
+AccessType
+check_task_memory(const TCB *p_tcb, const MemoryStartAddressType adr, MemorySizeType size, boolean *over_region)
+{
+	AccessType				access = AP_NoAccess;
+	const MEMINIB			*p_meminib;
+	uint32					pos;
+	uint32					btptn;
+	MemoryStartAddressType	sadr = adr;
+	MemorySizeType			memsize;
+
+	pos = search_meminib(sadr);
+	memsize = (MemorySizeType) (((uint8 *) (((pos + 1U) < tnum_meminib) ?
+											((uint8 * const) memtop_table[pos + 1U]) : 0U)) - (const uint8 *) adr);
+
+	/* リージョンを跨ったか判定 */
+	if (size > memsize) {
+		*over_region = TRUE;
+	}
+	else {
+		*over_region = FALSE;
+	}
+
+	if (p_tcb->p_tinib->p_osapcb->p_osapinib->osap_trusted != FALSE) {
+		access = check_address_sstack(adr, size, p_tcb->p_tinib);
+
+		/* 信頼タスクの場合は全アクセス可能 */
+		access |= (AP_Readable | AP_Writable | AP_Executable);
+	}
+	else if (*over_region == FALSE) {
+		p_meminib = &(meminib_table[pos]);
+		if ((p_meminib->mematr & TOPPERS_USTACK) == 0U) {
+			btptn = p_tcb->p_tinib->p_osapcb->p_osapinib->btptn;
+			access |= ((p_meminib->acptnr & btptn) != 0U) ? AP_Readable   : AP_NoAccess;
+			access |= ((p_meminib->acptnw & btptn) != 0U) ? AP_Writable   : AP_NoAccess;
+			access |= ((p_meminib->acptnx & btptn) != 0U) ? AP_Executable : AP_NoAccess;
+		}
+		else {
+			access = check_address_ustack(adr, size, p_tcb->p_tinib);
+		}
+	}
+	else {
+		/* 上記以外の場合，処理は行わない(戻り値：AP_NoAccess) */
+	}
+
+	return(access);
+}
+
+#endif /* TOPPERS_check_task_memory */
+#endif /* OMIT_STANDARD_MEMINIB */
+
+/*
+ *  スタートアップフック，シャットダウンフックの
+ *  メモリアクセスチェックシステムサービス(カーネル内部用)
+ */
+#ifdef TOPPERS_check_hook_memory
+
+AccessType
+check_hook_memory(const MemoryStartAddressType adr, MemorySizeType size)
+{
+	AccessType				access;
+	MemoryStartAddressType	eadr = (MemoryStartAddressType) ((const MemorySizeType) adr + size);
+
+	access = probe_nthkstk(adr, eadr);
+
+	if (access == AP_NoAccess) {
+		access = check_osap_memory(p_runosap, adr, size);
+	}
+
+	return(access);
+}
+
+#endif /* TOPPERS_check_hook_memory */
+
+/*
+ *  メモリアクセス権のチェック
+ */
+#ifdef TOPPERS_probe_memory_access
+
+AccessType
+probe_memory_access(const MemoryStartAddressType base, MemorySizeType size)
+{
+	AccessType				access;
+	boolean					dummy;
+	MemoryStartAddressType	base_adr = base;
+
+	if (run_trusted != FALSE) {
+		/* 信頼OSアプリケーションの場合は，バックグラウンドをチェックする */
+		access = probe_trusted_osap_mem(base, (MemoryStartAddressType) ((uint8 *) base_adr + size));
+	}
+	else {
+		/*
+		 *  非信頼OSアプリケーションの場合は，実行中のフックルーチン，タスク
+		 *  をチェックする
+		 */
+		if (is_running_nontrusted_hook() != FALSE) {
+			access = check_hook_memory(base, size);
+		}
+		else {
+			access = check_task_memory(p_runtsk, base, size, &dummy);
+		}
+	}
+	return(access);
+}
+
+#endif /* TOPPERS_probe_memory_access */
+
+/*
+ *  メモリへの書込み権のチェック
+ */
+#ifdef TOPPERS_probe_memory_read
+
+boolean
+probe_memory_read(const MemoryStartAddressType base, MemorySizeType size)
+{
+	return((probe_memory_access(base, size) & AP_Readable) == AP_Readable);
+}
+
+#endif /* TOPPERS_probe_memory_read */
+
+/*
+ *  メモリへの書込み権のチェック
+ */
+#ifdef TOPPERS_probe_memory_write
+
+boolean
+probe_memory_write(const MemoryStartAddressType base, MemorySizeType size)
+{
+	return((probe_memory_access(base, size) & AP_Writable) == AP_Writable);
+}
+
+#endif /* TOPPERS_probe_memory_write */
+
+/*
+ *  メモリに対する読書き権のチェック
+ */
+#ifdef TOPPERS_probe_memory_read_write
+
+boolean
+probe_memory_read_write(const MemoryStartAddressType base, MemorySizeType size)
+{
+	return((probe_memory_access(base, size) & (AP_Readable | AP_Writable)) == (AP_Readable | AP_Writable));
+}
+
+#endif /* TOPPERS_probe_memory_read_write */
+
+/*
+ *  DATAセクションとBSSセクションの初期化
+ */
+#ifdef TOPPERS_initialize_sections
+#ifndef OMIT_INITIALIZE_SECTIONS
+
+void
+initialize_sections(void)
+{
+	uint32				i;
+	uint8				*p_src, *p_dst;
+	const DATASECINIB	*p_datasecinib;
+	const BSSSECINIB	*p_bsssecinib;
+
+	for (i = 0U; i < tnum_datasec; i++) {
+		p_datasecinib = &(datasecinib_table[i]);
+		p_src = (uint8 *) p_datasecinib->start_idata;
+		for (p_dst = (uint8 *) p_datasecinib->start_data;
+			 ((const MemoryStartAddressType) p_dst) < (const MemoryStartAddressType) p_datasecinib->end_data; p_dst++) {
+			*p_dst = *p_src;
+			p_src++;
+		}
+	}
+	for (i = 0U; i < tnum_bsssec; i++) {
+		p_bsssecinib = &(bsssecinib_table[i]);
+		for (p_dst = (uint8 *) p_bsssecinib->start_bss;
+			 ((const MemoryStartAddressType) p_dst) < (const MemoryStartAddressType) p_bsssecinib->end_bss; p_dst++) {
+			*p_dst = 0U;
+		}
+	}
+}
+
+#endif /* OMIT_INITIALIZE_SECTIONS */
+#endif /* TOPPERS_initialize_sections */
Index: /atk2-sc3_fl850f1l/kernel/memory.h
===================================================================
--- /atk2-sc3_fl850f1l/kernel/memory.h	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/memory.h	(revision 117)
@@ -0,0 +1,233 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: memory.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		メモリアクセス関連機能
+ */
+
+#ifndef TOPPERS_MEMORY_H
+#define TOPPERS_MEMORY_H
+
+#include "interrupt.h"
+#include "task.h"
+
+/*
+ *  メモリ属性（カーネル内部で用いる）
+ */
+#define TOPPERS_ATTSEC	UINT_C(0x0100)  /* ATT_SEC/ATT_MODで登録されたメモリオブジェクト */
+#define TOPPERS_ATTMEM	UINT_C(0x0200)  /* ATT_MEMで登録されたメモリオブジェクト */
+#define TOPPERS_USTACK	UINT_C(0x0400)  /* タスク/C2ISRのユーザスタック領域 */
+
+#ifndef TOPPERS_MACRO_ONLY
+
+typedef	uint32 AccessPatternType;      /* アクセス許可パターン */
+
+/*
+ *  アクセス許可パターン
+ */
+#define TACP_KERNEL		(0U)            /* カーネルドメインだけにアクセスを許可 */
+#define TACP_SHARED		(~0U)           /* すべてのドメインからアクセスを許可 */
+
+#ifndef OMIT_STANDARD_MEMINIB
+
+/*
+ *  メモリオブジェクト初期化ブロック
+ */
+typedef struct memory_initialization_block {
+	AttributeType		mematr;         /* メモリオブジェクト属性 */
+	AccessPatternType	acptnr;         /* リード許可 OSアプリケーション ビットパターン */
+	AccessPatternType	acptnw;         /* ライト許可 OSアプリケーション ビットパターン */
+	AccessPatternType	acptnx;         /* 実行許可   OSアプリケーション ビットパターン */
+} MEMINIB;
+
+/*
+ *  メモリオブジェクト初期化ブロックの数（kernel_mem.c）
+ */
+extern const uint32		tnum_meminib;
+
+/*
+ *  メモリオブジェクトの先頭番地の領域（kernel_mem.c）
+ */
+extern void * const	memtop_table[];
+
+/*
+ *  メモリオブジェクト初期化ブロックの領域（kernel_mem.c）
+ */
+extern const MEMINIB	meminib_table[];
+
+/*
+ *  メモリオブジェクト初期化ブロックの検索
+ *
+ *  メモリオブジェクト初期化ブロックから，addrを含むメモリオブジェクト
+ *  を検索し，そのインデックスを返す
+ */
+
+extern uint32 search_meminib(MemoryStartAddressType addr);
+
+#endif /* OMIT_STANDARD_MEMINIB */
+
+/*
+ *  メモリ領域がメモリオブジェクトに含まれているかのチェック
+ *
+ *  先頭番地がbaseでサイズがsizeのメモリ領域が，先頭番地がmobaseでサイ
+ *  ズがmosizeのメモリオブジェクトに含まれている場合にTRUE，そうでない
+ *  場合にFALSEを返す
+ */
+
+LOCAL_INLINE boolean
+within_memobj(MemoryStartAddressType base, MemorySizeType size, MemoryStartAddressType mobase, MemorySizeType mosize)
+{
+	return((mobase <= base) && (size <= mosize)
+		   && (((MemorySizeType) base - (MemorySizeType) mobase) <= (mosize - size)));
+}
+
+/*
+ *  スタックアクセスチェック本体
+ */
+extern AccessType check_address_stack(const MemoryStartAddressType base, MemorySizeType size, const MemoryStartAddressType mobase, MemorySizeType mosize);
+
+/*
+ *  メモリアクセスチェック
+ */
+extern AccessType check_osap_memory(OSAPCB *p_osapcb, const MemoryStartAddressType adr, MemorySizeType size);
+
+/*
+ *  ISRメモリアクセスチェックシステムサービス(カーネル内部用)
+ */
+extern AccessType check_isr_memory(ISRCB *p_isrcb, const MemoryStartAddressType adr, MemorySizeType size, boolean *over_region);
+
+/*
+ *  タスクメモリアクセスチェックシステムサービス(カーネル内部用)
+ */
+extern AccessType check_task_memory(const TCB *p_tcb, const MemoryStartAddressType adr, MemorySizeType size, boolean *over_region);
+
+/*
+ *  スタートアップフック，シャットダウンフックの
+ *  メモリアクセスチェックシステムサービス(カーネル内部用)
+ */
+extern AccessType check_hook_memory(const MemoryStartAddressType adr, MemorySizeType size);
+
+/*
+ *  メモリアクセス権のチェック
+ */
+extern AccessType probe_memory_access(const MemoryStartAddressType base, MemorySizeType size);
+
+/*
+ *  メモリへの読込み権のチェック
+ */
+extern boolean probe_memory_read(const MemoryStartAddressType base, MemorySizeType size);
+
+/*
+ *  メモリへの書込み権のチェック
+ */
+extern boolean probe_memory_write(const MemoryStartAddressType base, MemorySizeType size);
+
+/*
+ *  メモリに対する読書き権のチェック
+ */
+extern boolean probe_memory_read_write(const MemoryStartAddressType base, MemorySizeType size);
+
+/*
+ *  DATAセクションとBSSセクションの初期化
+ */
+extern void initialize_sections(void);
+
+/*
+ *  メモリアクセス権チェックのためのマクロ
+ */
+#ifndef PROBE_MEM_WRITE
+#define PROBE_MEM_WRITE(p_var, type) \
+	(boolean) ((probe_memory_write((MemoryStartAddressType) (p_var), sizeof(type)) != FALSE) && (ALIGNED_TYPE(p_var, type) != FALSE))
+#endif /* PROBE_MEM_WRITE */
+
+#ifndef PROBE_MEM_RW
+#define PROBE_MEM_RW(p_var, type) \
+	(boolean) ((probe_memory_read_write((MemoryStartAddressType) (p_var), sizeof(type)) != FALSE) && (ALIGNED_TYPE(p_var, type) != FALSE))
+#endif /* PROBE_MEM_RW */
+
+/*
+ *  dataセクション初期化ブロック
+ */
+typedef struct {
+	void	*start_data;        /* dataセクションの先頭番地 */
+	void	*end_data;          /* dataセクションの終了番地 */
+	void	*start_idata;       /* 初期化データ領域の先頭番地 */
+} DATASECINIB;
+
+/*
+ *  dataセクションの数と初期化ブロックのエリア（kernel_mem_2.c）
+ */
+extern const uint32			tnum_datasec;
+extern const DATASECINIB	datasecinib_table[];
+
+/*
+ *  bssセクション初期化ブロック
+ */
+typedef struct {
+	void	*start_bss;         /* bssセクションの先頭番地 */
+	void	*end_bss;           /* bssセクションの終了番地 */
+} BSSSECINIB;
+
+/*
+ *  bssセクションの数と初期化ブロックのエリア（kernel_mem_2.c）
+ */
+extern const uint32		tnum_bsssec;
+extern const BSSSECINIB	bsssecinib_table[];
+
+#endif /* TOPPERS_MACRO_ONLY */
+#endif /* TOPPERS_MEMORY_H_ */
Index: /atk2-sc3_fl850f1l/kernel/osap.c
===================================================================
--- /atk2-sc3_fl850f1l/kernel/osap.c	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/osap.c	(revision 117)
@@ -0,0 +1,1087 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: osap.c 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+#include "kernel_impl.h"
+#include "check.h"
+#include "osap.h"
+#include "task.h"
+#include "interrupt.h"
+#include "counter.h"
+#include "alarm.h"
+#include "resource.h"
+#include "scheduletable.h"
+
+/*
+ *		OSアプリケーション管理モジュール
+ */
+
+/*
+ *  トレースマクロのデフォルト定義
+ */
+#ifndef LOG_GETOSAPID_ENTER
+#define LOG_GETOSAPID_ENTER()
+#endif /* LOG_GETOSAPID_ENTER */
+
+#ifndef LOG_GETOSAPID_LEAVE
+#define LOG_GETOSAPID_LEAVE(id)
+#endif /* LOG_GETOSAPID_LEAVE */
+
+#ifndef LOG_GETAST_ENTER
+#define LOG_GETAST_ENTER(Application)
+#endif /* LOG_GETAST_ENTER */
+
+#ifndef LOG_GETAST_LEAVE
+#define LOG_GETAST_LEAVE(ercd, p_value)
+#endif /* LOG_GETAST_LEAVE */
+
+#ifndef LOG_CALTFN_ENTER
+#define LOG_CALTFN_ENTER(FunctionIndex)
+#endif /* LOG_CALTFN_ENTER */
+
+#ifndef LOG_CALTFN_LEAVE
+#define LOG_CALTFN_LEAVE(FunctionIndex)
+#endif /* LOG_CALTFN_LEAVE */
+
+#ifndef LOG_TFN_ENTER
+#define LOG_TFN_ENTER(FunctionIndex)
+#endif /* LOG_TFN_ENTER */
+
+#ifndef LOG_TFN_LEAVE
+#define LOG_TFN_LEAVE(FunctionIndex, ercd)
+#endif /* LOG_TFN_LEAVE */
+
+#ifndef LOG_CHKTSKACS_ENTER
+#define LOG_CHKTSKACS_ENTER(ApplID, TaskID)
+#endif /* LOG_CHKTSKACS_ENTER */
+
+#ifndef LOG_CHKTSKACS_LEAVE
+#define LOG_CHKTSKACS_LEAVE(access)
+#endif /* LOG_CHKTSKACS_LEAVE */
+
+#ifndef LOG_CHKISRACS_ENTER
+#define LOG_CHKISRACS_ENTER(ApplID, ISRID)
+#endif /* LOG_CHKISRACS_ENTER */
+
+#ifndef LOG_CHKISRACS_LEAVE
+#define LOG_CHKISRACS_LEAVE(access)
+#endif /* LOG_CHKISRACS_LEAVE */
+
+#ifndef LOG_CHKALMACS_ENTER
+#define LOG_CHKALMACS_ENTER(ApplID, AlarmID)
+#endif /* LOG_CHKALMACS_ENTER */
+
+#ifndef LOG_CHKALMACS_LEAVE
+#define LOG_CHKALMACS_LEAVE(access)
+#endif /* LOG_CHKALMACS_LEAVE */
+
+#ifndef LOG_CHKRESACS_ENTER
+#define LOG_CHKRESACS_ENTER(ApplID, ResID)
+#endif /* LOG_CHKRESACS_ENTER */
+
+#ifndef LOG_CHKRESACS_LEAVE
+#define LOG_CHKRESACS_LEAVE(access)
+#endif /* LOG_CHKRESACS_LEAVE */
+
+#ifndef LOG_CHKCNTACS_ENTER
+#define LOG_CHKCNTACS_ENTER(ApplID, CounterID)
+#endif /* LOG_CHKCNTACS_ENTER */
+
+#ifndef LOG_CHKCNTACS_LEAVE
+#define LOG_CHKCNTACS_LEAVE(access)
+#endif /* LOG_CHKCNTACS_LEAVE */
+
+#ifndef LOG_CHKSCHTBLACS_ENTER
+#define LOG_CHKSCHTBLACS_ENTER(ApplID, ScheduleTableID)
+#endif /* LOG_CHKSCHTBLACS_ENTER */
+
+#ifndef LOG_CHKSCHTBLACS_LEAVE
+#define LOG_CHKSCHTBLACS_LEAVE(access)
+#endif /* LOG_CHKSCHTBLACS_LEAVE */
+
+#ifndef LOG_CHKTSKOWN_ENTER
+#define LOG_CHKTSKOWN_ENTER(TaskID)
+#endif /* LOG_CHKTSKOWN_ENTER */
+
+#ifndef LOG_CHKTSKOWN_LEAVE
+#define LOG_CHKTSKOWN_LEAVE(owner)
+#endif /* LOG_CHKTSKOWN_LEAVE */
+
+#ifndef LOG_CHKISROWN_ENTER
+#define LOG_CHKISROWN_ENTER(ISRID)
+#endif /* LOG_CHKISROWN_ENTER */
+
+#ifndef LOG_CHKISROWN_LEAVE
+#define LOG_CHKISROWN_LEAVE(owner)
+#endif /* LOG_CHKISROWN_LEAVE */
+
+#ifndef LOG_CHKALMOWN_ENTER
+#define LOG_CHKALMOWN_ENTER(AlarmID)
+#endif /* LOG_CHKALMOWN_ENTER */
+
+#ifndef LOG_CHKALMOWN_LEAVE
+#define LOG_CHKALMOWN_LEAVE(owner)
+#endif /* LOG_CHKALMOWN_LEAVE */
+
+#ifndef LOG_CHKCNTOWN_ENTER
+#define LOG_CHKCNTOWN_ENTER(CounterID)
+#endif /* LOG_CHKCNTOWN_ENTER */
+
+#ifndef LOG_CHKCNTOWN_LEAVE
+#define LOG_CHKCNTOWN_LEAVE(owner)
+#endif /* LOG_CHKCNTOWN_LEAVE */
+
+#ifndef LOG_CHKSCHTBLOWN_ENTER
+#define LOG_CHKSCHTBLOWN_ENTER(ScheduleTableID)
+#endif /* LOG_CHKSCHTBLOWN_ENTER */
+
+#ifndef LOG_CHKSCHTBLOWN_LEAVE
+#define LOG_CHKSCHTBLOWN_LEAVE(owner)
+#endif /* LOG_CHKSCHTBLOWN_LEAVE */
+
+#ifndef LOG_ALLOWACCESS_ENTER
+#define LOG_ALLOWACCESS_ENTER()
+#endif /* LOG_ALLOWACCESS_ENTER */
+
+#ifndef LOG_ALLOWACCESS_LEAVE
+#define LOG_ALLOWACCESS_LEAVE(ercd)
+#endif /* LOG_ALLOWACCESS_LEAVE */
+
+#ifndef LOG_TERMINATEAPPLICATION_ENTER
+#define LOG_TERMINATEAPPLICATION_ENTER(Application, RestartOption)
+#endif /* LOG_TERMINATEAPPLICATION_ENTER */
+
+#ifndef LOG_TERMINATEAPPLICATION_LEAVE
+#define LOG_TERMINATEAPPLICATION_LEAVE(ercd)
+#endif /* LOG_TERMINATEAPPLICATION_LEAVE */
+
+#ifdef TOPPERS_osap_initialize
+/*
+ *  実行中のOSアプリケーション
+ */
+OSAPCB *p_runosap;
+
+/*
+ *  OSアプリケーション管理ブロック初期化
+ */
+void
+osap_initialize(void)
+{
+	ApplicationType	i;
+	OSAPCB			*p_osapcb;
+
+	p_runosap = NULL;
+	for (i = 0U; i < tnum_osap; i++) {
+		p_osapcb = &osapcb_table[i];
+		p_osapcb->p_osapinib = &osapinib_table[i];
+		p_osapcb->osap_stat = APPLICATION_ACCESSIBLE;
+	}
+}
+
+#endif /* TOPPERS_osap_initialize */
+
+/*
+ *  実行状態のOSアプリケーション ID取得
+ */
+#ifdef TOPPERS_GetApplicationID
+
+ApplicationType
+GetApplicationID(void)
+{
+	ApplicationType id;
+	StatusType		ercd;
+
+	LOG_GETOSAPID_ENTER();
+
+	CHECK_CALLEVEL(CALLEVEL_GETAPPLICATIONID);
+
+	id = (p_runosap == NULL) ? INVALID_OSAPPLICATION : OSAPID(p_runosap);
+
+  exit_finish:
+	LOG_GETOSAPID_LEAVE(id);
+	return(id);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+	call_errorhook(ercd, OSServiceId_GetApplicationID);
+	x_nested_unlock_os_int();
+#endif /* CFG_USE_ERRORHOOK */
+
+  exit_no_errorhook:
+	id = INVALID_OSAPPLICATION;
+	goto exit_finish;
+}
+
+#endif /* TOPPERS_GetApplicationID */
+
+/*
+ *  アプリケーションを利用可能な状態にするシステムサービス
+ */
+#ifdef TOPPERS_GetApplicationState
+
+StatusType
+GetApplicationState(ApplicationType Application, ApplicationStateRefType Value)
+{
+	StatusType	ercd = E_OK;
+	OSAPCB		*p_osapcb;
+
+	LOG_GETAST_ENTER(Application);
+
+	CHECK_CALLEVEL(CALLEVEL_GETAPPLICATIONSTATE);
+	CHECK_PARAM_POINTER(Value);
+	CHECK_MEM_WRITE(Value, ApplicationStateType);
+	CHECK_ID(Application < tnum_osap);
+
+	p_osapcb = get_osapcb(Application);
+	*Value = p_osapcb->osap_stat;
+
+  exit_no_errorhook:
+	LOG_GETAST_LEAVE(ercd, Value);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.applid = Application;
+	_errorhook_par2.p_appstat = Value;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_GetApplicationState);
+	x_nested_unlock_os_int();
+	goto exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_GetApplicationState */
+
+#ifdef TOPPERS_CallTrustedFunction
+
+StatusType
+CallTrustedFunction(TrustedFunctionIndexType FunctionIndex,
+					TrustedFunctionParameterRefType FunctionParams)
+{
+	StatusType		ercd = E_OK;
+	const TFINIB	*p_tfinib;
+	boolean			saved_run_trusted;
+#ifdef CFG_USE_PROTECTIONHOOK
+	boolean			saved_calltfn;
+#endif /* CFG_USE_PROTECTIONHOOK */
+
+	LOG_CALTFN_ENTER(FunctionIndex);
+
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_CALLTRUSTEDFUNCTION);
+
+	/* ファンクションIDのチェック */
+	CHECK_SERVICEID(FunctionIndex < tnum_tfn);
+
+	/* 使用するスタックのチェック */
+	p_tfinib = &(tfinib_table[FunctionIndex]);
+	ercd = trustedfunc_stack_check(p_tfinib->tf_stksz);
+	CHECK_NO_ERCD(ercd == E_OK);
+
+	saved_run_trusted = run_trusted;
+	run_trusted = TRUE;
+
+#ifdef CFG_USE_PROTECTIONHOOK
+	/* 信頼関数呼び出し中フラグ設定 */
+	if (callevel_stat == TCL_TASK) {
+		saved_calltfn = p_runtsk->calltfn;
+		p_runtsk->calltfn = TRUE;
+	}
+	else {
+		saved_calltfn = p_runisr->calltfn;
+		p_runisr->calltfn = TRUE;
+	}
+#endif /* CFG_USE_PROTECTIONHOOK */
+
+	LOG_TFN_ENTER(FunctionIndex);
+	/* 信頼関数実行 */
+	ercd = p_tfinib->trs_func(FunctionIndex, FunctionParams);
+	LOG_TFN_LEAVE(FunctionIndex, ercd);
+
+#ifdef CFG_USE_STACKMONITORING
+	if ((callevel_stat & TCL_ISR2) != TCL_NULL) {
+		if ((*TOPPERS_ISTK_MAGIC_REGION(_ostk, _ostksz)) != STACK_MAGIC_NUMBER) {
+			x_nested_lock_os_int();
+			call_protectionhk_main(E_OS_STACKFAULT);
+			ASSERT(0);
+		}
+	}
+	else {
+		if ((*TOPPERS_SSTK_MAGIC_REGION(p_runtsk->p_tinib)) != STACK_MAGIC_NUMBER) {
+			x_nested_lock_os_int();
+			call_protectionhk_main_stkchg(E_OS_STACKFAULT);
+			ASSERT(0);
+		}
+	}
+#endif /* CFG_USE_STACKMONITORING */
+
+#ifdef CFG_USE_PROTECTIONHOOK
+	/* 信頼関数呼び出し中フラグ戻す */
+	if (callevel_stat == TCL_TASK) {
+		p_runtsk->calltfn = saved_calltfn;
+	}
+	else {
+		p_runisr->calltfn = saved_calltfn;
+	}
+#endif /* CFG_USE_PROTECTIONHOOK */
+
+	run_trusted = saved_run_trusted;
+
+	/* 信頼関数がエラーになった場合もエラーフックを呼び出す */
+	CHECK_NO_ERCD(ercd == E_OK);
+
+  exit_no_errorhook:
+	LOG_CALTFN_LEAVE(ercd);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.tfnid = FunctionIndex;
+	_errorhook_par2.tfnpr = FunctionParams;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_CallTrustedFunction);
+	x_nested_unlock_os_int();
+	goto exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_CallTrustedFunction */
+
+/*
+ *  アクセスチェック関数
+ */
+
+/*
+ *  OSアプリケーションのオブジェクトのアクセス権限チェックシステムサービス
+ */
+
+/*
+ *  ビットマップチェックマクロ
+ *   このファイル内のみで使用するため，ここで定義している
+ */
+
+#define	CHECK_OSAP_ACS(p_osapinib, btmp)	(ObjectAccessType) ((((p_osapinib)->osap_trusted) != FALSE) || \
+																(((p_osapinib)->btptn & (btmp)) != 0U))
+
+/*
+ *  タスク用アクセス権限チェックシステムサービス
+ */
+#ifdef TOPPERS_CheckTaskAccess
+
+ObjectAccessType
+CheckTaskAccess(ApplicationType ApplID, TaskType TaskID)
+{
+	ObjectAccessType	access;
+	StatusType			ercd;
+	TCB					*p_tcb;
+
+	LOG_CHKTSKACS_ENTER(ApplID, TaskID);
+
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_CHECKOBJECTACCESS);
+	CHECK_ID(ApplID < tnum_osap);
+	CHECK_ID(TaskID < tnum_task);
+
+	p_tcb = get_tcb(TaskID);
+
+	access = CHECK_OSAP_ACS(get_osapinib(ApplID), p_tcb->p_tinib->acsbtmp);
+
+  exit_finish:
+	LOG_CHKTSKACS_LEAVE(access);
+	return(access);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.applid = ApplID;
+	_errorhook_par2.tskid = TaskID;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_CheckTaskAccess);
+	x_nested_unlock_os_int();
+#endif /* CFG_USE_ERRORHOOK */
+
+  exit_no_errorhook:
+	access = NO_ACCESS;
+	goto exit_finish;
+}
+
+#endif /* TOPPERS_CheckTaskAccess */
+
+/*
+ *  ISR用アクセス権限チェックシステムサービス
+ */
+#ifdef TOPPERS_CheckISRAccess
+
+ObjectAccessType
+CheckISRAccess(ApplicationType ApplID, ISRType ISRID)
+{
+	ObjectAccessType	access;
+	StatusType			ercd;
+	ISRCB				*p_isrcb;
+
+	LOG_CHKISRACS_ENTER(ApplID, ISRID);
+
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_CHECKOBJECTACCESS);
+	CHECK_ID(ApplID < tnum_osap);
+	CHECK_ID(ISRID < tnum_isr2);
+
+	p_isrcb = get_isrcb(ISRID);
+
+	access = CHECK_OSAP_ACS(get_osapinib(ApplID), p_isrcb->p_isrinib->acsbtmp);
+
+  exit_finish:
+	LOG_CHKISRACS_LEAVE(access);
+	return(access);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.applid = ApplID;
+	_errorhook_par2.isrid = ISRID;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_CheckISRAccess);
+	x_nested_unlock_os_int();
+#endif /* CFG_USE_ERRORHOOK */
+
+  exit_no_errorhook:
+	access = NO_ACCESS;
+	goto exit_finish;
+}
+
+#endif /* TOPPERS_CheckISRAccess */
+
+/*
+ *  アラーム用アクセス権限チェックシステムサービス
+ */
+#ifdef TOPPERS_CheckAlarmAccess
+
+ObjectAccessType
+CheckAlarmAccess(ApplicationType ApplID, AlarmType AlarmID)
+{
+	ObjectAccessType	access;
+	StatusType			ercd;
+	ALMCB				*p_almcb;
+
+	LOG_CHKALMACS_ENTER(ApplID, AlarmID);
+
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_CHECKOBJECTACCESS);
+	CHECK_ID(ApplID < tnum_osap);
+	CHECK_ID(AlarmID < tnum_alarm);
+
+	p_almcb = get_almcb(AlarmID);
+
+	access = CHECK_OSAP_ACS(get_osapinib(ApplID), p_almcb->p_alminib->acsbtmp);
+
+  exit_finish:
+	LOG_CHKALMACS_LEAVE(access);
+	return(access);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.applid = ApplID;
+	_errorhook_par2.almid = AlarmID;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_CheckAlarmAccess);
+	x_nested_unlock_os_int();
+#endif /* CFG_USE_ERRORHOOK */
+
+  exit_no_errorhook:
+	access = NO_ACCESS;
+	goto exit_finish;
+}
+
+#endif /* TOPPERS_CheckAlarmAccess */
+
+/*
+ *  リソース用アクセス権限チェックシステムサービス
+ */
+#ifdef TOPPERS_CheckResourceAccess
+
+ObjectAccessType
+CheckResourceAccess(ApplicationType ApplID, ResourceType ResID)
+{
+	ObjectAccessType	access;
+	StatusType			ercd;
+	RESCB				*p_rescb;
+
+	LOG_CHKRESACS_ENTER(ApplID, ResID);
+
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_CHECKOBJECTACCESS);
+	CHECK_ID(ApplID < tnum_osap);
+	CHECK_ID(ResID < tnum_stdresource);
+
+	p_rescb = get_rescb(ResID);
+	access = CHECK_OSAP_ACS(get_osapinib(ApplID), p_rescb->p_resinib->acsbtmp);
+
+  exit_finish:
+	LOG_CHKRESACS_LEAVE(access);
+	return(access);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.applid = ApplID;
+	_errorhook_par2.resid = ResID;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_CheckResourceAccess);
+	x_nested_unlock_os_int();
+#endif /* CFG_USE_ERRORHOOK */
+
+  exit_no_errorhook:
+	access = NO_ACCESS;
+	goto exit_finish;
+}
+
+#endif /* TOPPERS_CheckResourceAccess */
+
+/*
+ *  カウンタ用アクセス権限チェックシステムサービス
+ */
+#ifdef TOPPERS_CheckCounterAccess
+
+ObjectAccessType
+CheckCounterAccess(ApplicationType ApplID, CounterType CounterID)
+{
+	ObjectAccessType	access;
+	StatusType			ercd;
+	CNTCB				*p_cntcb;
+
+	LOG_CHKCNTACS_ENTER(ApplID, CounterID);
+
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_CHECKOBJECTACCESS);
+	CHECK_ID(ApplID < tnum_osap);
+	CHECK_ID(CounterID < tnum_counter);
+
+	p_cntcb = get_cntcb(CounterID);
+
+	access = CHECK_OSAP_ACS(get_osapinib(ApplID), p_cntcb->p_cntinib->acsbtmp);
+
+  exit_finish:
+	LOG_CHKCNTACS_LEAVE(access);
+	return(access);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.applid = ApplID;
+	_errorhook_par2.cntid = CounterID;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_CheckCounterAccess);
+	x_nested_unlock_os_int();
+#endif /* CFG_USE_ERRORHOOK */
+
+  exit_no_errorhook:
+	access = NO_ACCESS;
+	goto exit_finish;
+}
+
+#endif /* TOPPERS_CheckCounterAccess */
+
+/*
+ *  スケジュールテーブル用アクセス権限チェックシステムサービス
+ */
+#ifdef TOPPERS_CheckScheduleTableAccess
+
+ObjectAccessType
+CheckScheduleTableAccess(ApplicationType ApplID, ScheduleTableType ScheduleTableID)
+{
+	ObjectAccessType	access;
+	StatusType			ercd;
+	SCHTBLCB			*p_schtblcb;
+
+	LOG_CHKSCHTBLACS_ENTER(ApplID, ScheduleTableID);
+
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_CHECKOBJECTACCESS);
+	CHECK_ID(ApplID < tnum_osap);
+	CHECK_ID(ScheduleTableID < tnum_scheduletable);
+
+	p_schtblcb = get_schtblcb(ScheduleTableID);
+
+	access = CHECK_OSAP_ACS(get_osapinib(ApplID), p_schtblcb->p_schtblinib->acsbtmp);
+
+  exit_finish:
+	LOG_CHKSCHTBLACS_LEAVE(access);
+	return(access);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.applid = ApplID;
+	_errorhook_par2.schtblid = ScheduleTableID;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_CheckScheduleTableAccess);
+	x_nested_unlock_os_int();
+#endif /* CFG_USE_ERRORHOOK */
+
+  exit_no_errorhook:
+	access = NO_ACCESS;
+	goto exit_finish;
+}
+
+#endif /* TOPPERS_CheckScheduleTableAccess */
+
+/*
+ *  OSアプリケーションのオブジェクトの所有チェックシステムサービス
+ */
+
+/*
+ *  タスク用オブジェクト所有チェックシステムサービス
+ */
+#ifdef TOPPERS_CheckTaskOwnership
+
+ApplicationType
+CheckTaskOwnership(TaskType TaskID)
+{
+	ApplicationType	owner;
+	StatusType		ercd;
+	TCB				*p_tcb;
+
+	LOG_CHKTSKOWN_ENTER(TaskID);
+
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_CHECKOBJECTOWNERSHIP);
+	CHECK_ID(TaskID < tnum_task);
+
+	p_tcb = get_tcb(TaskID);
+	owner = OSAPID(p_tcb->p_tinib->p_osapcb);
+
+  exit_finish:
+	LOG_CHKTSKOWN_LEAVE(owner);
+	return(owner);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.tskid = TaskID;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_CheckTaskOwnership);
+	x_nested_unlock_os_int();
+#endif /* CFG_USE_ERRORHOOK */
+
+  exit_no_errorhook:
+	owner = INVALID_OSAPPLICATION;
+	goto exit_finish;
+}
+
+#endif /* TOPPERS_CheckTaskOwnership */
+
+/*
+ *  ISR用オブジェクト所有チェックシステムサービス
+ */
+#ifdef TOPPERS_CheckISROwnership
+
+ApplicationType
+CheckISROwnership(ISRType ISRID)
+{
+	ApplicationType	owner;
+	StatusType		ercd;
+	ISRCB			*p_isrcb;
+
+	LOG_CHKISROWN_ENTER(ISRID);
+
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_CHECKOBJECTOWNERSHIP);
+	CHECK_ID(ISRID < tnum_isr2);
+
+	p_isrcb = get_isrcb(ISRID);
+	owner = OSAPID(p_isrcb->p_isrinib->p_osapcb);
+
+  exit_finish:
+	LOG_CHKISROWN_LEAVE(owner);
+	return(owner);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.isrid = ISRID;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_CheckISROwnership);
+	x_nested_unlock_os_int();
+#endif /* CFG_USE_ERRORHOOK */
+
+  exit_no_errorhook:
+	owner = INVALID_OSAPPLICATION;
+	goto exit_finish;
+}
+
+#endif /* TOPPERS_CheckISROwnership */
+
+/*
+ *  アラーム用オブジェクト所有チェックシステムサービス
+ */
+#ifdef TOPPERS_CheckAlarmOwnership
+
+ApplicationType
+CheckAlarmOwnership(AlarmType AlarmID)
+{
+	ApplicationType	owner;
+	StatusType		ercd;
+	ALMCB			*p_almcb;
+
+	LOG_CHKALMOWN_ENTER(AlarmID);
+
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_CHECKOBJECTOWNERSHIP);
+	CHECK_ID(AlarmID < tnum_alarm);
+
+	p_almcb = get_almcb(AlarmID);
+	owner = OSAPID(p_almcb->p_alminib->p_osapcb);
+
+  exit_finish:
+	LOG_CHKALMOWN_LEAVE(owner);
+	return(owner);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.almid = AlarmID;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_CheckAlarmOwnership);
+	x_nested_unlock_os_int();
+#endif /* CFG_USE_ERRORHOOK */
+
+  exit_no_errorhook:
+	owner = INVALID_OSAPPLICATION;
+	goto exit_finish;
+}
+
+#endif /* TOPPERS_CheckAlarmOwnership */
+
+/*
+ *  カウンタ用オブジェクト所有チェックシステムサービス
+ */
+#ifdef TOPPERS_CheckCounterOwnership
+
+ApplicationType
+CheckCounterOwnership(CounterType CounterID)
+{
+	ApplicationType	owner;
+	StatusType		ercd;
+	CNTCB			*p_cntcb;
+
+	LOG_CHKCNTOWN_ENTER(CounterID);
+
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_CHECKOBJECTOWNERSHIP);
+	CHECK_ID(CounterID < tnum_counter);
+
+	p_cntcb = get_cntcb(CounterID);
+	owner = OSAPID(p_cntcb->p_cntinib->p_osapcb);
+
+  exit_finish:
+	LOG_CHKCNTOWN_LEAVE(owner);
+	return(owner);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.cntid = CounterID;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_CheckCounterOwnership);
+	x_nested_unlock_os_int();
+#endif /* CFG_USE_ERRORHOOK */
+
+  exit_no_errorhook:
+	owner = INVALID_OSAPPLICATION;
+	goto exit_finish;
+}
+
+#endif /* TOPPERS_CheckCounterOwnership */
+
+/*
+ *  スケジュールテーブル用オブジェクト所有チェックシステムサービス
+ */
+#ifdef TOPPERS_CheckScheduleTableOwnership
+
+ApplicationType
+CheckScheduleTableOwnership(ScheduleTableType ScheduleTableID)
+{
+	ApplicationType	owner;
+	StatusType		ercd;
+	SCHTBLCB		*p_schtblcb;
+
+	LOG_CHKSCHTBLOWN_ENTER(ScheduleTableID);
+
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_CHECKOBJECTOWNERSHIP);
+	CHECK_ID(ScheduleTableID < tnum_scheduletable);
+
+	p_schtblcb = get_schtblcb(ScheduleTableID);
+	owner = OSAPID(p_schtblcb->p_schtblinib->p_osapcb);
+
+  exit_finish:
+	LOG_CHKSCHTBLOWN_LEAVE(owner);
+	return(owner);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.schtblid = ScheduleTableID;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_CheckScheduleTableOwnership);
+	x_nested_unlock_os_int();
+#endif /* CFG_USE_ERRORHOOK */
+
+  exit_no_errorhook:
+	owner = INVALID_OSAPPLICATION;
+	goto exit_finish;
+}
+
+#endif /* TOPPERS_CheckScheduleTableOwnership */
+
+/*
+ *  自OSAPを利用可能な状態にする
+ */
+#ifdef TOPPERS_AllowAccess
+
+StatusType
+AllowAccess(void)
+{
+	StatusType ercd = E_OK;
+
+	LOG_ALLOWACCESS_ENTER();
+
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_ALLOWACCESS);
+	/* ここに来た場合p_runosap(自OSAP)がNULLではない */
+	CHECK_STATE(p_runosap->osap_stat == APPLICATION_RESTARTING);
+
+	x_nested_lock_os_int();
+
+	p_runosap->osap_stat = APPLICATION_ACCESSIBLE;
+
+  d_exit_no_errorhook:
+	x_nested_unlock_os_int();
+  exit_no_errorhook:
+	LOG_ALLOWACCESS_LEAVE(ercd);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+	call_errorhook(ercd, OSServiceId_AllowAccess);
+	goto d_exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_AllowAccess */
+
+/*
+ *  指定OSAPを終了/再起動する
+ */
+#ifdef TOPPERS_TerminateApplication
+
+StatusType
+TerminateApplication(ApplicationType Application, RestartType RestartOption)
+{
+	StatusType	ercd = E_OK;
+	OSAPCB		*p_osapcb;
+
+	LOG_TERMINATEAPPLICATION_ENTER(Application, RestartOption);
+
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_TERMINATEAPPLICATION);
+	CHECK_ID((Application < tnum_osap) && (get_osapinib(Application)->osap_trusted == FALSE));
+	p_osapcb = get_osapcb(Application);
+	CHECK_VALUE((RestartOption == NO_RESTART) || ((RestartOption == RESTART) &&
+												  (p_osapcb->p_osapinib->p_restart_tcb != NULL)));
+
+#ifdef CFG_USE_ERRORHOOK
+	if ((callevel_stat & TCL_ERROR) == TCL_NULL) {
+		/*
+		 *  タスクかC2ISRからの呼び出し
+		 *  信頼OSAPからか自OSAPからかしか呼び出せない
+		 */
+		CHECK_ACCESS((run_trusted != FALSE) || (p_osapcb == p_runosap));
+	}
+	else {
+		/*
+		 *  自OSAP(非信頼)の固有エラーフック以外のフックなら呼び出せない
+		 */
+		CHECK_ID((run_trusted == FALSE) && (p_osapcb == p_runosap));
+	}
+#else /* CFG_USE_ERRORHOOK */
+	/*
+	 *  タスクかC2ISRからの呼び出し
+	 *  信頼OSAPからか自OSAPからかしか呼び出せない
+	 */
+	CHECK_ACCESS((run_trusted != FALSE) || (p_osapcb == p_runosap));
+#endif /* CFG_USE_ERRORHOOK */
+
+	x_nested_lock_os_int();
+
+	S_D_CHECK_STATE((p_osapcb->osap_stat == APPLICATION_ACCESSIBLE) ||
+					((p_osapcb->osap_stat == APPLICATION_RESTARTING) &&
+					 (p_osapcb == p_runosap) && (RestartOption == NO_RESTART)));
+
+	internal_term_osap(p_osapcb, RestartOption);
+
+  d_exit_no_errorhook:
+	x_nested_unlock_os_int();
+  exit_no_errorhook:
+	LOG_TERMINATEAPPLICATION_LEAVE(ercd);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+  d_exit_errorhook:
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.applid = Application;
+	_errorhook_par2.restartoption = RestartOption;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_TerminateApplication);
+	goto d_exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_TerminateApplication */
+
+/*
+ *  指定OSAPを終了/再起動する内部関数(プロテクションフックからも呼ばれる)
+ */
+#ifdef TOPPERS_internal_term_osap
+
+void
+internal_term_osap(OSAPCB *p_osapcb, RestartType RestartOption)
+{
+	TCB		*p_restart_tcb;
+	boolean	dspflg = FALSE;
+
+	if (RestartOption == RESTART) {
+		p_osapcb->osap_stat = APPLICATION_RESTARTING;
+	}
+	else {
+		p_osapcb->osap_stat = APPLICATION_TERMINATED;
+	}
+
+	force_term_osap_counter(p_osapcb);
+	force_term_osap_alarm(p_osapcb);
+	force_term_osap_schtbl(p_osapcb);
+	force_term_osap_task(p_osapcb);
+
+	if (RestartOption == RESTART) {
+		p_restart_tcb = p_osapcb->p_osapinib->p_restart_tcb;
+		if (p_restart_tcb != NULL) {
+			dspflg = make_active(p_restart_tcb);
+		}
+		else {
+			/* プロテクションフックからのリターンのみ実行される */
+			callevel_chk_shutdown(E_OS_PROTECTION_FATAL);
+		}
+	}
+
+	if ((callevel_stat & TCL_OSAP_STARTUP) != TCL_NULL) {
+		/*  OSAP固有スタートアップフック中発生したプロテクションフックから
+		 *  のリターンのみ実行される
+		 *  フックを強制終了し，そのフックが所属するOSAPは終了状態となる
+		 *  後続のスタートアップフックは実行され，OSが起動する
+		 */
+		x_clear_nested_os_int();
+		exit_nontrusted_hook();
+	}
+	else if (p_runosap == p_osapcb) {
+		/* 全割込み禁止状態で，タスク強制終了しても，DisableAllInterrupts全割込み禁止状態を解除しない */
+		callevel_stat = (callevel_stat & TSYS_DISALLINT) | TCL_TASK;
+		/*
+		 *  処理単位がネストした場合，終了するOSAP確保した割込み禁止を解除する
+		 *  エラーフックは呼ばない
+		 *  エラーフックを呼ばないため，引数にOSServiceId_Invalidをする
+		 */
+		if (sus_all_cnt > 0U) {
+			sus_all_cnt = 0U;
+			sus_all_cnt_ctx = 0U;
+		}
+		if (sus_os_cnt > 0U) {
+			sus_os_cnt = 0U;
+			sus_os_cnt_ctx = 0U;
+		}
+		x_clear_nested_os_int();
+		cancel_nontrusted_hook();
+		/* 自OSAPから呼び出した場合は，呼び出し元に戻らない */
+		exit_and_dispatch_nohook();
+	}
+	else if ((dspflg != FALSE) && ((callevel_stat & ~TCL_TASK) == TCL_NULL)) {
+		/*他のOSAPのタスクから呼び出し，且つディスパッチが必要な場合 */
+		dispatch();
+	}
+	else {
+		/* 上記以外の場合は，リターン */
+	}
+}
+
+#endif /* TOPPERS_internal_term_osap */
Index: /atk2-sc3_fl850f1l/kernel/osap.h
===================================================================
--- /atk2-sc3_fl850f1l/kernel/osap.h	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/osap.h	(revision 117)
@@ -0,0 +1,174 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: osap.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		OSアプリケーション管理機能
+ */
+
+#ifndef TOPPERS_OSAP_H
+#define TOPPERS_OSAP_H
+
+/*
+ *  OSアプリケーションの属性
+ */
+#define TA_NONTRUSTED			(FALSE)
+#define TA_TRUSTED				(TRUE)
+
+/*
+ *  OSアプリケーションIDからOSAPINIBを取り出すためのマクロ
+ */
+#define get_osapinib(osapid)	(&(osapinib_table[(osapid)]))
+
+/*
+ *  OSAPIDからOSAPCBを取り出すためのマクロ
+ */
+#define get_osapcb(osapid)		(&(osapcb_table[(osapid)]))
+
+/*
+ *  OSAPCBからOSアプリケーションIDを取り出すためのマクロ
+ */
+#define OSAPID(p_osapcb)	((ApplicationType) ((p_osapcb) - osapcb_table))
+
+#ifndef TOPPERS_MACRO_ONLY
+
+typedef struct os_application_control_block OSAPCB;
+#include "task.h"
+
+/*
+ *  OSアプリケーション初期化ブロック
+ *
+ *  OSアプリケーションに関する情報を，OSアプリケーション制御ブロックと
+ *  して定義する
+ *  他のオブジェクトは，ROMに置く初期化ブロックとRAMに置く制御ブロック
+ *  で構成されているが，OSアプリケーションに関する情報は実行時に変更さ
+ *  れることがないため，初期化ブロックを制御ブロックとして使用する
+ *
+ *  ATK2-SC3では，メモリプロテクション機能のための情報を持たせるが，
+ *  メモリプロテクション実装はCPUに依存するため，メモリプロテクション
+ *  情報の本体は機種依存部に持たせる
+ */
+typedef struct os_application_initialization_block {
+	void (*StartupHook)(void);
+	void (*ErrorHook)(StatusType);
+	void (*ShutdownHook)(StatusType);
+	TCB		*p_restart_tcb;                             /* OSAPのリスタートタスク管理ブロックへのポインタ */
+	boolean	osap_trusted;                               /* OSアプリケーションの属性 */
+	uint32	btptn;                                      /* 非信頼OSアプリケーションのビットパターン */
+#ifndef OMIT_OSAPMPUINFOB
+	OSAPMPUINFOB osap_mpu;                              /* OSアプリケーションのMPU情報 */
+#endif
+
+} OSAPINIB;
+
+/*
+ *  OSアプリケーション管理ブロック
+ */
+struct os_application_control_block {
+	const OSAPINIB			*p_osapinib;                /* 初期化ブロックへのポインタ */
+	ApplicationStateType	osap_stat;                  /* OSAP状態 */
+};
+
+/*
+ *  OSアプリケーション数を保持する変数の宣言（Os_Lcfg.c）
+ */
+extern const ApplicationType			tnum_osap;      /* OSアプリケーションの数 */
+
+extern const TrustedFunctionIndexType	tnum_tfn;       /* 信頼関数の数 */
+
+typedef StatusType (*TrustedFunctionRefType)(TrustedFunctionIndexType FunctionIndex,
+											 TrustedFunctionParameterRefType FunctionParams);
+
+/*
+ *  信頼関数初期化ブロック
+ */
+typedef struct trusted_function_initialization_block {
+	TrustedFunctionRefType	trs_func;   /* 信頼関数の起動番地 */
+	MemorySizeType			tf_stksz;   /* スタックサイズ */
+} TFINIB;
+
+/*
+ *  OSAPCBのエリア（Os_Lcfg.c）
+ */
+extern OSAPCB			osapcb_table[];
+
+/*
+ *  実行中のOSアプリケーション
+ */
+extern OSAPCB			*p_runosap;
+
+/*
+ *  OSAPINIBの外部参照（kernel_mem.c）
+ */
+extern const OSAPINIB	osapinib_table[];
+
+/*
+ *  TFINIBの外部参照（Os_Lcfg.c）
+ */
+extern const TFINIB		tfinib_table[];
+
+/*
+ *  指定OSAPを終了/再起動する内部関数(プロテクションフックからも呼ばれる)
+ */
+extern void internal_term_osap(OSAPCB *p_osapcb, RestartType RestartOption);
+
+/*
+ *  OSアプリケーション管理モジュールの初期化
+ */
+extern void osap_initialize(void);
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_OSAP_H_ */
Index: /atk2-sc3_fl850f1l/kernel/osctl.c
===================================================================
--- /atk2-sc3_fl850f1l/kernel/osctl.c	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/osctl.c	(revision 117)
@@ -0,0 +1,653 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2004-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: osctl.c 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		OS制御モジュール
+ */
+
+#include "kernel_impl.h"
+#include "interrupt.h"
+#include "task.h"
+
+/*
+ *  トレースログマクロのデフォルト定義
+ */
+
+#ifndef LOG_ERRHOOK_ENTER
+#define LOG_ERRHOOK_ENTER(ercd)
+#endif /* LOG_ERRHOOK_ENTER */
+
+#ifndef LOG_ERRHOOK_LEAVE
+#define LOG_ERRHOOK_LEAVE()
+#endif /* LOG_ERRHOOK_LEAVE */
+
+#ifndef LOG_ERRHOOKOSAP_ENTER
+#define LOG_ERRHOOKOSAP_ENTER(p_runosap, ercd)
+#endif /* LOG_ERRHOOKOSAP_ENTER */
+
+#ifndef LOG_ERRHOOKOSAP_LEAVE
+#define LOG_ERRHOOKOSAP_LEAVE(p_runosap)
+#endif /* LOG_ERRHOOKOSAP_LEAVE */
+
+#ifndef LOG_PROHOOK_ENTER
+#define LOG_PROHOOK_ENTER(ercd)
+#endif /* LOG_PROHOOK_ENTER */
+
+#ifndef LOG_PROHOOK_LEAVE
+#define LOG_PROHOOK_LEAVE(pret)
+#endif /* LOG_PROHOOK_LEAVE */
+
+#ifndef LOG_SHUTHOOK_ENTER
+#define LOG_SHUTHOOK_ENTER(ercd)
+#endif /* LOG_SHUTHOOK_ENTER */
+
+#ifndef LOG_SHUTHOOK_LEAVE
+#define LOG_SHUTHOOK_LEAVE()
+#endif /* LOG_SHUTHOOK_LEAVE */
+
+#ifndef LOG_SHUTHOOKOSAP_ENTER
+#define LOG_SHUTHOOKOSAP_ENTER(index, ercd)
+#endif /* LOG_SHUTHOOKOSAP_ENTER */
+
+#ifndef LOG_SHUTHOOKOSAP_LEAVE
+#define LOG_SHUTHOOKOSAP_LEAVE(index)
+#endif /* LOG_SHUTHOOKOSAP_LEAVE */
+
+#ifndef LOG_STUTOS_ENTER
+#define LOG_STUTOS_ENTER(ercd)
+#endif /* LOG_STUTOS_ENTER */
+
+#ifndef LOG_STUTOS_LEAVE
+#define LOG_STUTOS_LEAVE()
+#endif /* LOG_STUTOS_LEAVE */
+
+#ifdef CFG_USE_ERRORHOOK
+/*
+ *  エラーフックに渡す情報を格納する変数
+ */
+#ifdef TOPPERS_internal_call_errorhook
+
+#ifdef CFG_USE_GETSERVICEID
+DEFINE_VAR_SEC_NOBITS(OSServiceIdType, _errorhook_svcid, ".srpw_bss_kernel");
+#endif /* CFG_USE_GETSERVICEID */
+
+#ifdef CFG_USE_PARAMETERACCESS
+_ErrorHook_Par	_errorhook_par1;
+_ErrorHook_Par	_errorhook_par2;
+_ErrorHook_Par	_errorhook_par3;
+DEFINE_VAR_SEC_NOBITS(_ErrorHook_Par, errorhook_par1, ".srpw_bss_kernel");
+DEFINE_VAR_SEC_NOBITS(_ErrorHook_Par, errorhook_par2, ".srpw_bss_kernel");
+DEFINE_VAR_SEC_NOBITS(_ErrorHook_Par, errorhook_par3, ".srpw_bss_kernel");
+#endif /* CFG_USE_PARAMETERACCESS */
+
+/*
+ *  エラーフックの呼び出し
+ */
+void
+internal_call_errorhook(StatusType ercd, OSServiceIdType svcid)
+{
+	void (*volatile errorhook_adr) (StatusType Error);
+	uint8	saved_sus_all_cnt_ctx;
+	uint8	saved_sus_os_cnt_ctx;
+
+	boolean	saved_run_trusted = run_trusted;
+
+	saved_sus_all_cnt_ctx = sus_all_cnt_ctx;
+	saved_sus_os_cnt_ctx = sus_os_cnt_ctx;
+
+	sus_all_cnt_ctx = 0U;
+	sus_os_cnt_ctx = 0U;
+
+#ifdef CFG_USE_SYSTEM_ERRORHOOK
+	/*
+	 *  C言語の規格では関数のアドレスは0にならないという前提から,
+	 *  コンパイラの最適化によりErrorHookのアドレス判定分岐が
+	 *  削除されてしまう場合があるため, volatile指定したローカル変数に
+	 *  アドレスを代入してから判定している
+	 */
+	errorhook_adr = &ErrorHook;
+
+	if (errorhook_adr != NULL) {
+		if ((callevel_stat & (TCL_ERROR | TSYS_ISR1)) == TCL_NULL) {
+
+#ifdef CFG_USE_GETSERVICEID
+			_errorhook_svcid = svcid;
+#endif /* CFG_USE_GETSERVICEID */
+
+#ifdef CFG_USE_PARAMETERACCESS
+			errorhook_par1 = _errorhook_par1;
+			errorhook_par2 = _errorhook_par2;
+			errorhook_par3 = _errorhook_par3;
+#endif /* CFG_USE_PARAMETERACCESS */
+
+			ENTER_CALLEVEL(TCL_SYS_ERROR);
+			run_trusted = TRUE;
+
+			LOG_ERRHOOK_ENTER(ercd);
+			ErrorHook(ercd);
+			LOG_ERRHOOK_LEAVE();
+			LEAVE_CALLEVEL(TCL_SYS_ERROR);
+
+			release_interrupts(OSServiceId_HookMissingEnd);
+		}
+	}
+#endif /* CFG_USE_SYSTEM_ERRORHOOK */
+
+#ifdef CFG_USE_OSAP_ERRORHOOK
+	/* OSアプリケーション定義のエラーフック呼出し */
+	errorhook_adr = NULL;
+	if (p_runosap != NULL) {
+		errorhook_adr = p_runosap->p_osapinib->ErrorHook;
+	}
+
+	if (errorhook_adr != NULL) {
+		if ((callevel_stat & (TCL_ERROR | TSYS_ISR1)) == TCL_NULL) {
+#ifdef CFG_USE_GETSERVICEID
+			_errorhook_svcid = svcid;
+#endif /* CFG_USE_GETSERVICEID */
+
+#ifdef CFG_USE_PARAMETERACCESS
+			errorhook_par1 = _errorhook_par1;
+			errorhook_par2 = _errorhook_par2;
+			errorhook_par3 = _errorhook_par3;
+#endif /* CFG_USE_PARAMETERACCESS */
+
+			ENTER_CALLEVEL(TCL_OSAP_ERROR);
+
+			LOG_ERRHOOKOSAP_ENTER(p_runosap, ercd);
+			if (p_runosap->p_osapinib->osap_trusted != FALSE) {
+				run_trusted = TRUE;
+				errorhook_adr(ercd);
+			}
+			else {
+				run_trusted = FALSE;
+				call_nontrusted_hook((void *) errorhook_adr, ercd, ERROR_HOOK);
+			}
+			LOG_ERRHOOKOSAP_LEAVE(p_runosap);
+
+			LEAVE_CALLEVEL(TCL_OSAP_ERROR);
+
+			release_interrupts(OSServiceId_HookMissingEnd);
+		}
+	}
+#endif /* CFG_USE_OSAP_ERRORHOOK */
+
+	sus_all_cnt_ctx = saved_sus_all_cnt_ctx;
+	sus_os_cnt_ctx = saved_sus_os_cnt_ctx;
+
+	run_trusted = saved_run_trusted;
+}
+
+#endif /* TOPPERS_internal_call_errorhook */
+
+#endif /* CFG_USE_ERRORHOOK */
+
+#ifdef CFG_USE_POSTTASKHOOK
+/*
+ *  ポストタスクフックの呼び出し
+ */
+#ifdef TOPPERS_call_posttaskhook
+
+void
+call_posttaskhook(void)
+{
+	boolean saved_run_trusted;
+
+	ENTER_CALLEVEL(TCL_PREPOST);
+	saved_run_trusted = run_trusted;
+	run_trusted = TRUE;
+
+	PostTaskHook();
+
+	run_trusted = saved_run_trusted;
+
+	LEAVE_CALLEVEL(TCL_PREPOST);
+
+	release_interrupts(OSServiceId_HookMissingEnd);
+}
+
+#endif /* TOPPERS_call_posttaskhook */
+
+#endif /* CFG_USE_POSTTASKHOOK */
+
+#ifdef CFG_USE_PRETASKHOOK
+/*
+ *  プレタスクフックの呼び出し
+ */
+#ifdef TOPPERS_call_pretaskhook
+
+void
+call_pretaskhook(void)
+{
+	boolean saved_run_trusted;
+
+	ENTER_CALLEVEL(TCL_PREPOST);
+	saved_run_trusted = run_trusted;
+	run_trusted = TRUE;
+
+	PreTaskHook();
+
+	run_trusted = saved_run_trusted;
+
+	LEAVE_CALLEVEL(TCL_PREPOST);
+
+	release_interrupts(OSServiceId_HookMissingEnd);
+}
+
+#endif /* TOPPERS_call_pretaskhook */
+
+#endif /* CFG_USE_PRETASKHOOK */
+
+#ifdef CFG_USE_STACKMONITORING
+
+#ifdef TOPPERS_init_stack_magic_region
+
+/*
+ *  スタックモニタリング機能の初期化
+ *  スタックモニタリング機能のためのマジックナンバー領域の初期化
+ */
+void
+init_stack_magic_region(void)
+{
+	StackType *p_stack_magic_region;
+
+	/*
+	 *  スタックモニタリング機能のため，スタック成長方向考慮した
+	 *  非タスクスタックのマジックナンバー領域の初期化
+	 */
+	p_stack_magic_region = TOPPERS_ISTK_MAGIC_REGION(_ostk, _ostksz);
+	*p_stack_magic_region = STACK_MAGIC_NUMBER;
+}
+
+#endif /* TOPPERS_init_stack_magic_region */
+
+#endif /* CFG_USE_STACKMONITORING */
+
+/*
+ *  シャットダウンフックの強制終了
+ */
+#ifdef TOPPERS_cancel_shutdown_hook
+
+void
+cancel_shutdown_hook(void)
+{
+
+	if (is_running_nontrusted_shtdwnhk() != FALSE) {
+		/* 非信頼フックの強制終了 */
+		exit_nontrusted_hook();
+	}
+	else {
+		/* 信頼フックの強制終了 */
+		exit_trusted_shutdown_hook();
+	}
+	ASSERT(0);
+}
+#endif /* TOPPERS_cancel_shutdown_hook */
+
+/*
+ *  処理レベルチェック付きのOSシャットダウン
+ *  プロテクションフックの呼び出し処理から呼ばれる
+ *  シャットダウンフック実行中に発生した場合，
+ *  シャットダウンフックをキャンセルして後続シャット
+ *  ダウン処理を続ける
+ *
+ */
+#ifdef TOPPERS_callevel_chk_shutdown
+
+void
+callevel_chk_shutdown(StatusType ercd)
+{
+
+	if ((callevel_stat & TCL_SHUTDOWN) != TCL_NULL) {
+		if (((callevel_stat & TCL_OSAP_SHUTDOWN) != TCL_NULL) && (p_runosap != NULL)) {
+			p_runosap->osap_stat = APPLICATION_TERMINATED;
+		}
+		cancel_shutdown_hook();
+	}
+	else {
+		internal_shutdownos(ercd);
+	}
+}
+#endif /* TOPPERS_callevel_chk_shutdown */
+
+/*
+ *  プロテクションフックの呼び出し
+ *  引数の最上位ビットは，呼び出し箇所を示す役割がある
+ */
+#ifdef TOPPERS_call_protectionhk_main
+
+void
+call_protectionhk_main(StatusType peob_ercd)
+{
+	StatusType				protection_error = peob_ercd & (~PROTECTION_ERROR_OPTIONAL_BIT);
+
+#ifdef CFG_USE_PROTECTIONHOOK
+
+	boolean					saved_run_trusted;
+
+	ProtectionReturnType	pret;
+	ProtectionReturnType	(*volatile protectionhook_adr) (StatusType FatalError);
+	uint8					saved_sus_all_cnt_ctx;
+	uint8					saved_sus_os_cnt_ctx;
+
+	/* プロテクションフック実行中に保護違反が発生した場合 */
+	if ((callevel_stat & TCL_PROTECT) == TCL_PROTECT) {
+		callevel_chk_shutdown(E_OS_PROTECTION_FATAL);
+	}
+
+	/*
+	 *  C言語の規格では関数のアドレスは0にならないという前提から,
+	 *  コンパイラの最適化によりProtectionHookのアドレス判定分岐が
+	 *  削除されてしまう場合があるため, volatile指定したローカル変数に
+	 *  アドレスを代入してから判定している
+	 */
+	protectionhook_adr = &ProtectionHook;
+
+	/* 以下 システム定義のプロテクションフックを呼出す処理 */
+	if (protectionhook_adr != NULL) {
+
+		saved_sus_all_cnt_ctx = sus_all_cnt_ctx;
+		saved_sus_os_cnt_ctx = sus_os_cnt_ctx;
+
+		sus_all_cnt_ctx = 0U;
+		sus_os_cnt_ctx = 0U;
+
+		ENTER_CALLEVEL(TCL_PROTECT);
+		saved_run_trusted = run_trusted;
+
+		run_trusted = TRUE;
+		LOG_PROHOOK_ENTER(protection_error);
+		pret = protectionhook_adr(protection_error);
+		LOG_PROHOOK_LEAVE(pret);
+		run_trusted = saved_run_trusted;
+
+		LEAVE_CALLEVEL(TCL_PROTECT);
+
+		release_interrupts(OSServiceId_HookMissingEnd);
+
+		sus_all_cnt_ctx = saved_sus_all_cnt_ctx;
+		sus_os_cnt_ctx = saved_sus_os_cnt_ctx;
+
+		/* 以下 ProtectionHook 実行後の処理 */
+		switch (pret) {
+		case PRO_SHUTDOWN:
+			callevel_chk_shutdown(protection_error);
+			break;
+		case PRO_TERMINATETASKISR:
+			if ((callevel_stat & TCL_SHUTDOWN) != TCL_NULL) {
+				if (((callevel_stat & TCL_OSAP_SHUTDOWN) != TCL_NULL) && (p_runosap != NULL)) {
+					p_runosap->osap_stat = APPLICATION_TERMINATED;
+				}
+				cancel_shutdown_hook();
+			}
+			if ((callevel_stat & TSYS_ISR1) != TSYS_NULL) {
+				internal_shutdownos(E_OS_PROTECTION_FATAL);
+			}
+			if ((callevel_stat & (TCL_STARTUP | TCL_ERROR | TCL_PREPOST)) != TCL_NULL) {
+				/* スタートアップフック実行中はシャットダウン */
+				internal_shutdownos(E_OS_PROTECTION_FATAL);
+			}
+
+			if (p_runisr != NULL) {
+				/* 機能レベル2ではC2ISR実行中はシャットダウン */
+				internal_shutdownos(E_OS_PROTECTION_FATAL);
+			}
+			else if ((p_runtsk != NULL) && (p_runtsk->calltfn == FALSE)) {
+				/* タスクの場合 */
+				force_terminate_task(p_runtsk, peob_ercd, FALSE);
+
+				/*
+				 *  ディスパッチャ，割込み入口処理でのスタックモニタリング
+				 *  の場合は，ここに戻るが，それ以外の場合ここに戻らない
+				 */
+			}
+			else {
+				/* 機能レベル2でタスク，C2ISRが存在しない場合 */
+				internal_shutdownos(E_OS_PROTECTION_FATAL);
+			}
+			break;
+		case PRO_IGNORE:
+			if (protection_error != E_OS_PROTECTION_EXCEPTION) {
+				callevel_chk_shutdown(E_OS_PROTECTION_FATAL);
+			}
+			break;
+		case PRO_TERMINATEAPPL:
+			if ((callevel_stat & TCL_SHUTDOWN) != TCL_NULL) {
+				if (((callevel_stat & TCL_OSAP_SHUTDOWN) != TCL_NULL) && (p_runosap != NULL)) {
+					p_runosap->osap_stat = APPLICATION_TERMINATED;
+				}
+				cancel_shutdown_hook();
+			}
+			if ((callevel_stat & TSYS_ISR1) != TSYS_NULL) {
+				internal_shutdownos(E_OS_PROTECTION_FATAL);
+			}
+			if ((callevel_stat & (TCL_SYS_STARTUP | TCL_SYS_ERROR | TCL_PREPOST)) != TCL_NULL) {
+				internal_shutdownos(E_OS_PROTECTION_FATAL);
+			}
+			if ((p_runosap == NULL) || (run_trusted != FALSE)) {
+				internal_shutdownos(E_OS_PROTECTION_FATAL);
+			}
+			else {
+				internal_term_osap(p_runosap, NO_RESTART);
+			}
+			break;
+		case PRO_TERMINATEAPPL_RESTART:
+			if ((callevel_stat & TCL_SHUTDOWN) != TCL_NULL) {
+				if (((callevel_stat & TCL_OSAP_SHUTDOWN) != TCL_NULL) && (p_runosap != NULL)) {
+					p_runosap->osap_stat = APPLICATION_TERMINATED;
+				}
+				cancel_shutdown_hook();
+			}
+			if ((callevel_stat & TSYS_ISR1) != TSYS_NULL) {
+				internal_shutdownos(E_OS_PROTECTION_FATAL);
+			}
+			if ((callevel_stat & (TCL_STARTUP | TCL_SYS_ERROR | TCL_PREPOST)) != TCL_NULL) {
+				internal_shutdownos(E_OS_PROTECTION_FATAL);
+			}
+			if ((p_runosap == NULL) || (run_trusted != FALSE)) {
+				internal_shutdownos(E_OS_PROTECTION_FATAL);
+			}
+			else {
+				internal_term_osap(p_runosap, RESTART);
+			}
+			break;
+		default:
+			/* ProtectionHookから不正な値が返った場合 */
+			callevel_chk_shutdown(E_OS_PROTECTION_FATAL);
+			break;
+		}
+	}
+	else {
+		callevel_chk_shutdown(protection_error);
+	}
+
+#else /* CFG_USE_PROTECTIONHOOK */
+
+	/*
+	 *  プロテクションフックがコンフィギュレーション時に無効と
+	 *  されている場合，OSは保護違反時処理としてOSシャットダウンを
+	 *  行う
+	 *  このとき，OSシャットダウンのパラメータとして，
+	 *  違反の区別を示すエラーコードを指定する
+	 */
+	callevel_chk_shutdown(protection_error);
+#endif /* CFG_USE_PROTECTIONHOOK */
+
+}
+
+#endif /* TOPPERS_call_protectionhk_main */
+
+/*
+ *  OS内部からのShutdownOSの呼び出し
+ */
+#ifdef TOPPERS_internal_shutdownos
+
+void
+internal_shutdownos(StatusType ercd)
+{
+	LOG_STUTOS_ENTER(ercd);
+
+	x_nested_lock_os_int();
+
+#ifdef CFG_USE_SHUTDOWNHOOK
+	call_shutdownhook(ercd);
+#endif /* CFG_USE_SHUTDOWNHOOK */
+
+	/* 各モジュールの終了処理 */
+	object_terminate();
+
+	/* 全割込み禁止状態に移行 */
+	x_lock_all_int();
+
+	LOG_STUTOS_LEAVE();
+
+	/* ターゲット依存の終了処理 */
+	target_exit();
+
+	/*
+	 * ターゲット依存部から処理が返ってきた場合，
+	 * 無限ループを行う
+	 */
+	while (1) {
+	}
+
+}
+
+#endif /* TOPPERS_internal_shutdownos */
+
+#ifdef TOPPERS_internal_call_shtdwnhk
+
+#ifdef CFG_USE_SHUTDOWNHOOK
+
+void
+internal_call_shtdwnhk(StatusType ercd)
+{
+
+	void (*volatile shutdownhook_adr) (StatusType Error);
+#ifdef CFG_USE_OSAP_SHUTDOWNHOOK
+	ApplicationType i;
+#endif /* CFG_USE_OSAP_SHUTDOWNHOOK */
+
+	/*
+	 *  シャットダウンフック中のシャットダウンではシャットダウンフック
+	 *  は呼び出さない
+	 */
+	if ((callevel_stat & TCL_SHUTDOWN) == TCL_NULL) {
+
+		sus_all_cnt_ctx = 0U;
+		sus_os_cnt_ctx = 0U;
+
+#ifdef CFG_USE_OSAP_SHUTDOWNHOOK
+		/*
+		 *  OSアプリケーション定義のShutdownHook呼出し
+		 *
+		 *  OSアプリケーション初期化ブロックに設定されたエントリが
+		 *  NULLでなければ実行する
+		 */
+
+		for (i = 0U; i < tnum_osap; i++) {
+			shutdownhook_adr = osapinib_table[i].ShutdownHook;
+			p_runosap = &(osapcb_table[i]);
+			if ((shutdownhook_adr != NULL) && (p_runosap->osap_stat == APPLICATION_ACCESSIBLE)) {
+				ENTER_CALLEVEL(TCL_OSAP_SHUTDOWN);
+				LOG_SHUTHOOKOSAP_ENTER(i, ercd);
+				if (p_runosap->p_osapinib->osap_trusted != FALSE) {
+					run_trusted = TRUE;
+					call_trusted_hook((void *) shutdownhook_adr, ercd);
+				}
+				else {
+					run_trusted = FALSE;
+					call_nontrusted_hook((void *) shutdownhook_adr, ercd, SHUTDOWN_HOOK);
+				}
+				LOG_SHUTHOOKOSAP_LEAVE(i);
+				LEAVE_CALLEVEL(TCL_OSAP_SHUTDOWN);
+
+				release_interrupts(OSServiceId_HookMissingEnd);
+			}
+		}
+#endif /* CFG_USE_OSAP_SHUTDOWNHOOK */
+
+#ifdef CFG_USE_SYSTEM_SHUTDOWNHOOK
+		p_runosap = NULL;
+
+		/*
+		 *  ShutdownHook の呼び出し
+		 *
+		 *  C言語の規格では関数のアドレスは0にならないという前提から,
+		 *  コンパイラの最適化によりShutdownHookのアドレス判定分岐が
+		 *  削除されてしまう場合があるため, volatile指定したローカル変数に
+		 *  アドレスを代入してから判定している
+		 */
+		shutdownhook_adr = &ShutdownHook;
+
+		if (shutdownhook_adr != NULL) {
+			ENTER_CALLEVEL(TCL_SYS_SHUTDOWN);
+			run_trusted = TRUE;
+			LOG_SHUTHOOK_ENTER(ercd);
+			call_trusted_hook((void *) &ShutdownHook, ercd);
+			LOG_SHUTHOOK_LEAVE();
+			LEAVE_CALLEVEL(TCL_SYS_SHUTDOWN);
+
+			release_interrupts(OSServiceId_HookMissingEnd);
+		}
+#endif /* CFG_USE_SYSTEM_SHUTDOWNHOOK */
+	}
+}
+#endif /* CFG_USE_SHUTDOWNHOOK */
+
+#endif /* TOPPERS_internal_call_shtdwnhk */
Index: /atk2-sc3_fl850f1l/kernel/osctl_manage.c
===================================================================
--- /atk2-sc3_fl850f1l/kernel/osctl_manage.c	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/osctl_manage.c	(revision 117)
@@ -0,0 +1,413 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2004-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: osctl_manage.c 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		OS管理モジュール
+ */
+
+#include "kernel_impl.h"
+#include "check.h"
+#include "interrupt.h"
+
+/*
+ *  トレースログマクロのデフォルト定義
+ */
+#ifndef LOG_GETAAM_ENTER
+#define LOG_GETAAM_ENTER()
+#endif /* LOG_GETAAM_ENTER */
+
+#ifndef LOG_GETAAM_LEAVE
+#define LOG_GETAAM_LEAVE(mode)
+#endif /* LOG_GETAAM_LEAVE */
+
+#ifndef LOG_STAOS_ENTER
+#define LOG_STAOS_ENTER(mode)
+#endif /* LOG_STAOS_ENTER */
+
+#ifndef LOG_STAOS_LEAVE
+#define LOG_STAOS_LEAVE()
+#endif /* LOG_STAOS_LEAVE */
+
+#ifndef LOG_STAHOOK_ENTER
+#define LOG_STAHOOK_ENTER()
+#endif /* LOG_STAHOOK_ENTER */
+
+#ifndef LOG_STAHOOK_LEAVE
+#define LOG_STAHOOK_LEAVE()
+#endif /* LOG_STAHOOK_LEAVE */
+
+#ifndef LOG_STAHOOKOSAP_ENTER
+#define LOG_STAHOOKOSAP_ENTER(index)
+#endif /* LOG_STAHOOKOSAP_ENTER */
+
+#ifndef LOG_STAHOOKOSAP_LEAVE
+#define LOG_STAHOOKOSAP_LEAVE(index)
+#endif /* LOG_STAHOOKOSAP_LEAVE */
+
+#ifdef TOPPERS_StartOS
+
+/*
+ *  OS実行制御のための変数
+ */
+uint16		callevel_stat = 0U;             /* 実行中のコンテキスト */
+AppModeType	appmodeid;                      /* アプリケーションモードID */
+
+/*
+ *  カーネル動作状態フラグ
+ */
+boolean		kerflg = FALSE;
+
+/*
+ *  特権モードで動作中かを示すフラグ
+ */
+boolean		run_trusted;
+
+/*
+ *  ファイル名，行番号の参照用の変数
+ */
+const char8	*fatal_file_name = NULL;                    /* ファイル名 */
+sint32		fatal_line_num = 0;                         /* 行番号 */
+
+/*
+ *  OSの起動
+ */
+
+void
+StartOS(AppModeType Mode)
+{
+#ifdef CFG_USE_STARTUPHOOK
+	void (*volatile startuphook_adr) (void);
+#ifdef CFG_USE_OSAP_STARTUPHOOK
+	ApplicationType i;
+#endif /* CFG_USE_OSAP_STARTUPHOOK */
+#endif /* CFG_USE_STARTUPHOOK */
+
+	LOG_STAOS_ENTER(Mode);
+	if (kerflg != FALSE) {
+		/* OS起動中はエラーフックを呼ぶ */
+#ifdef CFG_USE_ERRORHOOK
+		x_nested_lock_os_int();
+#ifdef CFG_USE_PARAMETERACCESS
+		_errorhook_par1.mode = Mode;
+#endif /* CFG_USE_PARAMETERACCESS */
+		call_errorhook(E_OS_ACCESS, OSServiceId_StartOS);
+		x_nested_unlock_os_int();
+#endif /* CFG_USE_ERRORHOOK */
+	}
+	else {
+
+		/* 全割込み禁止状態に移行 */
+		x_lock_all_int();
+
+#ifdef CFG_USE_STACKMONITORING
+		/*
+		 *  スタックモニタリング機能の初期化
+		 *  スタックモニタリング機能のためのマジックナンバー領域の初期化
+		 */
+		init_stack_magic_region();
+#endif /* CFG_USE_STACKMONITORING */
+
+		/* アプリケーションモードの設定 */
+		appmodeid = Mode;
+
+		/* ターゲット依存の初期化 */
+		target_initialize();
+
+		/* 各モジュールの初期化 */
+		object_initialize();
+
+		callevel_stat = TCL_NULL;
+
+		/* カーネル動作中 */
+		kerflg = TRUE;
+
+		run_trusted = TRUE;
+
+		/*
+		 *  Modeが不正であった場合，OSシャットダウンを行う
+		 *  この時，スタートアップフックは呼び出されない
+		 */
+		if (Mode >= tnum_appmode) {
+			/*
+			 *  internal_shutdownosを呼ぶ前にOS割込み禁止状態へ
+			 *  全割込み禁止状態解除
+			 */
+			x_nested_lock_os_int();
+			x_unlock_all_int();
+			internal_shutdownos(E_OS_MODE);
+		}
+
+#ifdef CFG_USE_STARTUPHOOK
+		/* OS割込み禁止状態にし，全割込み禁止状態解除 */
+		x_nested_lock_os_int();
+		x_unlock_all_int();
+
+#ifdef CFG_USE_SYSTEM_STARTUPHOOK
+		/*
+		 *  StartupHook の呼び出し
+		 *
+		 *  C言語の規格では関数のアドレスは0にならないという前提から,
+		 *  コンパイラの最適化によりStartupHookのアドレス判定分岐が
+		 *  削除されてしまう場合があるため, volatile指定したローカル変数に
+		 *  アドレスを代入してから判定している
+		 */
+		startuphook_adr = &StartupHook;
+
+		if (startuphook_adr != NULL) {
+			ENTER_CALLEVEL(TCL_SYS_STARTUP);
+			LOG_STAHOOK_ENTER();
+			StartupHook();
+			LOG_STAHOOK_LEAVE();
+			LEAVE_CALLEVEL(TCL_SYS_STARTUP);
+
+			release_interrupts(OSServiceId_HookMissingEnd);
+		}
+#endif /* CFG_USE_SYSTEM_STARTUPHOOK */
+
+#ifdef CFG_USE_OSAP_STARTUPHOOK
+		/*
+		 *  OSアプリケーション定義のStartUpHook呼出し
+		 *
+		 *  OSアプリケーション初期化ブロックに設定されたエントリが
+		 *  NULLでなければ実行する
+		 */
+		for (i = 0U; i < tnum_osap; i++) {
+			startuphook_adr = osapinib_table[i].StartupHook;
+			p_runosap = &(osapcb_table[i]);
+			if (startuphook_adr != NULL) {
+				ENTER_CALLEVEL(TCL_OSAP_STARTUP);
+				LOG_STAHOOKOSAP_ENTER(i);
+				if (p_runosap->p_osapinib->osap_trusted != FALSE) {
+					run_trusted = TRUE;
+					startuphook_adr();
+				}
+				else {
+					run_trusted = FALSE;
+					call_nontrusted_hook((void *) startuphook_adr, 0U, STARTUP_HOOK);
+				}
+				LOG_STAHOOKOSAP_LEAVE(i);
+				LEAVE_CALLEVEL(TCL_OSAP_STARTUP);
+
+				release_interrupts(OSServiceId_HookMissingEnd);
+			}
+		}
+		/*
+		 * 以下の2行はなくても影響はないが，アイドルループでの状態を信頼・
+		 * OSAPなしの状態にする
+		 */
+		run_trusted = TRUE;
+		p_runosap = NULL;
+#endif /* CFG_USE_OSAP_STARTUPHOOK */
+
+		/* 元の割込みマスク優先度と全割込み禁止状態に */
+		x_lock_all_int();
+		x_nested_unlock_os_int();
+#endif /* CFG_USE_STARTUPHOOK */
+
+
+		ENTER_CALLEVEL(TCL_TASK);
+		LOG_STAOS_LEAVE();
+		start_dispatch();
+		ASSERT(0);
+	}
+}
+
+#endif /* TOPPERS_StartOS */
+
+/*
+ *  現在のアプリケーションモードの取得
+ */
+#ifdef TOPPERS_GetActiveApplicationMode
+
+AppModeType
+GetActiveApplicationMode(void)
+{
+	AppModeType	appmode;
+	StatusType	ercd;
+
+	LOG_GETAAM_ENTER();
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_GETACTIVEAPPMODE);
+
+	appmode = appmodeid;
+
+  exit_finish:
+	LOG_GETAAM_LEAVE(appmode);
+	return(appmode);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+	/*
+	 *  エラー発生時はINVALID_APPMODETYPEが返るが，エラーが発生したのか実行中の
+	 *  C2ISRが存在しないのか区別するため，エラーフックを呼ぶ
+	 */
+	call_errorhook(ercd, OSServiceId_GetActiveApplicationMode);
+	x_nested_unlock_os_int();
+#endif /* CFG_USE_ERRORHOOK */
+
+  exit_no_errorhook:
+	appmode = INVALID_APPMODETYPE;
+	goto exit_finish;
+}
+
+#endif /* TOPPERS_GetActiveApplicationMode */
+
+/*
+ *  OSの終了
+ */
+#ifdef TOPPERS_ShutdownOS
+
+void
+ShutdownOS(StatusType Error)
+{
+	StatusType ercd = Error;
+
+	/*
+	 *  呼出し元所属 OSアプリケーションの信頼/非信頼のチェック
+	 *  呼出し元が信頼関数，システム定義フックである場合は
+	 *  ShutdownOS() を実行する
+	 */
+	if (run_trusted == FALSE) {
+		/* 非信頼から呼ばれた場合はエラーフックを呼ぶ */
+#ifdef CFG_USE_ERRORHOOK
+		x_nested_lock_os_int();
+#ifdef CFG_USE_PARAMETERACCESS
+		_errorhook_par1.error = Error;
+#endif /* CFG_USE_PARAMETERACCESS */
+		call_errorhook(E_OS_ACCESS, OSServiceId_ShutdownOS);
+		x_nested_unlock_os_int();
+#endif /* CFG_USE_ERRORHOOK */
+	}
+	else {
+
+		/*
+		 *  不正な処理単位から呼び出した場合も，ErrorをE_OS_SHUTDOWN_FATALとして
+		 *  ShutdownOSを呼び出したものとして，シャットダウン処理を行う
+		 */
+		if (((callevel_stat & TCLMASK) | (CALLEVEL_SHUTDOWNOS)) != (CALLEVEL_SHUTDOWNOS)) {
+			ercd = E_OS_SHUTDOWN_FATAL;
+		}
+
+		/*
+		 *  OSで定義されていないエラーコードが指定された場合，ErrorをE_OS_SHUTDOWN_FATALとして
+		 *  ShutdownOSを呼び出したものとして，シャットダウン処理を行う
+		 */
+		if (ercd > ERRCODE_NUM) {
+			ercd = E_OS_SHUTDOWN_FATAL;
+		}
+
+		internal_shutdownos(ercd);
+	}
+}
+#endif /* TOPPERS_ShutdownOS */
+
+/*
+ *  保護違反を起こした処理単位の取得
+ */
+#ifdef TOPPERS_GetFaultyContext
+
+FaultyContextType
+GetFaultyContext(void)
+{
+	FaultyContextType faultycontext = FC_INVALID;
+
+#ifdef CFG_USE_PROTECTIONHOOK
+	if ((callevel_stat & CALLEVEL_GETFAULTYCONTEXT) != 0U) {
+
+		/* C1ISR以外で発生 */
+		if ((callevel_stat & TSYS_ISR1) == 0U) {
+			/* フック中に発生 */
+			if ((callevel_stat & (TCL_ERROR | TCL_PREPOST | TCL_STARTUP | TCL_SHUTDOWN)) != 0U) {
+				if ((callevel_stat & TCL_OSAP_MASK) != 0U) {
+					/* OSAP所属のフック中に発生 */
+					faultycontext = FC_OSAP_HOOK;
+				}
+				else {
+					/* システム定義フック中に発生 */
+					faultycontext = FC_SYSTEM_HOOK;
+				}
+			}
+			else if ((callevel_stat & TCL_ISR2) != 0U) {
+				if (p_runisr->calltfn != FALSE) {
+					/* C2ISRから呼出した信頼関数中に発生 */
+					faultycontext = FC_TRUSTED_FUNC;
+				}
+				else {
+					faultycontext = FC_C2ISR;
+				}
+			}
+			else if ((callevel_stat & TCL_TASK) != 0U) {
+				if (p_runtsk->calltfn != FALSE) {
+					/* タスクから呼出した信頼関数中に発生 */
+					faultycontext = FC_TRUSTED_FUNC;
+				}
+				else {
+					faultycontext = FC_TASK;
+				}
+			}
+			else {
+				/* 上記以外の場合，処理は行わない(戻り値：FC_INVALID) */
+			}
+		}
+	}
+#endif /* CFG_USE_PROTECTIONHOOK */
+
+	return(faultycontext);
+}
+#endif /* TOPPERS_GetFaultyContext */
Index: /atk2-sc3_fl850f1l/kernel/resource.c
===================================================================
--- /atk2-sc3_fl850f1l/kernel/resource.c	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/resource.c	(revision 117)
@@ -0,0 +1,244 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2004-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: resource.c 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		リソース管理モジュール
+ */
+
+#include "kernel_impl.h"
+#include "check.h"
+#include "task.h"
+#include "interrupt.h"
+#include "resource.h"
+
+/*
+ *  トレースログマクロのデフォルト定義
+ */
+#ifndef LOG_GETRES_ENTER
+#define LOG_GETRES_ENTER(resid)
+#endif /* LOG_GETRES_ENTER */
+
+#ifndef LOG_GETRES_LEAVE
+#define LOG_GETRES_LEAVE(ercd)
+#endif /* LOG_GETRES_LEAVE */
+
+#ifndef LOG_RELRES_ENTER
+#define LOG_RELRES_ENTER(resid)
+#endif /* LOG_RELRES_ENTER */
+
+#ifndef LOG_RELRES_LEAVE
+#define LOG_RELRES_LEAVE(ercd)
+#endif /* LOG_RELRES_LEAVE */
+
+/*
+ *  リソース管理機能の初期化
+ */
+#ifdef TOPPERS_resource_initialize
+
+void
+resource_initialize(void)
+{
+	ResourceType	i;
+	RESCB			*p_rescb;
+
+	for (i = 0U; i < tnum_stdresource; i++) {
+		p_rescb = &(rescb_table[i]);
+		p_rescb->p_resinib = &(resinib_table[i]);
+		p_rescb->lockflg = FALSE;
+	}
+}
+
+#endif /* TOPPERS_resource_initialize */
+
+/*
+ *  リソースの獲得
+ */
+#ifdef TOPPERS_GetResource
+
+StatusType
+GetResource(ResourceType ResID)
+{
+	StatusType		ercd = E_OK;
+	PriorityType	ceilpri, curpri;
+	RESCB			*p_rescb;
+
+	LOG_GETRES_ENTER(ResID);
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_GETRESOURCE);
+	CHECK_ID(ResID < tnum_stdresource);
+	p_rescb = get_rescb(ResID);
+	CHECK_RIGHT(p_rescb->p_resinib->acsbtmp);
+
+	ceilpri = p_rescb->p_resinib->ceilpri;
+	if (callevel_stat == TCL_TASK) {
+		CHECK_ACCESS(p_runtsk->p_tinib->inipri >= ceilpri);
+
+		x_nested_lock_os_int();
+		D_CHECK_ACCESS(p_rescb->lockflg == FALSE);
+		curpri = p_runtsk->curpri;
+		p_rescb->prevpri = curpri;
+		p_rescb->lockflg = TRUE;
+		p_rescb->p_prevrescb = p_runtsk->p_lastrescb;
+		p_runtsk->p_lastrescb = p_rescb;
+		if (ceilpri < curpri) {
+			p_runtsk->curpri = ceilpri;
+			if (ceilpri <= TPRI_MINISR) {
+				x_set_ipm(ceilpri);
+			}
+		}
+	}
+	else {
+		CHECK_ACCESS(GET_INTPRI(p_runisr) >= ceilpri);
+
+		x_nested_lock_os_int();
+		D_CHECK_ACCESS(p_rescb->lockflg == FALSE);
+		curpri = x_get_ipm();
+		p_rescb->prevpri = curpri;
+		p_rescb->lockflg = TRUE;
+		p_rescb->p_prevrescb = p_runisr->p_lastrescb;
+		p_runisr->p_lastrescb = p_rescb;
+		if (ceilpri < curpri) {
+			x_set_ipm(ceilpri);
+		}
+	}
+
+  d_exit_no_errorhook:
+	x_nested_unlock_os_int();
+  exit_no_errorhook:
+	LOG_GETRES_LEAVE(ercd);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+  d_exit_errorhook:
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.resid = ResID;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_GetResource);
+	goto d_exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_GetResource */
+
+/*
+ *  リソースの返却
+ */
+#ifdef TOPPERS_ReleaseResource
+
+StatusType
+ReleaseResource(ResourceType ResID)
+{
+	StatusType	ercd = E_OK;
+	RESCB		*p_rescb;
+
+	LOG_RELRES_ENTER(ResID);
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_RELEASERESOURCE);
+	CHECK_ID(ResID < tnum_stdresource);
+	p_rescb = get_rescb(ResID);
+	CHECK_RIGHT(p_rescb->p_resinib->acsbtmp);
+
+	if (callevel_stat == TCL_TASK) {
+		CHECK_NOFUNC(p_runtsk->p_lastrescb == p_rescb);
+
+		x_nested_lock_os_int();
+		if (p_rescb->prevpri <= TPRI_MINISR) {
+			x_set_ipm(p_rescb->prevpri);
+		}
+		else {
+			if (p_runtsk->curpri <= TPRI_MINISR) {
+				x_set_ipm((PriorityType) TIPM_ENAALL);
+			}
+		}
+		p_runtsk->curpri = p_rescb->prevpri;
+		p_runtsk->p_lastrescb = p_rescb->p_prevrescb;
+		p_rescb->lockflg = FALSE;
+		if (p_runtsk->curpri > nextpri) {
+			preempt();
+			dispatch();
+		}
+	}
+	else {
+		CHECK_NOFUNC(p_runisr->p_lastrescb == p_rescb);
+
+		x_nested_lock_os_int();
+		x_set_ipm(p_rescb->prevpri);
+		p_runisr->p_lastrescb = p_rescb->p_prevrescb;
+		p_rescb->lockflg = FALSE;
+	}
+
+  d_exit_no_errorhook:
+	x_nested_unlock_os_int();
+  exit_no_errorhook:
+	LOG_RELRES_LEAVE(ercd);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.resid = ResID;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_ReleaseResource);
+	goto d_exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_ReleaseResource */
Index: /atk2-sc3_fl850f1l/kernel/resource.h
===================================================================
--- /atk2-sc3_fl850f1l/kernel/resource.h	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/resource.h	(revision 117)
@@ -0,0 +1,110 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2004-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: resource.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		リソース管理機能
+ */
+
+#ifndef TOPPERS_RESOURCE_H
+#define TOPPERS_RESOURCE_H
+
+/*
+ *  リソース管理初期化ブロック（Os_Lcfg.c）
+ */
+typedef struct resource_initialization_block {
+	PriorityType ceilpri;
+
+	uint32 acsbtmp;                         /* アクセス許可OSアプリケーション ビットマップ */
+} RESINIB;
+
+/*
+ *  リソース管理ブロック（Os_Lcfg.c）
+ */
+typedef struct resource_control_block {
+	const RESINIB					*p_resinib;     /* 初期化ブロックへのポインタ */
+	PriorityType					prevpri;        /* リソース獲得前の優先度 */
+	struct resource_control_block	*p_prevrescb;   /* 前に獲得したリソース管理ブロックへのポインタ */
+	boolean							lockflg;        /* リソースが取得されていればTRUE */
+} RESCB;
+
+/*
+ *  リソース数を保持する変数の宣言（Os_Lcfg.c）
+ */
+extern const ResourceType	tnum_stdresource;           /* 内部リソースを除くリソース数 */
+
+/*
+ *  リソース初期化ブロックのエリア（Os_Lcfg.c）
+ */
+extern const RESINIB		resinib_table[];
+
+/*
+ *  リソース管理ブロックのエリア（Os_Lcfg.c）
+ */
+extern RESCB				rescb_table[];
+
+/*
+ *  リソース管理機能の初期化
+ */
+extern void resource_initialize(void);
+
+/*
+ *  リソースID から リソース管理ブロックを取り出すためのマクロ
+ */
+#define get_rescb(resid)	(&(rescb_table[(resid)]))
+
+#endif /* TOPPERS_RESOURCE_H */
Index: /atk2-sc3_fl850f1l/kernel/scheduletable.c
===================================================================
--- /atk2-sc3_fl850f1l/kernel/scheduletable.c	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/scheduletable.c	(revision 117)
@@ -0,0 +1,783 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2004-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: scheduletable.c 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		スケジュールテーブル管理モジュール
+ */
+
+#include "kernel_impl.h"
+#include "check.h"
+#include "scheduletable.h"
+
+/*
+ *  トレースログマクロのデフォルト定義
+ */
+#ifndef LOG_STASCHTBLREL_ENTER
+#define LOG_STASCHTBLREL_ENTER(schtblid, offset)
+#endif /* LOG_STASCHTBLREL_ENTER */
+
+#ifndef LOG_STASCHTBLREL_LEAVE
+#define LOG_STASCHTBLREL_LEAVE(ercd)
+#endif /* LOG_STASCHTBLREL_LEAVE */
+
+#ifndef LOG_STASCHTBLABS_ENTER
+#define LOG_STASCHTBLABS_ENTER(schtblid, start)
+#endif /* LOG_STASCHTBLABS_ENTER */
+
+#ifndef LOG_STASCHTBLABS_LEAVE
+#define LOG_STASCHTBLABS_LEAVE(ercd)
+#endif /* LOG_STASCHTBLABS_LEAVE */
+
+#ifndef LOG_STPSCHTBL_ENTER
+#define LOG_STPSCHTBL_ENTER(schtblid)
+#endif /* LOG_STPSCHTBL_ENTER */
+
+#ifndef LOG_STPSCHTBL_LEAVE
+#define LOG_STPSCHTBL_LEAVE(ercd)
+#endif /* LOG_STPSCHTBL_LEAVE */
+
+#ifndef LOG_NXTSCHTBL_ENTER
+#define LOG_NXTSCHTBL_ENTER(from, to)
+#endif /* LOG_NXTSCHTBL_ENTER */
+
+#ifndef LOG_NXTSCHTBL_LEAVE
+#define LOG_NXTSCHTBL_LEAVE(ercd)
+#endif /* LOG_NXTSCHTBL_LEAVE */
+
+#ifndef LOG_GETSCHTBLST_ENTER
+#define LOG_GETSCHTBLST_ENTER(schtblid)
+#endif /* LOG_GETSCHTBLST_ENTER */
+
+#ifndef LOG_GETSCHTBLST_LEAVE
+#define LOG_GETSCHTBLST_LEAVE(ercd, p_status)
+#endif /* LOG_GETSCHTBLST_LEAVE */
+
+#ifndef LOG_SCHTBL_ENTER
+#define LOG_SCHTBL_ENTER(p_schtblcb)
+#endif /* LOG_SCHTBL_ENTER */
+
+#ifndef LOG_SCHTBL_LEAVE
+#define LOG_SCHTBL_LEAVE(p_schtblcb)
+#endif /* LOG_SCHTBL_LEAVE */
+
+/*
+ *  スケジュールテーブルオブジェクトの初期化
+ */
+#ifdef TOPPERS_schtbl_initialize
+
+void
+schtbl_initialize(void)
+{
+	ScheduleTableType	i;
+	SCHTBLCB			*p_schtblcb;
+	CNTCB				*p_cntcb;
+	TickType			staval;
+
+	for (i = 0U; i < tnum_scheduletable; i++) {
+		p_schtblcb = &(schtblcb_table[i]);
+		p_schtblcb->p_schtblinib = &(schtblinib_table[i]);
+
+		/*
+		 *  STOPPED状態にする時，p_nextschtblcb，p_prevschtblcbを初期化する
+		 *  RUNNING，NEXT状態にする時，expptindexを初期化する
+		 */
+		p_schtblcb->p_nextschtblcb = NULL;
+		p_schtblcb->p_prevschtblcb = NULL;
+		(p_schtblcb->cntexpinfo).expirefunc = &schtbl_expire;
+
+		if ((p_schtblcb->p_schtblinib->autosta & ((AppModeType) 1 << appmodeid)) != APPMODE_NONE) {
+			if (is_implschtbl(i)) {
+				p_schtblcb->status = SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS;
+			}
+			else {
+				p_schtblcb->status = SCHEDULETABLE_RUNNING;
+			}
+			p_schtblcb->expptindex = EXPPTINDEX_INITIAL;
+
+			p_cntcb = p_schtblcb->p_schtblinib->p_cntcb;
+			staval = p_schtblcb->p_schtblinib->staval;
+			if (p_schtblcb->p_schtblinib->actatr == ABSOLUTE) {
+				/*
+				 *  絶対時間の起動
+				 *  満了時間が0の場合，次の周期の0のタイミングとなる
+				 *  （get_abstickに考慮済み）
+				 */
+				(p_schtblcb->cntexpinfo).expiretick = get_abstick(p_cntcb, staval);
+			}
+			else {
+				/* 相対時間の起動 */
+				(p_schtblcb->cntexpinfo).expiretick = get_reltick(p_cntcb, staval);
+			}
+
+			insert_cnt_expr_que(&(p_schtblcb->cntexpinfo), p_cntcb);
+		}
+		else {
+			p_schtblcb->status = SCHEDULETABLE_STOPPED;
+
+			queue_initialize(&(p_schtblcb->cntexpinfo.cntexpque));
+		}
+	}
+}
+
+#endif /* TOPPERS_schtbl_initialize */
+
+/*
+ *  指定したスケジュールテーブルの開始(相対時間)
+ */
+#ifdef TOPPERS_StartScheduleTableRel
+
+StatusType
+StartScheduleTableRel(ScheduleTableType ScheduleTableID, TickType Offset)
+{
+	StatusType	ercd = E_OK;
+	SCHTBLCB	*p_schtblcb;
+	CNTCB		*p_cntcb;
+	OSAPCB		*p_osapcb;
+
+	LOG_STASCHTBLREL_ENTER(ScheduleTableID, Offset);
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_STARTSCHEDULETABLEREL);
+	CHECK_ID(ScheduleTableID < tnum_scheduletable);
+	CHECK_ID(ScheduleTableID >= tnum_implscheduletable);
+
+	p_schtblcb = get_schtblcb(ScheduleTableID);
+	CHECK_RIGHT(p_schtblcb->p_schtblinib->acsbtmp);
+
+	p_cntcb = p_schtblcb->p_schtblinib->p_cntcb;
+	CHECK_VALUE((Offset != 0U) &&
+				((p_cntcb->p_cntinib->maxval - p_schtblcb->p_schtblinib->p_exppt->offset) >= Offset));
+
+	p_osapcb = p_schtblcb->p_schtblinib->p_osapcb;
+	x_nested_lock_os_int();
+
+	/* 起動するスケジュールテーブル所属のOSAPの状態をチェック */
+	D_CHECK_ACCESS((p_osapcb->osap_stat == APPLICATION_ACCESSIBLE) ||
+				   ((p_osapcb->osap_stat == APPLICATION_RESTARTING) &&
+					(p_osapcb == p_runosap)));
+	S_D_CHECK_STATE(p_schtblcb->status == SCHEDULETABLE_STOPPED);
+
+	p_schtblcb->status = SCHEDULETABLE_RUNNING;
+	p_schtblcb->expptindex = EXPPTINDEX_INITIAL;
+	p_schtblcb->cntexpinfo.expiretick = get_reltick(p_cntcb, Offset);
+
+	insert_cnt_expr_que(&(p_schtblcb->cntexpinfo), p_cntcb);
+
+  d_exit_no_errorhook:
+	x_nested_unlock_os_int();
+  exit_no_errorhook:
+	LOG_STASCHTBLREL_LEAVE(ercd);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+  d_exit_errorhook:
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.schtblid = ScheduleTableID;
+	_errorhook_par2.offset = Offset;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_StartScheduleTableRel);
+	goto d_exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_StartScheduleTableRel */
+
+/*
+ *  指定したスケジュールテーブルの開始(絶対時間)
+ */
+#ifdef TOPPERS_StartScheduleTableAbs
+
+StatusType
+StartScheduleTableAbs(ScheduleTableType ScheduleTableID, TickType Start)
+{
+	StatusType	ercd = E_OK;
+	SCHTBLCB	*p_schtblcb;
+	CNTCB		*p_cntcb;
+	OSAPCB		*p_osapcb;
+
+	LOG_STASCHTBLABS_ENTER(ScheduleTableID, Start);
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_STARTSCHEDULETABLEABS);
+	CHECK_ID(ScheduleTableID < tnum_scheduletable);
+
+	p_schtblcb = get_schtblcb(ScheduleTableID);
+	CHECK_RIGHT(p_schtblcb->p_schtblinib->acsbtmp);
+
+	p_cntcb = p_schtblcb->p_schtblinib->p_cntcb;
+	CHECK_VALUE(p_cntcb->p_cntinib->maxval >= Start);
+
+	p_osapcb = p_schtblcb->p_schtblinib->p_osapcb;
+	x_nested_lock_os_int();
+
+	/* 起動するスケジュールテーブル所属のOSAPの状態をチェック */
+	D_CHECK_ACCESS((p_osapcb->osap_stat == APPLICATION_ACCESSIBLE) ||
+				   ((p_osapcb->osap_stat == APPLICATION_RESTARTING) &&
+					(p_osapcb == p_runosap)));
+	S_D_CHECK_STATE(p_schtblcb->status == SCHEDULETABLE_STOPPED);
+
+	/* 暗黙同期の場合，同期動作状態で動作する */
+	if (is_implschtbl(ScheduleTableID)) {
+		p_schtblcb->status = SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS;
+	}
+	else {
+		p_schtblcb->status = SCHEDULETABLE_RUNNING;
+	}
+	p_schtblcb->expptindex = EXPPTINDEX_INITIAL;
+	p_schtblcb->cntexpinfo.expiretick = get_abstick(p_cntcb, Start);
+
+	insert_cnt_expr_que(&(p_schtblcb->cntexpinfo), p_cntcb);
+
+  d_exit_no_errorhook:
+	x_nested_unlock_os_int();
+  exit_no_errorhook:
+	LOG_STASCHTBLABS_LEAVE(ercd);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+  d_exit_errorhook:
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.schtblid = ScheduleTableID;
+	_errorhook_par2.start = Start;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_StartScheduleTableAbs);
+	goto d_exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_StartScheduleTableAbs */
+
+/*
+ *  指定したスケジュールテーブルの停止
+ */
+#ifdef TOPPERS_StopScheduleTable
+
+StatusType
+StopScheduleTable(ScheduleTableType ScheduleTableID)
+{
+	StatusType	ercd = E_OK;
+	SCHTBLCB	*p_schtblcb, *p_nextcb;
+	OSAPCB		*p_osapcb;
+
+	LOG_STPSCHTBL_ENTER(ScheduleTableID);
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_STOPSCHEDULETABLE);
+	CHECK_ID(ScheduleTableID < tnum_scheduletable);
+
+	p_schtblcb = get_schtblcb(ScheduleTableID);
+
+	CHECK_RIGHT(p_schtblcb->p_schtblinib->acsbtmp);
+
+	p_osapcb = p_schtblcb->p_schtblinib->p_osapcb;
+	x_nested_lock_os_int();
+
+	/* 起動するスケジュールテーブル所属のOSAPの状態をチェック */
+	D_CHECK_ACCESS((p_osapcb->osap_stat == APPLICATION_ACCESSIBLE) ||
+				   ((p_osapcb->osap_stat == APPLICATION_RESTARTING) &&
+					(p_osapcb == p_runosap)));
+	S_D_CHECK_NOFUNC(p_schtblcb->status != SCHEDULETABLE_STOPPED);
+
+	/*
+	 *  指定されたスケジュールテーブルがSCHEDULETABLE_NEXTの場合,
+	 *  自分をNextにしたスケジュールテーブルから，自分を外す
+	 */
+	if (p_schtblcb->status == SCHEDULETABLE_NEXT) {
+		p_schtblcb->p_prevschtblcb->p_nextschtblcb = NULL;
+		p_schtblcb->p_prevschtblcb = NULL;
+	}
+	else {
+		/*
+		 *  Nextスケジュールテーブルが存在した場合,
+		 *  Nextスケジュールテーブルの予約をキャンセルする
+		 */
+		p_nextcb = p_schtblcb->p_nextschtblcb;
+		if (p_nextcb != NULL) {
+			p_nextcb->status = SCHEDULETABLE_STOPPED;
+			p_nextcb->p_prevschtblcb = NULL;
+			p_schtblcb->p_nextschtblcb = NULL;
+		}
+
+		/* カウンタ満了キューから既に登録した満了処理を削除 */
+		delete_cnt_expr_que(&(p_schtblcb->cntexpinfo),
+							p_schtblcb->p_schtblinib->p_cntcb);
+	}
+
+	p_schtblcb->status = SCHEDULETABLE_STOPPED;
+
+  d_exit_no_errorhook:
+	x_nested_unlock_os_int();
+  exit_no_errorhook:
+	LOG_STPSCHTBL_LEAVE(ercd);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+  d_exit_errorhook:
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.schtblid = ScheduleTableID;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_StopScheduleTable);
+	goto d_exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+#endif /* TOPPERS_StopScheduleTable */
+
+/*
+ *  スケジュールテーブルの切替え
+ */
+#ifdef TOPPERS_NextScheduleTable
+
+StatusType
+NextScheduleTable(ScheduleTableType ScheduleTableID_From,
+				  ScheduleTableType ScheduleTableID_To)
+{
+	StatusType	ercd = E_OK;
+	SCHTBLCB	*p_curcb, *p_nextcb;
+	OSAPCB		*p_osapcb;
+
+	LOG_NXTSCHTBL_ENTER(ScheduleTableID_From, ScheduleTableID_To);
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_NEXTSCHEDULETABLE);
+	CHECK_ID(ScheduleTableID_From < tnum_scheduletable);
+	CHECK_ID(ScheduleTableID_To < tnum_scheduletable);
+	CHECK_ID((ScheduleTableID_From < tnum_implscheduletable) ==
+			 (ScheduleTableID_To < tnum_implscheduletable));
+
+	p_curcb = get_schtblcb(ScheduleTableID_From);
+	p_nextcb = get_schtblcb(ScheduleTableID_To);
+
+	CHECK_RIGHT(p_curcb->p_schtblinib->acsbtmp);
+	CHECK_RIGHT(p_nextcb->p_schtblinib->acsbtmp);
+
+	CHECK_ID(p_curcb->p_schtblinib->p_cntcb == p_nextcb->p_schtblinib->p_cntcb);
+
+	x_nested_lock_os_int();
+	p_osapcb = p_curcb->p_schtblinib->p_osapcb;
+	/* 起動するスケジュールテーブル所属のOSAPの状態をチェック */
+	D_CHECK_ACCESS((p_osapcb->osap_stat == APPLICATION_ACCESSIBLE) ||
+				   ((p_osapcb->osap_stat == APPLICATION_RESTARTING) &&
+					(p_osapcb == p_runosap)));
+
+	p_osapcb = p_nextcb->p_schtblinib->p_osapcb;
+	/* 起動するスケジュールテーブル所属のOSAPの状態をチェック */
+	D_CHECK_ACCESS((p_osapcb->osap_stat == APPLICATION_ACCESSIBLE) ||
+				   ((p_osapcb->osap_stat == APPLICATION_RESTARTING) &&
+					(p_osapcb == p_runosap)));
+
+	/* ScheduleTableID_Fromの状態チェック */
+	S_D_CHECK_NOFUNC((p_curcb->status & (SCHEDULETABLE_STOPPED | SCHEDULETABLE_NEXT)) == 0U);
+
+	/* ScheduleTableID_Toの状態チェック */
+	S_D_CHECK_STATE(p_nextcb->status == SCHEDULETABLE_STOPPED);
+
+	/*
+	 *  Currentに対して既にNextが存在した場合,
+	 *  これまでのNextに対してキャンセルする
+	 */
+	if (p_curcb->p_nextschtblcb != NULL) {
+		p_curcb->p_nextschtblcb->status = SCHEDULETABLE_STOPPED;
+		p_curcb->p_nextschtblcb->p_prevschtblcb = NULL;
+	}
+
+	p_curcb->p_nextschtblcb = p_nextcb;
+	p_nextcb->status = SCHEDULETABLE_NEXT;
+	p_nextcb->p_prevschtblcb = p_curcb;
+
+  d_exit_no_errorhook:
+	x_nested_unlock_os_int();
+  exit_no_errorhook:
+	LOG_NXTSCHTBL_LEAVE(ercd);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+  d_exit_errorhook:
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.schtblid_from = ScheduleTableID_From;
+	_errorhook_par2.schtblid_to = ScheduleTableID_To;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_NextScheduleTable);
+	goto d_exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_NextScheduleTable */
+
+/*
+ *  スケジュールテーブル状態の取得
+ */
+#ifdef TOPPERS_GetScheduleTableStatus
+
+StatusType
+GetScheduleTableStatus(ScheduleTableType ScheduleTableID,
+					   ScheduleTableStatusRefType ScheduleStatus)
+{
+	StatusType	ercd = E_OK;
+	SCHTBLCB	*p_schtblcb;
+	OSAPCB		*p_osapcb;
+
+	LOG_GETSCHTBLST_ENTER(ScheduleTableID);
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_GETSCHEDULETABLESTATUS);
+	CHECK_ID(ScheduleTableID < tnum_scheduletable);
+	CHECK_PARAM_POINTER(ScheduleStatus);
+	CHECK_MEM_WRITE(ScheduleStatus, ScheduleTableStatusType);
+
+	p_schtblcb = get_schtblcb(ScheduleTableID);
+	CHECK_RIGHT(p_schtblcb->p_schtblinib->acsbtmp);
+
+	/* スケジュールテーブル所属のOSAPの状態をチェック */
+	p_osapcb = p_schtblcb->p_schtblinib->p_osapcb;
+	CHECK_ACCESS((p_osapcb->osap_stat == APPLICATION_ACCESSIBLE) ||
+				 ((p_osapcb->osap_stat == APPLICATION_RESTARTING) &&
+				  (p_osapcb == p_runosap)));
+
+	*ScheduleStatus = p_schtblcb->status;
+
+  exit_no_errorhook:
+	LOG_GETSCHTBLST_LEAVE(ercd, ScheduleStatus);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.schtblid = ScheduleTableID;
+	_errorhook_par2.p_schtblstate = ScheduleStatus;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_GetScheduleTableStatus);
+	x_nested_unlock_os_int();
+	goto exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_GetScheduleTableStatus */
+
+/*
+ *  スケジュール満了処理関数
+ */
+#ifdef TOPPERS_schtbl_expire
+
+void
+schtbl_expire(CNTEXPINFO *p_cntexpinfo, const CNTCB *p_cntcb)
+{
+	SCHTBLEXPINFO schtblexpinfo;
+
+	schtblexpinfo.p_schtblcb = (SCHTBLCB *) p_cntexpinfo;
+
+	schtbl_expiry_process(&schtblexpinfo, p_cntcb);
+
+	if (schtblexpinfo.p_schtblcb != NULL) {
+		insert_cnt_expr_que(&(schtblexpinfo.p_schtblcb->cntexpinfo), (CNTCB *) p_cntcb);
+	}
+}
+
+#endif /* TOPPERS_schtbl_expire */
+
+/*
+ *  満了処理関数から各タイミング処理の実行
+ */
+#ifdef TOPPERS_schtbl_expiry_process
+
+void
+schtbl_expiry_process(SCHTBLEXPINFO *p_schtblexpinfo, const CNTCB *p_cntcb)
+{
+	boolean		loopcont = FALSE;
+	SCHTBLCB	*p_schtblcb;
+
+	/*
+	 *  設定した満了点は，すぐ満了する可能性があるので，
+	 *  繰り返し情報によってループ処理
+	 */
+	do {
+		p_schtblcb = p_schtblexpinfo->p_schtblcb;
+
+		if (p_schtblcb->expptindex < p_schtblcb->p_schtblinib->tnum_exppt) {
+			/* 各満了点時 */
+			loopcont = schtbl_exppoint_process(p_schtblcb, p_cntcb);
+		}
+		else if (p_schtblcb->expptindex == p_schtblcb->p_schtblinib->tnum_exppt) {
+			/* 周期の最後時 */
+			loopcont = schtbl_tail(p_schtblcb, p_schtblexpinfo, p_cntcb);
+		}
+		else {
+			/*
+			 *  周期の開始時
+			 *  p_schtblcb->expptindex == EXPPTINDEX_INITIALしかあり得ない
+			 */
+			loopcont = schtbl_head(p_schtblcb, p_cntcb);
+		}
+	} while (loopcont != FALSE);
+}
+
+#endif /* TOPPERS_schtbl_expiry_process */
+
+/*
+ *  スケジュールテーブルの開始処理
+ */
+#ifdef TOPPERS_schtbl_head
+
+boolean
+schtbl_head(SCHTBLCB *p_schtblcb, const CNTCB *p_cntcb)
+{
+	boolean				loopcont;
+	const SCHTBLEXPPTCB	*p_exppoint;
+
+	p_exppoint = &(p_schtblcb->p_schtblinib->p_exppt[EXPPTINDEX_TOP]);
+
+	if (p_exppoint->offset == 0U) {
+		/* 初期オフセット0の場合，今回満了処理内で1個目の満了点処理を行う */
+		loopcont = TRUE;
+	}
+	else {
+		loopcont = FALSE;
+		/* 次に起動すべき時間の選定 */
+		p_schtblcb->cntexpinfo.expiretick = add_tick(p_schtblcb->cntexpinfo.expiretick,
+													 p_exppoint->offset, p_cntcb->p_cntinib->maxval2);
+	}
+
+	p_schtblcb->expptindex = EXPPTINDEX_TOP;
+
+	return(loopcont);
+}
+
+#endif /* TOPPERS_schtbl_head */
+
+/*
+ *  スケジュールテーブルの各満了点処理
+ */
+#ifdef TOPPERS_schtbl_exppoint_process
+
+boolean
+schtbl_exppoint_process(SCHTBLCB *p_schtblcb, const CNTCB *p_cntcb)
+{
+	boolean				loopcont = FALSE;
+	const SCHTBLEXPPTCB	*p_exppoint;
+	TickType			currtime;
+	OSAPCB				*p_runosap_saved;
+
+	p_exppoint = &(p_schtblcb->p_schtblinib->p_exppt[p_schtblcb->expptindex]);
+
+	/* 満了処理の実行 */
+	LOG_SCHTBL_ENTER(p_schtblcb);
+	p_runosap_saved = p_runosap;
+	p_runosap = p_schtblcb->p_schtblinib->p_osapcb;
+
+	(p_exppoint->expptfnt)();
+
+	p_runosap = p_runosap_saved;
+
+	LOG_SCHTBL_LEAVE(p_schtblcb);
+	/* 現在時間の退避 */
+	currtime = p_exppoint->offset;
+	/* 次の満了点へ */
+	p_schtblcb->expptindex++;
+	p_exppoint++;
+
+	if (p_schtblcb->expptindex == p_schtblcb->p_schtblinib->tnum_exppt) {
+		/* 現在が周期の最後の満了点の場合 */
+		if (p_schtblcb->p_schtblinib->length == currtime) {
+			/*
+			 *  単発スケジュールテーブル最終遅延値が0の場合，Nextが存在するかもしれないため，
+			 *  スケジュールテーブルの最後タイミング処理をする
+			 */
+			loopcont = TRUE;
+		}
+		else {
+			/* 最終遅延処理のため，満了時間の設定 */
+			p_schtblcb->cntexpinfo.expiretick = add_tick(p_schtblcb->cntexpinfo.expiretick,
+														 (p_schtblcb->p_schtblinib->length - currtime), p_cntcb->p_cntinib->maxval2);
+		}
+	}
+	else {
+		/* 次の満了点の満了時間の設定 */
+		p_schtblcb->cntexpinfo.expiretick = add_tick(p_schtblcb->cntexpinfo.expiretick,
+													 (p_exppoint->offset - currtime), p_cntcb->p_cntinib->maxval2);
+	}
+
+	return(loopcont);
+}
+
+#endif /* TOPPERS_schtbl_exppoint_process */
+
+/*
+ *  スケジュールテーブルの終端処理
+ */
+#ifdef TOPPERS_schtbl_tail
+
+boolean
+schtbl_tail(SCHTBLCB *p_schtblcb, SCHTBLEXPINFO *p_schtblexpinfo, const CNTCB *p_cntcb)
+{
+	boolean				loopcont = FALSE;
+	SCHTBLCB			*p_nextcb;
+	const SCHTBLEXPPTCB	*p_exppoint;
+
+	/* 周期の最後にてNextが存在するかチェック */
+	if (p_schtblcb->p_nextschtblcb != NULL) {
+		p_nextcb = p_schtblcb->p_nextschtblcb;
+
+		/*
+		 *  スケジュールテーブルの切り替え
+		 *
+		 *  暗黙同期同士の切替を考慮し，状態の引継ぎが必要
+		 *  NextScheduleTableで同期方法チェックしているので，
+		 *  同期方法の不整合がない
+		 */
+		p_nextcb->status = p_schtblcb->status;
+		p_nextcb->expptindex = EXPPTINDEX_INITIAL;
+
+		/* Nextの満了点設定基準は，Prevの満了時刻となる */
+		p_nextcb->cntexpinfo.expiretick = p_schtblcb->cntexpinfo.expiretick;
+		p_nextcb->p_prevschtblcb = NULL;
+
+		/* 今まで実行状態のスケジュールテーブルに対して終了処理 */
+		p_schtblcb->status = SCHEDULETABLE_STOPPED;
+		p_schtblcb->p_nextschtblcb = NULL;
+
+		/*
+		 *  上流側よりNextの初期満了点をカウンタ満了キューに追加する時，
+		 *  使用される
+		 */
+		p_schtblexpinfo->p_schtblcb = p_nextcb;
+
+		loopcont = TRUE;
+	}
+	else {
+		/* 周期制御の有無チェック */
+		if (p_schtblcb->p_schtblinib->repeat != FALSE) {
+
+			p_schtblcb->expptindex = EXPPTINDEX_TOP;
+			p_exppoint = &(p_schtblcb->p_schtblinib->p_exppt[EXPPTINDEX_TOP]);
+
+			if (p_exppoint->offset == 0U) {
+				/* 初期オフセット0の場合，今回満了処理内で1個目の満了点処理を行う */
+				loopcont = TRUE;
+			}
+			else {
+				/* 最終遅延処理のため，満了時間の設定 */
+				p_schtblcb->cntexpinfo.expiretick = add_tick(p_schtblcb->cntexpinfo.expiretick,
+															 p_exppoint->offset, p_cntcb->p_cntinib->maxval2);
+			}
+		}
+		else {
+			/* 周期起動しないので，終了処理 */
+			p_schtblcb->status = SCHEDULETABLE_STOPPED;
+			p_schtblexpinfo->p_schtblcb = NULL;
+			p_schtblcb->p_prevschtblcb = NULL;
+			p_schtblcb->p_nextschtblcb = NULL;
+		}
+	}
+
+	return(loopcont);
+}
+
+#endif /* TOPPERS_schtbl_tail */
+
+/*
+ *  OSAP所属するスケジュールテーブルの強制終了
+ */
+#ifdef TOPPERS_force_term_osap_schtbl
+
+void
+force_term_osap_schtbl(OSAPCB *p_osapcb)
+{
+	ScheduleTableType	i;
+	SCHTBLCB			*p_schtblcb;
+	SCHTBLCB			*p_nextcb;
+
+	for (i = 0U; i < tnum_scheduletable; i++) {
+		if (schtblinib_table[i].p_osapcb == p_osapcb) {
+			p_schtblcb = &schtblcb_table[i];
+			/*
+			 *  指定されたスケジュールテーブルがSCHEDULETABLE_NEXTの場合,
+			 *  自分をNextにしたスケジュールテーブルから，自分を外す
+			 */
+			if (p_schtblcb->status == SCHEDULETABLE_NEXT) {
+				p_schtblcb->p_prevschtblcb->p_nextschtblcb = NULL;
+				p_schtblcb->p_prevschtblcb = NULL;
+				p_schtblcb->expptindex = EXPPTINDEX_INITIAL;
+				p_schtblcb->status = SCHEDULETABLE_STOPPED;
+			}
+			else if ((p_schtblcb->status == SCHEDULETABLE_RUNNING) ||
+					 (p_schtblcb->status == SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS)) {
+				/*
+				 *  Nextスケジュールテーブルが存在する場合,
+				 *  Nextスケジュールテーブルの予約をキャンセルする
+				 */
+				p_nextcb = p_schtblcb->p_nextschtblcb;
+				if (p_nextcb != NULL) {
+					p_nextcb->status = SCHEDULETABLE_STOPPED;
+					p_nextcb->p_prevschtblcb = NULL;
+					p_schtblcb->p_nextschtblcb = NULL;
+				}
+
+				/* カウンタ満了キューから既に登録した満了処理を削除 */
+				delete_cnt_expr_que(&(p_schtblcb->cntexpinfo),
+									p_schtblcb->p_schtblinib->p_cntcb);
+				p_schtblcb->status = SCHEDULETABLE_STOPPED;
+			}
+			else {
+				/* 実施すべきことがない */
+			}
+		}
+	}
+}
+
+#endif /* TOPPERS_force_term_osap_schtbl */
Index: /atk2-sc3_fl850f1l/kernel/scheduletable.h
===================================================================
--- /atk2-sc3_fl850f1l/kernel/scheduletable.h	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/scheduletable.h	(revision 117)
@@ -0,0 +1,176 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2004-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: scheduletable.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		スケジュールテーブル機能
+ */
+
+#ifndef TOPPERS_SCHEDULETABLE_H
+#define TOPPERS_SCHEDULETABLE_H
+
+#include "counter.h"
+
+/*
+ *  満了点テーブル制御用特殊な満了点インデックス
+ */
+#define EXPPTINDEX_TOP			((uint8) 0x00)
+#define EXPPTINDEX_INITIAL		((uint8) 0xff)
+
+/*
+ *  スケジュールテーブルIDからスケジュールテーブル管理ブロックを取り出すためのマクロ
+ */
+#define get_schtblcb(schtblid)	(&(schtblcb_table[(schtblid)]))
+
+/*
+ *  暗黙同期スケジュールテーブルに関する定義
+ */
+#define is_implschtbl(schtblid)	((schtblid) < tnum_implscheduletable)
+
+/*
+ *  個々の満了点テーブル型
+ */
+typedef struct scheduletable_expire_point_block {
+	TickType		offset;                                 /* オフセット値 */
+	FunctionRefType	expptfnt;                               /* 満了点処理関数のポインタ */
+} SCHTBLEXPPTCB;
+
+
+/*
+ *  スケジュールテーブル初期化ブロック
+ */
+typedef struct scheduletable_initialization_block {
+	CNTCB				*p_cntcb;                           /* 駆動カウンタ管理ブロックのポインタ */
+	TickType			length;                             /* 周期の長さ */
+	AppModeType			autosta;                            /* 起動するアプリケーションモード */
+	AttributeType		actatr;                             /* 自動起動の属性 */
+	TickType			staval;                             /* 自動起動ティック値 */
+	const SCHTBLEXPPTCB	*p_exppt;                           /* 満了点テーブルの先頭ポインタ */
+	boolean				repeat;                             /* 周期制御の有無 */
+	uint8				tnum_exppt;                         /* 満了点数 */
+	OSAPCB				*p_osapcb;                          /* 所属するOSアプリケーションの管理ブロック */
+	uint32				acsbtmp;                            /* アクセス許可OSアプリケーション ビットマップ */
+} SCHTBLINIB;
+
+/*
+ *  スケジュールテーブル管理ブロック
+ */
+typedef struct scheduletable_control_block {
+	CNTEXPINFO							cntexpinfo;         /* カウンタ満了情報(構造体の先頭に入る必要) */
+	const SCHTBLINIB					*p_schtblinib;      /* 初期化ブロックへのポインタ */
+	struct scheduletable_control_block	*p_prevschtblcb;    /* 自分をNextにしたスケジュールテーブル管理ブロックへのポインタ */
+	struct scheduletable_control_block	*p_nextschtblcb;    /* Nextスケジュールテーブル管理ブロックへのポインタ */
+	ScheduleTableStatusType				status;             /* スケジュールテーブル状態 */
+	uint8								expptindex;         /* 満了点インデックス */
+} SCHTBLCB;
+
+/*
+ *  満了処理実行用管理情報
+ */
+typedef struct scheduletable_expire_info {
+	SCHTBLCB *p_schtblcb;                                   /* スケジュールテーブル管理ブロックのアドレス */
+} SCHTBLEXPINFO;
+
+/*
+ *  スケジュールテーブル数を保持する変数の宣言
+ */
+extern const ScheduleTableType	tnum_scheduletable;         /* 全スケジュールテーブルの数 */
+extern const ScheduleTableType	tnum_implscheduletable;     /* 暗黙同期スケジュールテーブル数 */
+
+/*
+ *  スケジュールテーブル初期化ブロックのエリア（Os_Lcfg.c）
+ */
+extern const SCHTBLINIB			schtblinib_table[];
+/*
+ *  スケジュールテーブル管理ブロックのエリア（Os_Lcfg.c）
+ */
+extern SCHTBLCB					schtblcb_table[];
+
+/*
+ *  スケジュールテーブルオブジェクトの初期化
+ */
+extern void schtbl_initialize(void);
+
+/*
+ *  スケジュールテーブル満了処理関数
+ */
+extern void schtbl_expire(CNTEXPINFO *p_cntexpinfo, const CNTCB *p_cntcb);
+
+/*
+ *  満了処理関数から各タイミング処理の実行
+ */
+extern void schtbl_expiry_process(SCHTBLEXPINFO *p_schtblexpinfo, const CNTCB *p_cntcb);
+
+/*
+ *  スケジュールテーブルの開始処理
+ */
+extern boolean schtbl_head(SCHTBLCB *p_schtblcb, const CNTCB *p_cntcb);
+
+/*
+ *  スケジュールテーブルの各満了点処理
+ */
+extern boolean schtbl_exppoint_process(SCHTBLCB *p_schtblcb, const CNTCB *p_cntcb);
+
+/*
+ *  スケジュールテーブルの終端処理
+ */
+extern boolean schtbl_tail(SCHTBLCB *p_schtblcb, SCHTBLEXPINFO *p_schtblexpinfo, const CNTCB *p_cntcb);
+
+/*
+ *  OSAP所属するスケジュールテーブルの強制終了
+ */
+extern void force_term_osap_schtbl(OSAPCB *p_osapcb);
+
+#endif /* TOPPERS_SCHEDULETABLE_H */
Index: /atk2-sc3_fl850f1l/kernel/svc.def
===================================================================
--- /atk2-sc3_fl850f1l/kernel/svc.def	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/svc.def	(revision 117)
@@ -0,0 +1,143 @@
+#
+#  TOPPERS ATK2
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+#      Automotive Kernel Version 2
+#
+#  Copyright (C) 2001 by Embedded and Real-Time Systems Laboratory
+#                              Toyohashi Univ. of Technology, JAPAN
+#  Copyright (C) 2005-2014 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#  Copyright (C) 2011-2014 by FUJI SOFT INCORPORATED, JAPAN
+#  Copyright (C) 2011-2013 by Spansion LLC, USA
+#  Copyright (C) 2011-2013 by NEC Communication Systems, Ltd., JAPAN
+#  Copyright (C) 2011-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+#  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+#  Copyright (C) 2011-2014 by Sunny Giken Inc., JAPAN
+#  Copyright (C) 2011-2014 by TOSHIBA CORPORATION, JAPAN
+#  Copyright (C) 2011-2014 by Witz Corporation
+#
+#  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+#  $Id: svc.def 187 2015-06-25 03:39:04Z t_ishikawa $
+#
+
+#
+#  サービスコール定義ファイル
+#
+#  各行は，機能番号，フラグ，サービスコールのプロトタイプ宣言から構成さ
+#  れる．行頭がスペース（空白またはTAB）で始まる時は，機能コードが省略
+#  されたとみなす．ただし，最初のサービスコールの機能コードは省略できな
+#  い．行末の '\' は継続行を示す．
+#
+#  注意事項：
+#    サービスコールの引数名はすべて小文字であること
+#
+#  フラグの意味は次の通り．
+#
+#	S : ATK2-SC3カーネルがサポート
+#			関数プロトタイプ宣言と呼出しライブラリを生成する
+#	N : 関数プロトタイプ宣言は生成するが，呼出しライブラリは生成しない
+#	I : ユーザからは呼べない(exit_task)
+#	m : メモリをアクセスする ⇒ ポインタをパラメータに持つ場合
+#           呼出元のメモリを変更することをコンパイラに伝える
+#	n : サービスコールの返戻値が void型
+#	- : 未サポート，予約
+#
+
+0		Sn		void		StartOS(AppModeType Mode)
+		Sn		void		ShutdownOS(StatusType Error)
+		S		StatusType	ActivateTask(TaskType TaskID)
+		S		StatusType	TerminateTask()
+		S		StatusType	ChainTask(TaskType TaskID)
+		S		StatusType	Schedule()
+		S		StatusType	GetTaskID(TaskRefType TaskID)
+		S		StatusType	GetTaskState(TaskType TaskID, TaskStateRefType State)
+		Sn		void		EnableAllInterrupts()
+		Sn		void		DisableAllInterrupts()
+		Sn		void		ResumeAllInterrupts()
+		Sn		void		SuspendAllInterrupts()
+		Sn		void		ResumeOSInterrupts()
+		Sn		void		SuspendOSInterrupts()
+		S		ISRType		GetISRID()
+		S		StatusType	DisableInterruptSource(ISRType DisableISR)
+		S		StatusType	EnableInterruptSource(ISRType EnableISR)
+		S		StatusType	GetResource(ResourceType ResID)
+		S		StatusType	ReleaseResource(ResourceType ResID)
+		S		StatusType	SetEvent(TaskType TaskID, EventMaskType Mask)
+		S		StatusType	ClearEvent(EventMaskType Mask)
+		S		StatusType	GetEvent(TaskType TaskID, EventMaskRefType Event)
+		S		StatusType	WaitEvent(EventMaskType Mask)
+		S		StatusType	GetAlarmBase(AlarmType AlarmID, AlarmBaseRefType Info)
+		S		StatusType	GetAlarm(AlarmType AlarmID, TickRefType Tick)
+		S		StatusType	SetRelAlarm(AlarmType AlarmID, TickType increment, TickType cycle)
+		S		StatusType	SetAbsAlarm(AlarmType AlarmID, TickType start, TickType cycle)
+		S		StatusType	CancelAlarm(AlarmType AlarmID)
+		S		StatusType	IncrementCounter(CounterType CounterID)
+		S		StatusType	GetCounterValue(CounterType CounterID, TickRefType Value)
+		S		StatusType	GetElapsedValue(CounterType CounterID, TickRefType Value, TickRefType ElapsedValue)
+		S		AccessType	CheckISRMemoryAccess(ISRType ISRID, MemoryStartAddressType Address, MemorySizeType Size)
+		S		AccessType	CheckTaskMemoryAccess(TaskType TaskID, MemoryStartAddressType Address, MemorySizeType Size)
+		S		ObjectAccessType	CheckTaskAccess(ApplicationType ApplID, TaskType TaskID)
+		S		ObjectAccessType	CheckISRAccess(ApplicationType ApplID, ISRType ISRID)
+		S		ObjectAccessType	CheckAlarmAccess(ApplicationType ApplID, AlarmType AlarmID)
+		S		ObjectAccessType	CheckResourceAccess(ApplicationType ApplID, ResourceType ResID)
+		S		ObjectAccessType	CheckCounterAccess(ApplicationType ApplID, CounterType CounterID)
+		S		ObjectAccessType	CheckScheduleTableAccess(ApplicationType ApplID, ScheduleTableType ScheduleTableID)
+		S		ApplicationType	CheckTaskOwnership(TaskType TaskID)
+		S		ApplicationType	CheckISROwnership(ISRType ISRID)
+		S		ApplicationType	CheckAlarmOwnership(AlarmType AlarmID)
+		S		ApplicationType	CheckCounterOwnership(CounterType CounterID)
+		S		ApplicationType	CheckScheduleTableOwnership(ScheduleTableType ScheduleTableID)
+		S		ApplicationType	GetApplicationID()
+		S		StatusType	CallTrustedFunction(TrustedFunctionIndexType FunctionIndex,	TrustedFunctionParameterRefType FunctionParams)
+		S		StatusType  GetApplicationState(ApplicationType Application, ApplicationStateRefType Value)
+		S		AppModeType	GetActiveApplicationMode()
+		S		StatusType StartScheduleTableRel(ScheduleTableType ScheduleTableID, TickType Offset)
+		S		StatusType StartScheduleTableAbs(ScheduleTableType ScheduleTableID, TickType Start)
+		S		StatusType StopScheduleTable(ScheduleTableType ScheduleTableID)
+		S		StatusType NextScheduleTable(ScheduleTableType ScheduleTableID_From, ScheduleTableType ScheduleTableID_To)
+		S		StatusType GetScheduleTableStatus(ScheduleTableType ScheduleTableID, ScheduleTableStatusRefType ScheduleStatus)
+		S		FaultyContextType	GetFaultyContext()
+		S		Std_ReturnType	ioc_send_generic(IocType IocWrapperId, const void *in)
+		S		Std_ReturnType	ioc_write_generic(IocType IocWrapperId, const void *in)
+		S		Std_ReturnType	ioc_receive_generic(IocType IocId, void *out)
+		S		Std_ReturnType	ioc_read_generic(IocType IocId, void *out)
+		S		Std_ReturnType	ioc_empty_queue_generic(IocType IocId)
+		S		StatusType	AllowAccess()
+		S		StatusType	TerminateApplication(ApplicationType Application, RestartType RestartOption)
+		In		void		exit_task()
+
+# ここまで
+
Index: /atk2-sc3_fl850f1l/kernel/svc_table.c
===================================================================
--- /atk2-sc3_fl850f1l/kernel/svc_table.c	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/svc_table.c	(revision 117)
@@ -0,0 +1,125 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2011-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: svc_table.c 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*  This file is generated from svc.def by gensvc_atk. */
+
+#include "kernel_int.h"
+
+void * const svc_table[TMAX_SVCID + 1] = {
+	(void *) &StartOS,
+	(void *) &ShutdownOS,
+	(void *) &ActivateTask,
+	(void *) &TerminateTask,
+	(void *) &ChainTask,
+	(void *) &Schedule,
+	(void *) &GetTaskID,
+	(void *) &GetTaskState,
+	(void *) &EnableAllInterrupts,
+	(void *) &DisableAllInterrupts,
+	(void *) &ResumeAllInterrupts,
+	(void *) &SuspendAllInterrupts,
+	(void *) &ResumeOSInterrupts,
+	(void *) &SuspendOSInterrupts,
+	(void *) &GetISRID,
+	(void *) &DisableInterruptSource,
+	(void *) &EnableInterruptSource,
+	(void *) &GetResource,
+	(void *) &ReleaseResource,
+	(void *) &SetEvent,
+	(void *) &ClearEvent,
+	(void *) &GetEvent,
+	(void *) &WaitEvent,
+	(void *) &GetAlarmBase,
+	(void *) &GetAlarm,
+	(void *) &SetRelAlarm,
+	(void *) &SetAbsAlarm,
+	(void *) &CancelAlarm,
+	(void *) &IncrementCounter,
+	(void *) &GetCounterValue,
+	(void *) &GetElapsedValue,
+	(void *) &CheckISRMemoryAccess,
+	(void *) &CheckTaskMemoryAccess,
+	(void *) &CheckTaskAccess,
+	(void *) &CheckISRAccess,
+	(void *) &CheckAlarmAccess,
+	(void *) &CheckResourceAccess,
+	(void *) &CheckCounterAccess,
+	(void *) &CheckScheduleTableAccess,
+	(void *) &CheckTaskOwnership,
+	(void *) &CheckISROwnership,
+	(void *) &CheckAlarmOwnership,
+	(void *) &CheckCounterOwnership,
+	(void *) &CheckScheduleTableOwnership,
+	(void *) &GetApplicationID,
+	(void *) &CallTrustedFunction,
+	(void *) &GetApplicationState,
+	(void *) &GetActiveApplicationMode,
+	(void *) &StartScheduleTableRel,
+	(void *) &StartScheduleTableAbs,
+	(void *) &StopScheduleTable,
+	(void *) &NextScheduleTable,
+	(void *) &GetScheduleTableStatus,
+	(void *) &GetFaultyContext,
+	(void *) &ioc_send_generic,
+	(void *) &ioc_write_generic,
+	(void *) &ioc_receive_generic,
+	(void *) &ioc_read_generic,
+	(void *) &ioc_empty_queue_generic,
+	(void *) &AllowAccess,
+	(void *) &TerminateApplication,
+	(void *) &exit_task,
+	TARGET_SVC_TABLE
+};
Index: /atk2-sc3_fl850f1l/kernel/system.csv
===================================================================
--- /atk2-sc3_fl850f1l/kernel/system.csv	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/system.csv	(revision 117)
@@ -0,0 +1,4 @@
+//ELEMENTS/IMPLEMENTATION-DATA-TYPE,IMPLEMENTATION_DATA_TYPE,PARENT
+SHORT-NAME,SHORT_NAME_PATH,CHILD,PATH
+SHORT-NAME,SHORT_NAME,CHILD
+CATEGORY,CATEGORY,CHILD
Index: /atk2-sc3_fl850f1l/kernel/task.c
===================================================================
--- /atk2-sc3_fl850f1l/kernel/task.c	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/task.c	(revision 117)
@@ -0,0 +1,624 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2004-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: task.c 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		タスク制御モジュール
+ */
+
+#include "kernel_impl.h"
+#include "check.h"
+#include "task.h"
+#include "interrupt.h"
+
+/*
+ *  トレースログマクロのデフォルト定義
+ */
+#ifndef LOG_TSKSTAT
+#define LOG_TSKSTAT(p_tcb)
+#endif /* LOG_TSKSTAT */
+
+/* 内部関数のプロトタイプ宣言 */
+LOCAL_INLINE uint16 bitmap_search(uint16 bitmap);
+LOCAL_INLINE boolean primap_empty(void);
+LOCAL_INLINE PriorityType primap_search(void);
+LOCAL_INLINE void primap_set(PriorityType pri);
+LOCAL_INLINE void primap_clear(PriorityType pri);
+
+#ifdef TOPPERS_task_initialize
+
+/*
+ *  実行状態のタスク
+ */
+TCB				*p_runtsk;
+
+/*
+ *  最高優先順位タスク
+ */
+TCB				*p_schedtsk;
+
+/*
+ *  レディキュー中の最高優先度
+ */
+PriorityType	nextpri;
+
+/*
+ *  レディキュー
+ */
+QUEUE			ready_queue[TNUM_TPRI];
+
+/*
+ *  レディキューサーチのためのビットマップ
+ */
+uint16			ready_primap;
+
+/*
+ *  タスク管理モジュールの初期化
+ */
+void
+task_initialize(void)
+{
+	TaskType	i;
+	TCB			*p_tcb;
+
+	p_runtsk = NULL;
+	p_schedtsk = NULL;
+
+	for (i = 0U; i < TNUM_TPRI; i++) {
+		queue_initialize(&(ready_queue[i]));
+	}
+	nextpri = TPRI_MINTASK;
+	ready_primap = 0U;
+
+	for (i = 0U; i < tnum_task; i++) {
+		p_tcb = &(tcb_table[i]);
+		p_tcb->p_tinib = &(tinib_table[i]);
+		p_tcb->actcnt = 0U;
+		p_tcb->curevt = 0U;
+		p_tcb->tstat = SUSPENDED;
+#ifdef CFG_USE_PROTECTIONHOOK
+		p_tcb->calltfn = FALSE;
+#endif /* CFG_USE_PROTECTIONHOOK */
+		if ((p_tcb->p_tinib->autoact & ((AppModeType) 1 << appmodeid)) != APPMODE_NONE) {
+			(void) make_active(p_tcb);
+		}
+	}
+}
+
+#endif /* TOPPERS_task_initialize */
+
+/*
+ *  ビットマップサーチ関数
+ *
+ *  bitmap内の1のビットの内，最も下位（右）のものをサーチし，そのビッ
+ *  ト番号を返す
+ *  ビット番号は，最下位ビットを0とする．bitmapに0を指定
+ *  してはならない．この関数では，bitmapが16ビットであることを仮定し，
+ *  uint16型としている
+ *
+ *  ビットサーチ命令を持つプロセッサでは，ビットサーチ命令を使うように
+ *  書き直した方が効率が良い場合がある
+ *  このような場合には，ターゲット依存部でビットサーチ命令を使った
+ *  bitmap_searchを定義し，OMIT_BITMAP_SEARCHをマクロ定義すればよい
+ *  また，ビットサーチ命令のサーチ方向が逆などの理由で優先度とビット
+ *  との対応を変更したい場合には，PRIMAP_BITをマクロ定義すればよい
+ *
+ *  また，標準ライブラリにffsがあるなら，次のように定義して標準ライブ
+ *  ラリを使った方が効率が良い可能性もある
+ *		#define	bitmap_search(bitmap) (ffs(bitmap) - 1)
+ */
+#ifndef PRIMAP_BIT
+#define PRIMAP_BIT(pri)		((uint16) ((uint16) 1U << (pri)))
+#endif /* PRIMAP_BIT */
+
+#ifndef OMIT_BITMAP_SEARCH
+
+LOCAL_INLINE uint16
+bitmap_search(uint16 bitmap)
+{
+	/*
+	 *  ビットマップサーチ関数用テーブル
+	 */
+	const uint8	bitmap_search_table[BITMAP_NUM] = {
+		0U, 1U, 0U, 2U, 0U, 1U, 0U,
+		3U, 0U, 1U, 0U, 2U, 0U, 1U, 0U
+	};
+
+	uint16		n = 0U;
+
+	ASSERT(bitmap != 0U);
+	if ((bitmap & 0x00ffU) == 0U) {
+		bitmap >>= 8U;
+		n += 8U;
+	}
+	if ((bitmap & 0x0fU) == 0U) {
+		bitmap >>= 4U;
+		n += 4U;
+	}
+	return(n + bitmap_search_table[(bitmap & 0x000fU) - 1U]);
+}
+
+#endif /* OMIT_BITMAP_SEARCH */
+
+/*
+ *  優先度ビットマップが空かのチェック
+ */
+LOCAL_INLINE boolean
+primap_empty(void)
+{
+	return(ready_primap == 0U);
+}
+
+/*
+ *  優先度ビットマップのサーチ
+ */
+LOCAL_INLINE PriorityType
+primap_search(void)
+{
+	return((PriorityType) bitmap_search(ready_primap));
+}
+
+/*
+ *  優先度ビットマップのセット
+ */
+LOCAL_INLINE void
+primap_set(PriorityType pri)
+{
+	ready_primap |= PRIMAP_BIT(pri);
+}
+
+/*
+ *  優先度ビットマップのクリア
+ */
+LOCAL_INLINE void
+primap_clear(PriorityType pri)
+{
+	ready_primap &= (uint16) ~PRIMAP_BIT(pri);
+}
+
+/*
+ *  最高優先順位タスクのサーチ
+ */
+#ifdef TOPPERS_search_schedtsk
+
+void
+search_schedtsk(void)
+{
+	if (primap_empty() != FALSE) {
+		p_schedtsk = NULL;
+	}
+	else {
+		p_schedtsk = (TCB *) (queue_delete_next(&(ready_queue[nextpri])));
+		if (queue_empty(&(ready_queue[nextpri])) != FALSE) {
+			primap_clear(nextpri);
+			nextpri = (primap_empty() != FALSE) ?
+					  TPRI_MINTASK : primap_search();
+		}
+	}
+}
+
+#endif /* TOPPERS_search_schedtsk */
+
+/*
+ *  実行できる状態への移行
+ */
+#ifdef TOPPERS_make_runnable
+
+boolean
+make_runnable(TCB *p_tcb)
+{
+	PriorityType	pri, schedpri;
+	boolean			is_next_schedtsk = TRUE;
+
+	p_tcb->tstat = READY;
+	LOG_TSKSTAT(p_tcb);
+	if (p_schedtsk != NULL) {
+		pri = p_tcb->curpri;
+		schedpri = p_schedtsk->curpri;
+		if (pri >= schedpri) {
+			/*
+			 *  schedtsk の方が優先度が高い場合，p_tcb をレ
+			 *  ディキューの最後に入れる
+			 */
+			queue_insert_prev(&(ready_queue[pri]), &(p_tcb->task_queue));
+			primap_set(pri);
+			if (pri < nextpri) {
+				nextpri = pri;
+			}
+			is_next_schedtsk = FALSE;
+		}
+		else {
+			/*
+			 *  p_tcb の方が優先度が高い場合，schedtsk をレディキュー
+			 *  の先頭に入れ，p_tcb を新しい schedtsk とする
+			 */
+			queue_insert_next(&(ready_queue[schedpri]), &(p_schedtsk->task_queue));
+			primap_set(schedpri);
+			nextpri = schedpri;
+		}
+	}
+
+	if (is_next_schedtsk != FALSE) {
+		p_schedtsk = p_tcb;
+	}
+	return(is_next_schedtsk);
+}
+
+#endif /* TOPPERS_make_runnable */
+
+/*
+ *  実行できる状態から他の状態への遷移
+ *
+ *  SC1-MCでmake_non_runnableが実装されるため
+ *  SC1にもmake_non_runableを実装し，SC1もSC1-MCの関数構成に合せる
+ *  （SC1-MCでは，p_runtskとp_schedtskが一致していることを確認する処理を入れる必要があるが，
+ *  SC1では，search_schedtskのみ呼び出す処理とする）
+ */
+#ifdef TOPPERS_make_non_runnable
+
+void
+make_non_runnable(void)
+{
+	search_schedtsk();
+}
+
+#endif /* TOPPERS_make_non_runnable */
+
+/*
+ *  タスクの起動
+ *
+ *  TerminateTask や ChainTask の中で，自タスクに対して make_active を
+ *  呼ぶ場合があるので注意する
+ */
+#ifdef TOPPERS_make_active
+
+boolean
+make_active(TCB *p_tcb)
+{
+	p_tcb->curpri = p_tcb->p_tinib->inipri;
+	if (TSKID(p_tcb) < tnum_exttask) {
+		p_tcb->curevt = EVTMASK_NONE;
+		p_tcb->waievt = EVTMASK_NONE;
+	}
+	p_tcb->p_lastrescb = NULL;
+	p_tcb->p_lastcntcb = NULL;
+
+	activate_context(p_tcb);
+	return(make_runnable(p_tcb) != FALSE);
+}
+
+#endif /* TOPPERS_make_active */
+
+/*
+ *  タスクのプリエンプト
+ */
+#ifdef TOPPERS_preempt
+
+void
+preempt(void)
+{
+	PriorityType pri;
+
+	ASSERT(p_runtsk == p_schedtsk);
+	pri = p_runtsk->curpri;
+	queue_insert_next(&(ready_queue[pri]), &(p_runtsk->task_queue));
+	primap_set(pri);
+	search_schedtsk();
+}
+
+#endif /* TOPPERS_preempt */
+
+/*
+ *  実行中のタスクをSUSPENDED状態にする
+ *  リソース解放した状態で呼出す必要がある
+ */
+#ifdef TOPPERS_suspend
+
+void
+suspend(void)
+{
+	p_runtsk->tstat = SUSPENDED;
+	LOG_TSKSTAT(p_runtsk);
+	make_non_runnable();
+	if (p_runtsk->actcnt > 0U) {
+		p_runtsk->actcnt -= 1U;
+		(void) make_active(p_runtsk);
+	}
+}
+
+#endif /* TOPPERS_suspend */
+
+/*
+ *  タスクの全リソース返却
+ */
+#ifdef TOPPERS_release_taskresources
+
+void
+release_taskresources(TCB *p_tcb)
+{
+	if (p_tcb->p_lastrescb != NULL) {
+		if (p_tcb->curpri <= TPRI_MINISR) {
+			/* リソースを全部解放すれば割込み許可になる */
+			x_set_ipm((PriorityType) TIPM_ENAALL);
+		}
+		/* リソースを全部解放すれば実行中優先度に戻る */
+		p_tcb->curpri = p_tcb->p_tinib->exepri;
+
+		/* OS割込み禁止状態以上で来る p_tcb->p_lastrescb != NULL */
+		do {
+			p_tcb->p_lastrescb->lockflg = FALSE;
+			p_tcb->p_lastrescb = p_tcb->p_lastrescb->p_prevrescb;
+		} while (p_tcb->p_lastrescb != NULL);
+	}
+}
+
+#endif /* TOPPERS_release_taskresources */
+
+/*
+ *  タスクのカウンタの状態をすべてCS_NULLに戻す
+ */
+#ifdef TOPPERS_cancel_taskcounters
+
+void
+cancel_taskcounters(TCB *p_tcb)
+{
+	if (p_tcb->p_lastcntcb != NULL) {
+
+		/* OS割込み禁止状態以上で来る */
+		do {
+			p_tcb->p_lastcntcb->cstat = CS_NULL;
+			p_tcb->p_lastcntcb = p_tcb->p_lastcntcb->p_prevcntcb;
+		} while (p_tcb->p_lastcntcb != NULL);
+	}
+}
+#endif /* TOPPERS_cancel_taskcounters */
+
+/*
+ *  タスクの不正終了時の保護
+ *  TerminateTask()，ChainTask()なしでの自タスクの終了
+ * （タスクの関数からリターン）した場合の処理
+ */
+#ifdef TOPPERS_exit_task
+
+void
+exit_task(void)
+{
+	x_nested_lock_os_int();
+
+	/* 割込み禁止状態の場合は割込み禁止を解除する */
+	release_interrupts(OSServiceId_Invalid);
+
+	/* リソース確保したままの場合はリソースを解放する */
+	release_taskresources(p_runtsk);
+
+#ifdef CFG_USE_ERRORHOOK
+	/* エラーフックを呼ぶ */
+	call_errorhook(E_OS_MISSINGEND, OSServiceId_TaskMissingEnd);
+#endif /* CFG_USE_ERRORHOOK */
+
+	suspend();
+
+	/* ポストタスクフックが有効な場合はポストタスクフックが呼ばれる */
+	exit_and_dispatch();
+}
+
+#endif /* TOPPERS_exit_task */
+
+#ifdef TOPPERS_remove_task_from_queue
+
+/*
+ *  レディキューからタスクを削除する
+ */
+void
+remove_task_from_queue(TCB *p_tcb, PriorityType remove_task_pri)
+{
+	queue_delete(&(p_tcb->task_queue));
+	if (queue_empty(&(ready_queue[remove_task_pri])) != FALSE) {
+		primap_clear(remove_task_pri);
+		nextpri = (primap_empty() != FALSE) ?	TPRI_MINTASK : primap_search();
+	}
+}
+
+#endif /* TOPPERS_remove_task_from_queue */
+
+#ifdef TOPPERS_suspend_ready_task
+
+/*
+ *  レディキューに入っているタスクを休止状態にする
+ */
+void
+suspend_ready_task(TCB *p_tcb, PriorityType remove_task_pri)
+{
+	p_tcb->tstat = SUSPENDED;
+	LOG_TSKSTAT(p_tcb);
+	remove_task_from_queue(p_tcb, remove_task_pri);
+	if (p_tcb->actcnt > 0U) {
+		p_tcb->actcnt -= 1U;
+		(void) make_active(p_tcb);
+	}
+}
+
+#endif /* TOPPERS_suspend_ready_task */
+
+/*
+ *  自タスクの強制終了
+ *    ProtectionHook， TeminateApplication からのみ呼出される
+ *      リソースの解放，割込み禁止の解除を行った後
+ *       TerminateTask相当の処理を行う
+ *      強制タスク終了の場合は，PostTaskHookを呼出さないのでTerminateTask
+ *      とは異なる処理となる
+ *  本関数はOS割込み禁止状態で呼出されることを前提とする
+ */
+#ifdef TOPPERS_force_terminate_task
+
+void
+force_terminate_task(TCB *p_tcb, StatusType terminate_cause, boolean term_osap_flag)
+{
+	/* curpriとinipriが異なる値でレディキューに繋がれている場合への対応 */
+	PriorityType remove_task_pri = p_tcb->curpri;
+
+	/*
+	 *  割込み禁止を解除する
+	 *  エラーフックは呼ばない
+	 *  エラーフックを呼ばないため，引数にOSServiceId_Invalidをする
+	 */
+	release_interrupts(OSServiceId_Invalid);
+
+	/* リソース確保したままの場合，リソース解放 */
+	release_taskresources(p_tcb);
+	/* カウンタの状態を初期化する */
+	cancel_taskcounters(p_tcb);
+
+	if ((terminate_cause & PEOB_STACKMONITORING_TERMTASK) == 0U) {
+		if ((p_tcb == p_runtsk) && (p_runtsk == p_schedtsk)) {
+
+			/* 実行中タスクのCPU例外, 割込み発生時のスタックモニタリング, 信頼関数終了後のスタックモニタリング */
+			suspend();
+		}
+		else {
+			if (p_tcb == p_schedtsk) {
+				/*
+				 *  既にレディキューから外されているタスクの終了処理
+				 *  p_schedtsk/p_tcbの状態を変更し，次に実行すべきタスクを探す
+				 */
+				p_tcb->tstat = SUSPENDED;
+				search_schedtsk();
+			}
+			else {
+				/*
+				 *  curpriとinipriが異なる値でレディキューに繋がれている場合への
+				 *  対応で，リソース解放前の優先度を使用し，対象タスクをSUSPEND状態とし，
+				 *  レディキューから削除する．
+				 */
+				suspend_ready_task(p_tcb, remove_task_pri);
+			}
+		}
+	}
+
+	if (term_osap_flag != FALSE) {
+		/*
+		 *  OSAP終了/再起動処理からの呼び出し
+		 *  実施すべき処理がない
+		 */
+	}
+	else if (((terminate_cause & (~PROTECTION_ERROR_OPTIONAL_BIT)) == E_OS_STACKFAULT) &&
+			 ((terminate_cause & (PROTECTION_ERROR_OPTIONAL_BIT)) != 0U)) {
+		/*
+		 *  ディスパッチャ，割込み入口処理でのスタックモニタリング
+		 *  信頼関数終了後のスタックモニタリングはelse側
+		 *  実行中のタスクはディスパッチャが起動するまでなし
+		 */
+		p_runtsk = NULL;
+	}
+	else {
+		/* 全割込み禁止状態で，タスク強制終了しても，DisableAllInterrupts全割込み禁止状態を解除しない */
+		callevel_stat = (callevel_stat & TSYS_DISALLINT) | TCL_TASK;
+		x_clear_nested_os_int();
+
+		exit_and_dispatch_nohook();
+	}
+}
+
+#endif /* TOPPERS_force_terminate_task */
+
+/*
+ *  OSAP所属するタスクの強制終了
+ */
+#ifdef TOPPERS_force_term_osap_task
+
+void
+force_term_osap_task(OSAPCB *p_osapcb)
+{
+	/* OSAPに所属するタスクを強制終了 */
+	TaskType	i;
+	TCB			*p_tcb;
+
+	for (i = 0U; i < tnum_task; i++) {
+		if (tinib_table[i].p_osapcb == p_osapcb) {
+			p_tcb = &tcb_table[i];
+			/*
+			 *  OSAP終了/再起動よりタスクの強制終了
+			 */
+			p_tcb->actcnt = 0U;
+			p_tcb->curevt = 0U;
+#ifdef CFG_USE_PROTECTIONHOOK
+			p_tcb->calltfn = FALSE;
+#endif /* CFG_USE_PROTECTIONHOOK */
+
+			if (p_tcb->tstat == READY) {
+				force_terminate_task(p_tcb, 0U, TRUE);
+			}
+			else {
+				p_tcb->tstat = SUSPENDED;
+			}
+
+			/*
+			 *  ここでは割込み禁止を解除しない
+			 *  ここにくるまでの間に，p_runtskが終了され，p_schedtskが
+			 *  更新されていた場合，現在のATK2の設計では，割込みハンドラ
+			 *  の出口処理で，p_runtsk != p_schedtskによるディスパッチ
+			 *  判定を行っているため，OSAPの強制処理中に，他の
+			 *  タスクにディスパッチしてしまう
+			 *  C2ISRのレスポンス性能を向上するため，割込みの解除/禁止を，
+			 *  タスクを強制終了する毎に実施する設計も考えられるが，
+			 *  ATK2の現在のディスパッチ設計を変更する必要がある
+			 */
+		}
+	}
+}
+
+#endif /* TOPPERS_force_term_osap_task */
Index: /atk2-sc3_fl850f1l/kernel/task.h
===================================================================
--- /atk2-sc3_fl850f1l/kernel/task.h	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/task.h	(revision 117)
@@ -0,0 +1,330 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2004-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: task.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		タスク管理機能
+ */
+
+#ifndef TOPPERS_TASK_H
+#define TOPPERS_TASK_H
+
+#include "queue.h"
+#include "resource.h"
+
+typedef struct task_control_block TCB;
+#include "osap.h"
+#include "counter.h"
+
+/*
+ *  イベントマスク値の定義
+ */
+#define EVTMASK_NONE	((EventMaskType) 0) /* イベントなし */
+
+/*
+ *  優先度の範囲（外部表現）
+ */
+#define TMIN_TPRI		UINT_C(0)       /* タスク優先度の最小値（最低値）*/
+#define TMAX_TPRI		UINT_C(15)      /* タスク優先度の最大値（最高値）*/
+
+/*
+ *  優先度の段階数の定義
+ */
+#define TNUM_TPRI		((TMAX_TPRI - TMIN_TPRI) + 1U)
+
+/*
+ *  優先度値の定義（内部表現）
+ */
+#define TPRI_MINTASK	((PriorityType) (TNUM_TPRI - 1U))               /* 最低タスク優先度 */
+#define TPRI_MAXTASK	((PriorityType) (0))                            /* 最高タスク優先度 */
+
+/*
+ *  タスクIDからTCBを取り出すためのマクロ
+ */
+#define get_tcb(tskid)		(&(tcb_table[(tskid)]))
+
+/*
+ *  TCBからタスクIDを取り出すためのマクロ
+ *  p_tcb がNULLの場合は使えない
+ */
+#define TSKID(p_tcb)	((TaskType) ((p_tcb) - tcb_table))
+
+#ifndef OMIT_BITMAP_SEARCH
+#define BITMAP_NUM		15       /* bitmap_search_tableのサイズ */
+#endif /* OMIT_BITMAP_SEARCH */
+
+/*
+ *  タスク数を保持する変数の宣言（Os_Lcfg.c）
+ */
+extern const TaskType	tnum_task;          /* タスクの数 */
+extern const TaskType	tnum_exttask;       /* 拡張タスクの数 */
+
+
+/*
+ *  タスク初期化ブロック
+ *
+ *  タスクに関する情報を，値が変わらないためにROMに置ける部分（タスク
+ *  初期化ブロック）と，値が変化するためにRAMに置かなければならない部
+ *  分（タスク管理ブロック，TCB）に分離し，TCB内に対応するタスク初期化
+ *  ブロックを指すポインタを入れる
+ *  タスク初期化ブロック内に対応するTCBを指すポインタを入れる方法の方が，
+ *  RAMの節約の観点からは望ましいが，実行効率が悪くなるために採用
+ *  していない
+ *  他のオブジェクトについても同様に扱う
+ */
+typedef struct task_initialization_block {
+	FunctionRefType	task;       /* タスクの起動番地 */
+
+#ifdef USE_TSKINICTXB
+	TSKINICTXB tskinictxb;           /* タスク初期化コンテキストブロック */
+#else /* USE_TSKINICTXB */
+	MemorySizeType	sstksz;         /* システムスタック領域のサイズ（丸めた値） */
+	void			*sstk;          /* システムスタック領域のボトム番地(SC3) */
+	MemorySizeType	ustksz;         /* スタック領域のサイズ（丸めた値） */
+	void			*ustk;          /* スタック領域のボトム番地(SC3) */
+#endif /* USE_TSKINICTXB */
+	OSAPCB			*p_osapcb;      /* 所属するOSアプリケーションの管理ブロック */
+	uint32			acsbtmp;        /* アクセス許可OSアプリケーション ビットマップ */
+	PriorityType	inipri;         /* 初期優先度 （内部表現）*/
+	PriorityType	exepri;         /* 実行開始時の優先度 （内部表現）*/
+	uint8			maxact;         /* 多重起動要求の最大数 */
+	AppModeType		autoact;        /* 起動するモード */
+#ifndef OMIT_STKMPUINFOB
+	STKMPUINFOB	stkmpu;             /* スタックのMPU情報 */
+#endif
+} TINIB;
+
+/*
+ *  タスク管理ブロック（Os_Lcfg.c）
+ */
+struct task_control_block {
+	QUEUE			task_queue;     /* タスクキュー(構造体の先頭に入る必要) */
+	const TINIB		*p_tinib;       /* 初期化ブロックへのポインタ */
+	PriorityType	curpri;         /* 現在の優先度（内部表現）*/
+	TaskStateType	tstat;          /* タスク状態（内部表現）*/
+	uint8			actcnt;         /* 多重起動要求数 */
+	EventMaskType	curevt;         /* イベントの現在値 */
+	EventMaskType	waievt;         /* 待っているイベント */
+	RESCB			*p_lastrescb;   /* 最後に獲得したリソース管理ブロックへのポインタ */
+	CNTCB			*p_lastcntcb;   /* 最後に操作したカウンタ管理ブロックへのポインタ */
+	TSKCTXB			tskctxb;        /* タスクコンテキストブロック */
+#ifdef CFG_USE_PROTECTIONHOOK
+	boolean	calltfn;                /* 信頼関数呼び出し中フラグ */
+#endif /* CFG_USE_PROTECTIONHOOK */
+};
+
+/*
+ *  実行状態のタスク
+ *
+ *  実行状態のタスクがない場合には，NULL にする
+ */
+extern TCB			*p_runtsk;
+
+/*
+ *  最高優先順位タスク
+ *
+ *  タスク実行中は，runtsk と一致する
+ *  実行できる状態（実行状態または実行可能状態）のタスクがない場合には，
+ *  NULL にする
+ */
+extern TCB			*p_schedtsk;
+
+/*
+ *  レディキュー中の最高優先度
+ *
+ *  レディキューには実行可能状態のタスクのみを含むので，実行可能状態の
+ *  タスクの中での最高優先度を保持する
+ *  レディキューが空の時（実行可能状態のタスクが無い時）は TPRI_MINTASKにする
+ */
+extern PriorityType	nextpri;
+
+/*
+ *  レディキュー
+ *
+ *  レディキューは，実行できる状態のタスクを管理するためのキューである
+ *  レディキューは，優先度ごとのタスクキューで構成されている
+ *  タスクのTCBは，該当する優先度のキューに登録される
+ */
+extern QUEUE		ready_queue[TNUM_TPRI];
+
+/*
+ *  レディキューサーチのためのビットマップ
+ *
+ *  レディキューのサーチを効率よく行うために，優先度ごとのタスクキュー
+ *  にタスクが入っているかどうかを示すビットマップを用意している
+ *  ビットマップを使うことで，メモリアクセスの回数を減らすことができるが，
+ *  ビット操作命令が充実していないプロセッサで，優先度の段階数が少ない
+ *  場合には，ビットマップ操作のオーバーヘッドのために，逆に効率が落ち
+ *  る可能性もある
+ *
+ *  優先度が16段階であることを仮定しているため，uint16型としている
+ */
+extern uint16		ready_primap;
+
+/*
+ *  タスク初期化ブロックのエリア（kernel_mem.c）
+ */
+extern const TINIB	tinib_table[];
+
+/*
+ *  TCBのエリア（Os_Lcfg.c）
+ */
+extern TCB			tcb_table[];
+
+/*
+ *  タスク管理モジュールの初期化
+ */
+extern void task_initialize(void);
+
+/*
+ *  タスクの起動
+ *
+ *  対象タスク（p_tcbで指定したタスク）を起動する
+ *  （休止状態から実行できる状態に遷移させる）
+ *  タスクの起動時に必要な初期化を行う
+ */
+extern boolean make_active(TCB *p_tcb);
+
+/*
+ *  実行できる状態への移行
+ *
+ *  対象タスク（p_tcbで指定したタスク）を実行できる状態に遷移させる
+ *  対象タスクの優先度が，最高優先度タスク（schedtsk）の優先度よりも高
+ *  い場合には，対象タスクを新しい最高優先度タスクとし，それまでの最高
+ *  優先度タスクをレディキューの先頭に入れる
+ *  そうでない場合には，対象タスクをレディキューの末尾に入れる
+ *  対象タスクを最高優先度タスクとした場合に，TRUE を返す
+ */
+extern boolean make_runnable(TCB *p_tcb);
+
+/*
+ *  実行できる状態から他の状態への遷移
+ */
+extern void make_non_runnable(void);
+
+/*
+ *  最高優先順位タスクのサーチ
+ *
+ *  レディキュー中の最高優先順位のタスクをサーチする
+ *  レディキューが空の場合には，この関数を呼び出してはならない
+ */
+extern void search_schedtsk(void);
+
+/*
+ *  タスクのプリエンプト
+ *
+ *  自タスクを実行可能状態に移行させ，最高優先度タスクを実行状態にする
+ *  この関数から戻った後に，dispatch を呼び出して他のタスクへ切り替える
+ *  ことを想定している
+ */
+extern void preempt(void);
+
+/*
+ *  実行中のタスクをSUSPENDED状態にする
+ */
+extern void suspend(void);
+
+/*
+ *  リソース全解放
+ */
+extern void release_taskresources(TCB *p_tcb);
+
+/*
+ *  カウンタ全初期化
+ */
+extern void cancel_taskcounters(TCB *p_tcb);
+
+/*
+ *  満了処理専用タスクの起動
+ *
+ *  条件：OS割込み禁止状態で呼ばれる
+ */
+extern StatusType activate_task_action(OSAPCB *p_expire_osapcb, TaskType TaskID);
+
+/*
+ *  満了処理専用イベントのセット
+ *
+ *  条件：OS割込み禁止状態で呼ばれる
+ */
+extern StatusType set_event_action(OSAPCB *p_expire_osapcb, TaskType TaskID, EventMaskType Mask);
+
+/*
+ *  レディキューからタスクを削除する
+ */
+extern void remove_task_from_queue(TCB *p_tcb, PriorityType remove_task_pri);
+
+/*
+ *  レディキューに入っているタスクを休止状態にする
+ */
+extern void suspend_ready_task(TCB *p_tcb, PriorityType remove_task_pri);
+
+/*
+ *  自タスクの強制終了
+ */
+extern void force_terminate_task(TCB *p_tcb, StatusType terminate_cause, boolean term_osap_flag);
+
+/*
+ *  タスク不正終了時に呼ぶ関数
+ */
+extern void exit_task(void);
+
+/*
+ *  OSAP所属するタスクの強制終了
+ */
+extern void force_term_osap_task(OSAPCB *p_osapcb);
+
+#endif /* TOPPERS_TASK_H_ */
Index: /atk2-sc3_fl850f1l/kernel/task_manage.c
===================================================================
--- /atk2-sc3_fl850f1l/kernel/task_manage.c	(revision 117)
+++ /atk2-sc3_fl850f1l/kernel/task_manage.c	(revision 117)
@@ -0,0 +1,471 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2004-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: task_manage.c 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		タスク管理モジュール
+ */
+
+#include "kernel_impl.h"
+#include "check.h"
+#include "task.h"
+
+/*
+ *  トレースログマクロのデフォルト定義
+ */
+#ifndef LOG_TSKSTAT
+#define LOG_TSKSTAT(p_tcb)
+#endif /* LOG_TSKSTAT */
+
+#ifndef LOG_ACTTSK_ENTER
+#define LOG_ACTTSK_ENTER(tskid)
+#endif /* LOG_ACTTSK_ENTER */
+
+#ifndef LOG_ACTTSK_LEAVE
+#define LOG_ACTTSK_LEAVE(ercd)
+#endif /* LOG_ACTTSK_LEAVE */
+
+#ifndef LOG_TERTSK_ENTER
+#define LOG_TERTSK_ENTER()
+#endif /* LOG_TERTSK_ENTER */
+
+#ifndef LOG_TERTSK_LEAVE
+#define LOG_TERTSK_LEAVE(ercd)
+#endif /* LOG_TERTSK_LEAVE */
+
+#ifndef LOG_CHNTSK_ENTER
+#define LOG_CHNTSK_ENTER(tskid)
+#endif /* LOG_CHNTSK_ENTER */
+
+#ifndef LOG_CHNTSK_LEAVE
+#define LOG_CHNTSK_LEAVE(ercd)
+#endif /* LOG_CHNTSK_LEAVE */
+
+#ifndef LOG_SCHED_LEAVE
+#define LOG_SCHED_ENTER()
+#endif /* LOG_SCHED_LEAVE */
+
+#ifndef LOG_SCHED_LEAVE
+#define LOG_SCHED_LEAVE(ercd)
+#endif /* LOG_SCHED_LEAVE */
+
+#ifndef LOG_GETTID_ENTER
+#define LOG_GETTID_ENTER()
+#endif /* LOG_GETTID_ENTER */
+
+#ifndef LOG_GETTID_LEAVE
+#define LOG_GETTID_LEAVE(ercd, p_tskid)
+#endif /* LOG_GETTID_LEAVE */
+
+#ifndef LOG_GETTST_ENTER
+#define LOG_GETTST_ENTER(tskid)
+#endif /* LOG_GETTST_ENTER */
+
+#ifndef LOG_GETTST_LEAVE
+#define LOG_GETTST_LEAVE(ercd, p_state)
+#endif /* LOG_GETTST_LEAVE */
+
+
+/*
+ *  タスクの起動
+ */
+#ifdef TOPPERS_ActivateTask
+
+StatusType
+ActivateTask(TaskType TaskID)
+{
+	StatusType	ercd = E_OK;
+	TCB			*p_tcb;
+	OSAPCB		*p_osapcb;
+
+	LOG_ACTTSK_ENTER(TaskID);
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_ACTIVATETASK);
+	CHECK_ID(TaskID < tnum_task);
+	p_tcb = get_tcb(TaskID);
+	CHECK_RIGHT(p_tcb->p_tinib->acsbtmp);
+
+	p_osapcb = p_tcb->p_tinib->p_osapcb;
+	x_nested_lock_os_int();
+
+	/* 起動するタスク所属のOSAPの状態をチェック */
+	D_CHECK_ACCESS((p_osapcb->osap_stat == APPLICATION_ACCESSIBLE) ||
+				   ((p_osapcb->osap_stat == APPLICATION_RESTARTING) &&
+					(p_osapcb == p_runosap)));
+
+	if (p_tcb->tstat == SUSPENDED) {
+		if ((make_active(p_tcb) != FALSE) && (callevel_stat == TCL_TASK)) {
+			dispatch();
+		}
+	}
+	else {
+		S_D_CHECK_LIMIT(p_tcb->actcnt < p_tcb->p_tinib->maxact);
+
+		p_tcb->actcnt += 1U;
+	}
+
+  d_exit_no_errorhook:
+	x_nested_unlock_os_int();
+  exit_no_errorhook:
+	LOG_ACTTSK_LEAVE(ercd);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+  d_exit_errorhook:
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.tskid = TaskID;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_ActivateTask);
+	goto d_exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_ActivateTask */
+
+/*
+ *  自タスクの終了
+ */
+#ifdef TOPPERS_TerminateTask
+
+StatusType
+TerminateTask(void)
+{
+	StatusType ercd = E_OK;
+
+	LOG_TERTSK_ENTER();
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_TERMINATETASK);
+	CHECK_RESOURCE(p_runtsk->p_lastrescb == NULL);
+
+	x_nested_lock_os_int();
+	/*
+	 *  内部リソースの解放は優先度を下げるだけなので，ここでは
+	 *  何もしなくてよい
+	 */
+
+	suspend();
+
+	LOG_TERTSK_LEAVE(E_OK);
+	exit_and_dispatch();
+	ASSERT(0);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+	call_errorhook(ercd, OSServiceId_TerminateTask);
+	x_nested_unlock_os_int();
+#endif /* CFG_USE_ERRORHOOK */
+
+  exit_no_errorhook:
+	LOG_TERTSK_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_TerminateTask */
+
+/*
+ *  自タスクの終了とタスクの起動
+ */
+#ifdef TOPPERS_ChainTask
+
+StatusType
+ChainTask(TaskType TaskID)
+{
+	/*
+	 *  ここでの ercd の初期化は本来は不要であるが，コンパイラの警
+	 *  告メッセージを避けるために初期化している
+	 */
+	StatusType	ercd = E_OK;
+	TCB			*p_tcb;
+	OSAPCB		*p_osapcb;
+
+	LOG_CHNTSK_ENTER(TaskID);
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_CHAINTASK);
+	CHECK_RESOURCE(p_runtsk->p_lastrescb == NULL);
+	CHECK_ID(TaskID < tnum_task);
+	p_tcb = get_tcb(TaskID);
+	CHECK_RIGHT(p_tcb->p_tinib->acsbtmp);
+
+	p_osapcb = p_tcb->p_tinib->p_osapcb;
+	x_nested_lock_os_int();
+
+	/* 起動するタスク所属のOSAPの状態をチェック */
+	D_CHECK_ACCESS((p_osapcb->osap_stat == APPLICATION_ACCESSIBLE) ||
+				   ((p_osapcb->osap_stat == APPLICATION_RESTARTING) &&
+					(p_osapcb == p_runosap)));
+
+	if (p_tcb == p_runtsk) {
+		make_non_runnable();
+		(void) make_active(p_runtsk);
+	}
+	else {
+		/*
+		 *  エラー時に副作用が残らないように，エラーチェックは
+		 *  タスク終了処理の前に行う必要がある
+		 */
+		S_D_CHECK_LIMIT((p_tcb->tstat == SUSPENDED)
+						|| (p_tcb->actcnt < p_tcb->p_tinib->maxact));
+
+		suspend();
+
+		if (p_tcb->tstat == SUSPENDED) {
+			(void) make_active(p_tcb);
+		}
+		else {
+			p_tcb->actcnt += 1U;
+		}
+	}
+
+	LOG_CHNTSK_LEAVE(E_OK);
+	exit_and_dispatch();
+	ASSERT(0);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+  d_exit_errorhook:
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.tskid = TaskID;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_ChainTask);
+#endif /* CFG_USE_ERRORHOOK */
+
+  d_exit_no_errorhook:
+	x_nested_unlock_os_int();
+  exit_no_errorhook:
+	LOG_CHNTSK_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_ChainTask */
+
+/*
+ *  スケジューラの呼び出し
+ */
+#ifdef TOPPERS_Schedule
+
+StatusType
+Schedule(void)
+{
+	/*
+	 *  ここでの ercd の初期化は本来は不要であるが，コンパイラの警
+	 *  告メッセージを避けるために初期化している
+	 */
+	StatusType ercd = E_OK;
+
+	LOG_SCHED_ENTER();
+	CHECK_DISABLEDINT();
+	CHECK_CALLEVEL(CALLEVEL_SCHEDULE);
+	CHECK_RESOURCE(p_runtsk->p_lastrescb == NULL);
+
+	x_nested_lock_os_int();
+	if (p_runtsk->p_tinib->inipri > nextpri) {
+		p_runtsk->curpri = p_runtsk->p_tinib->inipri;
+		preempt();
+		dispatch();
+		p_runtsk->curpri = p_runtsk->p_tinib->exepri;
+	}
+
+  d_exit_no_errorhook:
+	x_nested_unlock_os_int();
+  exit_no_errorhook:
+	LOG_SCHED_LEAVE(ercd);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+	call_errorhook(ercd, OSServiceId_Schedule);
+	goto d_exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_Schedule */
+
+/*
+ *  実行状態のタスクIDの参照
+ */
+#ifdef TOPPERS_GetTaskID
+
+StatusType
+GetTaskID(TaskRefType TaskID)
+{
+	StatusType ercd = E_OK;
+
+	LOG_GETTID_ENTER();
+	CHECK_CALLEVEL(CALLEVEL_GETTASKID);
+	CHECK_PARAM_POINTER(TaskID);
+	CHECK_MEM_WRITE(TaskID, TaskType);
+	*TaskID = (p_runtsk == NULL) ? INVALID_TASK : TSKID(p_runtsk);
+
+  exit_no_errorhook:
+	LOG_GETTID_LEAVE(ercd, TaskID);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.p_tskid = TaskID;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_GetTaskID);
+	x_nested_unlock_os_int();
+	goto exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_GetTaskID */
+
+/*
+ *  タスク状態の参照
+ */
+#ifdef TOPPERS_GetTaskState
+
+StatusType
+GetTaskState(TaskType TaskID, TaskStateRefType State)
+{
+	StatusType	ercd = E_OK;
+	TCB			*p_tcb;
+	OSAPCB		*p_osapcb;
+
+	LOG_GETTST_ENTER(TaskID);
+	CHECK_CALLEVEL(CALLEVEL_GETTASKSTATE);
+	CHECK_ID(TaskID < tnum_task);
+	CHECK_PARAM_POINTER(State);
+	CHECK_MEM_WRITE(State, TaskStateType);
+	p_tcb = get_tcb(TaskID);
+	CHECK_RIGHT(p_tcb->p_tinib->acsbtmp);
+
+	p_osapcb = p_tcb->p_tinib->p_osapcb;
+	x_nested_lock_os_int();
+
+	/* 起動するタスク所属のOSAPの状態をチェック */
+	D_CHECK_ACCESS((p_osapcb->osap_stat == APPLICATION_ACCESSIBLE) ||
+				   ((p_osapcb->osap_stat == APPLICATION_RESTARTING) &&
+					(p_osapcb == p_runosap)));
+	*State = (p_tcb == p_runtsk) ? RUNNING : p_tcb->tstat;
+
+  d_exit_no_errorhook:
+	x_nested_unlock_os_int();
+  exit_no_errorhook:
+	LOG_GETTST_LEAVE(ercd, State);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  exit_errorhook:
+	x_nested_lock_os_int();
+  d_exit_errorhook:
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.tskid = TaskID;
+	_errorhook_par2.p_stat = State;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_GetTaskState);
+	goto d_exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+}
+
+#endif /* TOPPERS_GetTaskState */
+
+/*
+ *  満了処理専用タスクの起動
+ *
+ *  条件：OS割込み禁止状態で呼ばれる
+ */
+#ifdef TOPPERS_activate_task_action
+
+StatusType
+activate_task_action(OSAPCB *p_expire_osapcb, TaskType TaskID)
+{
+	StatusType	ercd = E_OK;
+	TCB			*p_tcb;
+	OSAPCB		*p_osapcb;
+
+	LOG_ACTTSK_ENTER(TaskID);
+	p_tcb = get_tcb(TaskID);
+
+	p_osapcb = p_tcb->p_tinib->p_osapcb;
+	/* 満了点所属のOSAP及び起動するタスク所属のOSAPの状態をチェック */
+	D_CHECK_ACCESS((p_osapcb->osap_stat == APPLICATION_ACCESSIBLE) || (p_expire_osapcb == p_osapcb));
+
+	if (p_tcb->tstat == SUSPENDED) {
+		(void) make_active(p_tcb);
+	}
+	else {
+		S_D_CHECK_LIMIT(p_tcb->actcnt < p_tcb->p_tinib->maxact);
+
+		p_tcb->actcnt += 1U;
+	}
+
+  d_exit_no_errorhook:
+	LOG_ACTTSK_LEAVE(ercd);
+	return(ercd);
+
+#ifdef CFG_USE_ERRORHOOK
+  d_exit_errorhook:
+#ifdef CFG_USE_PARAMETERACCESS
+	_errorhook_par1.tskid = TaskID;
+#endif /* CFG_USE_PARAMETERACCESS */
+	call_errorhook(ercd, OSServiceId_ActivateTask);
+	goto d_exit_no_errorhook;
+#endif /* CFG_USE_ERRORHOOK */
+
+}
+
+#endif /* TOPPERS_activate_task_action */
Index: /atk2-sc3_fl850f1l/library/histogram.c
===================================================================
--- /atk2-sc3_fl850f1l/library/histogram.c	(revision 117)
+++ /atk2-sc3_fl850f1l/library/histogram.c	(revision 117)
@@ -0,0 +1,266 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2006-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: histogram.c 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		実行時間分布集計モジュール
+ */
+
+#include "histogram.h"
+#include "target_timer.h"
+#include "target_test.h"
+
+/*
+ *  実行時間分布計測の数
+ */
+#ifndef TNUM_HIST
+#define TNUM_HIST		10
+#endif /* TNUM_HIST */
+
+/*
+ *  ターゲット依存部で設定変更するためのマクロ
+ */
+#ifndef HISTTIM                     /* 実行時間計測用の時刻のデータ型 */
+#define HISTTIM			SystemTimeUsType
+#endif /* HISTTIM */
+
+#ifndef HIST_GET_TIM                /* 実行時間計測用の現在時刻の取得 */
+#ifndef TOPPERS_SUPPORT_GET_UTM
+#error get_utm is not supported
+#endif /* TOPPERS_SUPPORT_GET_UTM */
+#define HIST_GET_TIM(p_time)	((void) get_utm(p_time))
+#endif /* HIST_GET_TIM */
+
+#ifndef HIST_CONV_TIM               /* 時刻の差から実行時間への変換 */
+#define HIST_CONV_TIM(time)		((uint32) (time))
+#endif /* HIST_CONV_TIM */
+
+#ifndef HIST_BM_HOOK                /* 実行時間計測直前に行うべき処理 */
+#define HIST_BM_HOOK()
+#endif /* HIST_BM_HOOK */
+
+LOCAL_INLINE void
+get_utm(HISTTIM *p_time)
+{
+#ifndef GET_UTIM
+	*p_time = (HISTTIM) get_tim_utime();
+#else /* GET_UTIM */
+	*p_time = (HISTTIM) GET_UTIM();
+#endif /* GET_UTIM */
+
+}
+
+/*
+ *  実行時間分布計測管理ブロック
+ */
+typedef struct histogram_control_block {
+	HISTTIM	begin_time;             /* 計測開始時刻 */
+	uint32	maxval;                 /* 分布を記録する最大時間 */
+	uint32	*histarea;              /* 分布を記録するメモリ領域 */
+	uint32	over;                   /* 最大時間を超えた度数 */
+	uint32	under;                  /* 時間の逆転が疑われる度数 */
+	boolean	initialized;            /* 初期化済みかどうかのフラグ */
+} HISTCB;
+
+/*
+ *  実行時間分布計測管理ブロックのエリア
+ */
+HISTCB histcb_table[TNUM_HIST];
+
+/*
+ *  実行時間分布計測IDの最小値と最大値
+ */
+#define TMIN_HISTID		1
+#define TMAX_HISTID		((TMIN_HISTID + TNUM_HIST) - 1)
+
+/*
+ *  実行時間分布計測の初期化
+ */
+boolean
+init_hist(ObjectIDType histid, uint32 maxval, uint32 *histarea)
+{
+	HISTCB	*p_histcb;
+	uint32	i;
+	boolean ret = TRUE;
+
+	/* 不正な分布計測IDの場合FALSEを返す */
+	if ((histid < TMIN_HISTID) || (histid > TMAX_HISTID)) {
+		ret = FALSE;
+	}
+	else {
+		p_histcb = &(histcb_table[histid - TMIN_HISTID]);
+
+		for (i = 0U; i <= maxval; i++) {
+			histarea[i] = 0U;
+		}
+		p_histcb->maxval = maxval;
+		p_histcb->histarea = histarea;
+		p_histcb->over = 0U;
+		p_histcb->under = 0U;
+		p_histcb->initialized = TRUE;
+	}
+	return(ret);
+}
+
+/*
+ *  実行時間計測の開始
+ */
+boolean
+begin_measure(ObjectIDType histid)
+{
+	HISTCB	*p_histcb;
+	boolean ret = TRUE;
+
+	/* 不正な分布計測IDの場合FALSEを返す */
+	if ((histid < TMIN_HISTID) || (histid > TMAX_HISTID)) {
+		ret = FALSE;
+	}
+	else {
+		p_histcb = &(histcb_table[histid - TMIN_HISTID]);
+
+		/* 初期化していない場合FALSEを返す */
+		if (p_histcb->initialized == FALSE)	{
+			ret = FALSE;
+		}
+		else {
+			HIST_BM_HOOK();
+			HIST_GET_TIM(&(p_histcb->begin_time));
+		}
+	}
+	return(ret);
+}
+
+/*
+ *  実行時間計測の終了
+ */
+boolean
+end_measure(ObjectIDType histid)
+{
+	HISTCB	*p_histcb;
+	HISTTIM	end_time;
+	uint32	val;
+	boolean ret = TRUE;
+
+	HIST_GET_TIM(&end_time);
+
+	/* 不正な分布計測IDの場合FALSEを返す */
+	if ((histid < TMIN_HISTID) || (histid > TMAX_HISTID)) {
+		ret = FALSE;
+	}
+	else {
+		p_histcb = &(histcb_table[histid - TMIN_HISTID]);
+
+		/* 初期化していない場合FALSEを返す */
+		if (p_histcb->initialized == FALSE)	{
+			ret = FALSE;
+		}
+		else {
+			val = HIST_CONV_TIM(end_time - p_histcb->begin_time);
+			if (val <= p_histcb->maxval) {
+				p_histcb->histarea[val]++;
+			}
+			else if (val <= ((uint32) 0x7fffffff)) {
+				p_histcb->over++;
+			}
+			else {
+				p_histcb->under++;
+			}
+		}
+	}
+	return(ret);
+}
+
+/*
+ *  実行時間分布計測の表示
+ */
+boolean
+print_hist(ObjectIDType histid)
+{
+	HISTCB	*p_histcb;
+	uint32	i;
+	boolean ret = TRUE;
+
+	/* 不正な分布計測IDの場合FALSEを返す */
+	if ((histid < TMIN_HISTID) || (histid > TMAX_HISTID)) {
+		ret = FALSE;
+	}
+	else {
+		p_histcb = &(histcb_table[histid - TMIN_HISTID]);
+
+		/* 初期化していない場合FALSEを返す */
+		if (p_histcb->initialized == FALSE)	{
+			ret = FALSE;
+		}
+		else {
+			for (i = 0U; i <= p_histcb->maxval; i++) {
+				if (p_histcb->histarea[i] > 0U) {
+#ifndef MEASURE_100_NANO
+					syslog_2(LOG_NOTICE, "%d : %d", i, p_histcb->histarea[i]);
+#else
+					syslog_3(LOG_NOTICE, "%d.%d : %d", i / 10, i % 10, p_histcb->histarea[i]);
+#endif /* MEASURE_100_NANO */
+				}
+			}
+			if (p_histcb->over > 0U) {
+				syslog_2(LOG_NOTICE, "> %d : %d", p_histcb->maxval, p_histcb->over);
+			}
+			if (p_histcb->under > 0U) {
+				syslog_1(LOG_NOTICE, "> 0x7fffffff : %d", p_histcb->under);
+			}
+		}
+	}
+
+	return(ret);
+}
Index: /atk2-sc3_fl850f1l/library/log_output.c
===================================================================
--- /atk2-sc3_fl850f1l/library/log_output.c	(revision 117)
+++ /atk2-sc3_fl850f1l/library/log_output.c	(revision 117)
@@ -0,0 +1,257 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: log_output.c 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		システムログのフォーマット出力
+ */
+
+#include "log_output.h"
+
+void
+_kernel_KernelLibrarySyslog(void *param)
+{
+#ifdef USE_KERNEL_LIBRARY_SYSLOG
+	KERLIBSLG_PRM *prm = (KERLIBSLG_PRM	*) param;
+
+	switch (prm->index) {
+	case KERLIBSLG_ID_SYSLOG_INITIALIZE:
+		_syslog_syslog_initialize();
+		break;
+
+	case KERLIBSLG_ID_SYSLOG_WRI_LOG:
+		prm->return_er = _syslog_syslog_wri_log(prm->prio, prm->p_const_syslog);
+		break;
+
+	case KERLIBSLG_ID_SYSLOG_MSK_LOG:
+		prm->return_er = _syslog_syslog_msk_log(prm->lowmask);
+		break;
+
+	case KERLIBSLG_ID_SYSLOG_PRINTF:
+		_syslog_syslog_printf(prm->p_format, prm->p_args, prm->outputc);
+		break;
+
+	case KERLIBSLG_ID_SYSLOG_PRINT:
+		_syslog_syslog_print(prm->p_const_syslog, prm->outputc);
+		break;
+
+	default:
+		/* 上記のケース以外の場合，処理は行わない */
+		break;
+	}
+#endif /* USE_KERNEL_LIBRARY_SYSLOG */
+	return;
+}
+
+/*
+ *  数値を文字列に変換時，uintptr型の数値の最大文字数
+ *  8進数，10進数，16進数へ変換を想定
+ *  動作例：
+ *  2Byteの場合：16進数：FFFF  →4文字
+ *             ：10進数：65535 →5文字
+ *             ： 8進数：177777→6文字
+ *               →CONVERT_BUFLENは最大の6文字を返す
+ *  計算パラメータ：
+ *  8U:1バイトのビット数
+ *  2U:3で割った際の余り1ビット，または2ビット分を含めるための補正値
+ *  3U:10進数へ変換時，最大3ビットで1文字になる
+ *     (4ビットだと2桁数字になるため)
+ *  計算例：
+ *  2Byteの場合
+ *     ビット数は2 * 8U = 16bit
+ *     単純に3で割ると，16 / 3 = 5となり，余り1ビット分の文字数が
+ *     切り捨てられてしまう
+ *     3で割る前に2ビット分足すことで，切捨てを防ぐ
+ *     (16 + 2) / 3 = 6文字
+ */
+#define CONVERT_BUFLEN	(((sizeof(uintptr) * 8U) + 2U) / 3U)
+
+/*
+ *  数値を文字列に変換
+ */
+static void
+convert(uintptr val, uint32 radix, const char8 *radchar,
+		uint32 width, boolean minus, boolean padzero, void (*outputc)(char8 c))
+{
+	char8	buf[CONVERT_BUFLEN];
+	uint32	i, j;
+
+	i = 0U;
+	do {
+		buf[i++] = radchar[val % radix];
+		val /= radix;
+	} while ((i < CONVERT_BUFLEN) && (val != 0U));
+
+	if ((minus != FALSE) && (width > 0U)) {
+		width -= 1U;
+	}
+	if ((minus != FALSE) && (padzero != FALSE)) {
+		(*outputc)('-');
+	}
+	for (j = i; j < width; j++) {
+		(*outputc)((char8) ((padzero != FALSE) ? '0' : ' '));
+	}
+	if ((minus != FALSE) && (padzero == FALSE)) {
+		(*outputc)('-');
+	}
+	while (i > 0U) {
+		(*outputc)(buf[--i]);
+	}
+}
+
+/*
+ *  文字列整形出力
+ */
+static const char8	raddec[] = "0123456789";
+static const char8	radhex[] = "0123456789abcdef";
+static const char8	radHEX[] = "0123456789ABCDEF";
+
+void
+_syslog_syslog_printf(const char8 *format, const uintptr *p_args, void (*outputc)(char8 c))
+{
+	char8		c;
+	uint32		width;
+	boolean		padzero;
+	sintptr		val;
+	const char8	*str;
+
+	while ((c = *format++) != '\0') {
+		if (c != '%') {
+			(*outputc)(c);
+			continue;
+		}
+
+		width = 0U;
+		padzero = FALSE;
+		if ((c = *format++) == '0') {
+			padzero = TRUE;
+			c = *format++;
+		}
+		while (('0' <= c) && (c <= '9')) {
+			width = (width * 10U) + (c - '0');
+			c = *format++;
+		}
+		if (c == 'l') {
+			c = *format++;
+		}
+		switch (c) {
+		case 'd':
+			val = (sintptr) (*p_args++);
+			if (val >= 0) {
+				convert((uintptr) val, 10U, raddec,
+						width, FALSE, padzero, outputc);
+			}
+			else {
+				convert((uintptr) (-val), 10U, raddec,
+						width, TRUE, padzero, outputc);
+			}
+			break;
+		case 'u':
+			val = (sintptr) (*p_args++);
+			convert((uintptr) val, 10U, raddec, width, FALSE, padzero, outputc);
+			break;
+		case 'x':
+		case 'p':
+			val = (sintptr) (*p_args++);
+			convert((uintptr) val, 16U, radhex, width, FALSE, padzero, outputc);
+			break;
+		case 'X':
+			val = (sintptr) (*p_args++);
+			convert((uintptr) val, 16U, radHEX, width, FALSE, padzero, outputc);
+			break;
+		case 'c':
+			(*outputc)((char8) (uintptr) (*p_args++));
+			break;
+		case 's':
+			str = (const char8 *) (*p_args++);
+			while ((c = *str++) != '\0') {
+				(*outputc)(c);
+			}
+			break;
+		case '%':
+			(*outputc)('%');
+			break;
+		case '\0':
+			format--;
+			break;
+		default:
+			/* 上記のケース以外の場合，処理は行わない */
+			break;
+		}
+	}
+}
+
+/*
+ *  ログ情報の出力
+ */
+void
+_syslog_syslog_print(const SYSLOG *p_syslog, void (*outputc)(char8 c))
+{
+	switch (p_syslog->logtype) {
+	case LOG_TYPE_COMMENT:
+		_syslog_syslog_printf((const char8 *) (p_syslog->loginfo[0]),
+							  &(p_syslog->loginfo[1]), outputc);
+		break;
+	case LOG_TYPE_ASSERT:
+		_syslog_syslog_printf("%s:%u: Assertion '%s' failed.",
+							  &(p_syslog->loginfo[0]), outputc);
+		break;
+	default:
+		/* 上記のケース以外の場合，出力は行わない */
+		break;
+	}
+}
Index: /atk2-sc3_fl850f1l/library/strerror.c
===================================================================
--- /atk2-sc3_fl850f1l/library/strerror.c	(revision 117)
+++ /atk2-sc3_fl850f1l/library/strerror.c	(revision 117)
@@ -0,0 +1,149 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: strerror.c 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		エラーメッセージ文字列を返す関数
+ */
+
+#include "Os.h"
+#include "t_stdlib.h"
+#include "Ioc.h"
+
+
+const char8 *
+atk2_strerror(StatusType ercd)
+{
+	/* エラー文字列テーブル	*/
+	static const char8	*ercd_tbl[] = {
+		"E_OK",
+		"E_OS_ACCESS",
+		"E_OS_CALLEVEL",
+		"E_OS_ID",
+		"E_OS_LIMIT",
+		"E_OS_NOFUNC",
+		"E_OS_RESOURCE",
+		"E_OS_STATE",
+		"E_OS_VALUE",
+		"E_OS_SERVICEID",
+		"E_OS_ILLEGAL_ADDRESS",
+		"E_OS_MISSINGEND",
+		"E_OS_DISABLEDINT",
+		"E_OS_STACKFAULT",
+		"E_OS_PROTECTION_MEMORY",
+		"E_OS_PROTECTION_TIME_TASK",
+		"E_OS_PROTECTION_TIME_ISR",
+		"E_OS_PROTECTION_ARRIVAL_TASK",
+		"E_OS_PROTECTION_ARRIVAL_ISR",
+		"E_OS_PROTECTION_LOCKED_RESOURCE",
+		"E_OS_PROTECTION_LOCKED_OSINT",
+		"E_OS_PROTECTION_LOCKED_ALLINT",
+		"E_OS_PROTECTION_EXCEPTION",
+		"E_OS_PROTECTION_FATAL",
+		"E_OS_MODE",
+		"E_OS_SHUTDOWN_FATAL",
+		"E_OS_PARAM_POINTER",
+		"E_OS_SYS_ASSERT_FATAL",
+		"E_OS_STACKINSUFFICIENT",
+		"unknown error"
+	};
+
+	StatusType			error;
+
+	if (ercd > (StatusType) ERRCODE_NUM) {
+		error = (StatusType) (ERRCODE_NUM + 1U);
+	}
+	else {
+		error = ercd;
+	}
+	return(ercd_tbl[error]);
+}
+
+
+const char8 *
+atk2_ioc_strerror(StatusType ercd)
+{
+	char8 *str;
+
+	switch (ercd) {
+	case IOC_E_OK:
+		str = "IOC_E_OK";
+		break;
+
+	case IOC_E_NOK:
+		str = "IOC_E_NOK";
+		break;
+
+	case IOC_E_LIMIT:
+		str = "IOC_E_LIMIT";
+		break;
+
+	case IOC_E_LOST_DATA:
+		str = "IOC_E_LOST_DATA";
+		break;
+
+	case IOC_E_NO_DATA:
+		str = "IOC_E_NO_DATA";
+		break;
+
+	default:
+		str = "unknown error";
+		break;
+	}
+
+	return(str);
+}
Index: /atk2-sc3_fl850f1l/library/t_perror.c
===================================================================
--- /atk2-sc3_fl850f1l/library/t_perror.c	(revision 117)
+++ /atk2-sc3_fl850f1l/library/t_perror.c	(revision 117)
@@ -0,0 +1,80 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: t_perror.c 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		エラーメッセージの出力
+ */
+
+#include "t_syslog.h"
+#include "t_stdlib.h"
+
+void
+t_perror(uint32 prio, const char8 *file, sint32 line, const char8 *expr, StatusType ercd)
+{
+	syslog_5(prio, "%s (%d) reported by '%s' in line %d of '%s'.",
+			 atk2_strerror(ercd), ercd, expr, line, file);
+
+}
+
+void
+t_ioc_perror(uint32 prio, const char8 *file, sint32 line, const char8 *expr, StatusType ercd)
+{
+	syslog_5(prio, "%s (%d) reported by '%s' in line %d of '%s'.",
+			 atk2_ioc_strerror(ercd), ercd, expr, line, file);
+
+}
Index: /atk2-sc3_fl850f1l/library/vasyslog.c
===================================================================
--- /atk2-sc3_fl850f1l/library/vasyslog.c	(revision 117)
+++ /atk2-sc3_fl850f1l/library/vasyslog.c	(revision 117)
@@ -0,0 +1,127 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: vasyslog.c 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		可変数引数のシステムログライブラリ
+ */
+#include "t_syslog.h"
+#include <stdarg.h>
+
+#ifndef TOPPERS_OMIT_SYSLOG
+
+void
+syslog(uint32 prio, const char8 *format, ...)
+{
+	SYSLOG	syslog;
+	va_list	ap;
+	uint32	i;
+	char8	c;
+	boolean	lflag;
+
+	syslog.logtype = LOG_TYPE_COMMENT;
+	syslog.loginfo[0] = (sintptr) format;
+	i = 1U;
+	va_start(ap, format);
+
+	while (((c = *format++) != '\0') && (i < TMAX_LOGINFO)) {
+		if (c != '%') {
+			continue;
+		}
+
+		lflag = FALSE;
+		c = *format++;
+		while (('0' <= c) && (c <= '9')) {
+			c = *format++;
+		}
+		if (c == 'l') {
+			lflag = TRUE;
+			c = *format++;
+		}
+		switch (c) {
+		case 'd':
+			syslog.loginfo[i++] = (lflag != FALSE) ? (sintptr) va_arg(ap, sint32)
+								  : (sintptr) va_arg(ap, sint32);
+			break;
+		case 'u':
+		case 'x':
+		case 'X':
+			syslog.loginfo[i++] = (lflag != FALSE) ? (sintptr) va_arg(ap, uint32)
+								  : (sintptr) va_arg(ap, uint32);
+			break;
+		case 'p':
+			syslog.loginfo[i++] = (sintptr) va_arg(ap, void *);
+			break;
+		case 'c':
+			syslog.loginfo[i++] = (sintptr) va_arg(ap, sint32);
+			break;
+		case 's':
+			syslog.loginfo[i++] = (sintptr) va_arg(ap, const char8 *);
+			break;
+		case '\0':
+			format--;
+			break;
+		default:
+			/* 上記のケース以外の場合，処理は行わない */
+			break;
+		}
+	}
+	va_end(ap);
+	(void) syslog_wri_log(prio, &syslog);
+}
+
+#endif /* TOPPERS_OMIT_SYSLOG */
Index: /atk2-sc3_fl850f1l/sample/Makefile
===================================================================
--- /atk2-sc3_fl850f1l/sample/Makefile	(revision 117)
+++ /atk2-sc3_fl850f1l/sample/Makefile	(revision 117)
@@ -0,0 +1,696 @@
+#
+#  TOPPERS ATK2
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+#      Automotive Kernel Version 2
+#
+#  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+#                              Toyohashi Univ. of Technology, JAPAN
+#  Copyright (C) 2006-2015 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+#  Copyright (C) 2011-2013 by Spansion LLC, USA
+#  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+#  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+#  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+#  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+#  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+#  Copyright (C) 2011-2015 by Witz Corporation
+#  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+#  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+#  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+#
+#  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+#  $Id: Makefile 187 2015-06-25 03:39:04Z t_ishikawa $
+#
+
+#
+#  ターゲットの指定（Makefile.targetで上書きされるのを防ぐため）
+#
+all:
+
+#
+#  ターゲット略称の定義
+#
+TARGET = @(TARGET)
+
+#
+#  プログラミング言語の定義
+#
+SRCLANG = @(SRCLANG)
+ifeq ($(SRCLANG),c++)
+  USE_CXX = true
+  CXXLIBS = -lstdc++ -lm -lc
+  CXXRTS = cxxrt.o newlibrt.o
+endif
+
+#
+#  ソースファイルのディレクトリの定義
+#
+SRCDIR = @(SRCDIR)
+
+#
+#  オブジェクトファイル名の拡張子の設定
+#
+OBJEXT = @(OBJEXT)
+
+#
+#  実行環境の定義（ターゲット依存に上書きされる場合がある）
+#
+DBGENV := @(DBGENV)
+
+#
+#  カーネルライブラリ（libkernel.a）のディレクトリ名
+#  （カーネルライブラリもmake対象にする時は，空に定義する）
+#
+KERNEL_LIB = @(KERNEL_LIB)
+
+#
+#  カーネルを関数単位でコンパイルするかどうかの定義
+#
+KERNEL_FUNCOBJS = @(KERNEL_FUNCOBJS)
+
+#
+#  トレースログを取得するかどうかの定義
+#
+ENABLE_TRACE = @(ENABLE_TRACE)
+
+#
+#  システムタイマ(タイマドライバ)を使用するかどうかの定義
+#
+ENABLE_SYS_TIMER = @(ENABLE_SYS_TIMER)
+
+#
+#  ハードウェアカウンタを無効にするかどうかの定義
+#
+OMIT_HW_COUNTER = @(OMIT_HW_COUNTER)
+
+#
+#  トレースログに関する設定
+#
+ifeq ($(ENABLE_TRACE),true)
+      ENABLE_SYS_TIMER = true
+      CDEFS := $(CDEFS) -DTOPPERS_ENABLE_TRACE
+      KERNEL_DIR := $(KERNEL_DIR) $(SRCDIR)/arch/logtrace
+      KERNEL_COBJS := $(KERNEL_COBJS) trace_config.o trace_dump.o
+endif
+
+#
+#  コンフィギュレーションファイルに関する定義
+#
+CFGNAME = @(CFGNAME)
+@(CFG_SERIAL)
+ifdef ENABLE_SYS_TIMER
+  CFGNAME := $(CFGNAME) target_timer
+endif
+ifndef OMIT_HW_COUNTER
+  CFGNAME := $(CFGNAME) target_hw_counter
+endif
+CFGNAME := $(CFGNAME) target_mem
+
+#
+#  ユーティリティプログラムの名称
+#
+PERL = @(PERL)
+CFG = @(CFG)
+
+#
+#  オブジェクトファイル名の定義
+#
+OBJNAME = atk2-sc3
+ifdef OBJEXT
+  OBJFILE = $(OBJNAME).$(OBJEXT)
+  CFG1_OUT = cfg1_out.$(OBJEXT)
+  CFG2_OUT = cfg2_out.$(OBJEXT)
+  CFG3_OUT = cfg3_out.$(OBJEXT)
+else
+  OBJFILE = $(OBJNAME)
+  CFG1_OUT = cfg1_out
+  CFG2_OUT = cfg2_out
+  CFG3_OUT = cfg3_out
+endif
+
+#
+#  ターゲット依存部のディレクトリの定義
+#
+TARGETDIR = $(SRCDIR)/target/$(TARGET)
+
+#
+#  ターゲット依存の定義のインクルード
+#
+include $(TARGETDIR)/Makefile.target
+
+#
+#  ジェネレータ関係の変数の定義
+#
+PASS2_TF = $(SRCDIR)/kernel/kernel.tf $(SRCDIR)/kernel/kernel_common.tf
+DEF_TABS = $(SRCDIR)/kernel/kernel.csv
+CFG_KERNEL = atk2
+CFG_TABS := --ini-file $(SRCDIR)/kernel/kernel.ini $(CFG_TABS)
+CFG_TABS := --api-table $(DEF_TABS) \
+			--cfg1-def-table $(SRCDIR)/kernel/kernel_def.csv $(CFG_TABS)
+CFG_OBJS := Os_Lcfg.o kernel_mem.o Ioc.o $(CFG_OBJS)
+CFG2_OUT_SRCS := Os_Lcfg.h Os_Lcfg.c Os_Cfg.h kernel_mem2.c Ioc.c Ioc.h $(CFG2_OUT_SRCS)
+CFG3_OUT_SRCS := kernel_mem3.c $(CFG3_OUT_SRCS)
+CFG2_OBJS := Os_Lcfg.o kernel_mem2.o Ioc.o $(CFG2_OBJS)
+CFG3_OBJS := Os_Lcfg.o kernel_mem3.o Ioc.o $(CFG3_OBJS)
+ifndef USE_CFG_PASS3
+	ALL_CFG_OBJS := $(CFG_OBJS) cfg1_out.o kernel_mem2.o $(ALL_CFG_OBJS)
+else
+	ALL_CFG_OBJS := $(CFG_OBJS) cfg1_out.o kernel_mem2.o kernel_mem3.o $(ALL_CFG_OBJS)
+endif
+
+#
+#  共通コンパイルオプションの定義
+#
+
+COPTS := $(COPTS) -g @(COPTS)
+ifndef OMIT_WARNING_ALL
+  COPTS := $(COPTS) -Wall -Wno-unused-label -Wpointer-arith
+endif
+ifndef OMIT_OPTIMIZATION
+  COPTS := $(COPTS) -O2
+endif
+CDEFS := $(CDEFS) @(CDEFS) -DUSE_KERNEL_LIBRARY_SYSLOG
+INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR)/arch -I$(SRCDIR) $(INCLUDES)
+LDFLAGS := $(LDFLAGS) @(LDFLAGS)
+CFG1_OUT_LDFLAGS := $(CFG1_OUT_LDFLAGS) @(LDFLAGS)
+CFG2_OUT_LDFLAGS := $(CFG2_OUT_LDFLAGS) @(LDFLAGS)
+CFG3_OUT_LDFLAGS := $(CFG3_OUT_LDFLAGS) @(LDFLAGS)
+LIBS := $(LIBS) $(CXXLIBS)
+CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES)
+
+#
+#  アプリケーションプログラムに関する定義
+#
+APPLNAME = @(APPLNAME)
+APPLDIR = @(APPLDIR)
+APPL_CFG_INPUT := $(foreach file,$(CFGNAME),$(file).arxml)
+
+APPL_DIR = $(APPLDIR) $(SRCDIR)/library
+APPL_ASMOBJS =
+ifdef USE_CXX
+  APPL_CXXOBJS = $(APPLNAME).o @(APPLOBJS)
+  APPL_COBJS =
+else
+  APPL_COBJS = $(APPLNAME).o @(APPLOBJS)
+endif
+APPL_CFLAGS =
+APPL_LIBS =
+ifdef APPLDIR
+  INCLUDES := $(INCLUDES) $(foreach dir,$(APPLDIR),-I$(dir))
+endif
+
+
+#
+#  システムモジュールに関する定義
+#
+SYSMOD_DIR := $(SYSMOD_DIR) $(SRCDIR)/sysmod $(SRCDIR)/library
+SYSMOD_ASMOBJS := $(SYSMOD_ASMOBJS)
+SYSMOD_COBJS := $(SYSMOD_COBJS) banner.o syslog.o serial.o \
+				log_output.o vasyslog.o t_perror.o strerror.o chkobj.o \
+				$(CXXRTS)
+SYSMOD_CFLAGS := $(SYSMOD_CFLAGS)
+SYSMOD_LIBS := $(SYSMOD_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)
+KERNEL_CFLAGS := $(KERNEL_CFLAGS) -I$(SRCDIR)/kernel
+ifdef OMIT_MAKEOFFSET
+  OFFSET_H =
+else
+  OFFSET_H = offset.h
+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) $(SYSMOD_DIR) $(APPL_DIR)
+vpath %.S $(KERNEL_DIR) $(SYSMOD_DIR) $(APPL_DIR)
+vpath %.arxml $(KERNEL_DIR) $(SYSMOD_DIR) $(APPL_DIR)
+
+#
+#  コンパイルのための変数の定義
+#
+KERNEL_LIB_OBJS = $(KERNEL_ASMOBJS) $(KERNEL_COBJS) $(KERNEL_LCOBJS)
+SYSMOD_OBJS = $(SYSMOD_ASMOBJS) $(SYSMOD_COBJS)
+APPL_OBJS = $(APPL_ASMOBJS) $(APPL_COBJS) $(APPL_CXXOBJS)
+ALL2_OBJS = $(START_OBJS) $(APPL_OBJS) $(SYSMOD_OBJS) $(CFG2_OBJS) \
+											$(END_OBJS) $(HIDDEN_OBJS)
+ALL_OBJS = $(START_OBJS) $(APPL_OBJS) $(SYSMOD_OBJS) $(CFG_OBJS) \
+											$(END_OBJS) $(HIDDEN_OBJS)
+ifdef KERNEL_LIB
+  ALL_LIBS = $(APPL_LIBS) $(SYSMOD_LIBS) -lkernel $(LIBS)
+  LIBS_DEP = $(filter %.a,$(ALL_LIBS)) $(KERNEL_LIB)/libkernel.a
+  LDFLAGS := $(LDFLAGS) -L$(KERNEL_LIB)
+  CFG2_OUT_LDFLAGS := $(CFG2_OUT_LDFLAGS) -L$(KERNEL_LIB)
+  CFG3_OUT_LDFLAGS := $(CFG3_OUT_LDFLAGS) -L$(KERNEL_LIB)
+else
+  ALL_LIBS = $(APPL_LIBS) $(SYSMOD_LIBS) libkernel.a $(LIBS)
+  LIBS_DEP = $(filter %.a,$(ALL_LIBS))
+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
+ifdef CFG3_OUT_LDSCRIPT
+  CFG3_OUT_LDFLAGS := $(CFG3_OUT_LDFLAGS) -T $(CFG3_OUT_LDSCRIPT)
+endif
+
+#
+#  オフセットファイル（offset.h）の生成規則
+#
+offset.h: $(APPL_CFG_INPUT) Os_Lcfg.timestamp $(SRCDIR)/kernel/genoffset.tf
+	$(CFG) --pass 3 --kernel $(CFG_KERNEL) $(INCLUDES) \
+				--rom-image cfg1_out.srec --symbol-table cfg1_out.syms \
+				-T $(OFFSET_TF) $(CFG_TABS) $(filter %.arxml,$^)
+
+#
+#  カーネルのコンフィギュレーションファイルの生成
+#
+cfg1_out.c: $(APPL_CFG_INPUT) $(SRCDIR)/kernel/kernel_def.csv
+	$(CFG) --pass 1 --kernel $(CFG_KERNEL) $(INCLUDES) $(CFG_TABS) $(filter %.arxml,$^)
+
+$(CFG2_OUT_SRCS): Os_Lcfg.timestamp
+Os_Lcfg.timestamp: $(APPL_CFG_INPUT) $(START_OBJS) cfg1_out.o $(END_OBJS) $(HIDDEN_OBJS) $(PASS2_TF) $(DEF_TABS)
+	$(LINK) $(CFLAGS) $(CFG1_OUT_LDFLAGS) -o $(CFG1_OUT) \
+						$(START_OBJS) cfg1_out.o $(END_OBJS)
+	$(NM) -n $(CFG1_OUT) > cfg1_out.syms
+	$(OBJCOPY) -O srec -S $(CFG1_OUT) cfg1_out.srec
+	$(CFG) --pass 2 --kernel $(CFG_KERNEL) $(INCLUDES) \
+				-T $(TARGETDIR)/target.tf $(CFG_TABS) $(filter %.arxml,$^)
+
+#  既存Os_Cfg.hとpass2で生成したOs_Cfg_tmp.hとの差分がある場合Os_Cfg.hを上書き
+	if ! cmp Os_Cfg.h Os_Cfg_tmp.h >/dev/null 2>&1 ; then \
+		mv Os_Cfg_tmp.h Os_Cfg.h ;\
+	else \
+		rm Os_Cfg_tmp.h ;\
+	fi
+ifdef KERNEL_LIB
+	if ! cmp Os_Cfg.h $(KERNEL_LIB)/Os_Cfg.h >/dev/null 2>&1 ; then \
+		echo Config files Os_Cfg.h and $(KERNEL_LIB)/Os_Cfg.h differ! ;\
+		diff -c Os_Cfg.h $(KERNEL_LIB)/Os_Cfg.h ;\
+		false;\
+	fi
+endif
+
+	touch -r Os_Lcfg.c Os_Lcfg.timestamp
+#
+#	パス3を使用する場合
+#
+ifdef USE_CFG_PASS3
+kernel_mem3.c: $(APPL_CFG_INPUT) Os_Lcfg.timestamp $(ALL2_OBJS) $(LIBS_DEP) $(SRCDIR)/kernel/kernel_mem.tf
+	$(LINK) $(CFLAGS) $(CFG2_OUT_LDFLAGS) -o $(CFG2_OUT) $(START_OBJS) \
+			$(APPL_OBJS) $(SYSMOD_OBJS) $(CFG2_OBJS) $(ALL_LIBS) $(END_OBJS)
+	$(NM) -n $(CFG2_OUT) > cfg2_out.syms
+	$(OBJCOPY) -O srec -S $(CFG2_OUT) cfg2_out.srec
+	rm -f $(CFG3_OUT_LDSCRIPT)
+	$(CFG) --pass 3 --kernel $(CFG_KERNEL) $(INCLUDES) \
+				--rom-image cfg2_out.srec --symbol-table cfg2_out.syms \
+				-T $(TARGETDIR)/target_opt.tf $(CFG_TABS) $(filter %.arxml,$^)
+	if ! [ -f $(CFG3_OUT_LDSCRIPT) ]; then \
+		sed "s/kernel_mem2\.o/kernel_mem3\.o/g" < $(CFG2_OUT_LDSCRIPT) \
+													> $(CFG3_OUT_LDSCRIPT); \
+	fi
+
+
+kernel_mem.c: $(APPL_CFG_INPUT) $(CFG3_OBJS) $(SRCDIR)/kernel/kernel_opt.tf $(LIBS_DEP)
+	$(LINK) $(CFLAGS) $(CFG3_OUT_LDFLAGS) -o $(CFG3_OUT) $(START_OBJS) \
+			$(APPL_OBJS) $(SYSMOD_OBJS) $(CFG3_OBJS) $(ALL_LIBS) $(END_OBJS)
+	$(NM) -n $(CFG3_OUT) > cfg3_out.syms
+	$(OBJCOPY) -O srec -S $(CFG3_OUT) cfg3_out.srec
+	rm -f $(LDSCRIPT)
+	$(CFG) --pass 4 --kernel $(CFG_KERNEL) $(INCLUDES) \
+				--rom-image cfg3_out.srec --symbol-table cfg3_out.syms \
+				-T $(TARGETDIR)/target_mem.tf $(CFG_TABS) $(filter %.arxml,$^)
+	if ! [ -f $(LDSCRIPT) ]; then \
+		sed "s/kernel_mem3\.o/kernel_mem\.o/g" < $(CFG3_OUT_LDSCRIPT) \
+															> $(LDSCRIPT); \
+	fi
+	sed -e '/_kernel_mo_/d' cfg3_out.syms | awk '{print $$1" "$$3}' > cfg3_out-tmp.syms
+	mv cfg3_out-tmp.syms cfg3_out.syms
+endif
+
+#
+#  パス3を使用しない場合
+#
+ifndef USE_CFG_PASS3
+kernel_mem.c: $(APPL_CFG_INPUT) $(CFG2_OBJS) $(SRCDIR)/kernel/kernel_mem.tf $(ATK2_SCHEMA) $(LIBS_DEP)
+	$(LINK) $(CFLAGS) $(CFG2_OUT_LDFLAGS) -o $(CFG2_OUT) $(START_OBJS) \
+			$(APPL_OBJS) $(SYSMOD_OBJS) $(CFG2_OBJS) $(ALL_LIBS) $(END_OBJS)
+	$(NM) -n $(CFG2_OUT) > cfg2_out.syms
+	$(OBJCOPY) -O srec -S $(CFG2_OUT) cfg2_out.srec
+	touch cfg3_out.tf
+	$(CFG) --pass 4 --kernel $(CFG_KERNEL) $(INCLUDES) \
+				--rom-image cfg2_out.srec --symbol-table cfg2_out.syms \
+				-T $(TARGETDIR)/target_mem.tf $(CFG_TABS) $(filter %.arxml,$^)
+	if ! [ -f $(LDSCRIPT) ]; then \
+		sed "s/kernel_mem2\.o/kernel_mem\.o/g" < $(CFG2_OUT_LDSCRIPT) \
+															> $(LDSCRIPT); \
+	fi
+	sed -e '/_kernel_mo_/d' cfg2_out.syms | awk '{print $$1" "$$3}' > cfg2_out-tmp.syms
+	mv cfg2_out-tmp.syms cfg2_out.syms
+endif
+
+
+#
+#  カーネルライブラリファイルの生成
+#
+libkernel.a: $(OFFSET_H) $(KERNEL_LIB_OBJS)
+	rm -f libkernel.a
+	$(AR) -rcs libkernel.a $(KERNEL_LIB_OBJS)
+	$(RANLIB) libkernel.a
+
+#
+#  特別な依存関係の定義
+#
+banner.o: Os_Lcfg.timestamp $(filter-out banner.o,$(ALL2_OBJS)) $(LIBS_DEP)
+
+#
+#  全体のリンク
+#
+$(OBJFILE): $(APPL_CFG_INPUT) Os_Lcfg.timestamp $(ALL_OBJS) $(LIBS_DEP)
+	$(LINK) $(CFLAGS) $(LDFLAGS) -o $(OBJFILE) $(START_OBJS) \
+			-Wl,-Map,$(OBJNAME).map \
+			$(APPL_OBJS) $(SYSMOD_OBJS) $(CFG_OBJS) $(ALL_LIBS) $(END_OBJS)
+	$(NM) -n $(OBJFILE) | awk '{print $$1" "$$3}' > $(OBJNAME).syms
+	$(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec
+ifndef USE_CFG_PASS3
+	diff cfg2_out.syms $(OBJNAME).syms
+else
+	diff cfg3_out.syms $(OBJNAME).syms
+endif
+	$(OBJDUMP) -d $(OBJFILE) > $(OBJNAME).dump
+
+#
+#  バイナリファイルの生成
+#
+$(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 $(OBJNAME).map
+	rm -f kernel_mem.c kernel_mem.h $(CFG3_OUT) cfg3_out.tf cfg3_out.syms cfg3_out.srec
+	rm -f $(CFG2_OUT) cfg2_out.tf cfg2_out.syms cfg2_out.srec
+	rm -f Os_Lcfg.timestamp $(CFG2_OUT_SRCS) $(CFG3_OUT_SRCS)
+	rm -f cfg1_out.c $(CFG1_OUT) cfg1_out.syms cfg1_out.srec
+	rm -f $(OBJNAME).dump
+	rm -f kernel.res
+ifndef KERNEL_LIB
+	rm -f libkernel.a
+endif
+	rm -f offset.h
+
+.PHONY: cleankernel
+cleankernel:
+	rm -rf $(KERNEL_LIB_OBJS)
+	rm -f offset.h
+
+.PHONY: cleandep
+cleandep:
+	if ! [ -f Makefile.depend ]; then \
+		rm -f Os_Lcfg.timestamp $(CFG2_OUT_SRCS); \
+		rm -f cfg1_out.c cfg1_out.o $(CFG1_OUT) cfg1_out.syms cfg1_out.srec; \
+		rm -f offset.h; \
+	fi
+	rm -f Makefile.depend
+
+.PHONY: realclean
+realclean: cleandep clean
+	rm -f $(REALCLEAN_FILES)
+
+#
+#  ジェネレータが生成したファイルのコンパイルルールと依存関係作成ルール
+#  の定義
+#
+#  ジェネレータが生成したファイルは，アプリケーションプログラム用，シス
+#  テムサービス用，カーネル用のすべてのオプションを付けてコンパイルする．
+#
+OS_LCFG_CFLAGS = $(APPL_CFLAGS) $(SYSMOD_CFLAGS) $(KERNEL_CFLAGS)
+
+$(ALL_CFG_OBJS): %.o: %.c
+	$(CC) -c $(CFLAGS) $(OS_LCFG_CFLAGS) $<
+
+$(ALL_CFG_OBJS:.o=.s): %.s: %.c
+	$(CC) -S $(CFLAGS) $(OS_LCFG_CFLAGS) $<
+
+$(ALL_CFG_OBJS:.o=.d): %.d: %.c
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
+		-O "$(CFLAGS) $(OS_LCFG_CFLAGS)" $< >> Makefile.depend
+
+#
+#  特殊な依存関係作成ルールの定義
+#
+cfg1_out.depend: $(APPL_CFG_INPUT)
+	@$(CFG) -M cfg1_out.c $(INCLUDES) $< >> Makefile.depend
+
+#
+#  依存関係ファイルの生成
+#
+.PHONY: gendepend
+gendepend:
+	@echo "Generating Makefile.depend."
+
+.PHONY: depend
+ifdef KERNEL_LIB
+depend: cleandep Os_Lcfg.timestamp gendepend \
+		cfg1_out.depend cfg1_out.d \
+		$(ALL2_OBJS:.o=.d)
+else
+depend: cleandep $(OFFSET_H) Os_Lcfg.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) $<
+
+$(SYSMOD_COBJS): %.o: %.c
+	$(CC) -c $(CFLAGS) $(SYSMOD_CFLAGS) $<
+
+$(SYSMOD_COBJS:.o=.s): %.s: %.c
+	$(CC) -S $(CFLAGS) $(SYSMOD_CFLAGS) $<
+
+$(SYSMOD_ASMOBJS): %.o: %.S
+	$(CC) -c $(CFLAGS) $(SYSMOD_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
+
+$(SYSMOD_COBJS:.o=.d): %.d: %.c
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
+		-O "$(CFLAGS) $(SYSMOD_CFLAGS)" $< >> Makefile.depend
+
+$(SYSMOD_ASMOBJS:.o=.d): %.d: %.S
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
+		-O "$(CFLAGS) $(SYSMOD_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: /atk2-sc3_fl850f1l/sample/Rte_Type.h
===================================================================
--- /atk2-sc3_fl850f1l/sample/Rte_Type.h	(revision 117)
+++ /atk2-sc3_fl850f1l/sample/Rte_Type.h	(revision 117)
@@ -0,0 +1,63 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2013-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2013-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2013-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2013-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2013-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2013-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: Rte_Type.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *  サンプル用ヘッダファイル(Rte_Type.hはRTEジェネレータが生成する)
+ */
+
+#ifndef RTE_TYPE_H
+#define RTE_TYPE_H
+
+#endif /* RTE_TYPE_H */
Index: /atk2-sc3_fl850f1l/sample/sample.h
===================================================================
--- /atk2-sc3_fl850f1l/sample/sample.h	(revision 117)
+++ /atk2-sc3_fl850f1l/sample/sample.h	(revision 117)
@@ -0,0 +1,119 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2011-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: sample.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		サンプルプログラムの共通ヘッダファイル
+ */
+
+#ifndef TOPPERS_SAMPLE_H
+#define TOPPERS_SAMPLE_H
+
+#include "Os.h"
+#include "t_syslog.h"
+#include "t_stdlib.h"
+#include "sysmod/serial.h"
+#include "sysmod/syslog.h"
+
+#include "sysmod/banner.h"
+#include "target_sysmod.h"
+#include "target_serial.h"
+
+/*
+ *  ターゲット依存の定義
+ */
+#include "target_test.h"
+
+/*
+ *  関数のプロトタイプ宣言
+ */
+#ifndef TOPPERS_MACRO_ONLY
+/*
+ *  APIエラーログマクロ
+ *
+ *  ErrorHookが有効の場合はErrorHookから
+ *  エラーログを出力し, ErrorHookが無効の場合は
+ *  以下のマクロよりエラーログ出力を行う
+ */
+#if defined(CFG_USE_ERRORHOOK)
+#define error_log(api)	(api)
+#else /* !defined( CFG_USE_ERRORHOOK ) */
+#define	error_log(api)										   \
+	{														   \
+		StatusType ercd;									   \
+		ercd = api;     /* 各API実行 */						   \
+		if (ercd != E_OK) {									   \
+			syslog(LOG_INFO, "Error:%d", atk2_strerror(ercd)); \
+		}													   \
+	}
+#endif /* defined( CFG_USE_ERRORHOOK ) */
+
+/*
+ *  パラメータ構造体の定義
+ *  信頼関数提供者がヘッダファイルで提供する
+ */
+struct parameter_struct {
+	sint32		*name1;
+	sint32		name2;
+	TaskType	task_no;
+	StatusType	ercd;
+	StatusType	return_value;   /* 返戻値は構造体に含む */
+};
+
+extern void TaskProk(uint8 task_no);
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_SAMPLE_H */
Index: /atk2-sc3_fl850f1l/sample/sample1.arxml
===================================================================
--- /atk2-sc3_fl850f1l/sample/sample1.arxml	(revision 117)
+++ /atk2-sc3_fl850f1l/sample/sample1.arxml	(revision 117)
@@ -0,0 +1,2172 @@
+<?xml version="1.0" encoding="EUC-JP"?>
+<!-- Generated by ABREX Ver. 1.1.0 -->
+<AUTOSAR xmlns="http://autosar.org/schema/r4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://autosar.org/schema/r4.0 AUTOSAR_4-0-3_STRICT.xsd">
+	<AR-PACKAGES>
+		<AR-PACKAGE>
+			<SHORT-NAME>ImplementationDataTypes</SHORT-NAME>
+			<ELEMENTS>
+				<IMPLEMENTATION-DATA-TYPE>
+					<SHORT-NAME>uint8</SHORT-NAME>
+					<CATEGORY>VALUE</CATEGORY>
+				</IMPLEMENTATION-DATA-TYPE>
+			</ELEMENTS>
+		</AR-PACKAGE>
+		<AR-PACKAGE>
+			<SHORT-NAME>Ecuc</SHORT-NAME>
+			<ELEMENTS>
+				<ECUC-MODULE-CONFIGURATION-VALUES>
+					<SHORT-NAME>Os</SHORT-NAME>
+					<DEFINITION-REF DEST="ECUC-MODULE-DEF">/AUTOSAR/EcucDefs/Os</DEFINITION-REF>
+					<ECUC-DEF-EDITION>4.2.0</ECUC-DEF-EDITION>
+					<IMPLEMENTATION-CONFIG-VARIANT>VARIANT-PRE-COMPILE</IMPLEMENTATION-CONFIG-VARIANT>
+					<CONTAINERS>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>OsInclude1</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsInclude</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsInclude/OsIncludeFileName</DEFINITION-REF>
+									<VALUE>sample1.h</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>OsInclude2</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsInclude</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsInclude/OsIncludeFileName</DEFINITION-REF>
+									<VALUE>sample2.h</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>OsOS</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsOS</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsStackMonitoring</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsUseGetServiceId</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsUseParameterAccess</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsScalabilityClass</DEFINITION-REF>
+									<VALUE>SC3</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsMemoryProtectionLevel</DEFINITION-REF>
+									<VALUE>Level2</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsViolationHandlingLevel</DEFINITION-REF>
+									<VALUE>Level2</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsStatus</DEFINITION-REF>
+									<VALUE>EXTENDED</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsHooks</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsHooks</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsHooks/OsErrorHook</DEFINITION-REF>
+											<VALUE>true</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsHooks/OsPostTaskHook</DEFINITION-REF>
+											<VALUE>true</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsHooks/OsPreTaskHook</DEFINITION-REF>
+											<VALUE>true</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsHooks/OsProtectionHook</DEFINITION-REF>
+											<VALUE>true</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsHooks/OsShutdownHook</DEFINITION-REF>
+											<VALUE>true</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsHooks/OsStartupHook</DEFINITION-REF>
+											<VALUE>true</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsHookStack</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsHookStack</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsHookStack/OsHookStackSize</DEFINITION-REF>
+											<VALUE>0x200U</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>TskLevelRes</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsResource</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsResource/OsResourceProperty</DEFINITION-REF>
+									<VALUE>STANDARD</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsResource/OsResourceAccessingApplication</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/NT_osap1</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>CntRes</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsResource</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsResource/OsResourceProperty</DEFINITION-REF>
+									<VALUE>STANDARD</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsResource/OsResourceAccessingApplication</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/NT_osap1</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>GroupRes</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsResource</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsResource/OsResourceProperty</DEFINITION-REF>
+									<VALUE>INTERNAL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsResource/OsResourceAccessingApplication</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/NT_osap1</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>SampleCnt</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsCounter</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterMaxAllowedValue</DEFINITION-REF>
+									<VALUE>99U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterMinCycle</DEFINITION-REF>
+									<VALUE>10</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterTicksPerBase</DEFINITION-REF>
+									<VALUE>10U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterType</DEFINITION-REF>
+									<VALUE>SOFTWARE</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>SampleCnt2</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsCounter</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterMaxAllowedValue</DEFINITION-REF>
+									<VALUE>99U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterMinCycle</DEFINITION-REF>
+									<VALUE>10</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterTicksPerBase</DEFINITION-REF>
+									<VALUE>10U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterType</DEFINITION-REF>
+									<VALUE>SOFTWARE</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>SampleCnt3</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsCounter</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterMaxAllowedValue</DEFINITION-REF>
+									<VALUE>99U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterMinCycle</DEFINITION-REF>
+									<VALUE>10</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterTicksPerBase</DEFINITION-REF>
+									<VALUE>10U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterType</DEFINITION-REF>
+									<VALUE>SOFTWARE</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>NonPriTask</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>8U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>1</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>NON</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>Task6</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>5U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>9</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackStartAddress</DEFINITION-REF>
+									<VALUE>stack_00</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>Task7</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>5U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>8</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackStartAddress</DEFINITION-REF>
+									<VALUE>stack_00</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAccessingApplication</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/NT_osap1</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>MainTask</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>1U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>14</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>NON</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskEventRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/MainEvt</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAccessingApplication</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/NT_osap1</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsTaskAutostart</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAutostart</DEFINITION-REF>
+									<REFERENCE-VALUES>
+										<ECUC-REFERENCE-VALUE>
+											<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAutostart/OsTaskAppModeRef</DEFINITION-REF>
+											<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/AppMode1</VALUE-REF>
+										</ECUC-REFERENCE-VALUE>
+										<ECUC-REFERENCE-VALUE>
+											<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAutostart/OsTaskAppModeRef</DEFINITION-REF>
+											<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/AppMode2</VALUE-REF>
+										</ECUC-REFERENCE-VALUE>
+										<ECUC-REFERENCE-VALUE>
+											<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAutostart/OsTaskAppModeRef</DEFINITION-REF>
+											<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/AppMode3</VALUE-REF>
+										</ECUC-REFERENCE-VALUE>
+									</REFERENCE-VALUES>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>HighPriorityTask</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>1U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>15</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>Task1</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>8U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>4</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskResourceRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/CntRes</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskResourceRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/TskLevelRes</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsTaskAutostart</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAutostart</DEFINITION-REF>
+									<REFERENCE-VALUES>
+										<ECUC-REFERENCE-VALUE>
+											<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAutostart/OsTaskAppModeRef</DEFINITION-REF>
+											<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/AppMode2</VALUE-REF>
+										</ECUC-REFERENCE-VALUE>
+									</REFERENCE-VALUES>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>Task2</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>1U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>7</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAccessingApplication</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/NT_osap2</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskResourceRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/CntRes</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskResourceRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/TskLevelRes</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskEventRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/T2Evt</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>MainCycArm</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm</DEFINITION-REF>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmCounterRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/MAIN_HW_COUNTER</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsAlarmAction</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction</DEFINITION-REF>
+									<SUB-CONTAINERS>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsAlarmSetEvent</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent/OsAlarmSetEventTaskRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/MainTask</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent/OsAlarmSetEventRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/MainEvt</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+									</SUB-CONTAINERS>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>ActTskArm</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm</DEFINITION-REF>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmCounterRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/MAIN_HW_COUNTER</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsAlarmAction</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction</DEFINITION-REF>
+									<SUB-CONTAINERS>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsAlarmActivateTask</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmActivateTask</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmActivateTask/OsAlarmActivateTaskRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task1</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+									</SUB-CONTAINERS>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>Task3</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>1U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>12</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskResourceRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/CntRes</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskEventRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/T3Evt</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsTaskAutostart</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAutostart</DEFINITION-REF>
+									<REFERENCE-VALUES>
+										<ECUC-REFERENCE-VALUE>
+											<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAutostart/OsTaskAppModeRef</DEFINITION-REF>
+											<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/AppMode3</VALUE-REF>
+										</ECUC-REFERENCE-VALUE>
+									</REFERENCE-VALUES>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>Task4</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>5U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>6</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAccessingApplication</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/NT_osap2</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskResourceRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/GroupRes</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskResourceRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/CntRes</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskResourceRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/TskLevelRes</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>scheduletable1</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableDuration</DEFINITION-REF>
+									<VALUE>60U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableRepeating</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableCounterRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/SchtblSampleCnt</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsScheduleTableExpiryPoint_0</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTblExpPointOffset</DEFINITION-REF>
+											<VALUE>10</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+									<SUB-CONTAINERS>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsScheduleTableTaskActivation_0</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableTaskActivation</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableTaskActivation/OsScheduleTableActivateTaskRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task10</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsScheduleTableTaskActivation_1</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableTaskActivation</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableTaskActivation/OsScheduleTableActivateTaskRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task11</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsScheduleTableTaskActivation_2</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableTaskActivation</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableTaskActivation/OsScheduleTableActivateTaskRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task12</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+									</SUB-CONTAINERS>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsScheduleTableExpiryPoint_1</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTblExpPointOffset</DEFINITION-REF>
+											<VALUE>20</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+									<SUB-CONTAINERS>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsScheduleTableEventSetting_0</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting/OsScheduleTableSetEventRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/T10Evt</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting/OsScheduleTableSetEventTaskRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task10</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsScheduleTableEventSetting_1</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting/OsScheduleTableSetEventRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/T11Evt</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting/OsScheduleTableSetEventTaskRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task11</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsScheduleTableEventSetting_2</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting/OsScheduleTableSetEventRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/T12Evt</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting/OsScheduleTableSetEventTaskRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task12</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+									</SUB-CONTAINERS>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsScheduleTableSync</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableSync</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-TEXTUAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableSync/OsScheduleTblSyncStrategy</DEFINITION-REF>
+											<VALUE>NONE</VALUE>
+										</ECUC-TEXTUAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>Task5</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>5U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>9</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskResourceRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/GroupRes</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskResourceRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/CntRes</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskResourceRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/TskLevelRes</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>scheduletable2</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableDuration</DEFINITION-REF>
+									<VALUE>50U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableRepeating</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableCounterRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/SchtblSampleCnt</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsScheduleTableExpiryPoint_0</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTblExpPointOffset</DEFINITION-REF>
+											<VALUE>20</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+									<SUB-CONTAINERS>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsScheduleTableTaskActivation_0</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableTaskActivation</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableTaskActivation/OsScheduleTableActivateTaskRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task12</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsScheduleTableTaskActivation_1</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableTaskActivation</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableTaskActivation/OsScheduleTableActivateTaskRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task11</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+									</SUB-CONTAINERS>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsScheduleTableExpiryPoint_1</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTblExpPointOffset</DEFINITION-REF>
+											<VALUE>30</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+									<SUB-CONTAINERS>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsScheduleTableEventSetting_0</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting/OsScheduleTableSetEventRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/T12Evt</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting/OsScheduleTableSetEventTaskRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task12</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+									</SUB-CONTAINERS>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsScheduleTableExpiryPoint_2</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTblExpPointOffset</DEFINITION-REF>
+											<VALUE>40</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+									<SUB-CONTAINERS>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsScheduleTableEventSetting_0</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting/OsScheduleTableSetEventRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/T11Evt</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableExpiryPoint/OsScheduleTableEventSetting/OsScheduleTableSetEventTaskRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task11</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+									</SUB-CONTAINERS>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsScheduleTableSync</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableSync</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-TEXTUAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsScheduleTable/OsScheduleTableSync/OsScheduleTblSyncStrategy</DEFINITION-REF>
+											<VALUE>NONE</VALUE>
+										</ECUC-TEXTUAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>SetEvtArm</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm</DEFINITION-REF>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmCounterRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/MAIN_HW_COUNTER</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsAlarmAction</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction</DEFINITION-REF>
+									<SUB-CONTAINERS>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsAlarmSetEvent</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent/OsAlarmSetEventTaskRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task3</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent/OsAlarmSetEventRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/T3Evt</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+									</SUB-CONTAINERS>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>SampleAlm1</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm</DEFINITION-REF>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmCounterRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/SampleCnt2</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsAlarmAction</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction</DEFINITION-REF>
+									<SUB-CONTAINERS>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsAlarmIncrementCounter</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmIncrementCounter</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmIncrementCounter/OsAlarmIncrementCounterRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/SampleCnt3</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+									</SUB-CONTAINERS>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsAlarmAutostart</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAlarmTime</DEFINITION-REF>
+											<VALUE>10U</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmCycleTime</DEFINITION-REF>
+											<VALUE>10U</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-TEXTUAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAutostartType</DEFINITION-REF>
+											<VALUE>ABSOLUTE</VALUE>
+										</ECUC-TEXTUAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+									<REFERENCE-VALUES>
+										<ECUC-REFERENCE-VALUE>
+											<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAppModeRef</DEFINITION-REF>
+											<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/AppMode1</VALUE-REF>
+										</ECUC-REFERENCE-VALUE>
+										<ECUC-REFERENCE-VALUE>
+											<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAppModeRef</DEFINITION-REF>
+											<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/AppMode2</VALUE-REF>
+										</ECUC-REFERENCE-VALUE>
+										<ECUC-REFERENCE-VALUE>
+											<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAppModeRef</DEFINITION-REF>
+											<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/AppMode3</VALUE-REF>
+										</ECUC-REFERENCE-VALUE>
+									</REFERENCE-VALUES>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>SchtblSampleCnt</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsCounter</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterMaxAllowedValue</DEFINITION-REF>
+									<VALUE>99U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterMinCycle</DEFINITION-REF>
+									<VALUE>10</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterTicksPerBase</DEFINITION-REF>
+									<VALUE>10U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterType</DEFINITION-REF>
+									<VALUE>SOFTWARE</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>SampleAlm2</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm</DEFINITION-REF>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmCounterRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/SampleCnt3</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsAlarmAction</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction</DEFINITION-REF>
+									<SUB-CONTAINERS>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsAlarmSetEvent</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent/OsAlarmSetEventTaskRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/MainTask</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent/OsAlarmSetEventRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/MainEvt</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+									</SUB-CONTAINERS>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsAlarmAutostart</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAlarmTime</DEFINITION-REF>
+											<VALUE>10U</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmCycleTime</DEFINITION-REF>
+											<VALUE>10U</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-TEXTUAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAutostartType</DEFINITION-REF>
+											<VALUE>ABSOLUTE</VALUE>
+										</ECUC-TEXTUAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+									<REFERENCE-VALUES>
+										<ECUC-REFERENCE-VALUE>
+											<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAppModeRef</DEFINITION-REF>
+											<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/AppMode1</VALUE-REF>
+										</ECUC-REFERENCE-VALUE>
+										<ECUC-REFERENCE-VALUE>
+											<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAppModeRef</DEFINITION-REF>
+											<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/AppMode2</VALUE-REF>
+										</ECUC-REFERENCE-VALUE>
+										<ECUC-REFERENCE-VALUE>
+											<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAppModeRef</DEFINITION-REF>
+											<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/AppMode3</VALUE-REF>
+										</ECUC-REFERENCE-VALUE>
+									</REFERENCE-VALUES>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>Task10</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>1U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>13</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>NON</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskEventRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/T10Evt</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>Task11</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>1U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>13</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>NON</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskEventRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/T11Evt</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>Task12</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>1U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>13</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>NON</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskEventRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/T12Evt</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>Task13</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>5U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>9</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackStartAddress</DEFINITION-REF>
+									<VALUE>stack_1</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackStartAddress</DEFINITION-REF>
+									<VALUE>stack_2</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>Task14</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>5U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>8</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackStartAddress</DEFINITION-REF>
+									<VALUE>stack_1</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackStartAddress</DEFINITION-REF>
+									<VALUE>stack_2</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>IocTask1</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>1U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>9</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAccessingApplication</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/NT_osap2</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>IocTask2</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>1U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>9</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskAccessingApplication</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/NT_osap1</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>IocTask3</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>1U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>9</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>IocTask4</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>1U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>9</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>AppMode1</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAppMode</DEFINITION-REF>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>AppMode2</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAppMode</DEFINITION-REF>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>AppMode3</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAppMode</DEFINITION-REF>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>MainEvt</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsEvent</DEFINITION-REF>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>T2Evt</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsEvent</DEFINITION-REF>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>T3Evt</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsEvent</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsEvent/OsEventMask</DEFINITION-REF>
+									<VALUE>65536</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>T10Evt</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsEvent</DEFINITION-REF>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>T11Evt</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsEvent</DEFINITION-REF>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>T12Evt</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsEvent</DEFINITION-REF>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>KT_osap1</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsTrusted</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/MainTask</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/NonPriTask</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task6</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task7</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/IocTask3</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppMemoryModuleRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/banner</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppMemoryModuleRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/log_output</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppMemoryModuleRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/sample1</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsApplicationHooks</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppErrorHook</DEFINITION-REF>
+											<VALUE>false</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppShutdownHook</DEFINITION-REF>
+											<VALUE>true</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppStartupHook</DEFINITION-REF>
+											<VALUE>true</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>tfnt1</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction/OsTrustedFunctionStackSize</DEFINITION-REF>
+											<VALUE>32</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-TEXTUAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-FUNCTION-NAME-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction/OsTrustedFunctionName</DEFINITION-REF>
+											<VALUE>TRUSTED_tfnt1</VALUE>
+										</ECUC-TEXTUAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>tfnt2</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction/OsTrustedFunctionStackSize</DEFINITION-REF>
+											<VALUE>32</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-TEXTUAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-FUNCTION-NAME-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction/OsTrustedFunctionName</DEFINITION-REF>
+											<VALUE>TRUSTED_tfnt2</VALUE>
+										</ECUC-TEXTUAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>tfnt3</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction/OsTrustedFunctionStackSize</DEFINITION-REF>
+											<VALUE>32</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-TEXTUAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-FUNCTION-NAME-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction/OsTrustedFunctionName</DEFINITION-REF>
+											<VALUE>TRUSTED_tfnt3</VALUE>
+										</ECUC-TEXTUAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>tfnt4</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction/OsTrustedFunctionStackSize</DEFINITION-REF>
+											<VALUE>32</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-TEXTUAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-FUNCTION-NAME-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction/OsTrustedFunctionName</DEFINITION-REF>
+											<VALUE>TRUSTED_tfnt4</VALUE>
+										</ECUC-TEXTUAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>actioctask3</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction/OsTrustedFunctionStackSize</DEFINITION-REF>
+											<VALUE>32</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-TEXTUAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-FUNCTION-NAME-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction/OsTrustedFunctionName</DEFINITION-REF>
+											<VALUE>TRUSTED_actioctask3</VALUE>
+										</ECUC-TEXTUAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>KT_osap2</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsTrusted</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/IocTask4</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsApplicationHooks</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppErrorHook</DEFINITION-REF>
+											<VALUE>false</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppShutdownHook</DEFINITION-REF>
+											<VALUE>false</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppStartupHook</DEFINITION-REF>
+											<VALUE>false</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>actioctask4</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction/OsTrustedFunctionStackSize</DEFINITION-REF>
+											<VALUE>32</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-TEXTUAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-FUNCTION-NAME-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationTrustedFunction/OsTrustedFunctionName</DEFINITION-REF>
+											<VALUE>TRUSTED_actioctask4</VALUE>
+										</ECUC-TEXTUAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>NT_osap1</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsTrusted</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppCounterRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/SampleCnt</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppCounterRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/SchtblSampleCnt</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppCounterRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/SampleCnt2</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppCounterRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/SampleCnt3</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/HighPriorityTask</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task1</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task2</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task3</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task4</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task5</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task10</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task11</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task12</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task13</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task14</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/IocTask1</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppAlarmRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/MainCycArm</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppAlarmRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/ActTskArm</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppAlarmRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/SetEvtArm</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppAlarmRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/SampleAlm1</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppAlarmRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/SampleAlm2</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppScheduleTableRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/scheduletable1</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppScheduleTableRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/scheduletable2</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsApplicationHooks</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppErrorHook</DEFINITION-REF>
+											<VALUE>false</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppShutdownHook</DEFINITION-REF>
+											<VALUE>false</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppStartupHook</DEFINITION-REF>
+											<VALUE>false</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>OsLinkSection</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsLinkSection</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsLinkSection/OsLinkSectionName</DEFINITION-REF>
+									<VALUE>.stack_section</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsLinkSection/OsLinkSectionMemoryRegionRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/RAM</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>banner</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsMemoryModule</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemoryModule/OsMemoryModuleExport</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemoryModule/OsMemoryModuleName</DEFINITION-REF>
+									<VALUE>banner.o</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>log_output</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsMemoryModule</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemoryModule/OsMemoryModuleExport</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemoryModule/OsMemoryModuleName</DEFINITION-REF>
+									<VALUE>log_output.o</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>sample1</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsMemoryModule</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemoryModule/OsMemoryModuleExport</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemoryModule/OsMemoryModuleName</DEFINITION-REF>
+									<VALUE>sample1.o</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>Task8</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>5U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>8</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x250U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>Task9</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskActivation</DEFINITION-REF>
+									<VALUE>5U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskPriority</DEFINITION-REF>
+									<VALUE>8</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskStackSize</DEFINITION-REF>
+									<VALUE>0x300U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSystemStackSize</DEFINITION-REF>
+									<VALUE>0x200U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskSchedule</DEFINITION-REF>
+									<VALUE>FULL</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>ActOtherOSAPTskArmCnt</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsCounter</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterMaxAllowedValue</DEFINITION-REF>
+									<VALUE>99U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterMinCycle</DEFINITION-REF>
+									<VALUE>10</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterTicksPerBase</DEFINITION-REF>
+									<VALUE>10U</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterType</DEFINITION-REF>
+									<VALUE>SOFTWARE</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>ActOtherOSAPTskArm</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm</DEFINITION-REF>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmCounterRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/ActOtherOSAPTskArmCnt</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsAlarmAction</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction</DEFINITION-REF>
+									<SUB-CONTAINERS>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>OsAlarmActivateTask</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmActivateTask</DEFINITION-REF>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAction/OsAlarmActivateTask/OsAlarmActivateTaskRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task4</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+									</SUB-CONTAINERS>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsAlarmAutostart</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAlarmTime</DEFINITION-REF>
+											<VALUE>5U</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmCycleTime</DEFINITION-REF>
+											<VALUE>0U</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-TEXTUAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAutostartType</DEFINITION-REF>
+											<VALUE>ABSOLUTE</VALUE>
+										</ECUC-TEXTUAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+									<REFERENCE-VALUES>
+										<ECUC-REFERENCE-VALUE>
+											<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAppModeRef</DEFINITION-REF>
+											<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/AppMode1</VALUE-REF>
+										</ECUC-REFERENCE-VALUE>
+										<ECUC-REFERENCE-VALUE>
+											<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAppModeRef</DEFINITION-REF>
+											<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/AppMode2</VALUE-REF>
+										</ECUC-REFERENCE-VALUE>
+										<ECUC-REFERENCE-VALUE>
+											<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsAlarm/OsAlarmAutostart/OsAlarmAppModeRef</DEFINITION-REF>
+											<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/AppMode3</VALUE-REF>
+										</ECUC-REFERENCE-VALUE>
+									</REFERENCE-VALUES>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>NT_osap2</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsTrusted</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task8</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/Task9</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/IocTask2</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppCounterRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/ActOtherOSAPTskArmCnt</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppAlarmRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/ActOtherOSAPTskArm</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsApplicationHooks</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppErrorHook</DEFINITION-REF>
+											<VALUE>true</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppShutdownHook</DEFINITION-REF>
+											<VALUE>true</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppStartupHook</DEFINITION-REF>
+											<VALUE>true</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>IOC</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsIoc</DEFINITION-REF>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>IOC_QUE</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocBufferLength</DEFINITION-REF>
+											<VALUE>3</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+									<SUB-CONTAINERS>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>IOC_QUE_DATA</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties</DEFINITION-REF>
+											<PARAMETER-VALUES>
+												<ECUC-TEXTUAL-PARAM-VALUE>
+													<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties/OsIocInitValue</DEFINITION-REF>
+													<VALUE>1</VALUE>
+												</ECUC-TEXTUAL-PARAM-VALUE>
+											</PARAMETER-VALUES>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-FOREIGN-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties/OsIocDataTypeRef</DEFINITION-REF>
+													<VALUE-REF DEST="IMPLEMENTATION-DATA-TYPE">/ImplementationDataTypes/uint8</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>IOC_QUE_RCV</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocReceiverProperties</DEFINITION-REF>
+											<PARAMETER-VALUES>
+												<ECUC-TEXTUAL-PARAM-VALUE>
+													<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocReceiverProperties/OsIocFunctionImplementationKind</DEFINITION-REF>
+													<VALUE>FUNCTION</VALUE>
+												</ECUC-TEXTUAL-PARAM-VALUE>
+											</PARAMETER-VALUES>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocReceiverProperties/OsIocReceivingOsApplicationRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/NT_osap2</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>IOC_QUE_SND0</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties</DEFINITION-REF>
+											<PARAMETER-VALUES>
+												<ECUC-NUMERICAL-PARAM-VALUE>
+													<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties/OsIocSenderId</DEFINITION-REF>
+													<VALUE>0</VALUE>
+												</ECUC-NUMERICAL-PARAM-VALUE>
+												<ECUC-TEXTUAL-PARAM-VALUE>
+													<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties/OsIocFunctionImplementationKind</DEFINITION-REF>
+													<VALUE>FUNCTION</VALUE>
+												</ECUC-TEXTUAL-PARAM-VALUE>
+											</PARAMETER-VALUES>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties/OsIocSendingOsApplicationRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/NT_osap1</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>IOC_QUE_SND1</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties</DEFINITION-REF>
+											<PARAMETER-VALUES>
+												<ECUC-NUMERICAL-PARAM-VALUE>
+													<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties/OsIocSenderId</DEFINITION-REF>
+													<VALUE>1</VALUE>
+												</ECUC-NUMERICAL-PARAM-VALUE>
+												<ECUC-TEXTUAL-PARAM-VALUE>
+													<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties/OsIocFunctionImplementationKind</DEFINITION-REF>
+													<VALUE>FUNCTION</VALUE>
+												</ECUC-TEXTUAL-PARAM-VALUE>
+											</PARAMETER-VALUES>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties/OsIocSendingOsApplicationRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/KT_osap1</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+									</SUB-CONTAINERS>
+								</ECUC-CONTAINER-VALUE>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>IOC_DEQUE</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication</DEFINITION-REF>
+									<SUB-CONTAINERS>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>IOC_DEQUE_DATA0</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties</DEFINITION-REF>
+											<PARAMETER-VALUES>
+												<ECUC-NUMERICAL-PARAM-VALUE>
+													<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties/OsIocDataPropertyIndex</DEFINITION-REF>
+													<VALUE>0</VALUE>
+												</ECUC-NUMERICAL-PARAM-VALUE>
+												<ECUC-TEXTUAL-PARAM-VALUE>
+													<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties/OsIocInitValue</DEFINITION-REF>
+													<VALUE>0U</VALUE>
+												</ECUC-TEXTUAL-PARAM-VALUE>
+											</PARAMETER-VALUES>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-FOREIGN-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties/OsIocDataTypeRef</DEFINITION-REF>
+													<VALUE-REF DEST="IMPLEMENTATION-DATA-TYPE">/ImplementationDataTypes/uint8</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>IOC_DEQUE_DATA1</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties</DEFINITION-REF>
+											<PARAMETER-VALUES>
+												<ECUC-NUMERICAL-PARAM-VALUE>
+													<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties/OsIocDataPropertyIndex</DEFINITION-REF>
+													<VALUE>1</VALUE>
+												</ECUC-NUMERICAL-PARAM-VALUE>
+												<ECUC-TEXTUAL-PARAM-VALUE>
+													<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties/OsIocInitValue</DEFINITION-REF>
+													<VALUE>10U</VALUE>
+												</ECUC-TEXTUAL-PARAM-VALUE>
+											</PARAMETER-VALUES>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-FOREIGN-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties/OsIocDataTypeRef</DEFINITION-REF>
+													<VALUE-REF DEST="IMPLEMENTATION-DATA-TYPE">/ImplementationDataTypes/uint8</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>IOC_DEQUE_DATA2</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties</DEFINITION-REF>
+											<PARAMETER-VALUES>
+												<ECUC-NUMERICAL-PARAM-VALUE>
+													<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties/OsIocDataPropertyIndex</DEFINITION-REF>
+													<VALUE>2</VALUE>
+												</ECUC-NUMERICAL-PARAM-VALUE>
+												<ECUC-TEXTUAL-PARAM-VALUE>
+													<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties/OsIocInitValue</DEFINITION-REF>
+													<VALUE>20U</VALUE>
+												</ECUC-TEXTUAL-PARAM-VALUE>
+											</PARAMETER-VALUES>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-FOREIGN-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocDataProperties/OsIocDataTypeRef</DEFINITION-REF>
+													<VALUE-REF DEST="IMPLEMENTATION-DATA-TYPE">/ImplementationDataTypes/uint8</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>IOC_DEQUE_RCV</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocReceiverProperties</DEFINITION-REF>
+											<PARAMETER-VALUES>
+												<ECUC-TEXTUAL-PARAM-VALUE>
+													<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocReceiverProperties/OsIocFunctionImplementationKind</DEFINITION-REF>
+													<VALUE>FUNCTION</VALUE>
+												</ECUC-TEXTUAL-PARAM-VALUE>
+											</PARAMETER-VALUES>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocReceiverProperties/OsIocReceivingOsApplicationRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/KT_osap2</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+										<ECUC-CONTAINER-VALUE>
+											<SHORT-NAME>IOC_DEQUE_SND</SHORT-NAME>
+											<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties</DEFINITION-REF>
+											<PARAMETER-VALUES>
+												<ECUC-TEXTUAL-PARAM-VALUE>
+													<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties/OsIocFunctionImplementationKind</DEFINITION-REF>
+													<VALUE>FUNCTION</VALUE>
+												</ECUC-TEXTUAL-PARAM-VALUE>
+											</PARAMETER-VALUES>
+											<REFERENCE-VALUES>
+												<ECUC-REFERENCE-VALUE>
+													<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsIoc/OsIocCommunication/OsIocSenderProperties/OsIocSendingOsApplicationRef</DEFINITION-REF>
+													<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/KT_osap1</VALUE-REF>
+												</ECUC-REFERENCE-VALUE>
+											</REFERENCE-VALUES>
+										</ECUC-CONTAINER-VALUE>
+									</SUB-CONTAINERS>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+					</CONTAINERS>
+				</ECUC-MODULE-CONFIGURATION-VALUES>
+			</ELEMENTS>
+		</AR-PACKAGE>
+	</AR-PACKAGES>
+</AUTOSAR>
Index: /atk2-sc3_fl850f1l/sample/sample1.c
===================================================================
--- /atk2-sc3_fl850f1l/sample/sample1.c	(revision 117)
+++ /atk2-sc3_fl850f1l/sample/sample1.c	(revision 117)
@@ -0,0 +1,1414 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2004-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: sample1.c 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		信頼OSアプリケーション所属サンプルプログラムの本体
+ *
+ *  ATK2-SC3の基本的な動作を確認するためのサンプルプログラム．
+ *
+ *  プログラムの概要：PCとボード間でシリアル通信を行い，ユーザ入力
+ *  コマンドに応じた動作とログ出力を行なう．
+ *
+ *  ＜コマンド一覧＞
+ *  ・タスク指定
+ *    '1' : 以降のコマンドを Task1 に対して行う
+ *    '2' : 以降のコマンドを Task2 に対して行う
+ *    '3' : 以降のコマンドを Task3 に対して行う
+ *    '4' : 以降のコマンドを Task4 に対して行う
+ *    '5' : 以降のコマンドを Task5 に対して行う
+ *    '6' : 以降のコマンドを Task6 に対して行う
+ *    '7' : 以降のコマンドを Task7 に対して行う
+ *    '8' : 以降のコマンドを Task8 に対して行う(一部タスク管理コマンド使用できない)
+ *    '9' : 以降のコマンドを Task9 に対して行う(一部タスク管理コマンド使用できない)
+ *  ・タスク管理機能
+ *    'a' : ActivateTask にてタスクを起動する．
+ *    'A' : TerminateTask にてタスクを終了する．
+ *    '!'(Shift+1) : ChainTask にてタスクを終了し，Task1 を起動する
+ *    '"'(Shift+2) : ChainTask にてタスクを終了し，Task2 を起動する
+ *    '#'(Shift+3) : ChainTask にてタスクを終了し，Task3 を起動する
+ *    '$'(Shift+4) : ChainTask にてタスクを終了し，Task4 を起動する
+ *    '%'(Shift+5) : ChainTask にてタスクを終了し，Task5 を起動する
+ *    's' : ノンプリエンプティブ属性であるタスク MainTask にて最高
+ *          優先度タスク HighPriorityTask を起動し，Schedule にて
+ *          再スケジューリングを行う．
+ *    'S' : ノンプリエンプティブタスク NonPriTask を起動する
+ *          ノンプリエンプティブタスク NonPriTask にて最高優先度
+ *          タスク HighPriorityTask を起動し，タスク終了する
+ *    'y' : タスク11(スタック共有)を呼び出し，信頼関数で処理を行う
+ *    'Y' : タスク12(スタック共有)を呼び出し，信頼関数で処理を行う
+ *          タスク不正終了により，エラーコードはE_OS_MISSINGENDで
+ *          エラーフックが呼ばれる
+ *    'z' : 実行中のタスクから GetTaskID を実行して，実行状態の TaskID を取得する
+ *    'Z' : メインタスクから GetTaskState を実行して，対象タスクの状態を取得する
+ *    'x' : div命令を実行して，未定義命令例外を発生させる
+ *  ・割込み管理機能
+ *    'd' : DisableAllInterrupts を実行後，割込みタイマー値を3回表
+ *          示し， EnableAllInterrupts を実行する
+ *    'D' : SuspendAllInterrupts を実行後，割込みタイマー値を3回表
+ *          示し，さらに SuspendAllInterrupts を実行後，割込みタイ
+ *          マー値を3回表示し，ResumeAllInterrupts を実行後，割込み
+ *          タイマー値を3回表示し，ResumeAllInterrupts を実行する
+ *    'f' : SuspendOSInterrupts を実行後，割込みタイマー値を3回表
+ *          示し，さらに SuspendOSInterrupts を実行後，割込みタイ
+ *          マー値を3回表示し，さらに SuspendAllInterruptsを実行
+ *          後，割込みタイマー値を3回表示し， ResumeAllInterrupts
+ *          を実行後，割込みタイマー値を3回表示し，
+ *          ResumeOSInterrupts を実行後割込みタイマー値を3回表示し，
+ *          ResumeOSInterrupts を実行する
+ *    'T' : 割込みタイマー値を3回表示する
+ *  ・リソース管理機能
+ *    'k' : GetResource にてリソース TskLevelRes を取得する．なお，
+ *          Task3 は，このリソースより優先度が高いためエラーとなる
+ *    'K' : ReleaseResource にてリソース TskLevelRes を解放する
+ *    'i' : GetResource にてリソース CntRes を取得後，割込み
+ *          タイマー値を3回表示し，ReleaseResource にてリソース
+ *          CntRes を解放する
+ *  ・イベント制御機能
+ *    'e' : SetEvent にてイベントを設定する．Task2 と Task3 以外は
+ *          割り当てがないためエラーとなる
+ *    'w' : ClearEvent にて自タスクのイベントをクリアする．Task2 と
+ *          Task3 以外は割り当てがないためエラーとなる
+ *    'E' : GetEvent にてイベント状態を取得する．Task2 と Task3
+ *          以外は割り当てがないためエラーとなる
+ *    'W' : WaitEvent にて自タスクのイベントを待つ．Task3 と Task4
+ *          以外はエラーとなる
+ *  ・アラーム機能
+ *    'b' : GetAlarmBase にてアラーム MainCycArm のアラームベース
+ *          情報を取得する
+ *    'B' : GetAlarm にてアラーム MainCycArm の残りカウント値を2回
+ *          連続で取得する
+ *    'v' : SetRelAlarm にてアラーム ActTskArm を起動し，500ms 後に
+ *          タスク Task1 を起動する
+ *    'V' : SetRelAlarm にてアラーム SetEvtArm を起動し，500ms 後に
+ *          イベント T3Evt を設定する
+ *    'h' : CancelAlarm にてアラーム ActTskArm をキャンセルする
+ *  ・カウンタ操作機能
+ *    'c' : タスクにて IncrementCounter を実行し，カウンタ SampleCnt
+ *          にシグナル通知する
+ *          1 シグナルでアラーム SampleArm が満了し，コールバックを
+ *          実行する
+ *    'C' : タスクにて IncrementCounter を実行し，カウンタ SampleCnt2
+ *          にシグナル通知する
+ *          1 シグナルでアラーム SampleArm1 が満了し，SampleCnt3 を
+ *          インクリメントする． SampleCnt3 は 1 シグナルで SampleAlm2
+ *          が満了しコールバックを実行する
+ *    'j' : タスクにて GetCounterValue を実行する
+ *          取得した値は保存する
+ *    'J' : タスクにて GetEalsedCounterValue を実行する
+ *          元の値は前回のGetCounterValue または GetEalsedCounterValue にて取得
+ *          した値とする．初回，または，GetCounterValueを実行していない場合は0
+ *          とする
+ *
+ *    'r' : タスクにて GetISRIDを実行する
+ *          タスクコンテキストからはGetISRIDを呼出した場合はエラーとして
+ *          INVALID_ISRが返却される
+ *
+ *          割込みコンテキストからのGetISRID発行は，SystemTimerCntのコールバック
+ *          ルーチン（'n' コマンドで実行）にて行う
+ *
+ *          タスクコンテキストからのGetISRID発行は，SampleCnt2のコールバック
+ *          ルーチン（'C' または 'c' コマンドで実行）にて行う
+ *
+ *  ・スケジュールテーブル制御機能
+ *    't' : スケジュールテーブル動作制御ON/OFF
+ *
+ *        'i' : SchtblSampleCntカウンタをインクリメントする
+ *              SchtblSampleCntカウンタはスケジュールテーブルの駆動カウンタ
+ *        '1' : 以降のコマンドを scheduletable1 に対して行う(デフォルト値)
+ *        '2' : 以降のコマンドを scheduletable2 に対して行う
+ *        '3' : 以降のコマンドを scheduletable3(存在しないID) に対して行う
+ *              コマンドのエラー確認にも使用する
+ *        's' : StartScheduleTableRelを実行し，相対値(5)でスケジュールテーブルを開始する
+ *        'S' : StartScheduleTableAbsを実行し，絶対値(5)でスケジュールテーブルを開始する
+ *        'f' : StopScheduleTableを実行し，スケジュールテーブルを停止する
+ *        'n' : NextScheduleTableを実行し，scheduletable2に切替える
+ *        'N' : NextScheduleTableを実行し，scheduletable1に切替える
+ *        'g' : GetScheduleTableStatusを実行し，スケジュールテーブル状態を取得する
+ *        'q' : ShutdownOS( E_OK ) OS実行制御機能の'q'と同等機能
+ *        'Q' : ShutdownOS( E_OS_STATE ) OS実行制御機能の'Q'と同等機能
+ *
+ *  ・OS実行制御機能
+ *    'p' : GetActiveApplicationMode にてアプリケーションモードを
+ *          取得する
+ *    'q' : ShutdownOS をコード E_OK で実行し，サンプルプログラムを
+ *          終了する
+ *    'Q' : ShutdownOS をコード E_OS_STATE で実行し，サンプルプログラム
+ *          を終了する
+ *
+ *  ・IOC送受信機能
+ *    'I' : IOC送受信モード
+ *
+ *        IOC APIを使用するタスク(IocTaskX)を選択
+ *        '1' : IocTask1(NT_osap1に所属)
+ *        '2' : IocTask2(NT_osap2に所属)
+ *        '3' : IocTask3(KT_osap1に所属)
+ *        '4' : IocTask4(KT_osap2に所属)
+ *
+ *        IOC APIを選択
+ *        '1' : IocSend_IOC_QUE_0(uint8 in1)
+ *        '2' : IocSend_IOC_QUE_1(uint8 in1)
+ *        '3' : IocWriteGroup_IOC_DEQUE(uint8 in1, uint8 in2, uint8 in3)
+ *        '4' : IocReceive_IOC_QUE(uint8 *out1)
+ *        '5' : IocReadGroup_IOC_DEQUE(uint8 *out1, uint8 *out2, uint8 *out3)
+ *        '6' : IocEmptyQueue_IOC_QUE(void)
+ *
+ *        送信API選択時，送信データを入力する
+ *
+ *  ＜オブジェクト一覧＞
+ *  ・OS
+ *    スタートアップフック：使用
+ *    シャットダウンフック：使用
+ *    エラーフック：使用
+ *    プレタスクフック：未使用
+ *    ポストタスクフック：未使用
+ *  ・タスク
+ *    メインタスク
+ *      タスクID：MainTask
+ *      優先度：14
+ *      多重起動数：1
+ *      スケジュール：ノンプリエンプティブ
+ *      自動起動：AppMode1, AppMode2, AppMode3
+ *      概要：ユーザインタフェース（シリアルIOよりコマンドを受信し，
+ *            それに対応した動作を行なう）
+ *            周期アラーム MainCycArm により，10msごとに待ち解除し
+ *            コマンドの受信有無をポーリングする
+ *            イベント（ID：MainEvt）を関連付けている
+ *    最高優先度タスク
+ *      タスクID：HighPriorityTask
+ *      優先度：15
+ *      多重起動数：1
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      概要：起動ログを出力して終了する．ノンプリエンプティブタスク
+ *            から起動され，プリエンプトしているかどうかの確認用
+ *    ノンプリエンプティブタスク
+ *      タスクID：NonPriTask
+ *      優先度：1
+ *      多重起動数：8
+ *      スケジュール：ノンプリエンプティブ
+ *      自動起動：なし
+ *      信頼OSアプリケーションに所属
+ *      概要：起動ログを出力し，最高優先度タスク HighPriorityTask を
+ *            起動後，終了ログを出力してタスクを終了する
+ *    タスク1
+ *      タスクID：Task1
+ *      優先度：4
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：AppMode2
+ *      多重起動数：8
+ *      概要：並列処理タスク（メインタスクからの指令により動作）
+ *            起動されすると無限ループに入り，コマンド処理を実行する
+ *            リソース TskLevelRes を関連付けている
+ *            リソース CntRes を関連付けている
+ *    タスク2
+ *      タスクID：Task2
+ *      優先度：7
+ *      多重起動数：1
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      概要：並列処理タスク（メインタスクからの指令により動作）
+ *            起動されすると無限ループに入り，コマンド処理を実行する
+ *            リソース TskLevelRes を関連付けている
+ *            リソース CntRes を関連付けている
+ *            イベント T2Evt を関連付けている
+ *    タスク3
+ *      タスクID：Task3
+ *      優先度：12
+ *      多重起動数：1
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：AppMode3
+ *      概要：並列処理タスク（メインタスクからの指令により動作）
+ *            起動されすると無限ループに入り，コマンド処理を実行する
+ *            イベント待ちすることが可能である
+ *            リソース CntRes を関連付けている
+ *            イベント T3Evt を関連付けている
+ *    タスク4
+ *      タスクID：Task4
+ *      優先度：6
+ *      多重起動数：5
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      概要：並列処理タスク（メインタスクからの指令により動作）
+ *            起動されすると無限ループに入り，コマンド処理を実行する
+ *            リソース TskLevelRes を関連付けている
+ *            リソース CntRes を関連付けている
+ *            内部リソース GroupRes を関連付けている
+ *    タスク5
+ *      タスクID：Task5
+ *      優先度：9
+ *      多重起動数：5
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      概要：並列処理タスク（メインタスクからの指令により動作）
+ *            起動されすると無限ループに入り，コマンド処理を実行する
+ *            リソース TskLevelRes を関連付けている
+ *            リソース CntRes を関連付けている
+ *            内部リソース GroupRes を関連付けている
+ *    タスク6
+ *      タスクID：Task6
+ *      優先度：9
+ *      多重起動数：-
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      信頼OSアプリケーションに所属
+ *      概要：並列処理タスク（メインタスクからの指令により動作）
+ *            SC3ではシステムタスクとして起動
+ *            起動されすると即時関数を終了する
+ *            この場合でも正しくTerminateTaskが実行されるかを確認
+ *            何度起動してもOKとなる
+ *            Task7とスタックを共有
+ *    タスク7
+ *      タスクID：Task7
+ *      優先度：8
+ *      多重起動数：-
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      信頼OSアプリケーションに所属
+ *      概要：並列処理タスク（メインタスクからの指令により動作）
+ *            SC3ではユーザタスクとして起動
+ *            起動されすると即時関数を終了する
+ *            この場合でも正しくTerminateTaskが実行されるかを確認
+ *            何度起動してもOKとなる
+ *            Task6とスタックを共有
+ *    タスク8
+ *      タスクID：Task8
+ *      優先度：8
+ *      多重起動数：1
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      概要：起動メッセージ出力し　，アクセス権限のないTask1に対して
+ *            GetTaskState()を発行して，エラーフックが上がる
+ *    タスク9
+ *      タスクID：Task9
+ *      優先度：8
+ *      多重起動数：1
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      概要：起動メッセージ出力し，アクセス権限のあるTask2に対して
+ *            GetTaskState()を発行して，Task2のステータスを出力する
+ *    タスク10
+ *      タスクID：Task10
+ *      優先度：14
+ *      多重起動数：1
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      概要：起動メッセージ出力し，イベント(T10Evt)を待ち
+ *    タスク11
+ *      タスクID：Task11
+ *      優先度：14
+ *      多重起動数：1
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      概要：起動メッセージ出力し，イベント(T11Evt)を待ち
+ *    タスク12
+ *      タスクID：Task12
+ *      優先度：14
+ *      多重起動数：1
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      概要：起動メッセージ出力し，イベント(T12Evt)を待ち
+ *    タスク13
+ *      タスクID：Task13
+ *      優先度：9
+ *      多重起動数：1
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      概要：信頼関数動作確認用(メインタスクからの指令により動作)
+ *            非信頼OSアプリケーションに所属
+ *            起動されする信頼関数実行後TerminateTaskで終了する
+ *            Task12とスタックを共有
+ *    タスク14
+ *      タスクID：Task14
+ *      優先度：8
+ *      多重起動数：1
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      概要：信頼関数動作確認用(メインタスクからの指令により動作)
+ *            非信頼OSアプリケーションに所属
+ *            起動されする信頼関数実行後関数を終了する
+ *            この場合でも正しくTerminateTaskが実行されるかを確認
+ *            Task11とスタックを共有
+ *    IocTask1
+ *      タスクID：IocTask1
+ *      優先度：9
+ *      多重起動数：1
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      概要：IOC通信処理(IOC APIの選択，送信データ設定，実行)を行う
+ *            非信頼OSアプリケーションに所属
+ *    IocTask2
+ *      タスクID：IocTask2
+ *      優先度：9
+ *      多重起動数：1
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      概要：IOC通信処理(IOC APIの選択，送信データ設定，実行)を行う
+ *            非信頼OSアプリケーションに所属
+ *    IocTask3
+ *      タスクID：IocTask3
+ *      優先度：9
+ *      多重起動数：1
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      概要：IOC通信処理(IOC APIの選択，送信データ設定，実行)を行う
+ *            信頼OSアプリケーションに所属
+ *    IocTask4
+ *      タスクID：IocTask4
+ *      優先度：9
+ *      多重起動数：1
+ *      スケジュール：フルプリエンプティブ
+ *      自動起動：なし
+ *      概要：IOC通信処理(IOC APIの選択，送信データ設定，実行)を行う
+ *            非信頼OSアプリケーションに所属
+ *
+ *  ・割込みサービスルーチン
+ *    シリアルIO受信割込み
+ *      ISRID：RxHwSerialInt
+ *      優先度：2
+ *      カテゴリ：2
+ *      概要：コマンドを受信する
+ *  ・リソース
+ *    タスクレベルリソース
+ *      リソースID：TskLevelRes
+ *      プロパティ：標準
+ *    タスク用カウンタリソース
+ *      リソースID：CntRes
+ *      プロパティ：標準
+ *    タスクグループリソース
+ *      リソースID：GroupRes
+ *      プロパティ：内部
+ *  ・イベント
+ *    メインタスクイベント
+ *      イベントID：MainEvt
+ *    タスク2イベント
+ *      イベントID：T2Evt
+ *    タスク3イベント
+ *      イベントID：T3Evt
+ *  ・カウンタ
+ *    システムタイマカウンタ
+ *      カウンタID：MAIN_HW_COUNTER
+ *      カウント値：0〜999
+ *      加算値：1
+ *    サンプルカウンタ
+ *      カウンタID：SampleCnt
+ *      カウント値：0〜99
+ *      加算値：10
+ *  ・アラーム
+ *    メイン周期アラーム
+ *      アラームID：MainCycArm
+ *      ベースカウンタID：MAIN_HW_COUNTER
+ *      アクション：イベント設定 MainEvt
+ *      自動起動：なし
+ *    タスク起動アラーム
+ *      アラームID：ActTskArm
+ *      ベースカウンタID：MAIN_HW_COUNTER
+ *      アクション：タスク起動 Task1
+ *      自動起動：なし
+ *    イベント設定アラーム
+ *      アラームID：SetEvtArm
+ *      ベースカウンタID：MAIN_HW_COUNTER
+ *      アクション：イベント設定 T3Evt
+ *      自動起動：なし
+ *    IncrementCounter確認用アラーム
+ *      アラームID：SampleArm
+ *      ベースカウンタID：SampleCnt
+ *      アクション：コールバック関数実行
+ *      自動起動：なし
+ *    他OSAP所属タスク起動アラーム
+ *      アラームID：ActOtherOSAPTskArm
+ *      ベースカウンタID：SchtblSampleCnt
+ *      アクション：タスク起動 Task4
+ *      自動起動：AppMode1, AppMode2, AppMode3
+ *      設定：カウンタ5，周期0(単発)
+ *  ・アプリケーションモード
+ *    自動起動なしモード(MainTaskのみ自動起動)
+ *      アプリケーションモードID：AppMode1
+ *    Task1自動起動モード
+ *      アプリケーションモードID：AppMode2
+ *    Task3自動起動モード
+ *      アプリケーションモードID：AppMode3
+ *  ・信頼関数
+ *    信頼関数tfnt1
+ *      非信頼OSアプリケーションから渡された
+ *      ポインタ引数の読書き操作して，計算結果を
+ *      非信頼OSアプリケーションに返す
+ *    信頼関数tfnt2
+ *      非信頼OSアプリケーションから渡された
+ *      ポインタ引数の読書き操作して，計算結果を
+ *      非信頼OSアプリケーションに返す
+ *    信頼関数tfnt3
+ *      非信頼OSアプリケーションからのShutdownOSを
+ *      受け付ける
+ *    信頼関数tfnt4
+ *      非信頼OSアプリケーションから信頼OSアプリ
+ *      ケーションに所属するタスクを起動する
+ *
+ *  本ファイルは信頼OSアプリケーションに
+ *  所属しているオブジェクト,sample2.cでは
+ *  非信頼OSアプリケーションに所属している
+ *  オブジェクトを記述している
+ */
+
+#define TOPPERS_SVC_FUNCCALL
+
+#include "sample.h"
+#include "sample1.h"
+#include "Ioc.h"
+#include "target_hw_counter.h"
+
+#define GetAppModeInfo()	(0)
+
+/*
+ *  プロテクション発生時の処理レベル
+ */
+#ifdef CFG_USE_PROTECTIONHOOK
+static const char8	*faulty_context_tbl[6] = {
+	"FC_INVALID",
+	"FC_TASK",
+	"FC_C2ISR",
+	"FC_SYSTEM_HOOK",
+	"FC_OSAP_HOOK",
+	"FC_TRUSTED_FUNC"
+};
+#endif /* CFG_USE_PROTECTIONHOOK */
+
+/*
+ *  ファイル名，行番号の参照用の変数
+ */
+extern const char8	*fatal_file_name;   /* ファイル名 */
+extern sint32		fatal_line_num;     /* 行番号 */
+
+/*
+ *  内部関数プロトタイプ宣言
+ */
+sint32 main(void);
+
+DEFINE_VAR_SSTACK(StackType, stack_00[COUNT_STK_T(0x200)]);
+
+extern uint8 GetCommand(void);
+extern void PutActTsk(uint8 task_no);
+extern void PutActNonPriTsk(void);
+extern void PutTermTsk(uint8 task_no);
+extern void PutChainTsk(uint8 from_task_no, uint8 to_task_no);
+extern void PutSchedule(void);
+extern void PutTaskID(void);
+extern void PutTaskState(uint8 task_no);
+extern void PutDisAllInt(void);
+extern void PutSusAllInt(void);
+extern void PutSusOSInt(void);
+extern void PutHwCnt3(void);
+extern void PutGetCntRes(void);
+extern void PutGetTskRes(void);
+extern void PutRelTskRes(void);
+extern void PutSetEvt(uint8 task_no);
+extern void PutClrEvt(uint8 task_no);
+extern void PutGetEvt(uint8 task_no);
+extern void PutWaitEvt(uint8 task_no);
+extern void PutArmBase(void);
+extern void PutArmTick(void);
+extern void PutSetRel(uint8 alarm_no, uint8 tick_no, uint8 cycle_no);
+extern void PutCanArm(void);
+extern void PutAppMode(void);
+extern void PutActIocTsk(void);
+extern void schedule_table_sample_routine(void);
+
+TASK(IocTask3);
+TASK(IocTask4);
+static void IocProk2(void);
+static uint8 GetCommandNoWait1(void);
+
+/*
+ *  内部データバッファ
+ */
+extern volatile uint8 command_tbl[14];                     /* コマンド引渡しテーブル */
+
+/*
+ *  APIエラーログマクロ
+ *
+ *  ErrorHookが有効の場合はErrorHookから
+ *  エラーログを出力し, ErrorHookが無効の場合は
+ *  以下のマクロよりエラーログ出力を行う
+ */
+#if defined(CFG_USE_ERRORHOOK)
+#define error_log(api)	(api)
+#define error_log_ioc(api)	(api)
+#else /* !defined( CFG_USE_ERRORHOOK ) */
+#define	error_log(api)										   \
+	{														   \
+		StatusType ercd;									   \
+		ercd = api;     /* 各API実行 */						   \
+		if (ercd != E_OK) {									   \
+			syslog(LOG_INFO, "Error:%d", atk2_strerror(ercd)); \
+		}													   \
+	}
+
+#define	error_log_ioc(api)										   \
+	{															   \
+		StatusType ercd;										   \
+		ercd = api;     /* 各API実行 */							   \
+		if (ercd != E_OK) {										   \
+			syslog(LOG_INFO, "Error:%d", atk2_ioc_strerror(ercd)); \
+		}														   \
+	}
+#endif /* defined( CFG_USE_ERRORHOOK ) */
+
+/*
+ *  信頼関数tfnt1
+ *    非信頼OSアプリケーションから渡された
+ *    ポインタ引数の読書き操作して，計算結果を
+ *    非信頼OSアプリケーションに返す
+ */
+TRUSTEDFUNCTION(TRUSTED_tfnt1, FunctionIndex, FunctionParams)
+{
+	struct parameter_struct *local = FunctionParams;
+
+	sint32					*p1;
+	sint32					p2;
+
+	p1 = local->name1;
+	p2 = local->name2;
+
+	local->return_value = (StatusType) ((*p1 * 2) + p2);
+	return(E_OK);
+}
+
+/*
+ *  信頼関数tfnt2
+ *    非信頼OSアプリケーションから渡された
+ *    ポインタ引数の読書き操作して，計算結果を
+ *    非信頼OSアプリケーションに返す
+ */
+TRUSTEDFUNCTION(TRUSTED_tfnt2, FunctionIndex, FunctionParams)
+{
+	struct parameter_struct *local = FunctionParams;
+
+	sint32					*p1;
+	sint32					p2;
+
+	p1 = local->name1;
+	p2 = local->name2;
+
+	local->return_value = (StatusType) ((*p1 * 4) + p2);
+	return(E_OK);
+}
+
+/*
+ *  信頼関数tfnt3
+ *    非信頼OSアプリケーションからのShutdownOSを
+ *    受け付ける
+ */
+TRUSTEDFUNCTION(TRUSTED_tfnt3, FunctionIndex, FunctionParams)
+{
+	struct parameter_struct *local = FunctionParams;
+
+	StatusType				ercd;
+
+	ercd = local->ercd;
+	ShutdownOS(ercd);
+
+	return(E_OK);
+}
+
+/*
+ *  信頼関数tfnt4
+ *    非信頼OSアプリケーションから信頼OSアプリ
+ *    ケーションに所属するタスクを起動する
+ */
+TRUSTEDFUNCTION(TRUSTED_tfnt4, FunctionIndex, FunctionParams)
+{
+	struct parameter_struct *local = FunctionParams;
+
+	TaskType				task_no;
+
+	task_no = local->task_no;
+
+	error_log(ActivateTask(task_no));
+
+	return(E_OK);
+}
+
+/*
+ *  メインタスク
+ *
+ *  ユーザコマンドの受信と，コマンドごとの処理実行
+ */
+TASK(MainTask)
+{
+	uint8					command;
+	uint8					task_no;
+	uint32					i;
+	struct parameter_struct	local;
+
+	TickType				val = 0U;
+	TickType				eval = 0U;
+
+	/*
+	 *  タスク番号・コマンドバッファ初期化
+	 */
+	task_no = (uint8) (0);
+	for (i = 0U; i < (sizeof(command_tbl) / sizeof(command_tbl[0])); i++) {
+		command_tbl[i] = 0U;
+	}
+
+	/*
+	 *  MainCycArmを周期アラームとして設定
+	 */
+	SetRelAlarm(MainCycArm, TICK_FOR_10MS, TICK_FOR_10MS);
+
+	/*
+	 *  コマンド実行ループ
+	 */
+	while (1) {
+		WaitEvent(MainEvt);     /* 10msの作業時間待ち */
+		ClearEvent(MainEvt);
+
+		/*
+		 *  入力コマンド取得
+		 */
+		syslog(LOG_INFO, "Input Command:");
+		command = GetCommand();
+
+		/*
+		 *  入力コマンドチェック
+		 */
+		if ((command <= (uint8) (0x1fU)) || (command >= (uint8) (0x80U))) {
+			syslog(LOG_INFO, "Not ASCII character");
+		}
+		else {
+#ifndef OMIT_ECHO
+			syslog(LOG_INFO, "%c", command);
+#endif /* OMIT_ECHO */
+
+			/*
+			 *  コマンド判別
+			 */
+			switch (command) {
+			case '1':
+			case '2':
+			case '3':
+			case '4':
+			case '5':
+			case '6':
+			case '7':
+			case '8':
+			case '9':
+				/*
+				 *  処理対象タスクの変更
+				 */
+				task_no = (uint8) (command - '1');
+				break;
+			case 'A':
+			case '!':
+			case '"':
+			case '#':
+			case '$':
+			case '%':
+			case 'z':
+			case 'k':
+			case 'K':
+			case 'l':
+			case 'i':
+			case 'w':
+			case 'W':
+				/*
+				 *  タスクへのコマンド通知
+				 */
+				command_tbl[task_no] = command;
+				break;
+			/*
+			 *  以降はメインタスクでコマンド処理
+			 */
+			case 'a':
+				PutActTsk(task_no);
+				break;
+			case 's':
+				PutSchedule();
+				break;
+			case 'S':
+				PutActNonPriTsk();
+				break;
+			case 'Z':
+				PutTaskState(task_no);
+				break;
+			case 'x':
+				syslog(LOG_INFO, "call RAISE_CPU_EXCEPTION");
+				RAISE_CPU_EXCEPTION;
+				break;
+			case 'd':
+				PutDisAllInt();
+				break;
+			case 'D':
+				PutSusAllInt();
+				break;
+			case 'f':
+				PutSusOSInt();
+				break;
+			case 'T':
+				PutHwCnt3();
+				break;
+			case 'e':
+				PutSetEvt(task_no);
+				break;
+			case 'E':
+				PutGetEvt(task_no);
+				break;
+			case 'b':
+				PutArmBase();
+				break;
+			case 'B':
+				PutArmTick();
+				PutArmTick();
+				break;
+			case 'v':
+				/* SetRelAlarm(ActTskArm, 500, 0)を実行 */
+				PutSetRel(0U, 0U, 0U);
+				break;
+			case 'V':
+				/* SetRelAlarm(SetEvtArm, 500, 0)を実行 */
+				PutSetRel(1U, 0U, 0U);
+				break;
+			case 'h':
+				/* CancelAlarm(CallBackArm)を実行 */
+				PutCanArm();
+				break;
+			case 'c':
+				syslog(LOG_INFO, "Call IncrementCounter(SampleCnt)");
+				IncrementCounter(SampleCnt);
+				break;
+			case 'C':
+				syslog(LOG_INFO, "Call IncrementCounter(SampleCnt2)");
+				IncrementCounter(SampleCnt2);
+				break;
+			case 'j':
+				syslog(LOG_INFO, "GetCounterValue(MAIN_HW_COUNTER, val)");
+				GetCounterValue(MAIN_HW_COUNTER, &val);
+				syslog(LOG_INFO, " val = %d", val);
+				break;
+			case 'J':
+				syslog(LOG_INFO, "Pre val = %d", val);
+				syslog(LOG_INFO, "GetElapsedValue(MAIN_HW_COUNTER, val ,eval)");
+				GetElapsedValue(MAIN_HW_COUNTER, &val, &eval);
+				syslog(LOG_INFO, " val = %d", val);
+				syslog(LOG_INFO, " eval = %d", eval);
+				break;
+			case 'r':
+				syslog(LOG_INFO, "GetISRID() Call from Task Context");
+				syslog(LOG_INFO, "GetISRID() = %d", GetISRID());
+				break;
+			case 'p':
+				PutAppMode();
+				break;
+			case 't':
+				schedule_table_sample_routine();
+				break;
+			case 'q':
+				local.ercd = E_OK;
+				CallTrustedFunction(tfnt3, &local); /* ShutdownOS( E_OK ) */
+				break;
+			case 'Q':
+				local.ercd = E_OS_STATE;
+				CallTrustedFunction(tfnt3, &local); /* ShutdownOS( E_OS_STATE ) */
+				break;
+			case 'y':
+				PutActTsk(10U);
+				break;
+			case 'Y':
+				PutActTsk(11U);
+				break;
+			case 'I':
+				PutActIocTsk();
+				break;
+			default:
+				/* 上記のコマンド以外の場合，処理を行わない */
+				break;
+			}
+		}
+	}
+
+	/*
+	 *  ここにはこない
+	 */
+	syslog(LOG_INFO, "MainTask TERMINATE");
+	error_log(TerminateTask());
+}   /* TASK( MainTask ) */
+
+/*
+ *  ノンプリエンプティブタスク
+ *
+ *  実行中はプリエンプトしないことの確認用
+ */
+TASK(NonPriTask)
+{
+	syslog(LOG_INFO, "NonPriTask ACTIVATE");
+	syslog(LOG_INFO, "Call ActivateTask(HighPriorityTask)");
+	error_log(ActivateTask(HighPriorityTask));
+	syslog(LOG_INFO, "NonPriTask TERMINATE");
+
+	error_log(TerminateTask());
+}   /* TASK( NonPriTask ) */
+
+/*
+ *  並列実行タスク6
+ */
+TASK(Task6)
+{
+	TaskProk(5U);
+}   /* TASK( Task6 ) */
+
+/*
+ *  並列実行タスク7
+ */
+TASK(Task7)
+{
+	TaskProk(6U);
+}   /* TASK( Task7 ) */
+
+/*
+ *  IOC確認用タスク3
+ */
+TASK(IocTask3)
+{
+	syslog(LOG_INFO, "IocTask3 ACTIVATE");
+
+	IocProk2();
+
+	syslog(LOG_INFO, "IocTask3 TERMINATE");
+	TerminateTask();
+}   /* TASK( IocTask3 ) */
+
+/*
+ *  IOC確認用タスク4
+ */
+TASK(IocTask4)
+{
+	syslog(LOG_INFO, "IocTask4 ACTIVATE");
+
+	IocProk2();
+
+	syslog(LOG_INFO, "IocTask4 TERMINATE");
+	TerminateTask();
+}   /* TASK( IocTask4 ) */
+
+/*
+ *  IOC確認用タスク内部処理
+ *
+ */
+static void
+IocProk2(void)
+{
+	uint8			api;        /* コマンド受信バッファ(API) */
+	uint8			data[3];    /* 通信バッファ */
+
+	volatile sint32 i;
+	Std_ReturnType	ercd;
+
+	syslog(LOG_INFO, "Select IOC API:");
+	api = GetCommandNoWait1();
+#ifndef OMIT_ECHO
+	syslog(LOG_INFO, "%c", api);
+#endif /* OMIT_ECHO */
+
+	switch (api) {
+	case '1':
+		syslog(LOG_INFO, "Input send data:");
+		data[0] = GetCommandNoWait1();
+#ifndef OMIT_ECHO
+		syslog(LOG_INFO, "%c", data[0]);
+#endif /* OMIT_ECHO */
+		syslog(LOG_INFO, "Call IocSend_IOC_QUE_0");
+		error_log_ioc(IocSend_IOC_QUE_0(data[0]));
+		break;
+	case '2':
+		syslog(LOG_INFO, "Input send data:");
+		data[0] = GetCommandNoWait1();
+#ifndef OMIT_ECHO
+		syslog(LOG_INFO, "%c", data[0]);
+#endif /* OMIT_ECHO */
+
+		syslog(LOG_INFO, "Call IocSend_IOC_QUE_1");
+		error_log_ioc(IocSend_IOC_QUE_1(data[0]));
+		break;
+	case '3':
+		for (i = 0; i < 3U; i++) {
+			syslog(LOG_INFO, "Input send data%d:", i);
+			data[i] = GetCommandNoWait1();
+#ifndef OMIT_ECHO
+			syslog(LOG_INFO, "%c", data[i]);
+#endif /* OMIT_ECHO */
+		}
+		syslog(LOG_INFO, "Call IocWriteGroup_IOC_DEQUE");
+		error_log_ioc(IocWriteGroup_IOC_DEQUE(data[0], data[1], data[2]));
+		break;
+	case '4':
+		syslog(LOG_INFO, "Call IocReceive_IOC_QUE");
+		ercd = IocReceive_IOC_QUE(&data[0]);
+#if !defined(CFG_USE_ERRORHOOK)
+		if (ercd != E_OK) {
+			syslog(LOG_INFO, "Error:%d", atk2_ioc_strerror(ercd));
+		}
+#endif /* !defined( CFG_USE_ERRORHOOK ) */
+		if ((ercd == IOC_E_OK) || (ercd == IOC_E_LOST_DATA)) {
+			syslog(LOG_INFO, "recv data:%c", data[0]);
+		}
+		break;
+	case '5':
+		syslog(LOG_INFO, "Call IocReadGroup_IOC_DEQUE");
+		error_log_ioc(IocReadGroup_IOC_DEQUE(&data[0], &data[1], &data[2]));
+		for (i = 0; i < 3U; i++) {
+			syslog(LOG_INFO, "recv data%d:%c", i, data[i]);
+		}
+		break;
+	case '6':
+		syslog(LOG_INFO, "Call IocEmptyQueue_IOC_QUE");
+		error_log_ioc(IocEmptyQueue_IOC_QUE());
+		break;
+	default:
+		syslog(LOG_INFO, "undefined command");
+		break;
+	}
+}   /* IocProk2 */
+
+/*
+ *  コマンド受信処理(ウェイト無し)
+ */
+uint8
+GetCommandNoWait1(void)
+{
+	uint8 command;          /* コマンド受信バッファ */
+
+	/*
+	 *  コマンドを受信するまでループ
+	 */
+	command = '\0';
+	do {
+		RecvPolSerialChar(&command);    /* 受信バッファポーリング */
+		if (command == '\n') {
+			command = '\0';
+		}
+	} while (command == '\0');
+
+
+	return(command);
+}   /* GetCommandNoWait1 */
+
+/*
+ *  ユーザメイン関数
+ *
+ *  アプリケーションモードの判断と，カーネル起動
+ */
+sint32
+main(void)
+{
+	AppModeType	crt_app_mode;
+
+	/*
+	 *  アプリケーションモードの判断
+	 */
+	switch (GetAppModeInfo()) {
+	case 0:
+		crt_app_mode = AppMode1;
+		break;
+	case 1:
+		crt_app_mode = AppMode2;
+		break;
+	default:
+		crt_app_mode = AppMode3;
+		break;
+	}
+
+	/*
+	 *  カーネル起動
+	 */
+	StartOS(crt_app_mode);
+
+	while (1) {
+	}
+}   /* main */
+
+/*
+ *  システム定義エラーフックルーチン
+ */
+#ifdef CFG_USE_SYSTEM_ERRORHOOK
+void
+ErrorHook(StatusType Error)
+{
+
+	/*
+	 *  エラー要因ごとのパラメータログ出力
+	 */
+	switch (OSErrorGetServiceId()) {
+	case OSServiceId_ActivateTask:
+		syslog(LOG_INFO, "Error:%s=ActivateTask(%d)", atk2_strerror(Error), OSError_ActivateTask_TaskID());
+		break;
+	case OSServiceId_TerminateTask:
+		syslog(LOG_INFO, "Error:%s=TerminateTask()", atk2_strerror(Error));
+		break;
+	case OSServiceId_ChainTask:
+		syslog(LOG_INFO, "Error:%s=ChainTask(%d)", atk2_strerror(Error), OSError_ChainTask_TaskID());
+		break;
+	case OSServiceId_Schedule:
+		syslog(LOG_INFO, "Error:%s=Schedule()", atk2_strerror(Error));
+		break;
+	case OSServiceId_GetTaskID:
+		syslog(LOG_INFO, "Error:%s=GetTaskID(0x%p)", atk2_strerror(Error), OSError_GetTaskID_TaskID());
+		break;
+	case OSServiceId_GetTaskState:
+		syslog(LOG_INFO, "Error:%s=GetTaskState(%d, 0x%p)", atk2_strerror(Error),
+			   OSError_GetTaskState_TaskID(), OSError_GetTaskState_State());
+		break;
+	case OSServiceId_EnableAllInterrupts:
+		syslog(LOG_INFO, "Error:%s=EnableAllInterrupts()", atk2_strerror(Error));
+		break;
+	case OSServiceId_DisableAllInterrupts:
+		syslog(LOG_INFO, "Error:%s=DisableAllInterrupts()", atk2_strerror(Error));
+		break;
+	case OSServiceId_ResumeAllInterrupts:
+		syslog(LOG_INFO, "Error:%s=ResumeAllInterrupts()", atk2_strerror(Error));
+		break;
+	case OSServiceId_SuspendAllInterrupts:
+		syslog(LOG_INFO, "Error:%s=SuspendAllInterrupts()", atk2_strerror(Error));
+		break;
+	case OSServiceId_ResumeOSInterrupts:
+		syslog(LOG_INFO, "Error:%s=ResumeOSInterrupts()", atk2_strerror(Error));
+		break;
+	case OSServiceId_SuspendOSInterrupts:
+		syslog(LOG_INFO, "Error:%s=SuspendOSInterrupts()", atk2_strerror(Error));
+		break;
+	case OSServiceId_GetISRID:
+		syslog(LOG_INFO, "Error:%s=GetISRID()", atk2_strerror(Error));
+		break;
+	case OSServiceId_GetResource:
+		syslog(LOG_INFO, "Error:%s=GetResource(%d)", atk2_strerror(Error), OSError_GetResource_ResID());
+		break;
+	case OSServiceId_ReleaseResource:
+		syslog(LOG_INFO, "Error:%s=ReleaseResource(%d)", atk2_strerror(Error), OSError_ReleaseResource_ResID());
+		break;
+	case OSServiceId_SetEvent:
+		syslog(LOG_INFO, "Error:%s=SetEvent(%d, 0x%x)", atk2_strerror(Error),
+			   OSError_SetEvent_TaskID(), OSError_SetEvent_Mask());
+		break;
+	case OSServiceId_ClearEvent:
+		syslog(LOG_INFO, "Error:%s=ClearEvent(0x%x)", atk2_strerror(Error), OSError_ClearEvent_Mask());
+		break;
+	case OSServiceId_GetEvent:
+		syslog(LOG_INFO, "Error:%s=GetEvent(%d, 0x%p)", atk2_strerror(Error),
+			   OSError_GetEvent_TaskID(), OSError_GetEvent_Event());
+		break;
+	case OSServiceId_WaitEvent:
+		syslog(LOG_INFO, "Error:%s=WaitEvent(0x%x)", atk2_strerror(Error), OSError_WaitEvent_Mask());
+		break;
+	case OSServiceId_GetAlarmBase:
+		syslog(LOG_INFO, "Error:%s=GetAlarmBase(0x%p)", atk2_strerror(Error), OSError_GetAlarmBase_AlarmID());
+		break;
+	case OSServiceId_GetAlarm:
+		syslog(LOG_INFO, "Error:%s=GetAlarm(%d, 0x%p)", atk2_strerror(Error),
+			   OSError_GetAlarm_AlarmID(), OSError_GetAlarm_Tick());
+		break;
+	case OSServiceId_SetRelAlarm:
+		syslog(LOG_INFO, "Error:%s=SetRelAlarm(%d, %d, %d)", atk2_strerror(Error),
+			   OSError_SetRelAlarm_AlarmID(), OSError_SetRelAlarm_increment(), OSError_SetRelAlarm_cycle());
+		break;
+	case OSServiceId_SetAbsAlarm:
+		syslog(LOG_INFO, "Error:%s=SetAbsAlarm(%d, %d, %d)", atk2_strerror(Error),
+			   OSError_SetAbsAlarm_AlarmID(), OSError_SetAbsAlarm_start(), OSError_SetAbsAlarm_cycle());
+		break;
+	case OSServiceId_CancelAlarm:
+		syslog(LOG_INFO, "Error:%s=CancelAlarm(%d)", atk2_strerror(Error), OSError_CancelAlarm_AlarmID());
+		break;
+	case OSServiceId_StartScheduleTableRel:
+		syslog(LOG_INFO, "Error:%s=StartScheduleTableRel(%d, %d)", atk2_strerror(Error),
+			   OSError_StartScheduleTableRel_ScheduleTableID(), OSError_StartScheduleTableRel_Offset());
+		break;
+	case OSServiceId_StartScheduleTableAbs:
+		syslog(LOG_INFO, "Error:%s=StartScheduleTableAbs(%d, %d)", atk2_strerror(Error),
+			   OSError_StartScheduleTableAbs_ScheduleTableID(), OSError_StartScheduleTableAbs_Start());
+		break;
+	case OSServiceId_StopScheduleTable:
+		syslog(LOG_INFO, "Error:%s=StopScheduleTable(%d)", atk2_strerror(Error), OSError_StopScheduleTable_ScheduleTableID());
+		break;
+	case OSServiceId_NextScheduleTable:
+		syslog(LOG_INFO, "Error:%s=NextScheduleTable(%d, %d)", atk2_strerror(Error),
+			   OSError_NextScheduleTable_ScheduleTableID_From(), OSError_NextScheduleTable_ScheduleTableID_To());
+		break;
+	case OSServiceId_GetScheduleTableStatus:
+		syslog(LOG_INFO, "Error:%s=GetScheduleTableStatus(%d, 0x%p)", atk2_strerror(Error),
+			   OSError_GetScheduleTableStatus_ScheduleTableID(), OSError_GetScheduleTableStatus_ScheduleStatus());
+		break;
+	case OSServiceId_GetActiveApplicationMode:
+		syslog(LOG_INFO, "Error:%s=GetActiveApplicationMode()", atk2_strerror(Error));
+		break;
+	case OSServiceId_StartOS:
+		syslog(LOG_INFO, "Error:%s=StartOS()", atk2_strerror(Error));
+		break;
+	case OSServiceId_ShutdownOS:
+		syslog(LOG_INFO, "Error:%s=ShutdownOS()", atk2_strerror(Error));
+		break;
+	case OSServiceId_IncrementCounter:
+		syslog(LOG_INFO, "Error:%s=IncrementCounter(%d)", atk2_strerror(Error), OSError_IncrementCounter_CounterID());
+		break;
+	case OSServiceId_TaskMissingEnd:
+		syslog(LOG_INFO, "Error:%s=MissingEnd()", atk2_strerror(Error));
+		break;
+	case IOCServiceId_IOC_Send:
+		syslog(LOG_INFO, "Error:%s=MissingEnd()", atk2_ioc_strerror(Error));
+		break;
+	case IOCServiceId_IOC_Write:
+		syslog(LOG_INFO, "Error:%s=MissingEnd()", atk2_ioc_strerror(Error));
+		break;
+	case IOCServiceId_IOC_SendGroup:
+		syslog(LOG_INFO, "Error:%s=MissingEnd()", atk2_ioc_strerror(Error));
+		break;
+	case IOCServiceId_IOC_WriteGroup:
+		syslog(LOG_INFO, "Error:%s=MissingEnd()", atk2_ioc_strerror(Error));
+		break;
+	case IOCServiceId_IOC_Receive:
+		syslog(LOG_INFO, "Error:%s=MissingEnd()", atk2_ioc_strerror(Error));
+		break;
+	case IOCServiceId_IOC_Read:
+		syslog(LOG_INFO, "Error:%s=MissingEnd()", atk2_ioc_strerror(Error));
+		break;
+	case IOCServiceId_IOC_ReceiveGroup:
+		syslog(LOG_INFO, "Error:%s=MissingEnd()", atk2_ioc_strerror(Error));
+		break;
+	case IOCServiceId_IOC_ReadGroup:
+		syslog(LOG_INFO, "Error:%s=MissingEnd()", atk2_ioc_strerror(Error));
+		break;
+	case IOCServiceId_IOC_EmptyQueue:
+		syslog(LOG_INFO, "Error:%s=MissingEnd()", atk2_ioc_strerror(Error));
+		break;
+	default:
+		syslog(LOG_INFO, "Error:%s=UnKnownFunc()", atk2_strerror(Error));
+		break;
+	}
+
+}
+#endif /* CFG_USE_SYSTEM_ERRORHOOK */
+
+/*
+ *  プレタスクフックルーチン
+ *
+ *  Task13/Task14実行前のプレタスクフックの場合，メッセージを出力
+ */
+#ifdef CFG_USE_PRETASKHOOK
+void
+PreTaskHook(void)
+{
+	TaskType tskid;
+
+	GetTaskID(&tskid);
+	if (tskid == Task13) {
+		syslog(LOG_INFO, "\nPreTaskHook before Task13!\n");
+	}
+	if (tskid == Task14) {
+		syslog(LOG_INFO, "\nPreTaskHook before Task14!\n");
+	}
+}
+#endif /* CFG_USE_PRETASKHOOK */
+
+/*
+ *  ポストタスクフックルーチン
+ *
+ *  Task13/Task14実行後のポストタスクフックの場合，メッセージを出力
+ */
+#ifdef CFG_USE_POSTTASKHOOK
+void
+PostTaskHook(void)
+{
+	TaskType tskid;
+
+	GetTaskID(&tskid);
+	if (tskid == Task13) {
+		syslog(LOG_INFO, "\nPostTaskHook after Task13!\n");
+	}
+	if (tskid == Task14) {
+		syslog(LOG_INFO, "\nPostTaskHook after Task14!\n");
+	}
+}
+#endif /* CFG_USE_POSTTASKHOOK */
+
+/*
+ *  システム定義スタートアップフックルーチン
+ */
+#ifdef CFG_USE_SYSTEM_STARTUPHOOK
+#ifdef TOPPERS_ENABLE_SYS_TIMER
+extern void target_timer_initialize(void);
+#endif /* TOPPERS_ENABLE_SYS_TIMER */
+
+void
+StartupHook(void)
+{
+#ifdef TOPPERS_ENABLE_SYS_TIMER
+	target_timer_initialize();
+#endif /* TOPPERS_ENABLE_SYS_TIMER */
+	syslog_initialize();
+	syslog_msk_log(LOG_UPTO(LOG_INFO));
+	InitSerial();
+	print_banner();
+}
+#endif /* CFG_USE_SYSTEM_STARTUPHOOK */
+
+/*
+ *  システム定義シャットダウンフックルーチン
+ */
+#ifdef CFG_USE_SYSTEM_SHUTDOWNHOOK
+#ifdef TOPPERS_ENABLE_SYS_TIMER
+extern void target_timer_terminate(void);
+#endif /* TOPPERS_ENABLE_SYS_TIMER */
+
+void
+ShutdownHook(StatusType Error)
+{
+	/* 終了ログ出力 */
+	syslog(LOG_INFO, "Sample System ShutDown");
+	syslog(LOG_INFO, "ShutDownCode:%s", atk2_strerror(Error));
+	syslog(LOG_INFO, "");
+
+	if (Error == E_OS_SYS_ASSERT_FATAL) {
+		syslog(LOG_INFO, "fatal_file_name:%s", fatal_file_name);
+		syslog(LOG_INFO, "fatal_line_num:%d", fatal_line_num);
+	}
+
+#ifdef TOPPERS_ENABLE_SYS_TIMER
+	target_timer_terminate();
+#endif /* TOPPERS_ENABLE_SYS_TIMER */
+	TermSerial();
+
+}
+#endif /* CFG_USE_SYSTEM_SHUTDOWNHOOK */
+
+/*
+ *  プロテクションフックルーチン
+ */
+#ifdef CFG_USE_PROTECTIONHOOK
+ProtectionReturnType
+ProtectionHook(StatusType FatalError)
+{
+	StatusType			ercd;
+	FaultyContextType	faulty_context;
+	TaskType			taskid;
+
+	syslog(LOG_INFO, "ProtectionHook");
+
+	if (FatalError == E_OS_STACKFAULT) {
+		syslog(LOG_INFO, "E_OS_STACKFAULT");
+		ercd = PRO_SHUTDOWN;
+	}
+	else if (FatalError == E_OS_PROTECTION_EXCEPTION) {
+		faulty_context = GetFaultyContext();
+		syslog(LOG_INFO, "E_OS_PROTECTION_EXCEPTION and GetFaultyContext() = %s", faulty_context_tbl[faulty_context]);
+
+		switch (faulty_context) {
+		case FC_TASK:
+			ercd = GetTaskID(&taskid);
+			if (taskid == MainTask) {
+				ercd = PRO_IGNORE;
+			}
+			else {
+				ercd = PRO_TERMINATETASKISR;
+			}
+			break;
+		case FC_C2ISR:
+			ercd = PRO_TERMINATETASKISR;
+			break;
+		case FC_OSAP_HOOK:
+			ercd = PRO_TERMINATEAPPL;
+			break;
+		case FC_SYSTEM_HOOK:
+			ercd = PRO_IGNORE;
+			break;
+		case FC_TRUSTED_FUNC:
+			ercd = PRO_IGNORE;
+			break;
+		case FC_INVALID:
+			ercd = PRO_SHUTDOWN;
+			break;
+		default:
+			ercd = PRO_SHUTDOWN;
+			syslog(LOG_INFO, "unknown error fo GetFaultyContext() = %d", faulty_context);
+		}
+	}
+	else {
+		ercd = PRO_SHUTDOWN;
+	}
+
+	return(ercd);
+}
+#endif /* CFG_USE_PROTECTIONHOOK */
+
+/*
+ *  OSAP定義スタートアップフックルーチン
+ */
+#ifdef CFG_USE_OSAP_STARTUPHOOK
+void
+StartupHook_KT_osap(void)
+{
+	syslog(LOG_INFO, "Sample StartupHook_KT_osap!\n");
+}
+#endif /* CFG_USE_OSAP_SHUTDOWNHOOK */
+
+void
+StartupHook_KT_osap1(void)
+{
+	syslog(LOG_INFO, "Sample StartupHook_KT_osap1!\n");
+}
+void
+ShutdownHook_KT_osap1(StatusType err)
+{
+	syslog(LOG_INFO, "Sample ShutdownHook_KT_osap1!\n");
+}
+
Index: /atk2-sc3_fl850f1l/sample/sample1.h
===================================================================
--- /atk2-sc3_fl850f1l/sample/sample1.h	(revision 117)
+++ /atk2-sc3_fl850f1l/sample/sample1.h	(revision 117)
@@ -0,0 +1,77 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2011-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: sample1.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		信頼OSアプリケーション所属サンプルプログラムのヘッダファイル
+ */
+
+#ifndef TOPPERS_SAMPLE1_H
+#define TOPPERS_SAMPLE1_H
+
+#include "target_test.h"
+
+#define TIMER_ISR_PARAM		(TIMER_CONTROL_CONT | TIMER_CONTROL_ITO | TIMER_CONTROL_START)
+
+/*
+ *  関数のプロトタイプ宣言
+ */
+#ifndef TOPPERS_MACRO_ONLY
+
+extern StackType stack_00[COUNT_STK_T(0x200)];
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_SAMPLE1_H */
Index: /atk2-sc3_fl850f1l/sample/sample1.yaml
===================================================================
--- /atk2-sc3_fl850f1l/sample/sample1.yaml	(revision 117)
+++ /atk2-sc3_fl850f1l/sample/sample1.yaml	(revision 117)
@@ -0,0 +1,618 @@
+#
+#  TOPPERS ATK2
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+#      Automotive Kernel Version 2
+#
+#  Copyright (C) 2013-2015 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#  Copyright (C) 2013-2015 by FUJI SOFT INCORPORATED, JAPAN
+#  Copyright (C) 2013-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+#  Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
+#  Copyright (C) 2013-2015 by Sunny Giken Inc., JAPAN
+#  Copyright (C) 2013-2015 by TOSHIBA CORPORATION, JAPAN
+#  Copyright (C) 2013-2015 by Witz Corporation
+#  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+#  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+#  Copyright (C) 2014-2015 by NEC Communication Systems, Ltd., JAPAN
+#  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+#
+#  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+#  $Id: sample1.yaml 187 2015-06-25 03:39:04Z t_ishikawa $
+#
+
+Ecuc:
+  Os:
+    OsInclude1:
+      DefinitionRef: OsInclude
+      OsIncludeFileName: sample1.h
+    OsInclude2:
+      DefinitionRef: OsInclude
+      OsIncludeFileName: sample2.h
+    OsOS:
+      OsStackMonitoring: true
+      OsUseGetServiceId: true
+      OsUseParameterAccess: true
+      OsScalabilityClass: SC3
+      OsMemoryProtectionLevel: Level2
+      OsViolationHandlingLevel: Level2
+      OsStatus: EXTENDED
+      OsHooks:
+        OsErrorHook: true
+        OsPostTaskHook: true
+        OsPreTaskHook: true
+        OsProtectionHook: true
+        OsShutdownHook: true
+        OsStartupHook: true
+      OsHookStack:
+        OsHookStackSize: 0x200U
+    TskLevelRes:
+      DefinitionRef: OsResource
+      OsResourceProperty: STANDARD
+      OsResourceAccessingApplication: /Ecuc/Os/NT_osap1
+    CntRes:
+      DefinitionRef: OsResource
+      OsResourceProperty: STANDARD
+      OsResourceAccessingApplication: /Ecuc/Os/NT_osap1
+    GroupRes:
+      DefinitionRef: OsResource
+      OsResourceProperty: INTERNAL
+      OsResourceAccessingApplication: /Ecuc/Os/NT_osap1
+    SampleCnt:
+      DefinitionRef: OsCounter
+      OsCounterMaxAllowedValue: 99U
+      OsCounterMinCycle: 10
+      OsCounterTicksPerBase: 10U
+      OsCounterType: SOFTWARE
+    SampleCnt2:
+      DefinitionRef: OsCounter
+      OsCounterMaxAllowedValue: 99U
+      OsCounterMinCycle: 10
+      OsCounterTicksPerBase: 10U
+      OsCounterType: SOFTWARE
+    SampleCnt3:
+      DefinitionRef: OsCounter
+      OsCounterMaxAllowedValue: 99U
+      OsCounterMinCycle: 10
+      OsCounterTicksPerBase: 10U
+      OsCounterType: SOFTWARE
+    NonPriTask:
+      DefinitionRef: OsTask
+      OsTaskActivation: 8U
+      OsTaskPriority: 1
+      OsTaskStackSize: 0x200U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: NON
+    Task6:
+      DefinitionRef: OsTask
+      OsTaskActivation: 5U
+      OsTaskPriority: 9
+      OsTaskStackSize: 0x200U
+      OsTaskStackStartAddress: stack_00
+      OsTaskSchedule: FULL
+    Task7:
+      DefinitionRef: OsTask
+      OsTaskActivation: 5U
+      OsTaskPriority: 8
+      OsTaskStackSize: 0x200U
+      OsTaskStackStartAddress: stack_00
+      OsTaskSchedule: FULL
+      OsTaskAccessingApplication: /Ecuc/Os/NT_osap1
+    MainTask:
+      DefinitionRef: OsTask
+      OsTaskActivation: 1U
+      OsTaskPriority: 14
+      OsTaskStackSize: 0x200U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: NON
+      OsTaskEventRef: /Ecuc/Os/MainEvt
+      OsTaskAutostart:
+        OsTaskAppModeRef:
+          - /Ecuc/Os/AppMode1
+          - /Ecuc/Os/AppMode2
+          - /Ecuc/Os/AppMode3
+      OsTaskAccessingApplication: /Ecuc/Os/NT_osap1
+    HighPriorityTask:
+      DefinitionRef: OsTask
+      OsTaskActivation: 1U
+      OsTaskPriority: 15
+      OsTaskStackSize: 0x200U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: FULL
+    Task1:
+      DefinitionRef: OsTask
+      OsTaskActivation: 8U
+      OsTaskPriority: 4
+      OsTaskStackSize: 0x200U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: FULL
+      OsTaskResourceRef:
+        - /Ecuc/Os/CntRes
+        - /Ecuc/Os/TskLevelRes
+      OsTaskAutostart:
+        OsTaskAppModeRef: /Ecuc/Os/AppMode2
+    Task2:
+      DefinitionRef: OsTask
+      OsTaskActivation: 1U
+      OsTaskPriority: 7
+      OsTaskStackSize: 0x200U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: FULL
+      OsTaskAccessingApplication: /Ecuc/Os/NT_osap2
+      OsTaskResourceRef:
+        - /Ecuc/Os/CntRes
+        - /Ecuc/Os/TskLevelRes
+      OsTaskEventRef: /Ecuc/Os/T2Evt
+    MainCycArm:
+      DefinitionRef: OsAlarm
+      OsAlarmCounterRef: /Ecuc/Os/MAIN_HW_COUNTER
+      OsAlarmAction:
+        OsAlarmSetEvent:
+          OsAlarmSetEventTaskRef: /Ecuc/Os/MainTask
+          OsAlarmSetEventRef: /Ecuc/Os/MainEvt
+    ActTskArm:
+      DefinitionRef: OsAlarm
+      OsAlarmCounterRef: /Ecuc/Os/MAIN_HW_COUNTER
+      OsAlarmAction:
+        OsAlarmActivateTask:
+          OsAlarmActivateTaskRef: /Ecuc/Os/Task1
+    Task3:
+      DefinitionRef: OsTask
+      OsTaskActivation: 1U
+      OsTaskPriority: 12
+      OsTaskStackSize: 0x200U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: FULL
+      OsTaskResourceRef: /Ecuc/Os/CntRes
+      OsTaskEventRef: /Ecuc/Os/T3Evt
+      OsTaskAutostart:
+        OsTaskAppModeRef: /Ecuc/Os/AppMode3
+    Task4:
+      DefinitionRef: OsTask
+      OsTaskActivation: 5U
+      OsTaskPriority: 6
+      OsTaskStackSize: 0x200U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: FULL
+      OsTaskAccessingApplication: /Ecuc/Os/NT_osap2
+      OsTaskResourceRef:
+        - /Ecuc/Os/GroupRes
+        - /Ecuc/Os/CntRes
+        - /Ecuc/Os/TskLevelRes
+    scheduletable1:
+      DefinitionRef: OsScheduleTable
+      OsScheduleTableDuration: 60U
+      OsScheduleTableRepeating: true
+      OsScheduleTableCounterRef: /Ecuc/Os/SchtblSampleCnt
+      OsScheduleTableExpiryPoint_0:
+        DefinitionRef: OsScheduleTableExpiryPoint
+        OsScheduleTblExpPointOffset: 10
+        OsScheduleTableTaskActivation_0:
+          DefinitionRef: OsScheduleTableTaskActivation
+          OsScheduleTableActivateTaskRef: /Ecuc/Os/Task10
+        OsScheduleTableTaskActivation_1:
+          DefinitionRef: OsScheduleTableTaskActivation
+          OsScheduleTableActivateTaskRef: /Ecuc/Os/Task11
+        OsScheduleTableTaskActivation_2:
+          DefinitionRef: OsScheduleTableTaskActivation
+          OsScheduleTableActivateTaskRef: /Ecuc/Os/Task12
+      OsScheduleTableExpiryPoint_1:
+        DefinitionRef: OsScheduleTableExpiryPoint
+        OsScheduleTblExpPointOffset: 20
+        OsScheduleTableEventSetting_0:
+          DefinitionRef: OsScheduleTableEventSetting
+          OsScheduleTableSetEventRef: /Ecuc/Os/T10Evt
+          OsScheduleTableSetEventTaskRef: /Ecuc/Os/Task10
+        OsScheduleTableEventSetting_1:
+          DefinitionRef: OsScheduleTableEventSetting
+          OsScheduleTableSetEventRef: /Ecuc/Os/T11Evt
+          OsScheduleTableSetEventTaskRef: /Ecuc/Os/Task11
+        OsScheduleTableEventSetting_2:
+          DefinitionRef: OsScheduleTableEventSetting
+          OsScheduleTableSetEventRef: /Ecuc/Os/T12Evt
+          OsScheduleTableSetEventTaskRef: /Ecuc/Os/Task12
+      OsScheduleTableSync:
+        OsScheduleTblSyncStrategy: NONE
+    Task5:
+      DefinitionRef: OsTask
+      OsTaskActivation: 5U
+      OsTaskPriority: 9
+      OsTaskStackSize: 0x200U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: FULL
+      OsTaskResourceRef:
+        - /Ecuc/Os/GroupRes
+        - /Ecuc/Os/CntRes
+        - /Ecuc/Os/TskLevelRes
+    scheduletable2:
+      DefinitionRef: OsScheduleTable
+      OsScheduleTableDuration: 50U
+      OsScheduleTableRepeating: true
+      OsScheduleTableCounterRef: /Ecuc/Os/SchtblSampleCnt
+      OsScheduleTableExpiryPoint_0:
+        DefinitionRef: OsScheduleTableExpiryPoint
+        OsScheduleTblExpPointOffset: 20
+        OsScheduleTableTaskActivation_0:
+          DefinitionRef: OsScheduleTableTaskActivation
+          OsScheduleTableActivateTaskRef: /Ecuc/Os/Task12
+        OsScheduleTableTaskActivation_1:
+          DefinitionRef: OsScheduleTableTaskActivation
+          OsScheduleTableActivateTaskRef: /Ecuc/Os/Task11
+      OsScheduleTableExpiryPoint_1:
+        DefinitionRef: OsScheduleTableExpiryPoint
+        OsScheduleTblExpPointOffset: 30
+        OsScheduleTableEventSetting_0:
+          DefinitionRef: OsScheduleTableEventSetting
+          OsScheduleTableSetEventRef: /Ecuc/Os/T12Evt
+          OsScheduleTableSetEventTaskRef: /Ecuc/Os/Task12
+      OsScheduleTableExpiryPoint_2:
+        DefinitionRef: OsScheduleTableExpiryPoint
+        OsScheduleTblExpPointOffset: 40
+        OsScheduleTableEventSetting_0:
+          DefinitionRef: OsScheduleTableEventSetting
+          OsScheduleTableSetEventRef: /Ecuc/Os/T11Evt
+          OsScheduleTableSetEventTaskRef: /Ecuc/Os/Task11
+      OsScheduleTableSync:
+        OsScheduleTblSyncStrategy: NONE
+    SetEvtArm:
+      DefinitionRef: OsAlarm
+      OsAlarmCounterRef: /Ecuc/Os/MAIN_HW_COUNTER
+      OsAlarmAction:
+        OsAlarmSetEvent:
+          OsAlarmSetEventTaskRef: /Ecuc/Os/Task3
+          OsAlarmSetEventRef: /Ecuc/Os/T3Evt
+    SampleAlm1:
+      DefinitionRef: OsAlarm
+      OsAlarmCounterRef: /Ecuc/Os/SampleCnt2
+      OsAlarmAction:
+        OsAlarmIncrementCounter:
+          OsAlarmIncrementCounterRef: /Ecuc/Os/SampleCnt3
+      OsAlarmAutostart:
+        OsAlarmAlarmTime: 10U
+        OsAlarmCycleTime: 10U
+        OsAlarmAutostartType: ABSOLUTE
+        OsAlarmAppModeRef:
+          - /Ecuc/Os/AppMode1
+          - /Ecuc/Os/AppMode2
+          - /Ecuc/Os/AppMode3
+    SchtblSampleCnt:
+      DefinitionRef: OsCounter
+      OsCounterMaxAllowedValue: 99U
+      OsCounterMinCycle: 10
+      OsCounterTicksPerBase: 10U
+      OsCounterType: SOFTWARE
+    SampleAlm2:
+      DefinitionRef: OsAlarm
+      OsAlarmCounterRef: /Ecuc/Os/SampleCnt3
+      OsAlarmAction:
+        OsAlarmSetEvent:
+          OsAlarmSetEventTaskRef: /Ecuc/Os/MainTask
+          OsAlarmSetEventRef: /Ecuc/Os/MainEvt
+      OsAlarmAutostart:
+        OsAlarmAlarmTime: 10U
+        OsAlarmCycleTime: 10U
+        OsAlarmAutostartType: ABSOLUTE
+        OsAlarmAppModeRef:
+          - /Ecuc/Os/AppMode1
+          - /Ecuc/Os/AppMode2
+          - /Ecuc/Os/AppMode3
+    Task10:
+      DefinitionRef: OsTask
+      OsTaskActivation: 1U
+      OsTaskPriority: 13
+      OsTaskStackSize: 0x200U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: NON
+      OsTaskEventRef: /Ecuc/Os/T10Evt
+    Task11:
+      DefinitionRef: OsTask
+      OsTaskActivation: 1U
+      OsTaskPriority: 13
+      OsTaskStackSize: 0x200U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: NON
+      OsTaskEventRef: /Ecuc/Os/T11Evt
+    Task12:
+      DefinitionRef: OsTask
+      OsTaskActivation: 1U
+      OsTaskPriority: 13
+      OsTaskStackSize: 0x200U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: NON
+      OsTaskEventRef: /Ecuc/Os/T12Evt
+    Task13:
+      DefinitionRef: OsTask
+      OsTaskActivation: 5U
+      OsTaskPriority: 9
+      OsTaskStackSize: 0x200U
+      OsTaskStackStartAddress: stack_1
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSystemStackStartAddress: stack_2
+      OsTaskSchedule: FULL
+    Task14:
+      DefinitionRef: OsTask
+      OsTaskActivation: 5U
+      OsTaskPriority: 8
+      OsTaskStackSize: 0x200U
+      OsTaskStackStartAddress: stack_1
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSystemStackStartAddress: stack_2
+      OsTaskSchedule: FULL
+    IocTask1:
+      DefinitionRef: OsTask
+      OsTaskActivation: 1U
+      OsTaskPriority: 9
+      OsTaskStackSize: 0x200U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: FULL
+      OsTaskAccessingApplication: /Ecuc/Os/NT_osap2
+    IocTask2:
+      DefinitionRef: OsTask
+      OsTaskActivation: 1U
+      OsTaskPriority: 9
+      OsTaskStackSize: 0x200U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: FULL
+      OsTaskAccessingApplication: /Ecuc/Os/NT_osap1
+    IocTask3:
+      DefinitionRef: OsTask
+      OsTaskActivation: 1U
+      OsTaskPriority: 9
+      OsTaskStackSize: 0x200U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: FULL
+    IocTask4:
+      DefinitionRef: OsTask
+      OsTaskActivation: 1U
+      OsTaskPriority: 9
+      OsTaskStackSize: 0x200U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: FULL
+    AppMode1:
+      DefinitionRef: OsAppMode
+    AppMode2:
+      DefinitionRef: OsAppMode
+    AppMode3:
+      DefinitionRef: OsAppMode
+    MainEvt:
+      DefinitionRef: OsEvent
+    T2Evt:
+      DefinitionRef: OsEvent
+    T3Evt:
+      DefinitionRef: OsEvent
+      OsEventMask: 0x00010000
+    T10Evt:
+      DefinitionRef: OsEvent
+    T11Evt:
+      DefinitionRef: OsEvent
+    T12Evt:
+      DefinitionRef: OsEvent
+    KT_osap1:
+      DefinitionRef: OsApplication
+      OsTrusted: true
+      OsAppTaskRef:
+        - /Ecuc/Os/MainTask
+        - /Ecuc/Os/NonPriTask
+        - /Ecuc/Os/Task6
+        - /Ecuc/Os/Task7
+        - /Ecuc/Os/IocTask3
+      OsAppMemoryModuleRef:
+        - /Ecuc/Os/banner
+        - /Ecuc/Os/log_output
+        - /Ecuc/Os/sample1
+      OsApplicationHooks:
+        OsAppErrorHook: false
+        OsAppShutdownHook: true
+        OsAppStartupHook: true
+      tfnt1:
+        DefinitionRef: OsApplicationTrustedFunction
+        OsTrustedFunctionStackSize: 32
+        OsTrustedFunctionName: TRUSTED_tfnt1
+      tfnt2:
+        DefinitionRef: OsApplicationTrustedFunction
+        OsTrustedFunctionStackSize: 32
+        OsTrustedFunctionName: TRUSTED_tfnt2
+      tfnt3:
+        DefinitionRef: OsApplicationTrustedFunction
+        OsTrustedFunctionStackSize: 32
+        OsTrustedFunctionName: TRUSTED_tfnt3
+      tfnt4:
+        DefinitionRef: OsApplicationTrustedFunction
+        OsTrustedFunctionStackSize: 32
+        OsTrustedFunctionName: TRUSTED_tfnt4
+      actioctask3:
+        DefinitionRef: OsApplicationTrustedFunction
+        OsTrustedFunctionStackSize: 32
+        OsTrustedFunctionName: TRUSTED_actioctask3
+    KT_osap2:
+      DefinitionRef: OsApplication
+      OsTrusted: true
+      OsAppTaskRef: /Ecuc/Os/IocTask4
+      OsApplicationHooks:
+        OsAppErrorHook: false
+        OsAppShutdownHook: false
+        OsAppStartupHook: false
+      actioctask4:
+        DefinitionRef: OsApplicationTrustedFunction
+        OsTrustedFunctionStackSize: 32
+        OsTrustedFunctionName: TRUSTED_actioctask4
+    NT_osap1:
+      DefinitionRef: OsApplication
+      OsTrusted: false
+      OsAppCounterRef:
+        - /Ecuc/Os/SampleCnt
+        - /Ecuc/Os/SchtblSampleCnt
+        - /Ecuc/Os/SampleCnt2
+        - /Ecuc/Os/SampleCnt3
+      OsAppTaskRef:
+        - /Ecuc/Os/HighPriorityTask
+        - /Ecuc/Os/Task1
+        - /Ecuc/Os/Task2
+        - /Ecuc/Os/Task3
+        - /Ecuc/Os/Task4
+        - /Ecuc/Os/Task5
+        - /Ecuc/Os/Task10
+        - /Ecuc/Os/Task11
+        - /Ecuc/Os/Task12
+        - /Ecuc/Os/Task13
+        - /Ecuc/Os/Task14
+        - /Ecuc/Os/IocTask1
+      OsAppAlarmRef:
+        - /Ecuc/Os/MainCycArm
+        - /Ecuc/Os/ActTskArm
+        - /Ecuc/Os/SetEvtArm
+        - /Ecuc/Os/SampleAlm1
+        - /Ecuc/Os/SampleAlm2
+      OsAppScheduleTableRef:
+        - /Ecuc/Os/scheduletable1
+        - /Ecuc/Os/scheduletable2
+      OsApplicationHooks:
+        OsAppErrorHook: false
+        OsAppShutdownHook: false
+        OsAppStartupHook: false
+    OsLinkSection:
+      OsLinkSectionName: .stack_section
+      OsLinkSectionMemoryRegionRef: /Ecuc/Os/RAM
+    banner:
+      DefinitionRef: OsMemoryModule
+      OsMemoryModuleExport: false
+      OsMemoryModuleName: banner.o
+    log_output:
+      DefinitionRef: OsMemoryModule
+      OsMemoryModuleExport: false
+      OsMemoryModuleName: log_output.o
+    sample1:
+      DefinitionRef: OsMemoryModule
+      OsMemoryModuleExport: false
+      OsMemoryModuleName: sample1.o
+    Task8:
+      DefinitionRef: OsTask
+      OsTaskActivation: 5U
+      OsTaskPriority: 8
+      OsTaskStackSize: 0x250U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: FULL
+    Task9:
+      DefinitionRef: OsTask
+      OsTaskActivation: 5U
+      OsTaskPriority: 8
+      OsTaskStackSize: 0x300U
+      OsTaskSystemStackSize: 0x200U
+      OsTaskSchedule: FULL
+    ActOtherOSAPTskArmCnt:
+      DefinitionRef: OsCounter
+      OsCounterMaxAllowedValue: 99U
+      OsCounterMinCycle: 10
+      OsCounterTicksPerBase: 10U
+      OsCounterType: SOFTWARE
+    ActOtherOSAPTskArm:
+      DefinitionRef: OsAlarm
+      OsAlarmCounterRef: /Ecuc/Os/ActOtherOSAPTskArmCnt
+      OsAlarmAction:
+        OsAlarmActivateTask:
+          OsAlarmActivateTaskRef: /Ecuc/Os/Task4
+      OsAlarmAutostart:
+        OsAlarmAlarmTime: 5U
+        OsAlarmCycleTime: 0U
+        OsAlarmAutostartType: ABSOLUTE
+        OsAlarmAppModeRef:
+          - /Ecuc/Os/AppMode1
+          - /Ecuc/Os/AppMode2
+          - /Ecuc/Os/AppMode3
+    NT_osap2:
+      DefinitionRef: OsApplication
+      OsTrusted: false
+      OsAppTaskRef:
+        - /Ecuc/Os/Task8
+        - /Ecuc/Os/Task9
+        - /Ecuc/Os/IocTask2
+      OsAppCounterRef: /Ecuc/Os/ActOtherOSAPTskArmCnt
+      OsAppAlarmRef: /Ecuc/Os/ActOtherOSAPTskArm
+      OsApplicationHooks:
+        OsAppErrorHook: true
+        OsAppShutdownHook: true
+        OsAppStartupHook: true
+    IOC:
+      DefinitionRef: OsIoc
+      IOC_QUE:
+        DefinitionRef: OsIocCommunication
+        OsIocBufferLength: 3
+        IOC_QUE_DATA:
+          DefinitionRef: OsIocDataProperties
+          OsIocInitValue: 1
+          OsIocDataTypeRef: /ImplementationDataTypes/uint8
+        IOC_QUE_RCV:
+          DefinitionRef: OsIocReceiverProperties
+          OsIocFunctionImplementationKind: FUNCTION
+          OsIocReceivingOsApplicationRef: /Ecuc/Os/NT_osap2
+        IOC_QUE_SND0:
+          DefinitionRef: OsIocSenderProperties
+          OsIocSenderId: 0
+          OsIocFunctionImplementationKind: FUNCTION
+          OsIocSendingOsApplicationRef: /Ecuc/Os/NT_osap1
+        IOC_QUE_SND1:
+          DefinitionRef: OsIocSenderProperties
+          OsIocSenderId: 1
+          OsIocFunctionImplementationKind: FUNCTION
+          OsIocSendingOsApplicationRef: /Ecuc/Os/KT_osap1
+      IOC_DEQUE:
+        DefinitionRef: OsIocCommunication
+        IOC_DEQUE_DATA0:
+          DefinitionRef: OsIocDataProperties
+          OsIocDataPropertyIndex: 0
+          OsIocInitValue: 0U
+          OsIocDataTypeRef: /ImplementationDataTypes/uint8
+        IOC_DEQUE_DATA1:
+          DefinitionRef: OsIocDataProperties
+          OsIocDataPropertyIndex: 1
+          OsIocInitValue: 10U
+          OsIocDataTypeRef: /ImplementationDataTypes/uint8
+        IOC_DEQUE_DATA2:
+          DefinitionRef: OsIocDataProperties
+          OsIocDataPropertyIndex: 2
+          OsIocInitValue: 20U
+          OsIocDataTypeRef: /ImplementationDataTypes/uint8
+        IOC_DEQUE_RCV:
+          DefinitionRef: OsIocReceiverProperties
+          OsIocFunctionImplementationKind: FUNCTION
+          OsIocReceivingOsApplicationRef: /Ecuc/Os/KT_osap2
+        IOC_DEQUE_SND:
+          DefinitionRef: OsIocSenderProperties
+          OsIocFunctionImplementationKind: FUNCTION
+          OsIocSendingOsApplicationRef: /Ecuc/Os/KT_osap1
+
+IMPLEMENTATION-DATA-TYPE:
+  uint8:
+    CATEGORY: VALUE
Index: /atk2-sc3_fl850f1l/sample/sample2.c
===================================================================
--- /atk2-sc3_fl850f1l/sample/sample2.c	(revision 117)
+++ /atk2-sc3_fl850f1l/sample/sample2.c	(revision 117)
@@ -0,0 +1,1170 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2004-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: sample2.c 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		非信頼OSアプリケーション所属サンプルプログラムの本体
+ *
+ *  サンプルプログラムの動作はsample1.cのコメント参照
+ *  本ファイルは非信頼OSアプリケーションに所属している
+ *  オブジェクトを記述している
+ */
+
+#include "sample.h"
+#include "sample2.h"
+#include "Ioc.h"
+
+#define GetHwCnt(x, y)
+
+/*
+ *  内部関数プロトタイプ宣言
+ */
+uint8 GetCommand(void);
+void PutActTsk(uint8 task_no);
+void PutActNonPriTsk(void);
+void PutTermTsk(uint8 task_no);
+void PutChainTsk(uint8 from_task_no, uint8 to_task_no);
+void PutSchedule(void);
+void PutTaskID(void);
+void PutTaskState(uint8 task_no);
+void PutDisAllInt(void);
+void PutSusAllInt(void);
+void PutSusOSInt(void);
+void PutHwCnt3(void);
+void PutGetCntRes(void);
+void PutGetTskRes(void);
+void PutRelTskRes(void);
+void PutSetEvt(uint8 task_no);
+void PutClrEvt(uint8 task_no);
+void PutGetEvt(uint8 task_no);
+void PutWaitEvt(uint8 task_no);
+void PutArmBase(void);
+void PutArmTick(void);
+void PutSetRel(uint8 alarm_no, uint8 tick_no, uint8 cycle_no);
+void PutCanArm(void);
+void PutAppMode(void);
+void schedule_table_sample_routine(void);
+
+TASK(IocTask1);
+TASK(IocTask2);
+static void IocProk1(void);
+static uint8 GetCommandNoWait2(void);
+
+/*
+ *  APIエラーログマクロ
+ *
+ *  ErrorHookが有効の場合はErrorHookから
+ *  エラーログを出力し, ErrorHookが無効の場合は
+ *  以下のマクロよりエラーログ出力を行う
+ */
+#if defined(CFG_USE_ERRORHOOK)
+#define error_log(api)	(api)
+#define error_log_ioc(api)	(api)
+#else /* !defined( CFG_USE_ERRORHOOK ) */
+#define	error_log(api)										   \
+	{														   \
+		StatusType ercd;									   \
+		ercd = api;     /* 各API実行 */						   \
+		if (ercd != E_OK) {									   \
+			syslog(LOG_INFO, "Error:%d", atk2_strerror(ercd)); \
+		}													   \
+	}
+
+#define	error_log_ioc(api)										   \
+	{															   \
+		StatusType ercd;										   \
+		ercd = api;     /* 各API実行 */							   \
+		if (ercd != E_OK) {										   \
+			syslog(LOG_INFO, "Error:%d", atk2_ioc_strerror(ercd)); \
+		}														   \
+	}
+#endif /* defined( CFG_USE_ERRORHOOK ) */
+
+/*
+ *  内部データバッファ
+ */
+volatile uint8				command_tbl[14]; /* コマンド引渡しテーブル */
+
+/*
+ *  内部定数データテーブル
+ */
+/* 無効イベントマスク値 */
+#define invalid_mask	(EventMaskType) (0)
+
+/* イベントマスクテーブル */
+static const EventMaskType	event_mask_tbl[5] = {
+	invalid_mask,
+	T2Evt,
+	T3Evt,
+	invalid_mask,
+	invalid_mask
+};
+
+/* タスクIDテーブル */
+static const TaskType		task_id_tbl[14] = {
+	Task1,
+	Task2,
+	Task3,
+	Task4,
+	Task5,
+	Task6,
+	Task7,
+	Task8,
+	Task9,
+	Task10,
+	Task11,
+	Task12,
+	Task13,
+	Task14
+};
+
+/* アラームIDテーブル */
+static const AlarmType		alarm_id_tbl[2] = {
+	ActTskArm,
+	SetEvtArm
+};
+
+/* ティック値テーブル */
+static const TickType		tick_tbl[2] = {
+	(TickType) 500,
+	(TickType) 900
+};
+
+/* サイクル値テーブル */
+static const TickType		cycle_tbl[2] = {
+	(TickType) 0,
+	(TickType) COUNTER_MIN_CYCLE
+};
+
+/* イベントマスク名文字列テーブル */
+static const char8			*event_name_tbl[5] = {
+	"Invalid",
+	"T2Evt",
+	"T3Evt",
+	"Invalid",
+	"Invalid"
+};
+
+/* タスク名文字列テーブル */
+static const char8			*task_name_tbl[14] = {
+	"Task1",
+	"Task2",
+	"Task3",
+	"Task4",
+	"Task5",
+	"Task6",
+	"Task7",
+	"Task8",
+	"Task9",
+	"Task10",
+	"Task11",
+	"Task12"
+	"Task13"
+	"Task14"
+};
+
+/* タスク状態文字列テーブル */
+static const char8			*task_state_tbl[4] = {
+	"SUSPENDED",
+	"RUNNING",
+	"READY",
+	"WAITING"
+};
+
+/* アラーム名文字列テーブル */
+static const char8			*alarm_name_tbl[2] = {
+	"ActTskArm",
+	"SetEvtArm"
+};
+
+DEFINE_VAR_USTACK(StackType, stack_1[COUNT_STK_T(0x200)], ".stack_section");
+DEFINE_VAR_SSTACK(StackType, stack_2[COUNT_STK_T(0x200)]);
+
+/*
+ *  最高優先度タスク
+ *
+ *  各タスクのプリエンプト確認用
+ */
+TASK(HighPriorityTask)
+{
+	syslog(LOG_INFO, "HighPriorityTask ACTIVATE");
+	error_log(TerminateTask());
+}   /* TASK( HighPriorityTask ) */
+
+/*
+ *  並列実行タスク1
+ */
+TASK(Task1)
+{
+	TaskProk(0U);
+}   /* TASK( Task1 ) */
+
+
+/*
+ *  並列実行タスク2
+ */
+TASK(Task2)
+{
+	TaskProk(1U);
+}   /* TASK( Task2 ) */
+
+
+/*
+ *  並列実行タスク3
+ */
+TASK(Task3)
+{
+	TaskProk(2U);
+}   /* TASK( Task3 ) */
+
+
+/*
+ *  並列実行タスク4
+ */
+TASK(Task4)
+{
+	TaskProk(3U);
+}   /* TASK( Task4 ) */
+
+
+/*
+ *  並列実行タスク5
+ */
+TASK(Task5)
+{
+	TaskProk(4U);
+}   /* TASK( Task5 ) */
+
+
+/*
+ *  並列実行タスク内部処理
+ *
+ *  メインタスクから通知されたコマンドごとの処理実行
+ */
+void
+TaskProk(uint8 task_no)
+{
+	uint8 command;          /* コマンド退避バッファ */
+
+	/*
+	 *  タスク起動ログ出力
+	 */
+	syslog(LOG_INFO, "%s ACTIVATE", task_name_tbl[task_no]);
+
+	/*
+	 *  コマンド実行ループ
+	 */
+	while (1) {
+
+		/*
+		 *  コマンド取得
+		 */
+		while (command_tbl[task_no] == '\0') {
+		}
+		command = command_tbl[task_no];
+		command_tbl[task_no] = 0U;
+
+		/*
+		 *  コマンド判定
+		 */
+		switch (command) {
+		case 'A':
+			PutTermTsk(task_no);
+			break;
+		case '!':
+		case '"':
+		case '#':
+		case '$':
+		case '%':
+			PutChainTsk(task_no, (command - '!'));
+			break;
+		case 'z':
+			PutTaskID();
+			break;
+		case 'k':
+			PutGetTskRes();
+			break;
+		case 'K':
+			PutRelTskRes();
+			break;
+		case 'i':
+			PutGetCntRes();
+			break;
+		case 'w':
+			if (task_no < 5U) {
+				PutClrEvt(task_no);
+			}
+			break;
+		case 'W':
+			if (task_no < 5U) {
+				PutWaitEvt(task_no);
+			}
+			break;
+		default:
+			/* 上記のコマンド以外の場合，処理は行わない */
+			break;
+		}
+	}
+}   /* TaskProk */
+
+/*
+ *  コマンド受信処理
+ */
+uint8
+GetCommand(void)
+{
+	uint8 command;          /* コマンド受信バッファ */
+
+	/*
+	 *  コマンドを受信するまでループ
+	 */
+	command = '\0';
+	do {
+		WaitEvent(MainEvt);     /* 10msウェイト */
+		ClearEvent(MainEvt);
+		RecvPolSerialChar(&command);    /* 受信バッファポーリング */
+		if (command == '\n') {
+			command = '\0';
+		}
+	} while (command == '\0');
+
+
+	return(command);
+}   /* GetCommand */
+
+/*
+ *  ActivateTask 実行・ログ出力処理
+ */
+void
+PutActTsk(uint8 task_no)
+{
+	struct parameter_struct local;
+
+	syslog(LOG_INFO, "Call ActivateTask(%s)", task_name_tbl[task_no]);
+
+	if (task_no < 5U) {
+		error_log(ActivateTask(task_id_tbl[task_no]));
+	}
+	else {
+		local.task_no = task_id_tbl[task_no];
+		CallTrustedFunction(tfnt4, &local); /* ActivateTask(task_name_tbl[task_no]) */
+	}
+
+}   /* PutActTsk	*/
+
+/*
+ *  ActivateTask 実行(NonPriTask)・ログ出力処理
+ */
+void
+PutActNonPriTsk(void)
+{
+	struct parameter_struct local;
+
+	syslog(LOG_INFO, "Call ActivateTask(NonPriTask)");
+
+	local.task_no = NonPriTask;
+	CallTrustedFunction(tfnt4, &local); /* ActivateTask(NonPriTask) */
+
+}   /* PutActNonPriTsk	*/
+
+/*
+ *  TerminateTask 実行・ログ出力処理
+ */
+void
+PutTermTsk(uint8 task_no)
+{
+	StatusType ercd;        /* エラーコード */
+
+	syslog(LOG_INFO, "%s TERMINATE", task_name_tbl[task_no]);
+
+	ercd = TerminateTask();
+	ShutdownOS(ercd);
+}
+
+/*
+ *  ChainTask 実行・ログ出力処理
+ */
+void
+PutChainTsk(uint8 from_task_no, uint8 to_task_no)
+{
+	StatusType ercd;            /* エラーコード */
+
+	syslog(LOG_INFO, "Call ChainTask(%s)", task_name_tbl[to_task_no]);
+	syslog(LOG_INFO, "%s TERMINATE", task_name_tbl[from_task_no]);
+
+	ercd = ChainTask(task_id_tbl[to_task_no]);
+	if (ercd == E_OS_LIMIT) {
+		syslog(LOG_INFO, "Call TerminateTask()");
+		syslog(LOG_INFO, "Because of ChainTask E_OS_LIMIT return");
+		ercd = TerminateTask();
+	}
+	ShutdownOS(ercd);
+}   /* PutChainTsk */
+
+/*
+ *  Schedule 実行・ログ出力処理
+ */
+void
+PutSchedule(void)
+{
+	syslog(LOG_INFO, "Call ActivateTask(HighPriorityTask)");
+
+	error_log(ActivateTask(HighPriorityTask));
+	syslog(LOG_INFO, "Call Schedule()");
+
+	error_log(Schedule());
+	syslog(LOG_INFO, "Retrun Schedule()");
+}   /* PutSchedule	*/
+
+/*
+ *  GetTaskID 実行・ログ出力処理
+ */
+void
+PutTaskID(void)
+{
+	TaskType task_id;           /* タスクID取得バッファ */
+
+	error_log(GetTaskID(&task_id));
+
+	syslog(LOG_INFO, "TaskID:%d", task_id);
+}   /* PutTaskID	*/
+
+/*
+ *  GetTaskState 実行・ログ出力処理
+ *  Task1〜Task5，Task7取得時エラーとならない
+ *  Task6取得時エラーとなる
+ */
+void
+PutTaskState(uint8 task_no)
+{
+	TaskStateType state;        /* タスクID取得バッファ */
+
+	error_log(GetTaskState(task_id_tbl[task_no], &state));
+
+	syslog(LOG_INFO, task_name_tbl[task_no]);
+	syslog(LOG_INFO, " State:%s", task_state_tbl[state]);
+}   /* PutTaskState	*/
+
+/*
+ *  DisableAllInterrupts/EnableAllInterrupts 実行・ログ出力処理
+ */
+void
+PutDisAllInt(void)
+{
+	syslog(LOG_INFO, "Call DisableAllInterrupts");
+
+	DisableAllInterrupts();
+
+	PutHwCnt3();
+	syslog(LOG_INFO, "Call EnableAllInterrupts");
+
+	EnableAllInterrupts();
+}   /* PutDisAllInt	*/
+
+/*
+ *  SuspendAllInterrupts/ResumeAllInterrupts 実行・ログ出力処理
+ */
+void
+PutSusAllInt(void)
+{
+	syslog(LOG_INFO, "Call SuspendAllInterrupts");
+
+	SuspendAllInterrupts();
+
+	PutHwCnt3();
+	syslog(LOG_INFO, "Call SuspendAllInterrupts");
+
+	SuspendAllInterrupts();
+
+	PutHwCnt3();
+	syslog(LOG_INFO, "Call ResumeAllInterrupts");
+
+	ResumeAllInterrupts();
+
+	PutHwCnt3();
+	syslog(LOG_INFO, "Call ResumeAllInterrupts");
+
+	ResumeAllInterrupts();
+}   /* PutSusAllInt	*/
+
+/*
+ *  SuspendOSInterrupts/ResumeOSInterrupts 実行・ログ出力処理
+ */
+void
+PutSusOSInt(void)
+{
+	syslog(LOG_INFO, "Call SuspendOSInterrupts");
+
+	SuspendOSInterrupts();
+
+	PutHwCnt3();
+	syslog(LOG_INFO, "Call SuspendOSInterrupts");
+
+	SuspendOSInterrupts();
+
+	PutHwCnt3();
+	syslog(LOG_INFO, "Call SuspendAllInterrupts");
+
+	SuspendAllInterrupts();
+
+	PutHwCnt3();
+	syslog(LOG_INFO, "Call ResumeAllInterrupts");
+
+	ResumeAllInterrupts();
+
+	PutHwCnt3();
+	syslog(LOG_INFO, "Call ResumeOSInterrupts");
+
+	ResumeOSInterrupts();
+
+	PutHwCnt3();
+	syslog(LOG_INFO, "Call ResumeOSInterrupts");
+
+	ResumeOSInterrupts();
+}   /* PutSusOSInt */
+
+/*
+ *  割込み動作テスト用HWカウンタ値のログ出力処理
+ */
+void
+PutHwCnt3(void)
+{
+	uint32	isr1_cnt = 0U;      /* C1ISR カウント値取得バッファ */
+	uint32	isr2_cnt = 0U;      /* C2ISR カウント値取得バッファ */
+	uint8	cnt;                /* 出力回数カウンタ */
+
+	for (cnt = 0U; cnt < 3U; cnt++) {
+		GetHwCnt(&isr1_cnt, &isr2_cnt);
+		syslog(LOG_INFO, "C1ISR Cnt:%d, C2ISR Cnt:%d",
+			   isr1_cnt, isr2_cnt);
+	}
+}   /* PutHwCnt3 */
+
+/*
+ *  GetResource/ReleaseResource 実行(割込みレベル)・ログ出力処理
+ */
+void
+PutGetCntRes(void)
+{
+	syslog(LOG_INFO, "Call GetResource(CntRes)");
+	error_log(GetResource(CntRes));
+
+	PutHwCnt3();
+	syslog(LOG_INFO, "Call ReleaseResource(CntRes)");
+
+	error_log(ReleaseResource(CntRes));
+}   /* PutGetCntRes	*/
+
+/*
+ *  GetResource 実行(タスクレベル)・ログ出力処理
+ */
+void
+PutGetTskRes(void)
+{
+	syslog(LOG_INFO, "Call GetResource(TskLevelRes)");
+
+	error_log(GetResource(TskLevelRes));
+}   /* PutGetTskRes */
+
+/*
+ *  ReleaseResource 実行(タスクレベル)・ログ出力処理
+ */
+void
+PutRelTskRes(void)
+{
+	syslog(LOG_INFO, "Call ReleaseResource(TskLevelRes)");
+
+	error_log(ReleaseResource(TskLevelRes));
+}
+
+/*
+ *  SetEvent 実行・ログ出力処理
+ */
+void
+PutSetEvt(uint8 task_no)
+{
+	syslog(LOG_INFO, "Call SetEvent(%s, %s)",
+		   task_name_tbl[task_no], event_name_tbl[task_no]);
+
+	error_log(SetEvent(task_id_tbl[task_no], event_mask_tbl[task_no]));
+}   /* PutSetEvt */
+
+/*
+ *  ClearEvent 実行・ログ出力処理
+ */
+void
+PutClrEvt(uint8 task_no)
+{
+	syslog(LOG_INFO, "Call ClearEvent(%s)", event_name_tbl[task_no]);
+
+	error_log(ClearEvent(event_mask_tbl[task_no]));
+}   /* PutClrEvt */
+
+/*
+ *  GetEvent 実行・ログ出力処理
+ */
+void
+PutGetEvt(uint8 task_no)
+{
+	EventMaskType mask;             /* イベントマスク取得バッファ */
+
+	error_log(GetEvent(task_id_tbl[task_no], &mask));
+
+	syslog(LOG_INFO, "%s Event Mask:0x%x", task_name_tbl[task_no], mask);
+}   /* PutGetEvt */
+
+/*
+ *  WaitEvent 実行・ログ出力処理
+ */
+void
+PutWaitEvt(uint8 task_no)
+{
+	syslog(LOG_INFO, "Call WaitEvent(%s)", event_name_tbl[task_no]);
+
+	error_log(WaitEvent(event_mask_tbl[task_no]));
+	syslog(LOG_INFO, "Return WaitEvent(%s)", event_name_tbl[task_no]);
+}   /* PutWaitEvt */
+
+/*
+ *  GetAlarmBase 実行・ログ出力処理
+ */
+void
+PutArmBase(void)
+{
+	AlarmBaseType info;             /* アラームベース情報取得バッファ */
+
+	error_log(GetAlarmBase(MainCycArm, &info));
+
+	syslog(LOG_INFO, "MainCycArm Base:");
+	syslog(LOG_INFO, "\tMAXALLOWEDVALUE=%d", info.maxallowedvalue);
+	syslog(LOG_INFO, "\tTICKSPERBASE=%d", info.ticksperbase);
+	syslog(LOG_INFO, "\tMINCYCLE=%d", info.mincycle);
+}   /* PutArmBase */
+
+/*
+ *  PutArmTick 実行・ログ出力処理
+ */
+void
+PutArmTick(void)
+{
+	TickType tick;              /* 残りティック取得バッファ */
+
+	error_log(GetAlarm(MainCycArm, &tick));
+
+	syslog(LOG_INFO, "MainCycArm Tick:%d", tick);
+}   /* PutArmTick */
+
+/*
+ *  SetRelAlarm 実行・ログ出力処理
+ */
+void
+PutSetRel(uint8 alarm_no, uint8 tick_no, uint8 cycle_no)
+{
+	syslog(LOG_INFO, "Call SetRelAlarm(%s, %d, %d)",
+		   alarm_name_tbl[alarm_no], tick_tbl[tick_no], cycle_tbl[cycle_no]);
+
+	error_log(SetRelAlarm(alarm_id_tbl[alarm_no],
+						  tick_tbl[tick_no], cycle_tbl[cycle_no]));
+}   /* PutSetRel	*/
+
+/*
+ *  CancelAlarm 実行・ログ出力処理
+ */
+void
+PutCanArm(void)
+{
+	syslog(LOG_INFO, "Call CancelAlarm(ActTskArm)");
+
+	error_log(CancelAlarm(ActTskArm));
+}   /* PutCanArm */
+
+/*
+ *  GetActiveApplicationMode 実行・ログ出力処理
+ */
+void
+PutAppMode(void)
+{
+	switch (GetActiveApplicationMode()) {
+	case AppMode1:
+		syslog(LOG_INFO, "ActiveApplicationMode:AppMode1");
+		break;
+	case AppMode2:
+		syslog(LOG_INFO, "ActiveApplicationMode:AppMode2");
+		break;
+	case AppMode3:
+		syslog(LOG_INFO, "ActiveApplicationMode:AppMode3");
+		break;
+	default:
+		syslog(LOG_INFO, "ActiveApplicationMode:Non");
+		break;
+	}
+}   /* PutAppMode */
+
+/*
+ *  スケジュールテーブルテスト用メインループ
+ *
+ *  ユーザコマンドの受信と，コマンドごとの処理実行
+ */
+void
+schedule_table_sample_routine(void)
+{
+	uint8					command;                /* コマンドバッファ */
+	ScheduleTableType		scheduletable_id;       /* コマンド引数バッファ */
+	ScheduleTableStatusType	status;                 /* スケジュール状態引数 */
+	TickType				val;                    /* カウンタの現在値 */
+	uint8					flag = FALSE;           /* リターンするか判定するためのフラグ */
+
+	syslog(LOG_INFO, "\t[ schedule table sample routine IN, press 't' OUT ]");
+	syslog(LOG_INFO, "");
+
+	scheduletable_id = scheduletable1;
+	/*
+	 *  コマンド実行ループ
+	 */
+	while (1) {
+
+		WaitEvent(MainEvt);     /* 10msの作業時間待ち */
+		ClearEvent(MainEvt);
+
+		/*
+		 *  入力コマンド取得
+		 */
+		syslog(LOG_INFO, "Input Command:");
+		command = GetCommand();
+		syslog(LOG_INFO, "%c", command);
+
+		/*
+		 *  コマンド判定
+		 */
+		switch (command) {
+		case '1':
+			scheduletable_id = scheduletable1;
+			break;
+		case '2':
+			scheduletable_id = scheduletable2;
+			break;
+		case 'i':
+			IncrementCounter(SchtblSampleCnt);
+			val = 0U;
+			GetCounterValue(SchtblSampleCnt, &val);
+			if ((val % 5U) == 0U) {
+				syslog(LOG_INFO, "\tGetCounterValue(SchtblSampleCnt ) = %d", val);
+			}
+			break;
+		case 's':
+			syslog(LOG_INFO, "\tStartScheduleTableRel(scheduletable%d, 5)", scheduletable_id + 1U);
+			error_log(StartScheduleTableRel(scheduletable_id, 5U));
+			break;
+		case 'S':
+			syslog(LOG_INFO, "\tStartScheduleTableAbs(scheduletable%d, 5)", scheduletable_id + 1U);
+			error_log(StartScheduleTableAbs(scheduletable_id, 5U));
+			break;
+		case 'f':
+			syslog(LOG_INFO, "\tStopScheduleTable(scheduletable%d)", scheduletable_id + 1U);
+			error_log(StopScheduleTable(scheduletable_id));
+			break;
+		case 'n':
+			syslog(LOG_INFO, "\tNextScheduleTable(scheduletable%d, scheduletable%d)", scheduletable_id + 1U, scheduletable2 + 1U);
+			error_log(NextScheduleTable(scheduletable_id, scheduletable2));
+			break;
+		case 'N':
+			syslog(LOG_INFO, "\tNextScheduleTable(scheduletable%d, scheduletable%d)", scheduletable_id + 1U, scheduletable1 + 1U);
+			error_log(NextScheduleTable(scheduletable_id, scheduletable1));
+			break;
+		case 'g':
+			status = 0U;
+			syslog(LOG_INFO, "\tGetScheduleTableStatus(scheduletable%d, status)", scheduletable_id + 1U);
+			error_log(GetScheduleTableStatus(scheduletable_id, &status));
+			syslog(LOG_INFO, "\tstatus = %d", status);
+			break;
+		case 't':
+			syslog(LOG_INFO, "\t[ schedule table sample routine OUT, press 't' IN ]");
+			flag = TRUE;
+			break;
+		default:
+			/* コマンドが上記のケース以外なら処理は行わない */
+			break;
+		}
+		/*  フラグが立っていた場合，リターンする  */
+		if (flag == TRUE) {
+			return;
+		}
+	}
+}   /* schedule_table_sample_routine */
+
+/*
+ *  スケジュールテーブル確認用タスク6
+ */
+TASK(Task10)
+{
+	/*
+	 *  タスク起動ログ出力
+	 */
+	syslog(LOG_INFO, "Task10 ACTIVATE");
+	WaitEvent(T10Evt);
+	syslog(LOG_INFO, "Task10 FINISH");
+	TerminateTask();
+}   /* TASK( Task10 ) */
+
+
+/*
+ *  スケジュールテーブル確認用タスク7
+ */
+TASK(Task11)
+{
+	/*
+	 *  タスク起動ログ出力
+	 */
+	syslog(LOG_INFO, "Task11 ACTIVATE");
+	WaitEvent(T11Evt);
+	syslog(LOG_INFO, "Task11 FINISH");
+	TerminateTask();
+}   /* TASK( Task11 ) */
+
+
+/*
+ *  スケジュールテーブル確認用タスク8
+ */
+TASK(Task12)
+{
+	/*
+	 *  タスク起動ログ出力
+	 */
+	syslog(LOG_INFO, "Task12 ACTIVATE");
+	WaitEvent(T12Evt);
+	syslog(LOG_INFO, "Task12 FINISH");
+	TerminateTask();
+}   /* TASK( Task12 ) */
+
+/*
+ *  信頼関数動作確認用タスク11
+ */
+TASK(Task13)
+{
+	struct parameter_struct	local;
+	sint32					pp = 10;
+
+	local.name1 = (sint32 *) &pp;
+	local.name2 = 2;
+
+	CallTrustedFunction(tfnt1, &local); /* 10*2 + 2 = 22 */
+	syslog(LOG_NOTICE, "Task13 tfnt1 ret = %d", local.return_value);
+
+	TerminateTask();
+}   /* TASK( Task13 ) */
+
+/*
+ *  信頼関数動作確認用タスク12
+ */
+TASK(Task14)
+{
+	struct parameter_struct	local;
+	sint32					pp = 20;
+
+	local.name1 = (sint32 *) &pp;
+	local.name2 = 4;
+
+	CallTrustedFunction(tfnt2, &local); /* 20*4 + 4 = 84 */
+	syslog(LOG_NOTICE, "Task14 tfnt2 ret = %d", local.return_value);
+
+}   /* TASK( Task14 ) */
+
+/*
+ *  非信頼OSアプリケーション間アクセス権確認用タスク
+ */
+TASK(Task8)
+{
+	TaskStateType state;
+	/*
+	 *  タスク起動ログ出力
+	 */
+	syslog(LOG_INFO, "Task8 ACTIVATE");
+	if (E_OK == GetTaskState(Task1, &state)) {
+		syslog(LOG_INFO, "GetTaskState(Task1, &state), state = %s", task_state_tbl[state]);
+	}
+	syslog(LOG_INFO, "Task8 FINISH");
+	TerminateTask();
+}   /* TASK( Task8 ) */
+
+/*
+ *  非信頼OSアプリケーション間アクセス権確認用タスク
+ */
+TASK(Task9)
+{
+	TaskStateType state;
+	/*
+	 *  タスク起動ログ出力
+	 */
+	syslog(LOG_INFO, "Task9 ACTIVATE");
+	if (E_OK == GetTaskState(Task2, &state)) {
+		syslog(LOG_INFO, "GetTaskState(Task2, &state), state = %s", task_state_tbl[state]);
+	}
+	syslog(LOG_INFO, "Task9 FINISH");
+	TerminateTask();
+}   /* TASK( Task8 ) */
+
+/*
+ *  IOC確認用タスク1
+ */
+TASK(IocTask1)
+{
+	syslog(LOG_INFO, "IocTask1 ACTIVATE");
+
+	IocProk1();
+
+	syslog(LOG_INFO, "IocTask1 TERMINATE");
+
+	TerminateTask();
+}   /* TASK( IocTask1 ) */
+
+/*
+ *  IOC確認用タスク2
+ */
+TASK(IocTask2)
+{
+	syslog(LOG_INFO, "IocTask2 ACTIVATE");
+
+	IocProk1();
+
+	syslog(LOG_INFO, "IocTask2 TERMINATE");
+
+	TerminateTask();
+}   /* TASK( IocTask2 ) */
+
+/*
+ *  IOC確認用タスク内部処理
+ *
+ */
+static void
+IocProk1(void)
+{
+	uint8			api;        /* コマンド受信バッファ(API) */
+	uint8			data[3];    /* 通信バッファ */
+
+	volatile sint32 i;
+	Std_ReturnType	ercd;
+
+	syslog(LOG_INFO, "Select IOC API:");
+	api = GetCommandNoWait2();
+#ifndef OMIT_ECHO
+	syslog(LOG_INFO, "%c", api);
+#endif /* OMIT_ECHO */
+
+	switch (api) {
+	case '1':
+		syslog(LOG_INFO, "Input send data:");
+		data[0] = GetCommandNoWait2();
+#ifndef OMIT_ECHO
+		syslog(LOG_INFO, "%c", data[0]);
+#endif /* OMIT_ECHO */
+		syslog(LOG_INFO, "Call IocSend_IOC_QUE_0");
+		error_log_ioc(IocSend_IOC_QUE_0(data[0]));
+		break;
+	case '2':
+		syslog(LOG_INFO, "Input send data:");
+		data[0] = GetCommandNoWait2();
+#ifndef OMIT_ECHO
+		syslog(LOG_INFO, "%c", data[0]);
+#endif /* OMIT_ECHO */
+
+		syslog(LOG_INFO, "Call IocSend_IOC_QUE_1");
+		error_log_ioc(IocSend_IOC_QUE_1(data[0]));
+		break;
+	case '3':
+		for (i = 0; i < 3U; i++) {
+			syslog(LOG_INFO, "Input send data%d:", i);
+			data[i] = GetCommandNoWait2();
+#ifndef OMIT_ECHO
+			syslog(LOG_INFO, "%c", data[i]);
+#endif /* OMIT_ECHO */
+		}
+		syslog(LOG_INFO, "Call IocWriteGroup_IOC_DEQUE");
+		error_log_ioc(IocWriteGroup_IOC_DEQUE(data[0], data[1], data[2]));
+		break;
+	case '4':
+		syslog(LOG_INFO, "Call IocReceive_IOC_QUE");
+		ercd = IocReceive_IOC_QUE(&data[0]);
+#if !defined(CFG_USE_ERRORHOOK)
+		if (ercd != E_OK) {
+			syslog(LOG_INFO, "Error:%d", atk2_ioc_strerror(ercd));
+		}
+#endif /* !defined( CFG_USE_ERRORHOOK ) */
+		if ((ercd == IOC_E_OK) || (ercd == IOC_E_LOST_DATA)) {
+			syslog(LOG_INFO, "recv data:%c", data[0]);
+		}
+		break;
+	case '5':
+		syslog(LOG_INFO, "Call IocReadGroup_IOC_DEQUE");
+		error_log_ioc(IocReadGroup_IOC_DEQUE(&data[0], &data[1], &data[2]));
+		for (i = 0; i < 3U; i++) {
+			syslog(LOG_INFO, "recv data%d:%c", i, data[i]);
+		}
+		break;
+	case '6':
+		syslog(LOG_INFO, "Call IocEmptyQueue_IOC_QUE");
+		error_log_ioc(IocEmptyQueue_IOC_QUE());
+		break;
+	default:
+		syslog(LOG_INFO, "undefined command");
+		break;
+	}
+}   /* IocProk1 */
+
+/*
+ *  コマンド受信処理(ウェイト無し)
+ */
+uint8
+GetCommandNoWait2(void)
+{
+	uint8 command;          /* コマンド受信バッファ */
+
+	/*
+	 *  コマンドを受信するまでループ
+	 */
+	command = '\0';
+	do {
+		RecvPolSerialChar(&command);    /* 受信バッファポーリング */
+		if (command == '\n') {
+			command = '\0';
+		}
+	} while (command == '\0');
+
+
+	return(command);
+}   /* GetCommandNoWait2 */
+
+
+/*
+ *  ActivateTask(IOC用) 実行・ログ出力処理
+ */
+void
+PutActIocTsk(void)
+{
+	uint8 command;          /* コマンド受信バッファ */
+
+	syslog(LOG_INFO, "Select IocTask:");
+	command = GetCommand();
+#ifndef OMIT_ECHO
+	syslog(LOG_INFO, "%c", command);
+#endif /* OMIT_ECHO */
+
+	switch (command) {
+	case '1':
+		error_log(ActivateTask(IocTask1));
+		break;
+	case '2':
+		error_log(ActivateTask(IocTask2));
+		break;
+	case '3':
+		error_log(CallTrustedFunction(actioctask3, NULL));
+		break;
+	case '4':
+		error_log(CallTrustedFunction(actioctask4, NULL));
+		break;
+	default:
+		syslog(LOG_INFO, "undefined command");
+		break;
+	}
+}   /* PutActIocTsk	*/
+
+TRUSTEDFUNCTION(TRUSTED_actioctask3, FunctionIndex, FunctionParams)
+{
+	error_log(ActivateTask(IocTask3));
+
+	return(E_OK);
+}
+
+TRUSTEDFUNCTION(TRUSTED_actioctask4, FunctionIndex, FunctionParams)
+{
+	error_log(ActivateTask(IocTask4));
+
+	return(E_OK);
+}
+
+
+/*
+ *  OSAP定義エラーフックルーチン
+ */
+#ifdef CFG_USE_OSAP_ERRORHOOK
+void
+ErrorHook_NT_osap2(StatusType Error)
+{
+	syslog(LOG_INFO, "ErrorHook_NT_osap2 Error:%s", atk2_strerror(Error));
+}
+#endif /* CFG_USE_OSAP_ERRORHOOK */
+
+/*
+ *  OSAP定義スタートアップフックルーチン
+ */
+#ifdef CFG_USE_OSAP_STARTUPHOOK
+void
+StartupHook_NT_osap2(void)
+{
+	syslog(LOG_INFO, "Sample StartupHook_NT_osap2!\n");
+}
+#endif /* CFG_USE_OSAP_STARTUPHOOK */
+
+/*
+ *  OSAP定義シャットダウンフックルーチン
+ */
+#ifdef CFG_USE_OSAP_SHUTDOWNHOOK
+void
+ShutdownHook_NT_osap2(StatusType Error)
+{
+	syslog(LOG_INFO, "Sample ShutdownHook_NT_osap2!\n");
+}
+#endif /* CFG_USE_OSAP_SHUTDOWNHOOK */
Index: /atk2-sc3_fl850f1l/sample/sample2.h
===================================================================
--- /atk2-sc3_fl850f1l/sample/sample2.h	(revision 117)
+++ /atk2-sc3_fl850f1l/sample/sample2.h	(revision 117)
@@ -0,0 +1,76 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2011-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: sample2.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		非信頼OSアプリケーション所属サンプルプログラムのヘッダファイル
+ */
+
+#ifndef TOPPERS_SAMPLE2_H
+#define TOPPERS_SAMPLE2_H
+
+#include "target_test.h"
+
+/*
+ *  関数のプロトタイプ宣言
+ */
+#ifndef TOPPERS_MACRO_ONLY
+
+extern StackType	stack_1[COUNT_STK_T(0x200)];
+extern StackType	stack_2[COUNT_STK_T(0x200)];
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_SAMPLE2_H */
Index: /atk2-sc3_fl850f1l/sysmod/banner.c
===================================================================
--- /atk2-sc3_fl850f1l/sysmod/banner.c	(revision 117)
+++ /atk2-sc3_fl850f1l/sysmod/banner.c	(revision 117)
@@ -0,0 +1,77 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: banner.c 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		カーネル起動メッセージの出力
+ */
+
+#include "t_syslog.h"
+#include "target_sysmod.h"
+
+static const char8 banner[] =
+	"\n" TKERNEL_NAME " Release %X.%X.%X for " TARGET_NAME
+	" (" __DATE__ ", " __TIME__ ")\n";
+
+void
+print_banner(void)
+{
+	syslog_syslog_3(LOG_NOTICE, banner,
+					OS_SW_MAJOR_VERSION,
+					OS_SW_MINOR_VERSION,
+					OS_SW_PATCH_VERSION);
+}
Index: /atk2-sc3_fl850f1l/sysmod/banner.h
===================================================================
--- /atk2-sc3_fl850f1l/sysmod/banner.h	(revision 117)
+++ /atk2-sc3_fl850f1l/sysmod/banner.h	(revision 117)
@@ -0,0 +1,69 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2008-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: banner.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		カーネル起動メッセージの出力
+ */
+
+#ifndef TOPPERS_BANNER_H
+#define TOPPERS_BANNER_H
+
+/*
+ *  カーネル起動メッセージの出力
+ */
+extern void print_banner(void);
+
+#endif /* TOPPERS_BANNER_H */
Index: /atk2-sc3_fl850f1l/sysmod/chkobj.c
===================================================================
--- /atk2-sc3_fl850f1l/sysmod/chkobj.c	(revision 117)
+++ /atk2-sc3_fl850f1l/sysmod/chkobj.c	(revision 117)
@@ -0,0 +1,177 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: chkobj.c 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+#include	"Os.h"
+
+#include	<stdarg.h>
+
+/*
+ *  CheckObjectAccess()
+ *   非信頼OSアプリケーションのオブジェクトアクセス可否をチェックする
+ *
+ *  可変引数を用いるため，ユーザとのインタフェースを受持つ関数を
+ *  ライブラリとして提供し，チェック本体はカーネルで行う
+ *
+ *  va_arg() の 第2引数は，取出すべき引数の型を示す
+ *  本来であればTaskTypeなどを指定すべきであるが，xxxTypeはuint32である
+ *  va_arg() の 第2引数に int(や double) 以外の型を指定するとコンパ
+ *  イラが正しいコードを生成しない(事故防止のため強制的にCPU例外を
+ *  発生させる命令を生成する)
+ *  このため，本来の型(TaskTypeなど)を設定することが出来ないので，
+ *  引数の幅を持つ"uint32"とする
+ */
+
+ObjectAccessType
+CheckObjectAccess(ApplicationType ApplID, ObjectTypeType ObjectType, ...)
+{
+	ObjectAccessType	access = NO_ACCESS;
+	va_list				ap;
+	uint32				object_id;
+
+	va_start(ap, ObjectType);
+	object_id = va_arg(ap, uint32);
+	va_end(ap);
+
+	switch (ObjectType) {
+	case OBJECT_TASK:
+		access = CheckTaskAccess(ApplID, object_id);
+		break;
+
+	case OBJECT_ISR:
+		access = CheckISRAccess(ApplID, object_id);
+		break;
+
+	case OBJECT_ALARM:
+		access = CheckAlarmAccess(ApplID, object_id);
+		break;
+
+	case OBJECT_RESOURCE:
+		access = CheckResourceAccess(ApplID, object_id);
+		break;
+
+	case OBJECT_COUNTER:
+		access = CheckCounterAccess(ApplID, object_id);
+		break;
+
+	case OBJECT_SCHEDULETABLE:
+		access = CheckScheduleTableAccess(ApplID, object_id);
+		break;
+
+	default:
+		access = NO_ACCESS;
+		break;
+	}
+
+	return(access);
+}
+
+/*
+ *  CheckObjectOwnership()
+ *   OSアプリケーションのオブジェクト所有をチェックする
+ *
+ *  可変引数を用いるため，ユーザとのインタフェースを受持つ関数を
+ *  ライブラリとして提供し，チェック本体はカーネルで行う
+ *
+ *  va_arg() の 第2引数は，取出すべき引数の型を示す
+ *  本来であればTaskTypeなどを指定すべきであるが，xxxTypeはuint32である
+ *  va_arg() の 第2引数に int(や double) 以外の型を指定するとコンパ
+ *  イラが正しいコードを生成しない(事故防止のため強制的にCPU例外を
+ *  発生させる命令を生成する)
+ *  このため，本来の型(TaskTypeなど)を設定することが出来ないので，
+ *  引数の幅を持つ"uint32"とする
+ */
+
+ApplicationType
+CheckObjectOwnership(ObjectTypeType ObjectType, ...)
+{
+	ApplicationType owner = INVALID_OSAPPLICATION;
+	va_list			ap;
+	uint32			object_id;
+
+	va_start(ap, ObjectType);
+	object_id = va_arg(ap, uint32);
+	va_end(ap);
+
+	switch (ObjectType) {
+	case OBJECT_TASK:
+		owner = CheckTaskOwnership(object_id);
+		break;
+
+	case OBJECT_ISR:
+		owner = CheckISROwnership(object_id);
+		break;
+
+	case OBJECT_ALARM:
+		owner = CheckAlarmOwnership(object_id);
+		break;
+
+	case OBJECT_COUNTER:
+		owner = CheckCounterOwnership(object_id);
+		break;
+
+	case OBJECT_SCHEDULETABLE:
+		owner = CheckScheduleTableOwnership(object_id);
+		break;
+
+	default:
+		owner = INVALID_OSAPPLICATION;
+		break;
+	}
+
+	return(owner);
+}
Index: /atk2-sc3_fl850f1l/sysmod/serial.c
===================================================================
--- /atk2-sc3_fl850f1l/sysmod/serial.c	(revision 117)
+++ /atk2-sc3_fl850f1l/sysmod/serial.c	(revision 117)
@@ -0,0 +1,153 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2004-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: serial.c 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		サンプル向けシリアルIOモジュール
+ */
+
+#include	"Os.h"
+#include	"target_serial.h"
+#include	"target_sysmod.h"
+#include	"serial.h"
+
+
+/*
+ *  受信用データ
+ */
+
+static uint8	rx_char;
+static boolean	rx_flag;
+
+/*
+ *  シリアルIOモジュール初期化処理
+ *
+ *  割込み禁止状態で呼出すこと
+ */
+void
+InitSerial(void)
+{
+	/*
+	 *  受信フラグ初期化
+	 */
+	rx_flag = FALSE;
+
+	/*
+	 *  依存部初期化処理実行
+	 */
+	InitHwSerial();
+}
+
+/*
+ *  シリアルIOモジュール停止処理
+ *
+ *  出力が完了していることは保障しない（デッドロック防止）
+ *  コンテキストロックして出力するので，ほぼ問題なし（最後の２文字のみ）
+ *
+ *  割込み禁止状態で呼出すこと
+ */
+void
+TermSerial(void)
+{
+	/*
+	 *  依存部初期化処理実行
+	 */
+	TermHwSerial();
+
+	/*
+	 *  受信データ無効化
+	 */
+	rx_flag = FALSE;
+}
+
+/*
+ *  文字受信処理
+ */
+void
+RecvPolSerialChar(uint8 *character)
+{
+	SuspendAllInterrupts();
+	if (rx_flag != FALSE) {
+		/*
+		 *  割込み禁止にして受信データ取得・フラグクリア
+		 */
+		*character = rx_char;
+		rx_flag = FALSE;
+	}
+	else {
+		/*
+		 *  受信データがない場合は'\0'を返す
+		 */
+		*character = '\0';
+	}
+	ResumeAllInterrupts();
+}
+
+/*
+ *  受信コールバック関数
+ */
+void
+RxSerialInt(uint8 character)
+{
+	/*
+	 *  割込み禁止にして受信データ保持・フラグクリア
+	 */
+	SuspendAllInterrupts();
+	rx_char = character;
+	rx_flag = TRUE;
+	ResumeAllInterrupts();
+}
Index: /atk2-sc3_fl850f1l/sysmod/serial.h
===================================================================
--- /atk2-sc3_fl850f1l/sysmod/serial.h	(revision 117)
+++ /atk2-sc3_fl850f1l/sysmod/serial.h	(revision 117)
@@ -0,0 +1,92 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2004-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: serial.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		シリアルインタフェースドライバ
+ */
+
+#ifndef TOPPERS_SERIAL_H
+#define TOPPERS_SERIAL_H
+
+/*
+ *	サンプル向けシリアルIOモジュール
+ */
+
+
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  シリアルIOモジュール初期化処理関数プロトタイプ宣言
+ */
+extern void InitSerial(void);
+
+/*
+ *  シリアルIOモジュール停止処理関数プロトタイプ宣言
+ */
+extern void TermSerial(void);
+
+/*
+ *  文字受信処理関数プロトタイプ宣言
+ */
+extern void RecvPolSerialChar(uint8 *character);
+
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_SERIAL_H */
Index: /atk2-sc3_fl850f1l/sysmod/syslog.c
===================================================================
--- /atk2-sc3_fl850f1l/sysmod/syslog.c	(revision 117)
+++ /atk2-sc3_fl850f1l/sysmod/syslog.c	(revision 117)
@@ -0,0 +1,176 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: syslog.c 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		システムログ機能
+ */
+
+
+/*
+ *  AUTOSAR共通のデータ型・定数・マクロ
+ */
+#include "Std_Types.h"
+
+#include "t_syslog.h"
+#include "log_output.h"
+#include "target_sysmod.h"
+#include "syslog.h"
+
+/*
+ *  トレースログマクロのデフォルト定義
+ */
+#ifndef LOG_SYSLOG_WRI_LOG_ENTER
+#define LOG_SYSLOG_WRI_LOG_ENTER(prio, p_syslog)
+#endif /* LOG_SYSLOG_WRI_LOG_ENTER */
+
+#ifndef LOG_SYSLOG_WRI_LOG_LEAVE
+#define LOG_SYSLOG_WRI_LOG_LEAVE(ercd)
+#endif /* LOG_SYSLOG_WRI_LOG_LEAVE */
+
+#ifndef LOG_SYSLOG_MSK_LOG_ENTER
+#define LOG_SYSLOG_MSK_LOG_ENTER(lowmask)
+#endif /* LOG_SYSLOG_MSK_LOG_ENTER */
+
+#ifndef LOG_SYSLOG_MSK_LOG_LEAVE
+#define LOG_SYSLOG_MSK_LOG_LEAVE(ercd)
+#endif /* LOG_SYSLOG_MSK_LOG_LEAVE */
+
+/*
+ *  出力すべきログ情報の重要度（ビットマップ）
+ */
+static uint32 syslog_lowmask_not;      /* 低レベル出力すべき重要度（反転）*/
+
+/*
+ *  システムログ機能の初期化
+ */
+void
+_syslog_syslog_initialize(void)
+{
+	syslog_lowmask_not = 0U;
+}
+
+/*
+ *  ログ情報の出力
+ *
+ *  CPUロック状態や実行コンテキストによらず動作できるように実装してある
+ */
+StatusType
+_syslog_syslog_wri_log(uint32 prio, const SYSLOG *p_syslog)
+{
+	SIL_PRE_LOC;
+	LOG_SYSLOG_WRI_LOG_ENTER(prio, p_syslog);
+	SIL_LOC_INT();
+
+	/*
+	 *  低レベル出力
+	 */
+	if (((~syslog_lowmask_not) & LOG_MASK(prio)) != 0U) {
+		_syslog_syslog_print(p_syslog, &target_fput_log);
+		(*target_fput_log)('\n');
+	}
+
+	SIL_UNL_INT();
+	LOG_SYSLOG_WRI_LOG_LEAVE(E_OK);
+	return(E_OK);
+}
+
+/*
+ *  出力すべきログ情報の重要度の設定
+ */
+StatusType
+_syslog_syslog_msk_log(uint32 lowmask)
+{
+	LOG_SYSLOG_MSK_LOG_ENTER(lowmask);
+	syslog_lowmask_not = ~lowmask;
+	LOG_SYSLOG_MSK_LOG_LEAVE(E_OK);
+	return(E_OK);
+}
+
+
+void
+syslog_initialize(void)
+{
+	KERLIBSLG_PRM prm;
+
+	prm.index = KERLIBSLG_ID_SYSLOG_INITIALIZE;
+	KernelLibrarySyslog(&prm);
+	return;
+}
+
+StatusType
+syslog_wri_log(uint32 prio, const SYSLOG *p_syslog)
+{
+	KERLIBSLG_PRM prm;
+
+	prm.index = KERLIBSLG_ID_SYSLOG_WRI_LOG;
+	prm.prio = prio;
+	prm.p_const_syslog = p_syslog;
+	KernelLibrarySyslog(&prm);
+	return(prm.return_er);
+}
+
+StatusType
+syslog_msk_log(uint32 lowmask)
+{
+	KERLIBSLG_PRM prm;
+
+	prm.index = KERLIBSLG_ID_SYSLOG_MSK_LOG;
+	prm.lowmask = lowmask;
+	KernelLibrarySyslog(&prm);
+	return(prm.return_er);
+}
Index: /atk2-sc3_fl850f1l/sysmod/syslog.h
===================================================================
--- /atk2-sc3_fl850f1l/sysmod/syslog.h	(revision 117)
+++ /atk2-sc3_fl850f1l/sysmod/syslog.h	(revision 117)
@@ -0,0 +1,88 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2011-2015 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2011-2013 by Spansion LLC, USA
+ *  Copyright (C) 2011-2015 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2011-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2011-2015 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2011-2015 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2011-2015 by Witz Corporation
+ *  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by eSOL Co.,Ltd., JAPAN
+ *  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: syslog.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		システムログ機能
+ */
+
+#ifndef TOPPERS_SYSLOG_H
+#define TOPPERS_SYSLOG_H
+
+/*
+ *  システムログ出力を行うための定義
+ */
+#include "t_syslog.h"
+
+/*
+ *  ログバッファとそれにアクセスするためのポインタ
+ */
+#ifndef TCNT_SYSLOG_BUFFER
+#define TCNT_SYSLOG_BUFFER	64      /* ログバッファのサイズ */
+#endif /* TCNT_SYSLOG_BUFFER */
+
+/*
+ *  非信頼OSアプリケーション用システムログ機能の初期化
+ */
+extern void syslog_initialize(void);
+
+/*
+ *  非信頼OSアプリケーション用出力すべきログ情報の重要度の設定
+ */
+extern StatusType syslog_msk_log(uint32 lowmask);
+
+#endif /* TOPPERS_SYSLOG_H */
Index: /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/E_PACKAGE
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/E_PACKAGE	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/E_PACKAGE	(revision 117)
@@ -0,0 +1,11 @@
+E_PACKAGE atk2-sc3_fl850f1l_ccrh
+VERSION %date
+
+INCLUDE MANIFEST
+INCLUDE ../../MANIFEST
+INCLUDE ../../target/fl850f1l_gcc/MANIFEST
+INCLUDE ../../arch/v850_gcc/MANIFEST
+INCLUDE ../../arch/v850_ccrh/MANIFEST
+INCLUDE ../../arch/ccrh/MANIFEST
+INCLUDE ../../arch/ccrh/configure/MANIFEST
+../../cfg/cfg/cfg.exe
Index: /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/MANIFEST
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/MANIFEST	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/MANIFEST	(revision 117)
@@ -0,0 +1,15 @@
+PACKAGE atk2-sc3
+
+E_PACKAGE
+MANIFEST
+target.py
+target.tf
+target_asm.tf
+target_cfg1_out.h
+target_inline_symbols.h
+target_mem.tf
+target_offset.tf
+target_svc.h
+target_syslog.h
+target_test.h
+target_user.txt
Index: /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target.py
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target.py	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target.py	(revision 117)
@@ -0,0 +1,56 @@
+#!python
+# -*- coding: euc-jp -*-
+#
+#  TOPPERS ATK2
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+#      Automotive Kernel Version 2
+#
+#  Copyright (C) 2014 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#
+#  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+# $Id: target.py 164 2015-06-03 01:22:29Z t_ishikawa $
+#
+
+MAIN_CLK = '8000'
+
+INCLUDES = INCLUDES + ["target/fl850f1l_ccrh", "target/fl850f1l_gcc"]
+
+statup_file = 'arch/v850_ccrh/start.asm'
+kernel_target_files = ['target/fl850f1l_gcc/target_config.c','arch/v850_gcc/tauj_hw_counter.c','arch/v850_gcc/uart_rlin.c','arch/v850_gcc/rh850_f1l.c' ]
+
+# soucre prc file
+execfile(srcdir + "arch/v850_ccrh/prc.py")
Index: /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target.tf
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target.tf	(revision 117)
@@ -0,0 +1,101 @@
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+$              Graduate School of Information Science, Nagoya Univ., JAPAN
+$
+$  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+$  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+$  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+$  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+$      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+$      スコード中に含まれていること．
+$  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+$      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+$      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+$      の無保証規定を掲載すること．
+$  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+$      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+$      と．
+$    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+$        作権表示，この利用条件および下記の無保証規定を掲載すること．
+$    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+$        報告すること．
+$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+$      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+$      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+$      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+$      免責すること．
+$
+$  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+$  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+$  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+$  用する者に対して，AUTOSARパートナーになることを求めている．
+$
+$  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+$  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+$  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$  の責任を負わない．
+$
+$  $Id: target.tf 166 2015-06-04 07:11:25Z t_ishikawa $
+$
+
+$
+$     パス2のターゲット依存テンプレート（HSBV850E2FG用）
+$
+$ 
+$  arch/gcc/ldscript.tfのターゲット依存部
+$ 
+
+$ 
+$  カーネルが管理しないセクションを出力する
+$  ターゲット依存で必要なセクション
+$ 
+$FUNCTION GENERATE_SECTION_FIRST$
+    $REG.REGNAME[STANDARD_ROM]$.extend(["RESET","EIINTTBL"])$NL$
+    $NL$
+$END$
+
+$ 
+$  ページサイズとアラインメントの制約
+$  PAGE: MPUのアラインメント制約が16byte
+$  SEC: データRAMの初期化時には16byte単位で初期化する必要がある
+$ 
+$TARGET_PAGE_SIZE_STR = 16$
+$TARGET_SEC_ALIGN_STR = 16$
+
+$
+$  リンカのためのセクション記述の生成
+$
+$FUNCTION SECTION_DESCRIPTION$
+	$IF EQ(ARGV[1], ".text")$
+		$RESULT = "\"*.text *.text.*\""$
+	$ELIF EQ(ARGV[1], ".rodata")$
+		$RESULT = "\"*.rodata *.rodata.*\""$
+	$ELIF EQ(ARGV[1], ".data")$
+		$RESULT = "\"*.data *.data.*\""$
+	$ELIF EQ(ARGV[1], ".bss")$
+		$RESULT = "\"*.bss *.bss.* COMMON\""$
+	$ELIF EQ(ARGV[1], ".rosdata")$
+		$RESULT = "\"*.rosdata\""$
+	$ELIF EQ(ARGV[1], ".sdata")$
+		$RESULT = "\"*.sdata\""$
+	$ELIF EQ(ARGV[1], ".sbss")$
+		$RESULT = "\"*.sbss *.scommon\""$
+	$ELSE$
+		$RESULT = ARGV[1]$
+	$END$
+$END$
+
+$
+$  プロセッサ依存テンプレートのインクルード
+$
+$INCLUDE "v850_ccrh/prc.tf"$
+
+$
+$  アセンブリファイル用のヘッダファイルの生成
+$
+$INCLUDE "target/fl850f1l_ccrh/target_asm.tf"$
Index: /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target_asm.tf
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target_asm.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target_asm.tf	(revision 117)
@@ -0,0 +1,60 @@
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$  Copyright (C) 2013-2014 by Center for Embedded Computing Systems
+$              Graduate School of Information Science, Nagoya Univ., JAPAN
+$  Copyright (C) 2013-2014 by FUJI SOFT INCORPORATED, JAPAN
+$  Copyright (C) 2013-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+$  Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
+$  Copyright (C) 2013-2014 by Sunny Giken Inc., JAPAN
+$  Copyright (C) 2013-2014 by TOSHIBA CORPORATION, JAPAN
+$  Copyright (C) 2013-2014 by Witz Corporation, JAPAN
+$
+$  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+$  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+$  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+$  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+$      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+$      スコード中に含まれていること．
+$  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+$      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+$      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+$      の無保証規定を掲載すること．
+$  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+$      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+$      と．
+$    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+$        作権表示，この利用条件および下記の無保証規定を掲載すること．
+$    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+$        報告すること．
+$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+$      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+$      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+$      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+$      免責すること．
+$
+$  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+$  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+$  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+$  用する者に対して，AUTOSARパートナーになることを求めている．
+$
+$  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+$  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+$  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$  の責任を負わない．
+$
+$  $Id: target_asm.tf 164 2015-06-03 01:22:29Z t_ishikawa $
+$
+
+$
+$  アセンブリファイル用のヘッダファイルの生成
+$
+$FILE "asm_config.inc"$
+
+$
+$  コア依存テンプレートのインクルード（V850用）
+$
+$INCLUDE "v850_ccrh/prc_asm.tf"$
Index: /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target_cfg1_out.h
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target_cfg1_out.h	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target_cfg1_out.h	(revision 117)
@@ -0,0 +1,63 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: target_cfg1_out.h 164 2015-06-03 01:22:29Z t_ishikawa $
+ */
+
+/*
+ *		cfg1_out.cをリンクするために必要なスタブの定義
+ */
+
+/*
+ *	コンパイラ依存のスタブの定義
+ */
+#include "ccrh/tool_cfg1_out.h"
+
+/*
+ *  コア依存のスタブの定義
+ */
+#include "v850_ccrh/prc_cfg1_out.h"
+
+void
+target_hardware_initialize(void)
+{
+}
Index: /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target_inline_symbols.h
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target_inline_symbols.h	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target_inline_symbols.h	(revision 117)
@@ -0,0 +1,56 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  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プロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: target_inline_symbols.h 164 2015-06-03 01:22:29Z t_ishikawa $
+ */
+
+/*
+ *		コンパイラ依存定義
+ */
+
+#ifndef TARGET_INLINE_SYMBOL_H
+#define TARGET_INLINE_SYMBOL_H
+
+#include "prc_inline_symbols.h"
+
+
+#endif /* TARGET_INLINE_SYMBOL_H */
Index: /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target_mem.tf
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target_mem.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target_mem.tf	(revision 117)
@@ -0,0 +1,43 @@
+$ ======================================================================
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$   Copyright (C) 2013 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プロジェクトは，本ソフトウェアに関して，特定の使用目的
+$   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$   の責任を負わない．
+$
+$ =====================================================================
+
+$INCLUDE "v850_ccrh/prc_mem.tf"$
+
+
Index: /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target_offset.tf
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target_offset.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target_offset.tf	(revision 117)
@@ -0,0 +1,66 @@
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+$              Graduate School of Information Science, Nagoya Univ., JAPAN
+$  Copyright (C) 2012-2014 by FUJI SOFT INCORPORATED, JAPAN
+$  Copyright (C) 2012-2013 by Spansion LLC, USA
+$  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+$  Copyright (C) 2012-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+$  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+$  Copyright (C) 2012-2014 by Sunny Giken Inc., JAPAN
+$  Copyright (C) 2012-2014 by TOSHIBA CORPORATION, JAPAN
+$  Copyright (C) 2012-2014 by Witz Corporation, JAPAN
+$
+$  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+$  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+$  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+$  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+$      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+$      スコード中に含まれていること．
+$  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+$      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+$      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+$      の無保証規定を掲載すること．
+$  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+$      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+$      と．
+$    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+$        作権表示，この利用条件および下記の無保証規定を掲載すること．
+$    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+$        報告すること．
+$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+$      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+$      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+$      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+$      免責すること．
+$
+$  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+$  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+$  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+$  用する者に対して，AUTOSARパートナーになることを求めている．
+$
+$  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+$  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+$  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$  の責任を負わない．
+$
+$  $Id: target_offset.tf 164 2015-06-03 01:22:29Z t_ishikawa $
+$
+
+$
+$       オフセットファイル生成用テンプレートファイル（HSBV850E2FG用）
+$
+
+$
+$  標準テンプレートファイルのインクルード
+$
+$INCLUDE "kernel/genoffset.tf"$
+
+$
+$  コア依存テンプレートのインクルード（V850E2用）
+$
+$INCLUDE "v850_ccrh/prc_offset.tf"$
Index: /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target_svc.h
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target_svc.h	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target_svc.h	(revision 117)
@@ -0,0 +1,47 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *	
+ *	Copyright (C) 2013 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プロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *	に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *	アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *	の責任を負わない．
+ *	
+ */
+
+
+#ifndef TOPPERS_TARGET_SVC_H
+#define TOPPERS_TARGET_SVC_H
+
+#include "v850_ccrh/prc_svc.h"
+
+#endif /* TOPPERS_TARGET_SVC_H */
+
Index: /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target_syslog.h
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target_syslog.h	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target_syslog.h	(revision 117)
@@ -0,0 +1,50 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2014-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: target_syslog.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		シスログ機能のプロセッサ依存部
+ */
+
+#ifndef TOPPERS_TARGET_SYSLOG_H
+#define TOPPERS_TARGET_SYSLOG_H
+
+#include "v850_gcc/prc_syslog.h"
+
+#endif /* TOPPERS_TARGET_SYSLOG_H */
Index: /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target_test.h
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target_test.h	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target_test.h	(revision 117)
@@ -0,0 +1,79 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by Spansion LLC, USA
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: target_test.h 164 2015-06-03 01:22:29Z t_ishikawa $
+ */
+
+/*
+ *		テストプログラムのターゲット依存定義（HSBV850E2FG用）
+ */
+
+#ifndef TOPPERS_TARGET_TEST_H
+#define TOPPERS_TARGET_TEST_H
+
+/*
+ *  sample1で使用するアラームの周期（約1秒）
+ */
+#define COUNTER_MIN_CYCLE	((uint32) 8000000)
+
+
+/*
+ *  sample1で使用する例外
+ */
+#pragma inline_asm _raise_cpu_exception
+static void
+_raise_cpu_exception(void)
+{
+	trap 0x6
+}
+
+#define RAISE_CPU_EXCEPTION		_raise_cpu_exception()
+
+#endif /* TOPPERS_TARGET_TEST_H */
Index: /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target_user.txt
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target_user.txt	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_ccrh/target_user.txt	(revision 117)
@@ -0,0 +1,133 @@
+
+		TOPPERS/ATK2-SC3
+        ＜FL-850/F1Lターゲット依存部(CCRH版)マニュアル＞
+
+このドキュメントはFL-850/F1Lターゲット依存部の情報を記述したものである．
+
+----------------------------------------------------------------------
+TOPPERS ATK2
+    Toyohashi Open Platform for Embedded Real-Time Systems
+    Automotive Kernel Version 2
+
+Copyright (C) 2013-2015 by Center for Embedded Computing Systems
+            Graduate School of Information Science, Nagoya Univ., JAPAN
+
+上記著作権者は，以下の (1)〜(3)の条件を満たす場合に限り，本ドキュメ
+ント（本ドキュメントを改変したものを含む．以下同じ）を使用・複製・改
+変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+(1) 本ドキュメントを利用する場合には，上記の著作権表示，この利用条件
+    および下記の無保証規定が，そのままの形でドキュメント中に含まれて
+    いること．
+(2) 本ドキュメントを改変する場合には，ドキュメントを改変した旨の記述
+    を，改変後のドキュメント中に含めること．ただし，改変後のドキュメ
+    ントが，TOPPERSプロジェクト指定の開発成果物である場合には，この限
+    りではない．
+(3) 本ドキュメントの利用により直接的または間接的に生じるいかなる損害
+    からも，上記著作権者およびTOPPERSプロジェクトを免責すること．また，
+    本ドキュメントのユーザまたはエンドユーザからのいかなる理由に基づ
+    く請求からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+
+本ドキュメントは，AUTOSAR（AUTomotive Open System ARchitecture）仕様
+に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するものではな
+い．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利用する
+者に対して，AUTOSARパートナーになることを求めている．
+
+本ドキュメントは，無保証で提供されているものである．上記著作権者およ
+びTOPPERSプロジェクトは，本ドキュメントに関して，特定の使用目的に対す
+る適合性も含めて，いかなる保証も行わない．また，本ドキュメントの利用
+により直接的または間接的に生じたいかなる損害に関しても，その責任を負
+わない．
+
+$Id: target_user.txt 164 2015-06-03 01:22:29Z t_ishikawa $
+----------------------------------------------------------------------
+
+○概要
+
+FL-850/F1Lターゲット依存部（FL-850/F1L依存部）は，ルネサスエレクトロニ
+クス社のRH850/F1Lを搭載したテセラ・テクノロジーのFL-850/F1L-176-Sをサポー
+トしている．
+
+
+○動作確認バージョン
+
+動作確認を行ったコンパイラのバージョンは次の通りである．
+
+ CC-RH V1.01.00
+
+  
+○ログ出力
+
+ログ出力のため，RLIN3のポート5を使用する．
+
+データフォーマットは，
+
+・115200bps、データ8bit、パリティなし、ストップ1bit、フロー制御なし
+
+である．
+
+
+○ハードウェアカウンタ
+
+・サンプルプログラムにて，TAUJ0, TAUJ1を使用．
+・1個のカウンタに2つのタイマを使用している．
+    差分タイマ：目的の時間を設定する時の現在時間(現在値タイマ)と次の満
+    了時間との相対時間をカウントすることで目的の絶対時間に満了したこと
+    とする.
+        count mode:count down once
+    現在値タイマ：カウンタ周期分のベースタイマを実現(絶対時間をカウント)
+        count mode:continuous count down
+・使用カウンタ情報
+    カウンタ名：MAIN_HW_COUNTER
+        差分タイマ：TAUJ0
+        現在値タイマ：TAUJ1
+        1ティック当たりの秒数：1/TIMER_CLOCK_HZ
+
+
+○ビルド及びデバッグ環境
+
+ビルド及びデバッグ環境はCS+を使用する．動作確認を行ったバージョンは次
+の通りである．
+
+ CS+ V3.00.00
+ (IronPythonコンソール・プラグイン 使用)
+ 
+ビルドの手順は次の通りである． 
+ 
+----- ここから追記 -----
+0. arch/v850_ccrh/sample/* を sample/ にコピー．
+----- ここまで追記 -----
+
+1../arch/ccrh/configure をatk2-sc3のソース以下の適当なフォルダにコピー．
+
+2../arch/ccrh/configure/def.py の内容を編集．最低限以下を変更する必要があ
+  る．
+
+ SRCDIR 
+ TARGET_MCU
+ 
+3. configure.mtpj を開き，atk2-sc3 のプロジェクトファイルが作成される
+  のを待つ．
+  
+----- ここから追記 -----
+4.アクティブプロジェクトをcfgに変更し，ビルドする．
+  メニューから ビルド -> ビルド・プロジェクト を選択する．
+　※エラーとなり，プロジェクトが閉じますが問題ありません．詳細は，
+    arch/v850_ccrh/prc_design を参照してください．
+
+5.プロジェクトが閉じるので，atk2-sc3 のプロジェクトファイルを再度開き，
+　cfg_pass4 をアクティブプロジェクトに変更し，ビルドする．
+
+6.atk2-sc3 をアクティブプロジェクトに変更し，ビルドする．
+
+7.デバッグ    
+----- ここまで追記 -----
+ 
+ 
+○変更履歴
+2015/04/07
+・COUNTER_MIN_CYCLEの定義を追加
+
+2014/07/19
+・新規作成
+ 
+以上 
Index: /atk2-sc3_fl850f1l/target/fl850f1l_gcc/E_PACKAGE
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_gcc/E_PACKAGE	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_gcc/E_PACKAGE	(revision 117)
@@ -0,0 +1,7 @@
+E_PACKAGE atk2-sc3_fl850f1l_gcc
+VERSION %date
+
+INCLUDE MANIFEST
+INCLUDE ../../MANIFEST
+INCLUDE ../../arch/v850_gcc/MANIFEST
+../../cfg/cfg/cfg.exe
Index: /atk2-sc3_fl850f1l/target/fl850f1l_gcc/MANIFEST
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_gcc/MANIFEST	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_gcc/MANIFEST	(revision 117)
@@ -0,0 +1,30 @@
+PACKAGE atk2-sc3
+
+E_PACKAGE
+fl850f1l.h
+Makefile.target
+MANIFEST
+target.tf
+target_cfg1_out.h
+target_check.tf
+target_config.c
+target_config.h
+target_hw_counter.arxml
+target_hw_counter.h
+target_hw_counter.yaml
+target_kernel.h
+target_mem.arxml
+target_mem.h
+target_mem.tf
+target_mem.yaml
+target_mpu.h
+target_offset.tf
+target_opt.tf
+target_serial.arxml
+target_serial.h
+target_serial.yaml
+target_svc.h
+target_syslog.h
+target_sysmod.h
+target_test.h
+target_user.txt
Index: /atk2-sc3_fl850f1l/target/fl850f1l_gcc/Makefile.target
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_gcc/Makefile.target	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_gcc/Makefile.target	(revision 117)
@@ -0,0 +1,143 @@
+#
+#  TOPPERS ATK2
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+#      Automotive Kernel Version 2
+#
+#  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#
+#  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+#  $Id: Makefile.target 187 2015-06-25 03:39:04Z t_ishikawa $
+#
+
+#
+#		Makefile のターゲット依存部（FL-850/F1L用）
+#
+
+#
+#  ボード名の定義
+#
+BOARD = FL-850/F1L
+
+#
+#  GNU開発環境のターゲットアーキテクチャの定義
+#
+GCC_TARGET = v850-elf
+
+#
+#  アーキテクチャ指定
+#
+ARCH = V850E3V5
+
+#
+#  コア指定
+#
+CORETYPE = RH850G3K
+
+#
+#  ボード毎に設定が異なる項目
+#
+CDEFS := $(CDEFS) -DTOPPERS_LABEL_ASM
+CFG1_OUT_LDSCRIPT = $(SRCDIR)/arch/v850_gcc/rh850_f1l_2m.ld
+
+#
+#  コンパイルオプション
+#
+INCLUDES := $(INCLUDES) -I$(TARGETDIR)
+
+#
+#  サポート命令毎のコンパイルオプション
+#
+# ノーマル
+COPTS := $(COPTS)
+
+#
+#  カーネルに関する定義
+#
+KERNEL_DIR := $(KERNEL_DIR) $(TARGETDIR)
+KERNEL_ASMOBJS := $(KERNEL_ASMOBJS)
+KERNEL_COBJS := $(KERNEL_COBJS) target_config.o rh850_f1l.o tauj_hw_counter.o
+
+#
+#  システムタイマに関する設定
+#
+ifeq ($(ENABLE_SYS_TIMER),true)
+      CDEFS := $(CDEFS) -DTOPPERS_ENABLE_SYS_TIMER
+      KERNEL_COBJS := $(KERNEL_COBJS) taua_timer.o
+endif
+
+#
+#  システムサービスに関する定義
+#
+SYSMOD_DIR := $(SYSMOD_DIR) $(TARGETDIR)
+SYSMOD_COBJS := $(SYSMOD_COBJS) uart_rlin.o
+
+#
+#  コンフィギュレーション設定
+#
+ifeq ($(findstring target_timer,$(CFGNAME)),target_timer)
+  CFGNAME := $(CFGNAME) taua_timer
+endif
+ifeq ($(findstring target_serial,$(CFGNAME)),target_serial)
+  CFGNAME := $(CFGNAME) uart
+endif
+
+#
+#  依存関係の定義
+#
+Os_Lcfg.timestamp: $(TARGETDIR)/target.tf
+$(OBJFILE): $(TARGETDIR)/target_mem.tf
+offset.h: $(TARGETDIR)/target_offset.tf
+
+#
+#  オフセットファイル生成のための定義
+#
+OFFSET_TF := $(TARGETDIR)/target_offset.tf
+
+#
+#  プロセッサ依存部のインクルード
+#
+include $(SRCDIR)/arch/v850_gcc/Makefile.prc
+
+#
+#  実行モジュールのロード＆実行
+#
+run: $(OBJNAME).exe
+	@sh $(SRCDIR)/arch/v850_gcc/autorun/exe.sh $(SRCDIR) $(TARGET)
+
+urun: $(OBJNAME).exe
+	@sh $(SRCDIR)/arch/v850_gcc/autorun/exe.sh $(SRCDIR) $(TARGET) &
+	@ruby $(SRCDIR)/arch/v850_gcc/autorun/com_port.rb
Index: /atk2-sc3_fl850f1l/target/fl850f1l_gcc/fl850f1l.h
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_gcc/fl850f1l.h	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_gcc/fl850f1l.h	(revision 117)
@@ -0,0 +1,122 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: fl850f1l.h 164 2015-06-03 01:22:29Z t_ishikawa $
+ */
+/*
+ *		FL-850/F1Lボードの定義
+ */
+
+#ifndef TOPPERS_FL850F1L_H
+#define TOPPERS_FL850F1L_H
+
+#include "v850_gcc/rh850_f1l.h"
+
+/*
+ *  クロック速度
+ */
+
+/*
+ *  PLL関連の定義
+ */
+#define MAINOSC_CLOCK_MHZ	8       /* Main OSC is 8MHz */
+#define SUBOSC_CLOCK_KHZ	32768   /* Sub OSC is 32.768kHz */
+#define INTOSCH_CLK_MHZ		8       /* High Speed Internal OSC Clock is 8MHz */
+#define INTOSCL_CLK_KHZ		240     /* Low Speed Internal OSC Clock is 240kHz */
+
+#define PLL_CLK_MHZ		80  /* PLL is 80MHz */
+#define PLLC_OUTBSEL	0   /* PLLOUTBSEL */
+#define PLLC_mr			1   /* M[1:0]   */
+#define PLLC_par		4   /* PA[2:0]  */
+#define PLLC_nr			40  /* N[5:0]+1 */
+
+/*
+ * Port 8 Configuration for LED
+ *   P8_4: LED4(OUT)
+ *   P8_5: LED3(OUT)
+ *   P8_6: LED2(OUT)
+ *   P8_7: LED1(OUT)
+ */
+#define LED_P8_MASK				((uint16) 0x00F0)
+#define LED_PM8_INIT			((uint16) 0xFF0F)
+#define LED_P8_INIT				((uint16) 0x00F0)
+
+#ifndef _PIN_100_
+
+/*
+ *  Port 1 Configration for RLIN35
+ *   P1_5 : RLIN35TX
+ *   P1_4 : RLIN35RX
+ */
+#define RLIN35_P1_MASK			((uint16) 0x0030)
+#define RLIN35_PMC1_INIT		((uint16) 0x0030)
+#define RLIN35_PFC1_INIT		((uint16) 0x0000)
+#define RLIN35_PM1_INIT			((uint16) 0x0010)
+#define RLIN35_PIBC1_INIT		((uint16) 0x0010)
+
+#else /* _PIN_100_ */
+
+/*
+ *  Port 0 Configration for RLIN35
+ *   P0_13 : RLIN32RX
+ *   P0_14 : RLIN32TX
+ */
+#define RLIN32_P0_MASK			((uint16) 0x6000)
+#define RLIN32_PMC0_INIT		((uint16) 0x6000)
+#define RLIN32_PFCAE0_INIT		((uint16) 0x0000)
+#define RLIN32_PFCE0_INIT		((uint16) 0x0000)
+#define RLIN32_PFC0_INIT		((uint16) 0x0000)
+#define RLIN32_PM0_INIT			((uint16) 0x2000)
+#define RLIN32_PIBC0_INIT		((uint16) 0x2000)
+
+#endif /* _PIN_100_ */ 
+
+/*
+ * Macro for fl850_led_output
+ */
+#define POS_LED1				((uint16) 0x01)
+#define POS_LED2				((uint16) 0x02)
+#define POS_LED3				((uint16) 0x04)
+#define POS_LED4				((uint16) 0x08)
+#define POS_LED_ALL				((uint16) 0x0F)
+
+#endif /* TOPPERS_FL850F1L_H */
Index: /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target.tf
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target.tf	(revision 117)
@@ -0,0 +1,109 @@
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+$              Graduate School of Information Science, Nagoya Univ., JAPAN
+$  Copyright (C) 2012-2014 by FUJI SOFT INCORPORATED, JAPAN
+$  Copyright (C) 2012-2013 by Spansion LLC, USA
+$  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+$  Copyright (C) 2012-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+$  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+$  Copyright (C) 2012-2014 by Sunny Giken Inc., JAPAN
+$  Copyright (C) 2012-2014 by TOSHIBA CORPORATION, JAPAN
+$  Copyright (C) 2012-2014 by Witz Corporation, JAPAN
+$
+$  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+$  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+$  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+$  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+$      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+$      スコード中に含まれていること．
+$  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+$      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+$      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+$      の無保証規定を掲載すること．
+$  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+$      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+$      と．
+$    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+$        作権表示，この利用条件および下記の無保証規定を掲載すること．
+$    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+$        報告すること．
+$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+$      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+$      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+$      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+$      免責すること．
+$
+$  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+$  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+$  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+$  用する者に対して，AUTOSARパートナーになることを求めている．
+$
+$  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+$  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+$  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$  の責任を負わない．
+$
+$  $Id: target.tf 164 2015-06-03 01:22:29Z t_ishikawa $
+$
+
+$
+$     パス2のターゲット依存テンプレート（FL-850/F1L用）
+$
+
+$ 
+$  arch/gcc/ldscript.tfのターゲット依存部
+$ 
+
+$ 
+$  カーネルが管理しないセクションを出力する
+$  ターゲット依存で必要なセクション
+$ 
+$FUNCTION GENERATE_SECTION_FIRST$
+    $TAB$.vector : AT(0) {$NL$
+    $TAB$$TAB$*("*.reset.text")$NL$
+    $TAB$$TAB$. += 1;$NL$
+    $TAB$$TAB$. = ALIGN(16);$NL$
+    $TAB$} > $REG.REGNAME[STANDARD_ROM]$$NL$
+    $NL$
+$END$
+
+$ 
+$  ページサイズとアラインメントの制約
+$  PAGE: MPUのアラインメント制約が16byte
+$  SEC: データRAMの初期化時には16byte単位で初期化する必要がある
+$  
+$TARGET_PAGE_SIZE_STR = 16$
+$TARGET_SEC_ALIGN_STR = 16$
+
+$
+$  リンカのためのセクション記述の生成
+$
+$FUNCTION SECTION_DESCRIPTION$
+	$IF EQ(ARGV[1], ".text")$
+		$RESULT = "*.text *.text.*"$
+	$ELIF EQ(ARGV[1], ".rodata")$
+		$RESULT = "*.rodata *.rodata.*"$
+	$ELIF EQ(ARGV[1], ".data")$
+		$RESULT = "*.data *.data.*"$
+	$ELIF EQ(ARGV[1], ".bss")$
+		$RESULT = "*.bss *.bss.* COMMON"$
+	$ELIF EQ(ARGV[1], ".rosdata")$
+		$RESULT = "*.rosdata"$
+	$ELIF EQ(ARGV[1], ".sdata")$
+		$RESULT = "*.sdata"$
+	$ELIF EQ(ARGV[1], ".sbss")$
+		$RESULT = "*.sbss *.scommon"$
+	$ELSE$
+		$RESULT = ARGV[1]$
+	$END$
+$END$
+
+$
+$  プロセッサ依存テンプレートのインクルード
+$
+$INCLUDE "v850_gcc/prc.tf"$
Index: /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_cfg1_out.h
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_cfg1_out.h	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_cfg1_out.h	(revision 117)
@@ -0,0 +1,65 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by Spansion LLC, USA
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: target_cfg1_out.h 164 2015-06-03 01:22:29Z t_ishikawa $
+ */
+
+/*
+ *		cfg1_out.cをリンクするために必要なスタブの定義
+ */
+
+/*
+ *  コア依存のスタブの定義
+ */
+#include "v850_gcc/prc_cfg1_out.h"
+void
+target_hardware_initialize(void)
+{
+}
Index: /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_check.tf
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_check.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_check.tf	(revision 117)
@@ -0,0 +1,61 @@
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+$              Graduate School of Information Science, Nagoya Univ., JAPAN
+$  Copyright (C) 2012-2014 by FUJI SOFT INCORPORATED, JAPAN
+$  Copyright (C) 2012-2013 by Spansion LLC, USA
+$  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+$  Copyright (C) 2012-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+$  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+$  Copyright (C) 2012-2014 by Sunny Giken Inc., JAPAN
+$  Copyright (C) 2012-2014 by TOSHIBA CORPORATION, JAPAN
+$  Copyright (C) 2012-2014 by Witz Corporation, JAPAN
+$
+$  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+$  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+$  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+$  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+$      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+$      スコード中に含まれていること．
+$  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+$      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+$      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+$      の無保証規定を掲載すること．
+$  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+$      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+$      と．
+$    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+$        作権表示，この利用条件および下記の無保証規定を掲載すること．
+$    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+$        報告すること．
+$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+$      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+$      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+$      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+$      免責すること．
+$
+$  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+$  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+$  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+$  用する者に対して，AUTOSARパートナーになることを求めている．
+$
+$  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+$  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+$  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$  の責任を負わない．
+$
+$  $Id: target_check.tf 164 2015-06-03 01:22:29Z t_ishikawa $
+$
+
+$
+$     パス3のターゲット依存テンプレート（FL-850/F1L用）
+$
+
+$
+$  コア依存のテンプレートのインクルード
+$
+$INCLUDE "v850_gcc/prc_check.tf"$
Index: /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_config.c
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_config.c	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_config.c	(revision 117)
@@ -0,0 +1,311 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by Spansion LLC, USA
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: target_config.c 164 2015-06-03 01:22:29Z t_ishikawa $
+ */
+
+/*
+ *		ターゲット依存モジュール（FL-850/F1L用）
+ */
+
+#include "kernel_impl.h"
+#include "v850_gcc/uart_rlin.h"
+#include "v850_gcc/prc_sil.h"
+#include "target_sysmod.h"
+#ifdef ENABLE_RETURN_MAIN
+#include "interrupt.h"
+#endif /* ENABLE_RETURN_MAIN */
+#ifdef TOPPERS_ENABLE_TRACE
+#include "logtrace/trace_config.h"
+#endif /* TOPPERS_ENABLE_TRACE */
+
+/*
+ *  文字列の出力
+ */
+void
+target_fput_str(const char8 *c)
+{
+	while (*c != '\0') {
+		uart_putc(*c);
+		c++;
+	}
+	uart_putc('\n');
+}
+
+void
+fl850_led_output(uint8 pattern)
+{
+	uint16 wk;
+
+	pattern = ~pattern;
+	wk = sil_reh_mem((void *) P(8));
+	wk &= ~LED_P8_MASK;
+	wk |= (pattern & LED_P8_MASK);
+	sil_wrh_mem((void *) P(8), wk);
+}
+
+/*
+ *  ポートの初期設定
+ */
+void
+target_port_initialize(void)
+{
+	uint16 wk;
+
+	/*
+	 * PORT8(LED)
+	 */
+	/* PM8 設定 */
+	wk = sil_reh_mem((void *) PM(8));
+	wk &= ~LED_P8_MASK;
+	wk |= (LED_PM8_INIT & LED_P8_MASK);
+	sil_wrh_mem((void *) PM(8), wk);
+
+	/* P8 設定 */
+	wk = sil_reh_mem((void *) P(8));
+	wk &= ~LED_P8_MASK;
+	wk |= (LED_P8_INIT & LED_P8_MASK);
+	sil_wrh_mem((void *) P(8), wk);
+
+#ifndef _PIN_100_
+	/*
+	 * PORT1(RLIN35)
+	 */
+	/* PFC1 設定 */
+	wk = sil_reh_mem((void *) PFC(1));
+	wk &= ~RLIN35_P1_MASK;
+	wk |= (RLIN35_PFC1_INIT & RLIN35_P1_MASK);
+	sil_wrh_mem((void *) PFC(1), wk);
+
+	/* PMC1 設定 */
+	wk = sil_reh_mem((void *) PMC(1));
+	wk &= ~RLIN35_P1_MASK;
+	wk |= (RLIN35_PMC1_INIT & RLIN35_P1_MASK);
+	sil_wrh_mem((void *) PMC(1), wk);
+
+	/* PM1 設定 */
+	wk = sil_reh_mem((void *) PM(1));
+	wk &= ~RLIN35_P1_MASK;
+	wk |= (RLIN35_PM1_INIT & RLIN35_P1_MASK);
+	sil_wrh_mem((void *) PM(1), wk);
+
+	/* PIBC1 設定 */
+	wk = sil_reh_mem((void *) PIBC(1));
+	wk &= ~RLIN35_P1_MASK;
+	wk |= (RLIN35_PIBC1_INIT & RLIN35_P1_MASK);
+	sil_wrh_mem((void *) PIBC(1), wk);
+
+#else /* _PIN_100_ */
+
+	/*
+	 * PORT0(RLIN32)
+	 */
+	/* PFCAE0 設定 */
+	wk = sil_reh_mem((void *) PFCAE(0));
+	wk &= ~RLIN32_P0_MASK;
+	wk |= (RLIN32_PFCAE0_INIT & RLIN32_P0_MASK);
+	sil_wrh_mem((void *) PFCAE(0), wk);
+
+	/* PFCE0 設定 */
+	wk = sil_reh_mem((void *) PFCE(0));
+	wk &= ~RLIN32_P0_MASK;
+	wk |= (RLIN32_PFCE0_INIT & RLIN32_P0_MASK);
+	sil_wrh_mem((void *) PFCE(0), wk);
+
+	/* PFC0 設定 */
+	wk = sil_reh_mem((void *) PFC(0));
+	wk &= ~RLIN32_P0_MASK;
+	wk |= (RLIN32_PFC0_INIT & RLIN32_P0_MASK);
+	sil_wrh_mem((void *) PFC(0), wk);
+
+	/* PMC0 設定 */
+	wk = sil_reh_mem((void *) PMC(0));
+	wk &= ~RLIN32_P0_MASK;
+	wk |= (RLIN32_PMC0_INIT & RLIN32_P0_MASK);
+	sil_wrh_mem((void *) PMC(0), wk);
+
+	/* PM0 設定 */
+	wk = sil_reh_mem((void *) PM(0));
+	wk &= ~RLIN32_P0_MASK;
+	wk |= (RLIN32_PM0_INIT & RLIN32_P0_MASK);
+	sil_wrh_mem((void *) PM(0), wk);
+
+	/* PIBC0 設定 */
+	wk = sil_reh_mem((void *) PIBC(0));
+	wk &= ~RLIN32_P0_MASK;
+	wk |= (RLIN32_PIBC0_INIT & RLIN32_P0_MASK);
+	sil_wrh_mem((void *) PIBC(0), wk);
+
+#endif /* _PIN_100_ */ 
+}
+
+/*
+ *  クロック関係の初期化
+ */
+void
+target_clock_initialize(void)
+{
+	uint32 errcnt = 0;
+
+	/* Init Main Clock */
+	if (EnableMainOSC(MHz(MAINOSC_CLOCK_MHZ)) != UC_SUCCESS) {
+		errcnt++;
+	}
+
+	/* Init PLL */
+	if (EnablePLL() != UC_SUCCESS) {
+		errcnt++;
+	}
+
+	/* Set CPU Clock */
+	if (SetClockSelection(CKSC_CPUCLKS_CTL, CKSC_CPUCLKS_ACT,
+						  PNO_CtrlProt1, 0x03, /* 80MHz f_CPUCLK */
+						  CKSC_CPUCLKD_CTL, CKSC_CPUCLKD_ACT,
+						  0x01) != UC_SUCCESS) {
+		errcnt++;
+	}
+
+	if (errcnt > 0) {
+		infinite_loop();
+	}
+}
+
+/*
+ *  ターゲット依存のハードウェアの初期化
+ *  スターアップルーチンから呼び出される．
+ */
+void
+target_hardware_initialize(void)
+{
+	/* クロックの初期設定 */
+	target_clock_initialize();
+
+	/* ポートの初期設定 */
+	target_port_initialize();
+}
+
+/*
+ *  ターゲット依存の初期化
+ */
+void
+target_initialize(void)
+{
+	/*
+	 *  V850依存の初期化
+	 */
+	prc_initialize();
+
+
+
+#ifdef TOPPERS_ENABLE_TRACE
+	/*
+	 *  トレースログ機能の初期化
+	 */
+	trace_initialize((uintptr) (TRACE_AUTOSTOP));
+#endif /* TOPPERS_ENABLE_TRACE */
+}
+
+/*
+ *  ターゲット依存の終了処理
+ */
+void
+target_exit(void)
+{
+#ifdef TOPPERS_ENABLE_TRACE
+	/*
+	 *  トレースログのダンプ
+	 */
+	trace_dump(target_fput_log);
+#endif /* TOPPERS_ENABLE_TRACE */
+
+#ifndef ENABLE_RETURN_MAIN
+	/*
+	 *  シャットダウン処理の出力
+	 */
+	target_fput_str("Kernel Exit...");
+#else
+	target_fput_str("Kernel Shutdown...");
+#endif /* ENABLE_RETURN_MAIN */
+
+	/*
+	 *  FL-850/F1L依存の終了処理
+	 */
+	prc_terminate();
+
+#ifdef ENABLE_RETURN_MAIN
+	p_ctxosap = NULL;
+	kerflg = FALSE;
+	except_nest_cnt = 0U;
+	nested_lock_os_int_cnt = 0U;
+	hook_savedsp = 0U;
+	shutdown_hook_savedsp = 0U;
+    sus_all_cnt = 0U;
+    sus_all_cnt_ctx = 0U;
+    sus_os_cnt = 0U;
+    sus_os_cnt_ctx = 0U;
+
+	/* スタックポインタの初期化とmain()の呼び出し */
+	return_main();
+#endif /* ENABLE_RETURN_MAIN */
+
+	infinite_loop();
+}
+
+/*
+ *  ターゲット依存の文字出力
+ */
+void
+target_fput_log(char8 c)
+{
+	if (c == '\n') {
+		uart_putc('\r');
+	}
+	uart_putc(c);
+}
Index: /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_config.h
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_config.h	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_config.h	(revision 117)
@@ -0,0 +1,107 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by Spansion LLC, USA
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: target_config.h 164 2015-06-03 01:22:29Z t_ishikawa $
+ */
+
+/*
+ *		ターゲット依存モジュール（FL-850/F1L用）
+ *
+ *  カーネルのターゲット依存部のインクルードファイル
+ *  kernel_impl.hのターゲット依存部の位置付けとなる
+ */
+
+#ifndef TOPPERS_TARGET_CONFIG_H
+#define TOPPERS_TARGET_CONFIG_H
+
+/*
+ *  トレースログに関する設定
+ */
+#ifdef TOPPERS_ENABLE_TRACE
+#include "logtrace/trace_config.h"
+#endif /* TOPPERS_ENABLE_TRACE */
+
+#ifndef TOPPERS_MACRO_ONLY
+
+extern void *p_ctxosap;
+
+extern void target_hardware_initialize(void);
+
+/*
+ *  ターゲットシステム依存の初期化
+ */
+extern void target_initialize(void);
+
+/*
+ *  ターゲットシステムの終了
+ *  システムを終了する時に使う
+ */
+extern void target_exit(void) NoReturn;
+
+/*
+ *  文字列の出力
+ */
+extern void target_fput_str(const char8 *c);
+
+/*
+ *  デバック用LED出力
+ */
+extern void fl850_led_output(uint8 pattern);
+
+#define TARGET_SVC_TABLE	PRC_SVC_TABLE
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+/*
+ *  プロセッサ依存モジュール（V850用）
+ */
+#include "v850_gcc/prc_config.h"
+
+#endif /* TOPPERS_TARGET_CONFIG_H */
Index: /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_hw_counter.arxml
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_hw_counter.arxml	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_hw_counter.arxml	(revision 117)
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="EUC-JP"?>
+<!-- Generated by ABREX Ver. 1.1.0 -->
+<AUTOSAR xmlns="http://autosar.org/schema/r4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://autosar.org/schema/r4.0 AUTOSAR_4-0-3_STRICT.xsd">
+	<AR-PACKAGES>
+		<AR-PACKAGE>
+			<SHORT-NAME>Ecuc</SHORT-NAME>
+			<ELEMENTS>
+				<ECUC-MODULE-CONFIGURATION-VALUES>
+					<SHORT-NAME>Os</SHORT-NAME>
+					<DEFINITION-REF DEST="ECUC-MODULE-DEF">/AUTOSAR/EcucDefs/Os</DEFINITION-REF>
+					<ECUC-DEF-EDITION>4.2.0</ECUC-DEF-EDITION>
+					<IMPLEMENTATION-CONFIG-VARIANT>VARIANT-PRE-COMPILE</IMPLEMENTATION-CONFIG-VARIANT>
+					<CONTAINERS>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>OsInclude</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsInclude</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsInclude/OsIncludeFileName</DEFINITION-REF>
+									<VALUE>target_hw_counter.h</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>TRUSTED_OSAP_for_MAIN_HW_COUNTER</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsTrusted</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppCounterRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/MAIN_HW_COUNTER</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsAppIsrRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/C2ISR_for_MAIN_HW_COUNTER</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+							<SUB-CONTAINERS>
+								<ECUC-CONTAINER-VALUE>
+									<SHORT-NAME>OsApplicationHooks</SHORT-NAME>
+									<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks</DEFINITION-REF>
+									<PARAMETER-VALUES>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppErrorHook</DEFINITION-REF>
+											<VALUE>false</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppShutdownHook</DEFINITION-REF>
+											<VALUE>false</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+										<ECUC-NUMERICAL-PARAM-VALUE>
+											<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsApplication/OsApplicationHooks/OsAppStartupHook</DEFINITION-REF>
+											<VALUE>false</VALUE>
+										</ECUC-NUMERICAL-PARAM-VALUE>
+									</PARAMETER-VALUES>
+								</ECUC-CONTAINER-VALUE>
+							</SUB-CONTAINERS>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>MAIN_HW_COUNTER</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsCounter</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterMaxAllowedValue</DEFINITION-REF>
+									<VALUE>536870911</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterMinCycle</DEFINITION-REF>
+									<VALUE>4000</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterTicksPerBase</DEFINITION-REF>
+									<VALUE>10</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-FLOAT-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsSecondsPerTick</DEFINITION-REF>
+									<VALUE>1.25e-07</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterType</DEFINITION-REF>
+									<VALUE>HARDWARE</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsCounter/OsCounterIsrRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/C2ISR_for_MAIN_HW_COUNTER</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>C2ISR_for_MAIN_HW_COUNTER</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsIsr</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrInterruptNumber</DEFINITION-REF>
+									<VALUE>HWC_DTIM_INTNO</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrInterruptPriority</DEFINITION-REF>
+									<VALUE>HWC_DTIM_INTPRI</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrCategory</DEFINITION-REF>
+									<VALUE>CATEGORY_2</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsIsr/OsIsrInterruptSource</DEFINITION-REF>
+									<VALUE>ENABLE</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+					</CONTAINERS>
+				</ECUC-MODULE-CONFIGURATION-VALUES>
+			</ELEMENTS>
+		</AR-PACKAGE>
+	</AR-PACKAGES>
+</AUTOSAR>
Index: /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_hw_counter.h
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_hw_counter.h	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_hw_counter.h	(revision 117)
@@ -0,0 +1,258 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2014 by Spansion LLC, USA
+ *  Copyright (C) 2014 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: target_hw_counter.h 165 2015-06-04 05:24:57Z t_ishikawa $
+ */
+
+/*
+ *		ハードウェアカウンタのターゲット依存定義（fl850f1l用）
+ */
+
+#ifndef TOPPERS_TARGET_HW_COUNTER_H
+#define TOPPERS_TARGET_HW_COUNTER_H
+
+/*
+ *  使用するタイマーのユニット番号と差分タイマと現在値タイマのチャネル
+ */
+#define HWC_DTIM_UNIT  0  /* 0 or 1 */
+#define HWC_DTIM_ID    0
+#define HWC_CTIM_UNIT  0  /* 0 or 1 */
+#define HWC_CTIM_ID    1
+
+/*
+ *  割込み番号
+ */
+#if (HWC_DTIM_UNIT == 0)
+#define HWC_DTIM_INTNO  (TAUFJ0I0_INTNO + HWC_DTIM_ID)
+#elif (HWC_DTIM_UNIT == 1)
+#define HWC_DTIM_INTNO  (TAUFJ1I0_INTNO + HWC_DTIM_ID)
+#else /*(HWC_DTIM_UNIT == 1) */
+#error define HWC_UNIT  0 or 1.
+#endif /* (HWC_DTIM_UNIT == 0) */
+
+/*
+ *  割込み優先度
+ */
+#define HWC_DTIM_INTPRI  1
+
+/*
+ *  タイマクロック周波数（Hz）（8MHz）
+ */
+#define TIMER_CLOCK_HZ		((uint32) 8000000)
+
+/*
+ *  TAUJ関連レジスタ
+ */
+#define TAUJ_BASE(n)	((uint32) (0xffe50000U + (n * 0x1000U)))
+#define TAUJTPS(n)		(TAUJ_BASE(n) + 0x90U)
+#define TAUJCDR(n, ch)	(TAUJ_BASE(n) + (ch * 0x04U))
+#define TAUJCNT(n, ch)	(TAUJ_BASE(n) + 0x10U + (ch * 0x04U))
+#define TAUJCMOR(n, ch)	(TAUJ_BASE(n) + 0x80U + (ch * 0x04U))
+#define TAUJCMUR(n, ch)	(TAUJ_BASE(n) + 0x20U + (ch * 0x04U))
+#define TAUJTS(n)		(TAUJ_BASE(n) + 0x54U)
+#define TAUJTT(n)		(TAUJ_BASE(n) + 0x58U)
+
+#define MCU_TAUJ_MASK_CK0				((uint16) 0xfff0)
+#define MCU_TAUJ_CK0_0					((uint16) 0x0000) /* 分周なし */
+#define MCU_TAUJ00_CMOR					((uint16) 0x0000)
+#define MCU_TAUJ00_CMUR					((uint8) 0x01)
+
+/*
+ *  TAUJのユニット番号とチャネルから入力割込み番号への変換
+ */
+#define TAUJ_INTNO(n, ch)	(n == 0)? ((uint32) ((TAUFJ0I0_INTNO + ch))) : ((uint32) (TAUFJ1I0_INTNO + ch))
+
+/*
+ *  割込み要求のクリア
+ */
+LOCAL_INLINE void
+HwcounterClearInterrupt(uint32 intno)
+{
+	/* 割込み制御レジスタ */
+	uint32 eic_address = EIC_ADDRESS(intno);
+
+	/* 割込み要求ビットのクリア */
+	sil_wrh_mem((void *) eic_address,
+				sil_reh_mem((void *) eic_address) & ~EIRFn);
+}
+
+/*
+ *  割込み禁止／許可設定
+ */
+LOCAL_INLINE void
+HwcounterDisableInterrupt(uint32 intno)
+{
+	/* 割込み制御レジスタ */
+	uint32 eic_address = EIC_ADDRESS(intno);
+
+	/* 割込みマスクビットのセット */
+	sil_wrh_mem((void *) eic_address,
+				sil_reh_mem((void *) eic_address) | EIMKn);
+}
+
+LOCAL_INLINE void
+HwcounterEnableInterrupt(uint32 intno)
+{
+	/* 割込み制御レジスタ */
+	uint32 eic_address = EIC_ADDRESS(intno);
+
+	/* 割込みマスクビットのセット */
+	sil_wrh_mem((void *) eic_address,
+				sil_reh_mem((void *) eic_address) & ~EIMKn);
+}
+
+/*
+ *  TAUJn タイマの動作開始／停止処理
+ */
+LOCAL_INLINE void
+SetTimerStartTAUJ(uint8 n, uint8 ch)
+{
+	/* タイマ開始処理 */
+	sil_wrh_mem((void *) TAUJTS(n), (1 << ch));
+}
+
+LOCAL_INLINE void
+SetTimerStopTAUJ(uint8 n, uint8 ch)
+{
+	/* タイマ停止処理 */
+	sil_wrh_mem((void *) TAUJTT(n), (1 << ch));
+}
+
+/*
+ *  TAUJnハードウェアカウンタ現在ティック値取得
+ */
+LOCAL_INLINE TickType
+GetCurrentTimeTAUJ(uint8 n, uint8 ch, TickType maxval)
+{
+	TickType	count;
+	TickType	curr_time = 0U;
+
+	count = sil_rew_mem((void *) (TAUJCNT(n, ch)));
+
+	/* ダウンカウンタの為，現在チック値に変換 */
+	curr_time = maxval - count;
+	curr_time = (curr_time % maxval);
+
+	return(curr_time);
+}
+
+/*
+ *  TAUB関連レジスタ
+ */
+#define TAUB_BASE(n)	((uint32) (0xffe30000U + (n * 0x1000U)))
+#define TAUBTPS(n)		(TAUB_BASE(n) + 0x240U)
+#define TAUBCDR(n, ch)	(TAUB_BASE(n) + (ch * 0x04U))
+#define TAUBCNT(n, ch)	(TAUB_BASE(n) + 0x80U + (ch * 0x04U))
+#define TAUBCMOR(n, ch)	(TAUB_BASE(n) + 0x2000U + (ch * 0x04U))
+#define TAUBCMUR(n, ch)	(TAUB_BASE(n) + 0xC0U + (ch * 0x04U))
+#define TAUBTS(n)		(TAUB_BASE(n) + 0x1C4U)
+#define TAUBTT(n)		(TAUB_BASE(n) + 0x1C8U)
+
+#define MCU_TAUB_MASK_CK0				((uint16) 0xfff0)
+#define MCU_TAUB_CK0_0					((uint16) 0x0000) /* 分周なし */
+#define MCU_TAUB00_CMOR					((uint16) 0x0000)
+#define MCU_TAUB00_CMUR					((uint8) 0x01)
+
+#define TAUB_INTNO(n, ch)	(n == 0)? ((uint32) ((134 + ch))) : ((uint32) (248 + ch))
+
+/*
+ *  TAUBn タイマの動作開始／停止処理
+ */
+LOCAL_INLINE void
+SetTimerStartTAUB(uint8 n, uint8 ch)
+{
+	/* タイマ開始処理 */
+	sil_wrh_mem((void *) TAUBTS(n), (1 << ch));
+}
+
+LOCAL_INLINE void
+SetTimerStopTAUB(uint8 n, uint8 ch)
+{
+	/* タイマ停止処理 */
+	sil_wrh_mem((void *) TAUBTT(n), (1 << ch));
+}
+
+/*
+ *  TAUBnハードウェアカウンタ現在ティック値取得
+ */
+LOCAL_INLINE TickType
+GetCurrentTimeTAUB(uint8 n, uint8 ch, TickType maxval)
+{
+	TickType	count;
+	TickType	curr_time = 0U;
+
+	count = (TickType)sil_reh_mem((void *) (TAUBCNT(n, ch)));
+
+	/* ダウンカウンタの為，現在チック値に変換 */
+	curr_time = maxval - count;
+	curr_time = (curr_time % maxval);
+
+	return(curr_time);
+}
+
+
+/* MAIN_HW_COUNTERの定義 */
+extern void init_hwcounter_MAIN_HW_COUNTER(TickType maxval, TimeType nspertick);
+extern void start_hwcounter_MAIN_HW_COUNTER(void);
+extern void stop_hwcounter_MAIN_HW_COUNTER(void);
+extern void set_hwcounter_MAIN_HW_COUNTER(TickType exprtick);
+extern TickType get_hwcounter_MAIN_HW_COUNTER(void);
+extern void cancel_hwcounter_MAIN_HW_COUNTER(void);
+extern void trigger_hwcounter_MAIN_HW_COUNTER(void);
+extern void int_clear_hwcounter_MAIN_HW_COUNTER(void);
+extern void int_cancel_hwcounter_MAIN_HW_COUNTER(void);
+extern void increment_hwcounter_MAIN_HW_COUNTER(void);
+
+/*
+ *  10msと一致するティック値(サンプルプログラム用)
+ */
+#define TICK_FOR_10MS	TIMER_CLOCK_HZ / 100
+
+#endif /* TOPPERS_TARGET_HW_COUNTER_H */
Index: /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_hw_counter.yaml
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_hw_counter.yaml	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_hw_counter.yaml	(revision 117)
@@ -0,0 +1,81 @@
+#
+#  TOPPERS ATK2
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+#      Automotive Kernel Version 2
+#
+#  Copyright (C) 2013-2014 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#  Copyright (C) 2013-2014 by FUJISOFT INCORPORATED, JAPAN
+#  Copyright (C) 2013-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+#  Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
+#  Copyright (C) 2013-2014 by Sunny Giken Inc., JAPAN
+#  Copyright (C) 2013-2014 by TOSHIBA CORPORATION, JAPAN
+#  Copyright (C) 2013-2014 by Witz Corporation, JAPAN
+#
+#  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+#  $Id: target_hw_counter.yaml 187 2015-06-25 03:39:04Z t_ishikawa $
+#
+
+Ecuc:
+  Os:
+    OsInclude:
+      OsIncludeFileName: target_hw_counter.h
+    TRUSTED_OSAP_for_MAIN_HW_COUNTER:
+      DefinitionRef: OsApplication
+      OsTrusted: true
+      OsApplicationHooks:
+        OsAppErrorHook: false
+        OsAppShutdownHook: false
+        OsAppStartupHook: false
+      OsAppCounterRef:
+        - /Ecuc/Os/MAIN_HW_COUNTER
+      OsAppIsrRef:
+        - /Ecuc/Os/C2ISR_for_MAIN_HW_COUNTER
+    MAIN_HW_COUNTER:
+      DefinitionRef: OsCounter
+      OsCounterMaxAllowedValue: 0x1FFFFFFF
+      OsCounterMinCycle: 4000
+      OsCounterTicksPerBase: 10
+      OsSecondsPerTick: 1.25e-07  # 1.0/TIMER_CLOCK_HZ
+      OsCounterType: HARDWARE
+      OsCounterIsrRef: /Ecuc/Os/C2ISR_for_MAIN_HW_COUNTER
+    C2ISR_for_MAIN_HW_COUNTER:
+      DefinitionRef: OsIsr
+      OsIsrInterruptNumber: HWC_DTIM_INTNO
+      OsIsrInterruptPriority: HWC_DTIM_INTPRI
+      OsIsrCategory: CATEGORY_2
+      OsIsrInterruptSource: ENABLE
+
Index: /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_kernel.h
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_kernel.h	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_kernel.h	(revision 117)
@@ -0,0 +1,89 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by Spansion LLC, USA
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: target_kernel.h 164 2015-06-03 01:22:29Z t_ishikawa $
+ */
+
+/*
+ *		Os.hのターゲット依存部（FL-850/F1L用）
+ *
+ *  このインクルードファイルは，Os.hでインクルードされる
+ *  他のファイルから直接インクルードすることはない
+ */
+
+#ifndef TOPPERS_TARGET_KERNEL_H
+#define TOPPERS_TARGET_KERNEL_H
+
+#include "fl850f1l.h"
+
+/* チェック用タスクスタックサイズの最小値の定義 */
+#define TARGET_MIN_STKSZ	196
+
+/* チェック用非タスクコンテキスト用のスタック最小値の定義 */
+#define MINIMUM_OSTKSZ	256
+
+/* 各スタックサイズのデフォルト値の定義*/
+#define DEFAULT_TASKSTKSZ	(1024U) /* 1K bytes */
+#define DEFAULT_TASKSYSTEMSTKSZ			(1024U) /* 1K bytes */
+#define DEFAULT_ISRSTKSZ	(1024U) /* 1K bytes */
+#define DEFAULT_ISRSYSTEMSTKSZ			(1024U) /* 1K bytes */
+#define DEFAULT_HOOKSTKSZ	(1024U) /* 1K bytes */
+#define DEFAULT_NONTRUSTEDHOOKSTKSZ		(1024U) /* 1K bytes */
+#define DEFAULT_TRUSTEDFUNCTIONSTKSZ	(128U)  /* 128 bytes */
+#define DEFAULT_OSSTKSZ		(8192U) /* 8K bytes */
+
+/*
+ *  プロセッサで共通な定義
+ */
+#include "v850_gcc/prc_kernel.h"
+
+#define TARGET_SVC_NUM	(PRC_SVC_NUM)
+
+#endif /* TOPPERS_TARGET_KERNEL_H */
Index: /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_mem.arxml
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_mem.arxml	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_mem.arxml	(revision 117)
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="EUC-JP"?>
+<!-- Generated by ABREX Ver. 1.1.0 -->
+<AUTOSAR xmlns="http://autosar.org/schema/r4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://autosar.org/schema/r4.0 AUTOSAR_4-0-3_STRICT.xsd">
+	<AR-PACKAGES>
+		<AR-PACKAGE>
+			<SHORT-NAME>Ecuc</SHORT-NAME>
+			<ELEMENTS>
+				<ECUC-MODULE-CONFIGURATION-VALUES>
+					<SHORT-NAME>Os</SHORT-NAME>
+					<DEFINITION-REF DEST="ECUC-MODULE-DEF">/AUTOSAR/EcucDefs/Os</DEFINITION-REF>
+					<ECUC-DEF-EDITION>4.2.0</ECUC-DEF-EDITION>
+					<IMPLEMENTATION-CONFIG-VARIANT>VARIANT-PRE-COMPILE</IMPLEMENTATION-CONFIG-VARIANT>
+					<CONTAINERS>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>OsInclude</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsInclude</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsInclude/OsIncludeFileName</DEFINITION-REF>
+									<VALUE>target_mem.h</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>FLASH</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsMemoryRegion</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemoryRegion/OsMemoryRegionWriteable</DEFINITION-REF>
+									<VALUE>false</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemoryRegion/OsMemoryRegionStartAddress</DEFINITION-REF>
+									<VALUE>0</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemoryRegion/OsMemoryRegionSize</DEFINITION-REF>
+									<VALUE>2*1024*1024</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemoryRegion/OsMemoryRegionName</DEFINITION-REF>
+									<VALUE>FLASH</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>RAM</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsMemoryRegion</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemoryRegion/OsMemoryRegionWriteable</DEFINITION-REF>
+									<VALUE>true</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemoryRegion/OsMemoryRegionStartAddress</DEFINITION-REF>
+									<VALUE>4275961856</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-NUMERICAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemoryRegion/OsMemoryRegionSize</DEFINITION-REF>
+									<VALUE>128*1024</VALUE>
+								</ECUC-NUMERICAL-PARAM-VALUE>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsMemoryRegion/OsMemoryRegionName</DEFINITION-REF>
+									<VALUE>RAM</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>STANDARDREGION</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsStandardMemoryRegion</DEFINITION-REF>
+							<REFERENCE-VALUES>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsStandardMemoryRegion/OsStandardMemoryRomRegionRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/FLASH</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+								<ECUC-REFERENCE-VALUE>
+									<DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsStandardMemoryRegion/OsStandardMemoryRamRegionRef</DEFINITION-REF>
+									<VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Ecuc/Os/RAM</VALUE-REF>
+								</ECUC-REFERENCE-VALUE>
+							</REFERENCE-VALUES>
+						</ECUC-CONTAINER-VALUE>
+					</CONTAINERS>
+				</ECUC-MODULE-CONFIGURATION-VALUES>
+			</ELEMENTS>
+		</AR-PACKAGE>
+	</AR-PACKAGES>
+</AUTOSAR>
Index: /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_mem.h
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_mem.h	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_mem.h	(revision 117)
@@ -0,0 +1,50 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *	
+ *	Copyright (C) 2013 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プロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *	に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *	アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *	の責任を負わない．
+ *	
+ */
+
+#ifndef _TOPPERS_TARGET_MEM_H_
+#define _TOPPERS_TARGET_MEM_H_
+
+/*
+ *  メモリリージョンに関する定義
+ */
+
+#include "target_mpu.h"
+
+#endif /* _TOPPERS_TARGET_MEM_H_ */
+
Index: /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_mem.tf
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_mem.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_mem.tf	(revision 117)
@@ -0,0 +1,43 @@
+$ ======================================================================
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$   Copyright (C) 2013 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プロジェクトは，本ソフトウェアに関して，特定の使用目的
+$   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$   の責任を負わない．
+$
+$ =====================================================================
+
+$INCLUDE "v850_gcc/prc_mem.tf"$
+
+
Index: /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_mem.yaml
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_mem.yaml	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_mem.yaml	(revision 117)
@@ -0,0 +1,70 @@
+#
+#  TOPPERS ATK2
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+#      Automotive Kernel Version 2
+#
+#  Copyright (C) 2013-2014 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#  Copyright (C) 2013-2014 by FUJISOFT INCORPORATED, JAPAN
+#  Copyright (C) 2013-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+#  Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
+#  Copyright (C) 2013-2014 by Sunny Giken Inc., JAPAN
+#  Copyright (C) 2013-2014 by TOSHIBA CORPORATION, JAPAN
+#  Copyright (C) 2013-2014 by Witz Corporation, JAPAN
+#
+#  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  AUTOSAR（AUTomotive Open System ARchitecture）は，AUTOSAR仕様に基づ
+#  いたソフトウェアを商用目的で利用する者に対して，AUTOSARパートナーに
+#  なることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+#  $Id: target_mem.yaml 164 2015-06-03 01:22:29Z t_ishikawa $
+#
+
+Ecuc:
+  Os:
+    OsInclude:
+      OsIncludeFileName: target_mem.h
+    FLASH:
+      DefinitionRef: OsMemoryRegion
+      OsMemoryRegionWriteable: false
+      OsMemoryRegionStartAddress: 0
+      OsMemoryRegionSize: 2*1024*1024
+      OsMemoryRegionName: FLASH
+    RAM:
+      DefinitionRef: OsMemoryRegion
+      OsMemoryRegionWriteable: true
+      OsMemoryRegionStartAddress: 0xfede0000
+      OsMemoryRegionSize: 128*1024
+      OsMemoryRegionName: RAM
+    STANDARDREGION:
+      DefinitionRef: OsStandardMemoryRegion
+      OsStandardMemoryRomRegionRef: /Ecuc/Os/FLASH
+      OsStandardMemoryRamRegionRef: /Ecuc/Os/RAM
Index: /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_mpu.h
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_mpu.h	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_mpu.h	(revision 117)
@@ -0,0 +1,57 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *	
+ *	Copyright (C) 2013 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プロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *	に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *	アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *	の責任を負わない．
+ *	
+ */
+
+/*
+ *	MPUドライバ
+ */
+
+#ifndef TOPPERS_TARGET_MPU_H
+#define TOPPERS_TARGET_MPU_H
+
+#include "v850_gcc/prc_mpu.h"
+
+/*
+ *  例外番号の定義
+ */
+/* タスク例外実行開始時スタック不正 */
+#define EXCNO_EMU_TEXRTN    254
+/* タスク例外リターン時スタック不正 */
+#define EXCNO_EMU_RET_TEX   255
+
+#endif /* TOPPERS_TARGET_MPU_H */
Index: /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_offset.tf
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_offset.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_offset.tf	(revision 117)
@@ -0,0 +1,66 @@
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+$              Graduate School of Information Science, Nagoya Univ., JAPAN
+$  Copyright (C) 2012-2014 by FUJI SOFT INCORPORATED, JAPAN
+$  Copyright (C) 2012-2013 by Spansion LLC, USA
+$  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+$  Copyright (C) 2012-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+$  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+$  Copyright (C) 2012-2014 by Sunny Giken Inc., JAPAN
+$  Copyright (C) 2012-2014 by TOSHIBA CORPORATION, JAPAN
+$  Copyright (C) 2012-2014 by Witz Corporation, JAPAN
+$
+$  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+$  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+$  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+$  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+$      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+$      スコード中に含まれていること．
+$  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+$      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+$      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+$      の無保証規定を掲載すること．
+$  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+$      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+$      と．
+$    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+$        作権表示，この利用条件および下記の無保証規定を掲載すること．
+$    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+$        報告すること．
+$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+$      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+$      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+$      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+$      免責すること．
+$
+$  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+$  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+$  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+$  用する者に対して，AUTOSARパートナーになることを求めている．
+$
+$  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+$  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+$  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$  の責任を負わない．
+$
+$  $Id: target_offset.tf 164 2015-06-03 01:22:29Z t_ishikawa $
+$
+
+$
+$       オフセットファイル生成用テンプレートファイル（FL-850/F1L用）
+$
+
+$
+$  標準テンプレートファイルのインクルード
+$
+$INCLUDE "kernel/genoffset.tf"$
+
+$
+$  コア依存テンプレートのインクルード（V850用）
+$
+$INCLUDE "v850_gcc/prc_offset.tf"$
Index: /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_opt.tf
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_opt.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_opt.tf	(revision 117)
@@ -0,0 +1,91 @@
+$ ======================================================================
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$   Copyright (C) 2013 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プロジェクトは，本ソフトウェアに関して，特定の使用目的
+$   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$   の責任を負わない．
+$
+$  
+$ =====================================================================
+
+$INCLUDE "cfg2_out.tf"$
+
+$ 
+$  arch/v850_gcc/ldscript.tfのターゲット依存部
+$ 
+
+$ 
+$  カーネルが管理しないセクションを出力する
+$  ターゲット依存で必要なセクション
+$ 
+$FUNCTION GENERATE_SECTION_FIRST$
+    $TAB$.vector : AT(0) {$NL$
+    $TAB$$TAB$*(.vectors)$NL$
+    $TAB$} > $REG.REGNAME[STANDARD_ROM]$$NL$
+    $NL$
+$END$
+
+$ 
+$  ページサイズとアラインメントの制約
+$  PAGE: MPUのアラインメント制約が16byte
+$  SEC: データRAMの初期化時には16byte単位で初期化する必要がある
+$  
+$TARGET_PAGE_SIZE_STR = 16$
+$TARGET_SEC_ALIGN_STR = 16$
+
+$
+$  リンカのためのセクション記述の生成
+$
+$FUNCTION SECTION_DESCRIPTION$
+	$IF EQ(ARGV[1], ".text")$
+		$RESULT = "*.text *.text.*"$
+	$ELIF EQ(ARGV[1], ".rodata")$
+		$RESULT = "*.rodata *.rodata.*"$
+	$ELIF EQ(ARGV[1], ".data")$
+		$RESULT = "*.data *.data.*"$
+	$ELIF EQ(ARGV[1], ".bss")$
+		$RESULT = "*.bss *.bss.* COMMON"$
+	$ELIF EQ(ARGV[1], ".rosdata")$
+		$RESULT = "*.rosdata"$
+	$ELIF EQ(ARGV[1], ".sdata")$
+		$RESULT = "*.sdata"$
+	$ELIF EQ(ARGV[1], ".sbss")$
+		$RESULT = "*.sbss *.scommon"$
+	$ELSE$
+		$RESULT = ARGV[1]$
+	$END$
+$END$
+
+$INCLUDE "v850_gcc/prc_opt.tf"$
+
Index: /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_serial.arxml
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_serial.arxml	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_serial.arxml	(revision 117)
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="EUC-JP"?>
+<!-- Generated by ABREX Ver. 1.1.0 -->
+<AUTOSAR xmlns="http://autosar.org/schema/r4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://autosar.org/schema/r4.0 AUTOSAR_4-0-3_STRICT.xsd">
+	<AR-PACKAGES>
+		<AR-PACKAGE>
+			<SHORT-NAME>Ecuc</SHORT-NAME>
+			<ELEMENTS>
+				<ECUC-MODULE-CONFIGURATION-VALUES>
+					<SHORT-NAME>Os</SHORT-NAME>
+					<DEFINITION-REF DEST="ECUC-MODULE-DEF">/AUTOSAR/EcucDefs/Os</DEFINITION-REF>
+					<ECUC-DEF-EDITION>4.2.0</ECUC-DEF-EDITION>
+					<IMPLEMENTATION-CONFIG-VARIANT>VARIANT-PRE-COMPILE</IMPLEMENTATION-CONFIG-VARIANT>
+					<CONTAINERS>
+						<ECUC-CONTAINER-VALUE>
+							<SHORT-NAME>OsInclude</SHORT-NAME>
+							<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsInclude</DEFINITION-REF>
+							<PARAMETER-VALUES>
+								<ECUC-TEXTUAL-PARAM-VALUE>
+									<DEFINITION-REF DEST="ECUC-STRING-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsInclude/OsIncludeFileName</DEFINITION-REF>
+									<VALUE>target_serial.h</VALUE>
+								</ECUC-TEXTUAL-PARAM-VALUE>
+							</PARAMETER-VALUES>
+						</ECUC-CONTAINER-VALUE>
+					</CONTAINERS>
+				</ECUC-MODULE-CONFIGURATION-VALUES>
+			</ELEMENTS>
+		</AR-PACKAGE>
+	</AR-PACKAGES>
+</AUTOSAR>
Index: /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_serial.h
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_serial.h	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_serial.h	(revision 117)
@@ -0,0 +1,103 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by Spansion LLC, USA
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: target_serial.h 164 2015-06-03 01:22:29Z t_ishikawa $
+ */
+
+/*
+ *		シリアルI/Oデバイス（SIO）ドライバ（FL-850/F1L用）
+ */
+
+#ifndef TOPPERS_TARGET_SERIAL_H
+#define TOPPERS_TARGET_SERIAL_H
+
+#ifndef _PIN_100_
+
+/*
+ *  ポート5を使用
+ */
+#define RLIN3x_USE_PORT5
+
+/*
+ *  SIOの割込みハンドラのベクタ番号
+ */
+#define INTNO_SIO	(RLIN35_RX_INTNO)       /* 割込み番号 */
+
+#else /* _PIN_100_ */
+
+/*
+ *  ポート2を使用
+ */
+#define RLIN3x_USE_PORT2
+
+/*
+ *  SIOの割込みハンドラのベクタ番号
+ */
+#define INTNO_SIO	(RLIN32_RX_INTNO)       /* 割込み番号 */
+
+#endif /* _PIN_100_ */
+
+/*
+ *   ボーレートレジスタへの設定値 PCLK=40MHz, 115200bps
+ */
+#define RLIN3xLWBR_VAL		0xf2
+#define RLIN3xLBRP01_VAL	10
+
+/*
+ *  割込み優先度
+ */
+#define INTPRI_SIO	2                       /* 割込み優先度 */
+
+/*
+ *  プロセッサ依存モジュール
+ */
+#include "v850_gcc/uart_rlin.h"
+
+#endif /* TOPPERS_TARGET_SERIAL_H */
Index: /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_serial.yaml
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_serial.yaml	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_serial.yaml	(revision 117)
@@ -0,0 +1,55 @@
+#
+#  TOPPERS ATK2
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+#      Automotive Kernel Version 2
+#
+#  Copyright (C) 2013-2014 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#  Copyright (C) 2013-2014 by FUJI SOFT INCORPORATED, JAPAN
+#  Copyright (C) 2013-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+#  Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
+#  Copyright (C) 2013-2014 by Sunny Giken Inc., JAPAN
+#  Copyright (C) 2013-2014 by TOSHIBA CORPORATION, JAPAN
+#  Copyright (C) 2013-2014 by Witz Corporation, JAPAN
+#
+#  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+#  $Id: target_serial.yaml 164 2015-06-03 01:22:29Z t_ishikawa $
+#
+
+Ecuc:
+  Os:
+    OsInclude:
+      OsIncludeFileName: target_serial.h
Index: /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_svc.h
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_svc.h	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_svc.h	(revision 117)
@@ -0,0 +1,54 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *	
+ *	Copyright (C) 2013 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プロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *	に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *	アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *	の責任を負わない．
+ *	
+ */
+
+
+#ifndef TOPPERS_TARGET_SVC_H
+#define TOPPERS_TARGET_SVC_H
+
+#ifdef USE_CCRH
+/*
+ *  target_config.cからのインクルードガード
+ */
+#include "v850_ccrh/prc_svc.h"
+#else /* USECCRH */
+#include "v850_gcc/prc_svc.h"
+#endif /* USECCRH */
+
+#endif /* TOPPERS_TARGET_SVC_H */
+
Index: /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_syslog.h
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_syslog.h	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_syslog.h	(revision 117)
@@ -0,0 +1,50 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2014-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: target_syslog.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		シスログ機能のプロセッサ依存部
+ */
+
+#ifndef TOPPERS_TARGET_SYSLOG_H
+#define TOPPERS_TARGET_SYSLOG_H
+
+#include "v850_gcc/prc_syslog.h"
+
+#endif /* TOPPERS_TARGET_SYSLOG_H */
Index: /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_sysmod.h
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_sysmod.h	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_sysmod.h	(revision 117)
@@ -0,0 +1,78 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by Spansion LLC, USA
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: target_sysmod.h 164 2015-06-03 01:22:29Z t_ishikawa $
+ */
+
+/*
+ *		システムモジュールのターゲット依存部（FL-850/F1L用）
+ *
+ *  システムモジュールのターゲット依存部のインクルードファイル
+ *  このファイルの内容は，コンポーネント記述ファイルに記述され，
+ *  このファイルは無くなる見込み
+ */
+#ifndef TOPPERS_TARGET_SYSMOD_H
+#define TOPPERS_TARGET_SYSMOD_H
+
+#include "v850_gcc/prc_sil.h"
+
+/*
+ *  起動メッセージのターゲットシステム名
+ */
+#define TARGET_NAME	"FL-850/F1L"
+
+/*
+ *  システムログの低レベル出力のための文字出力
+ *
+ *  ターゲット依存の方法で，文字cを表示/出力/保存する
+ */
+extern void target_fput_log(char8 c);
+
+#endif /* TOPPERS_TARGET_SYSMOD_H */
Index: /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_test.h
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_test.h	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_test.h	(revision 117)
@@ -0,0 +1,71 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by Spansion LLC, USA
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: target_test.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		テストプログラムのターゲット依存定義（FL-850/F1L用）
+ */
+
+#ifndef TOPPERS_TARGET_TEST_H
+#define TOPPERS_TARGET_TEST_H
+
+/*
+ *  sample1で使用するアラームの周期（約1秒）
+ */
+#define COUNTER_MIN_CYCLE	((uint32) 8000000)
+
+/*
+ *  sample1で使用するCPU例外
+ */
+#define RAISE_CPU_EXCEPTION		Asm("trap 0x6" ::: "memory")
+
+#endif /* TOPPERS_TARGET_TEST_H */
Index: /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_user.txt
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_user.txt	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_gcc/target_user.txt	(revision 117)
@@ -0,0 +1,150 @@
+
+		TOPPERS/ATK2-SC3
+        ＜FL-850/F1Lターゲット依存部(GCC版)マニュアル＞
+
+このドキュメントはFL-850/F1Lターゲット依存部の情報を記述したものである．
+
+----------------------------------------------------------------------
+TOPPERS ATK2
+    Toyohashi Open Platform for Embedded Real-Time Systems
+    Automotive Kernel Version 2
+
+Copyright (C) 2014 by Center for Embedded Computing Systems
+            Graduate School of Information Science, Nagoya Univ., JAPAN
+Copyright (C) 2013-2014 by FUJI SOFT INCORPORATED, JAPAN
+
+上記著作権者は，以下の (1)〜(3)の条件を満たす場合に限り，本ドキュメ
+ント（本ドキュメントを改変したものを含む．以下同じ）を使用・複製・改
+変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+(1) 本ドキュメントを利用する場合には，上記の著作権表示，この利用条件
+    および下記の無保証規定が，そのままの形でドキュメント中に含まれて
+    いること．
+(2) 本ドキュメントを改変する場合には，ドキュメントを改変した旨の記述
+    を，改変後のドキュメント中に含めること．ただし，改変後のドキュメ
+    ントが，TOPPERSプロジェクト指定の開発成果物である場合には，この限
+    りではない．
+(3) 本ドキュメントの利用により直接的または間接的に生じるいかなる損害
+    からも，上記著作権者およびTOPPERSプロジェクトを免責すること．また，
+    本ドキュメントのユーザまたはエンドユーザからのいかなる理由に基づ
+    く請求からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+
+本ドキュメントは，AUTOSAR（AUTomotive Open System ARchitecture）仕様
+に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するものではな
+い．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利用する
+者に対して，AUTOSARパートナーになることを求めている．
+
+本ドキュメントは，無保証で提供されているものである．上記著作権者およ
+びTOPPERSプロジェクトは，本ドキュメントに関して，特定の使用目的に対す
+る適合性も含めて，いかなる保証も行わない．また，本ドキュメントの利用
+により直接的または間接的に生じたいかなる損害に関しても，その責任を負
+わない．
+
+$Id: target_user.txt 187 2015-06-25 03:39:04Z t_ishikawa $
+----------------------------------------------------------------------
+
+○概要
+
+FL-850/F1Lターゲット依存部（FL-850/F1L依存部）は，ルネサスエレクトロニ
+クス社のRH850/F1Lを搭載したテセラ・テクノロジーのFL-850/F1L-176-Sをサポー
+トしている．
+
+
+○動作確認バージョン
+
+動作確認を行ったコンパイラのバージョンは次の通りである．
+
+・KPIT社 gcc version 4.9-GNUV850_v14.01 (GCC_Build_2.01) 
+
+
+○ログ出力
+
+ログ出力のため，RLIN3のポート5を使用する．
+
+データフォーマットは，
+
+・115200bps、データ8bit、パリティなし、ストップ1bit、フロー制御なし
+
+である．
+
+
+○ハードウェアカウンタ
+
+・サンプルプログラムにて，TAUJ0, TAUJ1を使用．
+・1個のカウンタに2つのタイマを使用している．
+    差分タイマ：目的の時間を設定する時の現在時間(現在値タイマ)と次の満
+    了時間との相対時間をカウントすることで目的の絶対時間に満了したこと
+    とする.
+        count mode:count down once
+    現在値タイマ：カウンタ周期分のベースタイマを実現(絶対時間をカウント)
+        count mode:continuous count down
+・使用カウンタ情報
+    カウンタ名：MAIN_HW_COUNTER
+        差分タイマ：TAUJ0
+        現在値タイマ：TAUJ1
+        1ティック当たりの秒数：1/TIMER_CLOCK_HZ
+
+
+○ビルド環境
+
+ビルド環境はWindows上のCygwinを使用する．Cygwinには最低限以下のパッケ
+ージをインストールする必要がある．
+
+ ・make
+ ・perl
+ 
+ 
+○デバッグ環境
+
+動作確認はCS+で実施した．CS+の設定方法は次の通りである．
+
+ 1) CubeSuite+を起動
+ 2) 新規プロジェクトを作成．
+    メニューから[ファイル] → [新規作成] → [新しいプロジェクトを作成]を選択
+ 3) プロジェクトの作成
+  プロジェクト作成ダイアログ内で以下の設定をします。
+   [1] マイクロコントローラ        ：RH850を選択
+   [2] 使用するマイクロコントローラ：R7F701035xAFP
+   [3] プロジェクトの種類          ：デバック専用
+   [4] プロジェクト名              ：任意
+   [5] 作成場所                    ：任意
+   [6] OKを選択
+   上記[5]で指定したフォルダ内にプロジェクト名.mtpjファイルが作成される．
+ 4) デバックツールの選択
+   [1] 画面左側ツリー内のRH850シュミレータを選択し右クリック
+   [2] 使用するデバックツールを選択
+   [3] 接続用設定のタブを選択
+   [4] メイン・クロック周波数 に 8 を指定
+ 5) ダウンロードファイルの設定
+   [1] 画面右側のタブから[ダウンロード・ファイル設定]を選択
+   [2] 画面右側のダウンロードするファイルを選択
+   [3] 選択行右端[...]を左クリック
+   [4] ダウンロード・ダイアログ内で[追加]ボタンを選択
+   [5] ダウンロード・ファイル情報のファイルを選択後[...]を左クリック
+   [6] ダウンロードファイルは[atk2-sc3.exe]を選択
+   [7] OKを選択
+ 6) ファイルをダウンロード
+   [1] ターゲットボードの電源をON
+   [2] メニューから[デバック]→[デバック・ツールへダウンロード]を選択
+      ※ダウンロード完了後、「ダウンロードが完了しましたが、以下の問題ある可能性があります。」と
+      警告メッセージが表示されるが，OKを選択．
+ 7) プログラムの実行
+   [1] メニューから[デバック]→[リスタート]を選択
+      ターミナル画面に[Input Command:]と表示が出れば正常に動作している ．
+ 上記手順の 2)〜5)は新規にプロジェクトを作成した時のみ実行．
+
+
+○制限事項
+
+CS+ V3.00.00 では，GCCのLMAを理解できない．そのため，コンパイルオプシ
+ョンに -DOMIT_DATA_INIT を指定してる．ROMブートする場合はこの定義を外
+してコンパイルを行いCubeSuite+以外のデバッガを使用して書き込むこと．
+
+
+○変更履歴
+2014/09/08
+・RLIN3 UART ドライバのポートを変更可能に．
+
+2014/07/17
+ 新規作成
+
+以上 
Index: /atk2-sc3_fl850f1l/target/fl850f1l_ghs/E_PACKAGE
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_ghs/E_PACKAGE	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_ghs/E_PACKAGE	(revision 117)
@@ -0,0 +1,10 @@
+E_PACKAGE atk2-sc3_fl850f1l_ghs
+VERSION %date
+
+INCLUDE MANIFEST
+INCLUDE ../../MANIFEST
+INCLUDE ../../target/fl850f1l_gcc/MANIFEST
+INCLUDE ../../arch/v850_gcc/MANIFEST
+INCLUDE ../../arch/v850_ghs/MANIFEST
+INCLUDE ../../arch/ghs/MANIFEST
+../../cfg/cfg/cfg.exe
Index: /atk2-sc3_fl850f1l/target/fl850f1l_ghs/MANIFEST
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_ghs/MANIFEST	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_ghs/MANIFEST	(revision 117)
@@ -0,0 +1,13 @@
+PACKAGE atk2-sc3
+
+E_PACKAGE
+Makefile.target
+MANIFEST
+target.tf
+target_syslog.h
+target_test.h
+target_user.txt
+target_opt.tf
+target_svc.h
+target_mem.tf
+target_mpu.h
Index: /atk2-sc3_fl850f1l/target/fl850f1l_ghs/Makefile.target
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_ghs/Makefile.target	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_ghs/Makefile.target	(revision 117)
@@ -0,0 +1,146 @@
+#
+#  TOPPERS ATK2
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+#      Automotive Kernel Version 2
+#
+#  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#
+#  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+#  $Id: Makefile.target 187 2015-06-25 03:39:04Z t_ishikawa $
+#
+
+#
+#		Makefile のターゲット依存部（FL-850/FL4用）
+#
+
+#
+#  ボード名の定義
+#
+BOARD = fl850f1l
+
+#
+#  GCC用のファイルのディレクトリ
+#
+TARGETDIR_GCC := $(SRCDIR)/target/$(BOARD)_gcc
+
+#
+#  アーキテクチャ指定
+#
+ARCH = V850E3V5
+
+#
+#  コア指定
+#
+CORETYPE = RH850G3K
+
+#
+#  ボード毎に設定が異なる項目
+#
+
+CDEFS := $(CDEFS) -DTOPPERS_LABEL_ASM
+CFG1_OUT_LDSCRIPT = $(SRCDIR)/arch/v850_ghs/rh850_f1l_2m.ld
+
+
+#
+#  同じファイルがあった場合にARMCC依存部のファイルを使用するようにするに，
+#  GCC依存部のファイルを後で指定する．
+#
+INCLUDES := $(INCLUDES) -I$(TARGETDIR) -I$(TARGETDIR_GCC)
+
+#
+#  サポート命令毎のコンパイルオプション
+#
+# ノーマル
+COPTS := $(COPTS)
+
+#
+#  カーネルに関する定義
+#
+KERNEL_DIR := $(KERNEL_DIR) $(TARGETDIR) $(TARGETDIR_GCC)
+KERNEL_ASMOBJS := $(KERNEL_ASMOBJS)
+KERNEL_COBJS := $(KERNEL_COBJS) target_config.o tauj_hw_counter.o rh850_f1l.o
+
+#
+#  システムタイマに関する設定
+#
+ifeq ($(ENABLE_SYS_TIMER),true)
+      CDEFS := $(CDEFS) -DTOPPERS_ENABLE_SYS_TIMER
+      KERNEL_COBJS := $(KERNEL_COBJS) taua_timer.o
+endif
+
+#
+#  システムサービスに関する定義
+#
+SYSMOD_DIR := $(SYSMOD_DIR) $(TARGETDIR) $(TARGETDIR_GCC)
+SYSMOD_COBJS := $(SYSMOD_COBJS) uart_rlin.o
+
+#
+#  コンフィギュレーション設定
+#
+ifeq ($(findstring target_timer,$(CFGNAME)),target_timer)
+  CFGNAME := $(CFGNAME) taua_timer
+endif
+ifeq ($(findstring target_serial,$(CFGNAME)),target_serial)
+  CFGNAME := $(CFGNAME) uart
+endif
+
+#
+#  依存関係の定義
+#
+Os_Lcfg.timestamp: $(TARGETDIR)/target.tf
+$(OBJFILE): $(TARGETDIR)/target_mem.tf
+offset.h: $(TARGETDIR_GCC)/target_offset.tf
+
+#
+#  オフセットファイル生成のための定義
+#
+OFFSET_TF := $(TARGETDIR_GCC)/target_offset.tf
+
+#
+#  プロセッサ依存部のインクルード
+#
+include $(SRCDIR)/arch/v850_ghs/Makefile.prc
+
+#
+#  実行モジュールのロード＆実行
+#
+run: $(OBJNAME).exe
+	@sh $(SRCDIR)/arch/v850_gcc/autorun/exe.sh $(SRCDIR) $(TARGET)
+
+urun: $(OBJNAME).exe
+	@sh $(SRCDIR)/arch/v850_gcc/autorun/exe.sh $(SRCDIR) $(TARGET) &
+	@ruby $(SRCDIR)/arch/v850_gcc/autorun/com_port.rb
Index: /atk2-sc3_fl850f1l/target/fl850f1l_ghs/target.tf
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_ghs/target.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_ghs/target.tf	(revision 117)
@@ -0,0 +1,103 @@
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+$              Graduate School of Information Science, Nagoya Univ., JAPAN
+$  Copyright (C) 2012-2014 by FUJI SOFT INCORPORATED, JAPAN
+$  Copyright (C) 2012-2013 by Spansion LLC, USA
+$  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+$  Copyright (C) 2012-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+$  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+$  Copyright (C) 2012-2014 by Sunny Giken Inc., JAPAN
+$  Copyright (C) 2012-2014 by TOSHIBA CORPORATION, JAPAN
+$  Copyright (C) 2012-2014 by Witz Corporation, JAPAN
+$
+$  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+$  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+$  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+$  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+$      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+$      スコード中に含まれていること．
+$  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+$      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+$      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+$      の無保証規定を掲載すること．
+$  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+$      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+$      と．
+$    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+$        作権表示，この利用条件および下記の無保証規定を掲載すること．
+$    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+$        報告すること．
+$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+$      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+$      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+$      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+$      免責すること．
+$
+$  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+$  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+$  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+$  用する者に対して，AUTOSARパートナーになることを求めている．
+$
+$  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+$  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+$  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$  の責任を負わない．
+$
+$  $Id: target.tf 164 2015-06-03 01:22:29Z t_ishikawa $
+$
+
+$ 
+$  arch/gcc/ldscript.tfのターゲット依存部
+$ 
+
+$ 
+$  カーネルが管理しないセクションを出力する
+$  ターゲット依存で必要なセクション
+$ 
+$FUNCTION GENERATE_SECTION_FIRST$
+    $TAB$.vector : AT(0) {$NL$
+    $TAB$$TAB$*("*.reset.text")$NL$
+    $TAB$} > $REG.REGNAME[STANDARD_ROM]$$NL$
+    $NL$
+$END$
+
+$ 
+$  ページサイズとアラインメントの制約
+$  PAGE: MPUのアラインメント制約が16byte
+$  SEC: データRAMの初期化時には16byte単位で初期化する必要がある
+$ 
+$TARGET_PAGE_SIZE_STR = 16$
+$TARGET_SEC_ALIGN_STR = 16$
+
+$
+$  リンカのためのセクション記述の生成
+$
+$FUNCTION SECTION_DESCRIPTION$
+	$IF EQ(ARGV[1], ".text")$
+		$RESULT = "\"*.text *.text.*\""$
+	$ELIF EQ(ARGV[1], ".rodata")$
+		$RESULT = "\"*.rodata *.rodata.*\""$
+	$ELIF EQ(ARGV[1], ".data")$
+		$RESULT = "\"*.data *.data.*\""$
+	$ELIF EQ(ARGV[1], ".bss")$
+		$RESULT = "\"*.bss *.bss.* COMMON\""$
+	$ELIF EQ(ARGV[1], ".rosdata")$
+		$RESULT = "\"*.rosdata\""$
+	$ELIF EQ(ARGV[1], ".sdata")$
+		$RESULT = "\"*.sdata\""$
+	$ELIF EQ(ARGV[1], ".sbss")$
+		$RESULT = "\"*.sbss *.scommon\""$
+	$ELSE$
+		$RESULT = ARGV[1]$
+	$END$
+$END$
+
+$
+$  プロセッサ依存テンプレートのインクルード
+$
+$INCLUDE "v850_ghs/prc.tf"$
Index: /atk2-sc3_fl850f1l/target/fl850f1l_ghs/target_mem.tf
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_ghs/target_mem.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_ghs/target_mem.tf	(revision 117)
@@ -0,0 +1,51 @@
+$ ======================================================================
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$   Copyright (C) 2013 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プロジェクトは，本ソフトウェアに関して，特定の使用目的
+$   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$   の責任を負わない．
+$
+$ =====================================================================
+
+$FUNCTION START_SYMBOL$
+	$RESULT = SYMBOL(CONCAT("___start_", ARGV[1]))$
+$END$
+
+$FUNCTION LIMIT_SYMBOL$
+	$RESULT = SYMBOL(CONCAT("___limit_", ARGV[1]))$
+$END$
+
+$INCLUDE "v850_gcc/prc_mem.tf"$
+
+
Index: /atk2-sc3_fl850f1l/target/fl850f1l_ghs/target_mpu.h
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_ghs/target_mpu.h	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_ghs/target_mpu.h	(revision 117)
@@ -0,0 +1,57 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *	
+ *	Copyright (C) 2013 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プロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *	に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *	アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *	の責任を負わない．
+ *	
+ */
+
+/*
+ *	MPUドライバ
+ */
+
+#ifndef TOPPERS_TARGET_MPU_H
+#define TOPPERS_TARGET_MPU_H
+
+#include "v850_ghs/prc_mpu.h"
+
+/*
+ *  例外番号の定義
+ */
+/* タスク例外実行開始時スタック不正 */
+#define EXCNO_EMU_TEXRTN    254
+/* タスク例外リターン時スタック不正 */
+#define EXCNO_EMU_RET_TEX   255
+
+#endif /* TOPPERS_TARGET_MPU_H */
Index: /atk2-sc3_fl850f1l/target/fl850f1l_ghs/target_opt.tf
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_ghs/target_opt.tf	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_ghs/target_opt.tf	(revision 117)
@@ -0,0 +1,99 @@
+$ ======================================================================
+$
+$  TOPPERS ATK2
+$      Toyohashi Open Platform for Embedded Real-Time Systems
+$      Automotive Kernel Version 2
+$
+$   Copyright (C) 2013 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プロジェクトは，本ソフトウェアに関して，特定の使用目的
+$   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$   の責任を負わない．
+$
+$  
+$ =====================================================================
+
+$INCLUDE "cfg2_out.tf"$
+
+$ 
+$  arch/v850_gcc/ldscript.tfのターゲット依存部
+$ 
+
+$ 
+$  カーネルが管理しないセクションを出力する
+$  ターゲット依存で必要なセクション
+$ 
+$FUNCTION GENERATE_SECTION_FIRST$
+    $TAB$.vector : AT(0) {$NL$
+    $TAB$$TAB$*("*.reset.text")$NL$
+    $TAB$} > $REG.REGNAME[STANDARD_ROM]$$NL$
+    $NL$
+$END$
+
+$ 
+$  ページサイズとアラインメントの制約
+$  PAGE: MPUのアラインメント制約が16byte
+$  SEC: データRAMの初期化時には16byte単位で初期化する必要がある
+$ 
+$TARGET_PAGE_SIZE_STR = 16$
+$TARGET_SEC_ALIGN_STR = 16$
+
+$
+$  リンカのためのセクション記述の生成
+$
+$FUNCTION SECTION_DESCRIPTION$
+	$IF EQ(ARGV[1], ".text")$
+		$RESULT = { ".text",  "\"*.text\"",  "\"*.text.*\"" }$
+	$ELIF EQ(ARGV[1], ".rodata")$
+		$RESULT = { ".rodata",  "\"*.rodata\"",  "\"*.rodata.*\"" }$
+	$ELIF EQ(ARGV[1], ".data")$
+		$RESULT = { ".data",  "\"*.data\"",  "\"*.data.*\"" }$
+	$ELIF EQ(ARGV[1], ".bss")$
+		$RESULT = { ".bss",  "\"*.bss\"",  "\"*.bss.*\"", "COMMON" }$
+	$ELIF EQ(ARGV[1], ".rosdata")$
+		$RESULT = { ".rosdata",  "\"*.rosdata\"",  "\"*.rosdata.*\"" }$
+	$ELIF EQ(ARGV[1], ".sdata")$
+		$RESULT = { ".sdata",  "\"*.sdata\"",  "\"*.sdata.*\"" }$
+	$ELIF EQ(ARGV[1], ".sbss")$
+		$RESULT = { ".sbss",  "\"*.sbss\"",  "\"*.sbss.*\"", "SMALLCOMMON" }$
+	$ELSE$
+		$RESULT = ARGV[1]$
+	$END$
+$END$
+
+$FUNCTION START_SYMBOL$
+	$RESULT = SYMBOL(CONCAT("___start_", ARGV[1]))$
+$END$
+
+$FUNCTION LIMIT_SYMBOL$
+	$RESULT = SYMBOL(CONCAT("___limit_", ARGV[1]))$
+$END$
+
+$INCLUDE "v850_ghs/prc_opt.tf"$
+
Index: /atk2-sc3_fl850f1l/target/fl850f1l_ghs/target_svc.h
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_ghs/target_svc.h	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_ghs/target_svc.h	(revision 117)
@@ -0,0 +1,47 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *	
+ *	Copyright (C) 2013 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プロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *	に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *	アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *	の責任を負わない．
+ *	
+ */
+
+
+#ifndef TOPPERS_TARGET_SVC_H
+#define TOPPERS_TARGET_SVC_H
+
+#include "v850_ghs/prc_svc.h"
+
+#endif /* TOPPERS_TARGET_SVC_H */
+
Index: /atk2-sc3_fl850f1l/target/fl850f1l_ghs/target_syslog.h
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_ghs/target_syslog.h	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_ghs/target_syslog.h	(revision 117)
@@ -0,0 +1,50 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2014-2015 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: target_syslog.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		シスログ機能のプロセッサ依存部
+ */
+
+#ifndef TOPPERS_TARGET_SYSLOG_H
+#define TOPPERS_TARGET_SYSLOG_H
+
+#include "v850_gcc/prc_syslog.h"
+
+#endif /* TOPPERS_TARGET_SYSLOG_H */
Index: /atk2-sc3_fl850f1l/target/fl850f1l_ghs/target_test.h
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_ghs/target_test.h	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_ghs/target_test.h	(revision 117)
@@ -0,0 +1,71 @@
+/*
+ *  TOPPERS ATK2
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ *      Automotive Kernel Version 2
+ *
+ *  Copyright (C) 2012-2014 by Center for Embedded Computing Systems
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2012-2014 by FUJI SOFT INCORPORATED, JAPAN
+ *  Copyright (C) 2012-2013 by Spansion LLC, USA
+ *  Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+ *  Copyright (C) 2012-2014 by Renesas Electronics Corporation, JAPAN
+ *  Copyright (C) 2012-2014 by Sunny Giken Inc., JAPAN
+ *  Copyright (C) 2012-2014 by TOSHIBA CORPORATION, JAPAN
+ *  Copyright (C) 2012-2014 by Witz Corporation, JAPAN
+ *
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+ *  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+ *  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+ *  用する者に対して，AUTOSARパートナーになることを求めている．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  $Id: target_test.h 187 2015-06-25 03:39:04Z t_ishikawa $
+ */
+
+/*
+ *		テストプログラムのターゲット依存定義（FL-850/F1L用）
+ */
+
+#ifndef TOPPERS_TARGET_TEST_H
+#define TOPPERS_TARGET_TEST_H
+
+/*
+ *  sample1で使用するアラームの周期（約1秒）
+ */
+#define COUNTER_MIN_CYCLE	((uint32) 8000000)
+
+/*
+ *  sample1で使用する例外
+ */
+#define RAISE_CPU_EXCEPTION		Asm("trap 0x6")     /* FIXME */
+
+#endif /* TOPPERS_TARGET_TEST_H */
Index: /atk2-sc3_fl850f1l/target/fl850f1l_ghs/target_user.txt
===================================================================
--- /atk2-sc3_fl850f1l/target/fl850f1l_ghs/target_user.txt	(revision 117)
+++ /atk2-sc3_fl850f1l/target/fl850f1l_ghs/target_user.txt	(revision 117)
@@ -0,0 +1,144 @@
+
+		TOPPERS/ATK2-SC3
+        ＜FL-850/F1Lターゲット依存部(GHS版)マニュアル＞
+
+このドキュメントはFL-850/F1Lターゲット依存部の情報を記述したものである．
+
+----------------------------------------------------------------------
+TOPPERS ATK2
+    Toyohashi Open Platform for Embedded Real-Time Systems
+    Automotive Kernel Version 2
+
+Copyright (C) 2014-2015 by Center for Embedded Computing Systems
+            Graduate School of Information Science, Nagoya Univ., JAPAN
+Copyright (C) 2013-2014 by FUJI SOFT INCORPORATED, JAPAN
+
+上記著作権者は，以下の (1)〜(3)の条件を満たす場合に限り，本ドキュメ
+ント（本ドキュメントを改変したものを含む．以下同じ）を使用・複製・改
+変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+(1) 本ドキュメントを利用する場合には，上記の著作権表示，この利用条件
+    および下記の無保証規定が，そのままの形でドキュメント中に含まれて
+    いること．
+(2) 本ドキュメントを改変する場合には，ドキュメントを改変した旨の記述
+    を，改変後のドキュメント中に含めること．ただし，改変後のドキュメ
+    ントが，TOPPERSプロジェクト指定の開発成果物である場合には，この限
+    りではない．
+(3) 本ドキュメントの利用により直接的または間接的に生じるいかなる損害
+    からも，上記著作権者およびTOPPERSプロジェクトを免責すること．また，
+    本ドキュメントのユーザまたはエンドユーザからのいかなる理由に基づ
+    く請求からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+
+本ドキュメントは，AUTOSAR（AUTomotive Open System ARchitecture）仕様
+に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するものではな
+い．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利用する
+者に対して，AUTOSARパートナーになることを求めている．
+
+本ドキュメントは，無保証で提供されているものである．上記著作権者およ
+びTOPPERSプロジェクトは，本ドキュメントに関して，特定の使用目的に対す
+る適合性も含めて，いかなる保証も行わない．また，本ドキュメントの利用
+により直接的または間接的に生じたいかなる損害に関しても，その責任を負
+わない．
+
+$Id: target_user.txt 164 2015-06-03 01:22:29Z t_ishikawa $
+----------------------------------------------------------------------
+
+○概要
+
+FL-850/F1Lターゲット依存部（FL-850/F1L依存部）は，ルネサスエレクトロニ
+クス社のRH850/F1Lを搭載したテセラ・テクノロジーのFL-850/F1L-176-Sをサポー
+トしている．
+
+
+○動作確認バージョン
+
+動作確認を行ったコンパイラのバージョンはプロセッサ依存部のユーザーマニ
+ュアルに記載している．
+
+
+○ログ出力
+
+ログ出力のため，RLIN3のポート5を使用する．
+
+データフォーマットは，
+
+・115200bps、データ8bit、パリティなし、ストップ1bit、フロー制御なし
+
+である．
+
+
+○サンプルプログラムで用いるタイマ
+
+・サンプルプログラムにて，TAUJ0, TAUJ1を使用．
+・1個のカウンタに2つのタイマを使用している．
+    差分タイマ：目的の時間を設定する時の現在時間(現在値タイマ)と次の満
+    了時間との相対時間をカウントすることで目的の絶対時間に満了したこと
+    とする.
+        count mode:count down once
+    現在値タイマ：カウンタ周期分のベースタイマを実現(絶対時間をカウント)
+        count mode:continuous count down
+・使用カウンタ情報
+    カウンタ名：MAIN_HW_COUNTER
+        差分タイマ：TAUJ0
+        現在値タイマ：TAUJ1
+        1ティック当たりの秒数：1/TIMER_CLOCK_HZ
+
+
+○ビルド環境
+
+ビルド環境はWindows上のCygwinを使用する．Cygwinには最低限以下のパッケ
+ージをインストールする必要がある．
+
+ ・make
+ ・perl
+ 
+Makefileの雛形はsample以下のものではなく， ./arch/v850_ghs/Makefile.sample 
+をsample以下にMakefileとしてコピーして使用すること．
+
+----- ここから追記 -----
+arch/v850_ghs/Makefile.sample を sample/Makefile にコピーしたあとの
+ビルド手順は，atk2-sc1のdoc/user.txtをご参照ください．
+----- ここまで追記 -----
+ 
+○デバッグ環境
+
+動作確認はCS+で実施した．CS+の設定方法は次の通りである．
+
+ 1) CubeSuite+を起動
+ 2) 新規プロジェクトを作成．
+    メニューから[ファイル] → [新規作成] → [新しいプロジェクトを作成]を選択
+ 3) プロジェクトの作成
+  プロジェクト作成ダイアログ内で以下の設定をします。
+   [1] マイクロコントローラ        ：RH850を選択
+   [2] 使用するマイクロコントローラ：R7F701035xAFP
+   [3] プロジェクトの種類          ：デバック専用
+   [4] プロジェクト名              ：任意
+   [5] 作成場所                    ：任意
+   [6] OKを選択
+   上記[5]で指定したフォルダ内にプロジェクト名.mtpjファイルが作成される．
+ 4) デバックツールの選択
+   [1] 画面左側ツリー内のRH850シュミレータを選択し右クリック
+   [2] 使用するデバックツールを選択
+   [3] 接続用設定のタブを選択
+   [4] メイン・クロック周波数 に 8 を指定
+ 5) ダウンロードファイルの設定
+   [1] 画面右側のタブから[ダウンロード・ファイル設定]を選択
+   [2] 画面右側のダウンロードするファイルを選択
+   [3] 選択行右端[...]を左クリック
+   [4] ダウンロード・ダイアログ内で[追加]ボタンを選択
+   [5] ダウンロード・ファイル情報のファイルを選択後[...]を左クリック
+   [6] ダウンロードファイルは[atk2-sc3.exe]を選択
+   [7] OKを選択
+ 6) ファイルをダウンロード
+   [1] ターゲットボードの電源をON
+   [2] メニューから[デバック]→[デバック・ツールへダウンロード]を選択
+ 7) プログラムの実行
+   [1] メニューから[デバック]→[リスタート]を選択
+      ターミナル画面に[Input Command:]と表示が出れば正常に動作している ．
+ 上記手順の 2)〜5)は新規にプロジェクトを作成した時のみ実行．
+
+
+○変更履歴
+2015/06/26
+ SC3対応
+ 
+以上 
Index: /atk2-sc3_fl850f1l/utils/abrex/MANIFEST
===================================================================
--- /atk2-sc3_fl850f1l/utils/abrex/MANIFEST	(revision 117)
+++ /atk2-sc3_fl850f1l/utils/abrex/MANIFEST	(revision 117)
@@ -0,0 +1,5 @@
+MANIFEST
+abrex.rb
+readme.txt
+param_info.yaml
+sample.yaml
Index: /atk2-sc3_fl850f1l/utils/abrex/abrex.rb
===================================================================
--- /atk2-sc3_fl850f1l/utils/abrex/abrex.rb	(revision 117)
+++ /atk2-sc3_fl850f1l/utils/abrex/abrex.rb	(revision 117)
@@ -0,0 +1,1020 @@
+#!ruby -Ke
+#
+#  ABREX
+#      AUTOSAR BSW and RTE XML Generator
+#
+#  Copyright (C) 2013-2015 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+#  Copyright (C) 2013-2015 by FUJI SOFT INCORPORATED, JAPAN
+#  Copyright (C) 2014-2015 by NEC Communication Systems, Ltd., JAPAN
+#  Copyright (C) 2013-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+#  Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
+#  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+#  Copyright (C) 2013-2015 by Sunny Giken Inc., JAPAN
+#  Copyright (C) 2013-2015 by TOSHIBA CORPORATION, JAPAN
+#  Copyright (C) 2013-2015 by Witz Corporation
+#
+#  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+# $Id: abrex.rb 8481 2014-03-07 03:54:06Z shigihara $
+#
+
+if ($0 == __FILE__)
+  TOOL_ROOT = File.expand_path(File.dirname(__FILE__) + "/")
+  $LOAD_PATH.unshift(TOOL_ROOT)
+end
+
+require "pp"
+require "yaml"
+require "optparse"
+require "kconv.rb"
+require "rexml/document.rb"
+include REXML
+
+######################################################################
+# 定数定義
+######################################################################
+VERSION       = "1.1.0"
+VER_INFO      = " Generated by ABREX Ver. #{VERSION} "
+XML_ROOT_PATH = "/AUTOSAR/EcucDefs/"
+XML_EDITION   = "4.2.0"
+XML_SNAME     = "SHORT-NAME"
+XML_PARAM     = "PARAMETER-VALUES"
+XML_REFER     = "REFERENCE-VALUES"
+XML_SUB       = "SUB-CONTAINERS"
+XML_AUTOSAR_FIXED_ATT = {"xmlns"              => "http://autosar.org/schema/r4.0",
+                         "xmlns:xsi"          => "http://www.w3.org/2001/XMLSchema-instance",
+                         "xsi:schemaLocation" => "http://autosar.org/schema/r4.0 AUTOSAR_4-0-3_STRICT.xsd"}
+
+# パラメータデータ型種別格納ハッシュ
+# (これ以外はすべてECUC-NUMERICAL-PARAM-VALUE)
+XML_VALUE_TYPE = {"ECUC-REFERENCE-DEF"               => "ECUC-REFERENCE-VALUE",
+                  "ECUC-FOREIGN-REFERENCE-DEF"       => "ECUC-REFERENCE-VALUE",
+                  "ECUC-SYMBOLIC-NAME-REFERENCE-DEF" => "ECUC-REFERENCE-VALUE",
+                  "ECUC-INSTANCE-REFERENCE-DEF"      => "ECUC-INSTANCE-REFERENCE-VALUE",
+                  "ECUC-CHOICE-REFERENCE-DEF"        => "ECUC-CHOICE-REFERENCE-DEF",
+                  "ECUC-ENUMERATION-PARAM-DEF"       => "ECUC-TEXTUAL-PARAM-VALUE",
+                  "ECUC-STRING-PARAM-DEF"            => "ECUC-TEXTUAL-PARAM-VALUE",
+                  "ECUC-MULTILINE-STRING-PARAM-DEF"  => "ECUC-TEXTUAL-PARAM-VALUE",
+                  "ECUC-FUNCTION-NAME-DEF"           => "ECUC-TEXTUAL-PARAM-VALUE",
+                  "ECUC-LINKER-SYMBOL-DEF"           => "ECUC-TEXTUAL-PARAM-VALUE"}
+
+# インスタンス参照型の特別コンテナ
+XML_INSTANCE_REF_CONTAINER = {"EcucPartitionSoftwareComponentInstanceRef" =>
+                                {"CONTEXT-ELEMENT-REF" => "ROOT-SW-COMPOSITION-PROTOTYPE",
+                                 "TARGET-REF" => "SW-COMPONENT-PROTOTYPE"}}
+
+######################################################################
+# YAML → XML 実行機能
+######################################################################
+def YamlToXml(aArgData, sEcuExtractRef)
+  # 各パラメータのデータ型定義(-pオプションで生成したものを使用する)
+  sFileName = "#{TOOL_ROOT}/param_info.yaml"
+  if (!File.exist?(sFileName))
+    abort("#{sFileName} not found !!")
+  end
+  hParamInfo = YAML.load_file(sFileName)
+  # ハッシュでない(YAMLでない)場合エラー
+  if (!hParamInfo.is_a?(Hash))
+    abort("not YAML file !! [#{sFileName}]")
+  end
+
+  # 外部参照先のデータ型格納ハッシュを分離
+  $hForeignRefType = hParamInfo.delete(:FOREIGN_REF_TYPE)
+
+  # インスタンス参照先のデータ型を保持
+  $aInstanceRefType = hParamInfo["ECUC-INSTANCE-REFERENCE-DEF"]
+
+  # コンテナ名変換テーブル
+  $hEcuc = {}
+  $hDest = {}
+
+  hParamInfo.each{|sType, aParam|
+    aParam.each{|sName|
+      if (XML_VALUE_TYPE.has_key?(sType))
+        $hEcuc[sName] = XML_VALUE_TYPE[sType]
+      else
+        $hEcuc[sName] = "ECUC-NUMERICAL-PARAM-VALUE"
+      end
+      $hDest[sName] = sType
+    }
+  }
+
+  # 参照型のパラメータ一覧
+  $hReferenceParam = hParamInfo["ECUC-REFERENCE-DEF"] + hParamInfo["ECUC-FOREIGN-REFERENCE-DEF"] + hParamInfo["ECUC-SYMBOLIC-NAME-REFERENCE-DEF"] + hParamInfo["ECUC-INSTANCE-REFERENCE-DEF"]
+
+  # 与えられた全YAMLをマージする
+  hYaml = {}
+  sArxmlName = nil
+  aArgData.each{|sFileName|
+    # ファイルが存在しない場合エラー
+    if (!File.exist?(sFileName))
+      abort("Argument error !! [#{sFileName}]")
+    end
+
+    # 出力ファイル名作成(複数ある場合，最初のファイル名を採用する)
+    if (File.extname(sFileName) == ".yaml")
+      if (sArxmlName.nil?())
+        sArxmlName = File.dirname(sFileName) + "/" + File.basename(sFileName, ".yaml") + ".arxml"
+      end
+    else
+      abort("not YAML file name !! [#{sFileName}]")
+    end
+
+    hTmpData = YAML.load(File.read(sFileName).toutf8())
+    # ハッシュでない(YAMLでない)場合エラー
+    if (!hTmpData.is_a?(Hash))
+      abort("not YAML file !! [#{sFileName}]")
+    end
+
+    # 読み込んだデータをマージしていく
+    YamlToXml_merge_hash(hYaml, hTmpData)
+  }
+
+  cXmlInfo = Document.new()
+  cXmlInfo.add(XMLDecl.new("1.0", "UTF-8"))
+  REXML::Comment.new(VER_INFO, cXmlInfo)
+  cXmlAutosar = cXmlInfo.add_element("AUTOSAR", XML_AUTOSAR_FIXED_ATT)
+  cXmlArPackages = cXmlAutosar.add_element("AR-PACKAGES")
+
+  # IMPLEMENTATION-DATA-TYPE格納ハッシュを分離して先に登録
+  hImplDataType = hYaml.delete("IMPLEMENTATION-DATA-TYPE")
+  if (!hImplDataType.nil?())
+    cXmlArPackage = cXmlArPackages.add_element("AR-PACKAGE")
+    cXmlArPackage.add_element(XML_SNAME).add_text("ImplementationDataTypes")
+    cXmlElements = cXmlArPackage.add_element("ELEMENTS")
+    hImplDataType.each{|sShortName, hData|
+      cXmlEcucModuleConfVal = cXmlElements.add_element("IMPLEMENTATION-DATA-TYPE")
+      cXmlEcucModuleConfVal.add_element(XML_SNAME).add_text(sShortName)
+      cXmlEcucModuleConfVal.add_element("CATEGORY").add_text(hData["CATEGORY"])
+    }
+  end
+
+  aModulePaths = []
+  hYaml.each{|sPackageName, hPackageData|
+    cXmlArPackage = cXmlArPackages.add_element("AR-PACKAGE")
+    cXmlArPackage.add_element(XML_SNAME).add_text(sPackageName)
+    cXmlElements = cXmlArPackage.add_element("ELEMENTS")
+
+    hPackageData.each{|sEcucModuleName, hEcucModuleData|
+      aModulePaths.push("/#{sPackageName}/#{sEcucModuleName}")
+      cXmlEcucModuleConfVal = cXmlElements.add_element("ECUC-MODULE-CONFIGURATION-VALUES")
+      cXmlEcucModuleConfVal.add_element(XML_SNAME).add_text(sEcucModuleName)
+      cXmlEcucModuleConfVal.add_element("DEFINITION-REF", {"DEST" => "ECUC-MODULE-DEF"}).add_text(XML_ROOT_PATH + sEcucModuleName)
+      cXmlEcucModuleConfVal.add_element("ECUC-DEF-EDITION").add_text(XML_EDITION)
+      cXmlEcucModuleConfVal.add_element("IMPLEMENTATION-CONFIG-VARIANT").add_text("VARIANT-PRE-COMPILE")
+      cXmlContainers = cXmlEcucModuleConfVal.add_element("CONTAINERS")
+
+      # 各パラメータ用コンテナを作成する
+      hEcucModuleData.each{|sShortName, hParamInfo|
+        # DefinitionRef補完
+        if (!hParamInfo.has_key?("DefinitionRef"))
+          hParamInfo["DefinitionRef"] = sShortName
+        end
+
+        cContainer = YamlToXml_make_container(sShortName, hParamInfo, XML_ROOT_PATH + sEcucModuleName)
+        cXmlContainers.add_element(cContainer)
+      }
+    }
+  }
+
+  # ECU-EXTRACT-REF指定がある場合、<ECUC-VALUE-COLLECTION>を追加する
+  if (!sEcuExtractRef.nil?())
+    cXmlArPackage = cXmlArPackages.add_element("AR-PACKAGE")
+    cXmlArPackage.add_element(XML_SNAME).add_text("EcucValueCollection")
+    cXmlElements = cXmlArPackage.add_element("ELEMENTS")
+    cXmlEcucValueCollection = cXmlElements.add_element("ECUC-VALUE-COLLECTION")
+    cXmlEcucValueCollection.add_element(XML_SNAME).add_text("EcucValueCollection")
+    cXmlEcucValueCollection.add_element("ECU-EXTRACT-REF", {"DEST" => "SYSTEM"}).add_text(sEcuExtractRef)
+    cXmlEcucValues = cXmlEcucValueCollection.add_element("ECUC-VALUES")
+    aModulePaths.each{|sPath|
+      cTemp = cXmlEcucValues.add_element("ECUC-MODULE-CONFIGURATION-VALUES-REF-CONDITIONAL")
+      cTemp.add_element("ECUC-MODULE-CONFIGURATION-VALUES-REF", {"DEST" => "ECUC-MODULE-CONFIGURATION-VALUES"}).add_text(sPath)
+    }
+  end
+
+  # XML文字列生成
+  sXmlCode = String.new()
+  cXmlInfo.write(sXmlCode, 2, false)
+
+  # XML宣言の属性のコーテーションをダブルに出来ない(?)ため，ここで置換する
+  sXmlCode.gsub!("'", "\"")
+
+  # ダブルコーテーションが&quot;に変換されるのを抑止できない(?)ため，ここで置換する
+  sXmlCode.gsub!("&quot;", "\"")
+
+  # 値を定義する部分だけインデントを入れないように出来ない(?)ため，ここで置換する
+  sXmlCode.gsub!(/>\n[\s]+([\w\.\[\]\(\)\+-\/\*~&;\s]*?)\n[\s]+</, ">\\1<")
+
+  # XMLDeclのコンストラクタではEUC-JPを指定出来ない(?)ため，ここで文字コードを置換する
+  sXmlCode.sub!("UTF-8", "EUC-JP")
+
+  # インデントをタブに出来ない(?)ため，ここで置換する
+  sXmlCode.gsub!("  ", "\t")
+
+  # ファイル出力
+  #puts(sXmlCode)
+  File.open(sArxmlName, "w") {|io|
+    io.puts(sXmlCode)
+  }
+
+  puts("Generated #{sArxmlName}")
+end
+
+# ハッシュマージ関数
+def YamlToXml_merge_hash(hBase, hAdd)
+  hAdd.each{|sKey, xVal|
+    # 追加先にキーが存在しなければ，そのまま追加するのみ
+    if (!hBase.has_key?(sKey))
+      hBase[sKey] = xVal
+    # 同じキーで値が違う場合
+    elsif (hBase[sKey] != hAdd[sKey])
+      # ハッシュ同士であれば，再帰で追加
+      if (hBase[sKey].is_a?(Hash) && hAdd[sKey].is_a?(Hash))
+        YamlToXml_merge_hash(hBase[sKey], hAdd[sKey])
+      # 追加先が配列であれば，配列に合わせて追加
+      elsif (hBase[sKey].is_a?(Array))
+        if (hAdd[sKey].is_a?(Array))
+          hBase[sKey].concat(hAdd[sKey])
+        else
+          hBase[sKey].push(hAdd[sKey])
+        end
+      # 追加先が配列でなければ，配列にしてから追加
+      elsif (hAdd[sKey].is_a?(Array))
+        hBase[sKey] = [hBase[sKey]]
+        hBase[sKey].concat(hAdd[sKey])
+      # どちらも配列でない場合，配列として両方をマージ
+      else
+        hBase[sKey] = [hBase[sKey]]
+        hBase[sKey].push(hAdd[sKey])
+      end
+    else
+      # 同じパラメータの場合，何もしない
+    end
+  }
+end
+
+# コンテナ作成関数
+def YamlToXml_make_container(sShortName, hParamInfo, sPath)
+  # 一律"ECUC-CONTAINER-VALUE"を入れた状態で初期化
+  cContainer = Element.new().add_element("ECUC-CONTAINER-VALUE")
+
+  # ショートネーム追加
+  cContainer.add_element(XML_SNAME).add_text(sShortName)
+
+  # コンテナまでのパス追加
+  cContainer.add_element("DEFINITION-REF", {"DEST" => "ECUC-PARAM-CONF-CONTAINER-DEF"}).add_text("#{sPath}/#{hParamInfo["DefinitionRef"]}")
+
+  # 各パラメータ設定(パラメータが無い場合は不要)
+  hCheck= {}
+  if (hParamInfo.size() != 1)
+    hCheck[XML_PARAM] = false
+    hCheck[XML_REFER] = false
+    hCheck[XML_SUB] = false
+
+    # まず参照型，サブコンテナ以外を生成(AUTOSARスキーマ制約)
+    hParamInfo.each{|sParamName, sahValue|
+      if ((sParamName == "DefinitionRef") || (sahValue.is_a?(Hash)))
+        next
+      end
+
+      # 参照型，サブコンテナ以外のパラメータ
+      if (!$hReferenceParam.include?(sParamName))
+        # パラメータ名チェック
+        if (!$hEcuc.has_key?(sParamName) || !$hDest.has_key?(sParamName))
+          abort("Unknown parameter: #{sParamName}")
+        end
+
+        if (hCheck[XML_PARAM] == false)
+          cContainer.add_element(XML_PARAM)
+          hCheck[XML_PARAM] = true
+        end
+
+        # 多重度*対応
+        aTemp = []
+        if (sahValue.is_a?(Array))
+          aTemp = sahValue
+        else
+          aTemp.push(sahValue)
+        end
+        aTemp.each{|sVal|
+          cParamContainer_ = Element.new()
+          cParamContainer = cParamContainer_.add_element($hEcuc[sParamName])
+          cParamContainer.add_element("DEFINITION-REF", {"DEST" => $hDest[sParamName]}).add_text("#{sPath}/#{hParamInfo["DefinitionRef"]}/#{sParamName}")
+          cParamContainer.add_element("VALUE").add_text(sVal.to_s())
+          cContainer.elements[XML_PARAM].add_element(cParamContainer)
+        }
+      end
+    }
+
+    # 次に参照型を生成(AUTOSARスキーマ制約)
+    hParamInfo.each{|sParamName, sahValue|
+      if ((sParamName == "DefinitionRef") || (sahValue.is_a?(Hash)))
+        next
+      end
+
+      # インスタンス参照型の場合
+      if ($aInstanceRefType.include?(sParamName))
+        if (!sahValue.is_a?(Array))
+          abort("#{sParamName} must be Array !!")
+        end
+        # 未サポートコンテナは生成できないためエラーとする
+        if (!XML_INSTANCE_REF_CONTAINER.has_key?(sParamName))
+          abort("#{sParamName} is not supported !!")
+        end
+        if (hCheck[XML_REFER] == false)
+          cContainer.add_element(XML_REFER)
+          hCheck[XML_REFER] = true
+        end
+
+        # 多重度*対応(2次元配列かチェック)
+        aTemp = []
+        if (sahValue[0].is_a?(Array))
+          aTemp = sahValue
+        else
+          aTemp.push(sahValue)
+        end
+        aTemp.each{|aVal|
+          cParamContainer_ = Element.new()
+          cParamContainer = cParamContainer_.add_element($hEcuc[sParamName])
+          cParamContainer.add_element("DEFINITION-REF", {"DEST" => $hDest[sParamName]}).add_text("#{sPath}/#{hParamInfo["DefinitionRef"]}/#{sParamName}")
+          cInstanceRef = cParamContainer.add_element("VALUE-IREF")
+          aVal.each{|hVal|
+            XML_INSTANCE_REF_CONTAINER[sParamName].each{|sParam, sDest|
+              if (hVal.has_key?(sParam))
+                cInstanceRef.add_element(sParam, {"DEST" => sDest}).add_text(hVal[sParam].to_s())
+              end
+            }
+          }
+          cContainer.elements[XML_REFER].add_element(cParamContainer)
+        }
+
+      # 参照型の場合
+      elsif ($hReferenceParam.include?(sParamName))
+        if (hCheck[XML_REFER] == false)
+          cContainer.add_element(XML_REFER)
+          hCheck[XML_REFER] = true
+        end
+
+        # 多重度*対応
+        aTemp = []
+        if (sahValue.is_a?(Array))
+          aTemp = sahValue
+        else
+          aTemp.push(sahValue)
+        end
+        aTemp.each{|sVal|
+          cParamContainer_ = Element.new()
+          cParamContainer = cParamContainer_.add_element($hEcuc[sParamName])
+          cParamContainer.add_element("DEFINITION-REF", {"DEST" => $hDest[sParamName]}).add_text("#{sPath}/#{hParamInfo["DefinitionRef"]}/#{sParamName}")
+          if (!$hForeignRefType.nil? && $hForeignRefType.has_key?(sParamName))
+            cParamContainer.add_element("VALUE-REF", {"DEST" => $hForeignRefType[sParamName]}).add_text(sVal.to_s())
+          else
+            cParamContainer.add_element("VALUE-REF", {"DEST" => "ECUC-CONTAINER-VALUE"}).add_text(sVal.to_s())
+          end
+          cContainer.elements[XML_REFER].add_element(cParamContainer)
+        }
+      end
+    }
+
+    # 最後にサブコンテナを生成
+    hParamInfo.each{|sParamName, sahValue|
+      if ((sParamName == "DefinitionRef") || (!sahValue.is_a?(Hash)))
+        next
+      end
+
+      if (hCheck[XML_SUB] == false)
+        cContainer.add_element(XML_SUB)
+        hCheck[XML_SUB] = true
+      end
+
+      # DefinitionRef補完
+      if (!sahValue.has_key?("DefinitionRef"))
+        sahValue["DefinitionRef"] = sParamName
+      end
+
+      # 再帰でサブコンテナを作成する
+      cContainer.elements[XML_SUB].add_element(YamlToXml_make_container(sParamName, sahValue, "#{sPath}/#{hParamInfo["DefinitionRef"]}"))
+    }
+  end
+
+  return cContainer
+end
+
+
+######################################################################
+# XML → YAML 実行機能
+######################################################################
+def XmlToYaml(sFirstFile, aExtraFile)
+  aExtraFile.unshift(sFirstFile)
+  aExtraFile.each{|sFileName|
+    # ファイルが存在しない場合エラー
+    if (!File.exist?(sFileName))
+      abort("Argument error !! [#{sFileName}]")
+    end
+
+    # 出力ファイル名作成
+    if (File.extname(sFileName) == ".arxml")
+      sYamlName = File.dirname(sFileName) + "/" + File.basename(sFileName, ".arxml") + ".yaml"
+    else
+      abort("not ARXML file !! [#{sFileName}]")
+    end
+
+    # XMLライブラリでの読み込み
+    cXmlData = REXML::Document.new(open(sFileName))
+
+    hResult = {}
+
+    cXmlData.elements.each("AUTOSAR/AR-PACKAGES/AR-PACKAGE"){|cElement1|
+      cElement1.elements.each("ELEMENTS/ECUC-MODULE-CONFIGURATION-VALUES"){|cElement2|
+        sPackageName = cElement1.elements["SHORT-NAME"].text()
+        if (!hResult.has_key?(sPackageName))
+          hResult[sPackageName] = {}
+        end
+
+        sModuleName = cElement2.elements["SHORT-NAME"].text()
+        hResult[sPackageName][sModuleName] = {}
+
+        cElement2.elements.each("CONTAINERS/ECUC-CONTAINER-VALUE"){|cElement3|
+          XmlToYaml_parse_parameter(cElement3, hResult[sPackageName][sModuleName])
+        }
+      }
+    }
+
+    # YAMLファイル出力
+    open(sYamlName, "w") do |io|
+      YAML.dump(hResult, io)
+    end
+
+    # YAML整形処理
+    # ・先頭の区切り文字削除
+    # ・コーテーションの削除
+    # ・配列のインデント整列
+    sFileData = File.read(sYamlName)
+    sFileData.gsub!(/^---$/, "")
+    sFileData.gsub!("'", "")
+    sFileData.gsub!(/^(\s+)-(\s.*)$/, "\\1  -\\2")
+    File.write(sYamlName, sFileData)
+
+    puts("Generated #{sYamlName}")
+  }
+end
+
+# コンテナパース関数
+def XmlToYaml_parse_parameter(cElement, hTarget)
+  sParamShortName = cElement.elements["SHORT-NAME"].text()
+  sParamDefName = cElement.elements["DEFINITION-REF"].text().split("/")[-1]
+  hTarget[sParamShortName] = {}
+  if (sParamShortName != sParamDefName)
+    hTarget[sParamShortName]["DefinitionRef"] = sParamDefName
+  end
+
+  # パラメータ
+  cElement.elements.each("PARAMETER-VALUES"){|cElementC|
+    ["ECUC-NUMERICAL-PARAM-VALUE", "ECUC-TEXTUAL-PARAM-VALUE"].each{|sParamValue|
+      cElementC.elements.each(sParamValue){|cElementG|
+        sName = cElementG.elements["DEFINITION-REF"].text().split("/")[-1]
+        sValue = cElementG.elements["VALUE"].text()
+        # 複数多重度対応
+        if (hTarget[sParamShortName].has_key?(sName))
+          if (hTarget[sParamShortName][sName].is_a?(Array))
+            # 既に複数ある場合は配列に追加
+            hTarget[sParamShortName][sName].push(sValue)
+          else
+            # 1つだけ定義されていた場合は配列に変更
+            sTemp = hTarget[sParamShortName][sName]
+            hTarget[sParamShortName][sName] = [sTemp, sValue]
+          end
+        else
+          hTarget[sParamShortName][sName] = sValue
+        end
+      }
+    }
+  }
+
+  # 参照，外部参照，選択参照
+  cElement.elements.each("REFERENCE-VALUES/ECUC-REFERENCE-VALUE"){|cElementC|
+    sName = cElementC.elements["DEFINITION-REF"].text().split("/")[-1]
+    if (cElementC.elements["VALUE-REF"].nil?)
+      abort("<VALUE> is not found in '#{sParamShortName}'")
+    end
+    sValue = cElementC.elements["VALUE-REF"].text()
+    # 複数多重度対応
+    if (hTarget[sParamShortName].has_key?(sName))
+      if (hTarget[sParamShortName][sName].is_a?(Array))
+        # 既に複数ある場合は配列に追加
+        hTarget[sParamShortName][sName].push(sValue)
+      else
+        # 1つだけ定義されていた場合は配列に変更
+        sTemp = hTarget[sParamShortName][sName]
+        hTarget[sParamShortName][sName] = [sTemp, sValue]
+      end
+    else
+      hTarget[sParamShortName][sName] = sValue
+    end
+  }
+
+  # インスタンス参照
+  cElement.elements.each("REFERENCE-VALUES/ECUC-INSTANCE-REFERENCE-VALUE"){|cElementC|
+    sName = cElementC.elements["DEFINITION-REF"].text().split("/")[-1]
+    hTarget[sParamShortName][sName] = []
+    hTarget[sParamShortName][sName].push({"CONTEXT-ELEMENT-REF" => cElementC.elements["VALUE-IREF"].elements["CONTEXT-ELEMENT-REF"].text()})
+    hTarget[sParamShortName][sName].push({"TARGET-REF" => cElementC.elements["VALUE-IREF"].elements["TARGET-REF"].text()})
+  }
+
+  # サブコンテナ(再帰呼出し)
+  cElement.elements.each("SUB-CONTAINERS/ECUC-CONTAINER-VALUE"){|cElementC|
+    XmlToYaml_parse_parameter(cElementC, hTarget[sParamShortName])
+  }
+end
+
+
+######################################################################
+# AUTOSARパラメータ情報ファイル作成
+######################################################################
+def MakeParamInfo(sFileName)
+  # ファイルが存在しない場合エラー
+  if (!File.exist?(sFileName))
+    abort("Argument error !! [#{sFileName}]")
+  end
+
+  sParamFileName = File.dirname(sFileName) + "/param_info.yaml"
+
+  # 読み込み対象モジュール
+  aTargetModule = ["Rte", "Os", "Com", "PduR", "CanIf", "Can", "EcuC", "EcuM", "WdgM", "WdgIf", "Wdg", "Dem"]
+
+  # XMLライブラリでの読み込み
+  cXmlData = REXML::Document.new(open(sFileName))
+
+  # 外部参照先のデータ型格納ハッシュ
+  $hForeignRefType = {}
+
+  # パース結果格納ハッシュ初期化(NCES仕様コンテナは予め設定)
+  sNcesContainer = <<-EOS
+ECUC-ENUMERATION-PARAM-DEF:
+  - OsViolationHandlingLevel
+  - OsTimingProtectionLevel
+  - OsMemoryProtectionLevel
+  - OsMemorySectionInitialize
+  - OsIsrInterruptSource
+  - OsInterCoreInterruptInterruptSource
+  - OsSpinlockLockMethod
+  - WdgTriggerMode
+  - WdgTimeoutReaction
+ECUC-INTEGER-PARAM-DEF:
+  - OsMasterCoreId
+  - OsHookStackSize
+  - OsHookStackStartAddress
+  - OsHookStackCoreAssignment
+  - OsOsStackSize
+  - OsOsStackStartAddress
+  - OsOsStackCoreAssignment
+  - OsNonTrustedHookStackSize
+  - OsNonTrustedHookStackStartAddress
+  - OsNonTrustedHookStackCoreAssignment
+  - OsTaskStackSize
+  - OsTaskStackStartAddress
+  - OsTaskSystemStackSize
+  - OsTaskSystemStackStartAddress
+  - OsIsrInterruptNumber
+  - OsIsrInterruptPriority
+  - OsIsrStackSize
+  - OsTrustedFunctionStackSize
+  - OsInterCoreInterruptStackSize
+  - OsInterCoreInterruptStackStartAddress
+  - OsMemoryRegionStartAddress
+  - OsMemoryRegionSize
+  - OsMemoryAreaSize
+  - OsStandardMemoryCoreAssignment
+  - OsIsrMaxFrequency
+  - WdgWindowOpenRate
+ECUC-STRING-PARAM-DEF:
+  - OsIncludeFileName
+  - OsMemoryRegionName
+  - OsMemoryAreaStartAddress
+  - OsMemorySectionName
+  - OsMemoryModuleName
+  - OsLinkSectionName
+  - OsIocPrimitiveDataType
+  - OsIocIncludeFile
+ECUC-BOOLEAN-PARAM-DEF:
+  - OsMemoryRegionWriteable
+  - OsMemoryAreaWritable
+  - OsMemoryAreaReadable
+  - OsMemoryAreaExecutable
+  - OsMemoryAreaCacheable
+  - OsMemoryAreaDevice
+  - OsMemorySectionWritable
+  - OsMemorySectionReadable
+  - OsMemorySectionExecutable
+  - OsMemorySectionShort
+  - OsMemorySectionCacheable
+  - OsMemorySectionDevice
+  - OsMemorySectionExport
+  - OsMemoryModuleExport
+  - OsTaskOsInterruptLockMonitor
+  - OsTaskResourceLockMonitor
+ECUC-REFERENCE-DEF:
+  - OsStandardMemoryRomRegionRef
+  - OsStandardMemoryRamRegionRef
+  - OsAppStandardMemoryRomRegionRef
+  - OsAppStandardMemoryRamRegionRef
+  - OsMemorySectionMemoryRegionRef
+  - OsLinkSectionMemoryRegionRef
+  - OsResourceLinkedResourceRef
+  - OsCounterIsrRef
+  - OsAppMemorySectionRef
+  - OsAppMemoryModuleRef
+  - OsAppMemoryAreaRef
+  - OsAppInterCoreInterruptRef
+  - OsInterCoreInterruptAccessingApplication
+  - OsInterCoreInterruptResourceRef
+  - WdgMOsCounterRef
+  - OsSystemCycleTimeWindowRef
+ECUC-FLOAT-PARAM-DEF:
+  - OsSystemCycleTime
+  - OsSystemCycleTimeWindowStart
+  - OsSystemCycleTimeWindowLength
+  - OsOsInterruptLockBudget
+  - OsResourceLockBudget
+  - WdgTimeout
+  - WdgTriggerInterruptPeriod
+EOS
+  $hResult = YAML.load(sNcesContainer)
+
+  cXmlData.elements.each("AUTOSAR/AR-PACKAGES/AR-PACKAGE/AR-PACKAGES/AR-PACKAGE/ELEMENTS/ECUC-MODULE-DEF"){|cElement1|
+    # 対象モジュールのみを処理する
+    if (!aTargetModule.include?(cElement1.elements["SHORT-NAME"].text()))
+      next
+    end
+
+    cElement1.elements.each("CONTAINERS/ECUC-PARAM-CONF-CONTAINER-DEF"){|cElement2|
+      MakeParamInfo_parse_parameter(cElement2)
+    }
+  }
+
+  # パラメータ名でソートと重複除去
+  hResultSort = {}
+  $hResult.each{|sType, aParam|
+    hResultSort[sType] = aParam.uniq().sort()
+  }
+
+  # 外部参照先のデータ型格納ハッシュを結合
+  if (!$hForeignRefType.empty?())
+    hResultSort[:FOREIGN_REF_TYPE] = $hForeignRefType
+  end
+
+  # RteSoftwareComponentInstanceRefは外部参照とインスタンス参照の
+  # 両方に含まれるが，外部参照として扱う
+  hResultSort["ECUC-INSTANCE-REFERENCE-DEF"].delete("RteSoftwareComponentInstanceRef")
+
+  # YAMLファイル出力
+  open(sParamFileName, "w") do |io|
+    YAML.dump(hResultSort, io)
+  end
+
+  puts("Generated #{sParamFileName}")
+end
+
+# サブコンテナ再帰パース関数
+def MakeParamInfo_parse_sub_container(cElement)
+  # "ECUC-PARAM-CONF-CONTAINER-DEF"が登場するまで再帰する
+  cElement.elements.each{|cElementC|
+    # CHOICEはさらにネストする
+    if (cElementC.name == "ECUC-CHOICE-CONTAINER-DEF")
+      MakeParamInfo_parse_sub_container(cElementC)
+    elsif (cElementC.name == "ECUC-PARAM-CONF-CONTAINER-DEF")
+      MakeParamInfo_parse_parameter(cElementC)
+    else
+      MakeParamInfo_parse_sub_container(cElementC)
+    end
+  }
+end
+
+# コンテナパース関数
+def MakeParamInfo_parse_parameter(cElement)
+  # パラメータ
+  cElement.elements.each("PARAMETERS"){|cElementC|
+    cElementC.elements.each{|cElementG|
+      # 初出のデータ型処理
+      if (!$hResult.has_key?(cElementG.name))
+        $hResult[cElementG.name] = []
+      end
+
+      # 取得したパラメータ名を格納する
+      $hResult[cElementG.name].push(cElementG.elements["SHORT-NAME"].text())
+    }
+  }
+
+  # 参照
+  cElement.elements.each("REFERENCES/ECUC-REFERENCE-DEF"){|cElementC|
+    $hResult["ECUC-REFERENCE-DEF"].push(cElementC.elements["SHORT-NAME"].text())
+  }
+
+  # 外部参照
+  cElement.elements.each("REFERENCES/ECUC-FOREIGN-REFERENCE-DEF"){|cElementC|
+    # 初出のデータ型処理
+    if (!$hResult.has_key?("ECUC-FOREIGN-REFERENCE-DEF"))
+      $hResult["ECUC-FOREIGN-REFERENCE-DEF"] = []
+    end
+    $hResult["ECUC-FOREIGN-REFERENCE-DEF"].push(cElementC.elements["SHORT-NAME"].text())
+    $hForeignRefType[cElementC.elements["SHORT-NAME"].text()] = cElementC.elements["DESTINATION-TYPE"].text()
+  }
+
+  # 選択参照
+  cElement.elements.each("REFERENCES/ECUC-CHOICE-REFERENCE-DEF"){|cElementC|
+    # 初出のデータ型処理
+    if (!$hResult.has_key?("ECUC-CHOICE-REFERENCE-DEF"))
+      $hResult["ECUC-CHOICE-REFERENCE-DEF"] = []
+    end
+    $hResult["ECUC-CHOICE-REFERENCE-DEF"].push(cElementC.elements["SHORT-NAME"].text())
+  }
+
+  # シンボル参照
+  cElement.elements.each("REFERENCES/ECUC-SYMBOLIC-NAME-REFERENCE-DEF"){|cElementC|
+    # 初出のデータ型処理
+    if (!$hResult.has_key?("ECUC-SYMBOLIC-NAME-REFERENCE-DEF"))
+      $hResult["ECUC-SYMBOLIC-NAME-REFERENCE-DEF"] = []
+    end
+    $hResult["ECUC-SYMBOLIC-NAME-REFERENCE-DEF"].push(cElementC.elements["SHORT-NAME"].text())
+  }
+
+  # インスタンス参照
+  cElement.elements.each("REFERENCES/ECUC-INSTANCE-REFERENCE-DEF"){|cElementC|
+    # 初出のデータ型処理
+    if (!$hResult.has_key?("ECUC-INSTANCE-REFERENCE-DEF"))
+      $hResult["ECUC-INSTANCE-REFERENCE-DEF"] = []
+    end
+    $hResult["ECUC-INSTANCE-REFERENCE-DEF"].push(cElementC.elements["SHORT-NAME"].text())
+  }
+
+  # サブコンテナ(再帰呼出し)
+  cElement.elements.each("SUB-CONTAINERS"){|cElementC|
+    MakeParamInfo_parse_sub_container(cElementC)
+  }
+end
+
+
+######################################################################
+# ジェネレータ用csvファイルの生成
+######################################################################
+def MakeCsv(sFileName, sTargetModule)
+  # ファイルが存在しない場合エラー
+  if (!File.exist?(sFileName))
+    abort("Argument error !! [#{sFileName}]")
+  end
+
+  sCsvFileName = File.dirname(sFileName) + "/" + sTargetModule + ".csv"
+
+  # XMLライブラリでの読み込み
+  cXmlData = REXML::Document.new(open(sFileName))
+
+  $hResult = {}
+  $sNowContainer = ""
+
+  cXmlData.elements.each("AUTOSAR/AR-PACKAGES/AR-PACKAGE/AR-PACKAGES/AR-PACKAGE/ELEMENTS/ECUC-MODULE-DEF"){|cElement1|
+    # 対象モジュールのみを処理する
+    if (cElement1.elements["SHORT-NAME"].text() != sTargetModule)
+      next
+    end
+
+    cElement1.elements.each("CONTAINERS/ECUC-PARAM-CONF-CONTAINER-DEF"){|cElement2|
+      $sContainer = cElement2.elements["SHORT-NAME"].text()
+      $hResult[$sContainer] = MakeCsv_add_parameter_info(cElement2, nil)
+      MakeCsv_parse_parameter(cElement2)
+    }
+  }
+
+  sModulePath = "/AUTOSAR/EcucDefs/#{sTargetModule}"
+  sCsvData = "#{sModulePath},,,1\n"
+
+  hDataTypeTable = {"ECUC-REFERENCE-DEF"               => "REF",
+                    "ECUC-FOREIGN-REFERENCE-DEF"       => "REF",
+                    "ECUC-CHOICE-REFERENCE-DEF"        => "REF",
+                    "ECUC-SYMBOLIC-NAME-REFERENCE-DEF" => "REF",
+                    "ECUC-INSTANCE-REFERENCE-DEF"      => "REF",
+                    "ECUC-BOOLEAN-PARAM-DEF"           => "BOOLEAN",
+                    "ECUC-INTEGER-PARAM-DEF"           => "INT",
+                    "ECUC-FUNCTION-NAME-DEF"           => "FUNCTION",
+                    "ECUC-ENUMERATION-PARAM-DEF"       => "ENUM",
+                    "ECUC-STRING-PARAM-DEF"            => "STRING",
+                    "ECUC-FLOAT-PARAM-DEF"             => "FLOAT",
+                    "ECUC-LINKER-SYMBOL-DEF"           => "STRING",
+                    nil                                => ""}
+
+  $hResult.each{|sParam, aInfo|
+    if (!hDataTypeTable.has_key?(aInfo[0]))
+      abort("[#{__FILE__}] #{__LINE__}: #{aInfo[0]}")
+    end
+    if ((aInfo[1] == "1") && (aInfo[2] == "1"))
+      sCsvData += "#{sModulePath}/#{sParam},#{sParam.split("/")[-1]},#{hDataTypeTable[aInfo[0]]},1\n"
+    else
+      sCsvData += "#{sModulePath}/#{sParam},#{sParam.split("/")[-1]},#{hDataTypeTable[aInfo[0]]},#{aInfo[1]},#{aInfo[2]}\n"
+    end
+  }
+
+  File.open(sCsvFileName, "w") {|io|
+    io.puts(sCsvData)
+  }
+
+  puts("Generated #{sCsvFileName}")
+end
+
+# パラメータ情報追加関数
+def MakeCsv_add_parameter_info(cElement, sName = cElement.name)
+  # パラメータ毎に，型・多重度下限，上限の情報を取得
+  sLower = nil
+  if (!cElement.elements["LOWER-MULTIPLICITY"].nil?)
+    sLower = cElement.elements["LOWER-MULTIPLICITY"].text()
+  else
+    abort("[#{__FILE__}] #{__LINE__}")
+  end
+  sUpper = nil
+  if (!cElement.elements["UPPER-MULTIPLICITY"].nil?)
+    sUpper = cElement.elements["UPPER-MULTIPLICITY"].text()
+  elsif (!cElement.elements["UPPER-MULTIPLICITY-INFINITE"].nil? && (cElement.elements["UPPER-MULTIPLICITY-INFINITE"].text() == "true"))
+    sUpper = "*"
+  else
+    abort("[#{__FILE__}] #{__LINE__}")
+  end
+
+  return [sName, sLower, sUpper]
+end
+
+# サブコンテナ再帰パース関数
+def MakeCsv_parse_sub_container(cElement)
+  # "ECUC-PARAM-CONF-CONTAINER-DEF"が登場するまで再帰する
+  cElement.elements.each{|cElementC|
+    # CHOICEはさらにネストする
+    if (cElementC.name == "ECUC-CHOICE-CONTAINER-DEF")
+      $sContainer += "/#{cElementC.elements["SHORT-NAME"].text()}"
+      $hResult[$sContainer] = MakeCsv_add_parameter_info(cElementC, nil)
+      MakeCsv_parse_sub_container(cElementC)
+
+      aTemp = $sContainer.split("/")
+      aTemp.pop()
+      $sContainer = aTemp.join("/")
+    elsif (cElementC.name == "ECUC-PARAM-CONF-CONTAINER-DEF")
+      $sContainer += "/#{cElementC.elements["SHORT-NAME"].text()}"
+      $hResult[$sContainer] = MakeCsv_add_parameter_info(cElementC, nil)
+      MakeCsv_parse_parameter(cElementC)
+
+      aTemp = $sContainer.split("/")
+      aTemp.pop()
+      $sContainer = aTemp.join("/")
+    else
+      MakeCsv_parse_sub_container(cElementC)
+    end
+  }
+end
+
+# コンテナパース関数
+def MakeCsv_parse_parameter(cElement)
+  # パラメータ
+  cElement.elements.each("PARAMETERS"){|cElementC|
+    cElementC.elements.each{|cElementG|
+      sParamName = "#{$sContainer}/#{cElementG.elements["SHORT-NAME"].text()}"
+      $hResult[sParamName] = MakeCsv_add_parameter_info(cElementG)
+    }
+  }
+
+  # 参照
+  cElement.elements.each("REFERENCES/ECUC-REFERENCE-DEF"){|cElementC|
+    sParamName = "#{$sContainer}/#{cElementC.elements["SHORT-NAME"].text()}"
+    $hResult[sParamName] = MakeCsv_add_parameter_info(cElementC)
+  }
+
+  # 外部参照
+  cElement.elements.each("REFERENCES/ECUC-FOREIGN-REFERENCE-DEF"){|cElementC|
+    sParamName = "#{$sContainer}/#{cElementC.elements["SHORT-NAME"].text()}"
+    $hResult[sParamName] = MakeCsv_add_parameter_info(cElementC)
+  }
+
+  # 選択参照
+  cElement.elements.each("REFERENCES/ECUC-CHOICE-REFERENCE-DEF"){|cElementC|
+    sParamName = "#{$sContainer}/#{cElementC.elements["SHORT-NAME"].text()}"
+    $hResult[sParamName] = MakeCsv_add_parameter_info(cElementC)
+  }
+
+  # シンボルネーム参照
+  cElement.elements.each("REFERENCES/ECUC-SYMBOLIC-NAME-REFERENCE-DEF"){|cElementC|
+    sParamName = "#{$sContainer}/#{cElementC.elements["SHORT-NAME"].text()}"
+    $hResult[sParamName] = MakeCsv_add_parameter_info(cElementC)
+  }
+
+  # インスタンス参照
+  cElement.elements.each("REFERENCES/ECUC-INSTANCE-REFERENCE-DEF"){|cElementC|
+    sParamName = "#{$sContainer}/#{cElementC.elements["SHORT-NAME"].text()}"
+    $hResult[sParamName] = MakeCsv_add_parameter_info(cElementC)
+  }
+
+  # サブコンテナ(再帰呼出し)
+  cElement.elements.each("SUB-CONTAINERS"){|cElementC|
+    MakeCsv_parse_sub_container(cElementC)
+  }
+end
+
+
+######################################################################
+# オプション処理
+######################################################################
+lMode = :YamlToXml
+sEcuExtractRef = nil
+cOpt = OptionParser.new(banner="Usage: abrex.rb [options]... [yaml|xml files]...", 18)
+cOpt.version = VERSION
+sOptData = nil
+sBswName = nil
+cOpt.on("-i XML_FILE", "ARXML to YAML conversion") {|xVal|
+  sOptData = xVal
+  lMode = :XmlToYaml
+}
+cOpt.on("-p XML_FILE", "Generate 'param_info.yaml' from AUTOSAR Ecu Configuration Parameters file") {|xVal|
+  sOptData = xVal
+  lMode = :MakeParamInfo
+}
+cOpt.on("-c XML_FILE", "Generate '{BSW_NAME}.csv' from AUTOSAR Ecu Configuration Parameters file") {|xVal|
+  sOptData = xVal
+  lMode = :MakeCsv
+}
+cOpt.on("-b BSW_NAME", "set a BSW Module Name (for '-c' additional optipn)") {|xVal|
+  sBswName = xVal
+  lMode = :MakeCsv
+}
+cOpt.on("-e ECU-EXTRACT-REF", "set a ECU-EXTRACT-REF path if <ECUC-VALUE-COLLECTION> is needed") {|xVal|
+  sEcuExtractRef = xVal
+  lMode = :YamlToXml
+}
+cOpt.on("-v", "--version", "show version information"){
+  puts(cOpt.ver())
+  exit(1)
+}
+cOpt.on("-h", "--help", "show help (this)"){
+  puts(cOpt.help())
+  exit(1)
+}
+
+begin
+  aArgData = cOpt.parse(ARGV)
+rescue OptionParser::ParseError
+  puts(cOpt.help())
+  exit(1)
+end
+
+if (((lMode == :YamlToXml) && aArgData.empty?()) ||
+    ((lMode != :YamlToXml) && sOptData.nil?()))
+  puts(cOpt.help())
+  exit(1)
+end
+
+if ((lMode == :MakeCsv) && sBswName.nil?())
+  puts(cOpt.help())
+  exit(1)
+end
+
+
+######################################################################
+# オプションに従って各処理を実行
+######################################################################
+case lMode
+  when :YamlToXml
+    YamlToXml(aArgData, sEcuExtractRef)
+  when :XmlToYaml
+    XmlToYaml(sOptData, aArgData)
+  when :MakeParamInfo
+    MakeParamInfo(sOptData)
+  when :MakeCsv
+    MakeCsv(sOptData, sBswName)
+end
Index: /atk2-sc3_fl850f1l/utils/abrex/param_info.yaml
===================================================================
--- /atk2-sc3_fl850f1l/utils/abrex/param_info.yaml	(revision 117)
+++ /atk2-sc3_fl850f1l/utils/abrex/param_info.yaml	(revision 117)
@@ -0,0 +1,795 @@
+--- 
+ECUC-BOOLEAN-PARAM-DEF: 
+- CanChangeBaudrateApi
+- CanControllerActivation
+- CanDevErrorDetection
+- CanHardwareCancellation
+- CanIdenticalIdCancellation
+- CanIfCtrlDrvTxCancellation
+- CanIfCtrlWakeupSupport
+- CanIfHrhSoftwareFilter
+- CanIfPrivateDlcCheck
+- CanIfPublicCancelTransmitSupport
+- CanIfPublicChangeBaudrateSupport
+- CanIfPublicDevErrorDetect
+- CanIfPublicMultipleDrvSupport
+- CanIfPublicPnSupport
+- CanIfPublicReadRxPduDataApi
+- CanIfPublicReadRxPduNotifyStatusApi
+- CanIfPublicReadTxPduNotifyStatusApi
+- CanIfPublicSetDynamicTxIdApi
+- CanIfPublicTxBuffering
+- CanIfPublicTxConfirmPollingSupport
+- CanIfPublicVersionInfoApi
+- CanIfPublicWakeupCheckValidByNM
+- CanIfPublicWakeupCheckValidSupport
+- CanIfRxPduReadData
+- CanIfRxPduReadNotifyStatus
+- CanIfSupportTTCAN
+- CanIfTTJoblist
+- CanIfTrcvWakeupSupport
+- CanIfTxPduPnFilterPdu
+- CanIfTxPduReadNotifyStatus
+- CanMultiplexedTransmission
+- CanTTControllerExternalClockSynchronisation
+- CanTTControllerGlobalTimeFiltering
+- CanTTControllerLevel2
+- CanTTControllerTURRestore
+- CanTTControllerTimeMaster
+- CanVersionInfoApi
+- CanWakeupSupport
+- ComConfigurationUseDet
+- ComEnableMDTForCyclicTransmission
+- ComIPduCancellationSupport
+- ComRetryFailedTransmitRequests
+- ComVersionInfoApi
+- DemAgingAllowed
+- DemConsiderPtoStatus
+- DemDTCSuppressionSupport
+- DemDataElementUsePort
+- DemDebounceCounterBasedSupport
+- DemDebounceCounterJumpDown
+- DemDebounceCounterJumpUp
+- DemDebounceTimeBasedSupport
+- DemDevErrorDetect
+- DemEnableConditionStatus
+- DemEnableConditionSupport
+- DemEventDisplacementSupport
+- DemFFPrestorageSupported
+- DemImmediateNvStorage
+- DemOBDSupport
+- DemOperationCycleStatusStorage
+- DemPTOSupport
+- DemStatusBitStorageTestFailed
+- DemStorageConditionStatus
+- DemStorageConditionSupport
+- DemTriggerDcmReports
+- DemTriggerDltReports
+- DemTriggerFiMReports
+- DemTriggerMonitorInitBeforeClearOk
+- DemVersionInfoApi
+- EcuMAlarmClockPresent
+- EcuMDevErrorDetect
+- EcuMEnableDefBehaviour
+- EcuMIncludeComM
+- EcuMIncludeDem
+- EcuMIncludeDet
+- EcuMIncludeNvM
+- EcuMIncludeNvramMgr
+- EcuMResetLoopDetection
+- EcuMSleepModeSuspend
+- EcuMTTIIEnabled
+- EcuMVersionInfoApi
+- EcuMWakeupSourcePolling
+- EcucPartitionBswModuleExecution
+- OsAppErrorHook
+- OsAppShutdownHook
+- OsAppStartupHook
+- OsErrorHook
+- OsMemoryAreaCacheable
+- OsMemoryAreaDevice
+- OsMemoryAreaExecutable
+- OsMemoryAreaReadable
+- OsMemoryAreaWritable
+- OsMemoryModuleExport
+- OsMemoryRegionWriteable
+- OsMemorySectionCacheable
+- OsMemorySectionDevice
+- OsMemorySectionExecutable
+- OsMemorySectionExport
+- OsMemorySectionReadable
+- OsMemorySectionShort
+- OsMemorySectionWritable
+- OsPostTaskHook
+- OsPreTaskHook
+- OsProtectionHook
+- OsScheduleTableRepeating
+- OsShutdownHook
+- OsStackMonitoring
+- OsStartupHook
+- OsTaskOsInterruptLockMonitor
+- OsTaskResourceLockMonitor
+- OsTrusted
+- OsUseGetServiceId
+- OsUseParameterAccess
+- OsUseResScheduler
+- PartitionCanBeRestarted
+- PduRCancelReceive
+- PduRCancelTransmit
+- PduRChangeParameterRequestApi
+- PduRCommunicationInterface
+- PduRDevErrorDetect
+- PduRIsEnabledAtInit
+- PduRIsMinimumRouting
+- PduRLowerModule
+- PduRRetransmission
+- PduRTransmissionConfirmation
+- PduRTransportProtocol
+- PduRTriggertransmit
+- PduRTxConfirmation
+- PduRUpperModule
+- PduRUseTag
+- PduRVersionInfoApi
+- PduRZeroCostOperation
+- RteBswImmediateRestart
+- RteCalibrationSupportEnabled
+- RteCoherentAccess
+- RteDevErrorDetect
+- RteDevErrorDetectUninit
+- RteImmediateBufferUpdate
+- RteImmediateRestart
+- RteMeasurementSupport
+- RteSchMVersionInfoApi
+- RteUseComShadowSignalApi
+- RteValueRangeCheckEnabled
+- RteVfbTraceEnabled
+- WdgDevErrorDetect
+- WdgDisableAllowed
+- WdgIfDevErrorDetect
+- WdgIfVersionInfoApi
+- WdgMDefensiveBehavior
+- WdgMDemStoppedSupervisionReport
+- WdgMDevErrorDetect
+- WdgMImmediateReset
+- WdgMOffModeEnabled
+- WdgMVersionInfoApi
+- WdgVersionInfoApi
+ECUC-FLOAT-PARAM-DEF: 
+- CanMainFunctionBusoffPeriod
+- CanMainFunctionModePeriod
+- CanMainFunctionReadPeriod
+- CanMainFunctionWakeupPeriod
+- CanMainFunctionWritePeriod
+- CanTTControllerNTUConfig
+- CanTTControllerSyncDeviation
+- CanTimeoutDuration
+- ComFirstTimeout
+- ComGwTimeBase
+- ComMinimumDelayTime
+- ComRxTimeBase
+- ComTimeout
+- ComTxModeRepetitionPeriod
+- ComTxModeTimeOffset
+- ComTxModeTimePeriod
+- ComTxTimeBase
+- DemDebounceTimeFailedThreshold
+- DemDebounceTimePassedThreshold
+- DemTaskTime
+- EcuMAlarmClockTimeOut
+- EcuMMainFunctionPeriod
+- EcuMNvramReadallTimeout
+- EcuMNvramWriteallTimeout
+- EcuMRunMinimumDuration
+- EcuMValidationTimeout
+- OsIsrAllInterruptLockBudget
+- OsIsrExecutionBudget
+- OsIsrOsInterruptLockBudget
+- OsIsrResourceLockBudget
+- OsIsrTimeFrame
+- OsOsInterruptLockBudget
+- OsResourceLockBudget
+- OsSecondsPerTick
+- OsSystemCycleTime
+- OsSystemCycleTimeWindowLength
+- OsSystemCycleTimeWindowStart
+- OsTaskAllInterruptLockBudget
+- OsTaskExecutionBudget
+- OsTaskOsInterruptLockBudget
+- OsTaskResourceLockBudget
+- OsTaskTimeFrame
+- OsTimeValue
+- RteActivationOffset
+- RteBswActivationOffset
+- RteExpectedActivationOffset
+- RteExpectedTickDuration
+- WdgInitialTimeout
+- WdgMDeadlineMax
+- WdgMDeadlineMin
+- WdgMSupervisionCycle
+- WdgMaxTimeout
+- WdgTimeout
+- WdgTriggerInterruptPeriod
+ECUC-SYMBOLIC-NAME-REFERENCE-DEF: 
+- CanIfCtrlCanCtrlRef
+- CanIfHrhCanHandleTypeRef
+- CanIfHrhIdSymRef
+- CanIfHthCanHandleTypeRef
+- CanIfHthIdSymRef
+- CanIfTrcvCanTrcvRef
+- CanWakeupSourceRef
+- DemFunctionIdRef
+- DemNvRamBlockIdRef
+- DemSecondaryFunctionIdRef
+- ECUM_E_ALL_RUN_REQUESTS_KILLED
+- ECUM_E_CONFIGURATION_DATA_INCONSISTENT
+- ECUM_E_RAM_CHECK_FAILED
+- EcuMAlarmClockUser
+- EcuMAlarmWakeupSource
+- EcuMComMChannelRef
+- EcuMComMCommunicationAllowedList
+- EcuMDefaultResetModeRef
+- EcuMDefaultSleepModeRef
+- EcuMGoDownAllowedUserRef
+- EcuMNormalMcuModeRef
+- EcuMResetReasonRef
+- EcuMSetClockAllowedUserRef
+- EcuMSleepModeMcuModeRef
+- EcuMSleepModeRef
+- EcuMSuccessorRef
+- EcuMTTIIWakeupSourceRef
+- EcuMWakeupSourceMask
+- RteNvmBlockRef
+- WDGM_E_IMPROPER_CALLER
+- WDGM_E_MONITORING
+- WDGM_E_SET_MODE
+- WDG_E_DISABLE_REJECTED
+- WDG_E_MODE_FAILED
+- WdgIfDriverRef
+- WdgMAliveSupervisionCheckpointRef
+- WdgMDeadlineStartRef
+- WdgMDeadlineStopRef
+- WdgMExternalCheckpointFinalRef
+- WdgMExternalCheckpointInitialRef
+- WdgMExternalTransitionDestRef
+- WdgMExternalTransitionSourceRef
+- WdgMInitialMode
+- WdgMInternalCheckpointFinalRef
+- WdgMInternalCheckpointInitialRef
+- WdgMInternalTransitionDestRef
+- WdgMInternalTransitionSourceRef
+- WdgMLocalStatusSupervisedEntityRef
+- WdgMTriggerWatchdogRef
+- WdgMWatchdogDeviceRef
+ECUC-CHOICE-REFERENCE-DEF: 
+- ComGwSignalRef
+- DemAgingCycleRef
+- DemDataElementClassRef
+- DemDidDataElementClassRef
+- DemOBDInputAcceleratorPaddleInformation
+- DemOBDInputAmbientPressure
+- DemOBDInputAmbientTemperature
+- DemOBDInputDistanceInformation
+- DemOBDInputEngineSpeed
+- DemOBDInputEngineTemperature
+- DemOBDInputProgrammingEvent
+- DemOBDInputVehicleSpeed
+- DemPidDataElementClassRef
+- EcuMFixedModuleConfigurationRef
+- EcuMFlexModuleConfigurationRef
+- WdgExternalContainerRef
+ECUC-REFERENCE-DEF: 
+- CanControllerDefaultBaudrate
+- CanControllerRef
+- CanCounterRef
+- CanCpuClockRef
+- CanFilterMaskRef
+- CanIfBufferHthRef
+- CanIfCtrlDrvInitHohConfigRef
+- CanIfCtrlDrvNameRef
+- CanIfHrhCanCtrlIdRef
+- CanIfHthCanCtrlIdRef
+- CanIfInitRefCfgSet
+- CanIfRxPduBswSchExclAreaIdRef
+- CanIfRxPduHrhIdRef
+- CanIfRxPduRef
+- CanIfTTRxHwObjectTriggerIdRef
+- CanIfTTTxHwObjectTriggerIdRef
+- CanIfTxPduBswSchExclAreaIdRef
+- CanIfTxPduBufferRef
+- CanIfTxPduRef
+- CanMainFunctionRWPeriodRef
+- CanSupportTTCANRef
+- ComGwIPduRef
+- ComIPduGroupGroupRef
+- ComIPduGroupRef
+- ComIPduReplicaRef
+- ComIPduSignalGroupRef
+- ComIPduSignalRef
+- ComPduIdRef
+- DemDTCClassRef
+- DemDiagnosticEventRef
+- DemDidClassRef
+- DemEnableConditionGroupRef
+- DemEnableConditionRef
+- DemEventFailureCycleRef
+- DemExtendedDataClassRef
+- DemExtendedDataRecordClassRef
+- DemFreezeFrameClassRef
+- DemFreezeFrameRecNumClassRef
+- DemIndicatorFailureCycleRef
+- DemIndicatorHealingCycleRef
+- DemIndicatorRef
+- DemMILIndicatorRef
+- DemOperationCycleRef
+- DemStorageConditionGroupRef
+- DemStorageConditionRef
+- EcuMDefaultAppMode
+- EcuMFlexEcucPartitionRef
+- EcuMOSResource
+- OsAlarmAccessingApplication
+- OsAlarmActivateTaskRef
+- OsAlarmAppModeRef
+- OsAlarmCounterRef
+- OsAlarmIncrementCounterRef
+- OsAlarmSetEventRef
+- OsAlarmSetEventTaskRef
+- OsAppAlarmRef
+- OsAppCounterRef
+- OsAppEcucPartitionRef
+- OsAppInterCoreInterruptRef
+- OsAppIsrRef
+- OsAppMemoryAreaRef
+- OsAppMemoryModuleRef
+- OsAppMemorySectionRef
+- OsAppScheduleTableRef
+- OsAppStandardMemoryRamRegionRef
+- OsAppStandardMemoryRomRegionRef
+- OsAppTaskRef
+- OsCounterAccessingApplication
+- OsCounterIsrRef
+- OsGptChannelRef
+- OsInterCoreInterruptAccessingApplication
+- OsInterCoreInterruptResourceRef
+- OsIocReceivingOsApplicationRef
+- OsIocSendingOsApplicationRef
+- OsIsrResourceLockResourceRef
+- OsIsrResourceRef
+- OsLinkSectionMemoryRegionRef
+- OsMemorySectionMemoryRegionRef
+- OsResourceAccessingApplication
+- OsResourceLinkedResourceRef
+- OsRestartTask
+- OsSchTblAccessingApplication
+- OsScheduleTableActivateTaskRef
+- OsScheduleTableAppModeRef
+- OsScheduleTableCounterRef
+- OsScheduleTableSetEventRef
+- OsScheduleTableSetEventTaskRef
+- OsSpinlockAccessingApplication
+- OsSpinlockSuccessor
+- OsStandardMemoryRamRegionRef
+- OsStandardMemoryRomRegionRef
+- OsSystemCycleTimeWindowRef
+- OsTaskAccessingApplication
+- OsTaskAppModeRef
+- OsTaskEventRef
+- OsTaskResourceLockResourceRef
+- OsTaskResourceRef
+- PduRDestPduRef
+- PduRDestTxBufferRef
+- PduRSrcPduRef
+- RteActivationOsAlarmRef
+- RteActivationOsSchTblRef
+- RteActivationOsTaskRef
+- RteBswExclusiveAreaOsResourceRef
+- RteBswMappedToTaskRef
+- RteBswProvidedModeGrpModInstRef
+- RteBswReleasedTriggerModInstRef
+- RteBswUsedOsAlarmRef
+- RteBswUsedOsEventRef
+- RteBswUsedOsSchTblExpiryPointRef
+- RteExclusiveAreaOsResourceRef
+- RteMappedToTaskRef
+- RteModeScheduleTableRef
+- RteModeSchtblMapBswInstanceRef
+- RteModeSchtblMapSwcInstanceRef
+- RteUsedOsAlarmRef
+- RteUsedOsEventRef
+- RteUsedOsSchTblExpiryPointRef
+- RteVirtuallyMappedToTaskRef
+- WdgMEcucPartitionRef
+- WdgMOsApplicationRef
+- WdgMOsCounterRef
+ECUC-FUNCTION-NAME-DEF: 
+- CanIfDispatchUserCheckTrcvWakeFlagIndicationName
+- CanIfDispatchUserClearTrcvWufFlagIndicationName
+- CanIfDispatchUserConfirmPnAvailabilityName
+- CanIfDispatchUserCtrlBusOffName
+- CanIfDispatchUserCtrlModeIndicationName
+- CanIfDispatchUserTrcvModeIndicationName
+- CanIfDispatchUserValidateWakeupEventName
+- CanIfRxPduUserRxIndicationName
+- CanIfTxPduUserTxConfirmationName
+- CanLPduReceiveCalloutFunction
+- ComErrorNotification
+- ComIPduCallout
+- ComIPduCounterErrorNotification
+- ComIPduTriggerTransmitCallout
+- ComInvalidNotification
+- ComNotification
+- ComTimeoutNotification
+- DemCallbackClearEventAllowedFnc
+- DemCallbackDTCStatusChangedFnc
+- DemCallbackEventDataChangedFnc
+- DemCallbackEventStatusChangedFnc
+- DemCallbackGetFDCFnc
+- DemCallbackInitMForEFnc
+- DemCallbackInitMForFFnc
+- DemDataElementReadFnc
+- OsAlarmCallbackName
+- OsIocReceiverPullCB
+- OsTrustedFunctionName
+- RteVfbTraceFunction
+- WdgTriggerLocation
+ECUC-INSTANCE-REFERENCE-DEF: 
+- DemDataElementInstanceRef
+- EcucPartitionSoftwareComponentInstanceRef
+- RteSwcTriggerSourceRef
+ECUC-ENUMERATION-PARAM-DEF: 
+- CanBusoffProcessing
+- CanHandleType
+- CanIdType
+- CanIfDispatchUserCheckTrcvWakeFlagIndicationUL
+- CanIfDispatchUserClearTrcvWufFlagIndicationUL
+- CanIfDispatchUserConfirmPnAvailabilityUL
+- CanIfDispatchUserCtrlBusOffUL
+- CanIfDispatchUserCtrlModeIndicationUL
+- CanIfDispatchUserTrcvModeIndicationUL
+- CanIfDispatchUserValidateWakeupEventUL
+- CanIfHrhRangeRxPduRangeCanIdType
+- CanIfPrivateSoftwareFilterType
+- CanIfPublicHandleTypeEnum
+- CanIfRxPduCanIdType
+- CanIfRxPduUserRxIndicationUL
+- CanIfTxPduCanIdType
+- CanIfTxPduType
+- CanIfTxPduUserTxConfirmationUL
+- CanObjectType
+- CanRxProcessing
+- CanTTControllerOperationMode
+- CanTTHardwareObjectTriggerType
+- CanTTIRQProcessing
+- CanTxProcessing
+- CanWakeupProcessing
+- ComDataInvalidAction
+- ComFilterAlgorithm
+- ComIPduDirection
+- ComIPduSignalProcessing
+- ComIPduType
+- ComRxDataTimeoutAction
+- ComSignalEndianness
+- ComSignalType
+- ComTransferProperty
+- ComTxIPduClearUpdateBit
+- ComTxModeMode
+- DemAgingCycleCounterProcessing
+- DemClearDTCBehavior
+- DemDTCSeverity
+- DemEventCombinationSupport
+- DemEventDestination
+- DemEventKind
+- DemEventOBDReadinessGroup
+- DemEventSignificance
+- DemExtendedDataCapture
+- DemExtendedDataRecordUpdate
+- DemFreezeFrameCapture
+- DemIUMPRGroup
+- DemIndicatorBehaviour
+- DemIndicatorFailureCycleSource
+- DemInternalDataElement
+- DemOccurrenceCounterProcessing
+- DemOperationCycleProcessing
+- DemOperationCycleType
+- DemRatioIdType
+- DemStatusBitHandlingTestFailedSinceLastClear
+- DemTypeOfDTCSupported
+- DemTypeOfFreezeFrameRecordNumeration
+- EcuMDefaultState
+- OsAlarmAutostartType
+- OsCounterType
+- OsInterCoreInterruptInterruptSource
+- OsIocFunctionImplementationKind
+- OsIsrCategory
+- OsIsrInterruptSource
+- OsMemoryProtectionLevel
+- OsMemorySectionInitialize
+- OsResourceProperty
+- OsScalabilityClass
+- OsScheduleTableAutostartType
+- OsScheduleTblSyncStrategy
+- OsSpinlockLockMethod
+- OsStatus
+- OsTaskSchedule
+- OsTimingProtectionLevel
+- OsViolationHandlingLevel
+- PduIdTypeEnum
+- PduLengthTypeEnum
+- PduRDestPduDataProvision
+- RteCalibrationSupport
+- RteExclusiveAreaImplMechanism
+- RteGenerationMode
+- RteInitializationStrategy
+- RteIocInteractionReturnValue
+- RteOptimizationMode
+- RteOsSchedulePoint
+- WdgDefaultMode
+- WdgMWatchdogMode
+- WdgRunArea
+- WdgTimeoutReaction
+- WdgTriggerMode
+ECUC-INTEGER-PARAM-DEF: 
+- CanControllerBaseAddress
+- CanControllerBaudRate
+- CanControllerId
+- CanControllerPropSeg
+- CanControllerSeg1
+- CanControllerSeg2
+- CanControllerSyncJumpWidth
+- CanFilterMaskValue
+- CanIdValue
+- CanIfBufferSize
+- CanIfCtrlId
+- CanIfHrhRangeRxPduLowerCanId
+- CanIfHrhRangeRxPduUpperCanId
+- CanIfPublicNumberOfCanHwUnits
+- CanIfRxPduCanId
+- CanIfRxPduCanIdRangeLowerCanId
+- CanIfRxPduCanIdRangeUpperCanId
+- CanIfRxPduDlc
+- CanIfRxPduId
+- CanIfTTMaxIsrDelay
+- CanIfTTTxJoblistTimeMark
+- CanIfTrcvId
+- CanIfTxPduCanId
+- CanIfTxPduDlc
+- CanIfTxPduId
+- CanIndex
+- CanObjectId
+- CanTTControllerApplWatchdogLimit
+- CanTTControllerCycleCountMax
+- CanTTControllerExpectedTxTrigger
+- CanTTControllerInitialRefOffset
+- CanTTControllerInterruptEnable
+- CanTTControllerTimeMasterPriority
+- CanTTControllerTxEnableWindowLength
+- CanTTControllerWatchTriggerGapTimeMark
+- CanTTControllerWatchTriggerTimeMark
+- CanTTHardwareObjectBaseCycle
+- CanTTHardwareObjectCycleRepetition
+- CanTTHardwareObjectTimeMark
+- CanTTHardwareObjectTriggerId
+- CanTTRxJoblistTimeMark
+- ComBitPosition
+- ComBitSize
+- ComConfigurationId
+- ComFilterMask
+- ComFilterMax
+- ComFilterMin
+- ComFilterOffset
+- ComFilterPeriod
+- ComFilterX
+- ComHandleId
+- ComIPduCounterSize
+- ComIPduCounterStartPosition
+- ComIPduCounterThreshold
+- ComIPduGroupHandleId
+- ComIPduHandleId
+- ComIPduReplicationQuorum
+- ComSignalLength
+- ComSupportedIPduGroups
+- ComTxIPduUnusedAreasDefault
+- ComTxModeNumberOfRepetitions
+- ComUpdateBitPosition
+- DemAgingCycleCounterThreshold
+- DemBswErrorBufferSize
+- DemDTCFunctionalUnit
+- DemDataElementDataSize
+- DemDebounceCounterDecrementStepSize
+- DemDebounceCounterFailedThreshold
+- DemDebounceCounterIncrementStepSize
+- DemDebounceCounterJumpDownValue
+- DemDebounceCounterJumpUpValue
+- DemDebounceCounterPassedThreshold
+- DemDidIdentifier
+- DemDtcStatusAvailabilityMask
+- DemEnableConditionId
+- DemEventFailureCycleCounterThreshold
+- DemEventId
+- DemEventPriority
+- DemExtendedDataRecordNumber
+- DemFreezeFrameRecordNumber
+- DemGroupDTCs
+- DemImmediateNvStorageLimit
+- DemIndicatorFailureCycleCounterThreshold
+- DemIndicatorHealingCycleCounterThreshold
+- DemIndicatorID
+- DemMaxNumberEventEntryMirror
+- DemMaxNumberEventEntryPermanent
+- DemMaxNumberEventEntryPrimary
+- DemMaxNumberEventEntrySecondary
+- DemMaxNumberFreezeFrameRecords
+- DemMaxNumberPrestoredFF
+- DemObdDTC
+- DemPidIdentifier
+- DemStorageConditionId
+- DemUdsDTC
+- EcuMAlarmClockId
+- EcuMConfigConsistencyHash
+- EcuMDivisor
+- EcuMFixedUser
+- EcuMFlexUser
+- EcuMResetModeId
+- EcuMShutdownCauseId
+- EcuMShutdownTargetId
+- EcuMSleepModeId
+- EcuMWakeupSourceId
+- OsAlarmAlarmTime
+- OsAlarmCycleTime
+- OsApplicationCoreAssignment
+- OsCounterMaxAllowedValue
+- OsCounterMinCycle
+- OsCounterTicksPerBase
+- OsEventMask
+- OsHookStackCoreAssignment
+- OsHookStackSize
+- OsHookStackStartAddress
+- OsInterCoreInterruptStackSize
+- OsInterCoreInterruptStackStartAddress
+- OsIocBufferLength
+- OsIocDataPropertyIndex
+- OsIocSenderId
+- OsIsrInterruptNumber
+- OsIsrInterruptPriority
+- OsIsrMaxFrequency
+- OsIsrStackSize
+- OsMasterCoreId
+- OsMemoryAreaSize
+- OsMemoryRegionSize
+- OsMemoryRegionStartAddress
+- OsNonTrustedHookStackCoreAssignment
+- OsNonTrustedHookStackSize
+- OsNonTrustedHookStackStartAddress
+- OsNumberOfCores
+- OsOsStackCoreAssignment
+- OsOsStackSize
+- OsOsStackStartAddress
+- OsScheduleTableDuration
+- OsScheduleTableMaxLengthen
+- OsScheduleTableMaxShorten
+- OsScheduleTableStartValue
+- OsScheduleTblExpPointOffset
+- OsScheduleTblExplicitPrecision
+- OsStandardMemoryCoreAssignment
+- OsTaskActivation
+- OsTaskPriority
+- OsTaskStackSize
+- OsTaskStackStartAddress
+- OsTaskSystemStackSize
+- OsTaskSystemStackStartAddress
+- OsTrustedFunctionStackSize
+- PduLength
+- PduRConfigurationId
+- PduRDefaultValueElement
+- PduRDefaultValueElementBytePosition
+- PduRDestPduHandleId
+- PduRMaxTpBufferNumber
+- PduRMaxTxBufferNumber
+- PduRPduMaxLength
+- PduRRoutingPathGroupId
+- PduRSourcePduHandleId
+- PduRTpBufferLength
+- PduRTpThreshold
+- PduRTxBufferDepth
+- RteBswPositionInTask
+- RteBswTriggerSourceQueueLength
+- RteCodeVendorId
+- RtePositionInTask
+- RteToolChainSignificantCharacters
+- RteTriggerSourceQueueLength
+- WdgIfDeviceIndex
+- WdgIndex
+- WdgMCallerId
+- WdgMCheckpointId
+- WdgMExpectedAliveIndications
+- WdgMExpiredSupervisionCycleTol
+- WdgMFailedAliveSupervisionRefCycleTol
+- WdgMMaxMargin
+- WdgMMinMargin
+- WdgMModeId
+- WdgMSupervisedEntityId
+- WdgMSupervisionReferenceCycle
+- WdgMTriggerConditionValue
+- WdgWindowOpenRate
+ECUC-STRING-PARAM-DEF: 
+- CanIfInitCfgSet
+- CanIfPublicCddHeaderFile
+- ComSignalDataInvalidValue
+- ComSignalInitValue
+- DemHeaderFileInclusion
+- EcuMModuleID
+- EcuMModuleService
+- OsIncludeFileName
+- OsIocIncludeFile
+- OsIocInitValue
+- OsIocPrimitiveDataType
+- OsLinkSectionName
+- OsMemoryAreaStartAddress
+- OsMemoryModuleName
+- OsMemoryRegionName
+- OsMemorySectionName
+- RteSectionInitializationPolicy
+- WdgMWatchdogName
+:FOREIGN_REF_TYPE: 
+  RteSwcTriggerSourceRef: INTERNAL-TRIGGERING-POINT
+  RteModeSchtblMapSwcPortRef: P-PORT-PROTOTYPE
+  RteBswImplementationRef: BSW-IMPLEMENTATION
+  RteModeSchtblMapModeDeclarationRef: MODE-DECLARATION
+  RteExclusiveAreaRef: EXCLUSIVE-AREA
+  RteBswTriggerSourceRef: BSW-INTERNAL-TRIGGERING-POINT
+  RteBswRequiredTriggerRef: TRIGGER
+  ComSystemTemplateSystemSignalRef: I-SIGNAL-TO-I-PDU-MAPPING
+  RteImplementationRef: SWC-IMPLEMENTATION
+  RteBswReleasedTriggerRef: TRIGGER
+  RteBswRequiredModeGroupRef: MODE-DECLARATION-GROUP-PROTOTYPE
+  RteBswModuleConfigurationRef: MODULE-CONFIGURATION
+  PduRBswModuleRef: ECUC-MODULE-CONFIGURATION-VALUES
+  SysTPduToFrameMappingRef: PDU-TO-FRAME-MAPPING
+  RteSwNvRamMappingRef: SWC-SERVICE-DEPENDENCY
+  RteEventRef: RTE-EVENT
+  RteSoftwareComponentInstanceRef: SW-COMPONENT-PROTOTYPE
+  RteVariableReadAccessRef: VARIABLE-ACCESS
+  RteBswExclusiveAreaRef: EXCLUSIVE-AREA
+  RteComponentTypeRef: SW-COMPONENT-TYPE
+  RteBswProvidedModeGroupRef: MODE-DECLARATION-GROUP-PROTOTYPE
+  PredefinedVariantRef: PREDEFINED-VARIANT
+  RtePostBuildUsedPredefinedVariant: PREDEFINED-VARIANT
+  RteVariableWriteAccessRef: VARIABLE-ACCESS
+  RteBswEventRef: BSW-EVENT
+  RteCalibrationSwAddrMethodRef: SW-ADDR-METHOD
+  RteModeSchtblMapBswProvidedModeGroupRef: MODE-DECLARATION-GROUP-PROTOTYPE
+  OsIocDataTypeRef: IMPLEMENTATION-DATA-TYPE
+  ComSystemTemplateSignalGroupRef: I-SIGNAL-TO-I-PDU-MAPPING
+ECUC-FOREIGN-REFERENCE-DEF: 
+- ComSystemTemplateSignalGroupRef
+- ComSystemTemplateSystemSignalRef
+- OsIocDataTypeRef
+- PduRBswModuleRef
+- PredefinedVariantRef
+- RteBswEventRef
+- RteBswExclusiveAreaRef
+- RteBswImplementationRef
+- RteBswModuleConfigurationRef
+- RteBswProvidedModeGroupRef
+- RteBswReleasedTriggerRef
+- RteBswRequiredModeGroupRef
+- RteBswRequiredTriggerRef
+- RteBswTriggerSourceRef
+- RteCalibrationSwAddrMethodRef
+- RteComponentTypeRef
+- RteEventRef
+- RteExclusiveAreaRef
+- RteImplementationRef
+- RteModeSchtblMapBswProvidedModeGroupRef
+- RteModeSchtblMapModeDeclarationRef
+- RteModeSchtblMapSwcPortRef
+- RtePostBuildUsedPredefinedVariant
+- RteSoftwareComponentInstanceRef
+- RteSwNvRamMappingRef
+- RteSwcTriggerSourceRef
+- RteVariableReadAccessRef
+- RteVariableWriteAccessRef
+- SysTPduToFrameMappingRef
+ECUC-LINKER-SYMBOL-DEF: 
+- RteNvmRamBlockLocationSymbol
+- RteNvmRomBlockLocationSymbol
+- RteVfbTraceClientPrefix
Index: /atk2-sc3_fl850f1l/utils/abrex/readme.txt
===================================================================
--- /atk2-sc3_fl850f1l/utils/abrex/readme.txt	(revision 117)
+++ /atk2-sc3_fl850f1l/utils/abrex/readme.txt	(revision 117)
@@ -0,0 +1,237 @@
+
+	ABREX - AUTOSAR BSW and RTE XML Generator -
+
+本ドキュメントは，ABREXを使用するために必要な事項を説明するものである．
+
+----------------------------------------------------------------------
+ABREX
+    AUTOSAR BSW and RTE XML Generator
+
+Copyright (C) 2013-2015 by Center for Embedded Computing Systems
+            Graduate School of Information Science, Nagoya Univ., JAPAN
+Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+Copyright (C) 2013-2015 by FUJI SOFT INCORPORATED, JAPAN
+Copyright (C) 2014-2015 by NEC Communication Systems, Ltd., JAPAN
+Copyright (C) 2013-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
+Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+Copyright (C) 2013-2015 by Sunny Giken Inc., JAPAN
+Copyright (C) 2013-2015 by TOSHIBA CORPORATION, JAPAN
+Copyright (C) 2013-2015 by Witz Corporation
+
+上記著作権者は，以下の (1)〜(3)の条件を満たす場合に限り，本ドキュメ
+ント（本ドキュメントを改変したものを含む．以下同じ）を使用・複製・改
+変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+(1) 本ドキュメントを利用する場合には，上記の著作権表示，この利用条件
+    および下記の無保証規定が，そのままの形でドキュメント中に含まれて
+    いること．
+(2) 本ドキュメントを改変する場合には，ドキュメントを改変した旨の記述
+    を，改変後のドキュメント中に含めること．ただし，改変後のドキュメ
+    ントが，TOPPERSプロジェクト指定の開発成果物である場合には，この限
+    りではない．
+(3) 本ドキュメントの利用により直接的または間接的に生じるいかなる損害
+    からも，上記著作権者およびTOPPERSプロジェクトを免責すること．また，
+    本ドキュメントのユーザまたはエンドユーザからのいかなる理由に基づ
+    く請求からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+
+本ドキュメントは，AUTOSAR（AUTomotive Open System ARchitecture）仕様
+に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するものではな
+い．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利用する
+者に対して，AUTOSARパートナーになることを求めている．
+
+本ドキュメントは，無保証で提供されているものである．上記著作権者およ
+びTOPPERSプロジェクトは，本ドキュメントに関して，特定の使用目的に対す
+る適合性も含めて，いかなる保証も行わない．また，本ドキュメントの利用
+により直接的または間接的に生じたいかなる損害に関しても，その責任を負
+わない．
+
+$Id: readme.txt 8495 2014-03-10 03:25:35Z shigihara $
+----------------------------------------------------------------------
+
+━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+(1) ABREX概要
+━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+
+ABREXは，OS，COMを始めとするBSWと，RTEのコンフィギュレーションファイル
+(XML)を生成するツールである．YAMLフォーマットで記述したコンフィギュレー
+ション情報を入力として，対応するXMLを生成する．
+
+━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+(2) 使い方
+━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+―――――――――――――――――――――――――――――――――――
+(2.1) 動作環境
+―――――――――――――――――――――――――――――――――――
+
+ABREXはRubyによって記述されているため，Rubyの実行環境が必要である．
+Cygwinに含まれる以下のバージョンのRubyで動作確認済みである．
+
+ruby 1.9.3p327 (2012-11-10 revision 37606) [i386-cygwin]
+
+―――――――――――――――――――――――――――――――――――
+(2.2) コンテナ情報の生成
+―――――――――――――――――――――――――――――――――――
+※本手順は既にparam_info.yamlが存在する場合，不要である
+
+-pオプションに，AUTOSARから公開されているECUコンフィギュレーションパラ
+メータコンテナ情報ファイル(*)を引数として与え，実行する．
+(*)http://www.autosar.org
+   Methodology and Templates -> Templates -> Standard Specifications
+    -> AUTOSAR_MOD_ECUConfigurationParameters.zip
+   解凍すると"AUTOSAR_MOD_ECUConfigurationParameters.arxml"となる
+
+$ ruby abrex.rb -p AUTOSAR_MOD_ECUConfigurationParameters.arxml
+
+各パラメータコンテナのデータ型，外部参照型の参照先情報などが，
+param_info.yamlに出力される．
+
+―――――――――――――――――――――――――――――――――――
+(2.3) YAMLファイルの作成
+―――――――――――――――――――――――――――――――――――
+生成したいXMLファイルの情報をYAMLフォーマットで記述する．
+・最上位のレイヤがパッケージ名，その次がECUモジュール名となる．
+・ECUモジュール名の下に該当モジュールに含まれるパラメータ名をキーとして，
+  パラメータコンテナと値をハッシュ形式で記述する．
+・サブコンテナは，ハッシュをネストすることで表現する．
+・コンテナへの参照は，YAMLファイルに定義したパッケージ名に従ってパスを
+  記述する．
+
+■OSの例
+
+Os:
+  Os:
+    MainApp:
+      DefinitionRef: OsAppMode
+    OsOS:
+      OsStackMonitoring: 1
+      OsStatus: EXTENDED
+      OsUseGetServiceId: 1
+      OsUseParameterAccess: 1
+      OsScalabilityClass: SC1
+      OsHooks:
+        OsErrorHook: 0
+        OsPostTaskHook: 0
+        OsPreTaskHook: 0
+        OsProtectionHook: 0
+        OsShutdownHook: 0
+        OsStartupHook: 0
+      OsHookStack:
+        OsHookStackSize: 1024
+      OsOsStack:
+        OsOsStackSize: 1024
+    TASK1:
+      DefinitionRef: OsTask
+      OsTaskActivation: 1
+      OsTaskPriority: 10
+      OsTaskSchedule: FULL
+      OsTaskStackSize: 1024
+      OsTaskEventRef: /Os/Os/EVENT1
+      OsTaskAutostart:
+        OsTaskAppModeRef: /Os/Os/MainApp
+    EVENT1:
+      DefinitionRef: OsEvent
+
+―――――――――――――――――――――――――――――――――――
+(2.4) XMLファイルの生成
+―――――――――――――――――――――――――――――――――――
+作成したYAMLファイルを引数として，abrex.rbを実行する．
+
+$ ruby abrex.rb ./sample.yaml
+
+入力したYAMLファイルの情報に対応するXMLファイルが，入力ファイル名の拡張
+子をarxmlに変更したファイルに出力される．
+※上記例の場合，sample.arxml
+
+・(2.1)で生成したparam_info.yamlに含まれないキー名が登場した場合，エラ
+  ー終了する．
+・サブコンテナ名はparam_info.yamlに含まれず，YAMLファイルに記述した名称
+  が正しいものとして，サブコンテナを生成する．
+・設定値の妥当性等のチェックは一切行わない．
+
+引数のYAMLファイルは複数指定することができ，すべてのYAMLファイルの情報
+をマージしたXMLファイルを生成する．同じパスのコンテナが異なるファイルに
+存在する場合，1つのコンテナにマージする．例えば，以下のa.yamlとb.yamlを
+入力した場合，MAIN_HW_COUNTERには両方のファイルに指定されたすべてのパラ
+メータが設定されたXMLファイルとなる．
+
+＜a.yaml＞
+Os:
+  Os:
+    MAIN_HW_COUNTER:
+      DefinitionRef: OsCounter
+      OsCounterMaxAllowedValue: 0x7FFFFFFF
+      OsCounterTicksPerBase: 10
+      OsCounterMinCycle: 4000
+      OsCounterType: HARDWARE
+      OsSecondsPerTick: 1.666666e-08
+      OsCounterIsrRef: /Os/Os/ISR1
+
+＜b.yaml＞
+Os:
+  Os:
+    MAIN_HW_COUNTER:
+      OsCounterAccessingApplication: OSAP1
+
+※同じパスのパラメータが複数のファイルに含まれる場合は，多重度が*と判断
+  して，複数のコンテナを生成する．(パラメータ毎の多重度情報は保持しない)
+
+━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+(3) その他の機能
+━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+―――――――――――――――――――――――――――――――――――
+(3.1) XMLからYAMLを作成する(逆変換)
+―――――――――――――――――――――――――――――――――――
+ABREXでは，作成済みのXMLファイルから，YAMLファイルを作成することが出来
+る．-iオプションに，AUTOSAR準拠のXMLを引数として与え，実行する．
+
+$ ruby abrex.rb -i sample.arxml
+
+入力したXMLファイルの情報に対応するYAMLファイルが，入力ファイル名の拡張
+子をyamlに変更したファイルに出力される．
+※上記例の場合，sample.yaml
+
+―――――――――――――――――――――――――――――――――――
+(3.2) ジェネレータ用csvファイルの生成
+―――――――――――――――――――――――――――――――――――
+TOPPERS/ATK2で使用するジェネレータ(cfg.exe)はXMLコンテナ情報をCSVファイ
+ルで与える必要があるが，ECUコンフィギュレーションパラメータコンテナ情報
+ファイルから生成することが可能である．-cオプションに，ECUコンフィギュレ
+ーションパラメータコンテナ情報ファイルを引数として与え，-bオプションに，
+生成する対象のモジュール名(*)を引数として与え，実行する．
+
+(*)http://www.autosar.org
+   Software Architecture -> General -> AUTOSAR_TR_BSWModuleList.pdf
+   上記ファイルに規定されているModule abbreviationで指定する．
+
+$ ruby abrex.rb -b Com -c AUTOSAR_MOD_ECUConfigurationParameters.arxml
+
+指定した対象のモジュール名のCSVファイルに出力される．
+※上記例の場合，Com.csv
+
+＜注意事項＞
+生成するCSVファイルのコンテナの短縮名は，コンテナ名をそのまま使用する．
+従って，同じ名称のコンテナが異なるコンテナのサブコンテナとして存在する
+場合は，ジェネレータ実行時に区別できなくなる．この場合，手動で区別でき
+るように修正する必要がある．
+
+(例)ComのComTxModeFalseとComTxModeTrueに含まれるComTxModeコンテナ
+/AUTOSAR/EcucDefs/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeFalse/ComTxMode,ComTxMode,,1
+/AUTOSAR/EcucDefs/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeTrue/ComTxMode,ComTxMode,,1
+
+━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+(4) 注意事項
+━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+―――――――――――――――――――――――――――――――――――
+(4.1) ECUコンフィギュレーションパラメータコンテナ情報ファイルの誤記修正
+―――――――――――――――――――――――――――――――――――
+コンテナ情報の生成(本ドキュメントの2.2章を参照)において使用している，
+ECUコンフィギュレーションパラメータコンテナ情報ファイルである
+AUTOSAR_MOD_ECUConfigurationParameters.arxmlの誤記を修正する必要がある．
+
+現在判明している誤記を以下に示す．
+
+・(誤)WdgMInternallCheckpointFinalRef
+  (正)WdgMInternalCheckpointFinalRef
+
+
+以上
Index: /atk2-sc3_fl850f1l/utils/abrex/sample.yaml
===================================================================
--- /atk2-sc3_fl850f1l/utils/abrex/sample.yaml	(revision 117)
+++ /atk2-sc3_fl850f1l/utils/abrex/sample.yaml	(revision 117)
@@ -0,0 +1,117 @@
+#
+#  ABREX
+#      AUTOSAR BSW and RTE XML Generator
+#
+#  Copyright (C) 2013-2015 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#  Copyright (C) 2014-2015 by AISIN COMCRUISE Co., Ltd., JAPAN
+#  Copyright (C) 2013-2015 by FUJI SOFT INCORPORATED, JAPAN
+#  Copyright (C) 2014-2015 by NEC Communication Systems, Ltd., JAPAN
+#  Copyright (C) 2013-2015 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+#  Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
+#  Copyright (C) 2014-2015 by SCSK Corporation, JAPAN
+#  Copyright (C) 2013-2015 by Sunny Giken Inc., JAPAN
+#  Copyright (C) 2013-2015 by TOSHIBA CORPORATION, JAPAN
+#  Copyright (C) 2013-2015 by Witz Corporation
+#
+#  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+# $Id: sample.yaml 8481 2014-03-07 03:54:06Z shigihara $
+#
+
+IMPLEMENTATION-DATA-TYPE:
+  uint8:
+    CATEGORY: VALUE
+  uint32:
+    CATEGORY: VALUE
+
+Os:
+  Os:
+    OsInclude:
+      OsIncludeFileName: Rte.h
+    MainApp:
+      DefinitionRef: OsAppMode
+    OsOS:
+      OsStackMonitoring: true
+      OsUseGetServiceId: true
+      OsUseParameterAccess: true
+      OsStatus: EXTENDED
+      OsScalabilityClass: SC1
+      OsHooks:
+        OsErrorHook: false
+        OsPostTaskHook: false
+        OsPreTaskHook: false
+        OsProtectionHook: false
+        OsShutdownHook: false
+        OsStartupHook: false
+      OsHookStack:
+        OsHookStackSize: 1024
+      OsOsStack:
+        OsOsStackSize: 1024
+    TASK1:
+      DefinitionRef: OsTask
+      OsTaskActivation: 1
+      OsTaskPriority: 10
+      OsTaskStackSize: 1024
+      OsTaskSchedule: FULL
+      OsTaskEventRef: /Os/Os/EVENT1
+      OsTaskAutostart:
+        OsTaskAppModeRef: /Os/Os/MainApp
+    EVENT1:
+      DefinitionRef: OsEvent
+Rte:
+  Rte:
+    RteBswGeneral:
+      RteSchMVersionInfoApi: 0
+    RteGeneration:
+      RteCodeVendorId: 0
+      RteDevErrorDetect: 1
+      RteDevErrorDetectUninit: 1
+      RteMeasurementSupport: 0
+      RteValueRangeCheckEnabled: 0
+      RteVfbTraceEnabled: 0
+      RteCalibrationSupport: NONE
+      RteGenerationMode: COMPATIBILITY_MODE
+      RteOptimizationMode: MEMORY
+    ApplicationSwComponentType1:
+      DefinitionRef: RteSwComponentInstance
+      RteSoftwareComponentInstanceRef: /OneRunnable/CompositionSwComponentType1/ApplicationSwComponentType1
+      TimingEvent1:
+        DefinitionRef: RteEventToTaskMapping
+        RteImmediateRestart: 0
+        RtePositionInTask: 1
+        RteEventRef: /OneRunnable/ApplicationSwComponentType1/SwcInternalBehavior1/TimingEvent1
+        RteMappedToTaskRef: /Os/Os/TASK1
+        RteUsedOsEventRef: /Os/Os/EVENT1
Index: /atk2-sc3_fl850f1l/utils/applyrename
===================================================================
--- /atk2-sc3_fl850f1l/utils/applyrename	(revision 117)
+++ /atk2-sc3_fl850f1l/utils/applyrename	(revision 117)
@@ -0,0 +1,124 @@
+#! /usr/bin/perl
+#
+#  TOPPERS Software
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+# 
+#  Copyright (C) 2003 by Embedded and Real-Time Systems Laboratory
+#                              Toyohashi Univ. of Technology, JAPAN
+#  Copyright (C) 2004-2011 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プロジェクトを
+#      免責すること．
+# 
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+# 
+#  @(#) $Id: applyrename 2253 2011-09-11 01:23:40Z ertl-hiro $
+# 
+
+#
+#  ファイルにリネームを適用する
+#
+sub applyrename
+{
+	local($infile) = @_;
+	local($outfile) = $infile.".new";
+	local($line);
+
+	open(INFILE, "< ".$infile) || die;
+	open(OUTFILE, "> ".$outfile) || die;
+
+	while ($line = <INFILE>) {
+		$line =~ s/\b(_?)($syms)\b/$1_kernel_$2/gc;
+		print OUTFILE $line;
+	}
+
+	close(INFILE);
+	close(OUTFILE);
+
+	if (`cmp $infile $outfile`) {
+		rename($infile, $infile.".bak");
+		rename($outfile, $infile);
+		print STDERR "Modified: ",$infile,"\n";
+	}
+	else {
+		unlink($outfile);
+	}
+}
+
+#
+#  エラーチェック
+#
+if ($#ARGV < 1) {
+	die "Usage: appyrename <prefix> <filelist>\n";
+}
+
+#
+#  初期化
+#
+@syms = ();
+$name = $ARGV[0];
+
+#
+#  シンボルリストを読み込む
+#
+$deffile = $name."_rename.def";
+open(INFILE, $deffile) || die "Cannot open $deffile";
+while ($line = <INFILE>) {
+	chomp $line;
+	if ($line =~ /^#(.*)$/) {
+		# do nothing
+	}
+	elsif ($line =~ /^INCLUDE[ \t]+(.*)$/) {
+		# do nothing
+	}
+	elsif ($line ne "") {
+		@syms = (@syms, $line)
+	}
+}
+close(INFILE);
+
+#
+#  正規表現を作る
+#
+$syms = join("|", @syms);
+
+#
+#  ファイルにリネームを適用する
+#
+shift @ARGV;
+foreach $infile (@ARGV) {
+	# ファイルでなければスキップ
+	next unless (-f $infile);
+
+	applyrename($infile) if ($infile ne $deffile);
+}
Index: /atk2-sc3_fl850f1l/utils/genrename
===================================================================
--- /atk2-sc3_fl850f1l/utils/genrename	(revision 117)
+++ /atk2-sc3_fl850f1l/utils/genrename	(revision 117)
@@ -0,0 +1,254 @@
+#! /usr/bin/perl
+#
+#  TOPPERS Software
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+# 
+#  Copyright (C) 2003 by Embedded and Real-Time Systems Laboratory
+#                              Toyohashi Univ. of Technology, JAPAN
+#  Copyright (C) 2005-2011 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プロジェクトを
+#      免責すること．
+# 
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+# 
+#  @(#) $Id: genrename 2253 2011-09-11 01:23:40Z ertl-hiro $
+# 
+
+#
+#  先頭につける文字列
+#
+sub prefix_string {
+	local($sym) = @_;
+
+	if ($sym =~ /[a-z]/) {
+		return("_kernel_");
+	}
+	else {
+		return("_KERNEL_");
+	}
+}
+
+#
+#  リネーム定義を生成する
+#
+sub generate_define
+{
+	local($sym, $prefix) = @_;
+
+	print FILE "#define ",$prefix,$sym;
+	print FILE "\t" if (length($prefix.$sym) < 4);
+	print FILE "\t" if (length($prefix.$sym) < 8);
+	print FILE "\t" if (length($prefix.$sym) < 12);
+	print FILE "\t" if (length($prefix.$sym) < 16);
+	print FILE "\t" if (length($prefix.$sym) < 20);
+	print FILE "\t" if (length($prefix.$sym) < 24);
+	print FILE "\t",$prefix,prefix_string($sym),$sym,"\n";
+}
+
+#
+#  リネーム解除を生成する
+#
+sub generate_undef
+{
+	local($sym, $prefix) = @_;
+
+	print FILE "#undef ",$prefix,$sym,"\n";
+}
+
+#
+#  インクルードディレクティブを生成する
+#
+sub generate_include
+{
+	local($file, $prefix) = @_;
+
+	$file =~ s/([>"])$/_$prefix.h$1/;
+	$includes .= "#include ".$file."\n";
+}
+
+#
+#  エラーチェック
+#
+if ($#ARGV != 0) {
+	die "Usage: genrename <prefix>\n";
+}
+
+#
+#  初期化
+#
+@syms = ();
+$name = $ARGV[0];
+$NAME = $name; $NAME =~ y/a-z/A-Z/;
+
+$infile = $name."_rename.def";
+$header_defsym = "TOPPERS_".$NAME."_RENAME_H";
+
+#
+#  シンボルリストを読み込む
+#
+open(INFILE, $infile) || die "Cannot open $infile";
+while ($line = <INFILE>) {
+	chomp $line;
+	@syms = (@syms, $line);
+}
+close(INFILE);
+
+#
+#  ???_rename.h を生成する
+#
+$includes = "";
+$file = $name."_rename.h";
+open(FILE, "> ".$file);
+
+print FILE <<END;
+/* This file is generated from $infile by genrename. */
+
+#ifndef $header_defsym
+#define $header_defsym
+
+END
+
+foreach $sym (@syms) {
+	if ($sym =~ /^#(.*)$/) {
+		print FILE "/*\n";
+		print FILE " * ",$1,"\n";
+		print FILE " */\n";
+	}
+	elsif ($sym =~ /^INCLUDE[ \t]+(.*)$/) {
+		generate_include($1, "rename");
+	}
+	elsif ($sym ne "") {
+		generate_define($sym, "");
+	}
+	else {
+		print FILE "\n";
+	}
+}
+
+print FILE <<END;
+
+#ifdef TOPPERS_LABEL_ASM
+
+END
+
+foreach $sym (@syms) {
+	if ($sym =~ /^#(.*)$/) {
+		print FILE "/*\n";
+		print FILE " * ",$1,"\n";
+		print FILE " */\n";
+	}
+	elsif ($sym =~ /^INCLUDE[ \t]+(.*)$/) {
+		# do nothing
+	}
+	elsif ($sym ne "") {
+		generate_define($sym, "_");
+	}
+	else {
+		print FILE "\n";
+	}
+}
+
+print FILE <<END;
+
+#endif /* TOPPERS_LABEL_ASM */
+
+$includes
+#endif /* $header_defsym */
+END
+
+#
+#  ???_unrename.h を生成する
+#
+$includes = "";
+$file = $name."_unrename.h";
+open(FILE, "> ".$file);
+
+print FILE <<END;
+/* This file is generated from $infile by genrename. */
+
+/* This file is included only when $name\_rename.h has been included. */
+#ifdef $header_defsym
+#undef $header_defsym
+
+END
+
+foreach $sym (@syms) {
+	if ($sym =~ /^#(.*)$/) {
+		print FILE "/*\n";
+		print FILE " * ",$1,"\n";
+		print FILE " */\n";
+	}
+	elsif ($sym =~ /^INCLUDE[ \t]+(.*)$/) {
+		generate_include($1, "unrename");
+	}
+	elsif ($sym ne "") {
+		generate_undef($sym, "");
+	}
+	else {
+		print FILE "\n";
+	}
+}
+
+print FILE <<END;
+
+#ifdef TOPPERS_LABEL_ASM
+
+END
+
+foreach $sym (@syms) {
+	if ($sym =~ /^#(.*)$/) {
+		print FILE "/*\n";
+		print FILE " * ",$1,"\n";
+		print FILE " */\n";
+	}
+	elsif ($sym =~ /^INCLUDE[ \t]+(.*)$/) {
+		# do nothing
+	}
+	elsif ($sym ne "") {
+		generate_undef($sym, "_");
+	}
+	else {
+		print FILE "\n";
+	}
+}
+
+print FILE <<END;
+
+#endif /* TOPPERS_LABEL_ASM */
+
+$includes
+#endif /* $header_defsym */
+END
+
+close(FILE);
Index: /atk2-sc3_fl850f1l/utils/gensvc_atk
===================================================================
--- /atk2-sc3_fl850f1l/utils/gensvc_atk	(revision 117)
+++ /atk2-sc3_fl850f1l/utils/gensvc_atk	(revision 117)
@@ -0,0 +1,398 @@
+#! /usr/bin/perl
+#
+#  TOPPERS ATK2
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+#      Automotive Kernel Version 2
+#
+#  Copyright (C) 2001 by Embedded and Real-Time Systems Laboratory
+#                              Toyohashi Univ. of Technology, JAPAN
+#  Copyright (C) 2005-2014 by Center for Embedded Computing Systems
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#  Copyright (C) 2011-2014 by FUJI SOFT INCORPORATED, JAPAN
+#  Copyright (C) 2011-2013 by Spansion LLC, USA
+#  Copyright (C) 2011-2013 by NEC Communication Systems, Ltd., JAPAN
+#  Copyright (C) 2011-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
+#  Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
+#  Copyright (C) 2011-2014 by Sunny Giken Inc., JAPAN
+#  Copyright (C) 2011-2014 by TOSHIBA CORPORATION, JAPAN
+#  Copyright (C) 2011-2014 by Witz Corporation, JAPAN
+#
+#  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+# 
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+#  $Id: gensvc_atk 6172 2012-11-16 00:10:34Z fsi-dankei $
+#
+
+#
+#  サービスコールインタフェース生成プログラム
+#
+#  サービスコール定義ファイル（svc.def）を読み込んで，以下のファイルを
+#  カレントディレクトリに生成する．それぞれのディレクトリへの移動は手動
+#  で行うこと．
+#
+#	svc_table.c → kernel/ に置く
+#	kernel_fncode.h → include/ に置く
+#	svc_funccall.h → include/ に置く
+#	tool_svc.h → arch/gcc/ に置く
+#
+
+#  大域変数の初期化
+
+$max_svcid = 0;
+@allfncdlist = ();
+@fncdlist = ();
+%flagstable = ();
+%typetable = ();
+%prototable = ();
+%nametable = ();
+%fnotable = ();
+%argstable = ();
+%argnotable = ();
+%tfntable = ();
+
+#
+#  1行読み込み（行番号をカウント）
+#
+sub getline {
+	local($line);
+
+	$line = <>;
+	$lineno++;
+	return($line);
+}
+
+#
+#  エラー出力
+#
+sub error {
+	local($msg) = @_;
+
+	print STDERR $msg," at line ",$lineno,".\n";
+	exit(1);
+}
+
+sub eof_error {
+	print STDERR "Unexpected EOF.\n";
+	exit(1);
+}
+
+#
+#  定義ファイルの読み込み
+#
+$lineno = 0;
+$next_fncd = 1;
+$next_tfn = 0;
+while ($line = getline()) {
+	chop $line;
+
+	# コメントの削除
+	$line =~ s/#.*$//;
+
+	# 空行のスキップ
+	next if ($line =~ /^[ \t]*$/);
+
+	# 継続行（行末が '\' の行）の処理
+	while ($line =~ /^(.*)\\$/) {
+		$line = $1;
+		unless ($line1 = getline()) {
+			eof_error();
+		}
+		chop $line1;
+		$line .= $line1;
+	}
+
+	# サービスコール定義の解析
+	unless ($line =~ /^(-?[0-9]*)[ \t]+([^ \t]+)[ \t]*(.*)$/) {
+		error("Syntax error Definition 121");
+	}
+
+	$fncd = $1;
+	$flags = $2;
+	$proto = $3;
+	$proto =~ s/([^ \t])[ \t]+$/\1/;
+	$proto =~ s/[ \t]+/ /g;
+
+	# 機能コードをチェック
+	if ($fncd eq "") {
+		$fncd = $next_fncd;
+	}
+	elsif ($fncd != $next_fncd) {
+		print STDERR "Function code skipped at line: ",$lineno,"\n";
+	}
+
+	# 次の機能コードの計算
+	$next_fncd = $fncd + 1;
+
+	# 未サポートのサービスコールのスキップ
+	if ($flags !~ /^[SPLNI]/) {
+		if ($proto =~ /^([A-Za-z_]+)[ \t]+(([a-z_]+)\((.*)\))$/) {
+			push(@allfncdlist, $fncd);
+			$nametable{$fncd} = $3;
+		}
+		elsif ($proto =~ /^([a-z_]+)$/) {
+			push(@allfncdlist, $fncd);
+			$nametable{$fncd} = $1;
+		}
+		next;
+	}
+
+	if ($flags !~ /^N/) {
+		$tfntable{$fncd} = $next_tfn;
+		$next_tfn = $next_tfn + 1;
+	}
+
+	# 機能コードの最大値の計算
+	$max_svcid = $next_tfn - 1 if ($max_svcid < $next_tfn - 1);
+
+	# サービスコールリストに登録
+	push(@allfncdlist, $fncd);
+	push(@fncdlist, $fncd);
+
+# デバッグ用出力
+print STDERR "proto ",$proto,"\n";
+print STDERR "fncd ",$fncd,"\n";
+print STDERR "flags ",$flags,"\n";
+
+	# サービスコール定義の文法チェック
+	unless ($proto =~ /^([A-Za-z0-9_]+)[ \t]+(([A-Za-z0-9_]+)\((.*)\))$/) {
+		error("Syntax error 169");
+	}
+
+	$flagstable{$fncd} = $flags;
+	$typetable{$fncd}  = $1;
+	$prototable{$fncd} = $2;
+	$nametable{$fncd}  = $3;
+	$argstable{$fncd}  = $4;
+	$argno = 0;
+	foreach $arg (split(/, */, $argstable{$fncd})) {
+		# "変数の型 変数名" のチェック
+		unless ($arg =~ /^([A-Za-z0-9_* ]+)( +|\*)([a-z_]+)$/) {
+			# "..." 可変引数リストのチェック
+			unless ($arg =~ /.../){
+				error("Syntax error 178");
+			}
+		}
+		$argno++;
+	}
+	$argnotable{$fncd} = $argno;
+}
+$num_fncd = +$max_svcid;
+
+#
+#	svc_table.cの生成
+#
+open(FILE, "> svc_table.c");
+print FILE <<END_OF_HEADER;
+/*  This file is generated from svc.def by gensvc_atk. */
+
+#include "kernel_int.h"
+
+void * const svc_table[TMAX_SVCID + 1] = {
+END_OF_HEADER
+
+# ジャンプテーブルの生成
+foreach $fncd (@allfncdlist) {
+	if ($flagstable{$fncd}) {
+		if ($flagstable{$fncd} !~ /^N/) {
+			$entry = $nametable{$fncd};
+			print FILE "\t(void *) &",$entry,",\n";
+		}
+	}
+}
+
+print FILE <<END_OF_TAILER;
+	TARGET_SVC_TABLE
+};
+END_OF_TAILER
+
+#
+#	kernel_fncode.hの生成
+#
+
+open(FILE, "> kernel_fncode.h");
+print FILE <<END_OF_HEADER;
+/*  This file is generated from svc.def by gensvc_atk. */
+
+#ifndef TOPPERS_KERNEL_FNCODE_H
+#define TOPPERS_KERNEL_FNCODE_H
+
+#define TMAX_SVCID ($max_svcid + TARGET_SVC_NUM)
+
+END_OF_HEADER
+
+foreach $fncd (@allfncdlist) {
+	$name = $nametable{$fncd};
+	$name =~ y/a-z/A-Z/;
+	$tfn = $tfntable{$fncd};
+	#print $tfn,"\n";
+	if ($flagstable{$fncd} !~ /^[NI]/) {
+		print FILE "#define TFN_",$name," ",$tfn,"\n";
+	}
+}
+
+print FILE <<END_OF_TAILER;
+
+#endif /* TOPPERS_KERNEL_FNCODE_H */
+END_OF_TAILER
+close(FILE);
+
+#
+#	svc_funccall.hの生成
+#
+# 関数呼出しで呼び出す場合のインタフェース
+open(FILE, "> svc_funccall.h");
+print FILE <<END_OF_HEADER;
+/*  This file is generated from svc.def by gensvc_atk. */
+
+#ifndef TOPPERS_SVC_FUNCCALL_H
+#define TOPPERS_SVC_FUNCCALL_H
+
+#define SVC_CALL(system_service) _kernel_ ## system_service
+
+#ifdef TOPPERS_SVC_FUNCCALL
+END_OF_HEADER
+
+foreach $fncd (@fncdlist) {
+	if ($flagstable{$fncd} !~ /^[I]/) {
+		$name = $nametable{$fncd};
+		if ($name) {
+			print FILE "#define ",$name," (_kernel_",$name,")\n";
+		}
+	}
+}
+
+print FILE <<END_OF_SEPARATOR;
+#endif
+
+#ifndef TOPPERS_MACRO_ONLY
+
+END_OF_SEPARATOR
+
+foreach $fncd (@fncdlist) {
+	$proto = $prototable{$fncd};
+	$proto =~ s/\(\)/(void)/;
+	if ($flagstable{$fncd} !~ /^I/) {
+		print FILE "extern ",$typetable{$fncd}," _kernel_",$proto,";\n";
+	}
+}
+
+print FILE <<END_OF_TRAILER;
+
+#endif /* TOPPERS_MACRO_ONLY */
+#endif /* TOPPERS_SVC_FUNCCALL */
+END_OF_TRAILER
+close(FILE);
+
+#
+#	tool_svc.hの生成
+#
+# ソフトウェア割込みで呼び出す場合のインタフェース
+#
+# CallTrustedFunction() は 引数チェックを行うので直接記述する．
+#  呼出元のメモリアクセスの可能性があるので，"m" 属性とする．
+#
+open(FILE, "> tool_svc.h");
+print FILE <<END_OF_HEADER;
+/*  This file is generated from svc.def by gensvc_atk. */
+
+#ifndef TOPPERS_TOOL_SVC_H
+#define TOPPERS_TOOL_SVC_H
+
+#define SVC_TRAP(system_service) _trap_ ## system_service
+
+#ifndef TOPPERS_SVC_FUNCCALL
+END_OF_HEADER
+
+foreach $fncd (@fncdlist) {
+	if ($flagstable{$fncd} !~ /^[I]/) {
+		$name = $nametable{$fncd};
+		if ($name) {
+			print FILE "#define ",$name," _trap_",$name,"\n";
+		}
+	}
+}
+
+print FILE <<END_OF_HEADER2;
+#endif
+
+#ifndef TOPPERS_MACRO_ONLY
+
+END_OF_HEADER2
+
+foreach $fncd (@fncdlist) {
+	# 関数ヘッダの生成
+	if ($flagstable{$fncd} !~ /^[I]/) {
+		$proto = $prototable{$fncd};
+		print FILE "LOCAL_INLINE ",$typetable{$fncd},"\n";
+		$proto =~ s/\(\)/(void)/;
+		print FILE "_trap_", $proto,"\n";
+
+		# 関数本体の生成
+		print FILE "{\n";
+
+		if ($flagstable{$fncd} =~ /N/) {
+			print FILE "\treturn;\n";
+		} else {
+			print FILE "\tCAL_SVC_",$argnotable{$fncd};
+			print FILE "M" if ($flagstable{$fncd} !~ /n/);
+			print FILE "N" if ($flagstable{$fncd} =~ /n/);
+			print FILE "(";
+			print FILE $typetable{$fncd},", ";
+
+			$name = $nametable{$fncd};
+			$name =~ y/a-z/A-Z/;
+			print FILE "TFN_",$name;
+
+			foreach $arg (split(/, */, $argstable{$fncd})) {
+				if ($arg =~ /^([A-Za-z0-9_* ]+) +([A-Za-z0-9_]+)$/) {
+					print FILE ", ", $1, ", ", $2;
+				}
+				elsif ($arg =~ /^([A-Za-z0-9_* ]+\*)([A-Za-z0-9_]+)$/) {
+					print FILE ", ", $1, ", ", $2;
+				}
+			}
+			print FILE ");\n";
+		}
+
+		print FILE "}\n";
+		print FILE "\n";
+	}
+}
+
+print FILE <<END_OF_TAILER;
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_TOOL_SVC_H */
+END_OF_TAILER
+close(FILE);
Index: /atk2-sc3_fl850f1l/utils/gentest
===================================================================
--- /atk2-sc3_fl850f1l/utils/gentest	(revision 117)
+++ /atk2-sc3_fl850f1l/utils/gentest	(revision 117)
@@ -0,0 +1,334 @@
+#! /usr/bin/perl
+#
+#  TOPPERS Software
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+# 
+#  Copyright (C) 2007-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プロジェクトを
+#      免責すること．
+# 
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+# 
+#  $Id: gentest 2417 2012-09-07 08:16:42Z ertl-hiro $
+# 
+
+#
+#		テストプログラム生成ツール
+#
+
+$infile = $ARGV[0];
+
+%parampos = (
+	"get_pri" => 2,
+	"get_inf" => 1,
+	"ref_tsk" => 2,
+	"ref_tex" => 2,
+	"ref_sem" => 2,
+	"ref_flg" => 2,
+	"ref_dtq" => 2,
+	"ref_pdq" => 2,
+	"ref_mbx" => 2,
+	"ref_mtx" => 2,
+	"ref_mpf" => 2,
+	"get_tim" => 1,
+	"get_utm" => 1,
+	"ref_cyc" => 2,
+	"ref_alm" => 2,
+	"get_tid" => 1,
+	"iget_tid" => 1,
+	"get_ipm" => 1,
+);
+
+%paramtype = (
+	"get_pri" => "PRI",
+	"get_inf" => "intptr_t",
+	"ref_tsk" => "T_RTSK",
+	"ref_tex" => "T_RTEX",
+	"ref_sem" => "T_RSEM",
+	"ref_flg" => "T_RFLG",
+	"ref_dtq" => "T_RDTQ",
+	"ref_pdq" => "T_RPDQ",
+	"ref_mbx" => "T_RMBX",
+	"ref_mtx" => "T_RMTX",
+	"ref_mpf" => "T_RMPF",
+	"get_tim" => "SYSTIM",
+	"get_utm" => "SYSUTM",
+	"ref_cyc" => "T_RCYC",
+	"ref_alm" => "T_RALM",
+	"get_tid" => "ID",
+	"iget_tid" => "ID",
+	"get_ipm" => "PRI",
+);
+
+sub gen_var_def {
+	local($svc_call) = @_;
+	local($svcname, @params);
+	local($typename, $varname);
+
+	if ($svc_call =~ /^([a-z_]+)\((.*)\)$/) {
+		$svcname = $1;
+		@params = split(/\s*,\s*/, $2);
+
+		if ($parampos{$svcname}) {
+			$varname = $params[@parampos{$svcname} - 1];
+			$varname =~ s/^\&//;
+			$typename = $paramtype{$svcname};
+			${$TASKVAR{$tskid}}{$typename} = ${varname};
+		}
+	}
+}
+
+sub gen_svc_call {
+	local($svc_call, $error_code_string) = @_;
+	local($error_code);
+
+	$TASKCODE{$tskid} .= $indentstr;
+	$TASKCODE{$tskid} .= sprintf("ercd = %s;\n", $svc_call);
+	gen_var_def($svc_call);
+
+	if ($error_code_string eq "") {
+		$TASKCODE{$tskid} .= $indentstr;
+		$TASKCODE{$tskid} .= sprintf("check_ercd(ercd, E_OK);\n");
+	}
+	elsif ($error_code_string =~ /^\-\>\s*noreturn$/) {
+		# do nothing.
+	}
+	else {
+		$error_code = $error_code_string;
+		$error_code =~ s/^\-\>\s*([A-Z_]*)$/$1/;
+		$TASKCODE{$tskid} .= $indentstr;
+		$TASKCODE{$tskid} .= sprintf("check_ercd(ercd, %s);\n", $error_code);
+	}
+}
+
+sub parse_line {
+	local($line) = @_;
+
+	while ($line =~ s/\\$//) {
+		$line1 = <INFILE>;
+		chomp $line1;
+		$line1 =~ s/^\s*\*\s*//;
+		$line1 =~ s/\s*\/\/.*$//;
+		$line1 =~ s/\s*\.\.\..*$//;
+		$line .= $line1;
+	}
+
+	if ($line =~ /^\.\./) {
+		# do nothing.
+	}
+	elsif ($line =~ /^==\s*((TASK|ALM|CPUEXC|EXTSVC)[0-9]*)(.*)$/) {
+		$startflag = 1;
+		$tskid = $1;
+		$line2 = $3;
+		if ($line2 =~ /^\-TEX(.*)$/) {
+			$tskid = $tskid."-TEX";
+			$line2 = $1;
+		}
+		if ($line2 =~ /^\-([0-9]+)(.*)$/) {
+			$tskcount = $1;
+			$line3 = $2;
+			$indentstr = "\t\t";
+			if (!$TASKCOUNT{$tskid}) {
+				$TASKCOUNT{$tskid} = 0;
+				if ($tskid =~ /^TASK([0-9]*)$/) {
+					$countvar = "task$1_count";
+				}
+				elsif ($tskid =~ /^TASK([0-9]*)-TEX$/) {
+					$countvar = "tex_task$1_count";
+				}
+				elsif ($tskid =~ /^ALM([0-9]*)$/) {
+					$countvar = "alarm$1_count";
+				}
+				elsif ($tskid =~ /^CPUEXC([0-9]*)$/) {
+					$countvar = "cpuexc$1_count";
+				}
+				elsif ($tskid =~ /^EXTSVC([0-9]*)$/) {
+					$countvar = "extsvc$1_count";
+				}
+				$TASKCOUNTVAR{$tskid} = $countvar;
+			}
+			if ($tskcount == $TASKCOUNT{$tskid} + 1) {
+				if ($tskcount > 1) {
+					$TASKCODE{$tskid} .= "\n".$indentstr;
+					$TASKCODE{$tskid} .= sprintf("check_point(0);\n\n");
+				}
+				$TASKCOUNT{$tskid} = $tskcount;
+				$TASKCODE{$tskid} .= sprintf("\tcase %d:", $tskcount);
+			}
+			elsif ($tskcount != $TASKCOUNT{$tskid} && $line3 !~ /^-/) {
+				printf STDERR "Subtask count error: %s-%s\n",$tskid,$tskcount;
+			}
+		}
+		else {
+			$tskcount = "";
+			$indentstr = "\t";
+		}
+	}
+	elsif (!$startflag) {
+		# do nothing.
+	}
+	elsif ($line =~ /^([0-9]+)\:\s*END$/) {
+		$check_no = $1;
+		$TASKCODE{$tskid} .= "\n".$indentstr;
+		$TASKCODE{$tskid} .= sprintf("check_finish(%d);\n", $check_no);
+		$endflag = 1;
+	}
+	else {
+		if ($line =~ /^([0-9]+)\:\s*(.*)/) {
+			$check_no = $1;
+			$line = $2;
+			$TASKCODE{$tskid} .= "\n".$indentstr;
+			$TASKCODE{$tskid} .= sprintf("check_point(%d);\n", $check_no);
+		}
+		if ($line =~ /^(assert\(.*\))$/) {
+			$assert_string = $1;
+			$TASKCODE{$tskid} .= $indentstr;
+			$TASKCODE{$tskid} .= sprintf("check_%s;\n", $assert_string);
+		}
+		elsif ($line =~ /^(state(_i)?\(.*\))$/) {
+			$state_string = $1;
+			$TASKCODE{$tskid} .= $indentstr;
+			$TASKCODE{$tskid} .= sprintf("check_%s;\n", $state_string);
+		}
+		elsif ($line =~ /^call\((.*)\)$/ || $line =~ /^DO\((.*)\)$/) {
+			$call_string = $1;
+			$TASKCODE{$tskid} .= "\n".$indentstr;
+			$TASKCODE{$tskid} .= sprintf("%s;\n", $call_string);
+		}
+		elsif ($line =~ /^MISSING$/) {
+			# do nothing.
+		}
+		elsif ($line =~ /^RETURN((\(.*\))?)$/) {
+			$return_string = $1;
+			$TASKCODE{$tskid} .= "\n".$indentstr;
+			$TASKCODE{$tskid} .= "return".$return_string.";\n";
+		}
+		elsif ($line =~ /^GOTO\((.*)\)$/) {
+			$goto_string = $1;
+			$TASKCODE{$tskid} .= "\n".$indentstr;
+			$TASKCODE{$tskid} .= sprintf("goto %s;\n", $goto_string);
+		}
+		elsif ($line =~ /^LABEL\((.*)\)$/) {
+			$label_string = $1;
+			$indent_string = $indentstr;
+			$indent_string =~ s/\t$//;
+			$TASKCODE{$tskid} .= "\n".$indent_string;
+			$TASKCODE{$tskid} .= sprintf("%s:", $label_string);
+		}
+		elsif ($line =~ /^([a-z_]+\(.*\))\s*(\-\>\s*[A-Za-z_]*)?\s*$/) {
+			$svc_call = $1;
+			$error_code_string = $2;
+			$TASKCODE{$tskid} .= "\n";
+			gen_svc_call($svc_call, $error_code_string);
+		}
+		else {
+			print STDERR "Error: ",$line,"\n";
+		}
+	}
+}
+
+#
+#  スクリプトファイル読込み処理
+#
+$startflag = 0;
+$endflag = 0;
+open(INFILE, $infile) || die "Cannot open $infile";
+while (($line = <INFILE>) && !$endflag) {
+	chomp $line;
+	$line =~ s/^\s*\*\s*//;
+	$line =~ s/\s*\/\/.*$//;
+	$line =~ s/\s*\.\.\..*$//;
+	next unless($line);
+	parse_line($line);
+}
+close(INFILE);
+
+#
+#  タスクコードの出力
+#
+sub output_task {
+	if ($TASKCOUNT{$tskid}) {
+		printf "\nstatic uint_t\t%s = 0;\n", $TASKCOUNTVAR{$tskid};
+	}
+	if ($tskid =~ /^TASK([0-9]*)$/) {
+		print "\nvoid\n";
+		print "task$1(intptr_t exinf)\n";
+	}
+	elsif ($tskid =~ /^TASK([0-9]*)-TEX$/) {
+		print "\nvoid\n";
+		print "tex_task$1(TEXPTN texptn, intptr_t exinf)\n";
+	}
+	elsif ($tskid =~ /^ALM([0-9]*)$/) {
+		print "\nvoid\n";
+		print "alarm$1_handler(intptr_t exinf)\n";
+	}
+	elsif ($tskid =~ /^CPUEXC([0-9]*)$/) {
+		print "\nvoid\n";
+		print "cpuexc$1_handler(void *p_excinf)\n";
+	}
+	elsif ($tskid =~ /^EXTSVC([0-9]*)$/) {
+		print "\nER_UINT\n";
+		print "extsvc$1_routine(intptr_t par1, intptr_t par2, intptr_t par3,\n";
+		print "\t\t\t\t\t\t\t\tintptr_t par4, intptr_t par5, ID cdmid)\n";
+	}
+	print "{\n";
+	print "\tER\t\tercd;\n";
+	foreach $typename (keys(%{$TASKVAR{$tskid}})) {
+		print "\t",$typename, (length($typename) < 4 ? "\t\t" : "\t"),
+								${$TASKVAR{$tskid}}{$typename},";\n";
+	}
+	if ($TASKCOUNT{$tskid}) {
+		printf "\n\tswitch (++%s) {\n", $TASKCOUNTVAR{$tskid};
+	}
+	print $TASKCODE{$tskid};
+	if ($TASKCOUNT{$tskid}) {
+		printf "\n\t\tcheck_point(0);\n";
+		printf "\t}\n";
+	}
+	else {
+		print "\n";
+	}
+	print "\tcheck_point(0);\n";
+	if ($tskid =~ /^EXTSVC([0-9]*)$/) {
+		print "\treturn(E_SYS);\n";
+	}
+	print "}\n";
+}
+
+#
+#  テストプログラム出力処理
+#
+foreach $tskid (sort(keys(%TASKCODE))) {
+	output_task();
+}
Index: /atk2-sc3_fl850f1l/utils/makedep
===================================================================
--- /atk2-sc3_fl850f1l/utils/makedep	(revision 117)
+++ /atk2-sc3_fl850f1l/utils/makedep	(revision 117)
@@ -0,0 +1,184 @@
+#! /usr/bin/perl
+#
+#  TOPPERS Software
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+# 
+#  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+#                              Toyohashi Univ. of Technology, JAPAN
+#  Copyright (C) 2004-2011 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プロジェクトを
+#      免責すること．
+# 
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+# 
+#  @(#) $Id: makedep 2264 2011-10-27 04:22:01Z ertl-hiro $
+# 
+
+use Getopt::Std;
+
+#  オプションの定義
+#
+#  -C <cc_path>		Cコンパイラのコマンド名
+#  -O <cc_opts>		Cコンパイラ/CPPに渡すオプション
+#  -X				ソースファイルを強制的にCヘッダファイルと見なす
+#
+#  -T <target>		ターゲット名（のリスト）
+#  -D <t_dir>		ターゲットのディレクトリ名を指定する（-Tを用いた場
+#					合は無効）
+#  -d				ターゲットのディレクトリ部を保持する（-Tを用いた場
+#					合は無効）
+#  -S				複数のターゲットがある依存ルールを，ターゲット毎に
+#					分割する（こうしないと対応できないmakeがあるらしい）
+#
+#  -R <dirname>		Cygwin環境におけるルートディレクトリ名を指定する
+#					（デフォルトはcygdrive）
+
+#
+#  オプションの処理
+#
+getopt("COTDR");
+
+$cc_path = $opt_C;
+$cc_opts = $opt_O;
+
+if ($opt_T) {
+	$target_name = $opt_T;
+}
+elsif ($opt_D) {
+	$target_dir = $opt_D;
+}
+elsif (!$opt_d) {
+	$target_dir = "";
+}
+
+if ($opt_R) {
+	$cygwin_root = $opt_R;
+}
+else {
+	$cygwin_root = "cygdrive";
+}
+
+#
+#  Cygwin環境の判別
+#
+if ($^O eq 'cygwin') {
+	$cygwin = 1;
+}
+
+#
+#  %dependlist に作られた依存関係を出力する
+#
+sub output_dependlist {
+	local($target) = @_;
+	local($column, $len, $file);
+
+	print $target, ": ";
+	$column = length($target) + 2;
+
+	foreach $file (keys(%dependlist)) {
+		$len = length($file) + 1;
+		if ($column > 8 && $column + $len >= 70) {
+			print "\\\n\t";
+			$column = 8;
+		}
+		$column += $len;
+		print "$file ";
+	}
+	print "\n";
+}
+
+#
+#  $file の依存関係を %dependlist に作る
+#
+sub makedepend_one {
+	local($file) = @_;
+	local($command, $input, $dir, $filename);
+
+	$command = "$cc_path -E $cc_opts";
+	if ($opt_X) {
+		$command .= " -x c-header";
+	}
+	unless (open(INPUT, "$command $file |")) {
+		print STDERR "makedep: can't open $file\n";
+		exit(1);
+	}
+	while ($line = <INPUT>) {
+		if ($line =~ /^\#[a-zA-Z]*\s*([0-9]+)\s*\"([^\"]+)\"/) {
+			$filename = $2;
+			$filename =~ s/ /\\ /g;
+			if ($filename !~ /^\<.*\>$/ && $filename !~ /\/$/) {
+				if ($cygwin) {
+					$filename =~ s/\\\\/\//g;
+					$filename =~ s/^([a-zA-Z]):/\/$cygwin_root\/$1/;
+				}
+				$dependlist{$filename} = 1;
+			}
+		}
+	}
+	unless (close(INPUT)) {
+		print STDERR "makedep: can't execute $command\n";
+		exit(1);
+	}
+}
+
+#
+#  メインルーチン
+#
+foreach $file (@ARGV) {
+	%dependlist = ();
+	makedepend_one($file);
+	if (%dependlist) {
+		if ($target_name) {
+			if ($opt_S) {
+				foreach $target (split(/[ \t]+/, $target_name)) {
+					output_dependlist($target);
+				}
+			}
+			else {
+				output_dependlist($target_name);
+			}
+		}
+		else {
+			$target = $file;
+			$target =~ s/(.*)\.(.*)/$1.o/;
+			if (defined($target_dir)) {
+				$target =~ s/^.*\/([^\/]+)$/$1/;
+				if ($target_dir) {
+					$target = $target_dir."/".$target;
+				}
+			}
+			output_dependlist($target);
+		}
+	}
+}
Index: /atk2-sc3_fl850f1l/utils/makerelease
===================================================================
--- /atk2-sc3_fl850f1l/utils/makerelease	(revision 117)
+++ /atk2-sc3_fl850f1l/utils/makerelease	(revision 117)
@@ -0,0 +1,161 @@
+#! /usr/bin/perl
+#
+#  TOPPERS Software
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+# 
+#  Copyright (C) 2006-2011 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プロジェクトを
+#      免責すること．
+# 
+#  本ソフトウェアは，AUTOSAR（AUTomotive Open System ARchitecture）仕
+#  様に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するもので
+#  はない．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利
+#  用する者に対して，AUTOSARパートナーになることを求めている．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+# 
+#  @(#) $Id: makerelease 2253 2011-09-11 01:23:40Z ertl-hiro $
+# 
+
+use Cwd;
+
+$cwd = getcwd();
+$cwd =~ s/^.*[\/\\]([^\/\\]+)$/$1/;
+$prefix = "./".$cwd;
+
+@file_list = ();
+%file_list = ();
+
+if ($#ARGV >= 0) {
+	$arg1 = $ARGV[0];
+	$arg1 =~ s/\.\///;
+}
+else {
+	$arg1 = "MANIFEST";
+}
+
+sub gen_path
+{
+	local($base, $path) = @_;
+
+	while ($path =~ /^..\/(.*)$/) {
+		$path = $1;
+		$base =~ s/(\/?)[^\/]*\/$/$1/;
+	}
+	return($base.$path);
+}
+
+sub read_file {
+	local($filename) = @_;
+	local($fh, $dirname);
+
+	if ($filename =~ /^(.*\/)[^\/]*$/) {
+		$dirname = $1;
+	}
+	else {
+		$dirname = "";
+	}
+
+	open($fh, $filename) || die "Cannot open $filename";
+	while ($line = <$fh>) {
+		chomp $line;
+		$line =~ s/\r$//;
+		$line =~ s/[ \t]*\#.*$//;
+		next if ($line =~ /^[ \t]*$/);
+
+		if ($line =~ /^E_PACKAGE[ \t]+(.*)$/) {
+			if ($package) {
+				die "Duplicated E_PACKAGE directive.";
+			}
+			else {
+				$package = $1;
+				$e_package = 1;
+			}
+		}
+		elsif ($line =~ /^PACKAGE[ \t]+(.*)$/) {
+			if ($package) {
+				if (!$e_package && $package != $1) {
+					die "Inconsistent PACKAGE directive.";
+				}
+			}
+			else {
+				$package = $1;
+			}
+		}
+		elsif ($line =~ /^VERSION[ \t]+(.*)$/) {
+			if ($version) {
+				if (!$e_package && $version != $1) {
+					die "Inconsistent VERSION directive.";
+				}
+			}
+			else {
+				$version = $1;
+				if ($version =~ /%date/) {
+					@current_time = localtime();
+					$vdate = sprintf("%04d%02d%02d", $current_time[5]+1900,
+										$current_time[4]+1, $current_time[3]);
+					$version =~ s/%date/$vdate/;
+				}
+			}
+		}
+		elsif ($line =~ /^INCLUDE[ \t]+(.*)$/) {
+			read_file(gen_path($dirname, $1));
+		}
+		else {
+			$filename = $prefix."/".$dirname.$line;
+			while ($filename =~ s|/[^/]+/\.\./|/|) {}
+			if ($file_list{$filename}) {
+				die "$filename is duplicated.";
+			}
+			else {
+				push(@file_list, $filename);
+				$file_list{$filename} = $filename;
+			}
+		}
+	}
+	close($fh);
+}
+
+read_file($arg1);
+unless ($package) {
+	die "PACKAGE/E_PACKAGE directive not found.";
+}
+unless ($version) {
+	die "VERSION directive not found.";
+}
+
+if (! -d "RELEASE") {
+	mkdir("RELEASE");
+}
+
+$archive_name = $package."-".$version.".tar.gz";
+$file_list = join(" ", @file_list);
+$command = "tar cvfz RELEASE/$archive_name -C .. $file_list\n";
+die if (system($command));
+print STDERR "== RELEASE/$archive_name is generated. ==\n";
