Index: ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/Makefile.prc
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/Makefile.prc	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/Makefile.prc	(revision 95)
@@ -4,9 +4,9 @@
 
 #
-#		Makefile ÌvZbTË¶iARM-Mpj
+#		Makefile のプロセッサ依存部（ARM-M用）
 #
 
 #
-#  RpCIvV
+#  コンパイルオプション
 #
 COPTS := $(COPTS) -mthumb 
@@ -17,5 +17,5 @@
 
 #
-#  J[lÉÖ·éè`
+#  カーネルに関する定義
 #
 KERNEL_DIR := $(KERNEL_DIR) $(SRCDIR)/arch/$(PRC)_$(TOOL)
@@ -24,11 +24,10 @@
 
 #
-#  RtBM
-[^ÖWÌÏÌè`
+#  コンフィギュレータ関係の変数の定義
 #
 CFG_TABS := $(CFG_TABS) --cfg1-def-table $(SRCDIR)/arch/$(PRC)_$(TOOL)/prc_def.csv
 
 #
-#  Ë¶ÖWÌè`
+#  依存関係の定義
 #
 cfg1_out.c: $(SRCDIR)/arch/$(PRC)_$(TOOL)/prc_def.csv
Index: ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/arm_m.h
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/arm_m.h	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/arm_m.h	(revision 95)
@@ -6,36 +6,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id: arm_m.h 1304 2008-08-27 07:28:36Z ertl-honda $
@@ -43,5 +39,5 @@
 
 /*
- *  ARMVx-MÌn[hEFA¹Ìè`
+ *  ARMVx-Mのハードウェア資源の定義
  */
 
@@ -51,21 +47,21 @@
 
 /*
- *  EPSRÌTrbg
+ *  EPSRのTビット
  */
 #define EPSR_T   0x01000000
 
 /*
- * IPSRÌ ISR NUMBER
+ * IPSRの ISR NUMBER
  */
 #define IPSR_ISR_NUMBER 0x1ff
 
 /*
- *  áOEÝ­¶ÉX^bNãÉÏÜêéÛ¶ÌæÌTCY
- *  {J[lÅÍáOt[ÆÄÔ
+ *  例外・割込み発生時にスタック上に積まれる保存領域のサイズ
+ *  本カーネルでは例外フレームと呼ぶ
  */
 #define EXC_FRAME_SIZE         (8*4)
 
 /*
- *  áOEÝ­¶ÉLRÉÝè³êéEXC_RETURNÌl
+ *  例外・割込み発生時にLRに設定されるEXC_RETURNの値
  */
 #define EXC_RETURN_HANDLER      0x0
@@ -75,5 +71,5 @@
 
 /*
- *  CONTROLWX^
+ *  CONTROLレジスタ
  */
 #define CONTROL_PSP            0x02
@@ -81,5 +77,5 @@
 
 /*
- *  áOÔ
+ *  例外番号
  */
 #define EXCNO_NMI         2
@@ -93,5 +89,5 @@
 
 /*
- *  áOÔÌÅ¬lÆÅål
+ *  例外番号の最小値と最大値
  */
 #define TMIN_EXCNO   2
@@ -99,15 +95,15 @@
 
 /*
- *  ÝÔ
+ *  割込み番号
  */
 #define IRQNO_SYSTICK    15
 
 /*
- *  ÝÔÌÅ¬l
+ *  割込み番号の最小値
  */
 #define TMIN_INTNO       15
 
 /*
- *  áOt[ÌItZbg
+ *  例外フレームのオフセット
  */
 #define P_EXCINF_OFFSET_EXC_RETURN  0x00
@@ -117,9 +113,9 @@
 
 /*
- *  NVICÖA
+ *  NVIC関連
  */
 
 /*
- *  Rg[WX^
+ *  コントロールレジスタ
  */
 #define NVIC_INT_CTRL       0xe000ed04
@@ -128,10 +124,10 @@
 
 /*
- *  VXenh[Rg[WX^
+ *  システムハンドラーコントロールレジスタ
  */
 #define NVIC_SYS_HND_CTRL   0xE000ED24
 
 /*
- *  eáOÌÂrbg
+ *  各例外の許可ビット
  */
 #define NVIC_SYS_HND_CTRL_USAGE 0x00040000
@@ -140,5 +136,5 @@
 
 /*
- *  DæxÝèWX^
+ *  優先度設定レジスタ
  */
 #define NVIC_SYS_PRI1       0xE000ED18  // Sys. Handlers 4 to 7 Priority
@@ -148,15 +144,15 @@
 
 /*
- *  ÝÂWX^
+ *  割込み許可レジスタ
  */
 #define NVIC_SETENA0        0xE000E100  // IRQ 0 to 31 Set Enable Register
 
 /*
- *  ÝÖ~WX^
+ *  割込み禁止レジスタ
  */
 #define NVIC_CLRENA0        0xE000E180  // IRQ 0 to 31 Set Disable Register
 
 /*
- *  xN^e[uItZbgWX^
+ *  ベクタテーブルオフセットレジスタ
  */
 #define NVIC_VECTTBL        0xE000ED08
@@ -164,5 +160,5 @@
 
 /*
- *  SYSTICÖAWX^
+ *  SYSTIC関連レジスタ
  */
 #define SYSTIC_CONTROL_STATUS 0xE000E010
Index: ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc.tf
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc.tf	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc.tf	(revision 95)
@@ -1,8 +1,8 @@
 $ 
-$     pX2ÌA[LeN`Ë¶ev[giARM-Mpj
+$     パス2のアーキテクチャ依存テンプレート（ARM-M用）
 $ 
 
 $ 
-$  LøÈÝÔCÝnhÔ
+$  有効な割込み番号，割込みハンドラ番号
 $ 
 $INTNO_VALID = RANGE(15, TMAX_INTNO)$
@@ -10,10 +10,10 @@
 
 $ 
-$  LøÈCPUáOÔ
+$  有効なCPU例外番号
 $ 
 $EXCNO_VALID = { 2,3,4,5,6,11,12,14 }$
 
 $ 
-$  ATT_ISRÅgpÅ«éÝÔÆ»êÉÎ·éÝnhÔ
+$  ATT_ISRで使用できる割込み番号とそれに対応する割込みハンドラ番号
 $ 
 $INTNO_ATTISR_VALID = INTNO_VALID$
@@ -21,5 +21,5 @@
 
 $ 
-$  DEF_INT^DEF_EXCÅgpÅ«éÝnhÔ^CPUáOnhÔ
+$  DEF_INT／DEF_EXCで使用できる割込みハンドラ番号／CPU例外ハンドラ番号
 $ 
 $INHNO_DEFINH_VALID = INHNO_VALID$
@@ -27,10 +27,10 @@
 
 $ 
-$  `FbNû@Ìwè
+$  チェック方法の指定
 $ 
 $CHECK_STKSZ_ALIGN = 8$
 
 $ 
-$  CFG_INTÅgpÅ«éÝÔÆÝDæx
+$  CFG_INTで使用できる割込み番号と割込み優先度
 $ 
 $INTNO_CFGINT_VALID = INTNO_VALID$
@@ -38,10 +38,10 @@
 
 $ 
-$  Ý®«Ì^[QbgË¶Ép¢érbg
+$  割込み属性中のターゲット依存に用いるビット
 $ 
 $ TARGET_INTATR = $
            
 $ 
-$  Wev[gt@CÌCN[h
+$  標準テンプレートファイルのインクルード
 $ 
 $INCLUDE "kernel/kernel.tf"$
@@ -53,5 +53,5 @@
 
 $ 
-$  xN^[e[u
+$  ベクターテーブル
 $ 
 
@@ -118,5 +118,5 @@
 
 $ 
-$  _kernel_bitpat_cfgintÌ¶¬
+$  _kernel_bitpat_cfgintの生成
 $ 
 
Index: ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_cfg1_out.h
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_cfg1_out.h	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_cfg1_out.h	(revision 95)
@@ -4,5 +4,5 @@
 
 /*
- *		cfg1_out.cðN·é½ßÉKvÈX^uÌè`
+ *		cfg1_out.cをリンクするために必要なスタブの定義
  */
 
Index: ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_check.tf
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_check.tf	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_check.tf	(revision 95)
@@ -1,8 +1,8 @@
 $ 
-$ 		pX3ÌvZbTË¶ev[giARM-Mpj
+$ 		パス3のプロセッサ依存テンプレート（ARM-M用）
 $ 
 
 $ 
-$  `FbNû@Ìwè
+$  チェック方法の指定
 $ 
 $CHECK_FUNC_ALIGN = 1$
@@ -14,5 +14,5 @@
 
 $ 
-$  Wev[gt@CÌCN[h
+$  標準テンプレートファイルのインクルード
 $ 
 $ $INCLUDE "kernel/kernel_check.tf"$
Index: ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_config.c
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_config.c	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_config.c	(revision 95)
@@ -7,36 +7,32 @@
  *  Copyright (C) 2010 by Meika Sugimoto
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
- * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id: prc_config.c 1304 2008-08-27 07:28:36Z ertl-honda $
@@ -44,6 +40,5 @@
 
 /*
- *		vZbTË¶W
-[iARM-Mpj
+ *		プロセッサ依存モジュール（ARM-M用）
  */
 
@@ -55,20 +50,20 @@
 
 /*
- *  CPUbNtOÀ»Ì½ßÌÏ
- */
-volatile bool_t		lock_flag;		/* CPUbNtOÌlðÛ·éÏ */
-volatile uint32_t	saved_iipm;		/* ÝDæx}XNðÛ¶·éÏ */
-
-/* ÝlXgÌÇ */
+ *  CPUロックフラグ実現のための変数
+ */
+volatile bool_t		lock_flag;		/* CPUロックフラグの値を保持する変数 */
+volatile uint32_t	saved_iipm;		/* 割込み優先度マスクを保存する変数 */
+
+/* 割込みネスト数の管理 */
 uint8_t intnest;
 
 /*
- *  xN^e[u(kernel_cfg.c)
+ *  ベクタテーブル(kernel_cfg.c)
  */
 extern const FP vector_table[];
 
 /*
- *  VXeáOEÝÌiáOÔ 4`15j
- *  ÝDæxÝèWX^ÖÌANZXÌ½ßÌzñ
+ *  システム例外・割込みの（例外番号 4〜15）
+ *  割込み優先度設定レジスタへのアクセスのための配列
  */
 static const unsigned int nvic_sys_pri_reg[] = {
@@ -80,7 +75,7 @@
 
 /*
- *  áOÆÝÌÝDæxðZbg
+ *  例外と割込みの割込み優先度をセット
  *
- *  excnoÍARM-MÅèßçêÄ¢é Exception Number ðwèD
+ *  excnoはARM-Mで定められている Exception Number を指定．
  */
 void
@@ -89,11 +84,11 @@
 
 	/*
-	 *  ÝDæxÝèWX^Ìè
+	 *  割込み優先度設定レジスタの決定
 	 */
 	if ((EXCNO_MPU <= excno) && (excno <= IRQNO_SYSTICK)) {
 		/*
-		 * Exception Number 4(Memory Management)©ç
-		 * Exception Number 15(SysTick)ÜÅÌÝDæxÍVXeDæx
-		 * WX^ÉæèÝèD
+		 * Exception Number 4(Memory Management)から
+		 * Exception Number 15(SysTick)までの割込み優先度はシステム優先度
+		 * レジスタにより設定．
 		 */
 		reg = nvic_sys_pri_reg[excno >> 2];
@@ -101,5 +96,5 @@
 	else if ((TMIN_INTNO < excno) && (excno <= TMAX_INTNO)){
 		/*
-		 * IRQÝÈç
+		 * IRQ割込みなら
 		 */
 		reg = NVIC_PRI0 + (((excno - (TMIN_INTNO + 1)) >> 2) * 4);
@@ -116,7 +111,7 @@
 
 /*
- *  áOÌÂ
+ *  例外の許可
  *
- *  Memory Management, Bus Fault, Usage Fault ÍÖ~EÂª¨¤
+ *  Memory Management, Bus Fault, Usage Fault は禁止・許可が買おう
  */
 void
@@ -145,5 +140,5 @@
 
 /*
- *  áOÌÖ~
+ *  例外の禁止
  */
 void
@@ -173,5 +168,5 @@
 
 /*
- *  vZbTË¶Ìú»
+ *  プロセッサ依存の初期化
  */
 void
@@ -179,24 +174,24 @@
 {
 	/*
-	 *  CPUbNtOÀ»Ì½ßÌÏÌú»
+	 *  CPUロックフラグ実現のための変数の初期化
 	 */
 	lock_flag = true;
 	saved_iipm = IIPM_ENAALL;
 	
-	/* ÝlXgÌú» */
+	/* 割込みネスト数の初期化 */
 	intnest = 0u;
 
 	/*
-	 *  xN^e[uðÝè
+	 *  ベクタテーブルを設定
 	 */
 	sil_wrw_mem((void*)NVIC_VECTTBL, (uint32_t)vector_table);
 
 	/*
-	 *  SVCnhÌDæxðÝè
+	 *  SVCハンドラの優先度を設定
 	 */
 	set_exc_int_priority(EXCNO_SVCALL, 0);
 
 	/*
-	 *  SVCnhðLøÉ
+	 *  SVCハンドラを有効に
 	 */
 	x_enable_int(EXCNO_SVCALL);	
@@ -204,5 +199,5 @@
 
 /*
- *  vZbTË¶ÌI¹
+ *  プロセッサ依存の終了処理
  */
 void
@@ -214,5 +209,5 @@
 
 /*
- *  ÝvC®«ÌÝè
+ *  割込み要求ライン属性の設定
  */
 void
@@ -223,5 +218,5 @@
 
 	/* 
-	 *  êUÝðÖ~·é
+	 *  一旦割込みを禁止する
 	 */    
 	(void)x_disable_int(intno);
@@ -229,11 +224,11 @@
 
 	/*
-	 *  ÝDæxðZbg
+	 *  割込み優先度をセット
 	 */
 	set_exc_int_priority(intno, intpri);
 
 	/*
-	 *  Ýv}XNð(KvÈê)
-	 *  ¯ÉÝDæxàZbg³êé
+	 *  割込み要求マスク解除(必要な場合)
+	 *  同時に割込み優先度もセットされる
 	 */
 	if ((intatr & TA_ENAINT) != 0U) {
@@ -245,5 +240,5 @@
 #ifndef OMIT_DEFAULT_EXC_HANDLER
 /*
- *  TrapaÈOÌáOÅo^³êÄ¢È¢áOª­¶·éÆÄÑo³êé
+ *  Trapa以外の例外で登録されていない例外が発生すると呼び出される
  */
 void
@@ -265,5 +260,5 @@
 #ifndef OMIT_DEFAULT_INT_HANDLER
 /*
- *  ¢o^ÌÝª­¶µ½êÉÄÑo³êé
+ *  未登録の割込みが発生した場合に呼び出される
  */
 void
Index: ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_config.h
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_config.h	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_config.h	(revision 95)
@@ -8,36 +8,32 @@
  *             Nagoya Municipal Industrial Research Institute, JAPAN
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id: prc_config.h 1304 2008-08-27 07:28:36Z ertl-honda $
@@ -45,10 +41,9 @@
 
 /*
- *		vZbTË¶W
-[iARM-Mpj
- *
- *  ±ÌCN[ht@CÍCtarget_config.hiÜ½ÍC»±©çCN
- *  [h³êét@CjÌÝ©çCN[h³êéD¼Ìt@C©ç
- *  ¼ÚCN[hµÄÍÈçÈ¢D
+ *		プロセッサ依存モジュール（ARM-M用）
+ *
+ *  このインクルードファイルは，target_config.h（または，そこからインク
+ *  ルードされるファイル）のみからインクルードされる．他のファイルから
+ *  直接インクルードしてはならない．
  */
 
@@ -59,10 +54,10 @@
 
 /*
- *  vZbTÌÁê½ßÌCCÖè`
+ *  プロセッサの特殊命令のインライン関数定義
  */
 #include "prc_insn.h"
 
 /*
- *  ñ^XNReLXgpÌX^bNúl
+ *  非タスクコンテキスト用のスタック初期値
  */
 #define TOPPERS_ISTKPT(istk, istksz) ((STK_T *)((char *)(istk) + (istksz)))
@@ -73,10 +68,10 @@
 
 /*
- *  ÝlXg
+ *  割込みネスト数
  */
 extern uint8_t intnest;
 
 /*
- *  ReLXgÌQÆ
+ *  コンテキストの参照
  *
  */
@@ -99,52 +94,52 @@
 
 /*
- *  TOPPERSWÝfÌÀ»
- *
- *  ÝDæx}XNÆµÄÍCBASEPRIðp¢éDSÝðÖ~·é
- *  @\ÆµÄCFAULTMASKâPRIMASKª éªCJ[lÇOÌÝð
- *  T|[g·é½ßC±êçÍCPUbNÌ½ßÉp¢È¢D
- *  »Ì½ßCBASEPRIðp¢Ä[IÉCPUbNtOðÀ»·éD
- *
- *  Ü¸CCPUbNóÔðÇ·½ßÌÏ(lock_flag)ðpÓ·éD
- *
- *  CPUbNtOªNA³êÄ¢éÔÍCBASEPRIðfãÌÝ
- *  Dæx}XNÌlÉÝè·éD±ÌÔÍCfãÌÝDæx}X
- *  NÍCBASEPRIðp¢éD
+ *  TOPPERS標準割込み処理モデルの実現
+ *
+ *  割込み優先度マスクとしては，BASEPRIを用いる．全割込みを禁止する
+ *  機能として，FAULTMASKやPRIMASKがあるが，カーネル管理外の割込みを
+ *  サポートするため，これらはCPUロックのために用いない．
+ *  そのため，BASEPRIを用いて擬似的にCPUロックフラグを実現する．
+ *
+ *  まず，CPUロック状態を管理すための変数(lock_flag)を用意する．
+ *
+ *  CPUロックフラグがクリアされている間は，BASEPRIをモデル上の割込み
+ *  優先度マスクの値に設定する．この間は，モデル上の割込み優先度マス
+ *  クは，BASEPRIを用いる．
  * 
- *  »êÉÎµÄCPUbNtOªZbg³ê¢éÔÍCBASEPRIðCJ[l
- *  ÇOÌàÌð­·×ÄÌÝvð}XN·él(TIPM_LOCK)ÆC
- *  fãÌÝDæx}XNÆÌ¢ûÉÝè·éD±ÌÔÌfã
- *  ÌÝDæx}XNÍC»Ì½ßÌÏ(saved_iipm, à\»ÅÛ)
- *  ðpÓµÄÛ·éD
- */
-
-/*
- *  ÝDæx}XNÌO\»Æà\»ÌÏ·
- *
- *  AZu¾êÌ\[Xt@C©çCN[h·éêÌ½ßÉC
- *  CASTðgp
- *  ÝDæxÌrbg(TBITW_IPRI)ª 8 ÌêÍCàDæx 255
- *  ÍCODæx -1 ÉÎ·éD
- */
-#define EXT_IPM(iipm)   (CAST(PRI,((iipm >> (8 - TBITW_IPRI)) - (1 << TBITW_IPRI))))       /* à\»ðO\»É */
-#define INT_IPM(ipm)    (((1 << TBITW_IPRI) - CAST(uint8_t, -(ipm)))  << (8 - TBITW_IPRI)) /* O\»ðà\»É */
-
-/*
- *  CPUbNóÔÅÌÝDæx}XN
+ *  それに対してCPUロックフラグがセットされいる間は，BASEPRIを，カーネ
+ *  ル管理外のものを除くすべての割込み要求をマスクする値(TIPM_LOCK)と，
+ *  モデル上の割込み優先度マスクとの高い方に設定する．この間のモデル上
+ *  の割込み優先度マスクは，そのための変数(saved_iipm, 内部表現で保持)
+ *  を用意して保持する．
+ */
+
+/*
+ *  割込み優先度マスクの外部表現と内部表現の変換
+ *
+ *  アセンブリ言語のソースファイルからインクルードする場合のために，
+ *  CASTを使用
+ *  割込み優先度のビット幅(TBITW_IPRI)が 8 の場合は，内部優先度 255
+ *  は，外部優先度 -1 に対応する．
+ */
+#define EXT_IPM(iipm)   (CAST(PRI,((iipm >> (8 - TBITW_IPRI)) - (1 << TBITW_IPRI))))       /* 内部表現を外部表現に */
+#define INT_IPM(ipm)    (((1 << TBITW_IPRI) - CAST(uint8_t, -(ipm)))  << (8 - TBITW_IPRI)) /* 外部表現を内部表現に */
+
+/*
+ *  CPUロック状態での割込み優先度マスク
  */
 #define TIPM_LOCK    TMIN_INTPRI
 
 /*
- *  CPUbNóÔÅÌÝDæx}XNÌà\»
- *
- *  TIPM_LOCKÍCCPUbNóÔÅÌBASEPRIÌlDJ[lÇOÌàÌð
- *  ­·×ÄÌÝð}XN·élÉè`·éD  
+ *  CPUロック状態での割込み優先度マスクの内部表現
+ *
+ *  TIPM_LOCKは，CPUロック状態でのBASEPRIの値．カーネル管理外のものを
+ *  除くすべての割込みをマスクする値に定義する．  
  */
 #define IIPM_LOCK    INT_IPM(TIPM_LOCK)
 
 /*
- *  TIPM_ENAALLiÝDæx}XNSðjÌà\»
- *
- *  BASEPRIÉ '0' ðÝè·é±ÆÅCSÝðÂ·éD
+ *  TIPM_ENAALL（割込み優先度マスク全解除）の内部表現
+ *
+ *  BASEPRIに '0' を設定することで，全割込みを許可する．
  */
 #define IIPM_ENAALL  (0)
@@ -154,26 +149,26 @@
 
 /*
- *  CPUbNtOÀ»Ì½ßÌÏ
+ *  CPUロックフラグ実現のための変数
  * 
- *  ±êçÌÏÍCCPUbNóÔÌÌÝ«·¦Äàæ¢Æ·éD
- *  CCÖÅCANZXÌªÏ»µÈ¢æ¤Cvolatile ðwèD 
- */
-extern volatile bool_t  lock_flag;    /* CPUbNtOÌlðÛ·éÏ */
-extern volatile uint32_t saved_iipm;  /* ÝDæxð}XN·éÏ */
-
-/*
- *  CPUbNóÔÖÌÚs
- *
- *  BASEPRIin[hEFAÌÝDæx}XNjðCsaved_iipmÉÛ¶µC
- *  J[lÇOÌàÌð­·×ÄÌÝð}XN·éliTIPM_LOCKj
- *  ÉÝè·éDÜ½Clock_flagðtrueÉ·éD
- *
- *  BASEPRIªCÅ©çTIPM_LOCKÆ¯¶©»êæè¢êÉÍC»êð
- *  saved_iipmÉÛ¶·éÌÝÅCTIPM_LOCKÉÍÝèµÈ¢D±êÍCf
- *  ãÌÝDæx}XNªCTIPM_LOCKÆ¯¶©»êæè¢xÉÝè
- *  ³êÄ¢éóÔÉ ½éD
- *
- *  ±ÌÖÍCCPUbNóÔilock_flagªtrueÌóÔjÅÄÎêé±ÆÍ
- *  È¢àÌÆzèµÄ¢éD
+ *  これらの変数は，CPUロック状態の時のみ書き換えてもよいとする．
+ *  インライン関数中で，アクセスの順序が変化しないよう，volatile を指定． 
+ */
+extern volatile bool_t  lock_flag;    /* CPUロックフラグの値を保持する変数 */
+extern volatile uint32_t saved_iipm;  /* 割込み優先度をマスクする変数 */
+
+/*
+ *  CPUロック状態への移行
+ *
+ *  BASEPRI（ハードウェアの割込み優先度マスク）を，saved_iipmに保存し，
+ *  カーネル管理外のものを除くすべての割込みをマスクする値（TIPM_LOCK）
+ *  に設定する．また，lock_flagをtrueにする．
+ *
+ *  BASEPRIが，最初からTIPM_LOCKと同じかそれより高い場合には，それを
+ *  saved_iipmに保存するのみで，TIPM_LOCKには設定しない．これは，モデル
+ *  上の割込み優先度マスクが，TIPM_LOCKと同じかそれより高いレベルに設定
+ *  されている状態にあたる．
+ *
+ *  この関数は，CPUロック状態（lock_flagがtrueの状態）で呼ばれることは
+ *  ないものと想定している．
  */
 Inline void
@@ -183,8 +178,8 @@
 
 	/*
-	 *  current_iipm()ÌÔèlð¼Úsaved_iipmÉÛ¶¹¸CêÏiipm
-	 *  ðp¢Ä¢éÌÍCcurrent_iipm()ðÄñ¾¼ãÉÝª­¶µC
-	 *  N®³ê½ÝÅsaved_iipmªÏX³êéÂ\«ª é½ßÅ
-	 *   éD
+	 *  current_iipm()の返り値を直接saved_iipmに保存せず，一時変数iipm
+	 *  を用いているのは，current_iipm()を呼んだ直後に割込みが発生し，
+	 *  起動された割込み処理でsaved_iipmが変更される可能性があるためで
+	 *  ある．
 	 */
 	iipm = get_basepri();
@@ -192,5 +187,5 @@
 	saved_iipm = iipm;
 	lock_flag = true;
-	/* NeBJZNVÌOãÅª«·íéÂ\«ª é */
+	/* クリティカルセクションの前後でメモリが書き換わる可能性がある */
 	Asm("":::"memory");
 }
@@ -200,16 +195,16 @@
 
 /*
- *  CPUbNóÔÌð
- *
- *  lock_flagðfalseÉµCIPMin[hEFAÌÝDæx}XNjðC
- *  saved_iipmÉÛ¶µ½lÉß·D
- *
- *  ±ÌÖÍCCPUbNóÔilock_flagªtrueÌóÔjÅÌÝÄÎêéà
- *  ÌÆzèµÄ¢éD
+ *  CPUロック状態の解除
+ *
+ *  lock_flagをfalseにし，IPM（ハードウェアの割込み優先度マスク）を，
+ *  saved_iipmに保存した値に戻す．
+ *
+ *  この関数は，CPUロック状態（lock_flagがtrueの状態）でのみ呼ばれるも
+ *  のと想定している．
  */
 Inline void
 x_unlock_cpu(void)
 {
-	/* NeBJZNVÌOãÅª«·íéÂ\«ª é */
+	/* クリティカルセクションの前後でメモリが書き換わる可能性がある */
 	Asm("":::"memory");
 	lock_flag = false;
@@ -221,5 +216,5 @@
 
 /*
- *  CPUbNóÔÌQÆ
+ *  CPUロック状態の参照
  */
 Inline bool_t
@@ -234,10 +229,10 @@
 
 /*
- * ifãÌjÝDæx}XNÌÝè
- *
- *  CPUbNtOªNA³êÄ¢éÍCn[hEFAÌÝDæx}
- *  XNðÝè·éDCPUbNtOªZbg³êÄ¢éÍCsaved_iipm
- *  ðÝèµC³çÉCn[hEFAÌÝDæx}XNðCÝèµæ¤Æ
- *  µ½ifãÌjÝDæx}XNÆTIPM_LOCKÌ¢ûÉÝè·éD
+ * （モデル上の）割込み優先度マスクの設定
+ *
+ *  CPUロックフラグがクリアされている時は，ハードウェアの割込み優先度マ
+ *  スクを設定する．CPUロックフラグがセットされている時は，saved_iipm
+ *  を設定し，さらに，ハードウェアの割込み優先度マスクを，設定しようと
+ *  した（モデル上の）割込み優先度マスクとTIPM_LOCKの高い方に設定する．
  */
 Inline void
@@ -263,8 +258,8 @@
 
 /*
- * ifãÌjÝDæx}XNÌQÆ
- *
- *  CPUbNtOªNA³êÄ¢éÍn[hEFAÌÝDæx}
- *  XNðCZbg³êÄ¢éÍsaved_iipmðQÆ·éD
+ * （モデル上の）割込み優先度マスクの参照
+ *
+ *  CPUロックフラグがクリアされている時はハードウェアの割込み優先度マ
+ *  スクを，セットされている時はsaved_iipmを参照する．
  */
 Inline PRI
@@ -292,19 +287,19 @@
 
 /*
- *  SVCnhiprc_support.Sj
+ *  SVCハンドラ（prc_support.S）
  */
 extern void svc_handler(void);
 
 /*
- *  X^[gAbv[`istart.Sj
+ *  スタートアップルーチン（start.S）
  */
 extern void _start(void);
 
 /*
- *  fBXpb`Ì®ìJniprc_support.Sj
- *
- *  start_dispatchÍCJ[lN®ÉÄÑo·×«àÌÅC·×ÄÌ
- *  ÝðÖ~µ½óÔiÝbNóÔÆ¯ÌóÔjÅÄÑo³È¯êÎ
- *  ÈçÈ¢D
+ *  ディスパッチャの動作開始（prc_support.S）
+ *
+ *  start_dispatchは，カーネル起動時に呼び出すべきもので，すべての割込
+ *  みを禁止した状態（割込みロック状態と同等の状態）で呼び出さなければ
+ *  ならない．
  */
 extern void start_dispatch(void) NoReturn;
@@ -312,17 +307,17 @@
 
 /*
- *  J[lÌI¹ÌÄoµiprc_support.Sj
- *
- *  call_exit_kernelÍCJ[lÌI¹ÉÄÑo·×«àÌÅCñ^XN
- *  ReLXgÉØè·¦ÄCJ[lÌI¹iexit_kerneljðÄÑo
- *  ·D
+ *  カーネルの終了処理の呼出し（prc_support.S）
+ *
+ *  call_exit_kernelは，カーネルの終了時に呼び出すべきもので，非タスク
+ *  コンテキストに切り換えて，カーネルの終了処理（exit_kernel）を呼び出
+ *  す．
  */
 extern void call_exit_kernel(void) NoReturn;
 
 /*
- *  ACh[vÌÀ
- *
- *  PÉCPUbNóÔÆCPUbNðóÔðÄÑo·ÀÆ·éD
- *  X[v[hÉüêéêÍ{ðwfi½ßðp¢Ä«·¦êÎÇ¢D
+ *  アイドルループの実装
+ *
+ *  単にCPUロック状態とCPUロック解除状態を呼び出す実装とする．
+ *  スリープモードに入れる場合は本処理をwfi命令を用いて書き換えれば良い．
  */
 Inline void
@@ -330,5 +325,5 @@
 {
 	lock_flag = false;
-	/* CPUAbN => CPUbN  */
+	/* CPUアンロック => CPUロック  */
 	Asm("\tmsr BASEPRI , %0" : : "r"(0) : "memory");
 	Asm("\tmsr BASEPRI , %0" : : "r"(IIPM_LOCK) : "memory");
@@ -337,12 +332,12 @@
 
 /*
- *  ÝÔEÝnhÔ
- *
- *  ÝnhÔ(inhno)ÆÝÔ(intno)ÍCèÝ­¶É
- *  EPSRÉÝè³êéáOÔÆ·éD 
- */
-
-/*
- *  ÝÔÌÍÍÌ»è
+ *  割込み番号・割込みハンドラ番号
+ *
+ *  割込みハンドラ番号(inhno)と割込み番号(intno)は，割り込み発生時に
+ *  EPSRに設定される例外番号とする． 
+ */
+
+/*
+ *  割込み番号の範囲の判定
  */
 #define VALID_INTNO(intno)           ((TMIN_INTNO <= (intno)) && ((intno) <= TMAX_INTNO))
@@ -351,17 +346,17 @@
 
 /*
- *  ÝnhÌÝè
- *
- *  xNgÔinhnoÌÝnhÌN®Ônint_entryÉÝè·éDÝ
- *  nhe[u
+ *  割込みハンドラの設定
+ *
+ *  ベクトル番号inhnoの割込みハンドラの起動番地int_entryに設定する．割込み
+ *  ハンドラテーブル
  */
 Inline void
 x_define_inh(INHNO inhno, FP int_entry)
 {
-	/* ÁÉs¤ÍÈ¢ */
-}
-
-/*
- *  ÝnhÌoüûÌ¶¬}N
+	/* 特に行う処理はない */
+}
+
+/*
+ *  割込みハンドラの出入口処理の生成マクロ
  *
  */
@@ -370,17 +365,17 @@
 
 /*
- *  ÝvÖ~tO
- */
-
-/*
- *  Ý®«ªÝè³êÄ¢é©ð»Ê·é½ßÌÏikernel_cfg.cj
+ *  割込み要求禁止フラグ
+ */
+
+/*
+ *  割込み属性が設定されているかを判別するための変数（kernel_cfg.c）
  */
 extern const uint32_t	bitpat_cfgint[];
 
 /*
- *  ÝvÖ~tOÌZbg
- *
- *  Ý®«ªÝè³êÄ¢È¢ÝvCÉÎµÄÝvÖ~
- *  tOðNAµæ¤Æµ½êÉÍCfalseðÔ·D  
+ *  割込み要求禁止フラグのセット
+ *
+ *  割込み属性が設定されていない割込み要求ラインに対して割込み要求禁止
+ *  フラグをクリアしようとした場合には，falseを返す．  
  */
 Inline bool_t
@@ -390,5 +385,5 @@
 
 	/*
-	 *  Ý®«ªÝè³êÄ¢È¢ê
+	 *  割込み属性が設定されていない場合
 	 */
 	if ((bitpat_cfgint[intno >> 5] & (1 << (intno & 0x1f))) == 0x00) {
@@ -412,8 +407,8 @@
 
 /*
- *  ÝvÖ~tOÌð
- *
- *  Ý®«ªÝè³êÄ¢È¢ÝvCÉÎµÄÝvÖ~
- *  tOðNAµæ¤Æµ½êÉÍCfalseðÔ·D
+ *  割込み要求禁止フラグの解除
+ *
+ *  割込み属性が設定されていない割込み要求ラインに対して割込み要求禁止
+ *  フラグをクリアしようとした場合には，falseを返す．
  */
 Inline bool_t
@@ -423,5 +418,5 @@
 
 	/*
-	 *  Ý®«ªÝè³êÄ¢È¢ê
+	 *  割込み属性が設定されていない場合
 	 */
 	if ((bitpat_cfgint[intno >> 5] & (1 << (intno & 0x1f))) == 0x00) {
@@ -458,47 +453,47 @@
 
 /*
- *  ÝvCÌ®«ÌÝè
+ *  割込み要求ラインの属性の設定
  */
 extern void x_config_int(INTNO intno, ATR intatr, PRI intpri);
 
 /*
- *  ÝnhüûÅKvÈIRCì
+ *  割込みハンドラ入口で必要なIRC操作
  */
 Inline void
 i_begin_int(INTNO intno)
 {
-	/* ÁÉs¤ÍÈ¢ */
-}
-
-/*
- *  ÝnhÌoûÅKvÈIRCì
+	/* 特に行う処理はない */
+}
+
+/*
+ *  割込みハンドラの出口で必要なIRC操作
  */
 Inline void
 i_end_int(INTNO intno)
 {
-	/* ÁÉs¤ÍÈ¢ */
-}
-
-/*
- *  CPUáOnhÖW
+	/* 特に行う処理はない */
+}
+
+/*
+ *  CPU例外ハンドラ関係
  */ 
 
 /*
- *  CPUáOnhÔ
+ *  CPU例外ハンドラ番号
  */
 #define VALID_EXCNO_DEFEXC(excno)    (TMIN_EXCNO <= (excno) && (excno) <= TMAX_EXCNO)
 
 /*
- *  CPUáOnhÌÂ
+ *  CPU例外ハンドラの許可
  */
 extern void enable_exc(EXCNO excno);
 
 /*
- *  CPUáOnhÌÖ~
+ *  CPU例外ハンドラの禁止
  */
 extern void disable_exc(EXCNO excno);
 
 /*
- *  CPUáOnhÌÝè
+ *  CPU例外ハンドラの設定
  */
 Inline void
@@ -506,5 +501,5 @@
 {
 	/*
-	 *  êÌáOÍÂðs¤Kvª é
+	 *  一部の例外は許可を行う必要がある
 	 */
 	enable_exc(excno);
@@ -512,5 +507,5 @@
 
 /*
- *  CPUáOnhÌüûÌ¶¬}N
+ *  CPU例外ハンドラの入口処理の生成マクロ
  */
 #define EXC_ENTRY(excno, exchdr)    exchdr
@@ -519,25 +514,25 @@
 
 /*
- *  CPUáOGgiprc_support.Sj
+ *  CPU例外エントリ（prc_support.S）
  */
 extern void exc_entry(void);
 
 /*
- *  ÝGgiprc_support.Sj
+ *  割込みエントリ（prc_support.S）
  */
 extern void int_entry(void);
 
 /*
- *  vZbTË¶Ìú»
+ *  プロセッサ依存の初期化
  */
 extern void prc_initialize(void);
 
 /*
- *  vZbTË¶ÌI¹
+ *  プロセッサ依存の終了時処理
  */
 extern void prc_terminate(void) NoReturn;
 
 /*
- *  atexitÌÆfXgN^ÌÀs
+ *  atexitの処理とデストラクタの実行
  */
 Inline void
@@ -548,7 +543,7 @@
 
 	/*
-	 *  software_term_hookÖÌ|C^ðCêUvolatilewèÌ éfpÉã
-	 *  üµÄ©çg¤ÌÍC0ÆÌärªÅK»Åí³êÈ¢æ¤É·é½
-	 *  ßÅ éD
+	 *  software_term_hookへのポインタを，一旦volatile指定のあるfpに代
+	 *  入してから使うのは，0との比較が最適化で削除されないようにするた
+	 *  めである．
 	 */
 	if (fp != 0) {
@@ -558,10 +553,10 @@
 
 /*
- * o^³êÄ¢È¢áOª­¶·éÆÄÑo³êé
+ * 登録されていない例外が発生すると呼び出される
  */
 extern void default_exc_handler(void *p_excinf);
 
 /*
- * ¢o^ÌÝª­¶µ½êÉÄÑo³êé
+ * 未登録の割込みが発生した場合に呼び出される
  */
 extern void default_int_handler(void *p_excinf);
Index: ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_design.txt
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_design.txt	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_design.txt	(revision 95)
@@ -1,75 +1,72 @@
 =====================================================================
-                         ARM-MvZbTË¶Ýv
+                         ARM-Mプロセッサ依存部設計メモ
                                   Last Modified: 23 Aug 2008 21:54:54
 =====================================================================
 
-±ÌhL
-gÌÊuÃ¯
-
-±ÌhL
-gÍCTOPPERS/ASPJ[lðARMvX-MvZbTÉÚA·é½ß
-ÌÝvÅ éD
-
-
-ARMVx-MÌdlÜÆß
-
-ARMvX-MÌdlÌ¤¿CJ[lÌÝvÉÖW·éÉÂ¢ÄÜÆßéD
-
-WX^
-
-ÄpWX^ÍR0`R15Ì16íÞ èCR13ÌÝª2oN\¬iPSP,MSPjÆÈ
-ÁÄ¢éDR15ÍPC, R14ÍNWX^iLRjÆÈÁÄ¢éDR0`R3,R12Í
-XNb`WX^Å éD
-
-R[ORxV
-
-R0`R4ªøC»êÈãÍX^bNDßèlÍCR0`R1Éi[³êéD(ARMÉ
-æèKè³êÄ¢é½ßCRpCÉË¶¹¸±Ì[ÆÈéD)
-
-CONTROLWX^
-
-PSP,MSPÌØèÖ¦CPrivilageÆUser[hÌWX^DÏXãÍCCXg
-NVobt@tbV
-½ßðÀs·éKvª éiisbjDCONTROL
-WX^ÌÚ×ÍCARMv7-M Architecture Application Level Reference 
-Manual Ì B1-9 ðQÆÌ±ÆD
-
-ÝxN^
-
-xN^e[u^ÅCxN^e[uÌAhXÍCZbgÍ0x00ÅC
-Vector Table Offset Registeri}bvhWX^j ðì·é±Æ
-ÅCCÓÌAhXÉzuÂ\Å éD
-
-Dæx
-
-lª¬³¢ûªDæxÆÈéD
-
-DæxÍÅå8bitÅ èCSoCÉÀ³êÄ¢érbgªÙÈéDÀ³
-êérbgª8bitÈºÌêÍCLSB©ç³øÉÈéDá¦ÎCÀ³êÄ¢
-érbgª7bitÌêÍCrbg0ª³øÆÈéD
-
-DæxÌrbgtB[hÌLSB©çrbgðTuDæxÆÄÔtB[h
-ÉÝè·é±ÆªÂ\Å éDcèÌãÊrbgðvGvVDæxÆ
-ÄÔDvGvVDæxª¯¶ÅCTuDæxªÙÈéDæxÌO[
-vÍC¨Ý¢ðvGvg·é±ÆªÅ«È¢D
-
-Reset,NMI,Hard Fault ÈOÌáOÍÝÆ¯lÉDæxªÝèÂ\Å èC
-Ý}XN@\ÉæèC­¶ðÖ~·é±ÆªÂ\Å éD
-
-CPU[h
-
-vZbTÍCThread[hàµ­ÍHandler[hÌ¢¸ê©Ì[hÆÈ
-éD
-
-ZbgÌóÔ
-
-ZbgÍThread[hCMSPªLøÆÈÁÄ¢éD
-
-Handler[h
-
-áO/Ýðó¯t¯éÆJÚ·é[hDó¯t¯½áO/ÝÌáOÔ
-ªCIPSRÉZbg³êéDáOÔÍCTRMÅèßçêÄ¢éÔÅ éD
-
-        áO              áOÔ
+○このドキュメントの位置づけ
+
+このドキュメントは，TOPPERS/ASPカーネルをARMvX-Mプロセッサに移植するため
+の設計メモである．
+
+
+○ARMVx-Mの仕様まとめ
+
+ARMvX-Mの仕様のうち，カーネルの設計に関係する事項についてまとめる．
+
+●レジスタ
+
+汎用レジスタはR0〜R15の16種類あり，R13のみが2バンク構成（PSP,MSP）とな
+っている．R15はPC, R14はリンクレジスタ（LR）となっている．R0〜R3,R12は
+スクラッチレジスタである．
+
+●コーリングコンベンション
+
+R0〜R4が引数，それ以上はスタック．戻り値は，R0〜R1に格納される．(ARMに
+より規定されているため，コンパイラに依存せずこのルールとなる．)
+
+●CONTROLレジスタ
+
+PSP,MSPの切り替え，PrivilageとUserモードのレジスタ．変更後は，インスト
+ラクションバッファフラッシュ命令を実行する必要がある（isb）．CONTROLレ
+ジスタの詳細は，ARMv7-M Architecture Application Level Reference 
+Manual の B1-9 を参照のこと．
+
+●割込みベクタ
+
+ベクタテーブル型で，ベクタテーブルのアドレスは，リセット時は0x00で，
+Vector Table Offset Register（メモリマップドレジスタ） を操作すること
+で，任意のアドレスに配置可能である．
+
+●優先度
+
+値が小さい方が高優先度となる．
+
+優先度は最大8bitであり，SoC毎に実装されているビット幅が異なる．実装さ
+れるビットが8bit以下の場合は，LSBから無効になる．例えば，実装されてい
+るビット幅が7bitの場合は，ビット0が無効となる．
+
+優先度のビットフィールドのLSBから数ビットをサブ優先度と呼ぶフィールド
+に設定することが可能である．残りの上位ビットをプリエンプション優先度と
+呼ぶ．プリエンプション優先度が同じで，サブ優先度が異なる優先度のグルー
+プは，お互いをプリエンプトすることができない．
+
+Reset,NMI,Hard Fault 以外の例外は割込みと同様に優先度が設定可能であり，
+割込みマスク機能により，発生を禁止することが可能である．
+
+●CPUモード
+
+プロセッサは，ThreadモードもしくはHandlerモードのいずれかのモードとな
+る．
+
+●リセット時の状態
+
+リセット時はThreadモード，MSPが有効となっている．
+
+●Handlerモード
+
+例外/割込みを受け付けると遷移するモード．受け付けた例外/割込みの例外番
+号が，IPSRにセットされる．例外番号は，TRMで定められている番号である．
+
+        例外              例外番号
   Reset                      1
   Non-makable Interrupt      2
@@ -86,64 +83,64 @@
   ..
 
-áO/Ýðó¯t¯éÆCó¯t¯½áO/ÝÌDæxÈºÌáO/
-ÝðÖ~·éD±ÌDæx}XNð"NVICDæx}XN"ÆÄÔD±ÌDæx
-ÍC\tgEFA©çÏX·é±ÆªÅ«¸CáO/ÝÌ^[Éæè
-ÝOÌlÉ©®IÉßéD
-
-X^bN|C^iPSPÆMSPj
-
-X^bN|C^ÍCPSPÆMSPª èCr¼IÉgpÂ\Å éDHandler
-[hÅÍMSPÌÝgpÂ\Å èCThread[hÅÍCONTROLWX^ÅIðÂ
-\Å éDCONTROLWX^Ì1rbgÚðZbg·éÆPSPªLøÉCNA
-·éÆCMSPªLøÉÈéD
-
-Thread[hÆHandler[hÌJÚ
-
-Thread[h©çHandler[hÖÌJÚÍCáO/Ýðó¯t¯é±ÆÅ
-­¶·éDêûCHandler[h©çThread[hÖÌJÚÍCPCÉ
-EXC_RETURN(0xfffffffx)ÌlðÝè·é±ÆÉæès¤iáO^[Æ
-ÄÔjDEXC_RETURNÌºÊ4bitÉæèCJÚæÌ[hâgp·éX^bN|
-C^ðÏXÂ\Å éDáO^[ÉæèCPRIMASKâBASEPRIÌlÍÏ»
-µÈ¢DêûCFAULTMASKÌlÍ'0'ÉNA³¹éD
-
-EXC_RETURN
-
-áO/Ýót¯ÉlrÉÝè³êélDrbg31`4rbgÍSÄ'1'ÅC
-ºÊ4bitÍCót¯ÌCPU[hâX^bNð½fµ½lÆÈÁÄ¢éD
-
- 0b0001 : Handler[h
- 0b1001 : Thread[h with MSP
- 0b1101 : Thread[h with PSP
-
-Thread[hÆHandler[hÌ»è
-
-»óÌ[hð»è·éÉÍCIPSRð©ÄC'0'ÈçThread[hC»êÈO
-ÈçCHandler[hÆÈéD
-
-BASEPRIWX^
-
-Ýèµ½DæxÈºÌDæxÌÝÌótðÖ~·éD±ÌDæx}XNð
-"BASEPRIDæx}XN"ÆÄÔD'0'ðÝè·éÆCSÄÌÝðÂ·éD
-áO/ÝÌótÆ^[ÉæèÏ»µÈ¢DáO/ÝÉÎ·éÝ
-Dæx}XNÍCNVICDæx}XNÆBASEPRIÌÝèlÌ¢ûilª¬³¢
-ûjÆÈéD
-
-FAULTMASK
-
-FAULTMASKÍ'1'ðZbg·é±ÆÉæèCNMIÈOÌSÄÌÝðÖ~·éD
-FAULTMASKÍCáOÌ^[Éæè'0'ÉNA³¹éD
-
-PRIMASKÆWFI
-
-PRIMASKð'1'ÉÝè·éÆCNMI Æ Hardware Fault ÈOÌáO/ÝðÖ
-~·éDPRIMASKÍÝÌÂÆÝÒ¿ðAg~bNÉs¤½ßÉp¢
-éDïÌIÉÍCPRIMASKªZbg³êÄ¢éóÔÅwfiðÀs·éÆCè
-ÝÒ¿ÆÈèCÝót¯éÆnhðÀs¹¸ÉCwfi©ç^[µ
-Ä­éD
-
-áO/ÝÌót
-
-EáO/Ýðót¯éÆCót¯ÉANeBuÈX^bNãÉÈºÌR
-  eLXgðÛ¶·é(áOt[ÆÄÔ)D
+例外/割込みを受け付けると，受け付けた例外/割込みの優先度以下の例外/割
+込みを禁止する．この優先度マスクを"NVIC優先度マスク"と呼ぶ．この優先度
+は，ソフトウェアから変更することができず，例外/割込みのリターンにより
+割込み前の値に自動的に戻る．
+
+●スタックポインタ（PSPとMSP）
+
+スタックポインタは，PSPとMSPがあり，排他的に使用可能である．Handlerモ
+ードではMSPのみ使用可能であり，ThreadモードではCONTROLレジスタで選択可
+能である．CONTROLレジスタの1ビット目をセットするとPSPが有効に，クリア
+すると，MSPが有効になる．
+
+●ThreadモードとHandlerモードの遷移
+
+ThreadモードからHandlerモードへの遷移は，例外/割込みを受け付けることで
+発生する．一方，HandlerモードからThreadモードへの遷移は，PCに
+EXC_RETURN(0xfffffffx)の値を設定することにより行う（例外リターン処理と
+呼ぶ）．EXC_RETURNの下位4bitにより，遷移先のモードや使用するスタックポ
+インタを変更可能である．例外リターンにより，PRIMASKやBASEPRIの値は変化
+しない．一方，FAULTMASKの値は'0'にクリアさせる．
+
+●EXC_RETURN
+
+例外/割込み受付け時にlrに設定される値．ビット31〜4ビットは全て'1'で，
+下位4bitは，受付け時のCPUモードやスタックを反映した値となっている．
+
+ 0b0001 : Handlerモード
+ 0b1001 : Threadモード with MSP
+ 0b1101 : Threadモード with PSP
+
+●ThreadモードとHandlerモードの判定
+
+現状のモードを判定するには，IPSRを見て，'0'ならThreadモード，それ以外
+なら，Handlerモードとなる．
+
+●BASEPRIレジスタ
+
+設定した優先度以下の優先度の割込みの受付を禁止する．この優先度マスクを
+"BASEPRI優先度マスク"と呼ぶ．'0'を設定すると，全ての割込みを許可する．
+例外/割込みの受付とリターンにより変化しない．例外/割込みに対する割込み
+優先度マスクは，NVIC優先度マスクとBASEPRIの設定値の高い方（値が小さい
+方）となる．
+
+●FAULTMASK
+
+FAULTMASKは'1'をセットすることにより，NMI以外の全ての割込みを禁止する．
+FAULTMASKは，例外のリターン処理により'0'にクリアさせる．
+
+●PRIMASKとWFI
+
+PRIMASKを'1'に設定すると，NMI と Hardware Fault 以外の例外/割込みを禁
+止する．PRIMASKは割込みの許可と割込み待ちをアトミックに行うために用い
+る．具体的には，PRIMASKがセットされている状態でwfiを実行すると，割り込
+み待ちとなり，割込み受付けるとハンドラを実行せずに，wfiからリターンし
+てくる．
+
+●例外/割込みの受付
+
+・例外/割込みを受付けると，受付け時にアクティブなスタック上に以下のコ
+  ンテキストを保存する(例外フレームと呼ぶ)．
 
    -----------
@@ -166,29 +163,29 @@
   |           | <- old SP
 
-EvZbTðHandler[hÆ·éDMSPªLøÆÈéD
-Eót¯½áO/ÝÌáOÔðIPSRÉÝè·éD
-ENVICÝDæx}XNðót¯½áO/ÝÌDæxÉÝè·éD
-ElrÉEXC_RETURNÌlªÝè³êéD
-ExN^e[uðÇÝÝnhðÀs·éD
-
-áO/Ý©çÌ^[
-
-pcÉEXC_RETURNÌlðÝè·é±ÆÉæèCáO/Ý©ç^[·éD
-pcÖÌÝèÉgpÂ\È½ßÉÍ§Àª èCÈº½ßªgpÂ\Å éD
-
-  EPOP/LDM, LDR, BX
-
-¢ðÛè
-
-ExN^[e[uÉo^·éÖÌAhXÌLSBÍ'1'É·é×«©?
-ENVICÍáOEÝÌlXgñðàIÉÇµÄ¢éçµ¢D
-  (!t@Xð¾ç©É)D
-    \tgEFAÅÍClXgÌ Kðí¹êÎC^[X^bNðU¢µ
-    ÄàâèÈ¢©D
-
-
-OSÌÀ
-
-1.^[Qbg¼
+・プロセッサをHandlerモードとする．MSPが有効となる．
+・受付けた例外/割込みの例外番号をIPSRに設定する．
+・NVIC割込み優先度マスクを受付けた例外/割込みの優先度に設定する．
+・lrにEXC_RETURNの値が設定される．
+・ベクタテーブルを読み込みハンドラを実行する．
+
+●例外/割込みからのリターン
+
+pcにEXC_RETURNの値を設定することにより，例外/割込みからリターンする．
+pcへの設定に使用可能な命令には制限があり，以下命令が使用可能である．
+
+  ・POP/LDM, LDR, BX
+
+●未解決課題
+
+・ベクターテーブルに登録する関数のアドレスのLSBは'1'にするべきか?
+・NVICは例外・割込みのネスト回数を内部的に管理しているらしい．
+  (!リファレンスを明らかに)．
+    ソフトウェアでは，ネストの帳尻を合わせれば，リターンスタックを偽造し
+    ても問題ないか．
+
+
+○OSの実装
+
+1.ターゲット名
 
  1-1 cm3(Cortex-M3)
@@ -196,334 +193,329 @@
  1-3 arm_m
 
-cm3ÅÍCCoretex-M1(armv6-m)ðT|[g·éêÉâèÆÈéDarmv7mÅÍC
-armv8mª[X³ê½êÉâèÆÈéDARMË¶ÍJSPÅÍCarmv4ÆÈ
-ÁÄ¢½ªCarmv5âarmv7à®ì·é½ßASPÅÍPÉarmÆµ½D»Ì½ßC
-arm_mª³ïÆl¦çêéD
-
-
-2.Thread[hÆHandler[hÌg¢ª¯
+cm3では，Coretex-M1(armv6-m)をサポートする場合に問題となる．armv7mでは，
+armv8mがリリースされた場合に問題となる．ARM依存部はJSPでは，armv4とな
+っていたが，armv5やarmv7も動作するためASPでは単にarmとした．そのため，
+arm_mが無難と考えられる．
+
+
+2.ThreadモードとHandlerモードの使い分け
 
  2-1
-  ^XNReLXgÍThread[hCñ^XNReLXgÍHandler[
-  hÅ®ì³¹éD
+  タスクコンテキストはThreadモード，非タスクコンテキストはHandlerモー
+  ドで動作させる．
 
  2-2
-  ^XNReLXgÆñ^XNReLXg¤ÉHandler[hÅ®ì³¹
-  éD
-
-vZbTÌÝvûjðl¶·éÆ2-1ªLÍD2-1ÅÌâè_ÆµÄÍC
-Ýnh©ç^XNÖÌ^[É[hÌÏXªÈºÌlÉ½­·é±
-Æª°çêéD
-
-1.Ýnh               : Handler[h
-2.^XNáOnhÌÄÑoµ : Thread[h
-3.^XNÖÌ^[       : Handler[h
-4.^XNÌÄJ                 : Thread[h
-
-3ÅHandler[hÉÚs·éKvª éÌÍCáOt[ðp¢ÄA·é
-ÉÍCHandler[hÅáO^[ðs¤Kvª é½ßÅ éDARMÅ
-ÍC¡WX^Ì[hÆCPSRÌAð¯És¦éªCM3Ís¦È¢½ßC
-±Ìû@ÅÝæÌ^XNÉ^[·éKvª éD
-
-2-2ÌêÌÝnh©ç^XNÖÌ^[É[hÌÏXðÈº
-É¦·DÜ½C2-2ÅÍÝDæxÌÅálð^XNÌÀsÌDæxÆµ
-ÄU[u·éKvª éD
-
-1.Ýnh               : Handler[h
-2.NVICDæx}XN'0'ð0Ö     : Thread[h
-3.ÅáDæxÌHandler[hÖ  : Handler[h
-4.^XNáOnhÌÄÑoµ : Handler[h
-5.^XNÖÌ^[ÌO   : Thread[h
-3.^XNÖÌ^[           : Handler[h
-4.^XNÌÄJ                 : Handler[h
-
-Ýnh©ç^XNÌ^[ÉÖµÄÍC2-2Å ÁÄàC2ðÀs·
-éêÉCNVICDæx}XNð'0'É·é½ßCáO^[ðs¤Kv
-ª éDÜ½CNVIC©ÌªCÝÌlXgñðÇµÄ¢é½ßC3©ç4
-ÖÌJÚÌ½ßÉC¢Á½ñáO/Ýðót¯½óÔÉ·éKvª é½
-ßCÊIÉ2-1ÈãÌJÚªKvÆÈéD
-
-2-2ÌêÍCMSPµ©g¦È¢½ßCÝÌüèûÅlXgñð»fµÄC
-X^bNðüêÖ¦éKvª éD
-
-HRPÅÛìðp¢éêÍ2-1ÆÈéD
-
-ÈãÌRÉæèC2-1ðÌp·éD½¾µ2-1ÍCJ[lN®ÆIDLE[
-vÌµ¢ð¢·éKvª éD±êçÉÂ¢ÄÍÊrc_·éD
-
-
-3.fBXpb`ÌÀs[h
+  タスクコンテキストと非タスクコンテキスト共にHandlerモードで動作させ
+  る．
+
+プロセッサの設計方針を考慮すると2-1が有力．2-1での問題点としては，割込
+みハンドラからタスクへのリターン時にモードの変更が以下の様に多発するこ
+とが挙げられる．
+
+1.割込みハンドラ               : Handlerモード
+2.タスク例外ハンドラの呼び出し : Threadモード
+3.タスクへのリターン処理       : Handlerモード
+4.タスクの再開                 : Threadモード
+
+3でHandlerモードに移行する必要があるのは，例外フレームを用いて復帰する
+には，Handlerモードで例外リターン処理を行う必要があるためである．ARMで
+は，複数レジスタのロードとCPSRの復帰を同時に行えるが，M3は行えないため，
+この方法で割込み先のタスクにリターンする必要がある．
+
+2-2の場合の割込みハンドラからタスクへのリターン時にモードの変更を以下
+に示す．また，2-2では割込み優先度の最低値をタスクの実行時の優先度とし
+てリザーブする必要がある．
+
+1.割込みハンドラ               : Handlerモード
+2.NVIC優先度マスク'0'を0へ     : Threadモード
+3.最低優先度のHandlerモードへ  : Handlerモード
+4.タスク例外ハンドラの呼び出し : Handlerモード
+5.タスクへのリターンの前処理   : Threadモード
+3.タスクへのリターン           : Handlerモード
+4.タスクの再開                 : Handlerモード
+
+割込みハンドラからタスクのリターンに関しては，2-2であっても，2を実行す
+る場合に，NVIC優先度マスクを'0'にするため，例外リターン処理を行う必要
+がある．また，NVIC自体が，割込みのネスト回数を管理しているため，3から4
+への遷移のために，いったん例外/割込みを受付けた状態にする必要があるた
+め，結果的に2-1以上の遷移が必要となる．
+
+2-2の場合は，MSPしか使えないため，割込みの入り口でネスト回数を判断して，
+スタックを入れ替える必要がある．
+
+HRP等でメモリ保護を用いる場合は2-1となる．
+
+以上の理由により，2-1を採用する．ただし2-1は，カーネル起動時とIDLEルー
+プの扱いを検討する必要がある．これらについては別途議論する．
+
+
+3.ディスパッチャの実行モード
 
  3-1
-  Thread[hÅÀs·é
+  Threadモードで実行する
 
  3-2
-  Handler[hÅÀs·é
-
-fBXpb`ðThread[hÅÀs·éÆCÝÉæèvGvg³ê
-½^XNÉßéêÍÌæ¤ÈpXÉÈéD
-
- 1. fBXpb`ÄÑoµ : Thread[h 
- 2. fBXpb`Às     : Thread[h
- 3. ^XNáOÀs         : Thread[h
- 4D^XNÖÌ^[ : Handler[h
- 5. ^XNÌÄJ           : Thread[h
-
-Ýnh©ç©çfBXpb`µ½^XNÖ^[·éêÍÌp
-XÉÈéD
-
- 1.Ýnh               : Handler[h
- 2.fBXpb`Às           : Thread[h
- 3.^XNáOnhÌÄÑoµ : Thread[h
- 4.^XNÖÌ^[           : Handler[h
- 5.^XNÌÄJ                 : Thread[h
-
-êûCfBXpb`ðHandler[hÅÀs·éÆCÝÉæèvG
-vg³ê½^XNÉßéêÍÌæ¤ÈpXÉÈéD
-
- 1. fBXpb`ÄÑoµ : Thread[h 
- 2. fBXpb`Às     : Handler[h
- 3. ^XNáOÀs         : Thread[h
- 4D^XNÖÌ^[     : Handler[h
- 5. ^XNÌÄJ           : Thread[h
-
-ÝnhÌoû©ç©çfBXpb`µ½^XNÖ^[·éêÍ
-ÌpXÉÈéD
-
- 1.Ýnh               : Handler[h
- 2.fBXpb`Às           : Handler[h
- 3.^XNáOnhÌÄÑoµ : Thread[h
- 4.^XNÖÌ^[           : Handler[h
- 5.^XNÌÄJ                 : Thread[h
-
-^XNáOnhªÈ¢OSÌêÍCHandler[hÅÀsµ½ûª[h
-ÌJÚÌñª¸éªC^XNáOnhª éÆCThread[hÌûªJ
-Úñª¸é½ßCThread[hÆ·éD
-
-Ûìðl¶·éÆCfBXpb`ÍHandler[hÅ®ì³¹½ûª
-ø¦ªæ¢Æl¦çêéiSVCÅnhðÄÑo·ÆHandler[hÆÈé½
-ßjD
-
-
-4.X^bNÌg¢ª¯
+  Handlerモードで実行する
+
+ディスパッチャをThreadモードで実行すると，割込みによりプリエンプトされ
+たタスクに戻る場合は次のようなパスになる．
+
+ 1. ディスパッチャ呼び出し : Threadモード 
+ 2. ディスパッチャ実行     : Threadモード
+ 3. タスク例外実行         : Threadモード
+ 4．タスクへのリターン処理 : Handlerモード
+ 5. タスクの再開           : Threadモード
+
+割込みハンドラから自らディスパッチしたタスクへリターンする場合は次のパ
+スになる．
+
+ 1.割込みハンドラ               : Handlerモード
+ 2.ディスパッチャ実行           : Threadモード
+ 3.タスク例外ハンドラの呼び出し : Threadモード
+ 4.タスクへのリターン           : Handlerモード
+ 5.タスクの再開                 : Threadモード
+
+一方，ディスパッチャをHandlerモードで実行すると，割込みによりプリエン
+プトされたタスクに戻る場合は次のようなパスになる．
+
+ 1. ディスパッチャ呼び出し : Threadモード 
+ 2. ディスパッチャ実行     : Handlerモード
+ 3. タスク例外実行         : Threadモード
+ 4．タスクへのリターン     : Handlerモード
+ 5. タスクの再開           : Threadモード
+
+割込みハンドラの出口から自らディスパッチしたタスクへリターンする場合は
+次のパスになる．
+
+ 1.割込みハンドラ               : Handlerモード
+ 2.ディスパッチャ実行           : Handlerモード
+ 3.タスク例外ハンドラの呼び出し : Threadモード
+ 4.タスクへのリターン           : Handlerモード
+ 5.タスクの再開                 : Threadモード
+
+タスク例外ハンドラがないOSの場合は，Handlerモードで実行した方がモード
+の遷移の回数が減るが，タスク例外ハンドラがあると，Threadモードの方が遷
+移回数が減るため，Threadモードとする．
+
+メモリ保護を考慮すると，ディスパッチャはHandlerモードで動作させた方が
+効率がよいと考えられる（SVCでハンドラを呼び出すとHandlerモードとなるた
+め）．
+
+
+4.スタックの使い分け
 
  4-1
-  ^XNReLXgðPSP, ñ^XNReLXgðMSP
+  タスクコンテキストをPSP, 非タスクコンテキストをMSP
  4-2
-  ^XNReLXgCñ^XNReLXg¤ÉMSP
-
-4-2ÌêCÝÌüèûÅlXgñð»fµÄCX^bNðüêÖ¦é
-Kvª éD2Å^XNReLXgÍThread[hCñ^XNReLXg
-ÍHandler[hÅ®ì³¹éÆµ½½ßC4-1ðÌp·éÆCÝÌüèû
-Å©®IÉX^bNªØèÖíéDThread[hÅÌPSPÌANZXàC
-mrs/msr½ßÅs¦é½ßC4-1ðÌp·éD
-
-
-5.ReLXgÌ»è
+  タスクコンテキスト，非タスクコンテキスト共にMSP
+
+4-2の場合，割込みの入り口でネスト回数を判断して，スタックを入れ替える
+必要がある．2でタスクコンテキストはThreadモード，非タスクコンテキスト
+はHandlerモードで動作させるとしたため，4-1を採用すると，割込みの入り口
+で自動的にスタックが切り替わる．ThreadモードでのPSPのアクセスも，
+mrs/msr命令で行えるため，4-1を採用する．
+
+
+5.コンテキストの判定
 
  5-1
-  IPSRª'0'(Thread[h)Èç^XN^XNReLXgC'1'(Handler[
-  h)Èçñ^XNReLXgÆ·éD
+  IPSRが'0'(Threadモード)ならタスクタスクコンテキスト，'1'(Handlerモー
+  ド)なら非タスクコンテキストとする．
 
  5-2
-  ÝÌlXgñðÛ·éÏðpÓD1ÈãÅñ^XNReLXgD
+  割込みのネスト回数を保持する変数を用意．1以上で非タスクコンテキスト．
 
  5-3
-  ANeBuÈX^bNÉæè»fiMSPÈçñ^XNReLXgCPSPÈç
-  ^XNReLXgÆ·éj
-
-5-1ÍC\tgEFA¤ÅReLXgÇÌ½ßÌðs¤KvªÈ¢Æ
-¢¤bgª éDµ©µÈªçCJ[lÌN®Thread[hÅ é½
-ßCHandler[hÖÚs·éKvª éDASPJ[lÅÍCIDLE[vÀs
-Íñ^XNReLXgÆµÄ®ì³¹éKvª é½ßCIDLE[vÍ
-Handler[hÅ®ì³¹éKvª éDIDLE[vÍfBXpb`©çÄ
-Ño³êéD3Åèß½æ¤ÉCfBXpb`ðThread[hÅ®ì³¹é
-½ßCIDLE[vðÄÑo·ÛÉÍCHandler[hÖJÚ·éKvª éD
-Handler[hÖÌJÚÍCSVC/PendSVCðp¢éÆÀ»Â\Å éªC6Ì
-ÝÉvGvg³ê½^XNÖÌ^[ÌHandler[hÖÌÚsÅ
-àSVC/PendSVCÌgpªKvÆÈé½ßCSVCnhÅÍCÇÌÚIÅÄÑo
-³ê½©»è·éKvªoÄ­é½ßCI[owbhªå·éD
-
-5-2ÅÍCJ[lN®âIDLE[vÉÏð'1'ÉÝè·êÎæ¢±ÆÉ
-ÈéD±ÌêCJ[lN®âIDLE[vÉThread[hÅÀsµÄà
-®ìÉâèªÈ¢æ¤CÁÉÝÌoüèûÌÝvðÓ·éKvª éD
-
-J[lN®ÉÖµÄÍCSÝðÖ~µÄ¨èCÝªüçÈ¢ÌÅ
-ÁÉâèÍÈ¢DIDLE[vÍCThread[hÅMSPÆPSPÌIðªÂ\Å 
-é±ÆðpµÄCñ^XNReLXgÌX^bNÅ éMSPÉÏX·éD
-áO/ÝÌüèûÅÍC½dÝÅ é©ðEXC_RETURNÌ[h»èÌ
-rbgÅÍÈ­CX^bNÌ»èrbgÅs¦ÎâèÈ¢DáO/Ý©ç
-Ì^[ÉÖµÄÍC½dÝÌ»èÍCüèûÆ¯lÉEXC_RETURNÌX
-^bN»èrbgÅs¦Îæ¢DáO^[ÉpcÉãü·é
-EXC_RETURNÌlðê¥0xfffffffd (Thread[h with MSP)Æ·éÌÅÍÈ­C
-áO/Ýót¯ÉLRÉÝè³êéEXC_RETURNðp¢é±ÆÉæèCIDLE
-[vÉèñ¾êÅàâèÈ­^[·éD
-
-J[lN®ÍCMSPªANeBuÅ èCÝnhÀsÍHandler
-[hÅ é±Æ©çMSPªANeBuÅèCIDLE[vÉMSPðANeBu
-ÉÝè·éÆCñ^XNReLXgÍSÄCMSPðANeBuÉµÄ®ì·
-é±ÆÉÈéDÜ½CÝÍÝOÉANeBuÈX^bNÌîñªC
-EXC_RETURNÉÝè³êéD»Ì½ßCReLXgÌ»èÍCÝlXgñ
-ðÛ·éÏªÈ­ÆàCANeBuÈX^bNð©êÎæ¢±ÆÉÈéD
-Ü½Cexc_sense_context()ÉÖµÄÍCáOt[ÉEXC_RETURNðÇÁ
-µC»ÌàeÉæè»f·êÎæ¢DÈãÌRÉæèC5-3ðÌp·éD
-
-
-6.ÝÉvGvg³ê½^XNÖÌ^[ÌHandler[hÖÌÚ
-  sû@
+  アクティブなスタックにより判断（MSPなら非タスクコンテキスト，PSPなら
+  タスクコンテキストとする）
+
+5-1は，ソフトウェア側でコンテキスト管理のための処理を行う必要がないと
+いうメリットがある．しかしながら，カーネルの起動時Threadモードであるた
+め，Handlerモードへ移行する必要がある．ASPカーネルでは，IDLEループ実行
+は非タスクコンテキストとして動作させる必要があるため，IDLEループは
+Handlerモードで動作させる必要がある．IDLEループはディスパッチャから呼
+び出される．3で定めたように，ディスパッチャをThreadモードで動作させる
+ため，IDLEループを呼び出す際には，Handlerモードへ遷移する必要がある．
+Handlerモードへの遷移は，SVC/PendSVCを用いると実現可能であるが，6の割
+込みにプリエンプトされたタスクへのリターン時のHandlerモードへの移行で
+もSVC/PendSVCの使用が必要となるため，SVCハンドラでは，どの目的で呼び出
+されたか判定する必要が出てくるため，オーバヘッドが増大する．
+
+5-2では，カーネル起動時やIDLEループ時に変数を'1'に設定すればよいことに
+なる．この場合，カーネル起動時やIDLEループ時にThreadモードで実行しても
+動作に問題がないよう，特に割込みの出入り口の設計を注意する必要がある．
+
+カーネル起動時に関しては，全割込みを禁止しており，割込みが入らないので
+特に問題はない．IDLEループ時は，ThreadモードでMSPとPSPの選択が可能であ
+ることを利用して，非タスクコンテキストのスタックであるMSPに変更する．
+例外/割込みの入り口では，多重割込みであるかをEXC_RETURNのモード判定の
+ビットではなく，スタックの判定ビットで行えば問題ない．例外/割込みから
+のリターンに関しては，多重割込みの判定は，入り口と同様にEXC_RETURNのス
+タック判定ビットで行えばよい．例外リターン処理時にpcに代入する
+EXC_RETURNの値を一律0xfffffffd (Threadモード with MSP)とするのではなく，
+例外/割込み受付け時にLRに設定されるEXC_RETURNを用いることにより，IDLE
+ループに割り込んだ場合でも問題なくリターンする．
+
+カーネル起動時は，MSPがアクティブであり，割込みハンドラ実行時はHandler
+モードであることからMSPがアクティブでり，IDLEループ時にMSPをアクティブ
+に設定すると，非タスクコンテキストは全て，MSPをアクティブにして動作す
+ることになる．また，割込み時は割込み前にアクティブなスタックの情報が，
+EXC_RETURNに設定される．そのため，コンテキストの判定は，割込みネスト回
+数を保持する変数がなくとも，アクティブなスタックを見ればよいことになる．
+また，exc_sense_context()に関しては，例外フレーム中にEXC_RETURNを追加
+し，その内容により判断すればよい．以上の理由により，5-3を採用する．
+
+
+6.割込みにプリエンプトされたタスクへのリターン時のHandlerモードへの移
+  行方法
 
  6-1
-  SVCðp¢é
+  SVCを用いる
  6-2
-  PendSVCðp¢é
-
-PendSVCÆSVCÌá¢ÍCPendSVCªvªL
-[CO³êCSVCÍvªL
-
-[CO³êÈ¢±ÆÅ éDÝÉvGvg³ê½^XNÖÌ^[
-ÌHandler[hÖÌÚsÍCL
-[CO³ê¸É¦ÀÉ³êéK
-vª é½ßCÇ¿çÅÀ»µÄàâèÈ¢DÇ¿çðJ[lÌ\[Xµ
-Ägp·é©ÌIð¾¯Å éD
-
-Ç¿çðg¤ÆµÄàCDæxÌÝèªâèÆÈéDfBXpb`©ç
-ÝÉvGvg³ê½^XNÖÌ^[ÜÅÌÍC­È­ÆàCPU
-bNóÔÅÀs³êÈ¯êÎÈçÈ¢DSVCâPendSVCÍÇ¿çàÝDæx
-ðÂ½ßCNVICDæx}XNæèBASEPRIDæx}XNÌûª¢êC
-³êÈ¢D
-
-CPUbNóÔðBASEPRIÌÝèÅÀ»µ½êC»ÌÝèlðSVCâPendSVCÉ
-Ýèµ½læèá­·éKvª éD¾¢·¦éÆCSVCâPendSVCÌDæxð
-CPUbNÌDæx}XNÌlæè¢li¼ÌÝæè¢DæxjÆ
-·éKvª éD
-
-CPUbNóÔðFAULTMASKâPRIMASKÅÀ»µ½êÍC±êçªÝè³êé
-ÆCSVCâPendSVCªót¯çêÈ¢½ßC¢Á½ñBASEPRIÉæèÝð}
-XN·éæ¤ÉÝè·éKvª éD±ÌêàCSVCâPendSVCÍ¼ÌÝ
-æè¢DæxðÝè·éKvª éD
-
-ÈãÉæèCHandler[hÖÌÚsÌ½ßÉÍCCPUbNóÔðBASEPRIÅ
-À»µCSVCâPendSVCÉÝè·éDæxðJ[lÇàÌÅDæxæèê
-Â¢DæxÉÝè·éKvª éD
-
-
-7. áO/ÝoüèûÅÌ½dÝÌ»f
+  PendSVCを用いる
+
+PendSVCとSVCの違いは，PendSVCが要求がキューイングされ，SVCは要求がキュ
+ーイングされないことである．割込みにプリエンプトされたタスクへのリター
+ン時のHandlerモードへの移行は，キューイングされずに即座に処理される必
+要があるため，どちらで実現しても問題ない．どちらをカーネルのリソースし
+て使用するかの選択だけである．
+
+どちらを使うとしても，優先度の設定が問題となる．ディスパッチャから割込
+みにプリエンプトされたタスクへのリターンまでの処理は，少なくともCPUロ
+ック状態で実行されなければならない．SVCやPendSVCはどちらも割込み優先度
+を持つため，NVIC優先度マスクよりBASEPRI優先度マスクの方が高い場合，処
+理されない．
+
+CPUロック状態をBASEPRIの設定で実現した場合，その設定値をSVCやPendSVCに
+設定した値より低くする必要がある．言い換えると，SVCやPendSVCの優先度を
+CPUロック時の優先度マスクの値より高い値（他の割込みより高い優先度）と
+する必要がある．
+
+CPUロック状態をFAULTMASKやPRIMASKで実現した場合は，これらが設定される
+と，SVCやPendSVCが受付けられないため，いったんBASEPRIにより割込みをマ
+スクするように設定する必要がある．この場合も，SVCやPendSVCは他の割込み
+より高い優先度を設定する必要がある．
+
+以上により，Handlerモードへの移行のためには，CPUロック状態をBASEPRIで
+実現し，SVCやPendSVCに設定する優先度をカーネル管理内の最高優先度より一
+つ高い優先度に設定する必要がある．
+
+
+7. 例外/割込み出入り口での多重割込みの判断
 
 7-1
- EXC_RETURNÌ[h»èrbg
+ EXC_RETURNのモード判定ビット
 7-2
- EXC_RETURNÌX^bN»èrbg
+ EXC_RETURNのスタック判定ビット
 7-3
- ÝlXgñÌÇÏ
-
-áO/Ýót¯ÍCót¯½áO/ÝÈºÌÝÍÖ~·éªCS
-ÝÖ~óÔÉÍÈçÈ¢D»Ì½ßCÝlXgñÌÇÏðC
-Ng·éOÉÝªüéÂ\«ª é½ßC7-3Ígp·é±ÆªÅ
-«È¢D
-
-5Åc_µ½ÊèCIDLE[vðThread[hÅÀs·é½ßC7-1ÅÍÈ­C
-7-2Å»f·éKvª éD
-
-
-8. IDLE[v
+ 割込みネスト回数の管理変数
+
+例外/割込み受付け時は，受付けた例外/割込み以下の割込みは禁止するが，全
+割込み禁止状態にはならない．そのため，割込みネスト回数の管理変数をイン
+クリメントする前に割込みが入る可能性があるため，7-3は使用することがで
+きない．
+
+5で議論した通り，IDLEループをThreadモードで実行するため，7-1ではなく，
+7-2で判断する必要がある．
+
+
+8. IDLEループ
 
 8-1
- Thread[hÅÀs
+ Threadモードで実行
 8-2
- Handler[hÅÀs
-
-5Åc_µ½ÊèCThread[hÅÀsÅ«½ûªI[owbhª¬³¢DÜ
-½CThread[hÅÀsµÄàCèÝÌoüèûÅ³µ­ñ^XNRe
-LXgÆ»èÅ«êÎCThread[hÅâèÈ¢D
-
-
-9DJ[lÇOÌÝÌT|[g
+ Handlerモードで実行
+
+5で議論した通り，Threadモードで実行できた方がオーバヘッドが小さい．ま
+た，Threadモードで実行しても，割り込みの出入り口で正しく非タスクコンテ
+キストと判定できれば，Threadモードで問題ない．
+
+
+9．カーネル管理外の割込みのサポート
 
 9-1
- J[lÇOÌÝðT|[gµÈ¢
+ カーネル管理外の割込みをサポートしない
 9-2
- J[lÇOÌÝðT|[g·é
-
-xN^e[uðT|[gµÄ¨èCÝnhàC¾êÅLqÂ\Å 
-é½ßCT|[gªeÕÅ é½ßCT|[g·éD
-
-
-10. CPUbN
+ カーネル管理外の割込みをサポートする
+
+ベクタテーブルをサポートしており，割込みハンドラもC言語で記述可能であ
+るため，サポートが容易であるため，サポートする．
+
+
+10. CPUロック
 
 10-1
- BASEPRIðgp 
+ BASEPRIを使用 
 10-2 
- FAULTMASK/PRIMASKðgp
-
-J[lÌÇOÌÝðT|[g·éÈçCBASEPRIðgp·éKvª 
-éD
-
-
-11. ÝbNÆCPUáOÌÖW
+ FAULTMASK/PRIMASKを使用
+
+カーネルの管理外の割込みをサポートするなら，BASEPRIを使用する必要があ
+る．
+
+
+11. 割込みロックとCPU例外の関係
 
 11-1
- BASEPRIðgp 
+ BASEPRIを使用 
 11-2 
- FAULTMASK/PRIMASKðgp 
-
-FAULTMASK/PRIMASKðgp·éÆCNMI Æ Hardware Fault ÈOÌCPUáOàÖ
-~³êÄµÜ¤D
-
-BASEPRIðp¢éÆCÝbNÉàCPUáOðót¯½¢êÍC
-BASEPRIðp¢ÄCÅDæxðCPUáOÌ½ßÉU[u·éKvª éD
-
-ÝbNàCCPUáOðót¯éæ¤Éµ½¯êÎBASEPRIðgp·éK
-vª éD
-
-ÊIRON4.0dlÌ3.5.3ÅÍCCPUáOÌDæxÍÌæ¤ÉèßçêÄ¢éD
-
-"CPUáOnhÌDæÊÍCCPUáOª­¶µ½ÌDæxÆCfBX
-pb`ÌDæÊÌ¢¸ê©æèà¢D"
-
-CPUáOª­¶µ½ÌDæxæèà¢Æ éÌÅCCPUbNâÝ
-bNóÔÌ^XNÅ­¶µ½êÅàCDæµÄÀs³êé×«¾Æàl¦ç
-êéD
-
-êûCTOPPERSWÝfÌdlÅÍCCPUáOÍCvZbT
-ÉÙÈé½ßCCPUáOÌfÌW»¢ÌÎÛOÆµÄ¢éD»Ì
-½ßCARM-MÅÌµ¢ðßÄC}j
-AÉ¾L·êÎæ¢Æl¦çêéD
-
-
-12. ODæxÆàDæxÌÏ·
-
-ODæxÆÍAPIÅwè·éÝDæx(PRI^)Ì±ÆÅ èClª¬³¢
-ÙÇDæxª¢DÝnhÉÍC-1©çA±µ½ÌlðÝèÂ\Å
- éDàDæxÍCBASEPRIâNVICÌDæxWX^ÉÝè·élÅ éD
-
-À³êéÝDæxÌrbgð TBITW_IPRI Æ·éÆCÝèÂ\ÈO
-DæxÍÌæ¤ÉÈéD
-
-  TIPM_ENAALLi0j` -(1 << TBITW_IPRI)
-
-
-13. J[lÇàÌÅDæx(CPUbNóÔÅÌDæx}XN)
-
-6.Åq×½æ¤ÉCÝÌoûÅSVCnhðÄÑo·Kvª é½ßC
-SVCnhÍCPUbNóÔÌBASEPRIÉÝè·éDæx}XNæè¢Dæx
-ðÝè·éKvª éD
-
-À³êéÝDæxÌrbgð TBITW_IPRICDæxÌTuDæxÌ
-rbgðTBIT_IPRIÆ·éÆCCPUbNóÔiJ[lÇàÝÉÝè
-Â\ÈÅDæxjÆµÄwèÂ\ÈDæx}XNÌÝèÍÍÍÈºÌlÌÍ
-ÍÆÈéD
-
-    -(2^(TBIW_IPRI)) + (2^TBITW_SUBIPRI)) ` -1
-
-
-14. ¢ðÛè
-
-EÝbNÆCPUáOÌÖW
-  BASEPRIðgÁ½ÆµÄàC éCPUáOÉ¼ÌáOª­¶·éÆC»
-  ÌáOÍó¯t¯çêÈ¢½ßCITRONdlÍ½¹È¢D
-  -> «çßÄ}j
-ALÚÉ¦°é©.
-  veNVÌáOà}XNÂ\Å é½ßvD
-
-
-ÈãD
+ FAULTMASK/PRIMASKを使用 
+
+FAULTMASK/PRIMASKを使用すると，NMI と Hardware Fault 以外のCPU例外も禁
+止されてしまう．
+
+BASEPRIを用いると，割込みロック中にもCPU例外を受付けたい場合は，
+BASEPRIを用いて，最高優先度をCPU例外のためにリザーブする必要がある．
+
+割込みロック時も，CPU例外を受付けるようにしたければBASEPRIを使用する必
+要がある．
+
+μIRON4.0仕様の3.5.3では，CPU例外の優先度は次のように定められている．
+
+"CPU例外ハンドラの優先順位は，CPU例外が発生した処理の優先度と，ディス
+パッチャの優先順位のいずれかよりも高い．"
+
+CPU例外が発生した処理の優先度よりも高いとあるので，CPUロックや割込みロ
+ック状態のタスクで発生した場合でも，優先して実行されるべきだとも考えら
+れる．
+
+一方，TOPPERS標準割込み処理モデルの仕様書では，CPU例外は，プロセッサ毎
+に異なるため，CPU例外の処理モデルの標準化検討の対象外としている．その
+ため，ARM-Mでの扱いを決めて，マニュアルに明記すればよいと考えられる．
+
+
+12. 外部優先度と内部優先度の変換
+
+外部優先度とはAPIで指定する割込み優先度(PRI型)のことであり，値が小さい
+ほど優先度が高い．割込みハンドラには，-1から連続した負の値を設定可能で
+ある．内部優先度は，BASEPRIやNVICの優先度レジスタに設定する値である．
+
+実装される割込み優先度のビット幅を TBITW_IPRI とすると，設定可能な外部
+優先度は次のようになる．
+
+  TIPM_ENAALL（＝0）〜 -(1 << TBITW_IPRI)
+
+
+13. カーネル管理内の最高優先度(CPUロック状態での優先度マスク)
+
+6.で述べたように，割込みの出口でSVCハンドラを呼び出す必要があるため，
+SVCハンドラはCPUロック状態のBASEPRIに設定する優先度マスクより高い優先度
+を設定する必要がある．
+
+実装される割込み優先度のビット幅を TBITW_IPRI，優先度中のサブ優先度の
+ビット幅をTBIT_IPRIとすると，CPUロック状態（カーネル管理内割込みに設定
+可能な最高優先度）として指定可能な優先度マスクの設定範囲は以下の値の範
+囲となる．
+
+    -(2^(TBIW_IPRI)) + (2^TBITW_SUBIPRI)) 〜 -1
+
+
+14. 未解決課題
+
+・割込みロックとCPU例外の関係
+  BASEPRIを使ったとしても，あるCPU例外処理中に他の例外が発生すると，そ
+  の例外は受け付けられないため，ITRON仕様は満たせない．
+  ->あきらめてマニュアル記載に逃げるか.
+  メモリプロテクションの例外もマスク可能であるため要件等．
+
+
+以上．
Index: ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_insn.h
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_insn.h	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_insn.h	(revision 95)
@@ -6,36 +6,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id: prc_insn.h 1304 2008-08-27 07:28:36Z ertl-honda $
@@ -44,5 +40,5 @@
 
 /*
- *  RAË¶ÌÁê½ßÌCCÖè`iARM-Mpj
+ *  コア依存の特殊命令のインライン関数定義（ARM-M用）
  */
 
@@ -53,5 +49,5 @@
 
 /*
- *  FAULTMASKÌZbg
+ *  FAULTMASKのセット
  */
 Inline void
@@ -61,5 +57,5 @@
 
 /*
- *  FAULTMASKÌNA
+ *  FAULTMASKのクリア
  */
 Inline void
@@ -69,5 +65,5 @@
 
 /*
- *  PRIMASKÌZbg
+ *  PRIMASKのセット
  */
 Inline void
@@ -77,5 +73,5 @@
 
 /*
- *  PRIMASKÌNA
+ *  PRIMASKのクリア
  */
 Inline void
@@ -85,5 +81,5 @@
 
 /*
- *  BASEPRIÌZbg
+ *  BASEPRIのセット
  */
 Inline void
@@ -93,5 +89,5 @@
 
 /*
- *  BASEPRIÌæ¾
+ *  BASEPRIの取得
  */
 Inline uint32_t
@@ -103,5 +99,5 @@
 
 /*
- *  CONTROLÌZbg
+ *  CONTROLのセット
  */
 Inline void
@@ -113,5 +109,5 @@
 
 /*
- *  CONTROLÌæ¾
+ *  CONTROLの取得
  */
 Inline uint32_t
@@ -123,5 +119,5 @@
 
 /*
- *  Xe[^XWX^iCPSRjÌ»ÝlÌÇoµ
+ *  ステータスレジスタ（CPSR）の現在値の読出し
  */
 Inline uint32_t
Index: ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_kernel.h
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_kernel.h	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_kernel.h	(revision 95)
@@ -6,36 +6,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id: prc_kernel.h 1304 2008-08-27 07:28:36Z ertl-honda $
@@ -43,9 +39,9 @@
 
 /*
- *		kernel.hÌvZbTË¶iARM-Mpj
+ *		kernel.hのプロセッサ依存部（ARM-M用）
  *
- *  ±ÌCN[ht@CÍCtarget_kernel.hiÜ½ÍC»±©çCN
- *  [h³êét@CjÌÝ©çCN[h³êéD¼Ìt@C©ç
- *  ¼ÚCN[hµÄÍÈçÈ¢D
+ *  このインクルードファイルは，target_kernel.h（または，そこからインク
+ *  ルードされるファイル）のみからインクルードされる．他のファイルから
+ *  直接インクルードしてはならない．
  */
 
@@ -54,10 +50,10 @@
 
 /*
- *  T|[g·é@\Ìè`
+ *  サポートする機能の定義
  */
-#define TOPPERS_TARGET_SUPPORT_DIS_INT            /* dis_intðT|[g·é */
-#define TOPPERS_TARGET_SUPPORT_ENA_INT            /* ena_intðT|[g·é */
+#define TOPPERS_TARGET_SUPPORT_DIS_INT            /* dis_intをサポートする */
+#define TOPPERS_TARGET_SUPPORT_ENA_INT            /* ena_intをサポートする */
 
-#define TMAX_INTPRI		(-1)		/* ÝDæxÌÅåliÅálj*/
+#define TMAX_INTPRI		(-1)		/* 割込み優先度の最大値（最低値）*/
 
 #ifndef TOPPERS_MACRO_ONLY
Index: ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_sil.h
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_sil.h	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_sil.h	(revision 95)
@@ -6,36 +6,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id: prc_sil.h 1304 2008-08-27 07:28:36Z ertl-honda $
@@ -43,5 +39,5 @@
 
 /*
- *   sil.hÌvZbTË¶iARM-Mpj
+ *   sil.hのプロセッサ依存部（ARM-M用）
  */
 
@@ -52,5 +48,5 @@
 
 /*
- *  NMIð­·×ÄÌÝÌÖ~
+ *  NMIを除くすべての割込みの禁止
  */
 Inline bool_t
@@ -79,5 +75,5 @@
 
 /*
- *  SÝbNóÔÌ§ä
+ *  全割込みロック状態の制御
  */
 #define SIL_PRE_LOC      bool_t  TOPPERS_locked
@@ -86,5 +82,5 @@
 
 /*
- *  GfBAÌè`
+ *  エンディアンの定義
  */
 
Index: ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_stddef.h
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_stddef.h	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_stddef.h	(revision 95)
@@ -6,36 +6,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id: prc_stddef.h 1304 2008-08-27 07:28:36Z ertl-honda $
@@ -43,9 +39,9 @@
 
 /*
- *  t_stddef.hÌvZbTË¶iARM-Mpj
+ *  t_stddef.hのプロセッサ依存部（ARM-M用）
  *
- *  ±ÌCN[ht@CÍCtarget_stddef.hiÜ½ÍC»±©çCN
- *  [h³êét@CjÌÝ©çCN[h³êéD¼Ìt@C©ç
- *  ¼ÚCN[hµÄÍÈçÈ¢D
+ *  このインクルードファイルは，target_stddef.h（または，そこからインク
+ *  ルードされるファイル）のみからインクルードされる．他のファイルから
+ *  直接インクルードしてはならない．
  */
 
@@ -54,11 +50,11 @@
 
 /*
- *  ^[Qbgð¯Ê·é½ßÌ}NÌè`
+ *  ターゲットを識別するためのマクロの定義
  */
-#define TOPPERS_ARM_M           /* vZbTªÌ */
+#define TOPPERS_ARM_M           /* プロセッサ略称 */
 
 /*
- *  X^bNÌ^
- *  ARMÅÍCX^bNð8byte«EÉzu·éKvª é
+ *  スタックの型
+ *  ARMでは，スタックを8byte境界に配置する必要がある
  */
 #define TOPPERS_STK_T  long long
Index: ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_support.S
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_support.S	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_support.S	(revision 95)
@@ -7,48 +7,43 @@
  *  Copyright (C) 2010 by Meika Sugimoto
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  */
 
 /*
- *  vZbTË¶W
-[ AZu¾êiARM-Mpj
+ *  プロセッサ依存モジュール アセンブリ言語部（ARM-M用）
  */
 
 #define TOPPERS_MACRO_ONLY
-#define UINT_C(val)		(val)		/* uint_t^Ìèðìé}N */
-#define ULONG_C(val)	(val)		/* ulong_t^Ìèðìé}N */
-#define CAST(type, val)	(val)		/* ^LXgðs¤}N */
+#define UINT_C(val)		(val)		/* uint_t型の定数を作るマクロ */
+#define ULONG_C(val)	(val)		/* ulong_t型の定数を作るマクロ */
+#define CAST(type, val)	(val)		/* 型キャストを行うマクロ */
 
 #include "kernel_impl.h"
@@ -59,13 +54,13 @@
 
 /*
- *  OQÆ
+ *  外部参照
  */
 	.global		intnest
 
 /*
- *  CPUáOGg
+ *  CPU例外エントリ
  *
- *  ÝGgÆÌàeÍ¯¾ªCOÌíÞªÙÈé½ßC
- *  ª¯Ä¢éD
+ *  割込みエントリと処理の内容は同等だが，ログの種類が異なるため，
+ *  分けている．
  */
 	.align 2
@@ -76,9 +71,9 @@
 exc_entry:
 	/*
-	 *  áO/Ýª­¶·éÆC­¶ÉANeBuÈX^bNÉXN
-	 *  b`WX^ªÛ¶³êéD
-	 *  ±ÌàeÉÁ¦ÄCCPUáOnhÖÌîñÆµÄCbasepri ÌlÆC
-	 *  EXC_RETURNÌîñðÁ¦ÄÛ¶·éDbasepriÌlÍCCPUáO©çÌ
-	 *  ^[ÉÝDæx}XNÌlð³Éß·½ßÉàp¢çêéD
+	 *  例外/割込みが発生すると，発生時にアクティブなスタックにスクラ
+	 *  ッチレジスタ等が保存される．
+	 *  この内容に加えて，CPU例外ハンドラへの情報として，basepri の値と，
+	 *  EXC_RETURNの情報を加えて保存する．basepriの値は，CPU例外からの
+	 *  リターン時に割込み優先度マスクの値を元に戻すためにも用いられる．
 	 *
 	 *   -----------
@@ -107,16 +102,16 @@
 
 	/*
-	 *  Ý­¶ÌÝDæx}XNðX^bNÉÛ¶·é½ßæ¾
-	 */
-	mrs   r2, basepri			/* baepriÌlðæ¾ */
-	push  {r2}					/* Ý­¶ÌÝDæx}XNðÏÞ */
-	push  {lr}					/* EXC_RETURN ðÏÞ			  */ 
-	mov   r0, sp				/* CPUáOnhÖÌøÆÈé */
-	
-	ldr   r1 , =lock_flag		/* CPUbNtOðÛ¶ */
+	 *  割込み発生時の割込み優先度マスクをスタックに保存するため取得
+	 */
+	mrs   r2, basepri			/* baepriの値を取得 */
+	push  {r2}					/* 割込み発生時の割込み優先度マスクを積む */
+	push  {lr}					/* EXC_RETURN を積む			  */ 
+	mov   r0, sp				/* CPU例外ハンドラへの引数となる */
+	
+	ldr   r1 , =lock_flag		/* CPUロックフラグを保存 */
 	ldr   r1 , [r1]
 	push  {r1}
 	
-	/* ÝlXgÌÁZ */
+	/* 割込みネスト数の加算 */
 	ldr r1 , =intnest
 	ldr r3 , [r1]
@@ -125,8 +120,8 @@
 
 	/*
-	 *  ¤Ê
+	 *  共通処理
 	 */
 exc_entry_2:
-	mrs   r3, ipsr               /* nhAhXðæ¾ */
+	mrs   r3, ipsr               /* ハンドラアドレスを取得 */
 	ldr   r1, =_kernel_exc_tbl
 	ldr   r2, [r1, r3, lsl #2]
@@ -134,19 +129,19 @@
 #ifdef LOG_EXC_ENTER
 	push  {r0, r2, r3}
-	mov   r0, r3                 /* áOÔðp[^É  */
-	bl    log_exc_enter          /* log_exc_enterðÄÑo· */
+	mov   r0, r3                 /* 例外番号をパラメータに  */
+	bl    log_exc_enter          /* log_exc_enterを呼び出す */
 	pop   {r0, r2, r3}
 #endif /* LOG_EXC_ENTER */
 
 #ifdef LOG_EXC_LEAVE
-	push  { r3 }                   /* áOÔðX^bNÖ    */
+	push  { r3 }                   /* 例外番号をスタックへ    */
 #endif /* LOG_EXC_LEAVE */
 
 	/*
-	 *  CPUáOnhÌÄÑoµ
+	 *  CPU例外ハンドラの呼び出し
 	 */
 	blx   r2
 
-	/* CPUbNtOð³Éß· */
+	/* CPUロックフラグを元に戻す */
 	pop   {r0}
 	ldr   r1 , =lock_flag
@@ -154,6 +149,6 @@
 	
 #ifdef LOG_EXC_LEAVE
-	pop   { r0 }                   /* áOÔðøÉ        */
-	bl    log_exc_leave          /* log_exc_leaveðÄÑo· */
+	pop   { r0 }                   /* 例外番号を引数に        */
+	bl    log_exc_leave          /* log_exc_leaveを呼び出す */
 #endif /* LOG_EXC_LEAVE */
 	
@@ -162,5 +157,5 @@
 
 /*
- *  ÝGg
+ *  割込みエントリ
  */
 	.align 2
@@ -171,16 +166,16 @@
 int_entry:
 	/*
-	 *	Ý­¶ÌÝDæx}XNðX^bNÉÛ¶·é½ßæ¾
-	 */
-	mrs   r2, basepri			  /* baepriÌlðæ¾ */
-	push  {r2}					 /* Ý­¶ÌÝDæx}XNðÏÞ */
-	push  {lr}					 /* EXC_RETURN ðÏÞ			  */ 
-	mov   r0, sp				 /* ¢è`ÌÝª­¶µ½êÌîñÆ·é */
-	
-	/*
-	 *	¤Ê
+	 *	割込み発生時の割込み優先度マスクをスタックに保存するため取得
+	 */
+	mrs   r2, basepri			  /* baepriの値を取得 */
+	push  {r2}					 /* 割込み発生時の割込み優先度マスクを積む */
+	push  {lr}					 /* EXC_RETURN を積む			  */ 
+	mov   r0, sp				 /* 未定義の割込みが発生した場合の情報とする */
+	
+	/*
+	 *	共通処理
 	 */
 int_entry_2:
-	/* ÝlXgÌÁZ */
+	/* 割込みネスト数の加算 */
 	ldr r1 , =intnest
 	ldr r3 , [r1]
@@ -188,5 +183,5 @@
 	str r3 , [r1]
 	
-	mrs   r3, ipsr				 /* nhAhXðæ¾ */
+	mrs   r3, ipsr				 /* ハンドラアドレスを取得 */
 	ldr   r1, =_kernel_exc_tbl
 	ldr   r2, [r1, r3, lsl #2]
@@ -194,52 +189,52 @@
 #ifdef LOG_INH_ENTER
 	push  {r0,r2,r3}
-	mov   r0, r3                 /* ÝÔðp[^É  */
-	bl    log_inh_enter          /* log_inh_enterðÄÑo· */
+	mov   r0, r3                 /* 割込み番号をパラメータに  */
+	bl    log_inh_enter          /* log_inh_enterを呼び出す */
 	pop   { r0,r2,r3 }
 #endif /* LOG_INH_ENTER */
 
 #ifdef LOG_INH_LEAVE
-	push  { r3 }                   /* ÝÔðX^bNÖ    */
+	push  { r3 }                   /* 割込み番号をスタックへ    */
 #endif /* LOG_INH_LEAVE */
 
 	/*
-	 *  CPUáOnhÌÄÑoµ
+	 *  CPU例外ハンドラの呼び出し
 	 */
 	blx   r2
 	
 #ifdef LOG_INH_LEAVE
-	pop   { r0 }                   /* ÝÔðøÉ        */
-	bl    log_inh_leave          /* log_inh_leaveðÄÑo· */
+	pop   { r0 }                   /* 割込み番号を引数に        */
+	bl    log_inh_leave          /* log_inh_leaveを呼び出す */
 #endif /* LOG_INH_LEAVE */
 
 /*
- *  Ý/áOoû
+ *  割込み/例外出口
  *
- *  ret_exc/ret_intÍCCPUáO/Ýnh©çßÁ½¼ãÉÀs·é
- *  [`Å éD
+ *  ret_exc/ret_intは，CPU例外/割込みハンドラから戻った直後に実行する
+ *  ルーチンである．
  */
 ret_exc:
 ret_int:
 	/*
-	 *  ÝbNóÔÆ·éD±Ì_ÅÍCCPUbNóÔÉÍÈçÈ¢
-	 * ibasepriÆlock_flagÆsaved_iipmÍXVµÈ¢jD
-	 *
-	 *  ÝbNóÔÆ·éÌÍCßèæÌReLXgÌ`FbNÆC
-	 *  ßèæªñ^XNReLXgÅ Á½êÌ^[ðAg~bN
-	 *  És¤½ßÅ éDbsepriðCPUbNÌlÉ·é±ÆÅàAg~b
-	 *  NÈ`FbNÆAÍÂ\Å éªCÝ©ç^[µÄàC
-	 *  basepri ÌÝèàeÍ³ÉßçÈ¢½ßCgp·é±ÆªÅ«È¢D 
-	 *  êûCFAULTMASKÍCÝ©çÌ^[ÉæÁÄC'0'ÉN
-	 *  A³êéD
+	 *  割込みロック状態とする．この時点では，CPUロック状態にはならない
+	 * （basepriとlock_flagとsaved_iipmは更新しない）．
+	 *
+	 *  割込みロック状態とするのは，戻り先のコンテキストのチェックと，
+	 *  戻り先が非タスクコンテキストであった場合のリターンをアトミック
+	 *  に行うためである．bsepriをCPUロックの値にすることでもアトミッ
+	 *  クなチェックと復帰は可能であるが，割込みからリターンしても，
+	 *  basepri の設定内容は元に戻らないため，使用することができない． 
+	 *  一方，FAULTMASKは，割込みからのリターン処理によって，'0'にクリ
+	 *  アされる．
 	 */
 	cpsid f
 	
 	/*
-	 *  ßèæÌReLXgÌ»è
+	 *  戻り先のコンテキストの判定
 	 * 
-	 *  intnestª0©Ç¤©Å»f·é
+	 *  intnestが0かどうかで判断する
 	 *  
 	 */
-	/* ÝlXgÌ¸Z */
+	/* 割込みネスト数の減算 */
 	ldr r1 , =intnest
 	ldr r3 , [r1]
@@ -251,45 +246,45 @@
 	
 	/*
-	 *  êiÚÌÝÌoû
+	 *  一段目の割込みの出口処理
 	 */
 ret_int_1:
 	/*
-	 *  ±±ÉÍÝbNóÔiFAULTMASKªZbgj³ê½óÔÅéD
-	 *  Thread[h©çÌ^[Éæè©®IÉÝbNðóÔÉÈéD
-	 *  ÝDæx}XNÍÝOÉóÔÉß·D
+	 *  ここには割込みロック状態（FAULTMASKがセット）された状態で来る．
+	 *  Threadモードからのリターンにより自動的に割込みロック解除状態になる．
+	 *  割込み優先度マスクは割込み前に状態に戻す．
 	 */ 
 	pop		{ r2 }
 	pop		{ r1 }
-	msr   basepri, r1			  /* ÝDæx}XNðÝOÉóÔÖ */
-	bx	  r2					  /* ^[ */
+	msr   basepri, r1			  /* 割込み優先度マスクを割込み前に状態へ */
+	bx	  r2					  /* リターン */
 	
 ret_int_2:
-	ldr   r0, =reqflg             /* reqflgªfalseÈç»ÌÜÜßé */
+	ldr   r0, =reqflg             /* reqflgがfalseならそのまま戻る */
 	ldr   r1, [r0]
 	cmp   r1 , #0
-	beq    ret_int_1           /* falseÈçret_int_1Ö           */
+	beq    ret_int_1           /* falseならret_int_1へ           */
 ret_int_3:
-	mov   r1, #0                   /* reqflgðfalseÉ */
+	mov   r1, #0                   /* reqflgをfalseに */
 	str   r1, [r0]
 	
 	/*
-	 *  CPUbNóÔÉÚs·éD
-	 *
-	 *  J[lÌÇàÌÝðÖ~·éæ¤ÉbasepriðÝèµC
-	 *  lock_flagðXV·éD
-	 *  ±Ì_ÅCPUbNóÔÆ·éÌÍCdispatcherÖªò·éÉ
-	 *  CPUbNóÔÉÈÁÄ¢éKvª é½ßÅ éD
-     *  È¨C±ÌÌãCThread[hÖÌÚsðsÈ¤½ßCÝ
-     *  bNóÔ(FAULTMASKð"1")ÍÛ·éD
-	 */
-	ldr   r1, =IIPM_LOCK		  /* CPUbNóÔ */ 
+	 *  CPUロック状態に移行する．
+	 *
+	 *  カーネルの管理内の割込みを禁止するようにbasepriを設定し，
+	 *  lock_flagを更新する．
+	 *  この時点でCPUロック状態とするのは，dispatcherへ分岐する時に
+	 *  CPUロック状態になっている必要があるためである．
+     *  なお，この処理の後，Threadモードへの移行処理を行なうため，割込み
+     *  ロック状態(FAULTMASKを"1")は保持する．
+	 */
+	ldr   r1, =IIPM_LOCK		  /* CPUロック状態 */ 
 	msr   basepri, r1
-	mov   r1, #0x01 			  /* lock_flag ð trueÉ */
+	mov   r1, #0x01 			  /* lock_flag を trueに */
 	ldr   r0, =lock_flag 
 	str   r1, [r0]
 	
 	/*
-	 *  lrðæèo·D½¾µxfBXpb`ÌÛÉàg¤½ßC
-	 *  X^bN|C^ÍìµÈ¢D
+	 *  lrを取り出す．ただし遅延ディスパッチの際にも使うため，
+	 *  スタックポインタは操作しない．
 	 */
 	
@@ -297,27 +292,27 @@
 	
 	/*
-	 *  Thread[hÖÚs·éD
-	 *
-	 *  dispatcherâcall_texrnðÄÑo·êÍCThread[hÅ éK
-	 *  vª é½ßCPSPX^bNãÉ_~[ÌáOt[ðu¢ÄC
-	 *  [IÉÝnh©ç^[·éD
-	 *  ^[Æ¯ÉFAULTMASKª©®IÉNA³êCJ[lÇOÌ
-	 *  ÝªÂ³êéD
+	 *  Threadモードへ移行する．
+	 *
+	 *  dispatcherやcall_texrnを呼び出す場合は，Threadモードである必
+	 *  要があるため，PSPスタック上にダミーの例外フレームを置いて，
+	 *  擬似的に割込みハンドラからリターンする．
+	 *  リターンと同時にFAULTMASKが自動的にクリアされ，カーネル管理外の
+	 *  割込みが許可される．
 	 */
 	ldr   r0, =ret_int_4		  /* PC   */
-	ldr   r1, =EPSR_T			  /* xPSR(Trbgª'1'Å éKvª é) */
-	stmfd sp!, {r0-r1}			  /* _~[t[ðX^bNãÉÏÞ	*/
-	sub   sp, #(EXC_FRAME_SIZE - (4*2)) /* r0-r3,r12,lrÌàeÍÝè·éKvªÈ¢ */
-	bx	  r2					  /* Thread[hÖÚs */
+	ldr   r1, =EPSR_T			  /* xPSR(Tビットが'1'である必要がある) */
+	stmfd sp!, {r0-r1}			  /* ダミーフレームをスタック上に積む	*/
+	sub   sp, #(EXC_FRAME_SIZE - (4*2)) /* r0-r3,r12,lrの内容は設定する必要がない */
+	bx	  r2					  /* Threadモードへ移行 */
     
 ret_int_4:
-	bl    search_schedtsk		/* ÝÅN®³ê½^XNðÀs */
+	bl    search_schedtsk		/* 割込み中で起動されたタスクを実行 */
 	bl    run_task
 ret_int_r:
-	svc   0 				   /* SVCÌÄÑoµ */
-	
-/*
- *  xfBXpb`©çÌAÉêIÉÝ
- *  ReLXgÉÚs·é½ßÌSVCR[nh
+	svc   0 				   /* SVCの呼び出し */
+	
+/*
+ *  遅延ディスパッチからの復帰時に一時的に割込み
+ *  コンテキストに移行するためのSVCコールハンドラ
  */
 
@@ -328,18 +323,18 @@
 kernel_svc_handler:
 	/*
-	 *  Ý©çÌ^[ÉæèCCPUbNðóÔÉÚs·éæ
-	 *  ¤õ·éD
-	 */
-	cpsid f 								/* ÝbNóÔÖ */
-	ldr		r2 , [ sp , #(EXC_FRAME_SIZE) ]	/* lrðX^bN©çæ¾	*/
-	add		sp, #EXC_FRAME_SIZE + 8			/* X^bNðÌÄé	*/
+	 *  割込み処理からのリターンにより，CPUロック解除状態に移行するよ
+	 *  う準備する．
+	 */
+	cpsid f 								/* 割込みロック状態へ */
+	ldr		r2 , [ sp , #(EXC_FRAME_SIZE) ]	/* lrをスタックから取得	*/
+	add		sp, #EXC_FRAME_SIZE + 8			/* スタックを捨てる	*/
 	mov		r0, #0
-	ldr		r1, =lock_flag					/* CPUbNðóÔÖ */
+	ldr		r1, =lock_flag					/* CPUロック解除状態へ */
 	str		r0, [r1]
 	msr		basepri , r0 
-	bx		r2								/* ^[	  */
-
-/*
- *  fBXpb`Ì®ìJn
+	bx		r2								/* リターン	  */
+
+/*
+ *  ディスパッチャの動作開始
  */
 	.align	2
@@ -349,26 +344,26 @@
 start_dispatch:
 	/*
-	 *  ±Ì[`ÍCJ[lN®ÉC·×ÄÌÝðÖ~µ½óÔ
-	 * iÝbNóÔÆ¯jÅÄÑo³êéDÜ½CÝ[hiñ
-	 *  ^XNReLXgÆ¯jÅÄÑo³êé±ÆðzèµÄ¢éD
-	 *
-	 *  prc_initializeÅClock_flagðtrueÉCsaved_iipmðIIPM_ENAALLÉ
-	 *  ú»µÄ¢é½ßCJ[lÇOÌÝðÂ·é±ÆÅC
-	 *  CPUbNóÔEifãÌjÝDæx}XNSðóÔÉÈéD
-	 *  Ü½Ctask_initializeÅdisdspðfalseÉú»µÄ¢é½ßCfB
-	 *  Xpb`ÂóÔÉÈÁÄ¢éD
-	 */
-	ldr   r0,=istkpt              /* MSPðú»   */
-	ldr   r1,[r0]                 /* start_dispatchÄÑoµÉÄÑoµpÉ */
-	msr   msp, r1                 /* gpµÄ¢é½ßú»·é             */
-	ldr   r1, =IIPM_LOCK          /* J[lÇàÌÝðÖ~ */
+	 *  このルーチンは，カーネル起動時に，すべての割込みを禁止した状態
+	 * （割込みロック状態と同等）で呼び出される．また，割込みモード（非
+	 *  タスクコンテキストと同等）で呼び出されることを想定している．
+	 *
+	 *  prc_initializeで，lock_flagをtrueに，saved_iipmをIIPM_ENAALLに
+	 *  初期化しているため，カーネル管理外の割込みを許可することで，
+	 *  CPUロック状態・（モデル上の）割込み優先度マスク全解除状態になる．
+	 *  また，task_initializeでdisdspをfalseに初期化しているため，ディ
+	 *  スパッチ許可状態になっている．
+	 */
+	ldr   r0,=istkpt              /* MSPを初期化   */
+	ldr   r1,[r0]                 /* start_dispatch呼び出し時に呼び出し用に */
+	msr   msp, r1                 /* 使用しているため初期化する             */
+	ldr   r1, =IIPM_LOCK          /* カーネル管理内の割込みを禁止 */
 	msr   basepri, r1 
-	cpsie f                       /* J[lÇOÌÝðÂ */
+	cpsie f                       /* カーネル管理外の割込みを許可 */
 	b	  dispatcher
 
 /*
- *  J[lÌI¹ÌÄoµ
+ *  カーネルの終了処理の呼出し
  *
- *  X^bNðñ^XNReLXgpÉØèÖ¦D
+ *  スタックを非タスクコンテキスト用に切り替え．
  *  
  */
@@ -379,9 +374,9 @@
 	.type call_exit_kernel, function
 call_exit_kernel:
-	b     exit_kernel       /* J[lÌI¹ðÄÔ */
-
-
-/*
- *  ÷­ÔÒ¿
+	b     exit_kernel       /* カーネルの終了処理を呼ぶ */
+
+
+/*
+ *  微少時間待ち
  */
 	.text
Index: ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_test.h
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_test.h	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_test.h	(revision 95)
@@ -6,36 +6,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id: prc_test.h 1304 2008-08-27 07:28:36Z ertl-honda $
@@ -43,5 +39,5 @@
 
 /*
- *		eXgvOÌ`bvË¶è`iARM-Mpj
+ *		テストプログラムのチップ依存定義（ARM-M用）
  */
 
@@ -50,5 +46,5 @@
 
 /*
- *  `bvÅ¤ÊÈè`
+ *  チップで共通な定義
  */
 
Index: ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_timer.c
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_timer.c	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_timer.c	(revision 95)
@@ -7,36 +7,32 @@
  *  Copyright (C) 2010 by Meika Sugimoto
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id: prc_timer.c 1304 2008-08-27 07:28:36Z ertl-honda $
@@ -44,5 +40,5 @@
 
 /*
- *  ^C}hCoiSYSTICpj
+ *  タイマドライバ（SYSTIC用）
  */
 #include <sil.h>
@@ -52,5 +48,5 @@
 
 /*
- *  ^C}ÌN®
+ *  タイマの起動処理
  */
 void
@@ -61,5 +57,5 @@
 
 #ifdef SYSTIC_USE_CALIBRATION
-	/* CALIBRATIONWX^Ìlðgp */
+	/* CALIBRATIONレジスタの値を使用 */
 	cyc = (sil_rew_mem((void *)SYSTIC_CALIBRATION) & SYSTIC_TENMS) / 10;
 #else 
@@ -67,5 +63,5 @@
 #endif /* SYSTIC_USE_CALIBRATION */
 
-	/* â~ */
+	/* 停止 */
 	tmp = sil_rew_mem((void *)SYSTIC_CONTROL_STATUS);
 	tmp &= ~SYSTIC_ENABLE;
@@ -78,8 +74,8 @@
 
 #ifdef SYSTIC_USE_STCLK
-	/* ONbNÌgp */
+	/* 外部クロックの使用 */
 	tmp |= SYSTIC_ENABLE;
 #else
-	/* vZbTNbNÌgp */
+	/* プロセッサクロックの使用 */
 	tmp |= SYSTIC_ENABLE|SYSTIC_CLKSOURCE;
 #endif /* SYSTIC_USE_STCLK */
@@ -89,24 +85,24 @@
 
 /*
- *  ^C}Ìâ~
+ *  タイマの停止処理
  */
 void
 target_timer_terminate(intptr_t exinf)
 {
-	/* ^C}ðâ~ */
+	/* タイマを停止 */
 	sil_wrw_mem((void*)SYSTIC_CONTROL_STATUS, 0x00);
 }
 
 /*
- *  ^C}Ýnh
+ *  タイマ割込みハンドラ
  */
 void
 target_timer_handler(void)
 {
-	/* probe_int Ì½ßCCOUNTFLAGðNA */
+	/* probe_int のため，COUNTFLAGをクリア */
 	(void)sil_rew_mem((void *)SYSTIC_CONTROL_STATUS);
 	
 	i_begin_int(INTNO_TIMER);
-	signal_time();                    /* ^CeBbNÌ */
+	signal_time();                    /* タイムティックの供給 */
 	i_end_int(INTNO_TIMER);
 }
Index: ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_timer.cfg
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_timer.cfg	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_timer.cfg	(revision 95)
@@ -4,6 +4,5 @@
 
 /*
- *		^C}hCoÌRtBM
-[Vt@C
+ *		タイマドライバのコンフィギュレーションファイル
  */
 ATT_INI({ TA_NULL, 0, target_timer_initialize });
Index: ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_timer.h
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_timer.h	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_timer.h	(revision 95)
@@ -6,36 +6,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id: prc_timer.h 1304 2008-08-27 07:28:36Z ertl-honda $
@@ -43,5 +39,5 @@
 
 /*
- *  ^C}hCoiSYSTICpj
+ *  タイマドライバ（SYSTIC用）
  */
 
@@ -52,18 +48,18 @@
 
 /*
- *  ^C}Ýnho^Ì½ßÌè
+ *  タイマ割込みハンドラ登録のための定数
  */
-#define INHNO_TIMER     IRQNO_SYSTICK /* ÝnhÔ */
-#define INTNO_TIMER     IRQNO_SYSTICK /* ÝÔ */
+#define INHNO_TIMER     IRQNO_SYSTICK /* 割込みハンドラ番号 */
+#define INTNO_TIMER     IRQNO_SYSTICK /* 割込み番号 */
 
 #ifndef TOPPERS_MACRO_ONLY
 
 /*
- *  ^C}lÌà\»Ì^
+ *  タイマ値の内部表現の型
  */
 typedef uint32_t    CLOCK;
 
 /*
- *  ^C}lÌà\»Æ~bEÊbPÊÆÌÏ·
+ *  タイマ値の内部表現とミリ秒・μ秒単位との変換
  *
  */
@@ -72,24 +68,24 @@
 
 /*
- *  ÝèÅ«éÅåÌ^C}üúiPÊÍà\»j
+ *  設定できる最大のタイマ周期（単位は内部表現）
  */
 #define MAX_CLOCK    ((CLOCK) 0x00ffffffU)
 
 /*
- *  ^C}ÌN®
+ *  タイマの起動処理
  *
- *  ^C}ðú»µCüúIÈ^C}Ývð­¶³¹éD
+ *  タイマを初期化し，周期的なタイマ割込み要求を発生させる．
  */
 extern void target_timer_initialize(intptr_t exinf);
 
 /*
- *  ^C}Ìâ~
+ *  タイマの停止処理
  *
- *  ^C}Ì®ìðâ~³¹éD
+ *  タイマの動作を停止させる．
  */
 extern void target_timer_terminate(intptr_t exinf);
 
 /*
- *  ^C}Ì»ÝlÌÇoµ
+ *  タイマの現在値の読出し
  */
 Inline CLOCK
@@ -100,5 +96,5 @@
 
 /*
- *  ^C}ÝvÌ`FbN
+ *  タイマ割込み要求のチェック
  */
 Inline bool_t
@@ -109,5 +105,5 @@
 
 /*
- *  ^C}Ýnh
+ *  タイマ割込みハンドラ
  */
 extern void target_timer_handler(void);
Index: ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_user.txt
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_user.txt	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/prc_user.txt	(revision 95)
@@ -1,85 +1,84 @@
 =====================================================================
-                         ARM-MvZbTË¶
+                         ARM-Mプロセッサ依存部
                                   Last Modified: '13/04/07
 =====================================================================
 
 
-(1) ÎµÄ¢é^[QbgVXeÌíÞE\¬
+(1) 対応しているターゲットシステムの種類・構成
 
-ARM-MË¶ÍCARMVx-MA[LeN`ð^[QbgÆµÄ¢éDARMVx-MÍC
-ARMÆÍÙÈèCARM½ßðÀsÅ«È¢½ßCARMË¶Æª¯Ä¢éD
+ARM-M依存部は，ARMVx-Mアーキテクチャをターゲットとしている．ARMVx-Mは，
+ARMとは異なり，ARM命令を実行できないため，ARM依存部と分けている．
 
 
-(2) gp·éJ­Â«Æ®ìØµ½ðio[WCIvVj
+(2) 使用する開発環境と動作検証した条件（バージョン，オプション等）
 
-J[lÍGCCðp¢ÄRpC·éD®ìmFµ½o[WÍe^[Q
-bgË¶ÌhL
-gÉLÚ·éD
+カーネルはGCCを用いてコンパイルする．動作確認したバージョンは各ターゲ
+ット依存部のドキュメントに記載する．
 
 
-(3) ^[Qbgè`ÌKè
+(3) ターゲット定義事項の規定
 
-(3-1) f[^^ÉÖ·éKè
+(3-1) データ型に関する規定
 
-f[^^Í arch/gcc/tool_stddef.h Åè`³êÄ¢éàeÅCfloat^Æ
-double^ÍC»ê¼êIEEE754ÌP¸x®¬_Æ{¸x®¬_
-Å éD
+データ型は arch/gcc/tool_stddef.h で定義されている内容で，float型と
+double型は，それぞれIEEE754準拠の単精度浮動小数点数と倍精度浮動小数点
+数である．
 
-(3-2) ÝÉÖ·éKè
+(3-2) 割込み処理に関する規定
 
-ÝnhÔÆÝÔÌÄC¼ÒÌÎ
+○割込みハンドラ番号と割込み番号の割当て，両者の対応
 
-ÝnhÔÆÝÔÍCáO­¶ÉIPSRÉZbg³êéáOÔ
-ðp¢éDSYSTICKÍ15ÔÅCOÝÍ16Ô©çÌÔªèt¯çê
-Ä¢éD
+割込みハンドラ番号と割込み番号は，例外発生時にIPSRにセットされる例外番
+号を用いる．SYSTICKは15番で，外部割込みは16番からの番号が割り付けられ
+ている．
 
-ÝDæxÌiKiTMIN_INTPRIÌljC»ÌÝèû@
+○割込み優先度の段階数（TMIN_INTPRIの値），その設定方法
 
-ÝDæxÌiKÍCSoCÉn[hEFAIÉT|[g·éÝDæ
-xrbgªÙÈéÌÅC^[QbgË¶ÉÙÈéD^[QbgË¶Å
-ÍCÝDæxÌrbgiTBITW_IPRIjÆ»ÌÝDæxÌTuDæ
-xÌrbgiTBITW_SUBPRIjðè`·éDerbgÌlÆÝèÂ\ÈDæ
-xÌÍÍÍÌÊèÅ éD
+割込み優先度の段階数は，SoC毎にハードウェア的にサポートする割込み優先
+度ビット幅が異なるので，ターゲット依存部毎に異なる．ターゲット依存部で
+は，割込み優先度のビット幅（TBITW_IPRI）とその割込み優先度中のサブ優先
+度のビット幅（TBITW_SUBPRI）を定義する．各ビット幅の値と設定可能な優先
+度の範囲は次の通りである．
 
-   -(2^(TBIW_IPRI)) + (2^TBITW_SUBIPRI)) ` -1
+   -(2^(TBIW_IPRI)) + (2^TBITW_SUBIPRI)) 〜 -1
 
-á¦ÎDæxÌrbg(TBITW_IPRI)ª8bitCTuDæxÌrbg
-(TBITW_SUBIPRI) ª1bitÌêÍC-254 ` -1 ÌÍÍÅ éD
+例えば優先度のビット幅(TBITW_IPRI)が8bit，サブ優先度のビット幅
+(TBITW_SUBIPRI) が1bitの場合は，-254 〜 -1 の範囲である．
 
-±ÌÍÍÅCJ[lÇàÌÝÌÅDæxiTMIN_INTPRIjð^[Q
-bgË¶ÅÝè·éD
+この範囲で，カーネル管理内の割込みの最高優先度（TMIN_INTPRI）をターゲ
+ット依存部で設定する．
 
-eÝÌÝDæxÍCCFG_INTÅTMIN_INTPRIÈãÌlðwè·éD
+各割込みの割込み優先度は，CFG_INTでTMIN_INTPRI以上の値を指定する．
 
-dis_intÆena_intÌT|[gÌL³C»Ì§À
+○dis_intとena_intのサポートの有無，その制限事項
 
-dis_intÆena_intðT|[g·éD§ÀÍÁÉÈ¢D
+dis_intとena_intをサポートする．制限事項は特にない．
 
-CFG_INTÌ§ÀÆg£i^[Qbgè`ÅgpÅ«éÝ®«j
+○CFG_INTの制限事項と拡張（ターゲット定義で使用できる割込み属性）
 
-CFG_INTÌ§ÀÍÈ­C^[Qbgè`ÅgpÂ\ÈÝ®«ÍÁÉÈ
-¢D
+CFG_INTの制限事項はなく，ターゲット定義で使用可能な割込み属性は特にな
+い．
 
-J[lÇOÌÝ
+○カーネル管理外の割込み
 
-J[lÇOÌÝðT|[g·éDwèû@ÍCÝDæxÌiK
-Åwèµ½CT|[g·éÝDæxÌÅliÅ¬ljæèC
-TMIN_INTPRIðå«­Ýè·éÆCTMIN_INTPRIæèlª¬¢iDæxjÈ
-ÝDæxðÝèµ½ÝðÝDæxÆµÄµ¤D
+カーネル管理外の割込みをサポートする．指定方法は，割込み優先度の段階数
+で指定した，サポートする割込み優先度の最高値（最小値）より，
+TMIN_INTPRIを大きく設定すると，TMIN_INTPRIより値が小い（高優先度）な割
+込み優先度を設定した割込みを割込み優先度として扱う．
 
-J[lÇOÌÝÍOSÀsàÖ~ÉÈé±ÆÍÈ­iµ§ÉÍÝ
-ÌoûÅ²­Z¢æÔÖ~³êéjCÝ­¶ÍCJ[lÌR[hðo
-R¹¸ÉÄÑo³êéD
+カーネル管理外の割込みはOS実行中も禁止になることはなく（厳密には割込み
+の出口でごく短い区間禁止される），割込み発生時は，カーネルのコードを経
+由せずに呼び出される．
 
-J[lÇOÌÝÉÎ·éCDEF_INH,CFG_INTÍT|[g·éD
+カーネル管理外の割込みに対する，DEF_INH,CFG_INTはサポートする．
 
-(3-3) CPUáOÉÖ·éKè
+(3-3) CPU例外処理に関する規定
 
-CPUáOnhÔ
+○CPU例外ハンドラ番号
 
-CPUáOnhÔÆµÄÍCáO­¶ÉIPSRÉZbg³êéCáOÔ
-ðp¢éDeáOÌáOÔÍÈºÌÊèÅ éD
+CPU例外ハンドラ番号としては，例外発生時にIPSRにセットされる，例外番号
+を用いる．各例外の例外番号は以下の通りである．
 
-        áO              áOÔ
+        例外              例外番号
   Reset                      1
   Non-makable Interrupt      2
@@ -92,65 +91,64 @@
   PendSV                    14
 
-È¨CResetÆCSVCallÉÂ¢ÄÍCJ[lªgp·é½ßC[U[Íg
-p·é±ÆªÅ«È¢D
+なお，Resetと，SVCallについては，カーネルが使用するため，ユーザーは使
+用することができない．
 
-(3-4) CPUbNEÝbN
+(3-4) CPUロック・割込みロック
 
-CPUbNÍCbasepriðTMIN_INTPRIÌDæxÌÝðÖ~·élÉÝè·
-éDÝbNÍCFAULTMASKð'1'ÉÝè·é±ÆÅÀ»µÄ¢éD
+CPUロックは，basepriをTMIN_INTPRIの優先度の割込みを禁止する値に設定す
+る．割込みロックは，FAULTMASKを'1'に設定することで実現している．
 
-(3-5) «\]¿pVXeÌQÆÉÖ·éKè
+(3-5) 性能評価用システム時刻の参照に関する規定
 
-get_utmðT|[g·éD¸xÉÖµÄÍC^[QbgÉÙÈéD
+get_utmをサポートする．精度に関しては，ターゲット毎に異なる．
 
-(3-6) X^[gAbv[`ÅÌú»àe
+(3-6) スタートアップルーチンでの初期化内容
 
-X^[gAbv[`ÍCThread[hÅÄÑo³êé±ÆðOñÆµÄ¢
-éDÀsãCÝbNóÔiFAULTMASKðZbgjÆ·éDÝbN
-óÔÍCJ[lÌú»I¹ÉÂ·éDX^[gAbv[`ÅC
-MSPðANeBuÈX^bNÆµCMSPÌàeðú»·é½ßÉÍCINIT_MSP
-ð^[QbgË¶Åè`·éD
+スタートアップルーチンは，Threadモードで呼び出されることを前提としてい
+る．実行後，割込みロック状態（FAULTMASKをセット）とする．割込みロック
+状態は，カーネルの初期化終了時に許可する．スタートアップルーチンで，
+MSPをアクティブなスタックとし，MSPの内容を初期化するためには，INIT_MSP
+をターゲット依存部で定義する．
 
-(3-7) xN^e[uItZbgÌú»
+(3-7) ベクタテーブルオフセットの初期化
 
-vZbTË¶Ìú»ÅCVector Table Offset Register ð^[Qb
-gË¶Ìú»[`ÅÝè·éDÈ¨CxN^[e[uÍC.vector
-ÌZNV®«ªtÁ³êÄ¢é½ßCJXNvgÅ±ÌZNV
-ðwèµÄzu·éD
+プロセッサ依存の初期化処理で，Vector Table Offset Register をターゲッ
+ト依存部の初期化ルーチンで設定する．なお，ベクターテーブルは，.vector
+のセクション属性が付加されているため，リンカスクリプトでこのセクション
+を指定して配置する．
 
 
-(4) ^C}hCoÖAÌîñ
+(4) タイマドライバ関連の情報
 
-J[lÌ^CeBbNÆµÄCSYSTICðgp·éêÍCprc_config.c 
-ðRpCÎÛÆµCRtBM
-[Vt@CÉ prc_config.cfg 
-ðwè·é±ÆD
+カーネルのタイムティックとして，SYSTICを使用する場合は，prc_config.c 
+をコンパイル対象とし，コンフィギュレーションファイルに prc_config.cfg 
+を指定すること．
 
-üúÌî{Í1msecÆ·éDüúðCALIBRATIONWX^ÌÝèàeð³ÉvZ
-·éêÍCSYSTIC_USE_CALIBRATION ðè`·éDCALIBRATIONWX^ðp
-¢È¢êÍC1msecüúªÌJEglð TIMER_CLOCK ÉÝè·éDNb
-N\[XÆµÄCONbNðp¢éêÍCSYSTIC_USE_STCLK ðp¢éD
+周期の基本は1msecとする．周期をCALIBRATIONレジスタの設定内容を元に計算
+する場合は，SYSTIC_USE_CALIBRATION を定義する．CALIBRATIONレジスタを用
+いない場合は，1msec周期分のカウント値を TIMER_CLOCK に設定する．クロッ
+クソースとして，外部クロックを用いる場合は，SYSTIC_USE_STCLK を用いる．
 
 
-(5) ^[QbgË¶ÅÌÝèÚ
+(5) ターゲット依存部での設定項目
 
-^[QbgË¶ÅÍÈºÌ}Nðè`·éKvª éD
+ターゲット依存部では以下のマクロを定義する必要がある．
 
-   ¥TMAX_INTNO     : ÝÔÌÅål(ÊíÌÝÔ + 15)
-   ¥TBITW_IPRI     : ÝDæxÌrbg
-   ¥TBITW_SUBIPRI  : ÝDæxÌrbgÌTuDæxÌrbg
-   ¥TMIN_INTPRI    : ÝDæxÌÅ¬liÅlj
-   ¥TIC_NUME       : ^CeBbNÌüúÌªq
-   ¥TIC_DENO       : ^CeBbNÌüúÌªê
-   ¥TIMER_CLOCK    : ^C}lÌà\»Æ~bPÊÆÌÏ·
-   ¥INTPRI_TIMER   : ^C}ÝÝDæx
-   ¥INTATR_TIMER   : ^C}ÝÌÝ®«
-   ¥INIT_MSP       : X^[gAbv[`ÅMSPðú»·éêÍè`
-   ¥DEFAULT_ISTKSZ : X^bNTCYi8bytePÊÅwèj
-   ¥SIL_DLY_TIM1   : ÷­ÔÒ¿Ì½ßÌè`
-   ¥SIL_DLY_TIM2   : ÷­ÔÒ¿Ì½ßÌè`
+   ･TMAX_INTNO     : 割込み番号の最大値(通常の割込み番号 + 15)
+   ･TBITW_IPRI     : 割込み優先度のビット幅
+   ･TBITW_SUBIPRI  : 割込み優先度のビット幅中のサブ優先度のビット幅
+   ･TMIN_INTPRI    : 割込み優先度の最小値（最高値）
+   ･TIC_NUME       : タイムティックの周期の分子
+   ･TIC_DENO       : タイムティックの周期の分母
+   ･TIMER_CLOCK    : タイマ値の内部表現とミリ秒単位との変換
+   ･INTPRI_TIMER   : タイマ割込み割込み優先度
+   ･INTATR_TIMER   : タイマ割込みの割込み属性
+   ･INIT_MSP       : スタートアップルーチンでMSPを初期化する場合は定義
+   ･DEFAULT_ISTKSZ : スタックサイズ（8byte単位で指定）
+   ･SIL_DLY_TIM1   : 微少時間待ちのための定義
+   ･SIL_DLY_TIM2   : 微少時間待ちのための定義
 
 
-(6) fBNg\¬Et@C\¬
+(6) ディレクトリ構成・ファイル構成
   ./arch/arm_m_gcc/
     ./Makefile.prc
@@ -177,25 +175,25 @@
     ./start.S
 
-(12) o[Wð
+(12) バージョン履歴
 
 2008/08/22
- Eprc_user.txt/prc_design.txt
-   E2008/8/21ÌZp¢ïÅÌc_Êð½fD
- Eprc_support.S/prc_config.c/prc_config.h/arm_m.h
-   EReLXg»èðexc_ncnt©çANeBuÈX^bNÉÏX
- Eprc_config.c
-   Eset_exc_int_priority() ÅT|[gÂ\ÈIRQÌãÀð239Ég£D
- Estart.S 
-   EN®ÍThread[hðOñÆµÄ¢é±Æð¾LD
-   Eu[g[_[©çN®³êéêðzèµCMSPðLøÉ·éæ¤É
-     ÏXD
- Eprc_timer.c
-   ERgðC³
-   EfobOpR[hðí
+ ・prc_user.txt/prc_design.txt
+   ・2008/8/21の技術検討会での議論結果を反映．
+ ・prc_support.S/prc_config.c/prc_config.h/arm_m.h
+   ・コンテキスト判定をexc_ncntからアクティブなスタックに変更
+ ・prc_config.c
+   ・set_exc_int_priority() でサポート可能なIRQの上限を239に拡張．
+ ・start.S 
+   ・起動時はThreadモードを前提としていることを明記．
+   ・ブートローダー等から起動される場合を想定し，MSPを有効にするように
+     変更．
+ ・prc_timer.c
+   ・コメントを修正
+   ・デバッグ用コードを削除
 
 2008/07/11
- EÅÌ[X
+ ・最初のリリース
 
 2013/04/07
- EáO­¶ÉÝ/CPUáO­¶ñÌCNgªsíêÄ¢È©Á½
-   âèÌC³
+ ・例外処理発生時に割込み/CPU例外発生回数のインクリメントが行われていなかった
+   問題の修正
Index: ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/start.S
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/start.S	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/arm_m_gcc/start.S	(revision 95)
@@ -8,36 +8,32 @@
  *             Nagoya Municipal Industrial Research Institute, JAPAN
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id: start.S 1304 2008-08-27 07:28:36Z ertl-honda $
@@ -45,11 +41,10 @@
                 
 /*
- *   J[lpÌX^[gAbvW
-[(ARM-Mp)
+ *   カーネル用のスタートアップモジュール(ARM-M用)
  */
 #define TOPPERS_MACRO_ONLY
-#define UINT_C(val)		(val)		/* uint_t^Ìèðìé}N */
-#define ULONG_C(val)	(val)		/* ulong_t^Ìèðìé}N */
-#define CAST(type, val)	(val)		/* ^LXgðs¤}N */
+#define UINT_C(val)		(val)		/* uint_t型の定数を作るマクロ */
+#define ULONG_C(val)	(val)		/* ulong_t型の定数を作るマクロ */
+#define CAST(type, val)	(val)		/* 型キャストを行うマクロ */
 
 #include "kernel_impl.h"
@@ -57,7 +52,7 @@
 
 /*
- *  X^[gAbv[`
+ *  スタートアップルーチン
  *
- *  Thread[hÅÄÑo³êé±ÆðOñÆµÄéD
+ *  Threadモードで呼び出されることを前提としてる．
  */
 	.text
@@ -68,13 +63,13 @@
 	.type _start, function
 _start:
-	cpsid f                 /* ÝbNóÔÖ */
+	cpsid f                 /* 割込みロック状態へ */
 
 #ifdef INIT_MSP
 	/*
-	 * MSPÌÝè
+	 * MSPの設定
 	 */
-	mov   r0, #CONTROL_MSP  /* MSPðLøÉ  */
+	mov   r0, #CONTROL_MSP  /* MSPを有効に  */
 	msr   control, r0
-	isb                     /* control ÌìãÉKv */
+	isb                     /* control の操作後に必要 */
 	ldr  r0,=_kernel_istkpt
 	ldr  r1,[r0]
@@ -83,8 +78,8 @@
 
 	/*
-	 * hardware_init_hookÌÄÑoµ i0ÅÈ¢êj
+	 * hardware_init_hookの呼び出し （0でない場合）
 	 *
-	 * ^[Qbgn[hEFAÉË¶µÄKvÈú»ª éê
-	 * ÍChardware_init_hook Æ¢¤ÖðpÓ·é
+	 * ターゲットハードウェアに依存して必要な初期化処理がある場合
+	 * は，hardware_init_hook という関数を用意する
 	 */
 	ldr  r0, =hardware_init_hook
@@ -95,5 +90,5 @@
 #ifndef OMIT_BSS_INIT
 	/*
-	 *  BSSZNVú»
+	 *  BSSセクション初期化
 	 */
 	mov  r0, #0
@@ -114,7 +109,7 @@
 #ifndef OMIT_DATA_INIT
 	/*
-	 *  DATAZNVú»
-	 *  __idata_start ©ç __idata_end ÜÅðC__data_start È~É
-	 *  Rs[·é
+	 *  DATAセクション初期化
+	 *  __idata_start から __idata_end までを，__data_start 以降に
+	 *  コピーする
 	 */
 	ldr  r1, =__idata_start
@@ -133,9 +128,9 @@
 
 	/*
-	 *  software_init_hook ðÄoµi0 ÅÈ¢êj
+	 *  software_init_hook を呼出し（0 でない場合）
 	 *
-	 *  \tgEFAÂ«iÁÉCujÉË¶µÄKvÈú»
-	 *  ª éêÍCsoftware_init_hook Æ¢¤ÖðpÓ·êÎ
-	 *  æ¢D
+	 *  ソフトウェア環境（特にライブラリ）に依存して必要な初期化処
+	 *  理がある場合は，software_init_hook という関数を用意すれば
+	 *  よい．
 	 */
 start_5:
Index: ssp_qb_r5f100le_cs/trunk/arch/ca78k0r/tool_stddef.h
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/ca78k0r/tool_stddef.h	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/ca78k0r/tool_stddef.h	(revision 95)
@@ -11,43 +11,39 @@
  *             Nagoya Municipal Industrial Research Institute, JAPAN
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  */
 
 /*
- *  t_stddef.hÌJ­Â«Ë¶ilTXGNgjNX CA78K0Rpj
+ *  t_stddef.hの開発環境依存部（ルネサスエレクトロニクス CA78K0R用）
  *
- *  ±ÌCN[ht@CÍCtarget_stddef.h ÌæªÅCN[h³êéD
+ *  このインクルードファイルは，target_stddef.h の先頭でインクルードされる．
  */
 
@@ -56,8 +52,8 @@
 
 /*
- *  RpCÌg£@\Ì½ßÌ}Nè`
+ *  コンパイラの拡張機能のためのマクロ定義
  */
 /*
- *  inline ¯ÊqÍRpCªT|[gµÈ¢D
+ *  inline 識別子はコンパイラがサポートしない．
  */
 #define	inline
@@ -65,10 +61,10 @@
 
 /*
- *  RpCÅÍ __asm ¯ÊqªT|[g³êÄ¢éªgpµÈ¢½ß¢è`Æ·éD
+ *  コンパイラでは __asm 識別子がサポートされているが使用しないため未定義とする．
  */
 
 /*
- *  ^[µÈ¢ÖÅ é±Æð¦·½ßÌL[[h
- *      ÀÛÉÍ½àµÈ¢
+ *  リターンしない関数であることを示すためのキーワード
+ *      実際には何もしない
  */
 #define NoReturn
@@ -76,8 +72,8 @@
 
 /*
- *  J­Â«ÌWCN[ht@CÌp
+ *  開発環境の標準インクルードファイルの利用
  *
- *  NULLÌè`ðstddef.h©çCINT_MAXCINT_MINCUINT_MAXCLONG_MAXC
- *  LONG_MINCULONG_MAXCCHAR_BITÌè`ðlimits.h©çæèÞD
+ *  NULLの定義をstddef.hから，INT_MAX，INT_MIN，UINT_MAX，LONG_MAX，
+ *  LONG_MIN，ULONG_MAX，CHAR_BITの定義をlimits.hから取り込む．
  */
 #ifndef TOPPERS_MACRO_ONLY
@@ -87,36 +83,36 @@
 
 /*
- *  stdint.hÌãpÆÈéè`
+ *  stdint.hの代用となる定義
  *
- *  C99 Ì stdint.h ªpÓ³êÄ¢È¢½ßC»ÌãpÆÈéè`ð^¦éD
+ *  C99 の stdint.h が用意されていないため，その代用となる定義を与える．
  */
 
 /*
- *  RpCË¶Ìf[^^Ìè`
+ *  コンパイラ依存のデータ型の定義
  */
 #ifndef TOPPERS_MACRO_ONLY
 
-typedef signed char			int8_t;		/* t«8rbg® */
-typedef unsigned char		uint8_t;	/* ³µ8rbg® */
+typedef signed char			int8_t;		/* 符号付き8ビット整数 */
+typedef unsigned char		uint8_t;	/* 符号無し8ビット整数 */
 
-typedef signed short		int16_t;	/* t«16rbg® */
-typedef unsigned short		uint16_t;	/* ³µ16rbg® */
+typedef signed short		int16_t;	/* 符号付き16ビット整数 */
+typedef unsigned short		uint16_t;	/* 符号無し16ビット整数 */
 
-typedef signed long			int32_t;	/* t«32rbg® */
-typedef unsigned long		uint32_t;	/* ³µ32rbg® */
+typedef signed long			int32_t;	/* 符号付き32ビット整数 */
+typedef unsigned long		uint32_t;	/* 符号無し32ビット整数 */
 
-/* 64rbg®^Í¢T|[g */
+/* 64ビット整数型は未サポート */
 
-typedef int8_t          	int_least8_t;	/* 8rbgÈãÌt«® */
-typedef uint8_t         	uint_least8_t;	/* 8rbgÈãÌ³µ® */
+typedef int8_t          	int_least8_t;	/* 8ビット以上の符号付き整数 */
+typedef uint8_t         	uint_least8_t;	/* 8ビット以上の符号無し整数 */
 
-typedef long				intptr_t;	/* |C^ði[Å«ét«® */
-typedef unsigned long		uintptr_t;	/* |C^ði[Å«é³µ® */
+typedef long				intptr_t;	/* ポインタを格納できる符号付き整数 */
+typedef unsigned long		uintptr_t;	/* ポインタを格納できる符号無し整数 */
 
 #endif /* TOPPERS_MACRO_ONLY */
 
 /*
- *  RpCË¶Ìf[^^Ì®èðìé}N(C99)
- *  pÓ³êÄ¢È¢½ßC±±Åè`·éD
+ *  コンパイラ依存のデータ型の整数定数を作るマクロ(C99)
+ *  用意されていないため，ここで定義する．
  */
 #ifndef INT8_C
@@ -145,6 +141,6 @@
 
 /*
- *  RpCË¶Ìf[^^Éi[Å«éÅålÆÅ¬lÌè`(C99)
- *  pÓ³êÄ¢È¢½ßC±±Åè`·éD
+ *  コンパイラ依存のデータ型に格納できる最大値と最小値の定義(C99)
+ *  用意されていないため，ここで定義する．
  */
 #define INT8_MAX			SCHAR_MAX
@@ -165,10 +161,10 @@
 
 /*
- *  ®¬_^ÉÖ·éè`
+ *  浮動小数点型に関する定義
  */
 #ifndef TOPPERS_MACRO_ONLY
 
-typedef float		float32_t;			/* IEEE754ÌP¸x®¬_ */
-/* {¸x®¬_Í¢T|[gÅ èCdoubleàfloatÆ¯¶32rbg */
+typedef float		float32_t;			/* IEEE754準拠の単精度浮動小数点数 */
+/* 倍精度浮動小数点数は未サポートであり，doubleもfloatと同じ32ビット */
 
 #endif /* TOPPERS_MACRO_ONLY */
@@ -178,7 +174,7 @@
 
 /*
- *  óxÌè`
- *    å«³[ÌzñÍxÉÈé½ßA
- *    ±±ÅÊrè`·éB
+ *  空ラベルの定義
+ *    大きさゼロの配列は警告になるため、
+ *    ここで別途定義する。
  */
 #define TOPPERS_EMPTY_LABEL(x,y) x y[1]
Index: ssp_qb_r5f100le_cs/trunk/arch/gcc/tool_stddef.h
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/gcc/tool_stddef.h	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/gcc/tool_stddef.h	(revision 95)
@@ -8,36 +8,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
- * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id: tool_stddef.h 819 2008-03-18 12:58:50Z hiro $
@@ -45,5 +41,5 @@
 
 /*
- *		t_stddef.hÌJ­Â«Ë¶iGCCpj
+ *		t_stddef.hの開発環境依存部（GCC用）
  */
 
@@ -52,32 +48,32 @@
 
 /*
- *  RpCÌg£@\Ì½ßÌ}Nè`
- */
-#ifndef __cplusplus					/* C++ÉÍinline ª é */
-#if __STDC_VERSION__ < 199901L		/* C99ÉÍinline ª é */
-#define inline	__inline__			/* CCÖ */
+ *  コンパイラの拡張機能のためのマクロ定義
+ */
+#ifndef __cplusplus					/* C++にはinline がある */
+#if __STDC_VERSION__ < 199901L		/* C99にはinline がある */
+#define inline	__inline__			/* インライン関数 */
 #endif /* __STDC_VERSION__ < 199901L */
 #endif /* __cplusplus */
 
-#define Inline	static __inline__	/* CCÖ */
-
-#ifndef __cplusplus					/* C++ÉÍasmª é */
-#define asm		__asm__				/* CCAZu */
+#define Inline	static __inline__	/* インライン関数 */
+
+#ifndef __cplusplus					/* C++にはasmがある */
+#define asm		__asm__				/* インラインアセンブラ */
 #endif /* __cplusplus */
 
-#define Asm		__asm__ volatile	/* CCAZuiÅK»}~j*/
+#define Asm		__asm__ volatile	/* インラインアセンブラ（最適化抑止）*/
 
 #define NoReturn	__attribute__((__noreturn__))
-									/* ^[µÈ¢Ö */
-
-/*
- *  J­Â«ÌWCN[ht@CÌp
- *
- *  NULLÌè`ðstddef.h©çCINT_MAXCINT_MINCUINT_MAXCLONG_MAXC
- *  LONG_MINCULONG_MAXCCHAR_BITÌè`ðlimits.h©çæèÞD
- *
- *  C++/EC++ÅÍCWdlãÍ±êçÌCN[ht@CªpÓ³êÄ
- *  ¢éÆÍÀçÈ¢ÌÅÓªKvÅ éiÙÆñÇÌJ­Â«ÅpÓ³ê
- *  Ä¢éjD
+									/* リターンしない関数 */
+
+/*
+ *  開発環境の標準インクルードファイルの利用
+ *
+ *  NULLの定義をstddef.hから，INT_MAX，INT_MIN，UINT_MAX，LONG_MAX，
+ *  LONG_MIN，ULONG_MAX，CHAR_BITの定義をlimits.hから取り込む．
+ *
+ *  C++/EC++では，標準仕様上はこれらのインクルードファイルが用意されて
+ *  いるとは限らないので注意が必要である（ほとんどの開発環境で用意され
+ *  ている）．
  */
 #ifndef TOPPERS_MACRO_ONLY
@@ -87,42 +83,42 @@
 
 /*
- *  stdint.hÌãpÆÈéè`
- *
- *  J­Â«Éstdint.hªpÓ³êÄ¨ç¸Ce®^ÌTCYª ép^[
- *  ÉÄÍÜéêÉCstdint.hÌãpÆÈéè`ð^¦éD
- *
- *  TOPPERS_STDINT_TYPE1: char/short/int/long longÌrbg·ª»ê¼ê
- *                        8/16/32/64rbgÅC|C^Ìrbg·ªlong
- *                        Ìrbg·Æêv·éê
+ *  stdint.hの代用となる定義
+ *
+ *  開発環境にstdint.hが用意されておらず，各整数型のサイズがあるパター
+ *  ンに当てはまる場合に，stdint.hの代用となる定義を与える．
+ *
+ *  TOPPERS_STDINT_TYPE1: char/short/int/long longのビット長がそれぞれ
+ *                        8/16/32/64ビットで，ポインタのビット長がlong
+ *                        のビット長と一致する場合
  */
 #ifdef TOPPERS_STDINT_TYPE1
 
 /*
- *  RpCË¶Ìf[^^Ìè`
+ *  コンパイラ依存のデータ型の定義
  */
 #ifndef TOPPERS_MACRO_ONLY
 
-typedef signed char			int8_t;		/* t«8rbg® */
-typedef unsigned char		uint8_t;	/* ³µ8rbg® */
-
-typedef signed short		int16_t;	/* t«16rbg® */
-typedef unsigned short		uint16_t;	/* ³µ16rbg® */
-
-typedef signed int			int32_t;	/* t«32rbg® */
-typedef unsigned int		uint32_t;	/* ³µ32rbg® */
-
-typedef signed long long	int64_t;	/* t«64rbg® */
-typedef unsigned long long	uint64_t;	/* ³µ64rbg® */
-
-typedef int8_t				int_least8_t;	/* 8rbgÈãÌt«® */
-typedef uint8_t				uint_least8_t;	/* 8rbgÈãÌ³µ® */
-
-typedef long				intptr_t;	/* |C^ði[Å«ét«® */
-typedef unsigned long		uintptr_t;	/* |C^ði[Å«é³µ® */
+typedef signed char			int8_t;		/* 符号付き8ビット整数 */
+typedef unsigned char		uint8_t;	/* 符号無し8ビット整数 */
+
+typedef signed short		int16_t;	/* 符号付き16ビット整数 */
+typedef unsigned short		uint16_t;	/* 符号無し16ビット整数 */
+
+typedef signed int			int32_t;	/* 符号付き32ビット整数 */
+typedef unsigned int		uint32_t;	/* 符号無し32ビット整数 */
+
+typedef signed long long	int64_t;	/* 符号付き64ビット整数 */
+typedef unsigned long long	uint64_t;	/* 符号無し64ビット整数 */
+
+typedef int8_t				int_least8_t;	/* 8ビット以上の符号付き整数 */
+typedef uint8_t				uint_least8_t;	/* 8ビット以上の符号無し整数 */
+
+typedef long				intptr_t;	/* ポインタを格納できる符号付き整数 */
+typedef unsigned long		uintptr_t;	/* ポインタを格納できる符号無し整数 */
 
 #endif /* TOPPERS_MACRO_ONLY */
 
 /*
- *  RpCË¶Ìf[^^Ì®èðìé}N
+ *  コンパイラ依存のデータ型の整数定数を作るマクロ
  */
 #ifndef INT8_C
@@ -159,5 +155,5 @@
 
 /*
- *  RpCË¶Ìf[^^Éi[Å«éÅålÆÅ¬lÌè`
+ *  コンパイラ依存のデータ型に格納できる最大値と最小値の定義
  */
 #define INT8_MAX			SCHAR_MAX
@@ -184,14 +180,14 @@
 
 /*
- *  ®¬_^ÉÖ·éè`
- *
- *  TOPPERS_STDFLOAT_TYPE1: floatªIEEE754ÌP¸x®¬_C
- *							doubleª{¸x®¬_Ìê
+ *  浮動小数点型に関する定義
+ *
+ *  TOPPERS_STDFLOAT_TYPE1: floatがIEEE754準拠の単精度浮動小数点数，
+ *							doubleが倍精度浮動小数点数の場合
  */
 #ifdef TOPPERS_STDFLOAT_TYPE1
 #ifndef TOPPERS_MACRO_ONLY
 
-typedef float		float32_t;			/* IEEE754ÌP¸x®¬_ */
-typedef double		double64_t;			/* IEEE754Ì{¸x®¬_ */
+typedef float		float32_t;			/* IEEE754準拠の単精度浮動小数点数 */
+typedef double		double64_t;			/* IEEE754準拠の倍精度浮動小数点数 */
 
 #endif /* TOPPERS_MACRO_ONLY */
Index: ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc.tf
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc.tf	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc.tf	(revision 95)
@@ -7,42 +7,38 @@
 $             Nagoya Municipal Industrial Research Institute, JAPAN
 $ 
-$  ãLì ÒÍCÈºÌ (1)`(4) Ìðð½·êÉÀèC{\tgEF
-$  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»EüÏE
-$  ÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
-$  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 
-$      \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[X
-$      R[hÉÜÜêÄ¢é±ÆD
-$  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Égp
-$      Å«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gipÒ}
-$      j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºLÌ³Û
-$      ØKèðfÚ·é±ÆD
-$  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Égp
-$      Å«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±ÆD
-$    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌì
-$         \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
-$    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉñ
-$        ·é±ÆD
-$  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹Q
-$      ©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆDÜ½C
-$      {\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©ÈéRÉîÃ
-$      ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
-$ 
-$  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨æ
-$  ÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚIÉÎ·
-$  éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEFAÌp
-$  Éæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»ÌÓCð
-$  íÈ¢D
-$ 
-
-$ 
-$  vZbTË¶ev[g
-$ 
-
-$ 
-$  ATT_ISRÅgpÅ«éÝÔÆ»êÉÎ·éÝnhÔ
+$  上記著作権者は，以下の (1)〜(4) の条件を満たす場合に限り，本ソフトウェ
+$  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改変・
+$  再配布（以下，利用と呼ぶ）することを無償で許諾する．
+$  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作権
+$      表示，この利用条件および下記の無保証規定が，そのままの形でソース
+$      コード中に含まれていること．
+$  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使用
+$      できる形で再配布する場合には，再配布に伴うドキュメント（利用者マ
+$      ニュアルなど）に，上記の著作権表示，この利用条件および下記の無保
+$      証規定を掲載すること．
+$  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使用
+$      できない形で再配布する場合には，次のいずれかの条件を満たすこと．
+$    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著作
+$        権表示，この利用条件および下記の無保証規定を掲載すること．
+$    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに報
+$        告すること．
+$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害
+$      からも，上記著作権者およびTOPPERSプロジェクトを免責すること．また，
+$      本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ
+$      く請求からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+$ 
+$  本ソフトウェアは，無保証で提供されているものである．上記著作権者およ
+$  びTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的に対す
+$  る適合性も含めて，いかなる保証も行わない．また，本ソフトウェアの利用
+$  により直接的または間接的に生じたいかなる損害に関しても，その責任を負
+$  わない．
+$ 
+
+$ 
+$  プロセッサ依存テンプレート
+$ 
+
+$ 
+$  ATT_ISRで使用できる割込み番号とそれに対応する割込みハンドラ番号
 $ 
 
@@ -51,5 +47,5 @@
 
 $ 
-$  DEF_INH^DEF_EXCÅgpÅ«éÝnhÔ^CPUáOnhÔ
+$  DEF_INH／DEF_EXCで使用できる割込みハンドラ番号／CPU例外ハンドラ番号
 $ 
 
@@ -58,19 +54,19 @@
 
 $ 
-$  CFG_INTÅgpÅ«éÝÔÆÝDæx
+$  CFG_INTで使用できる割込み番号と割込み優先度
 $ 
 
 $INTNO_CFGINT_VALID = INTNO_VALID$
 
-$ // INTPRI_CFGINT_VALID ÍvZbTÉZbgÂ\ÈDæxÌÍÍð¦µC
-$ // J[lÇ(O)©Ç¤©ÌæÊðµÄ¢È¢D
-$ // J[lÇÆÈéÝDæxÌÍÍðÏX·éêC
-$ // TMIN_INTPRI (prc_kernel.h) ÌlðKvÉ¶ÄÏX·éD
+$ // INTPRI_CFGINT_VALID はプロセッサにセット可能な優先度の範囲を示し，
+$ // カーネル管理(外)かどうかの区別をしていない．
+$ // カーネル管理となる割込み優先度の範囲を変更する場合，
+$ // TMIN_INTPRI (prc_kernel.h) の値を必要に応じて変更する．
 $INTPRI_CFGINT_VALID = { -4,-3,-2,-1 }$
 
 $ 
-$  X^bNTCYÌ`FbNû@wè
-$ 
-$  ACgÉÖWÈ­¯¶¬xÅANZXÅ«é
+$  スタックサイズのチェック方法指定
+$ 
+$  アライメントに関係なく同じ速度でアクセスできる
 $ 
 
@@ -79,10 +75,10 @@
 
 $ 
-$  èè`
+$  定数定義
 $ 
 $TA_POSEDGE = TA_EDGE$
 
 $ 
-$ ^[QbgË¶ÌÝ®«Ìè`
+$ ターゲット依存の割込み属性の定義
 $ 
 
@@ -90,5 +86,5 @@
 
 $ 
-$  Wev[gt@CÌCN[h
+$  標準テンプレートファイルのインクルード
 $ 
 $INCLUDE "kernel.tf"$
@@ -96,5 +92,5 @@
 
 $ 
-$   CFG_INTÌ^[QbgË¶ÌG[`FbN
+$   CFG_INTのターゲット依存のエラーチェック
 $ 
 $ 
@@ -102,7 +98,7 @@
 
 $FOREACH intno INT.ORDER_LIST$
-$	// INTÝÉÎ·éÝÔ©Ç¤©
+$	// INT割込みに対する割込み番号かどうか
 	$IF (LENGTH(FIND(INTNO_INT , INT.INTNO[intno])) != 0)$
-$		// TA_POSEDGE Ü½Í TA_NEGEDGE Ü½Í TA_BOTHEDGE ª¯ÉÝè³êÄÈ¢©Ç¤©
+$		// TA_POSEDGE または TA_NEGEDGE または TA_BOTHEDGE が同時に設定されてないかどうか
 		$IF 
 		(   ((INT.INTATR[intno] & (TA_POSEDGE|TA_NEGEDGE|TA_BOTHEDGE)) != (TA_POSEDGE))
@@ -113,5 +109,5 @@
 		$END$
 	$ELSE$
-$		// INTÝÈOÌÝÉÎµÄ TA_ENAINT yÑ TA_EDGE ÈOÌÝ®«ªwè³êÄ¢È¢©Ç¤©
+$		// INT割込み以外の割込みに対して TA_ENAINT 及び TA_EDGE 以外の割込み属性が指定されていないかどうか
 		$IF (INT.INTATR[intno] & ~(TA_ENAINT|TA_EDGE)) != 0$
 			$ERROR$ INT.TEXT_LINE[intno]: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "intatr", INT.INTATR[intno], INT.INTNO[intno], "CFG_INT")$$END$
@@ -122,5 +118,5 @@
 
 $ 
-$ ÝÔ©çÝDæxðæèo·e[u
+$ 割込み番号から割込み優先度を取り出すテーブル
 $ 
 
@@ -141,9 +137,9 @@
 
 $ 
-$  A[LeN`Ë¶ev[giAZuÅLªj
-$ 
-
-$ 
-$  AZuoÍt@C (¤Êª)
+$  アーキテクチャ依存テンプレート（アセンブラ固有部分）
+$ 
+
+$ 
+$  アセンブラ出力ファイル (共通部分)
 $ 
 
@@ -151,7 +147,7 @@
 
 ;$NL$
-;  RL78A[LeN`Ë¶oÍt@C$NL$
-;$NL$
-;  ÝnhüûÌè`$NL$
+;  RL78アーキテクチャ依存出力ファイル$NL$
+;$NL$
+;  割込みハンドラ入口処理の定義$NL$
 ;$NL$
 $NL$$NL$
@@ -159,9 +155,9 @@
 
 $ 
-$  Ýüû
-$ 
-
-$ 
-$  O[oV{
+$  割込み入口処理
+$ 
+
+$ 
+$  グローバルシンボル
 $ 
 
@@ -169,5 +165,5 @@
 $TAB$extrn __kernel_int_return$NL$$NL$
 
-$TAB$; RpCªgp·é saddrÌæÌWX^$NL$
+$TAB$; コンパイラが使用する saddr領域のレジスタ$NL$
 $TAB$extrn	_@RTARG0,_@RTARG2,_@RTARG4,_@RTARG6,_@SEGAX,_@SEGDE$NL$
 $TAB$extrn	_@NRARG0,_@NRARG1,_@NRARG2,_@NRARG3$NL$
@@ -176,5 +172,5 @@
 
 ; $NL$
-; RpCªgp·ésaddrÌæÌÞð $NL$
+; コンパイラが使用するsaddr領域の退避 $NL$
 ; $NL$
 save_saddr_regs 	macro$NL$
@@ -191,5 +187,5 @@
 	$TAB$movw	ax, _@SEGDE  $NL$
 	$TAB$push	ax           $NL$
-	$TAB$$$if (ALLOC_REGVAR_TO_SADDR) ; -qr IvVðgp·éê $NL$
+	$TAB$$$if (ALLOC_REGVAR_TO_SADDR) ; -qr オプションを使用する場合 $NL$
 	$TAB$movw	ax, _@NRARG0 $NL$
 	$TAB$push	ax           $NL$
@@ -215,5 +211,5 @@
 
 $ 
-$  Ýnhüû
+$  割込みハンドラ入口処理
 $ 
 
@@ -223,22 +219,22 @@
 		$TAB$public	__kernel_$INH.INTHDR[inhno]$_$+INH.INHNO[inhno]$_entry	$NL$
 		__kernel_$INH.INTHDR[inhno]$_$+INH.INHNO[inhno]$_entry:				$NL$
-		$TAB$push	ax       ; WX^ð^XNX^bNÖÞð $NL$
+		$TAB$push	ax       ; レジスタをタスクスタックへ退避 $NL$
 		$TAB$push	bc $NL$
 		$TAB$push	de $NL$
 		$TAB$push	hl $NL$
-		$TAB$mov 	a,es        	; ES, CS ÌÞð $NL$
+		$TAB$mov 	a,es        	; ES, CS の退避 $NL$
 		$TAB$mov 	x,a  $NL$
 		$TAB$mov 	a,cs $NL$
 		$TAB$push	ax   $NL$
 		$TAB$save_saddr_regs$NL$
-		$TAB$movw	bc, #_$INH.INTHDR[inhno]$ ; nhÌAhXð bc Ö $NL$
+		$TAB$movw	bc, #_$INH.INTHDR[inhno]$ ; ハンドラのアドレスを bc へ $NL$
 
  		$IF (INH.INHATR[inhno] & TA_NONKERNEL) == 0$
-			$TAB$br   	__kernel_interrupt_entry	; ¤ÊÌüûÖ $NL$
+			$TAB$br   	__kernel_interrupt_entry	; 共通の入口処理へ $NL$
 			$NL$$NL$
  		$ELSE$
-			$TAB$;J[lÇOÌÝÌêCnhÀsµÄ»ÌÜÜ^[ $NL$
-			$TAB$call 	bc                      	; ÝnhÄÑoµ$NL$
-			$TAB$br   	__kernel_int_return      	; WX^A & Ý©ç^[(prc_support.asm) $NL$
+			$TAB$;カーネル管理外の割込みの場合，ハンドラ実行してそのままリターン $NL$
+			$TAB$call 	bc                      	; 割込みハンドラ呼び出し$NL$
+			$TAB$br   	__kernel_int_return      	; レジスタ復帰 & 割込みからリターン(prc_support.asm) $NL$
  		$END$
 	$END$
@@ -247,5 +243,5 @@
 
 $ 
-$  CPUáOnhüû
+$  CPU例外ハンドラ入口処理
 $ 
 
@@ -255,16 +251,16 @@
 		$TAB$public	__kernel_$EXC.EXCHDR[excno]$_$+EXC.EXCNO[excno]$_entry	$NL$
 		__kernel_$EXC.EXCHDR[excno]$_$+EXC.EXCNO[excno]$_entry:				$NL$
-		$TAB$push	ax          	; WX^ð^XNX^bNÖÞð $NL$
+		$TAB$push	ax          	; レジスタをタスクスタックへ退避 $NL$
 		$TAB$push	bc $NL$
 		$TAB$push	de $NL$
 		$TAB$push	hl $NL$
-		$TAB$mov 	a,es        	; ES, CS ÌÞð $NL$
+		$TAB$mov 	a,es        	; ES, CS の退避 $NL$
 		$TAB$mov 	x,a  $NL$
 		$TAB$mov 	a,cs $NL$
 		$TAB$push	ax   $NL$
 		$TAB$save_saddr_regs $NL$
-		$TAB$movw	ax, sp      	; SP(nhÌøÆÈé)ð ax Ö $NL$
-		$TAB$movw	bc, #_$EXC.EXCHDR[excno]$ ; nhÌAhXð bc Ö $NL$
-		$TAB$br   	__kernel_interrupt_entry	; ¤ÊÌüûÖ $NL$
+		$TAB$movw	ax, sp      	; SP(ハンドラの引数となる)を ax へ $NL$
+		$TAB$movw	bc, #_$EXC.EXCHDR[excno]$ ; ハンドラのアドレスを bc へ $NL$
+		$TAB$br   	__kernel_interrupt_entry	; 共通の入口処理へ $NL$
 		$NL$$NL$
 	$END$
@@ -273,9 +269,9 @@
 
 $ 
-$  xN^e[u
-$ 
-
-;$NL$
-;  xN^e[u$NL$
+$  ベクタテーブル
+$ 
+
+;$NL$
+;  ベクタテーブル$NL$
 ;$NL$
 $NL$
@@ -308,5 +304,5 @@
 
 $ 
-$  prc_support.asm p}Nè`t@C
+$  prc_support.asm 用マクロ定義ファイル
 $ 
 
Index: ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc_cfg1_out.h
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc_cfg1_out.h	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc_cfg1_out.h	(revision 95)
@@ -1,4 +1,4 @@
 /*
- *		cfg1_out.cÌNÉKvÈX^uÌè`
+ *		cfg1_out.cのリンクに必要なスタブの定義
  */
 
Index: ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc_config.c
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc_config.c	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc_config.c	(revision 95)
@@ -11,40 +11,35 @@
  *             Nagoya Municipal Industrial Research Institute, JAPAN
  * 
- *  ãLì ÒÍCÈºÌ (1)`(4) Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»EüÏE
- *  ÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 
- *      \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[X
- *      R[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Égp
- *      Å«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gipÒ}
- *      j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºLÌ³Û
- *      ØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Égp
- *      Å«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌì
- *         \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉñ
- *        ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹Q
- *      ©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆDÜ½C
- *      {\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©ÈéRÉîÃ
- *      ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
+ *  上記著作権者は，以下の (1)〜(4) の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改変・
+ *  再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作権
+ *      表示，この利用条件および下記の無保証規定が，そのままの形でソース
+ *      コード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使用
+ *      できる形で再配布する場合には，再配布に伴うドキュメント（利用者マ
+ *      ニュアルなど）に，上記の著作権表示，この利用条件および下記の無保
+ *      証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使用
+ *      できない形で再配布する場合には，次のいずれかの条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著作
+ *        権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに報
+ *        告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害
+ *      からも，上記著作権者およびTOPPERSプロジェクトを免責すること．また，
+ *      本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ
+ *      く請求からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨æ
- *  ÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚIÉÎ·
- *  éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEFAÌp
- *  Éæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»ÌÓCð
- *  íÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者およ
+ *  びTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的に対す
+ *  る適合性も含めて，いかなる保証も行わない．また，本ソフトウェアの利用
+ *  により直接的または間接的に生じたいかなる損害に関しても，その責任を負
+ *  わない．
  * 
  */
 
 /*
- *		vZbTË¶W
-[iRL78j
+ *		プロセッサ依存モジュール（RL78）
  */
 #pragma EI
@@ -53,5 +48,5 @@
 
 /*
- *  Ý­¶ñðÛ¶·éÏ
+ *  割込み発生回数を保存する変数
  */
 uint8_t intnest;
@@ -59,15 +54,15 @@
 
 /*
- *  (1) ReLXgÉÖ·éè`
- */
-
-
-/*
- *  ReLXgÌQÆ
+ *  (1) コンテキストに関する定義
+ */
+
+
+/*
+ *  コンテキストの参照
  */
 bool_t
 sense_context(void)
 {
-	/*  lXgJE^0æèåÈçñ^XNReLXg  */
+	/*  ネストカウンタ0より大なら非タスクコンテキスト  */
 	return (intnest > 0);
 }
@@ -75,18 +70,18 @@
 
 /*
- *  (2) VXeóÔÉÖ·éè`
- */
-
-/*
- *  CPUbNtOÀ»Ì½ßÌÏ
- */
-bool_t		lock_flag;		/* CPUbNtOÌlðÛ·éÏ */
+ *  (2) システム状態に関する定義
+ */
+
+/*
+ *  CPUロックフラグ実現のための変数
+ */
+bool_t		lock_flag;		/* CPUロックフラグの値を保持する変数 */
 #if TMIN_INTPRI != -4
-uint8_t 	saved_psw;		/* ÝDæxxðÛ¶·éÏ */
+uint8_t 	saved_psw;		/* 割込み優先度レベルを保存する変数 */
 #endif
 
 /*
- *  CPU bNóÔÖÌÚs
- *      ±ÌÖÍCCPU bNóÔÌÆ«ÉÄÑ¾³êÈ¢±ÆðOñÆ·éD
+ *  CPU ロック状態への移行
+ *      この関数は，CPU ロック状態のときに呼びだされないことを前提とする．
  */
 void
@@ -96,5 +91,5 @@
 	DI();
 #else
-	/* ^XNÅÍÝDæx}XNÌlÍ 0 ÌÍ¸ÈÌÅÛ¶·éKvªÈ¢ */
+	/* タスクでは割込み優先度マスクの値は 0 のはずなので保存する必要がない */
 	set_psw(PSW_SET_ISP(get_psw(), ISP_LOCK));
 #endif
@@ -111,7 +106,7 @@
 
 	/*
-	 *  get_psw() ÌÔèlð¼Ú saved_isp ÉÛ¶¹¸CêÏ
-	 *  psw ÖÛ¶·éÌÍCget_psw() ÌÄÑ¾µ¼ãÉÝª­¶µC
-	 *  N®³ê½ÝÅ saved_isp ªÏX³êéÂ\«ª é½ßD
+	 *  get_psw() の返り値を直接 saved_isp に保存せず，一時変数
+	 *  psw へ保存するのは，get_psw() の呼びだし直後に割込みが発生し，
+	 *  起動された割込み処理で saved_isp が変更される可能性があるため．
 	 */
 	psw = get_psw();
@@ -125,6 +120,6 @@
 
 /*
- *  CPUbNóÔÌð
- *      ±ÌÖÍCCPU bNóÔÌÆ«ÉÌÝÄÑ¾³êé±ÆðOñÆ·éD
+ *  CPUロック状態の解除
+ *      この関数は，CPU ロック状態のときにのみ呼びだされることを前提とする．
  */
 void
@@ -135,5 +130,5 @@
 	EI();
 #else
-	/* ^XNÀsÍÝ}XNSðóÔÌÍ¸ÈÌÅCSðÉµÄ¨­ */
+	/* タスク実行時は割込みマスク全解除状態のはずなので，全解除にしておく */
 	set_psw(PSW_SET_ISP(get_psw(), ISP_ENAALL));
 #endif
@@ -152,5 +147,5 @@
 
 /*
- *  CPUbNóÔÌQÆ
+ *  CPUロック状態の参照
  */
 bool_t
@@ -161,7 +156,7 @@
 
 /*
- *  ÝDæx}XN(IPM) ÌÝè
- *    wèµ½ÝDæx(-1, -2, ..., TMIN_INTPRI) ð³É
- *    vZbTÌÝDæxx (IPL) ðÝè·éD
+ *  割込み優先度マスク(IPM) の設定
+ *    指定した割込み優先度(-1, -2, ..., TMIN_INTPRI) を元に
+ *    プロセッサの割込み優先度レベル (IPL) を設定する．
  */
 void
@@ -180,5 +175,5 @@
 
 /*
- *  (7) dispacher ÅÌÝÒ¿
+ *  (7) dispacher での割込み待ち
  */
 void
@@ -191,5 +186,5 @@
 
 /*
- *  vZbTË¶Ìú»
+ *  プロセッサ依存の初期化
  */
 void
@@ -199,14 +194,14 @@
 
 /*
- *  vZbTË¶ÌI¹
+ *  プロセッサ依存の終了処理
  */
 void
 prc_terminate(void)
 {
-	/* ÁÉKvÈÍÈ¢ */
-}
-
-/*
- *  ÝvÖ~tOÌZbg
+	/* 特に必要な処理はない */
+}
+
+/*
+ *  割込み要求禁止フラグのセット
  */
 bool_t
@@ -215,10 +210,10 @@
 	volatile uint8_t *reg_addr;
 	
-	/* xè`ª0Å éêÍCFG_INT³êÄ¢È¢ */
+	/* レベル定義が0である場合はCFG_INTされていない */
 	if(intpri_table[intno] == 0U)
 	{
 		return (false);
 	}
-	// Ý}XNEtOEWX^ÌYrbgð1ÉZbg
+	// 割込みマスク・フラグ・レジスタの該当ビットを1にセット
 	if(intno < 32) {
 		reg_addr = (volatile uint8_t *)TADR_MK0L;
@@ -235,5 +230,5 @@
 
 /*
- *  ÝvÖ~tOÌNA
+ *  割込み要求禁止フラグのクリア
  */
 bool_t
@@ -242,10 +237,10 @@
 	volatile uint8_t *reg_addr;
 
-	/* xè`ª0Å éêÍCFG_INT³êÄ¢È¢ */
+	/* レベル定義が0である場合はCFG_INTされていない */
 	if(intpri_table[intno] == 0u)
 	{
 		return (false);
 	}
-	// Ý}XNEtOEWX^ÌYrbgð0ÉZbg
+	// 割込みマスク・フラグ・レジスタの該当ビットを0にセット
 	if(intno < 32) {
 		reg_addr = (volatile uint8_t *)TADR_MK0L;
@@ -262,5 +257,5 @@
 
 /*
- *  ÝvÌNA
+ *  割込み要求のクリア
  */
 void
@@ -269,5 +264,5 @@
 	volatile uint8_t *reg_addr;
 
-	// ÝvtOEWX^ÌYrbgð0ÉZbg
+	// 割込み要求フラグ・レジスタの該当ビットを0にセット
 	if(intno < 32) {
 		reg_addr = (volatile uint8_t *)TADR_IF0L;
@@ -282,5 +277,5 @@
 
 /*
- *  ÝvÌ`FbN
+ *  割込み要求のチェック
  */
 bool_t
@@ -289,5 +284,5 @@
 	volatile uint8_t *reg_addr;
 
-	// ÝvtOEWX^ÌYrbgª 1 Èç true
+	// 割込み要求フラグ・レジスタの該当ビットが 1 なら true
 	if(intno < 32) {
 		reg_addr = (volatile uint8_t *)TADR_IF0L;
@@ -303,5 +298,5 @@
 
 /*
- *  ÝvCÌ®«ÌÝè
+ *  割込み要求ラインの属性の設定
  */
 void
@@ -315,16 +310,16 @@
 
 	/*
-	 *  ÝÌ}XN
+	 *  割込みのマスク
 	 *
-	 *  Ýðó¯t¯½ÜÜCxgK^GbWgKÌÝèâC
-	 *  ÝDæxÌÝèðs¤ÌÍë¯È½ßCÝ®«É©©íç¸C
-	 *  êU}XN·éD
+	 *  割込みを受け付けたまま，レベルトリガ／エッジトリガの設定や，割
+	 *  込み優先度の設定を行うのは危険なため，割込み属性にかかわらず，
+	 *  一旦マスクする．
 	 */
 	(void) x_disable_int(intno);
 
 	/*
-	 * DæxÌÝè
+	 * 優先度の設定
 	 */
-	// DæÊwètOEWX^ÌYrbgÉlðZbg
+	// 優先順位指定フラグ・レジスタの該当ビットに値をセット
 	if(intno < 32) {
 		reg_addr = (volatile uint8_t *)TADR_PR00L;
@@ -335,5 +330,5 @@
 		reg_addr += ((intno-32) / 8);
 	}
-	// DæÊxÌÝè(áÊrbg)
+	// 優先順位レベルの設定(低位ビット)
 	if((IPM2ILVL(intpri) & 0x01) != 0) {
 		*reg_addr |= (uint8_t)(1 << (intno % 8));
@@ -342,5 +337,5 @@
 		*reg_addr &= (uint8_t)~(1 << (intno % 8));
 	}
-	// DæÊxÌÝè(Êrbg)
+	// 優先順位レベルの設定(高位ビット)
 	if((IPM2ILVL(intpri) & 0x02) != 0) {
 		*(reg_addr+4) |= (uint8_t)(1 << (intno % 8));
@@ -351,5 +346,5 @@
 	
 	/*
-	 * gKÌÝè
+	 * トリガの設定
 	 */
 	if(intno <= 7) {
@@ -362,35 +357,35 @@
 	}
 	
-	/* INT[qÌêÍÝmû@ðÝè·é */
+	/* INT端子の場合は割込み検知方法を設定する */
 	if((intatr & TA_POSEDGE) != 0U)
 	{
-		// OÝ§¿ãªèGbWÂWX^ÌYrbgð1ÉZbg
+		// 外部割込み立ち上がりエッジ許可レジスタの該当ビットを1にセット
 		*reg_addr |= (uint8_t)(1 << (portno % 8));
-		// OÝ§¿ºªèGbWÂWX^ÌYrbgð0ÉZbg
+		// 外部割込み立ち下がりエッジ許可レジスタの該当ビットを0にセット
 		*(reg_addr+1) &= (uint8_t)~(1 << (portno % 8));
 	}
 	else if((intatr & TA_NEGEDGE) != 0U)
 	{
-		// OÝ§¿ãªèGbWÂWX^ÌYrbgð0ÉZbg
+		// 外部割込み立ち上がりエッジ許可レジスタの該当ビットを0にセット
 		*reg_addr &= (uint8_t)~(1 << (portno % 8));
-		// OÝ§¿ºªèGbWÂWX^ÌYrbgð1ÉZbg
+		// 外部割込み立ち下がりエッジ許可レジスタの該当ビットを1にセット
 		*(reg_addr+1) |= (uint8_t)(1 << (portno % 8));
 	}
 	else if((intatr & TA_BOTHEDGE) != 0U)
 	{
-		// OÝ§¿ãªèGbWÂWX^ÌYrbgð1ÉZbg
+		// 外部割込み立ち上がりエッジ許可レジスタの該当ビットを1にセット
 		*reg_addr |= (uint8_t)(1 << (portno % 8));
-		// OÝ§¿ºªèGbWÂWX^ÌYrbgð1ÉZbg
+		// 外部割込み立ち下がりエッジ許可レジスタの該当ビットを1にセット
 		*(reg_addr+1) |= (uint8_t)(1 << (portno % 8));
 	}
-	else {	// Ç¿çÅàÈ¢êÍGbWoðÖ~
-		// OÝ§¿ãªèGbWÂWX^ÌYrbgð0ÉZbg
+	else {	// どちらでもない場合はエッジ検出を禁止
+		// 外部割込み立ち上がりエッジ許可レジスタの該当ビットを0にセット
 		*reg_addr &= (uint8_t)~(1 << (portno % 8));
-		// OÝ§¿ºªèGbWÂWX^ÌYrbgð0ÉZbg
+		// 外部割込み立ち下がりエッジ許可レジスタの該当ビットを0にセット
 		*(reg_addr+1) &= (uint8_t)~(1 << (portno % 8));
 	}
 
 	/*
-	 *  ÝÌ}XNð(DæxÝè)
+	 *  割込みのマスク解除(優先度設定)
  	 */
 	if ((intatr & TA_ENAINT) != 0U) {
@@ -400,5 +395,5 @@
 
 /*
- *  NMIð­·×ÄÌÝÌÖ~
+ *  NMIを除くすべての割込みの禁止
  */
 uint8_t
@@ -413,5 +408,5 @@
 
 /*
- *  ÝDæx}XNià\»jÌ»ÝlÌÝè
+ *  割込み優先度マスク（内部表現）の現在値の設定
  */
 void
Index: ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc_config.h
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc_config.h	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc_config.h	(revision 95)
@@ -11,43 +11,38 @@
  *             Nagoya Municipal Industrial Research Institute, JAPAN
  * 
- *  ãLì ÒÍCÈºÌ (1)`(4) Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»EüÏE
- *  ÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 
- *      \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[X
- *      R[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Égp
- *      Å«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gipÒ}
- *      j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºLÌ³Û
- *      ØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Égp
- *      Å«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌì
- *         \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉñ
- *        ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹Q
- *      ©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆDÜ½C
- *      {\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©ÈéRÉîÃ
- *      ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
+ *  上記著作権者は，以下の (1)〜(4) の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改変・
+ *  再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作権
+ *      表示，この利用条件および下記の無保証規定が，そのままの形でソース
+ *      コード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使用
+ *      できる形で再配布する場合には，再配布に伴うドキュメント（利用者マ
+ *      ニュアルなど）に，上記の著作権表示，この利用条件および下記の無保
+ *      証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使用
+ *      できない形で再配布する場合には，次のいずれかの条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著作
+ *        権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに報
+ *        告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害
+ *      からも，上記著作権者およびTOPPERSプロジェクトを免責すること．また，
+ *      本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ
+ *      く請求からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨æ
- *  ÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚIÉÎ·
- *  éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEFAÌp
- *  Éæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»ÌÓCð
- *  íÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者およ
+ *  びTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的に対す
+ *  る適合性も含めて，いかなる保証も行わない．また，本ソフトウェアの利用
+ *  により直接的または間接的に生じたいかなる損害に関しても，その責任を負
+ *  わない．
  * 
  */
 
 /*
- *		vZbTË¶W
-[iRL78j
- *
- *  ±ÌCN[ht@CÍC"<vZbT^Ô>_config.h" ÌÝ©ç
- *  CN[h³êéD¼Ìt@C©ç¼ÚCN[hµÄÍÈçÈ¢D
+ *		プロセッサ依存モジュール（RL78）
+ *
+ *  このインクルードファイルは，"<プロセッサ型番>_config.h" のみから
+ *  インクルードされる．他のファイルから直接インクルードしてはならない．
  */
 
@@ -56,18 +51,18 @@
 
 /*
- *  (1) ReLXgÉÖ·éè`
- */
-
-/* ¤LX^bNÌæÌ½ßÌX^bN|C^úlð¶¬·é}N */
+ *  (1) コンテキストに関する定義
+ */
+
+/* 共有スタック領域のためのスタックポインタ初期値を生成するマクロ */
 #define TOPPERS_ISTKPT(istk, istksz) ((STK_T *)((char *)(istk) + (istksz)))
 
 /*
- *  (2) VXeóÔÉÖ·éè`
- */
-
-/*
- *  CPUbNóÔÅÌÝDæx}XN(IPM)Ìl
- *    TIPM_LOCKÍCCPUbNóÔð\»·éÝDæx}XN(IPM)Ìlð¦·D
- *    J[lÇÌÝÉÎ·éÝDæxÌÅ¬l(TMIN_INTPRI)Éµ¢D
+ *  (2) システム状態に関する定義
+ */
+
+/*
+ *  CPUロック状態での割込み優先度マスク(IPM)の値
+ *    TIPM_LOCKは，CPUロック状態を表現する割込み優先度マスク(IPM)の値を示す．
+ *    カーネル管理の割込みに対する割込み優先度の最小値(TMIN_INTPRI)に等しい．
  */
 #ifndef TIPM_LOCK
@@ -76,14 +71,14 @@
 
 /*
- *  ÝDæx}XN(IPM) ÆvZbTÌÝDæx}XN(ISP) ÌÏ·
- *
- *  RL78 ÅÍCPSWWX^ÌºÊ©ç¦Ärbg1¨æÑ 2 Ì 2 rbgÉ
- *  CT[rXEvCIeBEtO(ISP) Ìlªi[³êéD
- *
- *  J[lÌÇ·éIPM (-1©çA±µ½Ìl) ðgÁÄ
- *  vZbTÌ ISP ð§ä·é½ßÉÏ·ªKvÆÈéD
- *
- *  wèµ½xÈºÌÝð}XN·éêÍCISPÌÝèlð
- *  ÚIÌxæèêÂ¢Dæx(lÆµÄÍ¬³¢)lÉ·éKvª éD
+ *  割込み優先度マスク(IPM) とプロセッサの割込み優先度マスク(ISP) の変換
+ *
+ *  RL78 では，PSWレジスタの下位から数えてビット1および 2 の 2 ビットに
+ *  インサービス・プライオリティ・フラグ(ISP) の値が格納される．
+ *
+ *  カーネルの管理するIPM (-1から連続した負の値) を使って
+ *  プロセッサの ISP を制御するために変換が必要となる．
+ *
+ *  指定したレベル以下の割込みをマスクする場合は，ISPの設定値を
+ *  目的のレベルより一つ高い優先度(値としては小さい)値にする必要がある．
  */
 #define IPM2ISP(ipm)	(((uint8_t)(4-1+(ipm))) << 1U)	/* IPM-->ISP(ipm=-3,-2,-1,0) */
@@ -92,18 +87,18 @@
 
 /*
- *  ÝDæx}XNÌÁÊÈlÉÎ·éà\»
- */
-#define ISP_LOCK	(IPM2ISP(TIPM_LOCK))  	/* CPUbNóÔÅÌ ISP */
-#define ISP_ENAALL	(IPM2ISP(TIPM_ENAALL))	/* TIPM_ENAALL ÅÌ ISP */
-
-
-
-/*
- *  (3) Ýf(ÝvC)
- */
-
-/*
- * intnoªCdis_int^ena_intÉÎ·éÝÔÆµÄ
- * LøÈlÅ éêÉtrueC»¤ÅÈ¢êÉfalseðÔ·}N
+ *  割込み優先度マスクの特別な値に対する内部表現
+ */
+#define ISP_LOCK	(IPM2ISP(TIPM_LOCK))  	/* CPUロック状態での ISP */
+#define ISP_ENAALL	(IPM2ISP(TIPM_ENAALL))	/* TIPM_ENAALL での ISP */
+
+
+
+/*
+ *  (3) 割込み処理モデル(割込み要求ライン)
+ */
+
+/*
+ * intnoが，dis_int／ena_intに対する割込み番号として
+ * 有効な値である場合にtrue，そうでない場合にfalseを返すマクロ
  */
 #define VALID_INTNO_DISINT(intno)	VALID_INTNO(intno)
@@ -111,5 +106,5 @@
 
 /*
- *  IPM ©çÝ§äWX^ÅÌ\»ÉÏ··é}N
+ *  IPM から割込み制御レジスタでの表現に変換するマクロ
  */
 #define IPM2ILVL(ipm)	((ipm)+4)	// ipm=-1,-2,-3,-4
@@ -117,9 +112,9 @@
 
 /*
- *  (4) Ýf(Ýnh)
- */
-
-/*
- *  ÝnhÌüûÌ¶¬}N
+ *  (4) 割込み処理モデル(割込みハンドラ)
+ */
+
+/*
+ *  割込みハンドラの入口処理の生成マクロ
  */
 #define _INT_ENTRY(inhno, inthdr)				_kernel_##inthdr##_##inhno##_entry
@@ -131,9 +126,9 @@
 
 /*
- *  (5) CPUáOf
- */
-
-/*
- *  CPUáOnhÌüûÌ¶¬}N
+ *  (5) CPU例外処理モデル
+ */
+
+/*
+ *  CPU例外ハンドラの入口処理の生成マクロ
  */
 #define _EXC_ENTRY(excno , exchdr)	_kernel_##exchdr##_##excno##_entry
@@ -145,33 +140,33 @@
 
 /*
- *  (6) ú»EI¹
- */
-
-// è`Èµ
+ *  (6) 初期化・終了処理
+ */
+
+// 定義なし
 
 #ifndef TOPPERS_MACRO_ONLY
 
 /*
- *  (1) ReLXgÉÖ·éè`
- */
-
-/*
- *  ReLXgÌQÆ
+ *  (1) コンテキストに関する定義
+ */
+
+/*
+ *  コンテキストの参照
  */
 extern bool_t sense_context(void);
 
 /*
- *  (2) VXeóÔÉÖ·éè`
- */
-
-/*
- *  CPUbNtOÀ»Ì½ßÌÏ (prc_config.c)
- */
-extern bool_t	lock_flag;	/* CPUbNtOÌl */
-extern uint8_t	saved_psw;	/* CPUbNóÔÚsOÌÝDæxx */
-
-/*
- *  CPU bNóÔÖÌÚs
- *      ±ÌÖÍCCPU bNóÔÌÆ«ÉÄÑ¾³êÈ¢±ÆðOñÆ·éD
+ *  (2) システム状態に関する定義
+ */
+
+/*
+ *  CPUロックフラグ実現のための変数 (prc_config.c)
+ */
+extern bool_t	lock_flag;	/* CPUロックフラグの値 */
+extern uint8_t	saved_psw;	/* CPUロック状態移行前の割込み優先度レベル */
+
+/*
+ *  CPU ロック状態への移行
+ *      この関数は，CPU ロック状態のときに呼びだされないことを前提とする．
  */
 extern void t_lock_cpu(void);
@@ -179,6 +174,6 @@
 
 /*
- *  CPUbNóÔÌð
- *      ±ÌÖÍCCPU bNóÔÌÆ«ÉÌÝÄÑ¾³êé±ÆðOñÆ·éD
+ *  CPUロック状態の解除
+ *      この関数は，CPU ロック状態のときにのみ呼びだされることを前提とする．
  */
 extern void t_unlock_cpu(void);
@@ -187,5 +182,5 @@
 
 /*
- *  CPUbNóÔÌQÆ
+ *  CPUロック状態の参照
  */
 extern bool_t x_sense_lock(void);
@@ -195,7 +190,7 @@
 
 /*
- *  ÝDæx}XN(IPM) ÌÝè
- *    wèµ½ÝDæx(-1, -2, ..., TMIN_INTPRI) ð³É
- *    vZbTÌÝDæxx (IPL) ðÝè·éD
+ *  割込み優先度マスク(IPM) の設定
+ *    指定した割込み優先度(-1, -2, ..., TMIN_INTPRI) を元に
+ *    プロセッサの割込み優先度レベル (IPL) を設定する．
  */
 extern void x_set_ipm(PRI intpri);
@@ -210,18 +205,18 @@
 
 /*
- *  (3) Ýf(ÝvC)
- */
-
-/*
- *  ÝvöÌxè`e[u (kernel_cfg.c ÉæéoÍ)
- *    ÝÔ(INTNO) ©çÝDæxðæ¾·é½ßÉgpD
+ *  (3) 割込み処理モデル(割込み要求ライン)
+ */
+
+/*
+ *  割込み要因毎のレベル定義テーブル (kernel_cfg.c による出力)
+ *    割込み番号(INTNO) から割込み優先度を取得するために使用．
  */
 extern const PRI intpri_table[];
 
 /*
- *  ÝvÖ~tOÌZbg(prc_config.c)
- *    wèµ½ÝÔÉÎ·éÝvCÌÝvtOðZbg·éD
- *    Ý®«ªÝè³êÄ¢È¢ÝvCÌÝÔðwèµ½
- *    êÍCPÉ FALSE ðÔ·D
+ *  割込み要求禁止フラグのセット(prc_config.c)
+ *    指定した割込み番号に対応する割込み要求ラインの割込み要求フラグをセットする．
+ *    割込み属性が設定されていない割込み要求ラインの割込み番号を指定した
+ *    場合は，単に FALSE を返す．
  */
 extern bool_t x_disable_int(INTNO intno);
@@ -231,8 +226,8 @@
 
 /*
- *  ÝvÖ~tOÌNA(prc_config.c)
- *    wèµ½ÝÔÉÎ·éÝvCÌÝvtOðNA·éD
- *    Ý®«ªÝè³êÄ¢È¢ÝvCÌÝÔðwèµ½
- *    êÍCPÉ FALSE ðÔ·D
+ *  割込み要求禁止フラグのクリア(prc_config.c)
+ *    指定した割込み番号に対応する割込み要求ラインの割込み要求フラグをクリアする．
+ *    割込み属性が設定されていない割込み要求ラインの割込み番号を指定した
+ *    場合は，単に FALSE を返す．
  */
 extern bool_t x_enable_int(INTNO intno);
@@ -243,5 +238,5 @@
 
 /*
- *  ÝvÌNA(prc_config.c)
+ *  割込み要求のクリア(prc_config.c)
  */
 extern void x_clear_int(INTNO intno);
@@ -252,5 +247,5 @@
 
 /*
- *  ÝvÌ`FbN(prc_config.c)
+ *  割込み要求のチェック(prc_config.c)
  */
 extern bool_t x_probe_int(INTNO intno);
@@ -260,50 +255,50 @@
 
 /*
- *  ÝvCÌ®«ÌÝè (prc_config.c)
+ *  割込み要求ラインの属性の設定 (prc_config.c)
  */
 extern void	x_config_int(INTNO intno, ATR intatr, PRI intpri);
 
 /*
- *  (4) Ýf(Ýnh)
- */
-
-/*
- *  ÝnhÌÝè
- *
- *  RL78ÍROMÉÝxN^ðzu·é½ßC{ÖÍóÉè`·éD
+ *  (4) 割込み処理モデル(割込みハンドラ)
+ */
+
+/*
+ *  割込みハンドラの設定
+ *
+ *  RL78はROMに割込みベクタを配置するため，本関数は空に定義する．
  */
 #define x_define_inh(inhno, inthdr)
 
 /*
- *  ÝnhÌüûÅKvÈ
- */
-#define i_begin_int(intno) 		/* ÁÉs¤×«ÍÈ¢ */
-
-/*
- *  ÝnhÌoûÅKvÈ
- */
-#define i_end_int(intno)		/* ÁÉs¤×«ÍÈ¢ */
-
-/*
- *  (5) CPUáOf
- */
-
-/*
- *  CPUáOnhÌÝè
- *    RL78 Í ROM ÉxN^ðzu·é½ßC{ÖÍóÉè`·éD
+ *  割込みハンドラの入口で必要な処理
+ */
+#define i_begin_int(intno) 		/* 特に行うべき処理はない */
+
+/*
+ *  割込みハンドラの出口で必要な処理
+ */
+#define i_end_int(intno)		/* 特に行うべき処理はない */
+
+/*
+ *  (5) CPU例外処理モデル
+ */
+
+/*
+ *  CPU例外ハンドラの設定
+ *    RL78 は ROM にベクタを配置するため，本関数は空に定義する．
  */
 #define x_define_exc(excno, exchdr)
 
 /*
- *  (6) ú»EI¹
- */
-
-/*
- *  vZbTË¶Ìú»(prc_config.c)
+ *  (6) 初期化・終了処理
+ */
+
+/*
+ *  プロセッサ依存の初期化(prc_config.c)
  */
 extern void	prc_initialize(void);
 
 /*
- *  dispatcher ÄÑoµOÉ^[QbgË¶ÅKvÈðs¤½ßÌÖ
+ *  dispatcher 呼び出し前にターゲット依存で必要な処理を行うための関数
  *    (prc_support.asm)
  */
@@ -311,18 +306,18 @@
 
 /*
- *  J[lÌI¹ÌÄoµiprc_support.asmj
- *
- *  call_exit_kernelÍCJ[lÌI¹ÉÄÑo³êCX^bN|C^ð
- *  ú»µCJ[lÌI¹iexit_kerneljðÄÑo·D
+ *  カーネルの終了処理の呼出し（prc_support.asm）
+ *
+ *  call_exit_kernelは，カーネルの終了時に呼び出され，スタックポインタを
+ *  初期化し，カーネルの終了処理（exit_kernel）を呼び出す．
  */
 extern void call_exit_kernel(void);
 
 /*
- *  vZbTË¶ÌI¹(prc_config.c)
+ *  プロセッサ依存の終了時処理(prc_config.c)
  */
 extern void	prc_terminate(void);
 
 /*
- *  (7) dispacher ÅÌÝÒ¿
+ *  (7) dispacher での割込み待ち
  */
 extern void idle_loop(void);
Index: ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc_kernel.h
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc_kernel.h	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc_kernel.h	(revision 95)
@@ -7,43 +7,39 @@
  *             Nagoya Municipal Industrial Research Institute, JAPAN
  * 
- *  ãLì ÒÍCÈºÌ (1)`(4) Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»EüÏE
- *  ÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 
- *      \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[X
- *      R[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Égp
- *      Å«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gipÒ}
- *      j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºLÌ³Û
- *      ØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Égp
- *      Å«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌì
- *         \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉñ
- *        ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹Q
- *      ©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆDÜ½C
- *      {\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©ÈéRÉîÃ
- *      ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
+ *  上記著作権者は，以下の (1)〜(4) の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改変・
+ *  再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作権
+ *      表示，この利用条件および下記の無保証規定が，そのままの形でソース
+ *      コード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使用
+ *      できる形で再配布する場合には，再配布に伴うドキュメント（利用者マ
+ *      ニュアルなど）に，上記の著作権表示，この利用条件および下記の無保
+ *      証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使用
+ *      できない形で再配布する場合には，次のいずれかの条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著作
+ *        権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに報
+ *        告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害
+ *      からも，上記著作権者およびTOPPERSプロジェクトを免責すること．また，
+ *      本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ
+ *      く請求からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨æ
- *  ÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚIÉÎ·
- *  éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEFAÌp
- *  Éæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»ÌÓCð
- *  íÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者およ
+ *  びTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的に対す
+ *  る適合性も含めて，いかなる保証も行わない．また，本ソフトウェアの利用
+ *  により直接的または間接的に生じたいかなる損害に関しても，その責任を負
+ *  わない．
  * 
  */
 
 /*
- *		kernel.h vZbTË¶iRL78j
+ *		kernel.h プロセッサ依存部（RL78）
  *
- *  ±ÌCN[ht@CÍCtarget_kernel.hiÜ½ÍC»±©çCN
- *  [h³êét@CjÌÝ©çCN[h³êéD¼Ìt@C©ç
- *  ¼ÚCN[hµÄÍÈçÈ¢D
+ *  このインクルードファイルは，target_kernel.h（または，そこからインク
+ *  ルードされるファイル）のみからインクルードされる．他のファイルから
+ *  直接インクルードしてはならない．
  */
 
@@ -52,8 +48,8 @@
 
 /*
- *  J[l{ÌðRpC·é½ßÌ}Nè`
+ *  カーネル本体をコンパイルするためのマクロ定義
  *
- *  {Â«ÅÍ1Öð1IuWFNgt@CÉRpC·é±ÆªÅ«È¢½ßC
- *  ALLFUNC}Nðè`·éD
+ *  本環境では1関数を1オブジェクトファイルにコンパイルすることができないため，
+ *  ALLFUNCマクロを定義する．
  */
 
@@ -61,33 +57,33 @@
 
 /*
- *  T|[g·é@\Ìè`
+ *  サポートする機能の定義
  */
-#define TOPPERS_TARGET_SUPPORT_DIS_INT			/* dis_intðT|[g·é */
-#define TOPPERS_TARGET_SUPPORT_ENA_INT			/* ena_intðT|[g·é */
+#define TOPPERS_TARGET_SUPPORT_DIS_INT			/* dis_intをサポートする */
+#define TOPPERS_TARGET_SUPPORT_ENA_INT			/* ena_intをサポートする */
 
 /*
- *  J[lÇÌÝDæxÌÍÍ
+ *  カーネル管理の割込み優先度の範囲
  *
- *  J[lÇÌÝDæxÌÅålyÑÅ¬lÌè`D
- *  ÅålÍ -1 ÅèÅC±êÍdlÉ éæ¤ÉÎÌ«ÌÏ_ÅpÓ³êÄ¢éD
- *  Å¬l TMIN_INTPRI ÉÝèÂ\ÈlÌÍÍÍC-3, -2, -1 Å éD
+ *  カーネル管理の割込み優先度の最大値及び最小値の定義．
+ *  最大値は -1 固定で，これは統合仕様書にあるように対称性の観点で用意されている．
+ *  最小値 TMIN_INTPRI に設定可能な値の範囲は，-3, -2, -1 である．
  *
- *  á¦Î TMIN_INTPRI ð -2 ÉÝè·éÆCNMI ÉÁ¦ÝDæxª
- *  -4 yÑ -3 ÉÝè³êÄ¢éÝvC©çÌÝª
- *  J[lÇOÌÝÆÈéD
- *  Ü½CTMIN_INTPRI ð -4 ÉÝè·é±ÆÍÅ«¸CNMI ¨æÑ -4 ÍíÉ
- *  J[lÇOÌÝÆÈéD
+ *  例えば TMIN_INTPRI を -2 に設定すると，NMI に加え割込み優先度が
+ *  -4 及び -3 に設定されている割込み要求ラインからの割込みが
+ *  カーネル管理外の割込みとなる．
+ *  また，TMIN_INTPRI を -4 に設定することはできず，NMI および -4 は常に
+ *  カーネル管理外の割込みとなる．
  */
 #ifndef TMIN_INTPRI
-#define TMIN_INTPRI		(-3)		/* ÝDæxÌÅ¬liÅlj*/
+#define TMIN_INTPRI		(-3)		/* 割込み優先度の最小値（最高値）*/
 #endif /* TMIN_INTPRI */
-#define TMAX_INTPRI		(-1)		/* ÝDæxÌÅåliÅálj */
+#define TMAX_INTPRI		(-1)		/* 割込み優先度の最大値（最低値） */
 
 /*
- *  èÝ®«
+ *  割り込み属性
  */
-#define	TA_POSEDGE		TA_EDGE			/* |WeBuGbWgK */
-#define	TA_NEGEDGE		UINT_C(0x04)	/* lKeBuGbWgK */
-#define TA_BOTHEDGE		UINT_C(0x08)	/* ¼GbWgK */
+#define	TA_POSEDGE		TA_EDGE			/* ポジティブエッジトリガ */
+#define	TA_NEGEDGE		UINT_C(0x04)	/* ネガティブエッジトリガ */
+#define TA_BOTHEDGE		UINT_C(0x08)	/* 両エッジトリガ */
 
 
Index: ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc_sil.asm
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc_sil.asm	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc_sil.asm	(revision 95)
@@ -6,39 +6,35 @@
 ;             Nagoya Municipal Industrial Research Institute, JAPAN
 ; 
-;  ãLì ÒÍCÈºÌ (1)`(4) Ìðð½·êÉÀèC{\tgEF
-;  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»EüÏE
-;  ÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
-;  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 
-;      \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[X
-;      R[hÉÜÜêÄ¢é±ÆD
-;  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Égp
-;      Å«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gipÒ}
-;      j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºLÌ³Û
-;      ØKèðfÚ·é±ÆD
-;  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Égp
-;      Å«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±ÆD
-;    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌì
-;         \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
-;    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉñ
-;        ·é±ÆD
-;  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹Q
-;      ©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆDÜ½C
-;      {\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©ÈéRÉîÃ
-;      ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
+;  上記著作権者は，以下の (1)〜(4) の条件を満たす場合に限り，本ソフトウェ
+;  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改変・
+;  再配布（以下，利用と呼ぶ）することを無償で許諾する．
+;  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作権
+;      表示，この利用条件および下記の無保証規定が，そのままの形でソース
+;      コード中に含まれていること．
+;  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使用
+;      できる形で再配布する場合には，再配布に伴うドキュメント（利用者マ
+;      ニュアルなど）に，上記の著作権表示，この利用条件および下記の無保
+;      証規定を掲載すること．
+;  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使用
+;      できない形で再配布する場合には，次のいずれかの条件を満たすこと．
+;    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著作
+;        権表示，この利用条件および下記の無保証規定を掲載すること．
+;    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに報
+;        告すること．
+;  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害
+;      からも，上記著作権者およびTOPPERSプロジェクトを免責すること．また，
+;      本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ
+;      く請求からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
 ; 
-;  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨æ
-;  ÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚIÉÎ·
-;  éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEFAÌp
-;  Éæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»ÌÓCð
-;  íÈ¢D
+;  本ソフトウェアは，無保証で提供されているものである．上記著作権者およ
+;  びTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的に対す
+;  る適合性も含めて，いかなる保証も行わない．また，本ソフトウェアの利用
+;  により直接的または間接的に生じたいかなる損害に関しても，その責任を負
+;  わない．
 ; 
 ; 
 
 ;
-;  SILÌAZuLqª
+;  SILのアセンブラ記述部分
 ;
 
@@ -50,9 +46,9 @@
 ;
 ; uint8_t get_psw(void)
-;   PSWÌlðæ¾
+;   PSWの値を取得
 ;
 _get_psw:
 	push	ax
-	mov 	a, psw		; PSW Ìlðæ¾
+	mov 	a, psw		; PSW の値を取得
 	mov 	c, a
 	clrb	b
@@ -62,5 +58,5 @@
 ;
 ; void set_psw(uint8_t psw)
-;   PSWÌlðÝè
+;   PSWの値を設定
 ;
 _set_psw:
Index: ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc_sil.h
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc_sil.h	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc_sil.h	(revision 95)
@@ -7,41 +7,37 @@
  *             Nagoya Municipal Industrial Research Institute, JAPAN
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  */
 
 /*
- *		sil.h vZbTË¶(RL78t@~¤Êª)
+ *		sil.h プロセッサ依存部(RL78ファミリ共通部分)
  */
 
@@ -50,18 +46,18 @@
 
 /*
- *  RpCª Inline ðT|[gµÈ¢½ß
- *  WÌóÔANZXÖðgpµÈ¢
+ *  コンパイラが Inline をサポートしないため
+ *  標準のメモリ空間アクセス関数を使用しない
  */
 #define TOPPERS_OMIT_SIL_ACCESS
 
 /*
- * PSW WX^
+ * PSW レジスタ
  */
 #define PSW_IE_MASK 	(0x80)
 #define PSW_ISP_MASK	(0x06)
 
-// psw Ì ISP{0,1} ª¾¯ðæèo·
+// psw の ISP{0,1} 部分だけを取り出す
 #define PSW2ISP(psw)	((uint8_t)((psw) & PSW_ISP_MASK))
-// psw Ì ISP{0,1} ÌrbgÊuÉ isp ðZbgµ½p^[ðìé
+// psw の ISP{0,1} のビット位置に isp をセットしたパターンを作る
 #define PSW_SET_ISP(psw, isp)	((uint8_t)((uint8_t)(psw & ~PSW_ISP_MASK) | isp))
 
@@ -69,20 +65,20 @@
 #ifndef TOPPERS_MACRO_ONLY
 
-// PSWÌæ¾EÝè
+// PSWの取得・設定
 extern uint8_t get_psw(void);
 extern void set_psw(uint8_t psw);
 
 /*
- *  NMIð­·×ÄÌÝÌÖ~(prc_config.c)
+ *  NMIを除くすべての割込みの禁止(prc_config.c)
  */
 extern uint8_t TOPPERS_disint(void);
 
 /*
- *  ÝDæx}XNià\»jÌ»ÝlÌÝè(prc_config.c)
+ *  割込み優先度マスク（内部表現）の現在値の設定(prc_config.c)
  */
 extern void TOPPERS_enaint(uint8_t TOPPERS_psw);
 
 /*
- *  SÝbNóÔÌ§ä
+ *  全割込みロック状態の制御
  */
 #define SIL_PRE_LOC		uint8_t TOPPERS_ie_psw;
@@ -91,5 +87,5 @@
 
 /*
- *  ÷­ÔÒ¿(target_support.asm, not yet)
+ *  微少時間待ち(target_support.asm, not yet)
  */
 extern void sil_dly_nse(ulong_t dlytim);
@@ -98,7 +94,7 @@
 
 /*
- *  vZbTÌGfBA
+ *  プロセッサのエンディアン
  */
-#define SIL_ENDIAN_LITTLE			/* gGfBA */
+#define SIL_ENDIAN_LITTLE			/* リトルエンディアン */
 
 #endif /* TOPPERS_PRC_SIL_H */
Index: ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc_stddef.h
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc_stddef.h	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc_stddef.h	(revision 95)
@@ -7,44 +7,40 @@
  *             Nagoya Municipal Industrial Research Institute, JAPAN
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  */
 
 /*
- *		t_stddef.hÌvZbTË¶iRL78t@~¤Êªj
+ *		t_stddef.hのプロセッサ依存部（RL78ファミリ共通部分）
  *
- *  ±ÌCN[ht@CÍCtarget_stddef.h ÌÝ©çCN[h³êéD
- *  ¼Ìt@C©ç¼ÚCN[hµÄÍÈçÈ¢D
+ *  このインクルードファイルは，target_stddef.h のみからインクルードされる．
+ *  他のファイルから直接インクルードしてはならない．
  */
 
@@ -53,7 +49,7 @@
 
 /*
- *  ^[Qbgð¯Ê·é½ßÌ}NÌè`
+ *  ターゲットを識別するためのマクロの定義
  */
-#define TOPPERS_RL78				/* vZbTªÌ */
+#define TOPPERS_RL78				/* プロセッサ略称 */
 
 #endif /* TOPPERS_PRC_STDDEF_H */
Index: ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc_support.asm
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc_support.asm	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc_support.asm	(revision 95)
@@ -6,81 +6,77 @@
 ;             Nagoya Municipal Industrial Research Institute, JAPAN
 ; 
-;  ãLì ÒÍCÈºÌ (1)`(4) Ìðð½·êÉÀèC{\tgEF
-;  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»EüÏE
-;  ÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
-;  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 
-;      \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[X
-;      R[hÉÜÜêÄ¢é±ÆD
-;  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Égp
-;      Å«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gipÒ}
-;      j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºLÌ³Û
-;      ØKèðfÚ·é±ÆD
-;  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Égp
-;      Å«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±ÆD
-;    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌì
-;         \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
-;    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉñ
-;        ·é±ÆD
-;  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹Q
-;      ©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆDÜ½C
-;      {\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©ÈéRÉîÃ
-;      ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
-; 
-;  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨æ
-;  ÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚIÉÎ·
-;  éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEFAÌp
-;  Éæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»ÌÓCð
-;  íÈ¢D
-; 
-; 
-
-;
-;  J[lÀÌvZbTË¶ª
-;
-
-;
-;  }Nè`ÌCN[h
+;  上記著作権者は，以下の (1)〜(4) の条件を満たす場合に限り，本ソフトウェ
+;  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改変・
+;  再配布（以下，利用と呼ぶ）することを無償で許諾する．
+;  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作権
+;      表示，この利用条件および下記の無保証規定が，そのままの形でソース
+;      コード中に含まれていること．
+;  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使用
+;      できる形で再配布する場合には，再配布に伴うドキュメント（利用者マ
+;      ニュアルなど）に，上記の著作権表示，この利用条件および下記の無保
+;      証規定を掲載すること．
+;  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使用
+;      できない形で再配布する場合には，次のいずれかの条件を満たすこと．
+;    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著作
+;        権表示，この利用条件および下記の無保証規定を掲載すること．
+;    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに報
+;        告すること．
+;  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害
+;      からも，上記著作権者およびTOPPERSプロジェクトを免責すること．また，
+;      本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ
+;      く請求からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+; 
+;  本ソフトウェアは，無保証で提供されているものである．上記著作権者およ
+;  びTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的に対す
+;  る適合性も含めて，いかなる保証も行わない．また，本ソフトウェアの利用
+;  により直接的または間接的に生じたいかなる損害に関しても，その責任を負
+;  わない．
+; 
+; 
+
+;
+;  カーネル実装のプロセッサ依存部分
+;
+
+;
+;  マクロ定義のインクルード
 ;
 $INCLUDE(prc_support_def.inc)
 
 ;
-;  O[oV{
-;
-	; RpCªgp·é saddrÌæÌWX^
+;  グローバルシンボル
+;
+	; コンパイラが使用する saddr領域のレジスタ
 	extrn	_@RTARG0,_@RTARG2,_@RTARG4,_@RTARG6,_@SEGAX,_@SEGDE
 	extrn	_@NRARG0,_@NRARG1,_@NRARG2,_@NRARG3
 	extrn	_@NRAT00,_@NRAT02,_@NRAT04,_@NRAT06
 	; kernel_cfg.c
-	extrn	__kernel_istkpt     	; X^bN|C^Ìúl
+	extrn	__kernel_istkpt     	; スタックポインタの初期値
 	; prc_config.c
-	extrn	_t_lock_cpu         	; CPUbNóÔÖÌÚs
-	extrn	__kernel_intnest    	; ÝÌlXgJE^
-	extrn	__kernel_lock_flag  	; CPUbNtO
+	extrn	_t_lock_cpu         	; CPUロック状態への移行
+	extrn	__kernel_intnest    	; 割込みのネストカウンタ
+	extrn	__kernel_lock_flag  	; CPUロックフラグ
 	; task.c
-	extrn	__kernel_dispatcher 	; fBXpb`
-	extrn	__kernel_reqflg     	; fBXpb`vtO
-	extrn	__kernel_disdsp     	; fBXpb`Ö~óÔ
-	extrn	__kernel_search_schedtsk	; ÅDæxÌT[`
-	extrn	__kernel_run_task   	; ^XNÌJn
+	extrn	__kernel_dispatcher 	; ディスパッチャ
+	extrn	__kernel_reqflg     	; ディスパッチ要求フラグ
+	extrn	__kernel_disdsp     	; ディスパッチ禁止状態
+	extrn	__kernel_search_schedtsk	; 最高優先度のサーチ
+	extrn	__kernel_run_task   	; タスクの開始
 	; startup.c
-	extrn	__kernel_exit_kernel	; J[lÌI¹
+	extrn	__kernel_exit_kernel	; カーネルの終了処理
 
 	; prc_support.asm
-	public	__kernel_start_dispatch  	; fBXpb`ÌJn
-	public	__kernel_call_exit_kernel	; I¹ÌR[
-	public	__kernel_interrupt_entry 	; ÝÌüû(¤Ê)
-	public	__kernel_int_return      	; WX^ðAµÄÝ­¶³Ö^[
-	public	_unused_interrupt        	; ¢gpÝÌ
-
-;
-; RpCÅgp·ésaddrÌæÌWX^ðÛ¶
+	public	__kernel_start_dispatch  	; ディスパッチの開始処理
+	public	__kernel_call_exit_kernel	; 終了処理のコール
+	public	__kernel_interrupt_entry 	; 割込みの入口処理(共通部)
+	public	__kernel_int_return      	; レジスタを復帰して割込み発生元へリターン
+	public	_unused_interrupt        	; 未使用割込みの処理
+
+;
+; コンパイラで使用するsaddr領域のレジスタを保存
 ;
 restore_saddr_regs	macro
-$if (ALLOC_REGVAR_TO_SADDR) ; -qr IvVðgp·éê 
-	pop	ax           	; WX^A 
+$if (ALLOC_REGVAR_TO_SADDR) ; -qr オプションを使用する場合 
+	pop	ax           	; レジスタ復帰 
 	movw	_@NRAT06, ax  	; 
 	pop	ax           	; 
@@ -99,5 +95,5 @@
 	movw	_@NRARG0, ax  	; 
 $endif 
-	pop	ax           	; WX^A 
+	pop	ax           	; レジスタ復帰 
 	movw	_@SEGDE, ax  	; 
 	pop	ax           	; 
@@ -114,5 +110,5 @@
 
 ;
-;  X^bN|C^ðú»
+;  スタックポインタを初期化
 ;
 reset_sp	macro
@@ -124,5 +120,5 @@
 	
 ;
-;  PSW Ì ISP1 = 1, ISP0 = 1 ÉµÄÝÌ}XNðð·é
+;  PSW の ISP1 = 1, ISP0 = 1 にして割込みのマスクを解除する
 ;
 clear_pswisp_mask	macro
@@ -136,11 +132,11 @@
 
 ;
-;  J[lÌ®ìJnÉKvÆ³êéãnðs¤½ßÌÖ
-;  sta_ker(startup.c) ©çÄÑo³êéD
+;  カーネルの動作開始に必要とされる後始末を行うための関数
+;  sta_ker(startup.c) から呼び出される．
 ;
 __kernel_start_dispatch:
 	;
-	;  CPUbNóÔÆSÝbNóÔÆðæÊ·éKvª éêC
-	;  CPUbNóÔÉµCSÝbNÌóÔðð·éD
+	;  CPUロック状態と全割込みロック状態とを区別する必要がある場合，
+	;  CPUロック状態にし，全割込みロック相当の状態を解除する．
 	;
 	call !!_t_lock_cpu
@@ -151,21 +147,21 @@
 $ENDIF
 	;
-	;  X^bN|C^ðú»·é
-	;  sta_ker ©ç start_dispatch ÌÖR[ÉæéX^bNÁïªð
-	;  NA·é½ßCX^bN|C^ðú»·éD
+	;  スタックポインタを初期化する
+	;  sta_ker から start_dispatch の関数コールによるスタック消費分を
+	;  クリアするため，スタックポインタを初期化する．
 	;
 	reset_sp
 
 	;
-	;  dispatcher (task.c) ÖWv·é
-	;  ÖR[ÉµÈ¢ÌÍX^bNðßñ·é½ßD
-	;
-	; dispatcher (kernel/task.c) ÌÄÑoµ
+	;  dispatcher (task.c) へジャンプする
+	;  関数コールにしないのはスタックを節約するため．
+	;
+	; dispatcher (kernel/task.c) の呼び出し
 	br	!!__kernel_dispatcher
 
 
 ;
-;  I¹ÌÄÑoµ
-;  X^bN|C^ðú»µCexit_kernel ðÄÑo·D
+;  終了処理の呼び出し
+;  スタックポインタを初期化し，exit_kernel を呼び出す．
 ;
  __kernel_call_exit_kernel:
@@ -177,40 +173,40 @@
 
 ;
-;  Ý/CPUáOÌoüû(¤Ê)
-;    J[lÇÌÝÜ½ÍCPUáOÌêÉWX^Û¶ãCÄÑo³êéD
-;
-;   Oñð
-;	EPSWWX^ÌIErbg=0, ISPÍót¯½ÝÌISP.
-;	EnhÌAhXª bc Éi[³êÄ¢é.
-;   ECPUáOnhÌüû©ç½êCX^bN|C^Ì
-;     æªÔn(p_excinf)ª ax Éi[³êÄ¨èC
-;     ±êÍCPUáOnhÌø(p_excinf)ÆµÄ»ÌÜÜn³êéD
-;
-;	WX^ªX^bNãÉÇÌæ¤ÉÛ¶³êÄ¢é©ðÈºÉ¦·.
-;	}ÍÀÑÌÝð\»µ½àÌÅ èCTCYðl¶µÄ¢È¢±ÆÉÓ·éD
-;	³mÉÍf[^V[gðQÆÌ±ÆD
-;	±Ì}ÅÍãªáÊ, ºªÊÌAhXÅ, X^bNÍ}Ìº¤©ç
-;	ãûüÉü©ÁÄÏÝã°çêéàÌÆ·é.
-;
-;	¦1 saddrÌæÌ[NGAÍRpCIvV -qr ðwè·éêÉ
-;       Û¶ªKvÅ èCÊíÍÛ¶µÈ¢DÛ¶·éêÍAZuIvV
-;       ÉÄuALLOC_REGVAR_TO_SADDRvðè`·é±ÆD
-;
-;	¦2 CPUáOÌüûðoRµ½êÌÝÛ¶³êé
-;
-;
-;	---------------<-- p_excinf(¦)
-;	|  saddrÌæ   |
-;	|[NpGA|
-;	|  (16byte)¦1 |
+;  割込み/CPU例外の出入口処理(共通部)
+;    カーネル管理の割込みまたはCPU例外の場合にレジスタ保存後，呼び出される．
+;
+;   前提条件
+;	・PSWレジスタのIEビット=0, ISPは受付けた割込みのISP.
+;	・ハンドラのアドレスが bc に格納されている.
+;   ・CPU例外ハンドラの入口から来た場合，スタックポインタの
+;     先頭番地(p_excinf)が ax に格納されており，
+;     これはCPU例外ハンドラの引数(p_excinf)としてそのまま渡される．
+;
+;	レジスタがスタック上にどのように保存されているかを以下に示す.
+;	図は並び順のみを表現したものであり，サイズを考慮していないことに注意する．
+;	正確にはデータシートを参照のこと．
+;	この図では上が低位, 下が高位のアドレスで, スタックは図の下側から
+;	上方向に向かって積み上げられるものとする.
+;
+;	※1 saddr領域のワークエリアはコンパイラオプション -qr を指定する場合に
+;       保存が必要であり，通常は保存しない．保存する場合はアセンブラオプション
+;       にて「ALLOC_REGVAR_TO_SADDR」を定義すること．
+;
+;	※2 CPU例外の入口を経由した場合のみ保存される
+;
+;
+;	---------------<-- p_excinf(※)
+;	|  saddr領域   |
+;	|ワーク用エリア|
+;	|  (16byte)※1 |
 ;	---------------<-- p_excinf
-;	|  saddrÌæ   |
-;	|ZOgîñ|
-;	| i[pGA |
+;	|  saddr領域   |
+;	|セグメント情報|
+;	| 格納用エリア |
 ;	|   (4byte)    |
 ;	---------------
-;	|  saddrÌæ   |
-;	|  ^C  |
-;	|  øGA  |
+;	|  saddr領域   |
+;	|  ランタイム  |
+;	|  引数エリア  |
 ;	|   (8byte)    |
 ;	---------------
@@ -230,34 +226,34 @@
 ;	---------------
 ;
-;	nh©ç^[µ½ãÍ, ½dÝÅÈ­, ©ÂC
-;	reqflg ª TRUEC©ÂCdisdsp ª FALSE ÌÉCinterrupt_dispatch Öªò·éD
-;
-;	½dÝ©Ç¤©ÍÝlXgJE^ÌlÅ»è·é.
-;	intnest > 0 ÈçÎ½dÝÅ éÆ»è·é.
+;	ハンドラからリターンした後は, 多重割込みでなく, かつ，
+;	reqflg が TRUE，かつ，disdsp が FALSE の時に，interrupt_dispatch へ分岐する．
+;
+;	多重割込みかどうかは割込みネストカウンタの値で判定する.
+;	intnest > 0 ならば多重割込みであると判定する.
 ;
 
 __kernel_interrupt_entry:
-	inc 	!__kernel_intnest   	; lXgJE^ðCNg
-	ei  	                    	; ÝÂ(IPLÍó¯t¯çê½ÝÌx)
-	call	bc                  	; ÝnhÄÑoµ
-	di  	                    	; ÝÖ~
-	dec 	!__kernel_intnest   	; lXgJE^ðfNg
-	bnz 	$__kernel_int_return 	; ßèæªñ^XNReLXg(ñ[)ÈçPÉ^[
-	movw	ax,!__kernel_reqflg  	; fBXpb`vª é©Ç¤©
+	inc 	!__kernel_intnest   	; ネストカウンタをインクリメント
+	ei  	                    	; 割込み許可(IPLは受け付けられた割込みのレベル)
+	call	bc                  	; 割込みハンドラ呼び出し
+	di  	                    	; 割込み禁止
+	dec 	!__kernel_intnest   	; ネストカウンタをデクリメント
+	bnz 	$__kernel_int_return 	; 戻り先が非タスクコンテキスト(非ゼロ)なら単にリターン
+	movw	ax,!__kernel_reqflg  	; ディスパッチ要求があるかどうか
 	cmpw	ax, #0
-	bz  	$__kernel_int_return 	; È¯êÎCPÉ^[
+	bz  	$__kernel_int_return 	; なければ，単にリターン
 	movw	ax, #0
-	movw	!__kernel_reqflg, ax 	; reqflg = FALSE ÉßµÄ¨­
-	movw	ax, !__kernel_disdsp 	; fBXpb`Ö~©Ç¤©
+	movw	!__kernel_reqflg, ax 	; reqflg = FALSE に戻しておく
+	movw	ax, !__kernel_disdsp 	; ディスパッチ禁止かどうか
 	cmpw	ax, #0
-	bnz 	$__kernel_int_return 	; Ö~ÈçCPÉ^[
-
-;
-;  ÝÌoû(fBXpb`t«)
-;    CPU bNÌóÔÉÚsµCVK^XNðJn·é
-;
-;  OñðF
-;    PSWWX^ÌIEtO = 0 (ÝÖ~)
-;    PSWWX^ÌISP{1,0} = ó¯t¯½ÝÌÝx
+	bnz 	$__kernel_int_return 	; 禁止なら，単にリターン
+
+;
+;  割込みの出口処理(ディスパッチ付き)
+;    CPU ロック相当の状態に移行し，新規タスクを開始する
+;
+;  前提条件：
+;    PSWレジスタのIEフラグ = 0 (割込み禁止)
+;    PSWレジスタのISP{1,0} = 受け付けた割込みの割込みレベル
 ;
 __kernel_interrupt_dispatch:
@@ -272,20 +268,20 @@
 	call	!!__kernel_run_task
 
-	; run_task ©çÌ^[ãÌóÔ: CPUbNóÔ
-	; __kernel_int_return Ì reti Å PSW Ì IE, ISP Í
-	; Ý­¶OÌóÔÉßé½ßClock_flag ¾¯³Éß·D
+	; run_task からのリターン後の状態: CPUロック状態
+	; __kernel_int_return の reti で PSW の IE, ISP は
+	; 割込み発生前の状態に戻るため，lock_flag だけ元に戻す．
 	movw	ax, #0
-	movw	!__kernel_lock_flag, ax 	; lock_flag ðNA
-
-;
-;  WX^AµÄÝ©ç^[
+	movw	!__kernel_lock_flag, ax 	; lock_flag をクリア
+
+;
+;  レジスタ復帰して割込みからリターン
 ;
 __kernel_int_return:
-	restore_saddr_regs	; saddrÌæÌWX^A
-	pop 	ax          ; ES, CS ÌA 
+	restore_saddr_regs	; saddr領域のレジスタ復帰
+	pop 	ax          ; ES, CS の復帰 
 	mov 	cs, a       ; 
 	mov 	a, x        ; 
 	mov 	es, a       ; 
-	pop 	hl          ; WX^ðA 
+	pop 	hl          ; レジスタを復帰 
 	pop 	de
 	pop 	bc
@@ -294,5 +290,5 @@
 
 ;
-;  ³À[v(OÌ½ß)
+;  無限ループ(念のため)
 ;
 _loop:
@@ -300,5 +296,5 @@
 
 ;
-;  ¢gpÝ
+;  未使用割込み
 ;
 _unused_interrupt:
Index: ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc_user.txt
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc_user.txt	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc_user.txt	(revision 95)
@@ -1,368 +1,363 @@
 =====================================================================
-                         RL78vZbTË¶
+                         RL78プロセッサ依存部
                                   Last Modified: '15/6/2
 =====================================================================
 
 
-(1) ÎµÄ¢é^[QbgVXeÌíÞE\¬
-
-RL78vZbTË¶(ÈºCRL78Ë¶)ÍClTXGNgjNX» RL78t@~
-ÌvZbTðåÈ^[QbgÆ·éDRL78t@~ÍC¢­Â©ÌO[vC
-»µÄÜ½»ÌO[vÌÉClXÈ^ÔÅ\»³êévZbTÌoG[Vª
-¶ÝµÄ¢éD
-
-½¾µC{vZbTË¶É¨¢ÄC»óÅÍCT|[g·é^[Qbg{[hÆÌÖW©çC
-RL78/G13 ÉÖ·éè`ÌÝðpÓµÄ¢éD
-
-
-(2) vZbTË¶Ìt@C\¬
-
-A^COSJ[lÌvZbTË¶ÆµÄÀ·éªÌÝðl¦½êC
-RL78Ë¶Ìè`ÍCåïÌêCSÄÌvZbTÉ¤Ê·éªÆC
-vZbTÌ^ÔÅÙÈéª(¦1)ÆÉR[hð®·é±ÆªÂ\Å éD
-ÙÈéªÉÂ¢ÄÍvZbT^ÔÉîÃ­t@CðpÓµÄ¢éD
-
-¦1 ÝÔCÝnhÔCyÑCÝ§äWX^ÌzuÈÇ
-
-ÈãæèCvZbTË¶ÌR[hÍCÈºÌ½¼K¥É]ÁÄpÓ³ê½
-t@CÖC¤ÊªÆÂÏªÆÉªÞµÄzu³êÄ¢éD
-
-prc_*  F SÄÌvZbTÉ¤Ê·éè`
-rl78g13_* ÈÇFvZbT^ÔÉÙÈéè`
-
-è`ÌzuÍT|[g·évZbTðâ·É©¼µªKvÆÈé©àµêÈ¢D
-àµ»óÌR[hzuÅssª¶¶éêÉÍT|[g[OXgÜÅ
-²A¸¯éÆK¢Å éD
-
-
-(3) gp·éJ­Â«Æ®ìØµ½ð
-
-RpCCyÑrhÇÉÍlTXGNgjNX»c[ðp¢éD
-®ìmFµ½o[WÍ^[QbgË¶ÌhL
-gÉLÚ·éD
-
-
-(4) ^[Qbgè`ÌKè
-
-(4-1) f[^^ÉÖ·éKè
-
-TOPPERS¤Êf[^^Ì¤¿CTOPPERSV¢ãJ[ldl(ÈºCdl)Å
-IvVµ¢Æ³êÄ¢éf[^^ðÎÛÉC^[QbgË¶ÅÌT|[góµÉÂ¢Ä
-Lq·éD±êçÌè`Í arch/ca78k0r/tool_stddef.h Åè`³êÄ¢é
-
-y®^z
-
-ET|[g
-	int8_t		t«8rbg®iIvVCC99j
-	uint8_t		³µ8rbg®iIvVCC99j
-	float32_t	IEEE754Ì32rbgP¸x®¬_iIvVj
-
-	±Ì¤¿Cfloat32_t ÍCIEEE754ÌP¸x®¬_Å éD
-
-E¢T|[g
-	int64_t		t«64rbg®iIvVCC99j
-	uint64_t	³µ64rbg®iIvVCC99j
-	double64_t	IEEE754Ì64rbg{¸x®¬_iIvVj
-	int128_t	t«128rbg®iIvVCC99j
-	uint128_t	³µ128rbg®iIvVCC99j
-
-yÅålCÅ¬lÌèz
-
-ET|[g
-	INT8_MAX			int8_tÉi[Å«éÅåliIvVCC99j
-	INT8_MIN			int8_tÉi[Å«éÅ¬liIvVCC99j
-	UINT8_MAX			uint8_tÉi[Å«éÅåliIvVCC99j
-	FLOAT32_MIN			float32_tÉi[Å«éÅ¬Ì³K»³ê½³Ì®¬_iIvVj
-	FLOAT32_MAX			float32_tÉi[Å«é\»Â\ÈÅåÌLÀ®¬_iIvVj
-
-E¢T|[g
-	INT64_MAX			int64_tÉi[Å«éÅåliIvVCC99j
-	INT64_MIN			int64_tÉi[Å«éÅ¬liIvVCC99j
-	UINT64_MAX			uint64_tÉi[Å«éÅåliIvVCC99j
-	DOUBLE64_MIN		double64_tÉi[Å«éÅ¬Ì³K»³ê½³Ì®¬_iIvVj
-	DOUBLE64_MAX		double64_tÉi[Å«é\»Â\ÈÅåÌLÀ®¬_iIvVj
-	INT128_MAX			int128_tÉi[Å«éÅåliIvVCC99j
-	INT128_MIN			int128_tÉi[Å«éÅ¬liIvVCC99j
-	UINT128_MAX			uint128_tÉi[Å«éÅåliIvVCC99j
-
-(4-2) ÝÉÖ·éKè
-
-(4-2-1) ÝnhÔÆÝÔÌÄC¼ÒÌÎ
-
-ÝnhÔ(inhno)ÆÝÔ(intno)ÍC¤ÉftHgvCIeBÌlðp¢éD
-¼ÒÍî{IÉ¯¶Ôª1Î1ÉÎ·éD]ÁÄgpÂ\ÈSÄÌÝÔÉÎµÄ
-ÝT[rX[`(ISR)ðo^Â\Å éD
-ÝÔCÝnhÔÍ <vZbT¼>.h t@CÅè`µÄ¢éD
-(á¦Î rl78g13.h ÈÇ)
-
-(4-2-2) ÝDæxÌiKiTMIN_INTPRIÌljC»ÌÝèû@
-
-J[lÇOÌÝÉÎ·éCDEF_INH,CFG_INTÍT|[g·éD
-»Ì½ßCRL78Ë¶Å CFG_INT Ìp[^ÆµÄwèÂ\ÈÝDæxÌlÍC
-RL78 ªÂÝDæxxÌlÌÍÍÉÎµÄ -1(=TMAX_INTPRI) ©ç -4 ÜÅÌ
-lðÝèÂ\Å é(¦2)(¦3)D½¾µCãq·éæ¤ÉCTMIN_INTPRI Åè`³êélÉ¶ÄC
-J[lÇyÑJ[lÇOÌÝnhÉwèÂ\ÈlÌÍÍªÏ»·éD
-
-CFG_INT ÅÝè³ê½ÝvCÉJ[lÇÌÝnhð
-o^·éêÍCTMAX_INTPRI ÈºCTMIN_INTPRI ÈãÌlðwèµÈ¯êÎÈçÈ¢D
-¼ûCJ[lÇOÌÝnhðo^·éÝvCðÝè·éêÍC
-TMIN_INTPRI æè¬³­C-4 ÈãÌlðwèµÈ¯êÎÈçÈ¢D
-
-(¦2) J[lÌÝfÌãÅÍÝDæxð -1 ©çnÜéÅ
- @  \»·é±ÆÉÈÁÄ¢é½ßCªÂ¢Ä¢éD
-
-(¦3) TMIN_INTPRI ð -4 Éµ½êCCFG_INT ÅDæx -4 ÉÝèµ½ÝvöÍC
-CPUbNóÔÉµÈ¢Àè½dÉà½dÝªÂ\ÆÈé½ßCÓªKvÅ éD
-
-(4-2-3) J[lÇOÌÝ
-
-RL78Ë¶ÅÍCJ[lÇOÌÝðT|[gµÄ¢éD
-
-TMIN_INTPRI æè¢(lÆµÄÍæè¬³¢)ÝDæxÉÝè³ê½
-ÝvCÌÝÍCJ[lÇOÌÝÆµÄp¢é±Æª
-Â\Å éDJ[lÇOÌÝÍOSÀsàÖ~ÉÈé±ÆÍÈ­
-iµ§ÉÍÝÌoûÅ²­Z¢æÔÖ~³êéjCÝ­¶ÍC
-J[lÌR[hðoR¹¸ÉÄÑo³êéD
-
-TMIN_INTPRI ÍJ[lÇÌÝÉÝè·é±ÆÌÅ«éÝDæxÌÅl
-(lÆµÄÍÅ¬l)ðè`µ½}NÅCarch/m16c_ncxx/prc_kernel.h Å
-è`³êÄ¢éDùèÅÍC-3ÆÈÁÄ¢éD±ÌlÍ^[QbgË¶Åã«ªÂ\Å éD
-
-(4-2-4) J[lÇOÌÝÌÝèû@
-
-CFG_INT, DEF_INH ðp¢ÄJ[lÇOÌÝnhðo^·éêÌ§ñÍC
-(1) DEF_INH Åo^·éÝnhÌ®«ÆµÄ TA_NONKERNEL ðwè·é±ÆC
-yÑC(2) nho^æÌÝvCªàÂÝDæxÍC
-CFG_INT Éæè TMIN_INTPRI æè­ (lÆµÄÍ¬³¢l)ÉÝè·é±ÆC
-Å éD
-
-(4-2-5) J[lÇOÌÝnhÌLqû@
-
-J[lÇOÌÝnhÍCÈºÌæ¤ÉøCßèlª¤É void ÌÖ
-ÆµÄÀ·é±ÆD
+(1) 対応しているターゲットシステムの種類・構成
+
+RL78プロセッサ依存部(以下，RL78依存部)は，ルネサスエレクトロニクス製 RL78ファミリ
+のプロセッサを主なターゲットとする．RL78ファミリは，いくつかのグループ，
+そしてまたそのグループの中に，様々な型番で表現されるプロセッサのバリエーションが
+存在している．
+
+ただし，本プロセッサ依存部において，現状では，サポートするターゲットボードとの関係から，
+RL78/G13 に関する定義のみを用意している．
+
+
+(2) プロセッサ依存部のファイル構成
+
+リアルタイムOSカーネルのプロセッサ依存部として実装する部分のみを考えた場合，
+RL78依存部の定義は，大抵の場合，全てのプロセッサに共通する部分と，
+プロセッサの型番で異なる部分(※1)とにコードを整理することが可能である．
+異なる部分についてはプロセッサ型番に基づくファイルを用意している．
+
+※1 割込み番号，割込みハンドラ番号，及び，割込み制御レジスタの配置など
+
+以上より，プロセッサ依存部のコードは，以下の命名規則に従って用意された
+ファイルへ，共通部分と可変部分とに分類して配置されている．
+
+prc_*  ： 全てのプロセッサに共通する定義
+rl78g13_* など：プロセッサ型番毎に異なる定義
+
+定義の配置はサポートするプロセッサを増やす毎に見直しが必要となるかもしれない．
+もし現状のコード配置で不都合が生じる場合にはサポートメーリングリストまで
+ご連絡頂けると幸いである．
+
+
+(3) 使用する開発環境と動作検証した条件
+
+コンパイル，及びビルド管理にはルネサスエレクトロニクス製ツールを用いる．
+動作確認したバージョンはターゲット依存部のドキュメントに記載する．
+
+
+(4) ターゲット定義事項の規定
+
+(4-1) データ型に関する規定
+
+TOPPERS共通データ型のうち，TOPPERS新世代カーネル統合仕様書(以下，統合仕様書)で
+オプション扱いとされているデータ型を対象に，ターゲット依存部でのサポート状況について
+記述する．これらの定義は arch/ca78k0r/tool_stddef.h で定義されている
+
+【整数型】
+
+・サポート
+	int8_t		符号付き8ビット整数（オプション，C99準拠）
+	uint8_t		符号無し8ビット整数（オプション，C99準拠）
+	float32_t	IEEE754準拠の32ビット単精度浮動小数点数（オプション）
+
+	このうち，float32_t は，IEEE754準拠の単精度浮動小数点数である．
+
+・未サポート
+	int64_t		符号付き64ビット整数（オプション，C99準拠）
+	uint64_t	符号無し64ビット整数（オプション，C99準拠）
+	double64_t	IEEE754準拠の64ビット倍精度浮動小数点数（オプション）
+	int128_t	符号付き128ビット整数（オプション，C99準拠）
+	uint128_t	符号無し128ビット整数（オプション，C99準拠）
+
+【最大値，最小値の定数】
+
+・サポート
+	INT8_MAX			int8_tに格納できる最大値（オプション，C99準拠）
+	INT8_MIN			int8_tに格納できる最小値（オプション，C99準拠）
+	UINT8_MAX			uint8_tに格納できる最大値（オプション，C99準拠）
+	FLOAT32_MIN			float32_tに格納できる最小の正規化された正の浮動小数点数（オプション）
+	FLOAT32_MAX			float32_tに格納できる表現可能な最大の有限浮動小数点数（オプション）
+
+・未サポート
+	INT64_MAX			int64_tに格納できる最大値（オプション，C99準拠）
+	INT64_MIN			int64_tに格納できる最小値（オプション，C99準拠）
+	UINT64_MAX			uint64_tに格納できる最大値（オプション，C99準拠）
+	DOUBLE64_MIN		double64_tに格納できる最小の正規化された正の浮動小数点数（オプション）
+	DOUBLE64_MAX		double64_tに格納できる表現可能な最大の有限浮動小数点数（オプション）
+	INT128_MAX			int128_tに格納できる最大値（オプション，C99準拠）
+	INT128_MIN			int128_tに格納できる最小値（オプション，C99準拠）
+	UINT128_MAX			uint128_tに格納できる最大値（オプション，C99準拠）
+
+(4-2) 割込み処理に関する規定
+
+(4-2-1) 割込みハンドラ番号と割込み番号の割当て，両者の対応
+
+割込みハンドラ番号(inhno)と割込み番号(intno)は，共にデフォルトプライオリティの値を用いる．
+両者は基本的に同じ番号が1対1に対応する．従って使用可能な全ての割込み番号に対して
+割込みサービスルーチン(ISR)を登録可能である．
+割込み番号，割込みハンドラ番号は <プロセッサ名>.h ファイルで定義している．
+(例えば rl78g13.h など)
+
+(4-2-2) 割込み優先度の段階数（TMIN_INTPRIの値），その設定方法
+
+カーネル管理外の割込みに対する，DEF_INH,CFG_INTはサポートする．
+そのため，RL78依存部で CFG_INT のパラメータとして指定可能な割込み優先度の値は，
+RL78 が持つ割込み優先度レベルの値の範囲に対応して -1(=TMAX_INTPRI) から -4 までの
+値を設定可能である(※2)(※3)．ただし，後述するように，TMIN_INTPRI で定義される値に応じて，
+カーネル管理及びカーネル管理外の割込みハンドラに指定可能な値の範囲が変化する．
+
+CFG_INT で設定された割込み要求ラインにカーネル管理の割込みハンドラを
+登録する場合は，TMAX_INTPRI 以下，TMIN_INTPRI 以上の値を指定しなければならない．
+他方，カーネル管理外の割込みハンドラを登録する割込み要求ラインを設定する場合は，
+TMIN_INTPRI より小さく，-4 以上の値を指定しなければならない．
+
+(※2) カーネルの割込み処理モデルの上では割込み優先度を -1 から始まる負数で
+ 　  表現することになっているため，負号がついている．
+
+(※3) TMIN_INTPRI を -4 にした場合，CFG_INT で優先度 -4 に設定した割込み要因は，
+CPUロック状態にしない限り何重にも多重割込みが可能となるため，注意が必要である．
+
+(4-2-3) カーネル管理外の割込み
+
+RL78依存部では，カーネル管理外の割込みをサポートしている．
+
+TMIN_INTPRI より高い(数値としてはより小さい)割込み優先度に設定された
+割込み要求ラインの割込みは，カーネル管理外の割込みとして用いることが
+可能である．カーネル管理外の割込みはOS実行中も禁止になることはなく
+（厳密には割込みの出口でごく短い区間禁止される），割込み発生時は，
+カーネルのコードを経由せずに呼び出される．
+
+TMIN_INTPRI はカーネル管理の割込みに設定することのできる割込み優先度の最高値
+(値としては最小値)を定義したマクロで，arch/m16c_ncxx/prc_kernel.h で
+定義されている．既定では，-3となっている．この値はターゲット依存部で上書きが可能である．
+
+(4-2-4) カーネル管理外の割込みの設定方法
+
+CFG_INT, DEF_INH を用いてカーネル管理外の割込みハンドラを登録する場合の制約は，
+(1) DEF_INH で登録する割込みハンドラの属性として TA_NONKERNEL を指定すること，
+及び，(2) ハンドラ登録先の割込み要求ラインがもつ割込み優先度は，
+CFG_INT により TMIN_INTPRI より高く (値としては小さい値)に設定すること，
+である．
+
+(4-2-5) カーネル管理外の割込みハンドラの記述方法
+
+カーネル管理外の割込みハンドラは，以下のように引数，戻り値が共に void の関数
+として実装すること．
 
 void
 interrupt_handler (void)
 {
-	/* nhÌàe */
+	/* ハンドラの内容 */
 }
 
-(4-2-6) CFG_INT Å^[QbgÆ©ÉgpÅ«éÝ®«
-
-INTÝÉÖµÄÌÝCÝvCÌgK[hÌÝèðT|[g·éD
-ÝèÅ«éÌÍCÈºÌ¢¸ê©Å éD
-	E|WeBuGbW(gKÝ)FTA_POSEDGE
-	ElKeBuGbW(gKÝ)FTA_NEGEDGE
-	E¼GbW(gKÝ)FTA_BOTHEDGE
-
-(4-2-7) dis_intÆena_intÌT|[gÌL³C»Ì§À
-
-RL78Ë¶ÅÍ dis_int yÑ ena_int ðT|[g·éD§ÀÍÁÉÈ¢D
-
-TOPPERSÝfÉ¨¯éÝvÖ~tOÍ
-RL78vZbTÌÝ}XNEtOEWX^ªÎ·éD
-
-(4-2-8) ½dÝÌT|[g
-
-½dÝðÂ·éD½¾µCJ[lÇOÌÝÌêCÝnhÌÅ
-PSWWX^ÌIErbgð¾¦IÉZbgµCÝÂÉµÈ¯êÎ½dÝª
-LøÆÈçÈ¢½ßCÓªKvÅ éD
-
-Ü½ TMIN_INTPRI==-4 ÌêCCFG_INT Å -4 ÉÝèµ½ÝÍC
-CPUbNðóÔÉ¨¢Ä¯¶Dæx -4 ÌÝªÀsÅà
-½dÉÝªó¯t¯çêéD±êÍRL78ÌvZbTÌdlÉæéàÌÅC
-PSWÌIErbgª1Å éÀèC(vZbTà\»É¨¯é)x0ÌÝ
-(ÝfÅÍDæx-4ÌÝ)ÍCPSWÌISPðgpµ½
-xÉæéÝÌ}XNðs¤±ÆªÅ«È¢D
-
-ÝDæx-4 ÌJ[lÇÌÝnhÍCPUbNðóÔÅ
-N®³êé½ßCÓªKvÅ éD
-
-(4-2-9) ÝT[rX[`àÝnhào^µÄ¢È¢Ýv
-
- éÝvCÅÝvðó¯t¯½ªC»ÌCÉÝT[rX[`yÑ
-ÝnhÌÇ¿çào^µÄ¢È¢êC_unused_interrupt (prc_support.asm) Ö
-Wv·éæ¤ÉRtBM
-[^ªÝxN^ð¶¬·éD»µÄC
-»±©ç¦ÀÉ^[·éæ¤ÉÈÁÄ¢éD
-
-
-(4-3) CPUáOÉÖ·éKè
-
-(4-3-1) CPUáOnhÔ
-
-RL78 Ë¶ÅÍBRK½ßÉæé\tgEFAÝðCPUáOÆµÄµ¤D
-CPUáOnhÔÆµÄ0 ðèUé±ÆÉ·éD
-
-eCPUáOÉÎ·é CPUáOnhÔÍÈºÌÊèD
-±êçÍ <vZbT¼>.h Åè`³êÄ¢éD
-
-		áO        áOÔ
-#define EXCNO_BRK   	0   	/* \tgEFAxN^Ý½ß */
-
-
-(4-3-2) nhðo^µÄ¢È¢CPUáOª­¶µ½Æ«
-
-­¶µ½CPUáOÉÎµÄCCPUáOnhªo^³êÄ¢È¢êC
-_unused_interrupt (prc_support.asm) ÖWv·éæ¤ÉRtBM
-[^ª
-ÝxN^ð¶¬·éD»µÄC»±©ç¦ÀÉ^[·éD
-
-(4-3-3) \tgEFAÝÌµ¢
-
-\tgEFAÝÉÎ·énhÍ DEF_EXC ÅÄÑo·±ÆÍÅ«È¢D
-êûCDEF_INH ðp¢ÄÄoµÂ\Å éªC\tgEFAÝÍµ§ÉÍ
-CPUáOÉ®·éàÌÅ èCµ©àm}XJuÅ é½ßC
-VXeR[ðÄÑo·ÈÇÌÊíÌÝnhÆ¯lÌgpÍð¯½
-ûª³ïÅ éD
-
-
-(4-4) CPUbNEÝbN
-
-ÝbNóÔÍCPSWWX^ÌIErbgÉæèÀ»µÄ¢éD
-IErbgª0ÌÆ«ÝbNóÔC1ÌÆ«ÝbNðóÔÆ·éD
-
-J[lÌCPUbNóÔÍCTMIN_INTPRI Åè`·élÉæèÙÈéD
-
-(4-4-1) TMIN_INTPRI ª -4 Ìê
-
-CPUbNóÔÍCPSWWX^ÌIErbgÉæèÀ»·éD
-IErbgª0ÌÆ«CPUbNóÔC1ÌÆ«CPUbNðóÔÆ·éD
-±ÌêCCPUbNÆÝbNÍ¯¶Å éD
-
-(4-4-2) TMIN_INTPRI ª -1 Èã -3 ÈºÌê
-
-PSWÌCT[rXEvCIeBtO(ISP{1,0})Ìlð
-(-TMIN_INTPRI+3) ÉÝè·é±ÆÅÀ»·éD
-á¦Î -3 ÌêCPSW WX^Ì ISP{1,0} ª (0,0) ÉÝè³êéD
-
-RL78 ÅÍCISP{1,0} ÉÝèµ½luÈã(lÆµÄÍ¬)vÌDæÊðÂÝª
-uÂv³êéCÆ¢¤dlÉÈÁÄ¢éDµ½ªÁÄC}XNµ½¢xæè
-êi¢lðZbg·éKvª éD
-
-
-(4-5) «\]¿pVXeÌQÆÉÖ·éKè
-
-get_utmðT|[g·é\èÅ éªÜ¾ÀµÄ¢È¢D
-
-
-(4-6) VXeú»èÌàe
-
-X^[gAbv[`ÍCVXeZbg¼ãÉÄÑo³êCÀsðJn·éD
-»ÌÛÌvZbTóÔÍÈºðOñÆµÄ¢éD
-	ESP, MAA Í¢ú»
-	EWX^oNÍ RB0
-	EPSWWX^ÌIEtOª0 (ÝbNóÔÆ¯ÌóÔ)
-	EPSWWX^ÌISP=(1,1)
-	EVXeNbNÍ¢ú»(àIV[^®ì 1MHz)
-	E¢ú»(àµ\tgEFAZbgðÆ©ÉÀµÄ¢êÎÛ³êÄ¢é)
-
-Ü¸CX^[gAbv[`Ì start (start.asm) ªÈºÌðs¤D
-	ISP, MAA Ìú»
-	ú»
-	sta_ker (startup.c) R[
-»µÄCtarget_initialize (target_config.c) ÉÄNbNÝèªsíêéD
-
-»ÌãCdispatcher (task.c) ðÀs·éOÉ CPUbNóÔ©ÂÝbNðóÔÉ
-µÄ¨­Kvª é½ßCstart_dispatch (prc_support.asm)É¨¢Ä
-PSW WX^Ì ISP yÑ IErbgðCÈºÌlÉZbg·éD
-
-(a) TMIN_INTPRI ª -1 Èº©Â -3 ÈãÌê
-	IPL=-(TMIN_INTPRI)+3 ©ÂCIErbg=1
-
-(b) TMIN_INTPRI==-4Ìê
-	IPL=3 ©ÂCIErbg=0
-
-³çÉCdispatcher Í³À[vÅ^[µÈ¢½ßCWvOÉ
-start_dispatch ÅX^bNÌú»ðsÁÄ¢éD
-
-
-(4-7) VXeI¹è
-
-VXeI¹Í call_exit_kernel (prc_support.asm) ÅX^bNðú»µC
-exit_kernel (startup.c) ðÄÑo·D
-
-»ÌãCtarget_exit (target_config.c) Å^[QbgË¶ÌI¹ðs¤D
-KèÅÍ³À[v³¹éÌÝÅÁÉ½àµÄ¢È¢D
-àµC^[QbgÅLÌI¹ðs¤Kvª éêCtarget_exit àµ­Í
-»±©çÄÑo³êéÖÅðÀ{·éD
-
-
-(5) ^C}hCoÖAÌîñ
-
-Å¬ZbgJ[lÌg£@\ÆµÄüúnhyÑA[nhª
-pÓ³êÄ¢éD±êçðgp·é½ßÉÍ^CeBbNð·é
-^C}hCoð^[QbgÅpÓ·éKvª éD
-
-
-(6) §À
-
-EJ[lÌRtBM
-[V
-	RtBM
-[VÌpX3irhãÌ\¬`FbNjÍsÁÄ¢È¢B
-	»Ì½ßC^XNCÝnhCÝT[rX[`CCPUáOnhC
-	ú»[`CI¹[`CüúnhCA[nhª
-	s³Å éêð E_PAR G[ÆµÄo·é±ÆªÅ«È¢D
-	]ÁÄAvP[VJ­ÉeXg·é±ÆÅ±êçÌÙíðo·éKvª éD
-
-E¶R[hCüsR[hÉÂ¢Ä
-	RL78vZbTË¶Í WindowsãÅ®ì·éJ­Â« CubeSuite+ ðp¢Ä
-	J­·é±ÆðOñÆµÄ¢éDTOPPERSvWFNg©çöJ³êé\[XpbP[WÍ
-	¶R[hÍSJIS, üsR[hÍ CR+LF ÆµÄöJµÄ¢éD
-
-
-(7) T|[gvZbTÌÇÁ
-
-(7-1) vZbTÌè`
-
-vZbTÉÙÈéÆµÄÍÈºÌª éD
-	ELøÈÝÔCÝnhÔCCPUáOnhÔÌÍÍ
-	EÝÔCÝnhÔCCPUáOnhÔÌèÄ
-
-]ÁÄCT|[g·évZbTðÇÁ·éêÉÍCÜ¸vZbT¼ÉîÃ­
-Ìt@CðpÓ·éDá¦Î RL78/G13 ÌêC
+(4-2-6) CFG_INT でターゲット独自に使用できる割込み属性
+
+INT割込みに関してのみ，割込み要求ラインのトリガモードの設定をサポートする．
+設定できるのは，以下のいずれかである．
+	・ポジティブエッジ(トリガ割込み)：TA_POSEDGE
+	・ネガティブエッジ(トリガ割込み)：TA_NEGEDGE
+	・両エッジ(トリガ割込み)：TA_BOTHEDGE
+
+(4-2-7) dis_intとena_intのサポートの有無，その制限事項
+
+RL78依存部では dis_int 及び ena_int をサポートする．制限事項は特にない．
+
+TOPPERS割込み処理モデルにおける割込み要求禁止フラグは
+RL78プロセッサの割込みマスク・フラグ・レジスタが対応する．
+
+(4-2-8) 多重割込みのサポート
+
+多重割込みを許可する．ただし，カーネル管理外の割込みの場合，割込みハンドラの中で
+PSWレジスタのIEビットを明示的にセットし，割込み許可にしなければ多重割込みが
+有効とならないため，注意が必要である．
+
+また TMIN_INTPRI==-4 の場合，CFG_INT で -4 に設定した割込みは，
+CPUロック解除状態において同じ優先度 -4 の割込み処理が実行中でも
+多重に割込みが受け付けられる．これはRL78のプロセッサの仕様によるもので，
+PSWのIEビットが1である限り，(プロセッサ内部表現における)レベル0の割込み
+(割込み処理モデルでは優先度-4の割込み)は，PSWのISPを使用した
+レベルによる割込みのマスクを行うことができない．
+
+割込み優先度-4 のカーネル管理の割込みハンドラはCPUロック解除状態で
+起動されるため，注意が必要である．
+
+(4-2-9) 割込みサービスルーチンも割込みハンドラも登録していない割込み要求
+
+ある割込み要求ラインで割込み要求を受け付けたが，そのラインに割込みサービスルーチン及び
+割込みハンドラのどちらも登録していない場合，_unused_interrupt (prc_support.asm) へ
+ジャンプするようにコンフィギュレータが割込みベクタを生成する．そして，
+そこから即座にリターンするようになっている．
+
+
+(4-3) CPU例外処理に関する規定
+
+(4-3-1) CPU例外ハンドラ番号
+
+RL78 依存部ではBRK命令によるソフトウェア割込みをCPU例外として扱う．
+CPU例外ハンドラ番号として0 を割り振ることにする．
+
+各CPU例外に対する CPU例外ハンドラ番号は以下の通り．
+これらは <プロセッサ名>.h で定義されている．
+
+		例外        例外番号
+#define EXCNO_BRK   	0   	/* ソフトウェアベクタ割込み命令 */
+
+
+(4-3-2) ハンドラを登録していないCPU例外が発生したとき
+
+発生したCPU例外に対して，CPU例外ハンドラが登録されていない場合，
+_unused_interrupt (prc_support.asm) へジャンプするようにコンフィギュレータが
+割込みベクタを生成する．そして，そこから即座にリターンする．
+
+(4-3-3) ソフトウェア割込みの扱い
+
+ソフトウェア割込みに対するハンドラは DEF_EXC で呼び出すことはできない．
+一方，DEF_INH を用いて呼出し可能であるが，ソフトウェア割込みは厳密には
+CPU例外に属するものであり，しかもノンマスカブルであるため，
+システムコールを呼び出すなどの通常の割込みハンドラと同様の使用は避けた
+方が無難である．
+
+
+(4-4) CPUロック・割込みロック
+
+割込みロック状態は，PSWレジスタのIEビットにより実現している．
+IEビットが0のとき割込みロック状態，1のとき割込みロック解除状態とする．
+
+カーネルのCPUロック状態は，TMIN_INTPRI で定義する値により異なる．
+
+(4-4-1) TMIN_INTPRI が -4 の場合
+
+CPUロック状態は，PSWレジスタのIEビットにより実現する．
+IEビットが0のときCPUロック状態，1のときCPUロック解除状態とする．
+この場合，CPUロックと割込みロックは同じである．
+
+(4-4-2) TMIN_INTPRI が -1 以上 -3 以下の場合
+
+PSWのインサービス・プライオリティフラグ(ISP{1,0})の値を
+(-TMIN_INTPRI+3) に設定することで実現する．
+例えば -3 の場合，PSW レジスタの ISP{1,0} が (0,0) に設定される．
+
+RL78 では，ISP{1,0} に設定した値「以上(値としては小)」の優先順位を持つ割込みが
+「許可」される，という仕様になっている．したがって，マスクしたいレベルより
+一段高い値をセットする必要がある．
+
+
+(4-5) 性能評価用システム時刻の参照に関する規定
+
+get_utmをサポートする予定であるがまだ実装していない．
+
+
+(4-6) システム初期化手順の内容
+
+スタートアップルーチンは，システムリセット直後に呼び出され，実行を開始する．
+その際のプロセッサ状態は以下を前提としている．
+	・SP, MAA は未初期化
+	・レジスタバンクは RB0
+	・PSWレジスタのIEフラグが0 (割込みロック状態と同等の状態)
+	・PSWレジスタのISP=(1,1)
+	・システムクロックは未初期化(内部オシレータ動作 1MHz)
+	・メモリ未初期化(もしソフトウェアリセットを独自に実装していれば保持されている)
+
+まず，スタートアップルーチンの start (start.asm) が以下の処理を行う．
+	ISP, MAA の初期化
+	メモリ初期化
+	sta_ker (startup.c) コール
+そして，target_initialize (target_config.c) にてクロック設定が行われる．
+
+その後，dispatcher (task.c) を実行する前に CPUロック状態かつ割込みロック解除状態に
+しておく必要があるため，start_dispatch (prc_support.asm)において
+PSW レジスタの ISP 及び IEビットを，以下の値にセットする．
+
+(a) TMIN_INTPRI が -1 以下かつ -3 以上の場合
+	IPL=-(TMIN_INTPRI)+3 かつ，IEビット=1
+
+(b) TMIN_INTPRI==-4の場合
+	IPL=3 かつ，IEビット=0
+
+さらに，dispatcher は無限ループでリターンしないため，ジャンプ前に
+start_dispatch でスタックの初期化を行っている．
+
+
+(4-7) システム終了手順
+
+システム終了時は call_exit_kernel (prc_support.asm) でスタックを初期化し，
+exit_kernel (startup.c) を呼び出す．
+
+その後，target_exit (target_config.c) でターゲット依存の終了を行う．
+規定では無限ループさせるのみで特に何もしていない．
+もし，ターゲット固有の終了処理を行う必要がある場合，target_exit もしくは
+そこから呼び出される関数で処理を実施する．
+
+
+(5) タイマドライバ関連の情報
+
+最小セットカーネルの拡張機能として周期ハンドラ及びアラームハンドラが
+用意されている．これらを使用するためにはタイムティックを供給する
+タイマドライバをターゲットで用意する必要がある．
+
+
+(6) 制限事項
+
+・カーネルのコンフィギュレーション
+	コンフィギュレーションのパス3（ビルド後の構成チェック）は行っていない。
+	そのため，タスク，割込みハンドラ，割込みサービスルーチン，CPU例外ハンドラ，
+	初期化処理ルーチン，終了処理ルーチン，周期ハンドラ，アラームハンドラが
+	不正である場合を E_PAR エラーとして検出することができない．
+	従ってアプリケーション開発時にテストすることでこれらの異常を検出する必要がある．
+
+・文字コード，改行コードについて
+	RL78プロセッサ依存部は Windows上で動作する開発環境 CubeSuite+ を用いて
+	開発することを前提としている．TOPPERSプロジェクトから公開されるソースパッケージは
+	文字コードはSJIS, 改行コードは CR+LF として公開している．
+
+
+(7) サポートプロセッサの追加
+
+(7-1) プロセッサ毎の定義事項
+
+プロセッサ毎に異なる事項としては以下の事項がある．
+	・有効な割込み番号，割込みハンドラ番号，CPU例外ハンドラ番号の範囲
+	・割込み番号，割込みハンドラ番号，CPU例外ハンドラ番号の割り当て
+
+従って，サポートするプロセッサを追加する場合には，まずプロセッサ名に基づく
+次のファイルを用意する．例えば RL78/G13 の場合，
 	rl78g13.h
-		ÝÔCÝnhÔCCPUáOnhÔÌè`
+		割込み番号，割込みハンドラ番号，CPU例外ハンドラ番号の定義
 	rl78g13_config.h
-		ÝÔÌÅål(INTNO_MAX), LøÈÝÔ
+		割込み番号の最大値(INTNO_MAX), 有効な割込み番号
 	rl78g13.tf
-		ECFG_INT, DEF_INH, ATT_ISR, DEF_EXC ÈÇÅwèÂ\Èp[^lÌè`
-			ELøÈÝÔCÝnhÔCCPUáOnhÔÌÍÍÌè`
+		・CFG_INT, DEF_INH, ATT_ISR, DEF_EXC などで指定可能なパラメータ値の定義
+			・有効な割込み番号，割込みハンドラ番号，CPU例外ハンドラ番号の範囲の定義
 				$INTNO_VALID
 				$INHNO_VALID
 				$EXCNO_VALID
-			EÝÔCÝnhÔCCPUáOnhÔÌÍÍ(³ølàÜÞ)
+			・割込み番号，割込みハンドラ番号，CPU例外ハンドラ番号の範囲(無効値も含む)
 				$INTNO_RANGE 
 				$INHNO_RANGE 
 				$EXCNO_RANGE 
 
-»µÄ±êçªCrhßöÅgp³êéæ¤ÉC^[QbgË¶Ìt@C©ç
-±êçðCN[h·éD
-	rl78g13_config.h ÌêCtarget_config.h ©ç
-	rl78g13.h ÌêC<^[Qbg¼Ì>.h ©ç
-	rl78g13.tf ÌêC^[QbgË¶ÌCFGpev[gt@C(target.tf) ©ç
-		Etarget.tf ÅÍCprc.tf ðCN[h·éOÉCgp·é^[QbgvZbTÌ
-		@CFGpev[gt@C(±ÌêCrl78g13.tf)ðCN[h·é±ÆD
-
-Ü½C±êçÌt@C©çC»ê¼êÌt@CÉÎ·é¤ÊªÌ
-t@CðCN[h·é
-	rl78g13_config.h ÌêCprc_config.h ð
-	rl78g13.tf ÌêCprc.tf (M16Ct@~ÌSvZbTÉ¤ÊÌtf)ð
-
-ãLÈOÉCprc_ Åè`³êÄ¢éÌÉC±êÜÅÆÍÙÈéè`Ìdûð
-µÈ¯êÎÈçÈ¢àÌªoÄ­é©àµêÈ¢D»ÌêÍCè`Ìzuð
-ÏX·éKvª é½ßCT|[g[OXgÖñ¸¯êÎK¢Å éD
-ñ¸¢½êCÈ~Ìo[WAbvÉÄÎ·é\èÅ éD
-
-
-ÏXð
-2014/8/21  EVKì¬
-2014/9/05  ETMIN_INTPRI ª -4 ÌêÉàÎµ½½ßCÖAÓðÇLD
-2014/10/14 ETMIN_INTPRI ª -4 ÌêÌ½dÝÉÂ¢ÄÓðÇL(4-2-2,4-2-8)D
-           ETMIN_INTPRI ð -4 Éµ½êÉAZuÌIvVðÏX·é
-           @KvªÈ­ÈÁ½½ßCêLÚðíD(4-4-1)
-           EVXeú»èÅÌàeÉÂ¢Ä TMIN_INTPRI ª -4 ÌêðÇÁ(4-6)D
-2014/10/15 E½dÝÌÓÉÂ¢ÄêC³(4-2-8)D
-2015/6/2   ESSP-1.3.0Î
-Èã
+そしてこれらが，ビルド過程で使用されるように，ターゲット依存部のファイルから
+これらをインクルードする．
+	rl78g13_config.h の場合，target_config.h から
+	rl78g13.h の場合，<ターゲット名称>.h から
+	rl78g13.tf の場合，ターゲット依存部のCFG用テンプレートファイル(target.tf) から
+		・target.tf では，prc.tf をインクルードする前に，使用するターゲットプロセッサの
+		　CFG用テンプレートファイル(この場合，rl78g13.tf)をインクルードすること．
+
+また，これらのファイルから，それぞれのファイルに対応する共通部分の
+ファイルをインクルードする
+	rl78g13_config.h の場合，prc_config.h を
+	rl78g13.tf の場合，prc.tf (M16Cファミリの全プロセッサに共通のtf)を
+
+上記以外に，prc_ で定義されている事項の中に，これまでとは異なる定義の仕方を
+しなければならないものが出てくるかもしれない．その場合は，定義の配置を
+変更する必要があるため，サポートメーリングリストへ報告頂ければ幸いである．
+報告頂いた場合，以降のバージョンアップにて対応する予定である．
+
+
+○変更履歴
+2014/8/21  ・新規作成
+2014/9/05  ・TMIN_INTPRI が -4 の場合にも対応したため，関連箇所を追記．
+2014/10/14 ・TMIN_INTPRI が -4 の場合の多重割込みについて注意事項を追記(4-2-2,4-2-8)．
+           ・TMIN_INTPRI を -4 にした場合にアセンブラのオプションを変更する
+           　必要がなくなったため，一部記載を削除．(4-4-1)
+           ・システム初期化手順での処理内容について TMIN_INTPRI が -4 の場合を追加(4-6)．
+2014/10/15 ・多重割込みの注意事項について一部修正(4-2-8)．
+2015/6/2   ・SSP-1.3.0対応
+以上
Index: ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/rl78g13.h
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/rl78g13.h	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/rl78g13.h	(revision 95)
@@ -7,39 +7,35 @@
  *             Nagoya Municipal Industrial Research Institute, JAPAN
  * 
- *  ãLì ÒÍCÈºÌ (1)`(4) Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»EüÏE
- *  ÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 
- *      \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[X
- *      R[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Égp
- *      Å«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gipÒ}
- *      j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºLÌ³Û
- *      ØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Égp
- *      Å«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌì
- *         \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉñ
- *        ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹Q
- *      ©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆDÜ½C
- *      {\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©ÈéRÉîÃ
- *      ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
+ *  上記著作権者は，以下の (1)〜(4) の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改変・
+ *  再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作権
+ *      表示，この利用条件および下記の無保証規定が，そのままの形でソース
+ *      コード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使用
+ *      できる形で再配布する場合には，再配布に伴うドキュメント（利用者マ
+ *      ニュアルなど）に，上記の著作権表示，この利用条件および下記の無保
+ *      証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使用
+ *      できない形で再配布する場合には，次のいずれかの条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著作
+ *        権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに報
+ *        告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害
+ *      からも，上記著作権者およびTOPPERSプロジェクトを免責すること．また，
+ *      本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ
+ *      く請求からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨æ
- *  ÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚIÉÎ·
- *  éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEFAÌp
- *  Éæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»ÌÓCð
- *  íÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者およ
+ *  びTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的に対す
+ *  る適合性も含めて，いかなる保証も行わない．また，本ソフトウェアの利用
+ *  により直接的または間接的に生じたいかなる損害に関しても，その責任を負
+ *  わない．
  * 
  */
 
 /*
- *  RL78/G13ÉË¶·éè`
+ *  RL78/G13に依存する定義
  */
 
@@ -49,236 +45,236 @@
 
 /*
- *  CPUáOnhÔÌè`
- */
-#define EXCNO_BRK	0	/* \tgEFAxN^Ý½ß */
-
-/*
- *  ÝÔÌè`(ftHgvCIeBÌlðÝÔÆ·é)
- */
-#define	INTNO_INTWDTI   	0	/* EHb`hbOE^C} */
-#define INTNO_INTLV1    	1	/* d³o */
-#define INTNO_INTP0     	2	/* [qüÍGbWo */
-#define INTNO_INTP1     	3	/* [qüÍGbWo */
-#define INTNO_INTP2     	4	/* [qüÍGbWo */
-#define INTNO_INTP3     	5	/* [qüÍGbWo */
-#define INTNO_INTP4     	6	/* [qüÍGbWo */
-#define INTNO_INTP5     	7	/* [qüÍGbWo */
-
-#define INTNO_INTST2    	8	/* UART2 MÌ]®¹Cobt@ó«Ý */
-#define INTNO_INTCSI20  	8	/* CSI20 Ì]®¹Cobt@ó«Ý */
-#define INTNO_IIC20     	8	/* IIC20 Ì]®¹ */
-
-#define INTNO_INTSR2    	9	/* UART2 óMÌ]®¹ */
-#define INTNO_INTSCI21  	9	/* CSI21 Ì]®¹ */
-#define INTNO_INTIIC21  	9	/* IIC21 Ì]®¹ */
-
-#define INTNO_SRE2      	10	/* UART2 óMÌÊMG[­¶ */
-#define INTNO_INTTM11H  	10	/* ^C}E`l11ÌJEg®¹Ü½ÍLv`®¹(8rbg^C}®ì) */
-
-#define INTNO_INTDMA0   	11	/* DMA0 Ì]®¹ */
-#define INTNO_INTDMA1   	12	/* DMA1 Ì]®¹ */
-
-#define INTNO_INTST0    	13	/* UART0 MÌ]®¹Cobt@ó«Ý */
-#define INTNO_INTCSI00  	13	/* CSI00 Ì]®¹, obt@ó«Ý */
-#define INTNO_INTIIC00  	13	/* IIC00 Ì]®¹ */
-
-#define INTNO_INTSR0    	14	/* UART0 óMÌ]®¹Cobt@ó«Ý */
-#define INTNO_INTCSI01  	14	/* CSI01 Ì]®¹, obt@ó«Ý */
-#define INTNO_INTIIC01  	14	/* IIC01 Ì]®¹ */
-
-#define INTNO_SRE0      	15	/* UART0 óMÌÊMG[­¶ */
-#define INTNO_INTTM01H  	15	/* ^C}E`l01ÌJEg®¹Ü½ÍLv`®¹(8rbg^C}®ì) */
-
-#define INTNO_INTST1    	16	/* UART1 MÌ]®¹Cobt@ó«Ý */
-#define INTNO_INTCSI10  	16	/* CSI10 Ì]®¹, obt@ó«Ý */
-#define INTNO_INTIIC10  	16	/* IIC10 Ì]®¹ */
-
-#define INTNO_INTSR1    	17	/* UART1 óMÌ]®¹Cobt@ó«Ý */
-#define INTNO_INTCSI11  	17	/* CSI11 Ì]®¹, obt@ó«Ý */
-#define INTNO_INTIIC11  	17	/* IIC11 Ì]®¹ */
-
-#define INTNO_SRE1      	18	/* UART1 óMÌÊMG[­¶ */
-#define INTNO_INTTM03H  	18	/* ^C}E`l03ÌJEg®¹Ü½ÍLv`®¹(8rbg^C}®ì) */
-
-#define INTNO_INTIICA0  	19	/* IICA0 ÊM®¹ */
-#define INTNO_INTTM00   	20	/* ^C}E`l00ÌJEg®¹Ü½ÍLv`®¹ */
-#define INTNO_INTTM01   	21	/* ^C}E`l01ÌJEg®¹Ü½ÍLv`®¹(16rbg/ºÊ8rbg^C}®ì) */
-#define INTNO_INTTM02   	22	/* ^C}E`l02ÌJEg®¹Ü½ÍLv`®¹ */
-#define INTNO_INTTM03   	23	/* ^C}E`l03ÌJEg®¹Ü½ÍLv`®¹(16rbg/ºÊ8rbg^C}®ì) */
-#define INTNO_INTAD     	24	/* A/DÏ·®¹ */
-#define INTNO_INTRTC     	25	/* A^CENbNÌèüúM/A[êvo */
-#define INTNO_INTIT     	26	/* 12rbgEC^[oE^C}ÌC^[oMo */
-#define INTNO_INTKR     	27	/* L[E^[EMo */
-
-#define INTNO_INTST3    	28	/* UART3 MÌ]®¹Cobt@ó«Ý */
-#define INTNO_INTCSI30  	28	/* CSI30 Ì]®¹, obt@ó«Ý */
-#define INTNO_INTIIC30  	28	/* IIC30 Ì]®¹ */
-
-#define INTNO_INTSR3    	29	/* UART3 óMÌ]®¹Cobt@ó«Ý */
-#define INTNO_INTCSI31  	29	/* CSI31 Ì]®¹, obt@ó«Ý */
-#define INTNO_INTIIC31  	29	/* IIC31 Ì]®¹ */
-
-#define INTNO_INTTM13   	30	/* ^C}E`l13ÌJEg®¹Ü½ÍLv`®¹(16rbg/ºÊ8rbg^C}®ì) */
-#define INTNO_INTTM04   	31	/* ^C}E`l04ÌJEg®¹Ü½ÍLv`®¹ */
-#define INTNO_INTTM05   	32	/* ^C}E`l05ÌJEg®¹Ü½ÍLv`®¹ */
-#define INTNO_INTTM06   	33	/* ^C}E`l06ÌJEg®¹Ü½ÍLv`®¹ */
-#define INTNO_INTTM07   	34	/* ^C}E`l07ÌJEg®¹Ü½ÍLv`®¹ */
-
-#define INTNO_INTP6     	35	/* [qüÍGbWo */
-#define INTNO_INTP7     	36	/* [qüÍGbWo */
-#define INTNO_INTP8     	37	/* [qüÍGbWo */
-#define INTNO_INTP9     	38	/* [qüÍGbWo */
-#define INTNO_INTP10     	39	/* [qüÍGbWo */
-#define INTNO_INTP11     	40	/* [qüÍGbWo */
-
-#define INTNO_INTTM10   	41	/* ^C}E`l10ÌJEg®¹Ü½ÍLv`®¹ */
-#define INTNO_INTTM11   	42	/* ^C}E`l11ÌJEg®¹Ü½ÍLv`®¹(16rbg/ºÊ8rbg^C}®ì) */
-#define INTNO_INTTM12   	43	/* ^C}E`l12ÌJEg®¹Ü½ÍLv`®¹ */
-
-#define INTNO_SRE3      	44	/* UART3 óMÌÊMG[­¶ */
-#define INTNO_INTTM13H  	44	/* ^C}E`l13ÌJEg®¹Ü½ÍLv`®¹(8rbg^C}®ì) */
-
-#define INTNO_INTMD     	45	/* Z½ßI¹/ÏaZÊÌI[o[t[­¶ */
-#define INTNO_INTIICA1  	46	/* IICA1 ÊM®¹ */
-#define INTNO_INTFL     	47	/* \ñ */
-#define INTNO_INTDMA2   	48	/* DMA2Ì]®¹ */
-#define INTNO_INTDMA3   	49	/* DMA3Ì]®¹ */
-#define INTNO_INTTM14   	50	/* ^C}E`l14ÌJEg®¹Ü½ÍLv`®¹ */
-#define INTNO_INTTM15   	51	/* ^C}E`l15ÌJEg®¹Ü½ÍLv`®¹ */
-#define INTNO_INTTM16   	52	/* ^C}E`l16ÌJEg®¹Ü½ÍLv`®¹ */
-#define INTNO_INTTM17   	53	/* ^C}E`l17ÌJEg®¹Ü½ÍLv`®¹ */
-
-
-/*
- *  ÝnhÔÌè`
- */
-#define	INHNO_INTWDTI   	INTNO_INTWDTI   	/* EHb`hbOE^C} */
-#define INHNO_INTLV1    	INTNO_INTLV1    	/* d³o */
-#define INHNO_INTP0     	INTNO_INTP0     	/* [qüÍGbWo */
-#define INHNO_INTP1     	INTNO_INTP1     	/* [qüÍGbWo */
-#define INHNO_INTP2     	INTNO_INTP2     	/* [qüÍGbWo */
-#define INHNO_INTP3     	INTNO_INTP3     	/* [qüÍGbWo */
-#define INHNO_INTP4     	INTNO_INTP4     	/* [qüÍGbWo */
-#define INHNO_INTP5     	INTNO_INTP5     	/* [qüÍGbWo */
-                        
-#define INHNO_INTST2    	INTNO_INTST2    	/* UART2 MÌ]®¹Cobt@ó«Ý */
-#define INHNO_INTCSI20  	INTNO_INTCSI20  	/* CSI20 Ì]®¹Cobt@ó«Ý */
-#define INHNO_IIC20     	INTNO_IIC20     	/* IIC20 Ì]®¹ */
-                        
-#define INHNO_INTSR2    	INTNO_INTSR2    	/* UART2 óMÌ]®¹ */
-#define INHNO_INTSCI21  	INTNO_INTSCI21  	/* CSI21 Ì]®¹ */
-#define INHNO_INTIIC21  	INTNO_INTIIC21  	/* IIC21 Ì]®¹ */
-                        
-#define INHNO_SRE2      	INTNO_SRE2      	/* UART2 óMÌÊMG[­¶ */
-#define INHNO_INTTM11H  	INTNO_INTTM11H  	/* ^C}E`l11ÌJEg®¹Ü½ÍLv`®¹(8rbg^C}®ì) */
-                        
-#define INHNO_INTDMA0   	INTNO_INTDMA0   	/* DMA0 Ì]®¹ */
-#define INHNO_INTDMA1   	INTNO_INTDMA1   	/* DMA1 Ì]®¹ */
-                        
-#define INHNO_INTST0    	INTNO_INTST0    	/* UART0 MÌ]®¹Cobt@ó«Ý */
-#define INHNO_INTCSI00  	INTNO_INTCSI00  	/* CSI00 Ì]®¹, obt@ó«Ý */
-#define INHNO_INTIIC00  	INTNO_INTIIC00  	/* IIC00 Ì]®¹ */
-                        
-#define INHNO_INTSR0    	INTNO_INTSR0    	/* UART0 óMÌ]®¹Cobt@ó«Ý */
-#define INHNO_INTCSI01  	INTNO_INTCSI01  	/* CSI01 Ì]®¹, obt@ó«Ý */
-#define INHNO_INTIIC01  	INTNO_INTIIC01  	/* IIC01 Ì]®¹ */
-                        
-#define INHNO_SRE0      	INTNO_SRE0      	/* UART0 óMÌÊMG[­¶ */
-#define INHNO_INTTM01H  	INTNO_INTTM01H  	/* ^C}E`l01ÌJEg®¹Ü½ÍLv`®¹(8rbg^C}®ì) */
-                        
-#define INHNO_INTST1    	INTNO_INTST1    	/* UART1 MÌ]®¹Cobt@ó«Ý */
-#define INHNO_INTCSI10  	INTNO_INTCSI10  	/* CSI10 Ì]®¹, obt@ó«Ý */
-#define INHNO_INTIIC10  	INTNO_INTIIC10  	/* IIC10 Ì]®¹ */
-                        
-#define INHNO_INTSR1    	INTNO_INTSR1    	/* UART1 óMÌ]®¹Cobt@ó«Ý */
-#define INHNO_INTCSI11  	INTNO_INTCSI11  	/* CSI11 Ì]®¹, obt@ó«Ý */
-#define INHNO_INTIIC11  	INTNO_INTIIC11  	/* IIC11 Ì]®¹ */
-                        
-#define INHNO_SRE1      	INTNO_SRE1      	/* UART1 óMÌÊMG[­¶ */
-#define INHNO_INTTM03H  	INTNO_INTTM03H  	/* ^C}E`l03ÌJEg®¹Ü½ÍLv`®¹(8rbg^C}®ì) */
-                        
-#define INHNO_INTIICA0  	INTNO_INTIICA0  	/* IICA0 ÊM®¹ */
-#define INHNO_INTTM00   	INTNO_INTTM00   	/* ^C}E`l00ÌJEg®¹Ü½ÍLv`®¹ */
-#define INHNO_INTTM01   	INTNO_INTTM01   	/* ^C}E`l01ÌJEg®¹Ü½ÍLv`®¹(16rbg/ºÊ8rbg^C}®ì) */
-#define INHNO_INTTM02   	INTNO_INTTM02   	/* ^C}E`l02ÌJEg®¹Ü½ÍLv`®¹ */
-#define INHNO_INTTM03   	INTNO_INTTM03   	/* ^C}E`l03ÌJEg®¹Ü½ÍLv`®¹(16rbg/ºÊ8rbg^C}®ì) */
-#define INHNO_INTAD     	INTNO_INTAD     	/* A/DÏ·®¹ */
-#define INHNO_INTRTC     	INTNO_INTRTC    	/* A^CENbNÌèüúM/A[êvo */
-#define INHNO_INTIT     	INTNO_INTIT     	/* 12rbgEC^[oE^C}ÌC^[oMo */
-#define INHNO_INTKR     	INTNO_INTKR     	/* L[E^[EMo */
-                        
-#define INHNO_INTST3    	INTNO_INTST3    	/* UART3 MÌ]®¹Cobt@ó«Ý */
-#define INHNO_INTCSI30  	INTNO_INTCSI30  	/* CSI30 Ì]®¹, obt@ó«Ý */
-#define INHNO_INTIIC30  	INTNO_INTIIC30  	/* IIC30 Ì]®¹ */
-                        
-#define INHNO_INTSR3    	INTNO_INTSR3    	/* UART3 óMÌ]®¹Cobt@ó«Ý */
-#define INHNO_INTCSI31  	INTNO_INTCSI31  	/* CSI31 Ì]®¹, obt@ó«Ý */
-#define INHNO_INTIIC31  	INTNO_INTIIC31  	/* IIC31 Ì]®¹ */
-                        
-#define INHNO_INTTM13   	INTNO_INTTM13   	/* ^C}E`l13ÌJEg®¹Ü½ÍLv`®¹(16rbg/ºÊ8rbg^C}®ì) */
-#define INHNO_INTTM04   	INTNO_INTTM04   	/* ^C}E`l04ÌJEg®¹Ü½ÍLv`®¹ */
-#define INHNO_INTTM05   	INTNO_INTTM05   	/* ^C}E`l05ÌJEg®¹Ü½ÍLv`®¹ */
-#define INHNO_INTTM06   	INTNO_INTTM06   	/* ^C}E`l06ÌJEg®¹Ü½ÍLv`®¹ */
-#define INHNO_INTTM07   	INTNO_INTTM07   	/* ^C}E`l07ÌJEg®¹Ü½ÍLv`®¹ */
-                        
-#define INHNO_INTP6     	INTNO_INTP6     	/* [qüÍGbWo */
-#define INHNO_INTP7     	INTNO_INTP7     	/* [qüÍGbWo */
-#define INHNO_INTP8     	INTNO_INTP8     	/* [qüÍGbWo */
-#define INHNO_INTP9     	INTNO_INTP9     	/* [qüÍGbWo */
-#define INHNO_INTP10     	INTNO_INTP10    	/* [qüÍGbWo */
-#define INHNO_INTP11     	INTNO_INTP11    	/* [qüÍGbWo */
-                        
-#define INHNO_INTTM10   	INTNO_INTTM10   	/* ^C}E`l10ÌJEg®¹Ü½ÍLv`®¹ */
-#define INHNO_INTTM11   	INTNO_INTTM11   	/* ^C}E`l11ÌJEg®¹Ü½ÍLv`®¹(16rbg/ºÊ8rbg^C}®ì) */
-#define INHNO_INTTM12   	INTNO_INTTM12   	/* ^C}E`l12ÌJEg®¹Ü½ÍLv`®¹ */
-                        
-#define INHNO_SRE3      	INTNO_SRE3      	/* UART3 óMÌÊMG[­¶ */
-#define INHNO_INTTM13H  	INTNO_INTTM13H  	/* ^C}E`l13ÌJEg®¹Ü½ÍLv`®¹(8rbg^C}®ì) */
-                        
-#define INHNO_INTMD     	INTNO_INTMD     	/* Z½ßI¹/ÏaZÊÌI[o[t[­¶ */
-#define INHNO_INTIICA1  	INTNO_INTIICA1  	/* IICA1 ÊM®¹ */
-#define INHNO_INTFL     	INTNO_INTFL     	/* \ñ */
-#define INHNO_INTDMA2   	INTNO_INTDMA2   	/* DMA2Ì]®¹ */
-#define INHNO_INTDMA3   	INTNO_INTDMA3   	/* DMA3Ì]®¹ */
-#define INHNO_INTTM14   	INTNO_INTTM14   	/* ^C}E`l14ÌJEg®¹Ü½ÍLv`®¹ */
-#define INHNO_INTTM15   	INTNO_INTTM15   	/* ^C}E`l15ÌJEg®¹Ü½ÍLv`®¹ */
-#define INHNO_INTTM16   	INTNO_INTTM16   	/* ^C}E`l16ÌJEg®¹Ü½ÍLv`®¹ */
-#define INHNO_INTTM17   	INTNO_INTTM17   	/* ^C}E`l17ÌJEg®¹Ü½ÍLv`®¹ */
-
-
-/*
- *  Ý§äWX^è`
- */
-#define TADR_IF0L	0xfffe0 	// ÝvtOEWX^
-#define TADR_IF2L	0xfffd0 	// ÝvtOEWX^
-#define TADR_MK0L	0xfffe4 	// Ý}XNEtOEWX^
-#define TADR_MK2L	0xfffd4 	// Ý}XNEtOEWX^
-#define TADR_PR00L	0xfffe8 	// DæÊwètOEWX^
-#define TADR_PR02L	0xfffd8 	// DæÊwètOEWX^
-#define TADR_EGP0	0xfff38 	// OÝ§¿ãªèGbWÂWX^
-#define TADR_EGP1	0xfff3a 	// OÝ§¿ãªèGbWÂWX^
-
-
-#define TADR_PER0	0xf00f0 	// üÓCl[uWX^0
-
-#define TBIT_PER0_TAU0EN	UINT8_C(0x01)	// ^C}EACEjbg0ÌüÍNbN§ä
-#define TBIT_PER0_SAU0EN	UINT8_C(0x04)	// VAEACEjbg0ÌüÍNbN§ä
-
-/*
- *  NbN­¶ñH
- */
-#define TADR_CMC	0xfffa0 	// NbN®ì[h§äWX^
-#define TADR_CKC	0xfffa4 	// NbN®ì[h§äWX^
-#define TADR_CSC	0xfffa1 	// NbN®ìXe[^X§äWX^
-#define TADR_OSTC	0xfffa2 	// ­UÀèÔJE^óÔWX^
-
-/*
- *  ^C}EACÖAWX^(VXeeBbNp)
- */
-#define TADR_TPS0	0xf01b6 	// ^C}ENbNIðWX^0
-#define TADR_TMR00	0xf0190 	// ^C}E[hEWX^00
-#define TADR_TDR00	0xfff18 	// ^C}Ef[^EWX^00
-#define TADR_TS0	0xf01b2 	// ^C}E`lâ~WX^0
-#define TADR_TT0	0xf01b4 	// ^C}E`lâ~WX^0
+ *  CPU例外ハンドラ番号の定義
+ */
+#define EXCNO_BRK	0	/* ソフトウェアベクタ割込み命令 */
+
+/*
+ *  割込み番号の定義(デフォルトプライオリティの値を割込み番号とする)
+ */
+#define	INTNO_INTWDTI   	0	/* ウォッチドッグ・タイマ */
+#define INTNO_INTLV1    	1	/* 電圧検出 */
+#define INTNO_INTP0     	2	/* 端子入力エッジ検出 */
+#define INTNO_INTP1     	3	/* 端子入力エッジ検出 */
+#define INTNO_INTP2     	4	/* 端子入力エッジ検出 */
+#define INTNO_INTP3     	5	/* 端子入力エッジ検出 */
+#define INTNO_INTP4     	6	/* 端子入力エッジ検出 */
+#define INTNO_INTP5     	7	/* 端子入力エッジ検出 */
+
+#define INTNO_INTST2    	8	/* UART2 送信の転送完了，バッファ空き割込み */
+#define INTNO_INTCSI20  	8	/* CSI20 の転送完了，バッファ空き割込み */
+#define INTNO_IIC20     	8	/* IIC20 の転送完了 */
+
+#define INTNO_INTSR2    	9	/* UART2 受信の転送完了 */
+#define INTNO_INTSCI21  	9	/* CSI21 の転送完了 */
+#define INTNO_INTIIC21  	9	/* IIC21 の転送完了 */
+
+#define INTNO_SRE2      	10	/* UART2 受信の通信エラー発生 */
+#define INTNO_INTTM11H  	10	/* タイマ・チャネル11のカウント完了またはキャプチャ完了(8ビットタイマ動作時) */
+
+#define INTNO_INTDMA0   	11	/* DMA0 の転送完了 */
+#define INTNO_INTDMA1   	12	/* DMA1 の転送完了 */
+
+#define INTNO_INTST0    	13	/* UART0 送信の転送完了，バッファ空き割込み */
+#define INTNO_INTCSI00  	13	/* CSI00 の転送完了, バッファ空き割込み */
+#define INTNO_INTIIC00  	13	/* IIC00 の転送完了 */
+
+#define INTNO_INTSR0    	14	/* UART0 受信の転送完了，バッファ空き割込み */
+#define INTNO_INTCSI01  	14	/* CSI01 の転送完了, バッファ空き割込み */
+#define INTNO_INTIIC01  	14	/* IIC01 の転送完了 */
+
+#define INTNO_SRE0      	15	/* UART0 受信の通信エラー発生 */
+#define INTNO_INTTM01H  	15	/* タイマ・チャネル01のカウント完了またはキャプチャ完了(8ビットタイマ動作時) */
+
+#define INTNO_INTST1    	16	/* UART1 送信の転送完了，バッファ空き割込み */
+#define INTNO_INTCSI10  	16	/* CSI10 の転送完了, バッファ空き割込み */
+#define INTNO_INTIIC10  	16	/* IIC10 の転送完了 */
+
+#define INTNO_INTSR1    	17	/* UART1 受信の転送完了，バッファ空き割込み */
+#define INTNO_INTCSI11  	17	/* CSI11 の転送完了, バッファ空き割込み */
+#define INTNO_INTIIC11  	17	/* IIC11 の転送完了 */
+
+#define INTNO_SRE1      	18	/* UART1 受信の通信エラー発生 */
+#define INTNO_INTTM03H  	18	/* タイマ・チャネル03のカウント完了またはキャプチャ完了(8ビットタイマ動作時) */
+
+#define INTNO_INTIICA0  	19	/* IICA0 通信完了 */
+#define INTNO_INTTM00   	20	/* タイマ・チャネル00のカウント完了またはキャプチャ完了 */
+#define INTNO_INTTM01   	21	/* タイマ・チャネル01のカウント完了またはキャプチャ完了(16ビット/下位8ビットタイマ動作時) */
+#define INTNO_INTTM02   	22	/* タイマ・チャネル02のカウント完了またはキャプチャ完了 */
+#define INTNO_INTTM03   	23	/* タイマ・チャネル03のカウント完了またはキャプチャ完了(16ビット/下位8ビットタイマ動作時) */
+#define INTNO_INTAD     	24	/* A/D変換完了 */
+#define INTNO_INTRTC     	25	/* リアルタイム・クロックの定周期信号/アラーム一致検出 */
+#define INTNO_INTIT     	26	/* 12ビット・インターバル・タイマのインターバル信号検出 */
+#define INTNO_INTKR     	27	/* キー・リターン・信号検出 */
+
+#define INTNO_INTST3    	28	/* UART3 送信の転送完了，バッファ空き割込み */
+#define INTNO_INTCSI30  	28	/* CSI30 の転送完了, バッファ空き割込み */
+#define INTNO_INTIIC30  	28	/* IIC30 の転送完了 */
+
+#define INTNO_INTSR3    	29	/* UART3 受信の転送完了，バッファ空き割込み */
+#define INTNO_INTCSI31  	29	/* CSI31 の転送完了, バッファ空き割込み */
+#define INTNO_INTIIC31  	29	/* IIC31 の転送完了 */
+
+#define INTNO_INTTM13   	30	/* タイマ・チャネル13のカウント完了またはキャプチャ完了(16ビット/下位8ビットタイマ動作時) */
+#define INTNO_INTTM04   	31	/* タイマ・チャネル04のカウント完了またはキャプチャ完了 */
+#define INTNO_INTTM05   	32	/* タイマ・チャネル05のカウント完了またはキャプチャ完了 */
+#define INTNO_INTTM06   	33	/* タイマ・チャネル06のカウント完了またはキャプチャ完了 */
+#define INTNO_INTTM07   	34	/* タイマ・チャネル07のカウント完了またはキャプチャ完了 */
+
+#define INTNO_INTP6     	35	/* 端子入力エッジ検出 */
+#define INTNO_INTP7     	36	/* 端子入力エッジ検出 */
+#define INTNO_INTP8     	37	/* 端子入力エッジ検出 */
+#define INTNO_INTP9     	38	/* 端子入力エッジ検出 */
+#define INTNO_INTP10     	39	/* 端子入力エッジ検出 */
+#define INTNO_INTP11     	40	/* 端子入力エッジ検出 */
+
+#define INTNO_INTTM10   	41	/* タイマ・チャネル10のカウント完了またはキャプチャ完了 */
+#define INTNO_INTTM11   	42	/* タイマ・チャネル11のカウント完了またはキャプチャ完了(16ビット/下位8ビットタイマ動作時) */
+#define INTNO_INTTM12   	43	/* タイマ・チャネル12のカウント完了またはキャプチャ完了 */
+
+#define INTNO_SRE3      	44	/* UART3 受信の通信エラー発生 */
+#define INTNO_INTTM13H  	44	/* タイマ・チャネル13のカウント完了またはキャプチャ完了(8ビットタイマ動作時) */
+
+#define INTNO_INTMD     	45	/* 除算命令終了/積和演算結果のオーバーフロー発生 */
+#define INTNO_INTIICA1  	46	/* IICA1 通信完了 */
+#define INTNO_INTFL     	47	/* 予約 */
+#define INTNO_INTDMA2   	48	/* DMA2の転送完了 */
+#define INTNO_INTDMA3   	49	/* DMA3の転送完了 */
+#define INTNO_INTTM14   	50	/* タイマ・チャネル14のカウント完了またはキャプチャ完了 */
+#define INTNO_INTTM15   	51	/* タイマ・チャネル15のカウント完了またはキャプチャ完了 */
+#define INTNO_INTTM16   	52	/* タイマ・チャネル16のカウント完了またはキャプチャ完了 */
+#define INTNO_INTTM17   	53	/* タイマ・チャネル17のカウント完了またはキャプチャ完了 */
+
+
+/*
+ *  割込みハンドラ番号の定義
+ */
+#define	INHNO_INTWDTI   	INTNO_INTWDTI   	/* ウォッチドッグ・タイマ */
+#define INHNO_INTLV1    	INTNO_INTLV1    	/* 電圧検出 */
+#define INHNO_INTP0     	INTNO_INTP0     	/* 端子入力エッジ検出 */
+#define INHNO_INTP1     	INTNO_INTP1     	/* 端子入力エッジ検出 */
+#define INHNO_INTP2     	INTNO_INTP2     	/* 端子入力エッジ検出 */
+#define INHNO_INTP3     	INTNO_INTP3     	/* 端子入力エッジ検出 */
+#define INHNO_INTP4     	INTNO_INTP4     	/* 端子入力エッジ検出 */
+#define INHNO_INTP5     	INTNO_INTP5     	/* 端子入力エッジ検出 */
+                        
+#define INHNO_INTST2    	INTNO_INTST2    	/* UART2 送信の転送完了，バッファ空き割込み */
+#define INHNO_INTCSI20  	INTNO_INTCSI20  	/* CSI20 の転送完了，バッファ空き割込み */
+#define INHNO_IIC20     	INTNO_IIC20     	/* IIC20 の転送完了 */
+                        
+#define INHNO_INTSR2    	INTNO_INTSR2    	/* UART2 受信の転送完了 */
+#define INHNO_INTSCI21  	INTNO_INTSCI21  	/* CSI21 の転送完了 */
+#define INHNO_INTIIC21  	INTNO_INTIIC21  	/* IIC21 の転送完了 */
+                        
+#define INHNO_SRE2      	INTNO_SRE2      	/* UART2 受信の通信エラー発生 */
+#define INHNO_INTTM11H  	INTNO_INTTM11H  	/* タイマ・チャネル11のカウント完了またはキャプチャ完了(8ビットタイマ動作時) */
+                        
+#define INHNO_INTDMA0   	INTNO_INTDMA0   	/* DMA0 の転送完了 */
+#define INHNO_INTDMA1   	INTNO_INTDMA1   	/* DMA1 の転送完了 */
+                        
+#define INHNO_INTST0    	INTNO_INTST0    	/* UART0 送信の転送完了，バッファ空き割込み */
+#define INHNO_INTCSI00  	INTNO_INTCSI00  	/* CSI00 の転送完了, バッファ空き割込み */
+#define INHNO_INTIIC00  	INTNO_INTIIC00  	/* IIC00 の転送完了 */
+                        
+#define INHNO_INTSR0    	INTNO_INTSR0    	/* UART0 受信の転送完了，バッファ空き割込み */
+#define INHNO_INTCSI01  	INTNO_INTCSI01  	/* CSI01 の転送完了, バッファ空き割込み */
+#define INHNO_INTIIC01  	INTNO_INTIIC01  	/* IIC01 の転送完了 */
+                        
+#define INHNO_SRE0      	INTNO_SRE0      	/* UART0 受信の通信エラー発生 */
+#define INHNO_INTTM01H  	INTNO_INTTM01H  	/* タイマ・チャネル01のカウント完了またはキャプチャ完了(8ビットタイマ動作時) */
+                        
+#define INHNO_INTST1    	INTNO_INTST1    	/* UART1 送信の転送完了，バッファ空き割込み */
+#define INHNO_INTCSI10  	INTNO_INTCSI10  	/* CSI10 の転送完了, バッファ空き割込み */
+#define INHNO_INTIIC10  	INTNO_INTIIC10  	/* IIC10 の転送完了 */
+                        
+#define INHNO_INTSR1    	INTNO_INTSR1    	/* UART1 受信の転送完了，バッファ空き割込み */
+#define INHNO_INTCSI11  	INTNO_INTCSI11  	/* CSI11 の転送完了, バッファ空き割込み */
+#define INHNO_INTIIC11  	INTNO_INTIIC11  	/* IIC11 の転送完了 */
+                        
+#define INHNO_SRE1      	INTNO_SRE1      	/* UART1 受信の通信エラー発生 */
+#define INHNO_INTTM03H  	INTNO_INTTM03H  	/* タイマ・チャネル03のカウント完了またはキャプチャ完了(8ビットタイマ動作時) */
+                        
+#define INHNO_INTIICA0  	INTNO_INTIICA0  	/* IICA0 通信完了 */
+#define INHNO_INTTM00   	INTNO_INTTM00   	/* タイマ・チャネル00のカウント完了またはキャプチャ完了 */
+#define INHNO_INTTM01   	INTNO_INTTM01   	/* タイマ・チャネル01のカウント完了またはキャプチャ完了(16ビット/下位8ビットタイマ動作時) */
+#define INHNO_INTTM02   	INTNO_INTTM02   	/* タイマ・チャネル02のカウント完了またはキャプチャ完了 */
+#define INHNO_INTTM03   	INTNO_INTTM03   	/* タイマ・チャネル03のカウント完了またはキャプチャ完了(16ビット/下位8ビットタイマ動作時) */
+#define INHNO_INTAD     	INTNO_INTAD     	/* A/D変換完了 */
+#define INHNO_INTRTC     	INTNO_INTRTC    	/* リアルタイム・クロックの定周期信号/アラーム一致検出 */
+#define INHNO_INTIT     	INTNO_INTIT     	/* 12ビット・インターバル・タイマのインターバル信号検出 */
+#define INHNO_INTKR     	INTNO_INTKR     	/* キー・リターン・信号検出 */
+                        
+#define INHNO_INTST3    	INTNO_INTST3    	/* UART3 送信の転送完了，バッファ空き割込み */
+#define INHNO_INTCSI30  	INTNO_INTCSI30  	/* CSI30 の転送完了, バッファ空き割込み */
+#define INHNO_INTIIC30  	INTNO_INTIIC30  	/* IIC30 の転送完了 */
+                        
+#define INHNO_INTSR3    	INTNO_INTSR3    	/* UART3 受信の転送完了，バッファ空き割込み */
+#define INHNO_INTCSI31  	INTNO_INTCSI31  	/* CSI31 の転送完了, バッファ空き割込み */
+#define INHNO_INTIIC31  	INTNO_INTIIC31  	/* IIC31 の転送完了 */
+                        
+#define INHNO_INTTM13   	INTNO_INTTM13   	/* タイマ・チャネル13のカウント完了またはキャプチャ完了(16ビット/下位8ビットタイマ動作時) */
+#define INHNO_INTTM04   	INTNO_INTTM04   	/* タイマ・チャネル04のカウント完了またはキャプチャ完了 */
+#define INHNO_INTTM05   	INTNO_INTTM05   	/* タイマ・チャネル05のカウント完了またはキャプチャ完了 */
+#define INHNO_INTTM06   	INTNO_INTTM06   	/* タイマ・チャネル06のカウント完了またはキャプチャ完了 */
+#define INHNO_INTTM07   	INTNO_INTTM07   	/* タイマ・チャネル07のカウント完了またはキャプチャ完了 */
+                        
+#define INHNO_INTP6     	INTNO_INTP6     	/* 端子入力エッジ検出 */
+#define INHNO_INTP7     	INTNO_INTP7     	/* 端子入力エッジ検出 */
+#define INHNO_INTP8     	INTNO_INTP8     	/* 端子入力エッジ検出 */
+#define INHNO_INTP9     	INTNO_INTP9     	/* 端子入力エッジ検出 */
+#define INHNO_INTP10     	INTNO_INTP10    	/* 端子入力エッジ検出 */
+#define INHNO_INTP11     	INTNO_INTP11    	/* 端子入力エッジ検出 */
+                        
+#define INHNO_INTTM10   	INTNO_INTTM10   	/* タイマ・チャネル10のカウント完了またはキャプチャ完了 */
+#define INHNO_INTTM11   	INTNO_INTTM11   	/* タイマ・チャネル11のカウント完了またはキャプチャ完了(16ビット/下位8ビットタイマ動作時) */
+#define INHNO_INTTM12   	INTNO_INTTM12   	/* タイマ・チャネル12のカウント完了またはキャプチャ完了 */
+                        
+#define INHNO_SRE3      	INTNO_SRE3      	/* UART3 受信の通信エラー発生 */
+#define INHNO_INTTM13H  	INTNO_INTTM13H  	/* タイマ・チャネル13のカウント完了またはキャプチャ完了(8ビットタイマ動作時) */
+                        
+#define INHNO_INTMD     	INTNO_INTMD     	/* 除算命令終了/積和演算結果のオーバーフロー発生 */
+#define INHNO_INTIICA1  	INTNO_INTIICA1  	/* IICA1 通信完了 */
+#define INHNO_INTFL     	INTNO_INTFL     	/* 予約 */
+#define INHNO_INTDMA2   	INTNO_INTDMA2   	/* DMA2の転送完了 */
+#define INHNO_INTDMA3   	INTNO_INTDMA3   	/* DMA3の転送完了 */
+#define INHNO_INTTM14   	INTNO_INTTM14   	/* タイマ・チャネル14のカウント完了またはキャプチャ完了 */
+#define INHNO_INTTM15   	INTNO_INTTM15   	/* タイマ・チャネル15のカウント完了またはキャプチャ完了 */
+#define INHNO_INTTM16   	INTNO_INTTM16   	/* タイマ・チャネル16のカウント完了またはキャプチャ完了 */
+#define INHNO_INTTM17   	INTNO_INTTM17   	/* タイマ・チャネル17のカウント完了またはキャプチャ完了 */
+
+
+/*
+ *  割込み制御レジスタ定義
+ */
+#define TADR_IF0L	0xfffe0 	// 割込み要求フラグ・レジスタ
+#define TADR_IF2L	0xfffd0 	// 割込み要求フラグ・レジスタ
+#define TADR_MK0L	0xfffe4 	// 割込みマスク・フラグ・レジスタ
+#define TADR_MK2L	0xfffd4 	// 割込みマスク・フラグ・レジスタ
+#define TADR_PR00L	0xfffe8 	// 優先順位指定フラグ・レジスタ
+#define TADR_PR02L	0xfffd8 	// 優先順位指定フラグ・レジスタ
+#define TADR_EGP0	0xfff38 	// 外部割込み立ち上がりエッジ許可レジスタ
+#define TADR_EGP1	0xfff3a 	// 外部割込み立ち上がりエッジ許可レジスタ
+
+
+#define TADR_PER0	0xf00f0 	// 周辺イネーブルレジスタ0
+
+#define TBIT_PER0_TAU0EN	UINT8_C(0x01)	// タイマ・アレイ・ユニット0の入力クロック制御
+#define TBIT_PER0_SAU0EN	UINT8_C(0x04)	// シリアル・アレイ・ユニット0の入力クロック制御
+
+/*
+ *  クロック発生回路
+ */
+#define TADR_CMC	0xfffa0 	// クロック動作モード制御レジスタ
+#define TADR_CKC	0xfffa4 	// クロック動作モード制御レジスタ
+#define TADR_CSC	0xfffa1 	// クロック動作ステータス制御レジスタ
+#define TADR_OSTC	0xfffa2 	// 発振安定時間カウンタ状態レジスタ
+
+/*
+ *  タイマ・アレイ関連レジスタ(システムティック用)
+ */
+#define TADR_TPS0	0xf01b6 	// タイマ・クロック選択レジスタ0
+#define TADR_TMR00	0xf0190 	// タイマ・モード・レジスタ00
+#define TADR_TDR00	0xfff18 	// タイマ・データ・レジスタ00
+#define TADR_TS0	0xf01b2 	// タイマ・チャネル停止レジスタ0
+#define TADR_TT0	0xf01b4 	// タイマ・チャネル停止レジスタ0
 
 #define TBIT_TTm_TTm0	UINT16_C(0x0001)
@@ -288,39 +284,39 @@
 
 /*
- *  VAEACÖAWX^
- */
-#define TADR_SPS0	0xf0126 	// VANbNIðWX^
-#define TADR_SMR00	0xf0110 	// VA[hWX^
-#define TADR_SMR01	0xf0112 	// VA[hWX^
-
-#define TADR_SCR00	0xf0118 	// VAÊM®ìÝèWX^
-#define TADR_SCR01	0xf011a 	// VAÊM®ìÝèWX^
-
-#define TADR_SDR00	0xfff10 	// VAf[^WX^0
-#define TADR_SDR01	0xfff12 	// VAf[^WX^0
-
-#define TADR_SOL0	0xf0134 	// VAoÍxWX^0
-#define TADR_SO0	0xf0128 	// VAoÍWX^0
-#define TADR_SOE0	0xf012a 	// VAoÍÂWX^0
-#define TADR_SSR00	0xf0100 	// VAXe[^XWX^00
-#define TADR_SSR01	0xf0102 	// VAXe[^XWX^01
-
-#define TADR_SS0	0xf0122 	// VA`lJnWX^0
-#define TADR_ST0	0xf0124 	// VA`lâ~WX^0
-
-#define TADR_SIR01	0xf010a 	// VAEtOENAEgKEWX^01 
-
-#define TADR_NFEN0	0xf0070 	// mCYEtB^ÂWX^0
-
-#define TBIT_SSRmn_BFF	UINT16_C(0x0020)	// `lnÌobt@WX^óÔ\¦tO
-#define TBIT_SSRmn_TSF	UINT16_C(0x0040)	// `lnÌÊMóÔ\¦tO
-#define TBIT_SSRmnL_BFF	UINT8_C(0x20)	// `lnÌobt@WX^óÔ\¦tO
-#define TBIT_SSRmnL_TSF	UINT8_C(0x40)	// `lnÌÊMóÔ\¦tO
-
-#define TBIT_SCRmn_TXEmn	UINT16_C(0x8000)	// `lnÌ®ì[h(M)
-#define TBIT_SCRmn_RXEmn	UINT16_C(0x4000)	// `lnÌ®ì[h(óM)
-
-/*
- * I/O|[g
+ *  シリアル・アレイ関連レジスタ
+ */
+#define TADR_SPS0	0xf0126 	// シリアルクロック選択レジスタ
+#define TADR_SMR00	0xf0110 	// シリアルモードレジスタ
+#define TADR_SMR01	0xf0112 	// シリアルモードレジスタ
+
+#define TADR_SCR00	0xf0118 	// シリアル通信動作設定レジスタ
+#define TADR_SCR01	0xf011a 	// シリアル通信動作設定レジスタ
+
+#define TADR_SDR00	0xfff10 	// シリアルデータレジスタ0
+#define TADR_SDR01	0xfff12 	// シリアルデータレジスタ0
+
+#define TADR_SOL0	0xf0134 	// シリアル出力レベルレジスタ0
+#define TADR_SO0	0xf0128 	// シリアル出力レジスタ0
+#define TADR_SOE0	0xf012a 	// シリアル出力許可レジスタ0
+#define TADR_SSR00	0xf0100 	// シリアルステータスレジスタ00
+#define TADR_SSR01	0xf0102 	// シリアルステータスレジスタ01
+
+#define TADR_SS0	0xf0122 	// シリアルチャネル開始レジスタ0
+#define TADR_ST0	0xf0124 	// シリアルチャネル停止レジスタ0
+
+#define TADR_SIR01	0xf010a 	// シリアル・フラグ・クリア・トリガ・レジスタ01 
+
+#define TADR_NFEN0	0xf0070 	// ノイズ・フィルタ許可レジスタ0
+
+#define TBIT_SSRmn_BFF	UINT16_C(0x0020)	// チャネルnのバッファレジスタ状態表示フラグ
+#define TBIT_SSRmn_TSF	UINT16_C(0x0040)	// チャネルnの通信状態表示フラグ
+#define TBIT_SSRmnL_BFF	UINT8_C(0x20)	// チャネルnのバッファレジスタ状態表示フラグ
+#define TBIT_SSRmnL_TSF	UINT8_C(0x40)	// チャネルnの通信状態表示フラグ
+
+#define TBIT_SCRmn_TXEmn	UINT16_C(0x8000)	// チャネルnの動作モード(送信)
+#define TBIT_SCRmn_RXEmn	UINT16_C(0x4000)	// チャネルnの動作モード(受信)
+
+/*
+ * I/Oポート
  */
 #define TADR_PU0 	0xf0030
@@ -338,5 +334,5 @@
 
 /*
- *  Äp|[gWX^
+ *  汎用ポートレジスタ
  */
 #define TBIT_BIT0	0x01
Index: ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/rl78g13.tf
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/rl78g13.tf	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/rl78g13.tf	(revision 95)
@@ -1,12 +1,12 @@
 $ 
-$		`bvË¶ev[giRL78/G13pj
+$		チップ依存テンプレート（RL78/G13用）
 $ 
 
 $ 
-$  ÝÔÆÝnhÔÌè`
+$  割込み番号と割込みハンドラ番号の定義
 $ 
-$  RL78ÅÍÝÔÆÝnhÔª1Î1ÅÎ·éD
-$  ftHgvCIeBðÂ}XJuÝªÎÛÆÈéD
-$  ftHgvCIeBÌÔðÝÔÆ·éD
+$  RL78では割込み番号と割込みハンドラ番号が1対1で対応する．
+$  デフォルトプライオリティを持つマスカブル割込みが対象となる．
+$  デフォルトプライオリティの番号を割込み番号とする．
 $ 
 
@@ -16,7 +16,7 @@
 
 $ 
-$  áOÔÌè`
+$  例外番号の定義
 $ 
-$  áOÆµÄ BRK ÝÌÝÆ·éD
+$  例外として BRK 割込みのみとする．
 $ 
 
@@ -24,6 +24,6 @@
 
 $ 
-$  INTÝÌÔ
-$    INTP0--INTP11 ([qüÍGbWoÝ)ªY
+$  INT割込みの番号
+$    INTP0--INTP11 (端子入力エッジ検出割込み)が該当
 $ 
 
@@ -31,5 +31,5 @@
 
 $ 
-$  ÝÔCÝnhÔCáOÔÌÍÍ
+$  割込み番号，割込みハンドラ番号，例外番号の範囲
 $ 
 
@@ -39,5 +39,5 @@
 
 $ 
-$  vZbTË¶Ìev[gt@C
+$  プロセッサ依存のテンプレートファイル
 $ 
 $INCLUDE"rl78_ca78k0r/prc.tf"$
Index: ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/rl78g13_config.h
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/rl78g13_config.h	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/rl78g13_config.h	(revision 95)
@@ -7,43 +7,38 @@
  *             Nagoya Municipal Industrial Research Institute, JAPAN
  * 
- *  ãLì ÒÍCÈºÌ (1)`(4) Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»EüÏE
- *  ÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 
- *      \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[X
- *      R[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Égp
- *      Å«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gipÒ}
- *      j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºLÌ³Û
- *      ØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Égp
- *      Å«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌì
- *         \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉñ
- *        ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹Q
- *      ©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆDÜ½C
- *      {\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©ÈéRÉîÃ
- *      ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
+ *  上記著作権者は，以下の (1)〜(4) の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改変・
+ *  再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作権
+ *      表示，この利用条件および下記の無保証規定が，そのままの形でソース
+ *      コード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使用
+ *      できる形で再配布する場合には，再配布に伴うドキュメント（利用者マ
+ *      ニュアルなど）に，上記の著作権表示，この利用条件および下記の無保
+ *      証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使用
+ *      できない形で再配布する場合には，次のいずれかの条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著作
+ *        権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに報
+ *        告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害
+ *      からも，上記著作権者およびTOPPERSプロジェクトを免責すること．また，
+ *      本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ
+ *      く請求からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨æ
- *  ÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚIÉÎ·
- *  éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEFAÌp
- *  Éæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»ÌÓCð
- *  íÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者およ
+ *  びTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的に対す
+ *  る適合性も含めて，いかなる保証も行わない．また，本ソフトウェアの利用
+ *  により直接的または間接的に生じたいかなる損害に関しても，その責任を負
+ *  わない．
  * 
  */
 
 /*
- *		vZbTË¶W
-[iRL78/G13pj
+ *		プロセッサ依存モジュール（RL78/G13用）
  *
- *  ±ÌCN[ht@CÍCtarget_config.h ÌÝ©çCN[h³êéD
- *  ¼Ìt@C©ç¼ÚCN[hµÄÍÈçÈ¢D
+ *  このインクルードファイルは，target_config.h のみからインクルードされる．
+ *  他のファイルから直接インクルードしてはならない．
  */
 
@@ -53,10 +48,10 @@
 
 /*
- *  ÝÔÌÅål
+ *  割込み番号の最大値
  */
 #define INTNO_MAX	UINT_C(53)
 
 /*
- *  wèÝÔªLøÈÝÔÌÍÍÉ é©Ç¤©Ì»è
+ *  指定割込み番号が有効な割込み番号の範囲にあるかどうかの判定
  */
 #define VALID_INTNO(intno) \
Index: ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/segment_e.asm
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/segment_e.asm	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/segment_e.asm	(revision 95)
@@ -1,5 +1,5 @@
 ;
-; ZOgè`
-;   ZOgöAhXðè`·é½ßCNðêÔÅãÉ·é
+; セグメント定義
+;   セグメント末尾アドレスを定義するため，リンク順序を一番最後にする
 ;
 
Index: ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/segment_s.asm
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/segment_s.asm	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/segment_s.asm	(revision 95)
@@ -1,9 +1,9 @@
 ;
-; ZOgè`
-;   ZOgæªAhXðè`·é½ßCNðêÔÅÉ·é
+; セグメント定義
+;   セグメント先頭アドレスを定義するため，リンク順序を一番最初にする
 ;
 
 ;
-; O[oV{
+; グローバルシンボル
 ;
 	extrn	_start
@@ -14,5 +14,5 @@
 
 ;
-; ZOgè`
+; セグメント定義
 ;
 VECTOR	CSEG
@@ -23,11 +23,10 @@
 ;OCDWORK 	CSEG
 
-; IvVoCgÝè
+; オプションバイト設定
 OPT	CSEG	OPT_BYTE
-	db	06eh	; WDT: C^[oÝðgpµÈ¢CJE^®ìÖ~
-	db	0ffh	; LVD: It
-	db	0efh	; HS[hCI`bvIV[^ 1MHz
-	db	085h	; I`bvfobOÂ, FØ¸sÉtbV
-ÁµÈ¢
+	db	06eh	; WDT: インターバル割込みを使用しない，カウンタ動作禁止
+	db	0ffh	; LVD: オフ
+	db	0efh	; HSモード，オンチップオシレータ 1MHz
+	db	085h	; オンチップデバッグ許可, 認証失敗時にフラッシュ消去しない
 
 ; ROM
Index: ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/start.asm
===================================================================
--- ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/start.asm	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/start.asm	(revision 95)
@@ -6,78 +6,74 @@
 ;             Nagoya Municipal Industrial Research Institute, JAPAN
 ; 
-;  ãLì ÒÍCÈºÌ (1)`(4) Ìðð½·êÉÀèC{\tgEF
-;  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»EüÏE
-;  ÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
-;  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 
-;      \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[X
-;      R[hÉÜÜêÄ¢é±ÆD
-;  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Égp
-;      Å«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gipÒ}
-;      j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºLÌ³Û
-;      ØKèðfÚ·é±ÆD
-;  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Égp
-;      Å«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±ÆD
-;    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌì
-;         \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
-;    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉñ
-;        ·é±ÆD
-;  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹Q
-;      ©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆDÜ½C
-;      {\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©ÈéRÉîÃ
-;      ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
-; 
-;  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨æ
-;  ÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚIÉÎ·
-;  éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEFAÌp
-;  Éæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»ÌÓCð
-;  íÈ¢D
-; 
-; 
-
-;
-; X^[gAbv[`
-;    vZbTÍS2RAC~fBAfðÎÛÆ·é
-;
-
-;
-; O[oV{
-;
-	; ZOgæªAhX(segment_s.asm)
+;  上記著作権者は，以下の (1)〜(4) の条件を満たす場合に限り，本ソフトウェ
+;  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改変・
+;  再配布（以下，利用と呼ぶ）することを無償で許諾する．
+;  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作権
+;      表示，この利用条件および下記の無保証規定が，そのままの形でソース
+;      コード中に含まれていること．
+;  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使用
+;      できる形で再配布する場合には，再配布に伴うドキュメント（利用者マ
+;      ニュアルなど）に，上記の著作権表示，この利用条件および下記の無保
+;      証規定を掲載すること．
+;  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使用
+;      できない形で再配布する場合には，次のいずれかの条件を満たすこと．
+;    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著作
+;        権表示，この利用条件および下記の無保証規定を掲載すること．
+;    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに報
+;        告すること．
+;  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害
+;      からも，上記著作権者およびTOPPERSプロジェクトを免責すること．また，
+;      本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ
+;      く請求からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+; 
+;  本ソフトウェアは，無保証で提供されているものである．上記著作権者およ
+;  びTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的に対す
+;  る適合性も含めて，いかなる保証も行わない．また，本ソフトウェアの利用
+;  により直接的または間接的に生じたいかなる損害に関しても，その責任を負
+;  わない．
+; 
+; 
+
+;
+; スタートアップルーチン
+;    プロセッサはS2コア，ミディアムモデルを対象とする
+;
+
+;
+; グローバルシンボル
+;
+	; セグメント先頭アドレス(segment_s.asm)
 	extrn	_@R_INIT, _@R_INIS, _@RLINIT
 	extrn	_@INIT, _@DATA, _@INIS, _@DATS, _@INITL, _@DATAL
 
-	; ZOgöAhX(segment_e.asm)
+	; セグメント末尾アドレス(segment_e.asm)
 	extrn	_?R_INIT, _?R_INIS, _?RLINIT
 	extrn	_?INIT, _?DATA, _?INIS, _?DATS, _?INITL, _?DATAL
 
-	; X^bN|C^Ìúl(kernel_cfg.c)
+	; スタックポインタの初期値(kernel_cfg.c)
 	extrn	__kernel_istkpt
 	
-	; J[lJn(kernel/startup.c)
+	; カーネル開始処理(kernel/startup.c)
 	extrn	_sta_ker
 	
-	; saddrÌæÌæªAhXCTCYiJÅè`j
+	; saddr領域の先頭アドレス，サイズ（リンカで定義）
 	extrn	_@SADBEG, _@SADSIZ
 	
-	; Gg|Cg
+	; エントリポイント
 	public	_start
 
 
 ;
-; èè`
-;
-	; MAA(PMCÌrbg0): 0 Ü½Í 1
-	;   0ÌêC00000H--0FFFFH ð F0000H--FFFFFHÖ~[
-	;   1ÌêC10000H--1FFFFH ð F0000H--FFFFFHÖ~[
+; 定数定義
+;
+	; MAA(PMCのビット0): 0 または 1
+	;   0の場合，00000H--0FFFFH を F0000H--FFFFFHへミラー
+	;   1の場合，10000H--1FFFFH を F0000H--FFFFFHへミラー
 INIT_MAA	EQU	0
 
 ;
-; }Nè`
-;
-	; ZOgÔÌf[^Rs[(farÌROM©çnearÌRAMÖCsrcÌTCYª)
+; マクロ定義
+;
+	; セグメント間のデータコピー(farのROMからnearのRAMへ，srcのサイズ分)
 copy_seg	macro src, dst
 	local	_1, _2
@@ -97,5 +93,5 @@
 	endm
 
-	; ZOgÔÌf[^Rs[(farÌROM©çfarÌRAMÖCsrcÌTCYª)
+	; セグメント間のデータコピー(farのROMからfarのRAMへ，srcのサイズ分)
 copy_fseg	MACRO	src, dst
 	local	_1, _2
@@ -116,5 +112,5 @@
 	endm
 
-	; ZOgÌf[^NA(near RAM)
+	; セグメントのデータクリア(near RAM)
 clear_seg	MACRO	dst
 	local	_1, _2
@@ -131,5 +127,5 @@
 	endm
 
-	; ZOgÌf[^NA(far RAM)
+	; セグメントのデータクリア(far RAM)
 clear_fseg	MACRO	dst
 	local _1, _2
@@ -147,5 +143,5 @@
 
 ;
-; VXeJn
+; システム開始
 ;
 @@CODE	CSEG	BASE
@@ -153,11 +149,11 @@
 
 	;
-	; PSWÌÝè
-	;
-    di          	; ÝÖ~(ÝbNÌÝÖ~)
-	sel 	rb0 	; WX^oN(RB0)
-	
-	;
-	; ~[ÌæÌÝè
+	; PSWの設定
+	;
+    di          	; 割込み禁止(割込みロック相当の割込み禁止)
+	sel 	rb0 	; レジスタバンク(RB0)
+	
+	;
+	; ミラー領域の設定
 	;
 	mov 	a, #INIT_MAA
@@ -166,5 +162,5 @@
 
 	;
-	; X^bN|C^ÌÝè
+	; スタックポインタの設定
 	;
 	movw	de, #__kernel_istkpt
@@ -174,10 +170,10 @@
 
 	;
-	; _hardware_init_hook ÌÄÑoµ(àµ êÎ)
+	; _hardware_init_hook の呼び出し(もしあれば)
 	;
 	;call	!!_hardware_init_hook
 
 	;
-	; ú»
+	; メモリ初期化
 	;
 	copy_seg	R_INIS, INIS
@@ -189,5 +185,5 @@
 	clear_fseg	DATAL
 
-	;  saddrÌæÌú»
+	;  saddr領域の初期化
 	mov	b,#_@SADSIZ
 	clrw	ax
@@ -199,10 +195,10 @@
 
 	;
-	; _sofrware_init_hook ÌÄÑoµ(àµ êÎ)
+	; _sofrware_init_hook の呼び出し(もしあれば)
 	;
 	;call	!!_software_init_hook
 	
 	;
-	; sta_ker (kernel/startup.c) ÌÄÑoµ
+	; sta_ker (kernel/startup.c) の呼び出し
 	;
 	br	!!_sta_ker
