Index: azure_iot_hub/trunk/asp3_dcre/sample/Makefile
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/sample/Makefile	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/sample/Makefile	(revision 389)
@@ -9,47 +9,32 @@
 #              Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
-#  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#      ã¨ï¼
-#    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#        å ±åãããã¨ï¼
-#  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#      å
-è²¬ãããã¨ï¼
+#  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
 # 
-#  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#  ã®è²¬ä»»ãè² ããªãï¼
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
 # 
 #  $Id$
@@ -57,15 +42,15 @@
 
 #
-#  ã¿ã¼ã²ããã®æå®ï¼Makefile.targetã§ä¸æ¸ããããã®ãé²ãããï¼
+#  ターゲットの指定（Makefile.targetで上書きされるのを防ぐため）
 #
 all:
 
 #
-#  ã¿ã¼ã²ããç¥ç§°ã®å®ç¾©
+#  ターゲット略称の定義
 #
 TARGET = @(TARGET)
 
 #
-#  ãã­ã°ã©ãã³ã°è¨èªã®å®ç¾©
+#  プログラミング言語の定義
 #
 SRCLANG = @(SRCLANG)
@@ -80,41 +65,41 @@
 
 #
-#  ã½ã¼ã¹ãã¡ã¤ã«ã®ãã£ã¬ã¯ããªã®å®ç¾©
+#  ソースファイルのディレクトリの定義
 #
 SRCDIR = @(SRCDIR)
 
 #
-#  ãªãã¸ã§ã¯ããã¡ã¤ã«åã®æ¡å¼µå­ã®è¨­å®
+#  オブジェクトファイル名の拡張子の設定
 #
 OBJEXT = @(OBJEXT)
 
 #
-#  ã«ã¼ãã«ã©ã¤ãã©ãªï¼libkernel.aï¼ã®ãã£ã¬ã¯ããªå
-#  ï¼ã«ã¼ãã«ã©ã¤ãã©ãªãmakeå¯¾è±¡ã«ããæã¯ï¼ç©ºã«å®ç¾©ããï¼
+#  カーネルライブラリ（libkernel.a）のディレクトリ名
+#  （カーネルライブラリもmake対象にする時は，空に定義する）
 #
 KERNEL_LIB = @(KERNEL_LIB)
 
 #
-#  ã«ã¼ãã«ãé¢æ°åä½ã§ã³ã³ãã¤ã«ãããã©ããã®å®ç¾©
+#  カーネルを関数単位でコンパイルするかどうかの定義
 #
 KERNEL_FUNCOBJS = @(KERNEL_FUNCOBJS)
 
 #
-#  TECSãå¤ããã©ããã®å®ç¾©
+#  TECSを外すかどうかの定義
 #
 OMIT_TECS = @(OMIT_TECS)
 
 #
-#  ãã¬ã¼ã¹ã­ã°ãåå¾ãããã©ããã®å®ç¾©
+#  トレースログを取得するかどうかの定義
 #
 ENABLE_TRACE = @(ENABLE_TRACE)
 
 #
-#  éçºãã¼ã«ï¼ã³ã³ãã¤ã©ç­ï¼ã®ãã£ã¬ã¯ããªã®å®ç¾©
+#  開発ツール（コンパイラ等）のディレクトリの定義
 #
 DEVTOOLDIR = @(DEVTOOLDIR)
 
 #
-#  ã¦ã¼ãã£ãªãã£ãã­ã°ã©ã ã®åç§°
+#  ユーティリティプログラムの名称
 #
 CFG = @(CFG)
@@ -122,5 +107,5 @@
 
 #
-#  ãªãã¸ã§ã¯ããã¡ã¤ã«åã®å®ç¾©
+#  オブジェクトファイル名の定義
 #
 OBJNAME = asp
@@ -134,20 +119,20 @@
 
 #
-#  ä¾å­é¢ä¿ãã¡ã¤ã«ãç½®ããã£ã¬ã¯ããªã®å®ç¾©
+#  依存関係ファイルを置くディレクトリの定義
 #
 DEPDIR = @(DEPDIR)
 
 #
-#  ã¿ã¼ã²ããä¾å­é¨ã®ãã£ã¬ã¯ããªã®å®ç¾©
+#  ターゲット依存部のディレクトリの定義
 #
 TARGETDIR = $(SRCDIR)/target/$(TARGET)
 
 #
-#  ã¿ã¼ã²ããä¾å­ã®å®ç¾©ã®ã¤ã³ã¯ã«ã¼ã
+#  ターゲット依存の定義のインクルード
 #
 include $(TARGETDIR)/Makefile.target
 
 #
-#  TECSçæãã¡ã¤ã«ã®ãã£ã¬ã¯ããªã®å®ç¾©
+#  TECS生成ファイルのディレクトリの定義
 #
 TECSGENDIR = ./gen
@@ -158,5 +143,5 @@
 
 #
-#  TECSãçæããå®ç¾©ã®ã¤ã³ã¯ã«ã¼ã
+#  TECSが生成する定義のインクルード
 #
 ifndef OMIT_TECS
@@ -166,6 +151,5 @@
 
 #
-#  å
-±éã³ã³ãã¤ã«ãªãã·ã§ã³ã®å®ç¾©
+#  共通コンパイルオプションの定義
 #
 COPTS := -g @(COPTS) $(COPTS)
@@ -186,5 +170,5 @@
 
 #
-#  ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ã«é¢ããå®ç¾©
+#  アプリケーションプログラムに関する定義
 #
 APPLNAME = @(APPLNAME)
@@ -208,27 +192,27 @@
 
 #
-#  ãããã¯ã¼ã¯ãµã¼ãã¹ã®å®ç¾©
+#  ネットワークサービスの定義
 #
 
 NO_USE_TINET_LIBRARY = true
 
-#  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®é¸æãä½ããä¸ã¤é¸æããã
+#  ネットワークインタフェースの選択、何れか一つ選択する。
 
 NET_IF = ether
 
-#  ã¤ã¼ãµãããã»ãã£ãã¤ã¹ãã©ã¤ãã®é¸æ
+#  イーサネット・ディバイスドライバの選択
 
 NET_DEV = if_mbed
 
-#  ãããã¯ã¼ã¯å±¤ã®é¸æ
+#  ネットワーク層の選択
 
 #SUPPORT_INET6 = true
 SUPPORT_INET4 = true
 
-#  API ã«çµè¾¼ãæ©è½ã®é¸æ
+#  API に組込む機能の選択
 
 #API_CFG_IP4MAPPED_ADDR = true
 
-#  ãã©ã³ã¹ãã¼ãå±¤ã®é¸æ
+#  トランスポート層の選択
 
 SUPPORT_TCP = true
@@ -236,10 +220,10 @@
 
 #
-#  ã·ã¹ãã ãµã¼ãã¹ã® Makefile ã®ã¤ã³ã¯ã«ã¼ã
+#  システムサービスの Makefile のインクルード
 #
 include $(SRCDIR)/tinet/Makefile.tinet
 
 #
-#  ã·ã¹ãã ãµã¼ãã¹ã«é¢ããå®ç¾©
+#  システムサービスに関する定義
 #
 SYSSVC_DIRS := $(TECSGENDIR) $(SRCDIR)/tecs_kernel \
@@ -252,5 +236,5 @@
 
 #
-#  ã¿ã¼ã²ãããã¡ã¤ã«
+#  ターゲットファイル
 #
 .PHONY: all
@@ -266,8 +250,8 @@
 endif
 
-##### ä»¥ä¸ã¯ç·¨éããªããã¨ #####
-
-#
-#  ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«é¢ããå®ç¾©
+##### 以下は編集しないこと #####
+
+#
+#  コンフィギュレータに関する定義
 #
 CFG_TABS := --api-table $(SRCDIR)/tinet/tcpip_api.def:tcpip \
@@ -282,14 +266,14 @@
 
 #
-#  ã«ã¼ãã«ã«é¢ããå®ç¾©
-#
-#  KERNEL_ASMOBJS: ã«ã¼ãã«ã©ã¤ãã©ãªã«å«ããï¼ã½ã¼ã¹ãã¢ã»ã³ããªè¨èªã®
-#				   ãªãã¸ã§ã¯ããã¡ã¤ã«ï¼
-#  KERNEL_COBJS: ã«ã¼ãã«ã®ã©ã¤ãã©ãªã«å«ããï¼ã½ã¼ã¹ãCè¨èªã§ï¼ã½ã¼ã¹
-#				 ãã¡ã¤ã«ã¨1å¯¾1ã«å¯¾å¿ãããªãã¸ã§ã¯ããã¡ã¤ã«ï¼
-#  KERNEL_LCSRCS: ã«ã¼ãã«ã®ã©ã¤ãã©ãªã«å«ããCè¨èªã®ã½ã¼ã¹ãã¡ã¤ã«ã§ï¼
-#				  1ã¤ã®ã½ã¼ã¹ãã¡ã¤ã«ããè¤æ°ã®ãªãã¸ã§ã¯ããã¡ã¤ã«ãç
-#				  æãããã®ï¼
-#  KERNEL_LCOBJS: ä¸ã®ã½ã¼ã¹ãã¡ã¤ã«ããçæããããªãã¸ã§ã¯ããã¡ã¤ã«ï¼
+#  カーネルに関する定義
+#
+#  KERNEL_ASMOBJS: カーネルライブラリに含める，ソースがアセンブリ言語の
+#				   オブジェクトファイル．
+#  KERNEL_COBJS: カーネルのライブラリに含める，ソースがC言語で，ソース
+#				 ファイルと1対1に対応するオブジェクトファイル．
+#  KERNEL_LCSRCS: カーネルのライブラリに含めるC言語のソースファイルで，
+#				  1つのソースファイルから複数のオブジェクトファイルを生
+#				  成するもの．
+#  KERNEL_LCOBJS: 上のソースファイルから生成されるオブジェクトファイル．
 #
 KERNEL_DIRS := $(KERNEL_DIRS) $(SRCDIR)/kernel
@@ -299,5 +283,5 @@
 
 #
-#  ã«ã¼ãã«ã®ãã¡ã¤ã«æ§æã®å®ç¾©
+#  カーネルのファイル構成の定義
 #
 include $(SRCDIR)/kernel/Makefile.kernel
@@ -332,5 +316,5 @@
 
 #
-#  ã½ã¼ã¹ãã¡ã¤ã«ã®ãããã£ã¬ã¯ããªã«é¢ããå®ç¾©
+#  ソースファイルのあるディレクトリに関する定義
 #
 vpath %.c $(KERNEL_DIRS) $(SYSSVC_DIRS) $(APPL_DIRS)
@@ -340,5 +324,5 @@
 
 #
-#  ã³ã³ãã¤ã«ã®ããã®å¤æ°ã®å®ç¾©
+#  コンパイルのための変数の定義
 #
 KERNEL_LIB_OBJS = $(KERNEL_ASMOBJS) $(KERNEL_COBJS) $(KERNEL_LCOBJS)
@@ -368,10 +352,10 @@
 
 #
-#  tecsgenããCããªãã­ã»ããµãå¼ã³åºãéã®ãªãã·ã§ã³ã®å®ç¾©
+#  tecsgenからCプリプロセッサを呼び出す際のオプションの定義
 #
 TECS_CPP = $(CC) $(CDEFS) $(INCLUDES) $(SYSSVC_CFLAGS) -D TECSGEN -E
 
 #
-#  tecsgenã®å¼åºã
+#  tecsgenの呼出し
 #
 .PHONY: tecs
@@ -381,5 +365,5 @@
 
 #
-#  ã«ã¼ãã«ã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®çæ
+#  カーネルのコンフィギュレーションファイルの生成
 #
 cfg1_out.c cfg1_out.db: cfg1_out.timestamp ;
@@ -403,5 +387,5 @@
 
 #
-#  ãªãã»ãããã¡ã¤ã«ï¼offset.hï¼ã®çæè¦å
+#  オフセットファイル（offset.h）の生成規則
 #
 $(OFFSET_H): offset.timestamp ;
@@ -411,5 +395,5 @@
 
 #
-#  ã«ã¼ãã«ã©ã¤ãã©ãªãã¡ã¤ã«ã®çæ
+#  カーネルライブラリファイルの生成
 #
 libkernel.a: $(OFFSET_H) $(KERNEL_LIB_OBJS)
@@ -419,5 +403,5 @@
 
 #
-#  ä¸¦åmakeã®ããã®ä¾å­é¢ä¿ã®å®ç¾©
+#  並列makeのための依存関係の定義
 #
 $(APPL_OBJS) $(SYSSVC_OBJS): | kernel_cfg.timestamp
@@ -426,11 +410,10 @@
 
 #
-#  ç¹å¥ãªä¾å­é¢ä¿ã®å®ç¾©
+#  特別な依存関係の定義
 #
 tBannerMain.o: $(filter-out tBannerMain.o,$(ALL_OBJS)) $(LIBS_DEP)
 
 #
-#  å
-¨ä½ã®ãªã³ã¯
+#  全体のリンク
 #
 $(OBJFILE): $(ALL_OBJS) $(LIBS_DEP)
@@ -440,5 +423,5 @@
 
 #
-#  ä¾å­é¢ä¿ãã©ã«ãã®ä½æ
+#  依存関係フォルダの作成
 #
 $(DEPDIR):
@@ -446,5 +429,5 @@
 
 #
-#  ã·ã³ãã«ãã¡ã¤ã«ã®çæ
+#  シンボルファイルの生成
 #
 $(OBJNAME).syms: $(OBJFILE)
@@ -452,5 +435,5 @@
 
 #
-#  ãã¤ããªãã¡ã¤ã«ã®çæ
+#  バイナリファイルの生成
 #
 $(OBJNAME).bin: $(OBJFILE)
@@ -458,5 +441,5 @@
 
 #
-#  Sã¬ã³ã¼ããã¡ã¤ã«ã®çæ
+#  Sレコードファイルの生成
 #
 $(OBJNAME).srec: $(OBJFILE)
@@ -464,5 +447,5 @@
 
 #
-#  ã¨ã©ã¼ãã§ãã¯å¦ç
+#  エラーチェック処理
 #
 .PHONY: check
@@ -474,5 +457,5 @@
 
 #
-#  ã³ã³ãã¤ã«çµæã®æ¶å»
+#  コンパイル結果の消去
 #
 .PHONY: clean
@@ -499,9 +482,8 @@
 
 #
-#  ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãçæãããã¡ã¤ã«ã®ã³ã³ãã¤ã«ã«ã¼ã«ã®å®ç¾©
-#
-#  ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãçæãããã¡ã¤ã«ã¯ï¼å
-±éã®ã³ã³ãã¤ã«ãªãã·ã§ã³
-#  ã®ã¿ãä»ãã¦ã³ã³ãã¤ã«ããï¼
+#  コンフィギュレータが生成したファイルのコンパイルルールの定義
+#
+#  コンフィギュレータが生成したファイルは，共通のコンパイルオプション
+#  のみを付けてコンパイルする．
 #
 ALL_CFG_COBJS = $(CFG_COBJS) cfg1_out.o
@@ -518,14 +500,14 @@
 
 #
-#  ä¾å­é¢ä¿ãã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã
+#  依存関係ファイルのインクルード
 #
 -include $(DEPDIR)/*.d
 
 #
-#  éçºãã¼ã«ã®ã³ãã³ãåã®å®ç¾©
+#  開発ツールのコマンド名の定義
 #
 ifeq ($(TOOL),gcc)
 	#
-	#  GNUéçºç°å¢ç¨
+	#  GNU開発環境用
 	#
 	ifdef GCC_TARGET
@@ -564,5 +546,5 @@
 
 #
-#  ã³ã³ãã¤ã«ã«ã¼ã«ã®å®ç¾©
+#  コンパイルルールの定義
 #
 $(KERNEL_COBJS): %.o: %.c
@@ -607,5 +589,5 @@
 
 #
-#  ããã©ã«ãã³ã³ãã¤ã«ã«ã¼ã«ãä¸æ¸ã
+#  デフォルトコンパイルルールを上書き
 #
 %.o: %.c
Index: azure_iot_hub/trunk/asp3_dcre/sample/sample1.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/sample/sample1.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/sample/sample1.c	(revision 389)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,93 +42,69 @@
 
 /* 
- *  ãµã³ãã«ãã­ã°ã©ã (1)ã®æ¬ä½
- *
- *  ASPã«ã¼ãã«ã®åºæ¬çãªåä½ãç¢ºèªããããã®ãµã³ãã«ãã­ã°ã©ã ï¼
- *
- *  ãã­ã°ã©ã ã®æ¦è¦:
- *
- *  ã¦ã¼ã¶ã¤ã³ã¿ãã§ã¼ã¹ãåãæã¤ã¡ã¤ã³ã¿ã¹ã¯ï¼ã¿ã¹ã¯ID: MAIN_TASKï¼åª
- *  å
-åº¦: MAIN_PRIORITYï¼ã¨ï¼3ã¤ã®ä¸¦è¡å®è¡ãããã¿ã¹ã¯ï¼ã¿ã¹ã¯ID:
- *  TASK1ï½TASK3ï¼åæåªå
-åº¦: MID_PRIORITYï¼ã§æ§æãããï¼ã¾ãï¼èµ·åå¨
- *  æã2ç§ã®å¨æãã³ãã©ï¼å¨æãã³ãã©ID: CYCHDR1ï¼ãç¨ããï¼
- *
- *  ä¸¦è¡å®è¡ãããã¿ã¹ã¯ã¯ï¼task_loopåç©ºã«ã¼ããå®è¡ããåº¦ã«ï¼ã¿ã¹ã¯ã
- *  å®è¡ä¸­ã§ãããã¨ãããããã¡ãã»ã¼ã¸ãè¡¨ç¤ºããï¼ç©ºã«ã¼ããå®è¡ãã
- *  ã®ã¯ï¼ç©ºã«ã¼ããªãã§ã¡ãã»ã¼ã¸ãåºåããã¨ï¼å¤éã®ã¡ãã»ã¼ã¸ãåºå
- *  ããï¼ãã­ã°ã©ã ã®åä½ãç¢ºèªãããããªãããã§ããï¼ã¾ãï¼ä½éãªã·
- *  ãªã¢ã«ãã¼ããç¨ãã¦ã¡ãã»ã¼ã¸ãåºåããå ´åã«ï¼ãã¹ã¦ã®ã¡ãã»ã¼ã¸
- *  ãåºåã§ããããã«ï¼ã¡ãã»ã¼ã¸ã®éãå¶éããã¨ããçç±ãããï¼
- *
- *  å¨æãã³ãã©ã¯ï¼ä¸ã¤ã®åªå
-åº¦ï¼HIGH_PRIORITYï¼MID_PRIORITYï¼
- *  LOW_PRIORITYï¼ã®ã¬ãã£ã­ã¥ã¼ãåè»¢ãããï¼ãã­ã°ã©ã ã®èµ·åç´å¾ã¯ï¼
- *  å¨æãã³ãã©ã¯åæ­¢ç¶æ
-ã«ãªã£ã¦ããï¼
- *
- *  ã¡ã¤ã³ã¿ã¹ã¯ã¯ï¼ã·ãªã¢ã«I/Oãã¼ãããã®æå­å
-¥åãè¡ãï¼æå­å
-¥åã
- *  å¾
-ã£ã¦ããéã¯ï¼ä¸¦è¡å®è¡ãããã¿ã¹ã¯ãå®è¡ããã¦ããï¼ï¼å
-¥åããã
- *  æå­ã«å¯¾å¿ããå¦çãå®è¡ããï¼å
-¥åãããæå­ã¨å¦çã®é¢ä¿ã¯æ¬¡ã®éãï¼
- *  Control-Cã¾ãã¯'Q'ãå
-¥åãããã¨ï¼ãã­ã°ã©ã ãçµäºããï¼
- *
- *  '1' : å¯¾è±¡ã¿ã¹ã¯ãTASK1ã«åãæããï¼åæè¨­å®ï¼ï¼
- *  '2' : å¯¾è±¡ã¿ã¹ã¯ãTASK2ã«åãæããï¼
- *  '3' : å¯¾è±¡ã¿ã¹ã¯ãTASK3ã«åãæããï¼
- *  'a' : å¯¾è±¡ã¿ã¹ã¯ãact_tskã«ããèµ·åããï¼
- *  'A' : å¯¾è±¡ã¿ã¹ã¯ã«å¯¾ããèµ·åè¦æ±ãcan_actã«ããã­ã£ã³ã»ã«ããï¼
- *  'e' : å¯¾è±¡ã¿ã¹ã¯ã«ext_tskãå¼ã³åºããï¼çµäºãããï¼
- *  't' : å¯¾è±¡ã¿ã¹ã¯ãter_tskã«ããå¼·å¶çµäºããï¼
- *  '>' : å¯¾è±¡ã¿ã¹ã¯ã®åªå
-åº¦ãHIGH_PRIORITYã«ããï¼
- *  '=' : å¯¾è±¡ã¿ã¹ã¯ã®åªå
-åº¦ãMID_PRIORITYã«ããï¼
- *  '<' : å¯¾è±¡ã¿ã¹ã¯ã®åªå
-åº¦ãLOW_PRIORITYã«ããï¼
- *  'G' : å¯¾è±¡ã¿ã¹ã¯ã®åªå
-åº¦ãget_priã§èª­ã¿åºãï¼
- *  's' : å¯¾è±¡ã¿ã¹ã¯ã«slp_tskãå¼ã³åºããï¼èµ·åºå¾
-ã¡ã«ãããï¼
- *  'S' : å¯¾è±¡ã¿ã¹ã¯ã«tslp_tsk(10ç§)ãå¼ã³åºããï¼èµ·åºå¾
-ã¡ã«ãããï¼
- *  'w' : å¯¾è±¡ã¿ã¹ã¯ãwup_tskã«ããèµ·åºããï¼
- *  'W' : å¯¾è±¡ã¿ã¹ã¯ã«å¯¾ããèµ·åºè¦æ±ãcan_wupã«ããã­ã£ã³ã»ã«ããï¼
- *  'l' : å¯¾è±¡ã¿ã¹ã¯ãrel_waiã«ããå¼·å¶çã«å¾
-ã¡è§£é¤ã«ããï¼
- *  'u' : å¯¾è±¡ã¿ã¹ã¯ãsus_tskã«ããå¼·å¶å¾
-ã¡ç¶æ
-ã«ããï¼
- *  'm' : å¯¾è±¡ã¿ã¹ã¯ã®å¼·å¶å¾
-ã¡ç¶æ
-ãrsm_tskã«ããè§£é¤ããï¼
- *  'd' : å¯¾è±¡ã¿ã¹ã¯ã«dly_tsk(10ç§)ãå¼ã³åºããï¼æéçµéå¾
-ã¡ã«ãããï¼
- *  'x' : å¯¾è±¡ã¿ã¹ã¯ã«ras_terã«ããçµäºè¦æ±ããï¼
- *  'y' : å¯¾è±¡ã¿ã¹ã¯ã«dis_terãå¼ã³åºããï¼ã¿ã¹ã¯çµäºãç¦æ­¢ããï¼
- *  'Y' : å¯¾è±¡ã¿ã¹ã¯ã«ena_terãå¼ã³åºããï¼ã¿ã¹ã¯çµäºãè¨±å¯ããï¼
- *  'r' : 3ã¤ã®åªå
-åº¦ï¼HIGH_PRIORITYï¼MID_PRIORITYï¼LOW_PRIORITYï¼ã®ã¬
- *        ãã£ã­ã¥ã¼ãåè»¢ãããï¼
- *  'c' : å¨æãã³ãã©ãåä½éå§ãããï¼
- *  'C' : å¨æãã³ãã©ãåä½åæ­¢ãããï¼
- *  'b' : ã¢ã©ã¼ã ãã³ãã©ã5ç§å¾ã«èµ·åããããåä½éå§ãããï¼
- *  'B' : ã¢ã©ã¼ã ãã³ãã©ãåä½åæ­¢ãããï¼
- *  'z' : å¯¾è±¡ã¿ã¹ã¯ã«CPUä¾å¤ãçºçãããï¼ã¿ã¹ã¯ãçµäºãããï¼ï¼
- *  'Z' : å¯¾è±¡ã¿ã¹ã¯ã«CPUã­ãã¯ç¶æ
-ã§CPUä¾å¤ãçºçãããï¼ãã­ã°ã©ã ã
- *        çµäºããï¼ï¼
- *  '@' : ã¿ã¹ã¯3ãacre_tskã«ããçæããï¼
- *  '!' : å¯¾è±¡ã¿ã¹ã¯ãdel_tskã«ããåé¤ããï¼
- *  '$' : ã¢ã©ã¼ã ãã³ãã©ãacre_almã«ããçæããï¼
- *  '#' : ã¢ã©ã¼ã ãã³ãã©ãdel_almã«ããåé¤ããï¼
- *  'V' : fch_hrtã§é«åè§£è½ã¿ã¤ãã2åèª­ãï¼
- *  'v' : çºè¡ããã·ã¹ãã ã³ã¼ã«ãè¡¨ç¤ºããï¼ããã©ã«ãï¼ï¼
- *  'q' : çºè¡ããã·ã¹ãã ã³ã¼ã«ãè¡¨ç¤ºããªãï¼
+ *  サンプルプログラム(1)の本体
+ *
+ *  ASPカーネルの基本的な動作を確認するためのサンプルプログラム．
+ *
+ *  プログラムの概要:
+ *
+ *  ユーザインタフェースを受け持つメインタスク（タスクID: MAIN_TASK，優
+ *  先度: MAIN_PRIORITY）と，3つの並行実行されるタスク（タスクID:
+ *  TASK1～TASK3，初期優先度: MID_PRIORITY）で構成される．また，起動周
+ *  期が2秒の周期ハンドラ（周期ハンドラID: CYCHDR1）を用いる．
+ *
+ *  並行実行されるタスクは，task_loop回空ループを実行する度に，タスクが
+ *  実行中であることをあらわすメッセージを表示する．空ループを実行する
+ *  のは，空ループなしでメッセージを出力すると，多量のメッセージが出力
+ *  され，プログラムの動作が確認しずらくなるためである．また，低速なシ
+ *  リアルポートを用いてメッセージを出力する場合に，すべてのメッセージ
+ *  が出力できるように，メッセージの量を制限するという理由もある．
+ *
+ *  周期ハンドラは，三つの優先度（HIGH_PRIORITY，MID_PRIORITY，
+ *  LOW_PRIORITY）のレディキューを回転させる．プログラムの起動直後は，
+ *  周期ハンドラは停止状態になっている．
+ *
+ *  メインタスクは，シリアルI/Oポートからの文字入力を行い（文字入力を
+ *  待っている間は，並行実行されるタスクが実行されている），入力された
+ *  文字に対応した処理を実行する．入力された文字と処理の関係は次の通り．
+ *  Control-Cまたは'Q'が入力されると，プログラムを終了する．
+ *
+ *  '1' : 対象タスクをTASK1に切り換える（初期設定）．
+ *  '2' : 対象タスクをTASK2に切り換える．
+ *  '3' : 対象タスクをTASK3に切り換える．
+ *  'a' : 対象タスクをact_tskにより起動する．
+ *  'A' : 対象タスクに対する起動要求をcan_actによりキャンセルする．
+ *  'e' : 対象タスクにext_tskを呼び出させ，終了させる．
+ *  't' : 対象タスクをter_tskにより強制終了する．
+ *  '>' : 対象タスクの優先度をHIGH_PRIORITYにする．
+ *  '=' : 対象タスクの優先度をMID_PRIORITYにする．
+ *  '<' : 対象タスクの優先度をLOW_PRIORITYにする．
+ *  'G' : 対象タスクの優先度をget_priで読み出す．
+ *  's' : 対象タスクにslp_tskを呼び出させ，起床待ちにさせる．
+ *  'S' : 対象タスクにtslp_tsk(10秒)を呼び出させ，起床待ちにさせる．
+ *  'w' : 対象タスクをwup_tskにより起床する．
+ *  'W' : 対象タスクに対する起床要求をcan_wupによりキャンセルする．
+ *  'l' : 対象タスクをrel_waiにより強制的に待ち解除にする．
+ *  'u' : 対象タスクをsus_tskにより強制待ち状態にする．
+ *  'm' : 対象タスクの強制待ち状態をrsm_tskにより解除する．
+ *  'd' : 対象タスクにdly_tsk(10秒)を呼び出させ，時間経過待ちにさせる．
+ *  'x' : 対象タスクにras_terにより終了要求する．
+ *  'y' : 対象タスクにdis_terを呼び出させ，タスク終了を禁止する．
+ *  'Y' : 対象タスクにena_terを呼び出させ，タスク終了を許可する．
+ *  'r' : 3つの優先度（HIGH_PRIORITY，MID_PRIORITY，LOW_PRIORITY）のレ
+ *        ディキューを回転させる．
+ *  'c' : 周期ハンドラを動作開始させる．
+ *  'C' : 周期ハンドラを動作停止させる．
+ *  'b' : アラームハンドラを5秒後に起動するよう動作開始させる．
+ *  'B' : アラームハンドラを動作停止させる．
+ *  'z' : 対象タスクにCPU例外を発生させる（タスクを終了させる）．
+ *  'Z' : 対象タスクにCPUロック状態でCPU例外を発生させる（プログラムを
+ *        終了する）．
+ *  '@' : タスク3をacre_tskにより生成する．
+ *  '!' : 対象タスクをdel_tskにより削除する．
+ *  '$' : アラームハンドラをacre_almにより生成する．
+ *  '#' : アラームハンドラをdel_almにより削除する．
+ *  'V' : fch_hrtで高分解能タイマを2回読む．
+ *  'v' : 発行したシステムコールを表示する（デフォルト）．
+ *  'q' : 発行したシステムコールを表示しない．
  */
 
@@ -157,5 +118,5 @@
 
 /*
- *  ãµã¼ãã¹ã³ã¼ã«ã®ã¨ã©ã¼ã®ã­ã°åºå
+ *  サービスコールのエラーのログ出力
  */
 Inline void
@@ -170,16 +131,15 @@
 
 /*
- *  ä¸¦è¡å®è¡ãããã¿ã¹ã¯ã¸ã®ã¡ãã»ã¼ã¸é å
+ *  並行実行されるタスクへのメッセージ領域
  */
 char	message[3];
 
 /*
- *  ã«ã¼ãåæ°
- */
-ulong_t	task_loop;		/* ã¿ã¹ã¯å
-ã§ã®ã«ã¼ãåæ° */
-
-/*
- *  ä¸¦è¡å®è¡ãããã¿ã¹ã¯
+ *  ループ回数
+ */
+ulong_t	task_loop;		/* タスク内でのループ回数 */
+
+/*
+ *  並行実行されるタスク
  */
 void task(intptr_t exinf)
@@ -241,5 +201,5 @@
 
 /*
- *  å²è¾¼ã¿ãã³ãã©
+ *  割込みハンドラ
  */
 #ifdef INTNO1
@@ -256,7 +216,7 @@
 
 /*
- *  CPUä¾å¤ãã³ãã©
- */
-ID	cpuexc_tskid;		/* CPUä¾å¤ãèµ·ãããã¿ã¹ã¯ã®ID */
+ *  CPU例外ハンドラ
+ */
+ID	cpuexc_tskid;		/* CPU例外を起こしたタスクのID */
 
 #ifdef CPUEXC1
@@ -297,9 +257,8 @@
 
 /*
- *  å¨æãã³ãã©
- *
- *  HIGH_PRIORITYï¼MID_PRIORITYï¼LOW_PRIORITY ã®ååªå
-åº¦ã®ã¬ãã£ã­ã¥ã¼
- *  ãåè»¢ãããï¼
+ *  周期ハンドラ
+ *
+ *  HIGH_PRIORITY，MID_PRIORITY，LOW_PRIORITY の各優先度のレディキュー
+ *  を回転させる．
  */
 void cyclic_handler(intptr_t exinf)
@@ -311,9 +270,8 @@
 
 /*
- *  ã¢ã©ã¼ã ãã³ãã©
- *
- *  HIGH_PRIORITYï¼MID_PRIORITYï¼LOW_PRIORITY ã®ååªå
-åº¦ã®ã¬ãã£ã­ã¥ã¼
- *  ãåè»¢ãããï¼
+ *  アラームハンドラ
+ *
+ *  HIGH_PRIORITY，MID_PRIORITY，LOW_PRIORITY の各優先度のレディキュー
+ *  を回転させる．
  */
 void alarm_handler(intptr_t exinf)
@@ -325,5 +283,5 @@
 
 /*
- *  ä¾å¤å¦çã¿ã¹ã¯
+ *  例外処理タスク
  */
 void exc_task(intptr_t exinf)
@@ -333,5 +291,5 @@
 
 /*
- *  ã¡ã¤ã³ã¿ã¹ã¯
+ *  メインタスク
  */
 void main_task(intptr_t exinf)
@@ -356,9 +314,9 @@
 
 	/*
-	 *  ã·ãªã¢ã«ãã¼ãã®åæå
+	 *  シリアルポートの初期化
 	 *
-	 *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã¨åãã·ãªã¢ã«ãã¼ããä½¿ãå ´åãªã©ï¼ã·ãªã¢ã«
-	 *  ãã¼ãããªã¼ãã³æ¸ã¿ã®å ´åã«ã¯ããã§E_OBJã¨ã©ã¼ã«ãªããï¼æ¯éã¯
-	 *  ãªãï¼
+	 *  システムログタスクと同じシリアルポートを使う場合など，シリアル
+	 *  ポートがオープン済みの場合にはここでE_OBJエラーになるが，支障は
+	 *  ない．
 	 */
 	ercd = serial_opn_por(TASK_PORTID);
@@ -371,31 +329,29 @@
 
 	/*
- 	 *  ã«ã¼ãåæ°ã®è¨­å®
+ 	 *  ループ回数の設定
 	 *
-	 *  ä¸¦è¡å®è¡ãããã¿ã¹ã¯å
-ã§ã®ç©ºã«ã¼ãã®åæ°ï¼task_loopï¼ã¯ï¼ç©ºã«ã¼
-	 *  ãã®å®è¡æéãç´0.4ç§ã«ãªãããã«è¨­å®ããï¼ãã®è¨­å®ã®ããã«ï¼
-	 *  LOOP_REFåã®ç©ºã«ã¼ãã®å®è¡æéãï¼ãã®åå¾ã§get_timãå¼ã¶ãã¨ã§
-	 *  æ¸¬å®ãï¼ãã®æ¸¬å®çµæããç©ºã«ã¼ãã®å®è¡æéã0.4ç§ã«ãªãã«ã¼ãå
-	 *  æ°ãæ±ãï¼task_loopã«è¨­å®ããï¼
+	 *  並行実行されるタスク内での空ループの回数（task_loop）は，空ルー
+	 *  プの実行時間が約0.4秒になるように設定する．この設定のために，
+	 *  LOOP_REF回の空ループの実行時間を，その前後でget_timを呼ぶことで
+	 *  測定し，その測定結果から空ループの実行時間が0.4秒になるループ回
+	 *  数を求め，task_loopに設定する．
 	 *
-	 *  LOOP_REFã¯ï¼ããã©ã«ãã§ã¯1,000,000ã«è¨­å®ãã¦ãããï¼æ³å®ããã
-	 *  ãé
-ããã­ã»ããµã§ã¯ï¼ãµã³ãã«ãã­ã°ã©ã ã®å®è¡éå§ã«æéããã
-	 *  ããããã¨ããåé¡ãçããï¼éã«æ³å®ããããéããã­ã»ããµã§ã¯ï¼
-	 *  LOOP_REFåã®ç©ºã«ã¼ãã®å®è¡æéãç­ããªãï¼task_loopã«è¨­å®ããå¤
-	 *  ã®èª¤å·®ãå¤§ãããªãã¨ããåé¡ãããï¼
+	 *  LOOP_REFは，デフォルトでは1,000,000に設定しているが，想定したよ
+	 *  り遅いプロセッサでは，サンプルプログラムの実行開始に時間がかか
+	 *  りすぎるという問題を生じる．逆に想定したより速いプロセッサでは，
+	 *  LOOP_REF回の空ループの実行時間が短くなり，task_loopに設定する値
+	 *  の誤差が大きくなるという問題がある．
 	 *
-	 *  ããã§ï¼ãã®ãããªã¿ã¼ã²ããã§ã¯ï¼target_test.hã§ï¼LOOP_REFãé©
-	 *  åãªå¤ã«å®ç¾©ããã®ãæã¾ããï¼
+	 *  そこで，そのようなターゲットでは，target_test.hで，LOOP_REFを適
+	 *  切な値に定義するのが望ましい．
 	 *
-	 *  ã¾ãï¼task_loopã®å¤ãåºå®ãããå ´åã«ã¯ï¼ãã®å¤ãTASK_LOOPã«ã
-	 *  ã¯ã­å®ç¾©ããï¼TASK_LOOPããã¯ã­å®ç¾©ããã¦ããå ´åï¼ä¸è¨ã®æ¸¬å®ã
-	 *  è¡ããã«ï¼TASK_LOOPã«å®ç¾©ãããå¤ãç©ºã«ã¼ãã®åæ°ã¨ããï¼
+	 *  また，task_loopの値を固定したい場合には，その値をTASK_LOOPにマ
+	 *  クロ定義する．TASK_LOOPがマクロ定義されている場合，上記の測定を
+	 *  行わずに，TASK_LOOPに定義された値を空ループの回数とする．
 	 *
-	 * ã¿ã¼ã²ããã«ãã£ã¦ã¯ï¼ç©ºã«ã¼ãã®å®è¡æéã®1åç®ã®æ¸¬å®ã§ï¼æ¬æ¥ã
-	 * ããé·ãã«ãªããã®ãããï¼ãã®ãããªã¿ã¼ã²ããã§ã¯ï¼MEASURE_TWICE
-	 * ããã¯ã­å®ç¾©ãããã¨ã§ï¼1åç®ã®æ¸¬å®çµæãæ¨ã¦ã¦ï¼2åç®ã®æ¸¬å®çµæ
-	 * ãä½¿ãï¼
+	 * ターゲットによっては，空ループの実行時間の1回目の測定で，本来よ
+	 * りも長めになるものがある．このようなターゲットでは，MEASURE_TWICE
+	 * をマクロ定義することで，1回目の測定結果を捨てて，2回目の測定結果
+	 * を使う．
 	 */
 #ifdef TASK_LOOP
@@ -419,5 +375,5 @@
 
 	/*
- 	 *  ã¿ã¹ã¯ã®èµ·å
+ 	 *  タスクの起動
 	 */
 	SVC_PERROR(act_tsk(TASK1));
@@ -425,5 +381,5 @@
 
 	/*
- 	 *  ã¡ã¤ã³ã«ã¼ã
+ 	 *  メインループ
 	 */
 	do {
Index: azure_iot_hub/trunk/asp3_dcre/sample/sample1.cdl
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/sample/sample1.cdl	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/sample/sample1.cdl	(revision 389)
@@ -1,14 +1,14 @@
 /*
- *		ãµã³ãã«ãã­ã°ã©ã (1)ã®ã³ã³ãã¼ãã³ãè¨è¿°ãã¡ã¤ã«
+ *		サンプルプログラム(1)のコンポーネント記述ファイル
  *
  *  $Id$
  */
 /*
- *  ã«ã¼ãã«ãªãã¸ã§ã¯ãã®å®ç¾©
+ *  カーネルオブジェクトの定義
  */
 import(<kernel.cdl>);
 
 /*
- *  ã¿ã¼ã²ããéä¾å­ã®ã»ã«ã¿ã¤ãã®å®ç¾©
+ *  ターゲット非依存のセルタイプの定義
  */
 import("syssvc/tSerialPort.cdl");
@@ -20,40 +20,39 @@
 
 /*
- *  ã¿ã¼ã²ããä¾å­é¨ã®åãè¾¼ã¿
+ *  ターゲット依存部の取り込み
  */
 import("target.cdl");
 
 /*
- *  ãã»ã«ã®çµä¸ãè¨è¿°ãã¨ã¯ï¼"cell"ã§å§ã¾ãè¡ããï¼ããã«å¯¾å¿ãã"};"
- *  ã®è¡ã¾ã§ã®ãã¨ãè¨ãï¼
+ *  「セルの組上げ記述」とは，"cell"で始まる行から，それに対応する"};"
+ *  の行までのことを言う．
  */
 
 /*
- *  ã·ã¹ãã ã­ã°æ©è½ã®çµä¸ãè¨è¿°
+ *  システムログ機能の組上げ記述
  *
- *  ã·ã¹ãã ã­ã°æ©è½ãå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°ãåé¤ãï¼ã³
- *  ã³ãã¤ã«ãªãã·ã§ã³ã«-DTOPPERS_OMIT_SYSLOGãè¿½å ããã°ããï¼ãã ãï¼
- *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã¯ã·ã¹ãã ã­ã°æ©è½ãä½¿ç¨ããããï¼ãããå¤ããã¨
- *  ãå¿
-è¦ã§ããï¼ã¾ãï¼ã·ã¹ãã ã­ã°æ©è½ã®ã¢ããã¿ãå¤ããªããã°ãªããª
- *  ãï¼tecsgenãè­¦åã¡ãã»ã¼ã¸ãåºããï¼ç¡è¦ãã¦ããï¼
+ *  システムログ機能を外す場合には，以下のセルの組上げ記述を削除し，コ
+ *  ンパイルオプションに-DTOPPERS_OMIT_SYSLOGを追加すればよい．ただし，
+ *  システムログタスクはシステムログ機能を使用するため，それも外すこと
+ *  が必要である．また，システムログ機能のアダプタも外さなければならな
+ *  い．tecsgenが警告メッセージを出すが，無視してよい．
  */
 cell tSysLog SysLog {
-	logBufferSize = 32;					/* ã­ã°ãããã¡ã®ãµã¤ãº */
+	logBufferSize = 32;					/* ログバッファのサイズ */
 	initLogMask = C_EXP("LOG_UPTO(LOG_NOTICE)");
-										/* ã­ã°ãããã¡ã«è¨é²ãã¹ãéè¦åº¦ */
+										/* ログバッファに記録すべき重要度 */
 	initLowMask = C_EXP("LOG_UPTO(LOG_EMERG)");
-									   	/* ä½ã¬ãã«åºåãã¹ãéè¦åº¦ */
-	/* ä½ã¬ãã«åºåã¨ã®çµå */
+									   	/* 低レベル出力すべき重要度 */
+	/* 低レベル出力との結合 */
 	cPutLog = PutLogTarget.ePutLog;
 };
 
 /*
- *  Cè¨èªã§è¨è¿°ãããã¢ããªã±ã¼ã·ã§ã³ããï¼TECSãã¼ã¹ã®ã·ã¹ãã ã­ã°æ©è½
- *  ãå¼ã³åºãããã®ã¢ããã¿ã®çµä¸ãè¨è¿°
+ *  C言語で記述されたアプリケーションから，TECSベースのシステムログ機能
+ *  を呼び出すためのアダプタの組上げ記述
  *
- *  ã·ã¹ãã ã­ã°æ©è½ã®ãµã¼ãã¹ã³ã¼ã«ï¼syslogé¢æ°ã¨syslog_0é¢æ°ï½syslog_5
- *  é¢æ°ä»¥å¤ã®ãã®ï¼ã«ãCè¨èªã§è¨è¿°ãããã¢ããªã±ã¼ã·ã§ã³ããå¼ã³åºããª
- *  ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°ãåé¤ããã°ããï¼
+ *  システムログ機能のサービスコール（syslog関数とsyslog_0関数～syslog_5
+ *  関数以外のもの）ルをC言語で記述されたアプリケーションから呼び出さな
+ *  い場合には，以下のセルの組上げ記述を削除すればよい．
  */
 cell tSysLogAdapter SysLogAdapter {
@@ -62,28 +61,27 @@
 
 /*
- *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®çµä¸ãè¨è¿°
+ *  シリアルインタフェースドライバの組上げ記述
  *
- *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ããå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨
- *  è¿°ãåé¤ããã°ããï¼ãã ãï¼ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã¯ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼
- *  ã¹ãã©ã¤ããä½¿ç¨ããããï¼ãããå¤ããã¨ãå¿
-è¦ã§ããï¼ã¾ãï¼ã·ãªã¢
- *  ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ã¢ããã¿ãå¤ããªããã°ãªããªãï¼
+ *  シリアルインタフェースドライバを外す場合には，以下のセルの組上げ記
+ *  述を削除すればよい．ただし，システムログタスクはシリアルインタフェー
+ *  スドライバを使用するため，それも外すことが必要である．また，シリア
+ *  ルインタフェースドライバのアダプタも外さなければならない．
  */
 cell tSerialPort SerialPort1 {
-	receiveBufferSize = 256;			/* åä¿¡ãããã¡ã®ãµã¤ãº */
-	sendBufferSize    = 256;			/* éä¿¡ãããã¡ã®ãµã¤ãº */
+	receiveBufferSize = 256;			/* 受信バッファのサイズ */
+	sendBufferSize    = 256;			/* 送信バッファのサイズ */
 
-	/* ã¿ã¼ã²ããä¾å­é¨ã¨ã®çµå */
+	/* ターゲット依存部との結合 */
 	cSIOPort = SIOPortTarget1.eSIOPort;
-	eiSIOCBR <= SIOPortTarget1.ciSIOCBR;	/* ã³ã¼ã«ããã¯ */
+	eiSIOCBR <= SIOPortTarget1.ciSIOCBR;	/* コールバック */
 };
 
 /*
- *  Cè¨èªã§è¨è¿°ãããã¢ããªã±ã¼ã·ã§ã³ããï¼TECSãã¼ã¹ã®ã·ãªã¢ã«ã¤ã³ã¿
- *  ãã§ã¼ã¹ãã©ã¤ããå¼ã³åºãããã®ã¢ããã¿ã®çµä¸ãè¨è¿°
+ *  C言語で記述されたアプリケーションから，TECSベースのシリアルインタ
+ *  フェースドライバを呼び出すためのアダプタの組上げ記述
  *
- *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ãµã¼ãã¹ã³ã¼ã«ãCè¨èªã§è¨è¿°ãããã¢
- *  ããªã±ã¼ã·ã§ã³ããå¼ã³åºããªãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°ãå
- *  é¤ããã°ããï¼
+ *  シリアルインタフェースドライバのサービスコールをC言語で記述されたア
+ *  プリケーションから呼び出さない場合には，以下のセルの組上げ記述を削
+ *  除すればよい．
  */
 cell tSerialAdapter SerialAdapter {
@@ -92,33 +90,32 @@
 
 /*
- *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®çµä¸ãè¨è¿°
+ *  システムログタスクの組上げ記述
  *
- *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ãå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°ãåé¤ãã
- *  ã°ããï¼
+ *  システムログタスクを外す場合には，以下のセルの組上げ記述を削除すれ
+ *  ばよい．
  */
 cell tLogTask LogTask {
-	priority  = 3;					/* ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®åªå
-åº¦ */
-	stackSize = LogTaskStackSize;	/* ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+	priority  = 3;					/* システムログタスクの優先度 */
+	stackSize = LogTaskStackSize;	/* システムログタスクのスタックサイズ */
 
-	/* ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã¨ã®çµå */
+	/* シリアルインタフェースドライバとの結合 */
 	cSerialPort        = SerialPort1.eSerialPort;
 	cnSerialPortManage = SerialPort1.enSerialPortManage;
 
-	/* ã·ã¹ãã ã­ã°æ©è½ã¨ã®çµå */
+	/* システムログ機能との結合 */
 	cSysLog = SysLog.eSysLog;
 
-	/* ä½ã¬ãã«åºåã¨ã®çµå */
+	/* 低レベル出力との結合 */
 	cPutLog = PutLogTarget.ePutLog;
 };
 
 /*
- *  ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸åºåã®çµä¸ãè¨è¿°
+ *  カーネル起動メッセージ出力の組上げ記述
  *
- *  ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ã®åºåãå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°
- *  ãåé¤ããã°ããï¼
+ *  カーネル起動メッセージの出力を外す場合には，以下のセルの組上げ記述
+ *  を削除すればよい．
  */
 cell tBanner Banner {
-	/* å±æ§ã®è¨­å® */
+	/* 属性の設定 */
 	targetName      = BannerTargetName;
 	copyrightNotice = BannerCopyrightNotice;
Index: azure_iot_hub/trunk/asp3_dcre/sample/sample1.cfg
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/sample/sample1.cfg	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/sample/sample1.cfg	(revision 389)
@@ -1,4 +1,4 @@
 /*
- *		ãµã³ãã«ãã­ã°ã©ã (1)ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *		サンプルプログラム(1)のシステムコンフィギュレーションファイル
  *
  *  $Id$
Index: azure_iot_hub/trunk/asp3_dcre/sample/sample1.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/sample/sample1.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/sample/sample1.h	(revision 389)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  *
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		ãµã³ãã«ãã­ã°ã©ã (1)ã®ããããã¡ã¤ã«
+ *		サンプルプログラム(1)のヘッダファイル
  */
 
@@ -63,47 +48,42 @@
 
 /*
- *  ã¿ã¼ã²ããä¾å­ã®å®ç¾©
+ *  ターゲット依存の定義
  */
 #include "target_test.h"
 
 /*
- *  åã¿ã¹ã¯ã®åªå
-åº¦ã®å®ç¾©
+ *  各タスクの優先度の定義
  */
 
-#define EXC_PRIORITY	1		/* ä¾å¤å¦çã¿ã¹ã¯ã®åªå
-åº¦ */
-#define MAIN_PRIORITY	5		/* ã¡ã¤ã³ã¿ã¹ã¯ã®åªå
-åº¦ */
-								/* HIGH_PRIORITYããé«ããããã¨ */
+#define EXC_PRIORITY	1		/* 例外処理タスクの優先度 */
+#define MAIN_PRIORITY	5		/* メインタスクの優先度 */
+								/* HIGH_PRIORITYより高くすること */
 
-#define HIGH_PRIORITY	9		/* ä¸¦è¡å®è¡ãããã¿ã¹ã¯ã®åªå
-åº¦ */
+#define HIGH_PRIORITY	9		/* 並行実行されるタスクの優先度 */
 #define MID_PRIORITY	10
 #define LOW_PRIORITY	11
 
 /*
- *  ã¿ã¼ã²ããã«ä¾å­ããå¯è½æ§ã®ããå®æ°ã®å®ç¾©
+ *  ターゲットに依存する可能性のある定数の定義
  */
 
 #ifndef TASK_PORTID
-#define	TASK_PORTID		1			/* æå­å
-¥åããã·ãªã¢ã«ãã¼ãID */
+#define	TASK_PORTID		1			/* 文字入力するシリアルポートID */
 #endif /* TASK_PORTID */
 
 #ifndef STACK_SIZE
-#define	STACK_SIZE		4096		/* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+#define	STACK_SIZE		4096		/* タスクのスタックサイズ */
 #endif /* STACK_SIZE */
 
 #ifndef KMM_SIZE
-#define	KMM_SIZE		(STACK_SIZE * 16)	/* ã«ã¼ãã«ãå²ãä»ãã   */
-#endif /* KMM_SIZE */						/*     ã¡ã¢ãªé åã®ãµã¤ãº */
+#define	KMM_SIZE		(STACK_SIZE * 16)	/* カーネルが割り付ける   */
+#endif /* KMM_SIZE */						/*     メモリ領域のサイズ */
 
 #ifndef LOOP_REF
-#define LOOP_REF		ULONG_C(1000000)	/* éåº¦è¨æ¸¬ç¨ã®ã«ã¼ãåæ° */
+#define LOOP_REF		ULONG_C(1000000)	/* 速度計測用のループ回数 */
 #endif /* LOOP_REF */
 
 /*
- *  é¢æ°ã®ãã­ãã¿ã¤ãå®£è¨
+ *  関数のプロトタイプ宣言
  */
 #ifndef TOPPERS_MACRO_ONLY
Index: azure_iot_hub/trunk/asp3_dcre/sample/tSample2.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/sample/tSample2.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/sample/tSample2.c	(revision 389)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,90 +42,66 @@
 
 /* 
- *  ãµã³ãã«ãã­ã°ã©ã (1)ã®æ¬ä½
- *
- *  ASPã«ã¼ãã«ã®åºæ¬çãªåä½ãç¢ºèªããããã®ãµã³ãã«ãã­ã°ã©ã ï¼
- *
- *  ãã­ã°ã©ã ã®æ¦è¦:
- *
- *  ã¦ã¼ã¶ã¤ã³ã¿ãã§ã¼ã¹ãåãæã¤ã¡ã¤ã³ã¿ã¹ã¯ï¼ã¿ã¹ã¯ID: MAIN_TASKï¼åª
- *  å
-åº¦: MAIN_PRIORITYï¼ã¨ï¼3ã¤ã®ä¸¦è¡å®è¡ãããã¿ã¹ã¯ï¼ã¿ã¹ã¯ID:
- *  TASK1ï½TASK3ï¼åæåªå
-åº¦: MID_PRIORITYï¼ã§æ§æãããï¼ã¾ãï¼èµ·åå¨
- *  æã2ç§ã®å¨æãã³ãã©ï¼å¨æãã³ãã©ID: CYCHDR1ï¼ãç¨ããï¼
- *
- *  ä¸¦è¡å®è¡ãããã¿ã¹ã¯ã¯ï¼task_loopåç©ºã«ã¼ããå®è¡ããåº¦ã«ï¼ã¿ã¹ã¯ã
- *  å®è¡ä¸­ã§ãããã¨ãããããã¡ãã»ã¼ã¸ãè¡¨ç¤ºããï¼ç©ºã«ã¼ããå®è¡ãã
- *  ã®ã¯ï¼ç©ºã«ã¼ããªãã§ã¡ãã»ã¼ã¸ãåºåããã¨ï¼å¤éã®ã¡ãã»ã¼ã¸ãåºå
- *  ããï¼ãã­ã°ã©ã ã®åä½ãç¢ºèªãããããªãããã§ããï¼ã¾ãï¼ä½éãªã·
- *  ãªã¢ã«ãã¼ããç¨ãã¦ã¡ãã»ã¼ã¸ãåºåããå ´åã«ï¼ãã¹ã¦ã®ã¡ãã»ã¼ã¸
- *  ãåºåã§ããããã«ï¼ã¡ãã»ã¼ã¸ã®éãå¶éããã¨ããçç±ãããï¼
- *
- *  å¨æãã³ãã©ã¯ï¼ä¸ã¤ã®åªå
-åº¦ï¼HIGH_PRIORITYï¼MID_PRIORITYï¼
- *  LOW_PRIORITYï¼ã®ã¬ãã£ã­ã¥ã¼ãåè»¢ãããï¼ãã­ã°ã©ã ã®èµ·åç´å¾ã¯ï¼
- *  å¨æãã³ãã©ã¯åæ­¢ç¶æ
-ã«ãªã£ã¦ããï¼
- *
- *  ã¡ã¤ã³ã¿ã¹ã¯ã¯ï¼ã·ãªã¢ã«I/Oãã¼ãããã®æå­å
-¥åãè¡ãï¼æå­å
-¥åã
- *  å¾
-ã£ã¦ããéã¯ï¼ä¸¦åå®è¡ãããã¿ã¹ã¯ãå®è¡ããã¦ããï¼ï¼å
-¥åããã
- *  æå­ã«å¯¾å¿ããå¦çãå®è¡ããï¼å
-¥åãããæå­ã¨å¦çã®é¢ä¿ã¯æ¬¡ã®éãï¼
- *  Control-Cã¾ãã¯'Q'ãå
-¥åãããã¨ï¼ãã­ã°ã©ã ãçµäºããï¼
- *
- *  '1' : å¯¾è±¡ã¿ã¹ã¯ãTASK1ã«åãæããï¼åæè¨­å®ï¼ï¼
- *  '2' : å¯¾è±¡ã¿ã¹ã¯ãTASK2ã«åãæããï¼
- *  '3' : å¯¾è±¡ã¿ã¹ã¯ãTASK3ã«åãæããï¼
- *  'a' : å¯¾è±¡ã¿ã¹ã¯ãcTask_activateã«ããèµ·åããï¼
- *  'A' : å¯¾è±¡ã¿ã¹ã¯ã«å¯¾ããèµ·åè¦æ±ãcTask_cancelActivateã«ããã­ã£ã³ã»ã«ããï¼
- *  'e' : å¯¾è±¡ã¿ã¹ã¯ã«exitTaskãå¼ã³åºããï¼çµäºãããï¼
- *  't' : å¯¾è±¡ã¿ã¹ã¯ãcTask_terminateã«ããå¼·å¶çµäºããï¼
- *  '>' : å¯¾è±¡ã¿ã¹ã¯ã®åªå
-åº¦ãHIGH_PRIORITYã«ããï¼
- *  '=' : å¯¾è±¡ã¿ã¹ã¯ã®åªå
-åº¦ãMID_PRIORITYã«ããï¼
- *  '<' : å¯¾è±¡ã¿ã¹ã¯ã®åªå
-åº¦ãLOW_PRIORITYã«ããï¼
- *  'G' : å¯¾è±¡ã¿ã¹ã¯ã®åªå
-åº¦ãcTask_getPriorityã§èª­ã¿åºãï¼
- *  's' : å¯¾è±¡ã¿ã¹ã¯ã«sleepãå¼ã³åºããï¼èµ·åºå¾
-ã¡ã«ãããï¼
- *  'S' : å¯¾è±¡ã¿ã¹ã¯ã«sleepTimeout10ç§)ãå¼ã³åºããï¼èµ·åºå¾
-ã¡ã«ãããï¼
- *  'w' : å¯¾è±¡ã¿ã¹ã¯ãcTask_wakeupã«ããèµ·åºããï¼
- *  'W' : å¯¾è±¡ã¿ã¹ã¯ã«å¯¾ããèµ·åºè¦æ±ãcTask_cancelWakeupã«ããã­ã£ã³ã»ã«ããï¼
- *  'l' : å¯¾è±¡ã¿ã¹ã¯ãcTask_releaseWaitã«ããå¼·å¶çã«å¾
-ã¡è§£é¤ã«ããï¼
- *  'u' : å¯¾è±¡ã¿ã¹ã¯ãcTask_suspendã«ããå¼·å¶å¾
-ã¡ç¶æ
-ã«ããï¼
- *  'm' : å¯¾è±¡ã¿ã¹ã¯ã®å¼·å¶å¾
-ã¡ç¶æ
-ãcTask_resumeã«ããè§£é¤ããï¼
- *  'd' : å¯¾è±¡ã¿ã¹ã¯ã«delay(10ç§)ãå¼ã³åºããï¼æéçµéå¾
-ã¡ã«ãããï¼
- *  'x' : å¯¾è±¡ã¿ã¹ã¯ã«raiseTerminateã«ããçµäºè¦æ±ããï¼
- *  'y' : å¯¾è±¡ã¿ã¹ã¯ã«disableTerminateãå¼ã³åºããï¼ã¿ã¹ã¯çµäºãç¦æ­¢ããï¼
- *  'Y' : å¯¾è±¡ã¿ã¹ã¯ã«enableTerminateãå¼ã³åºããï¼ã¿ã¹ã¯çµäºãè¨±å¯ããï¼
- *  'r' : 3ã¤ã®åªå
-åº¦ï¼HIGH_PRIORITYï¼MID_PRIORITYï¼LOW_PRIORITYï¼ã®ã¬
- *        ãã£ã­ã¥ã¼ãåè»¢ãããï¼
- *  'c' : å¨æãã³ãã©ãåä½éå§ãããï¼
- *  'C' : å¨æãã³ãã©ãåä½åæ­¢ãããï¼
- *  'b' : ã¢ã©ã¼ã ãã³ãã©ã5ç§å¾ã«èµ·åããããåä½éå§ãããï¼
- *  'B' : ã¢ã©ã¼ã ãã³ãã©ãåä½åæ­¢ãããï¼
- *  'z' : å¯¾è±¡ã¿ã¹ã¯ã«CPUä¾å¤ãçºçãããï¼ã¿ã¹ã¯ãçµäºãããï¼ï¼
- *  'Z' : å¯¾è±¡ã¿ã¹ã¯ã«CPUã­ãã¯ç¶æ
-ã§CPUä¾å¤ãçºçãããï¼ãã­ã°ã©ã ã
- *        çµäºããï¼ï¼
- *  'V' : fetchHighResolutionTimerã§é«åè§£è½ã¿ã¤ãã2åèª­ãï¼
- *  'v' : çºè¡ããã·ã¹ãã ã³ã¼ã«ãè¡¨ç¤ºããï¼ããã©ã«ãï¼ï¼
- *  'q' : çºè¡ããã·ã¹ãã ã³ã¼ã«ãè¡¨ç¤ºããªãï¼
- * å¼ã³å£é¢æ° #_TCPF_#
+ *  サンプルプログラム(1)の本体
+ *
+ *  ASPカーネルの基本的な動作を確認するためのサンプルプログラム．
+ *
+ *  プログラムの概要:
+ *
+ *  ユーザインタフェースを受け持つメインタスク（タスクID: MAIN_TASK，優
+ *  先度: MAIN_PRIORITY）と，3つの並行実行されるタスク（タスクID:
+ *  TASK1～TASK3，初期優先度: MID_PRIORITY）で構成される．また，起動周
+ *  期が2秒の周期ハンドラ（周期ハンドラID: CYCHDR1）を用いる．
+ *
+ *  並行実行されるタスクは，task_loop回空ループを実行する度に，タスクが
+ *  実行中であることをあらわすメッセージを表示する．空ループを実行する
+ *  のは，空ループなしでメッセージを出力すると，多量のメッセージが出力
+ *  され，プログラムの動作が確認しずらくなるためである．また，低速なシ
+ *  リアルポートを用いてメッセージを出力する場合に，すべてのメッセージ
+ *  が出力できるように，メッセージの量を制限するという理由もある．
+ *
+ *  周期ハンドラは，三つの優先度（HIGH_PRIORITY，MID_PRIORITY，
+ *  LOW_PRIORITY）のレディキューを回転させる．プログラムの起動直後は，
+ *  周期ハンドラは停止状態になっている．
+ *
+ *  メインタスクは，シリアルI/Oポートからの文字入力を行い（文字入力を
+ *  待っている間は，並列実行されるタスクが実行されている），入力された
+ *  文字に対応した処理を実行する．入力された文字と処理の関係は次の通り．
+ *  Control-Cまたは'Q'が入力されると，プログラムを終了する．
+ *
+ *  '1' : 対象タスクをTASK1に切り換える（初期設定）．
+ *  '2' : 対象タスクをTASK2に切り換える．
+ *  '3' : 対象タスクをTASK3に切り換える．
+ *  'a' : 対象タスクをcTask_activateにより起動する．
+ *  'A' : 対象タスクに対する起動要求をcTask_cancelActivateによりキャンセルする．
+ *  'e' : 対象タスクにexitTaskを呼び出させ，終了させる．
+ *  't' : 対象タスクをcTask_terminateにより強制終了する．
+ *  '>' : 対象タスクの優先度をHIGH_PRIORITYにする．
+ *  '=' : 対象タスクの優先度をMID_PRIORITYにする．
+ *  '<' : 対象タスクの優先度をLOW_PRIORITYにする．
+ *  'G' : 対象タスクの優先度をcTask_getPriorityで読み出す．
+ *  's' : 対象タスクにsleepを呼び出させ，起床待ちにさせる．
+ *  'S' : 対象タスクにsleepTimeout10秒)を呼び出させ，起床待ちにさせる．
+ *  'w' : 対象タスクをcTask_wakeupにより起床する．
+ *  'W' : 対象タスクに対する起床要求をcTask_cancelWakeupによりキャンセルする．
+ *  'l' : 対象タスクをcTask_releaseWaitにより強制的に待ち解除にする．
+ *  'u' : 対象タスクをcTask_suspendにより強制待ち状態にする．
+ *  'm' : 対象タスクの強制待ち状態をcTask_resumeにより解除する．
+ *  'd' : 対象タスクにdelay(10秒)を呼び出させ，時間経過待ちにさせる．
+ *  'x' : 対象タスクにraiseTerminateにより終了要求する．
+ *  'y' : 対象タスクにdisableTerminateを呼び出させ，タスク終了を禁止する．
+ *  'Y' : 対象タスクにenableTerminateを呼び出させ，タスク終了を許可する．
+ *  'r' : 3つの優先度（HIGH_PRIORITY，MID_PRIORITY，LOW_PRIORITY）のレ
+ *        ディキューを回転させる．
+ *  'c' : 周期ハンドラを動作開始させる．
+ *  'C' : 周期ハンドラを動作停止させる．
+ *  'b' : アラームハンドラを5秒後に起動するよう動作開始させる．
+ *  'B' : アラームハンドラを動作停止させる．
+ *  'z' : 対象タスクにCPU例外を発生させる（タスクを終了させる）．
+ *  'Z' : 対象タスクにCPUロック状態でCPU例外を発生させる（プログラムを
+ *        終了する）．
+ *  'V' : fetchHighResolutionTimerで高分解能タイマを2回読む．
+ *  'v' : 発行したシステムコールを表示する（デフォルト）．
+ *  'q' : 発行したシステムコールを表示しない．
+ * 呼び口関数 #_TCPF_#
  * require port: signature:sKernel context:task
  *   ER             getExtendedInformation( intptr_t* p_exinf );
@@ -246,5 +207,5 @@
 
 /*
- *  ãµã¼ãã¹ã³ã¼ã«ã®ã¨ã©ã¼ã®ã­ã°åºå
+ *  サービスコールのエラーのログ出力
  */
 Inline void
@@ -259,16 +220,15 @@
 
 /*
- *  ä¸¦è¡å®è¡ãããã¿ã¹ã¯ã¸ã®ã¡ãã»ã¼ã¸é å
+ *  並行実行されるタスクへのメッセージ領域
  */
 char	message[3];
 
 /*
- *  ã«ã¼ãåæ°
- */
-ulong_t	task_loop;		/* ã¿ã¹ã¯å
-ã§ã®ã«ã¼ãåæ° */
-
-/*
- *  ä¸¦è¡å®è¡ãããã¿ã¹ã¯
+ *  ループ回数
+ */
+ulong_t	task_loop;		/* タスク内でのループ回数 */
+
+/*
+ *  並行実行されるタスク
  */
 void eSampleTask_main(int_t subscript)
@@ -330,8 +290,8 @@
 
 /*
- *  CPUä¾å¤ãã³ãã©
- */
-
-ID	cpuexc_tskid;		/* CPUä¾å¤ãèµ·ãããã¿ã¹ã¯ã®ID */
+ *  CPU例外ハンドラ
+ */
+
+ID	cpuexc_tskid;		/* CPU例外を起こしたタスクのID */
 
 #ifdef CPUEXC1
@@ -373,9 +333,8 @@
 
 /*
- *  å¨æãã³ãã©
- *
- *  HIGH_PRIORITYï¼MID_PRIORITYï¼LOW_PRIORITY ã®ååªå
-åº¦ã®ã¬ãã£ã­ã¥ã¼
- *  ãåè»¢ãããï¼
+ *  周期ハンドラ
+ *
+ *  HIGH_PRIORITY，MID_PRIORITY，LOW_PRIORITY の各優先度のレディキュー
+ *  を回転させる．
  */
 /* #[<ENTRY_FUNC>]# eiCyclicHandler_main
@@ -393,9 +352,8 @@
 
 /*
- *  ã¢ã©ã¼ã ãã³ãã©
- *
- *  HIGH_PRIORITYï¼MID_PRIORITYï¼LOW_PRIORITY ã®ååªå
-åº¦ã®ã¬ãã£ã­ã¥ã¼
- *  ãåè»¢ãããï¼
+ *  アラームハンドラ
+ *
+ *  HIGH_PRIORITY，MID_PRIORITY，LOW_PRIORITY の各優先度のレディキュー
+ *  を回転させる．
  */
 /* #[<ENTRY_FUNC>]# eiAlarmHandler_main
@@ -412,5 +370,5 @@
 }
 /*
- *  ä¾å¤å¦çã¿ã¹ã¯
+ *  例外処理タスク
  */
 /* #[<ENTRY_FUNC>]# eExceptionTask_main
@@ -424,7 +382,7 @@
 }
 /*
- *  ã¡ã¤ã³ã¿ã¹ã¯
- */
-/* å±æ§ã®è¨­å® *//* #[<ENTRY_FUNC>]# eMainTask_main
+ *  メインタスク
+ */
+/* 属性の設定 *//* #[<ENTRY_FUNC>]# eMainTask_main
  * name:         eMainTask_main
  * global_name:  tSample2_eMainTask_main
@@ -447,7 +405,6 @@
 	} else {
 		/*
-		 *  ã·ãªã¢ã«åºåãã§ããªãå ´åãã­ã°ã¡ãã»ã¼ã¸ãå
-¨ã¦
-		 *  ä½ã¬ãã«åºåã«ããåºåããã
+		 *  シリアル出力ができない場合、ログメッセージを全て
+		 *  低レベル出力により出力する。
 		 */
 		SVC_PERROR(cSysLog_mask(LOG_UPTO(LOG_INFO), LOG_UPTO(LOG_DEBUG)));
@@ -456,9 +413,9 @@
 
 	/*
-	 *  ã·ãªã¢ã«ãã¼ãã®åæå
+	 *  シリアルポートの初期化
 	 *
-	 *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã¨åãã·ãªã¢ã«ãã¼ããä½¿ãå ´åãªã©ï¼ã·ãªã¢ã«
-	 *  ãã¼ãããªã¼ãã³æ¸ã¿ã®å ´åã«ã¯ããã§E_OBJã¨ã©ã¼ã«ãªããï¼æ¯éã¯
-	 *  ãªãï¼
+	 *  システムログタスクと同じシリアルポートを使う場合など，シリアル
+	 *  ポートがオープン済みの場合にはここでE_OBJエラーになるが，支障は
+	 *  ない．
 	 */
 
@@ -473,31 +430,29 @@
 
 	/*
- 	 *  ã«ã¼ãåæ°ã®è¨­å®
+ 	 *  ループ回数の設定
 	 *
-	 *  ä¸¦è¡å®è¡ãããã¿ã¹ã¯å
-ã§ã®ç©ºã«ã¼ãã®åæ°ï¼task_loopï¼ã¯ï¼ç©ºã«ã¼
-	 *  ãã®å®è¡æéãç´0.4ç§ã«ãªãããã«è¨­å®ããï¼ãã®è¨­å®ã®ããã«ï¼
-	 *  LOOP_REFåã®ç©ºã«ã¼ãã®å®è¡æéãï¼ãã®åå¾ã§get_timãå¼ã¶ãã¨ã§
-	 *  æ¸¬å®ãï¼ãã®æ¸¬å®çµæããç©ºã«ã¼ãã®å®è¡æéã0.4ç§ã«ãªãã«ã¼ãå
-	 *  æ°ãæ±ãï¼task_loopã«è¨­å®ããï¼
+	 *  並行実行されるタスク内での空ループの回数（task_loop）は，空ルー
+	 *  プの実行時間が約0.4秒になるように設定する．この設定のために，
+	 *  LOOP_REF回の空ループの実行時間を，その前後でget_timを呼ぶことで
+	 *  測定し，その測定結果から空ループの実行時間が0.4秒になるループ回
+	 *  数を求め，task_loopに設定する．
 	 *
-	 *  LOOP_REFã¯ï¼ããã©ã«ãã§ã¯1,000,000ã«è¨­å®ãã¦ãããï¼æ³å®ããã
-	 *  ãé
-ããã­ã»ããµã§ã¯ï¼ãµã³ãã«ãã­ã°ã©ã ã®å®è¡éå§ã«æéããã
-	 *  ããããã¨ããåé¡ãçããï¼éã«æ³å®ããããéããã­ã»ããµã§ã¯ï¼
-	 *  LOOP_REFåã®ç©ºã«ã¼ãã®å®è¡æéãç­ããªãï¼task_loopã«è¨­å®ããå¤
-	 *  ã®èª¤å·®ãå¤§ãããªãã¨ããåé¡ãããï¼
+	 *  LOOP_REFは，デフォルトでは1,000,000に設定しているが，想定したよ
+	 *  り遅いプロセッサでは，サンプルプログラムの実行開始に時間がかか
+	 *  りすぎるという問題を生じる．逆に想定したより速いプロセッサでは，
+	 *  LOOP_REF回の空ループの実行時間が短くなり，task_loopに設定する値
+	 *  の誤差が大きくなるという問題がある．
 	 *
-	 *  ããã§ï¼ãã®ãããªã¿ã¼ã²ããã§ã¯ï¼target_test.hã§ï¼LOOP_REFãé©
-	 *  åãªå¤ã«å®ç¾©ããã®ãæã¾ããï¼
+	 *  そこで，そのようなターゲットでは，target_test.hで，LOOP_REFを適
+	 *  切な値に定義するのが望ましい．
 	 *
-	 *  ã¾ãï¼task_loopã®å¤ãåºå®ãããå ´åã«ã¯ï¼ãã®å¤ãTASK_LOOPã«ã
-	 *  ã¯ã­å®ç¾©ããï¼TASK_LOOPããã¯ã­å®ç¾©ããã¦ããå ´åï¼ä¸è¨ã®æ¸¬å®ã
-	 *  è¡ããã«ï¼TASK_LOOPã«å®ç¾©ãããå¤ãç©ºã«ã¼ãã®åæ°ã¨ããï¼
+	 *  また，task_loopの値を固定したい場合には，その値をTASK_LOOPにマ
+	 *  クロ定義する．TASK_LOOPがマクロ定義されている場合，上記の測定を
+	 *  行わずに，TASK_LOOPに定義された値を空ループの回数とする．
 	 *
-	 * ã¿ã¼ã²ããã«ãã£ã¦ã¯ï¼ç©ºã«ã¼ãã®å®è¡æéã®1åç®ã®æ¸¬å®ã§ï¼æ¬æ¥ã
-	 * ããé·ãã«ãªããã®ãããï¼ãã®ãããªã¿ã¼ã²ããã§ã¯ï¼MEASURE_TWICE
-	 * ããã¯ã­å®ç¾©ãããã¨ã§ï¼1åç®ã®æ¸¬å®çµæãæ¨ã¦ã¦ï¼2åç®ã®æ¸¬å®çµæ
-	 * ãä½¿ãï¼
+	 * ターゲットによっては，空ループの実行時間の1回目の測定で，本来よ
+	 * りも長めになるものがある．このようなターゲットでは，MEASURE_TWICE
+	 * をマクロ定義することで，1回目の測定結果を捨てて，2回目の測定結果
+	 * を使う．
 	 */
 #ifdef TASK_LOOP
@@ -521,5 +476,5 @@
 
 	/*
- 	 *  ã¿ã¹ã¯ã®èµ·å
+ 	 *  タスクの起動
 	 */
 
@@ -529,5 +484,5 @@
 
 	/*
- 	 *  ã¡ã¤ã³ã«ã¼ã
+ 	 *  メインループ
 	 */
 	if (is_cSerialPort_joined()) {
Index: azure_iot_hub/trunk/asp3_dcre/sample/tSample2.cdl
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/sample/tSample2.cdl	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/sample/tSample2.cdl	(revision 389)
@@ -1,14 +1,14 @@
 /*
- *		ãµã³ãã«ãã­ã°ã©ã (2)ã®ã³ã³ãã¼ãã³ãè¨è¿°ãã¡ã¤ã«
+ *		サンプルプログラム(2)のコンポーネント記述ファイル
  *
  *  $Id$
  */
 /*
- *  ã«ã¼ãã«ãªãã¸ã§ã¯ãã®å®ç¾©
+ *  カーネルオブジェクトの定義
  */
 import("kernel.cdl");
 
 /*
- *  ã¿ã¼ã²ããéä¾å­ã®ã»ã«ã¿ã¤ãã®å®ç¾©
+ *  ターゲット非依存のセルタイプの定義
  */
 import("syssvc/tSerialPort.cdl");
@@ -18,82 +18,79 @@
 
 /*
- *  ã¿ã¼ã²ããä¾å­é¨ã®åãè¾¼ã¿
+ *  ターゲット依存部の取り込み
  */
 import("target.cdl");
 
 /*
- *  ãã»ã«ã®çµä¸ãè¨è¿°ãã¨ã¯ï¼"cell"ã§å§ã¾ãè¡ããï¼ããã«å¯¾å¿ãã"};"
- *  ã®è¡ã¾ã§ã®ãã¨ãè¨ãï¼
- */
-
-/*
- *  ã·ã¹ãã ã­ã°æ©è½ã®çµä¸ãè¨è¿°
- *
- *  ã·ã¹ãã ã­ã°æ©è½ãå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°ãåé¤ãï¼ã³
- *  ã³ãã¤ã«ãªãã·ã§ã³ã«-DTOPPERS_OMIT_SYSLOGãè¿½å ããã°ããï¼ãã ãï¼
- *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã¯ã·ã¹ãã ã­ã°æ©è½ãä½¿ç¨ããããï¼ãããå¤ããã¨
- *  ãå¿
-è¦ã§ããï¼ã¾ãï¼ã·ã¹ãã ã­ã°æ©è½ã®ã¢ããã¿ãå¤ããªããã°ãªããª
- *  ãï¼tecsgenãè­¦åã¡ãã»ã¼ã¸ãåºããï¼ç¡è¦ãã¦ããï¼
+ *  「セルの組上げ記述」とは，"cell"で始まる行から，それに対応する"};"
+ *  の行までのことを言う．
+ */
+
+/*
+ *  システムログ機能の組上げ記述
+ *
+ *  システムログ機能を外す場合には，以下のセルの組上げ記述を削除し，コ
+ *  ンパイルオプションに-DTOPPERS_OMIT_SYSLOGを追加すればよい．ただし，
+ *  システムログタスクはシステムログ機能を使用するため，それも外すこと
+ *  が必要である．また，システムログ機能のアダプタも外さなければならな
+ *  い．tecsgenが警告メッセージを出すが，無視してよい．
  */
 cell tSysLog SysLog {
-	logBufferSize = 32;					/* ã­ã°ãããã¡ã®ãµã¤ãº */
+	logBufferSize = 32;					/* ログバッファのサイズ */
 	initLogMask = C_EXP("LOG_UPTO(LOG_NOTICE)");
-										/* ã­ã°ãããã¡ã«è¨é²ãã¹ãéè¦åº¦ */
+										/* ログバッファに記録すべき重要度 */
 	initLowMask = C_EXP("LOG_UPTO(LOG_EMERG)");
-									   	/* ä½ã¬ãã«åºåãã¹ãéè¦åº¦ */
-
-	/* ä½ã¬ãã«åºåã¨ã®çµå */
+									   	/* 低レベル出力すべき重要度 */
+
+	/* 低レベル出力との結合 */
 	cPutLog = PutLogTarget.ePutLog;
 };
 
 /*
- *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®çµä¸ãè¨è¿°
- *
- *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ããå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨
- *  è¿°ãåé¤ããã°ããï¼ãã ãï¼ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã¯ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼
- *  ã¹ãã©ã¤ããä½¿ç¨ããããï¼ãããå¤ããã¨ãå¿
-è¦ã§ããï¼ã¾ãï¼ã·ãªã¢
- *  ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ã¢ããã¿ãå¤ããªããã°ãªããªãï¼
+ *  シリアルインタフェースドライバの組上げ記述
+ *
+ *  シリアルインタフェースドライバを外す場合には，以下のセルの組上げ記
+ *  述を削除すればよい．ただし，システムログタスクはシリアルインタフェー
+ *  スドライバを使用するため，それも外すことが必要である．また，シリア
+ *  ルインタフェースドライバのアダプタも外さなければならない．
  */
 cell tSerialPort SerialPort1 {
-	receiveBufferSize = 256;			/* åä¿¡ãããã¡ã®ãµã¤ãº */
-	sendBufferSize    = 256;			/* éä¿¡ãããã¡ã®ãµã¤ãº */
-
-	/* ã¿ã¼ã²ããä¾å­é¨ã¨ã®çµå */
+	receiveBufferSize = 256;			/* 受信バッファのサイズ */
+	sendBufferSize    = 256;			/* 送信バッファのサイズ */
+
+	/* ターゲット依存部との結合 */
 	cSIOPort = SIOPortTarget1.eSIOPort;
-	eiSIOCBR <= SIOPortTarget1.ciSIOCBR;	/* ã³ã¼ã«ããã¯ */
-};
-
-/*
- *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®çµä¸ãè¨è¿°
- *
- *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ãå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°ãåé¤ãã
- *  ã°ããï¼
+	eiSIOCBR <= SIOPortTarget1.ciSIOCBR;	/* コールバック */
+};
+
+/*
+ *  システムログタスクの組上げ記述
+ *
+ *  システムログタスクを外す場合には，以下のセルの組上げ記述を削除すれ
+ *  ばよい．
  */
 cell tLogTask LogTask {
-	priority  = 3;					/* ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®åªå
-åº¦ */
-	stackSize = LogTaskStackSize;	/* ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
-
-	/* ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã¨ã®çµå */
+	priority  = 3;					/* システムログタスクの優先度 */
+	stackSize = LogTaskStackSize;	/* システムログタスクのスタックサイズ */
+
+	/* シリアルインタフェースドライバとの結合 */
 	cSerialPort        = SerialPort1.eSerialPort;
 	cnSerialPortManage = SerialPort1.enSerialPortManage;
 
-	/* ã·ã¹ãã ã­ã°æ©è½ã¨ã®çµå */
+	/* システムログ機能との結合 */
 	cSysLog = SysLog.eSysLog;
 
-	/* ä½ã¬ãã«åºåã¨ã®çµå */
+	/* 低レベル出力との結合 */
 	cPutLog = PutLogTarget.ePutLog;
 };
 
 /*
- *  ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸åºåã®çµä¸ãè¨è¿°
- *
- *  ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ã®åºåãå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°
- *  ãåé¤ããã°ããï¼
+ *  カーネル起動メッセージ出力の組上げ記述
+ *
+ *  カーネル起動メッセージの出力を外す場合には，以下のセルの組上げ記述
+ *  を削除すればよい．
  */
 cell tBanner Banner {
-	/* å±æ§ã®è¨­å® */
+	/* 属性の設定 */
 	targetName      = BannerTargetName;
 	copyrightNotice = BannerCopyrightNotice;
@@ -101,33 +98,33 @@
 
 /*
- *  ãµã³ãã«ãã­ã°ã©ã ã®å®ç¾©
+ *  サンプルプログラムの定義
  */
 [singleton]
 celltype tSample2 {
-	require tKernel.eKernel;			/* å¼ã³å£åãªãï¼ä¾ï¼delayï¼*/
-	/*require cKernel = tKernel.eKernel;/* å¼ã³å£åããï¼ä¾ï¼cKernel_delayï¼*/
-	require ciKernel = tKernel.eiKernel;/* å¼ã³å£åããï¼ä¾ï¼ciKernel_ï¼*/
-
-	call sTask		    cTask[4];		/* ã¿ã¹ã¯æä½ */
+	require tKernel.eKernel;			/* 呼び口名なし（例：delay）*/
+	/*require cKernel = tKernel.eKernel;/* 呼び口名あり（例：cKernel_delay）*/
+	require ciKernel = tKernel.eiKernel;/* 呼び口名あり（例：ciKernel_）*/
+
+	call sTask		    cTask[4];		/* タスク操作 */
 	call sTask 			cExceptionTask;
 	call sCyclic        cCyclic;
 	call sAlarm         cAlarm;
 
-	[optional] call sSerialPort	cSerialPort;/* ã·ãªã¢ã«ãã©ã¤ãã¨ã®æ¥ç¶ */
-	call sSysLog		cSysLog;		/* ã·ã¹ãã ã­ã°æ©è½ã¨ã®æ¥ç¶ */
+	[optional] call sSerialPort	cSerialPort;/* シリアルドライバとの接続 */
+	call sSysLog		cSysLog;		/* システムログ機能との接続 */
 	
-	entry sTaskBody		eMainTask;	  	/* Mainã¿ã¹ã¯ */
-	entry sTaskBody		eSampleTask[3];	/* ä¸¦è¡å®è¡ãããã¿ã¹ã¯ */
-	entry sTaskBody		eExceptionTask;	/* ä¾å¤å¦çã¿ã¹ã¯ */
+	entry sTaskBody		eMainTask;	  	/* Mainタスク */
+	entry sTaskBody		eSampleTask[3];	/* 並行実行されるタスク */
+	entry sTaskBody		eExceptionTask;	/* 例外処理タスク */
 	
-	entry siHandlerBody eiCyclicHandler;/* å¨æãã³ãã©*/
-	entry siHandlerBody eiAlarmHandler; /* ã¢ã©ã¼ã ãã³ãã© */
-};
-
-/*
- *  çµã¿ä¸ãè¨è¿°
- */
-
-/* Sample2ã®ãã­ãã¿ã¤ãå®£è¨ */
+	entry siHandlerBody eiCyclicHandler;/* 周期ハンドラ*/
+	entry siHandlerBody eiAlarmHandler; /* アラームハンドラ */
+};
+
+/*
+ *  組み上げ記述
+ */
+
+/* Sample2のプロトタイプ宣言 */
 cell tSample2 Sample2;
 
@@ -136,7 +133,7 @@
 
 cell tTask MainTask {
-	/* å¼ã³å£ã®çµå */
+	/* 呼び口の結合 */
 	cTaskBody = Sample2.eMainTask;
-	/* å±æ§ã®è¨­å® */
+	/* 属性の設定 */
 	attribute = C_EXP("TA_ACT");
 	priority = C_EXP("MAIN_PRIORITY");
@@ -145,7 +142,7 @@
 
 cell tTask Task1 {
-	/* å¼ã³å£ã®çµå */
+	/* 呼び口の結合 */
 	cTaskBody = Sample2.eSampleTask[0];
-	  /* å±æ§ã®è¨­å® */
+	  /* 属性の設定 */
 	priority = C_EXP("MID_PRIORITY");
 	stackSize = C_EXP("STACK_SIZE");
@@ -153,7 +150,7 @@
 
 cell tTask Task2 {
-	/* å¼ã³å£ã®çµå */
+	/* 呼び口の結合 */
 	cTaskBody = Sample2.eSampleTask[1];
-	/* å±æ§ã®è¨­å® */
+	/* 属性の設定 */
 	priority = C_EXP("MID_PRIORITY");
 	stackSize = C_EXP("STACK_SIZE");
@@ -161,7 +158,7 @@
 
 cell tTask Task3 {
-	/* å¼ã³å£ã®çµå */
+	/* 呼び口の結合 */
 	cTaskBody = Sample2.eSampleTask[2];
-	/* å±æ§ã®è¨­å® */
+	/* 属性の設定 */
 	priority = C_EXP("MID_PRIORITY");
 	stackSize = C_EXP("STACK_SIZE");
@@ -169,7 +166,7 @@
 
 cell tTask ExceptionTask {
-	/* å¼ã³å£ã®çµå */
+	/* 呼び口の結合 */
 	cTaskBody = Sample2.eExceptionTask;
-	/* å±æ§ã®è¨­å® */
+	/* 属性の設定 */
 	priority = C_EXP("EXC_PRIORITY");
 	stackSize = C_EXP("STACK_SIZE");
@@ -177,7 +174,7 @@
 
 cell tCyclicHandler CyclicHandler {
-	/* å¼ã³å£ã®çµå */
+	/* 呼び口の結合 */
 	ciHandlerBody = Sample2.eiCyclicHandler;
-	/* å±æ§ã®è¨­å® */
+	/* 属性の設定 */
 	cycleTime = 2000000;
 };
@@ -188,5 +185,5 @@
 
 cell tSample2 Sample2 {
-	/* å¼ã³å£ã®çµå */
+	/* 呼び口の結合 */
 	cTask[ 0 ] = MainTask.eTask;
 	cTask[ 1 ] = Task1.eTask;
Index: azure_iot_hub/trunk/asp3_dcre/sample/tSample2.cfg
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/sample/tSample2.cfg	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/sample/tSample2.cfg	(revision 389)
@@ -1,4 +1,4 @@
 /*
- *		ãµã³ãã«ãã­ã°ã©ã (2)ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *		サンプルプログラム(2)のシステムコンフィギュレーションファイル
  *
  *  $Id$
Index: azure_iot_hub/trunk/asp3_dcre/sample/tSample2.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/sample/tSample2.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/sample/tSample2.h	(revision 389)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  *
  *  $Id$
@@ -57,42 +42,38 @@
 
 /*
- *		ãµã³ãã«ãã­ã°ã©ã (2)ã®ããããã¡ã¤ã«
+ *		サンプルプログラム(2)のヘッダファイル
  */
 
 /*
- *  ã¿ã¼ã²ããä¾å­ã®å®ç¾©
+ *  ターゲット依存の定義
  */
 #include "target_test.h"
 
 /*
- *  åã¿ã¹ã¯ã®åªå
-åº¦ã®å®ç¾©
+ *  各タスクの優先度の定義
  */
 
-#define EXC_PRIORITY	1		/* ä¾å¤å¦çã¿ã¹ã¯ã®åªå
-åº¦ */
-#define MAIN_PRIORITY	5		/* ã¡ã¤ã³ã¿ã¹ã¯ã®åªå
-åº¦ */
-								/* HIGH_PRIORITYããé«ããããã¨ */
+#define EXC_PRIORITY	1		/* 例外処理タスクの優先度 */
+#define MAIN_PRIORITY	5		/* メインタスクの優先度 */
+								/* HIGH_PRIORITYより高くすること */
 
-#define HIGH_PRIORITY	9		/* ä¸¦åã«å®è¡ãããã¿ã¹ã¯ã®åªå
-åº¦ */
+#define HIGH_PRIORITY	9		/* 並列に実行されるタスクの優先度 */
 #define MID_PRIORITY	10
 #define LOW_PRIORITY	11
 
 /*
- *  ã¿ã¼ã²ããã«ä¾å­ããå¯è½æ§ã®ããå®æ°ã®å®ç¾©
+ *  ターゲットに依存する可能性のある定数の定義
  */
 
 #ifndef STACK_SIZE
-#define	STACK_SIZE		4096		/* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+#define	STACK_SIZE		4096		/* タスクのスタックサイズ */
 #endif /* STACK_SIZE */
 
 #ifndef LOOP_REF
-#define LOOP_REF		ULONG_C(1000000)	/* éåº¦è¨æ¸¬ç¨ã®ã«ã¼ãåæ° */
+#define LOOP_REF		ULONG_C(1000000)	/* 速度計測用のループ回数 */
 #endif /* LOOP_REF */
 
 /*
- *  é¢æ°ã®ãã­ãã¿ã¤ãå®£è¨
+ *  関数のプロトタイプ宣言
  */
 #ifndef TOPPERS_MACRO_ONLY
