Changeset 315 for rubycfg_asp/trunk/asp_dcre/sample
- Timestamp:
- Jul 23, 2017, 2:29:40 PM (7 years ago)
- Location:
- rubycfg_asp/trunk/asp_dcre/sample
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
rubycfg_asp/trunk/asp_dcre/sample/Makefile
-
Property svn:eol-style
set to
native
-
Property svn:mime-type
set to
text/x-makefile; charset=UTF-8
r313 r315 9 9 # Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 # 11 # ä¸è¨èä½æ¨©è 12 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 13 # ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 14 # å¤ã»åé 15 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 16 # (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 17 # 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 18 # ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 19 # (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 20 # ç¨ã§ããå½¢ã§åé 21 å¸ããå ´åã«ã¯ï¼åé 22 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 23 # è 24 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 25 # ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 26 # (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 27 # ç¨ã§ããªãå½¢ã§åé 28 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 29 # ã¨ï¼ 30 # (a) åé 31 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 32 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 33 # ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 34 # (b) åé 35 å¸ã®å½¢æ 36 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 37 # å ±åãããã¨ï¼ 38 # (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 39 # 害ãããï¼ä¸è¨èä½æ¨©è 40 ããã³TOPPERSããã¸ã§ã¯ããå 41 責ãããã¨ï¼ 42 # ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 43 # ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 44 ããã³TOPPERSããã¸ã§ã¯ãã 45 # å 46 責ãããã¨ï¼ 11 # 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 12 # ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 # 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 # (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 # 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 # スコード中に含まれていること. 17 # (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 # 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 # 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 # の無保証規定を掲載すること. 21 # (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 # 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 # と. 24 # (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 # 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 # (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 # 報告すること. 28 # (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 # 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 # また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 # 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 # 免責すること. 47 33 # 48 # æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 49 ã 50 # ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 51 # ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 52 # ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 53 # ã®è²¬ä»»ãè² ããªãï¼ 34 # 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 # よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 # に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 # アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 # の責任を負わない. 54 39 # 55 40 # $Id: Makefile 2594 2014-01-02 07:08:54Z ertl-hiro $ … … 57 42 58 43 # 59 # ã¿ã¼ã²ããã®æå®ï¼Makefile.targetã§ä¸æ¸ããããã®ãé²ãããï¼44 # ターゲットの指定(Makefile.targetで上書きされるのを防ぐため) 60 45 # 61 46 all: 62 47 63 48 # 64 # ã¿ã¼ã²ããç¥ç§°ã®å®ç¾©49 # ターゲット略称の定義 65 50 # 66 51 TARGET = @(TARGET) 67 52 68 53 # 69 # ããã°ã©ãã³ã°è¨èªã®å®ç¾©54 # プログラミング言語の定義 70 55 # 71 56 SRCLANG = @(SRCLANG) … … 80 65 81 66 # 82 # ã½ã¼ã¹ãã¡ã¤ã«ã®ãã£ã¬ã¯ããªã®å®ç¾©67 # ソースファイルのディレクトリの定義 83 68 # 84 69 SRCDIR = @(SRCDIR) 85 70 86 71 # 87 # ãªãã¸ã§ã¯ããã¡ã¤ã«åã®æ¡å¼µåã®è¨å®72 # オブジェクトファイル名の拡張子の設定 88 73 # 89 74 OBJEXT = @(OBJEXT) 90 75 91 76 # 92 # å®è¡ç°å¢ã®å®ç¾©ï¼ã¿ã¼ã²ããä¾åã«ä¸æ¸ããããå ´åãããï¼77 # 実行環境の定義(ターゲット依存に上書きされる場合がある) 93 78 # 94 79 DBGENV := @(DBGENV) 95 80 96 81 # 97 # ã«ã¼ãã«ã©ã¤ãã©ãªï¼libkernel.aï¼ã®ãã£ã¬ã¯ããªå98 # ï¼ã«ã¼ãã«ã©ã¤ãã©ãªãmake対象ã«ããæã¯ï¼ç©ºã«å®ç¾©ããï¼82 # カーネルライブラリ(libkernel.a)のディレクトリ名 83 # (カーネルライブラリもmake対象にする時は,空に定義する) 99 84 # 100 85 KERNEL_LIB = @(KERNEL_LIB) 101 86 102 87 # 103 # ã«ã¼ãã«ãé¢æ°åä½ã§ã³ã³ãã¤ã«ãããã©ããã®å®ç¾©88 # カーネルを関数単位でコンパイルするかどうかの定義 104 89 # 105 90 KERNEL_FUNCOBJS = @(KERNEL_FUNCOBJS) 106 91 107 92 # 108 # ãã¬ã¼ã¹ãã°ãåå¾ãããã©ããã®å®ç¾©93 # トレースログを取得するかどうかの定義 109 94 # 110 95 ENABLE_TRACE = @(ENABLE_TRACE) 111 96 112 97 # 113 # ã¦ã¼ãã£ãªãã£ããã°ã©ã ã®å称98 # ユーティリティプログラムの名称 114 99 # 115 100 PERL = @(PERL) … … 117 102 118 103 # 119 # ãªãã¸ã§ã¯ããã¡ã¤ã«åã®å®ç¾©104 # オブジェクトファイル名の定義 120 105 # 121 106 OBJNAME = asp_dcre … … 129 114 130 115 # 131 # ã¿ã¼ã²ããä¾åé¨ã®ãã£ã¬ã¯ããªã®å®ç¾©116 # ターゲット依存部のディレクトリの定義 132 117 # 133 118 TARGETDIR = $(SRCDIR)/target/$(TARGET) 134 119 135 120 # 136 # ã¿ã¼ã²ããä¾åã®å®ç¾©ã®ã¤ã³ã¯ã«ã¼ã121 # ターゲット依存の定義のインクルード 137 122 # 138 123 include $(TARGETDIR)/Makefile.target 139 124 140 125 # 141 # å 142 ±éã³ã³ãã¤ã«ãªãã·ã§ã³ã®å®ç¾© 126 # 共通コンパイルオプションの定義 143 127 # 144 128 COPTS := $(COPTS) -g @(COPTS) … … 157 141 158 142 # 159 # ã¢ããªã±ã¼ã·ã§ã³ããã°ã©ã ã«é¢ããå®ç¾©143 # アプリケーションプログラムに関する定義 160 144 # 161 145 APPLNAME = @(APPLNAME) … … 181 165 ifdef TINETDIR 182 166 # 183 # ãããã¯ã¼ã¯ãµã¼ãã¹ã®å®ç¾©167 # ネットワークサービスの定義 184 168 # 185 169 186 170 NO_USE_TINET_LIBRARY = false 187 171 188 # ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®é¸æãä½ããä¸ã¤é¸æããã172 # ネットワークインタフェースの選択、何れか一つ選択する。 189 173 190 174 NET_IF = @(NET_IF) 191 175 192 # ã¤ã¼ãµãããã»ãã£ãã¤ã¹ãã©ã¤ãã®é¸æ176 # イーサネット・ディバイスドライバの選択 193 177 194 178 NET_DEV = @(NET_DEV) 195 179 196 # ãããã¯ã¼ã¯å±¤ã®é¸æ180 # ネットワーク層の選択 197 181 198 182 SUPPORT_INET6 = @(SUPPORT_INET6) 199 183 SUPPORT_INET4 = @(SUPPORT_INET4) 200 184 201 # API ã«çµè¾¼ãæ©è½ã®é¸æ185 # API に組込む機能の選択 202 186 203 187 API_CFG_IP4MAPPED_ADDR = @(API_CFG_IP4MAPPED_ADDR) 204 188 205 # ãã©ã³ã¹ãã¼ã層ã®é¸æ189 # トランスポート層の選択 206 190 207 191 SUPPORT_TCP = @(SUPPORT_TCP) … … 209 193 210 194 # 211 # ãããã¯ã¼ã¯ãµã¼ãã¹ã® Makefile ã®ã¤ã³ã¯ã«ã¼ã195 # ネットワークサービスの Makefile のインクルード 212 196 # 213 197 include $(SRCDIR)/$(TINETDIR)/Makefile.tinet … … 215 199 216 200 # 217 # ã·ã¹ãã ãµã¼ãã¹ã«é¢ããå®ç¾©201 # システムサービスに関する定義 218 202 # 219 203 SYSSVC_DIR := $(SYSSVC_DIR) $(SRCDIR)/syssvc $(SRCDIR)/library … … 226 210 227 211 # 228 # ã³ã³ãã£ã®ã¥ã¬ã¼ã¿é¢ä¿ã®å¤æ°ã®å®ç¾©212 # コンフィギュレータ関係の変数の定義 229 213 # 230 214 ifndef TINETDIR … … 245 229 246 230 # 247 # ã«ã¼ãã«ã«é¢ããå®ç¾©248 # 249 # KERNEL_ASMOBJS: ã«ã¼ãã«ã©ã¤ãã©ãªã«å«ããï¼ã½ã¼ã¹ãã¢ã»ã³ããªè¨èªã®250 # ãªãã¸ã§ã¯ããã¡ã¤ã«ï¼251 # KERNEL_COBJS: ã«ã¼ãã«ã®ã©ã¤ãã©ãªã«å«ããï¼ã½ã¼ã¹ãCè¨èªã§ï¼ã½ã¼ã¹252 # ãã¡ã¤ã«ã¨1対1ã«å¯¾å¿ãããªãã¸ã§ã¯ããã¡ã¤ã«ï¼253 # KERNEL_LCSRCS: ã«ã¼ãã«ã®ã©ã¤ãã©ãªã«å«ããCè¨èªã®ã½ã¼ã¹ãã¡ã¤ã«ã§ï¼254 # 1 ã¤ã®ã½ã¼ã¹ãã¡ã¤ã«ããè¤æ°ã®ãªãã¸ã§ã¯ããã¡ã¤ã«ãç255 # æãããã®ï¼256 # KERNEL_LCOBJS: ä¸ã®ã½ã¼ã¹ãã¡ã¤ã«ããçæããããªãã¸ã§ã¯ããã¡ã¤ã«ï¼257 # KERNEL_AUX_COBJS: ãã¼ãã¢ã¸ã¥ã¼ã«ã«å«ããªããï¼ã«ã¼ãã«ã®ã½ã¼ã¹ãã¡258 # ã¤ã«ã¨åããªãã·ã§ã³ãé©ç¨ãã¦ã³ã³ãã¤ã«ãã¹ãï¼ã½ã¼259 # ã¹ãCè¨èªã®ãªãã¸ã§ã¯ããã¡ã¤ã«ï¼231 # カーネルに関する定義 232 # 233 # KERNEL_ASMOBJS: カーネルライブラリに含める,ソースがアセンブリ言語の 234 # オブジェクトファイル. 235 # KERNEL_COBJS: カーネルのライブラリに含める,ソースがC言語で,ソース 236 # ファイルと1対1に対応するオブジェクトファイル. 237 # KERNEL_LCSRCS: カーネルのライブラリに含めるC言語のソースファイルで, 238 # 1つのソースファイルから複数のオブジェクトファイルを生 239 # 成するもの. 240 # KERNEL_LCOBJS: 上のソースファイルから生成されるオブジェクトファイル. 241 # KERNEL_AUX_COBJS: ロードモジュールに含めないが,カーネルのソースファ 242 # イルと同じオプションを適用してコンパイルすべき,ソー 243 # スがC言語のオブジェクトファイル. 260 244 # 261 245 KERNEL_DIR := $(KERNEL_DIR) $(SRCDIR)/kernel … … 273 257 274 258 # 275 # ã¿ã¼ã²ãããã¡ã¤ã«ï¼è¤æ°ãåæã«é¸æãã¦ã¯ãªããªãï¼259 # ターゲットファイル(複数を同時に選択してはならない) 276 260 # 277 261 #all: check $(OBJFILE) … … 279 263 all: check $(OBJNAME).srec 280 264 281 ##### 以ä¸ã¯ç·¨éããªããã¨#####282 283 # 284 # ç°å¢ã«ä¾åããã³ã³ãã¤ã«ãªãã·ã§ã³ã®å®ç¾©265 ##### 以下は編集しないこと ##### 266 267 # 268 # 環境に依存するコンパイルオプションの定義 285 269 # 286 270 ifdef DBGENV … … 289 273 290 274 # 291 # ã«ã¼ãã«ã®ãã¡ã¤ã«æ§æã®å®ç¾©275 # カーネルのファイル構成の定義 292 276 # 293 277 include $(SRCDIR)/kernel/Makefile.kernel … … 302 286 303 287 # 304 # ã½ã¼ã¹ãã¡ã¤ã«ã®ãããã£ã¬ã¯ããªã«é¢ããå®ç¾©288 # ソースファイルのあるディレクトリに関する定義 305 289 # 306 290 vpath %.c $(KERNEL_DIR) $(SYSSVC_DIR) $(APPL_DIR) … … 309 293 310 294 # 311 # ã³ã³ãã¤ã«ã®ããã®å¤æ°ã®å®ç¾©295 # コンパイルのための変数の定義 312 296 # 313 297 KERNEL_LIB_OBJS = $(KERNEL_ASMOBJS) $(KERNEL_COBJS) $(KERNEL_LCOBJS) … … 340 324 341 325 # 342 # ã«ã¼ãã«ã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®çæ326 # カーネルのコンフィギュレーションファイルの生成 343 327 # 344 328 cfg1_out.c cfg1_out.db: cfg1_out.timestamp ; … … 363 347 364 348 # 365 # ãªãã»ãããã¡ã¤ã«ï¼offset.hï¼ã®çæè¦å349 # オフセットファイル(offset.h)の生成規則 366 350 # 367 351 ifdef OFFSET_TRB … … 376 360 377 361 # 378 # ã«ã¼ãã«ã©ã¤ãã©ãªãã¡ã¤ã«ã®çæ362 # カーネルライブラリファイルの生成 379 363 # 380 364 libkernel.a: $(OFFSET_H) $(KERNEL_LIB_OBJS) … … 384 368 385 369 # 386 # ç¹å¥ãªä¾åé¢ä¿ã®å®ç¾©370 # 特別な依存関係の定義 387 371 # 388 372 banner.o: kernel_cfg.timestamp $(filter-out banner.o,$(ALL_OBJS)) $(LIBS_DEP) 389 373 390 374 # 391 # å 392 ¨ä½ã®ãªã³ã¯ 375 # 全体のリンク 393 376 # 394 377 $(OBJFILE): $(APPL_CFG) kernel_cfg.timestamp $(ALL_OBJS) $(LIBS_DEP) … … 399 382 400 383 # 401 # ã·ã³ãã«ãã¡ã¤ã«ã®çæ384 # シンボルファイルの生成 402 385 # 403 386 $(OBJNAME).syms: $(OBJFILE) … … 405 388 406 389 # 407 # ãã¤ããªãã¡ã¤ã«ã®çæ390 # バイナリファイルの生成 408 391 # 409 392 $(OBJNAME).bin: $(OBJFILE) … … 411 394 412 395 # 413 # S ã¬ã³ã¼ããã¡ã¤ã«ã®çæ396 # Sレコードファイルの生成 414 397 # 415 398 $(OBJNAME).srec: $(OBJFILE) … … 417 400 418 401 # 419 # ã¨ã©ã¼ãã§ãã¯å¦ç402 # エラーチェック処理 420 403 # 421 404 .PHONY: check … … 427 410 428 411 # 429 # ã³ã³ãã¤ã«çµæã®æ¶å»412 # コンパイル結果の消去 430 413 # 431 414 .PHONY: clean … … 459 442 460 443 # 461 # ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãçæãããã¡ã¤ã«ã®ã³ã³ãã¤ã«ã«ã¼ã«ã¨ä¾åé¢ä¿ä½æ462 # ã«ã¼ã«ã®å®ç¾©463 # 464 # ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãçæãããã¡ã¤ã«ã¯ï¼ã¢ããªã±ã¼ã·ã§ã³ããã°ã©ã ç¨ï¼465 # ã·ã¹ãã ãµã¼ãã¹ç¨ï¼ã«ã¼ãã«ç¨ã®ãã¹ã¦ã®ãªãã·ã§ã³ãä»ãã¦ã³ã³ãã¤ã«466 # ããï¼444 # コンフィギュレータが生成したファイルのコンパイルルールと依存関係作成 445 # ルールの定義 446 # 447 # コンフィギュレータが生成したファイルは,アプリケーションプログラム用, 448 # システムサービス用,カーネル用のすべてのオプションを付けてコンパイル 449 # する. 467 450 # 468 451 ALL_CFG_COBJS = $(CFG_COBJS) cfg1_out.o … … 488 471 489 472 # 490 # ç¹æ®ãªä¾åé¢ä¿ä½æã«ã¼ã«ã®å®ç¾©473 # 特殊な依存関係作成ルールの定義 491 474 # 492 475 cfg1_out.depend: $(APPL_CFG) … … 498 481 499 482 # 500 # ä¾åé¢ä¿ãã¡ã¤ã«ã®çæ483 # 依存関係ファイルの生成 501 484 # 502 485 .PHONY: gendepend … … 517 500 518 501 # 519 # ä¾åé¢ä¿ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ã502 # 依存関係ファイルをインクルード 520 503 # 521 504 -include Makefile.depend 522 505 523 506 # 524 # éçºãã¼ã«ã®ã³ãã³ãåã®å®ç¾©507 # 開発ツールのコマンド名の定義 525 508 # 526 509 ifeq ($(TOOL),gcc) 527 510 # 528 # GNU éçºç°å¢ç¨511 # GNU開発環境用 529 512 # 530 513 ifdef GCC_TARGET … … 552 535 553 536 # 554 # ã³ã³ãã¤ã«ã«ã¼ã«ã®å®ç¾©537 # コンパイルルールの定義 555 538 # 556 539 KERNEL_ALL_COBJS = $(KERNEL_COBJS) $(KERNEL_AUX_COBJS) … … 596 579 597 580 # 598 # ä¾åé¢ä¿ä½æã«ã¼ã«ã®å®ç¾©581 # 依存関係作成ルールの定義 599 582 # 600 583 $(KERNEL_COBJS:.o=.d): %.d: %.c … … 631 614 632 615 # 633 # ããã©ã«ãã³ã³ãã¤ã«ã«ã¼ã«ãä¸æ¸ã616 # デフォルトコンパイルルールを上書き 634 617 # 635 618 %.o: %.c -
Property svn:eol-style
set to
-
rubycfg_asp/trunk/asp_dcre/sample/sample1.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=UTF-8
r313 r315 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ä¸è¨èä½æ¨©è 12 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 13 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 14 * å¤ã»åé 15 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 16 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 17 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 18 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 19 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 20 * ç¨ã§ããå½¢ã§åé 21 å¸ããå ´åã«ã¯ï¼åé 22 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 23 * è 24 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 25 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 26 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 27 * ç¨ã§ããªãå½¢ã§åé 28 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 29 * ã¨ï¼ 30 * (a) åé 31 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 32 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 33 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 34 * (b) åé 35 å¸ã®å½¢æ 36 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 37 * å ±åãããã¨ï¼ 38 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 39 * 害ãããï¼ä¸è¨èä½æ¨©è 40 ããã³TOPPERSããã¸ã§ã¯ããå 41 責ãããã¨ï¼ 42 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 43 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 44 ããã³TOPPERSããã¸ã§ã¯ãã 45 * å 46 責ãããã¨ï¼ 11 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 47 33 * 48 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 49 ã 50 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 51 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 52 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 53 * ã®è²¬ä»»ãè² ããªãï¼ 34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 54 39 * 55 40 * $Id$ … … 57 42 58 43 /* 59 * ãµã³ãã«ããã°ã©ã (1)ã®æ¬ä½ 60 * 61 * ASPã«ã¼ãã«ã®åºæ¬çãªåä½ã確èªããããã®ãµã³ãã«ããã°ã©ã ï¼ 62 * 63 * ããã°ã©ã ã®æ¦è¦: 64 * 65 * ã¦ã¼ã¶ã¤ã³ã¿ãã§ã¼ã¹ãåãæã¤ã¡ã¤ã³ã¿ã¹ã¯ï¼ã¿ã¹ã¯ID: MAIN_TASKï¼åª 66 * å 67 度: MAIN_PRIORITYï¼ã¨ï¼3ã¤ã®ä¸¦è¡å®è¡ãããã¿ã¹ã¯ï¼ã¿ã¹ã¯ID: 68 * TASK1ï½TASK3ï¼åæåªå 69 度: MID_PRIORITYï¼ã§æ§æãããï¼ã¾ãï¼èµ·åå¨ 70 * æã2ç§ã®å¨æãã³ãã©ï¼å¨æãã³ãã©ID: CYCHDR1ï¼ãç¨ããï¼ 71 * 72 * 並è¡å®è¡ãããã¿ã¹ã¯ã¯ï¼task_loopå空ã«ã¼ããå®è¡ãã度ã«ï¼ã¿ã¹ã¯ã 73 * å®è¡ä¸ã§ãããã¨ãããããã¡ãã»ã¼ã¸ã表示ããï¼ç©ºã«ã¼ããå®è¡ãã 74 * ã®ã¯ï¼ç©ºã«ã¼ããªãã§ã¡ãã»ã¼ã¸ãåºåããã¨ï¼å¤éã®ã¡ãã»ã¼ã¸ãåºå 75 * ããï¼ããã°ã©ã ã®åä½ã確èªãããããªãããã§ããï¼ã¾ãï¼ä½éãªã· 76 * ãªã¢ã«ãã¼ããç¨ãã¦ã¡ãã»ã¼ã¸ãåºåããå ´åã«ï¼ãã¹ã¦ã®ã¡ãã»ã¼ã¸ 77 * ãåºåã§ããããã«ï¼ã¡ãã»ã¼ã¸ã®éãå¶éããã¨ããçç±ãããï¼ 78 * 79 * å¨æãã³ãã©ã¯ï¼ä¸ã¤ã®åªå 80 度ï¼HIGH_PRIORITYï¼MID_PRIORITYï¼ 81 * LOW_PRIORITYï¼ã®ã¬ãã£ãã¥ã¼ãå転ãããï¼ããã°ã©ã ã®èµ·åç´å¾ã¯ï¼ 82 * å¨æãã³ãã©ã¯åæ¢ç¶æ 83 ã«ãªã£ã¦ããï¼ 84 * 85 * ã¡ã¤ã³ã¿ã¹ã¯ã¯ï¼ã·ãªã¢ã«I/Oãã¼ãããã®æåå 86 ¥åãè¡ãï¼æåå 87 ¥åã 88 * å¾ 89 ã£ã¦ããéã¯ï¼ä¸¦è¡å®è¡ãããã¿ã¹ã¯ãå®è¡ããã¦ããï¼ï¼å 90 ¥åããã 91 * æåã«å¯¾å¿ããå¦çãå®è¡ããï¼å 92 ¥åãããæåã¨å¦çã®é¢ä¿ã¯æ¬¡ã®éãï¼ 93 * Control-Cã¾ãã¯'Q'ãå 94 ¥åãããã¨ï¼ããã°ã©ã ãçµäºããï¼ 95 * 96 * '1' : 対象ã¿ã¹ã¯ãTASK1ã«åãæããï¼åæè¨å®ï¼ï¼ 97 * '2' : 対象ã¿ã¹ã¯ãTASK2ã«åãæããï¼ 98 * '3' : 対象ã¿ã¹ã¯ãTASK3ã«åãæããï¼ 99 * 'a' : 対象ã¿ã¹ã¯ãact_tskã«ããèµ·åããï¼ 100 * 'A' : 対象ã¿ã¹ã¯ã«å¯¾ããèµ·åè¦æ±ãcan_actã«ãããã£ã³ã»ã«ããï¼ 101 * 'e' : 対象ã¿ã¹ã¯ã«ext_tskãå¼ã³åºããï¼çµäºãããï¼ 102 * 't' : 対象ã¿ã¹ã¯ãter_tskã«ããå¼·å¶çµäºããï¼ 103 * '>' : 対象ã¿ã¹ã¯ã®åªå 104 度ãHIGH_PRIORITYã«ããï¼ 105 * '=' : 対象ã¿ã¹ã¯ã®åªå 106 度ãMID_PRIORITYã«ããï¼ 107 * '<' : 対象ã¿ã¹ã¯ã®åªå 108 度ãLOW_PRIORITYã«ããï¼ 109 * 'G' : 対象ã¿ã¹ã¯ã®åªå 110 度ãget_priã§èªã¿åºãï¼ 111 * 's' : 対象ã¿ã¹ã¯ã«slp_tskãå¼ã³åºããï¼èµ·åºå¾ 112 ã¡ã«ãããï¼ 113 * 'S' : 対象ã¿ã¹ã¯ã«tslp_tsk(10ç§)ãå¼ã³åºããï¼èµ·åºå¾ 114 ã¡ã«ãããï¼ 115 * 'w' : 対象ã¿ã¹ã¯ãwup_tskã«ããèµ·åºããï¼ 116 * 'W' : 対象ã¿ã¹ã¯ã«å¯¾ããèµ·åºè¦æ±ãcan_wupã«ãããã£ã³ã»ã«ããï¼ 117 * 'l' : 対象ã¿ã¹ã¯ãrel_waiã«ããå¼·å¶çã«å¾ 118 ã¡è§£é¤ã«ããï¼ 119 * 'u' : 対象ã¿ã¹ã¯ãsus_tskã«ããå¼·å¶å¾ 120 ã¡ç¶æ 121 ã«ããï¼ 122 * 'm' : 対象ã¿ã¹ã¯ã®å¼·å¶å¾ 123 ã¡ç¶æ 124 ãrsm_tskã«ãã解é¤ããï¼ 125 * 'd' : 対象ã¿ã¹ã¯ã«dly_tsk(10ç§)ãå¼ã³åºããï¼æéçµéå¾ 126 ã¡ã«ãããï¼ 127 * 'x' : 対象ã¿ã¹ã¯ã«ä¾å¤ãã¿ã¼ã³0x0001ã®ä¾å¤å¦çãè¦æ±ããï¼ 128 * 'X' : 対象ã¿ã¹ã¯ã«ä¾å¤ãã¿ã¼ã³0x0002ã®ä¾å¤å¦çãè¦æ±ããï¼ 129 * 'y' : 対象ã¿ã¹ã¯ã«dis_texãå¼ã³åºããï¼ã¿ã¹ã¯ä¾å¤ãç¦æ¢ããï¼ 130 * 'Y' : 対象ã¿ã¹ã¯ã«ena_texãå¼ã³åºããï¼ã¿ã¹ã¯ä¾å¤ã許å¯ããï¼ 131 * 'r' : 3ã¤ã®åªå 132 度ï¼HIGH_PRIORITYï¼MID_PRIORITYï¼LOW_PRIORITYï¼ã®ã¬ 133 * ãã£ãã¥ã¼ãå転ãããï¼ 134 * 'c' : å¨æãã³ãã©ãåä½éå§ãããï¼ 135 * 'C' : å¨æãã³ãã©ãåä½åæ¢ãããï¼ 136 * 'b' : ã¢ã©ã¼ã ãã³ãã©ã5ç§å¾ã«èµ·åããããåä½éå§ãããï¼ 137 * 'B' : ã¢ã©ã¼ã ãã³ãã©ãåä½åæ¢ãããï¼ 138 * 'z' : 対象ã¿ã¹ã¯ã«CPUä¾å¤ãçºçãããï¼ã¿ã¹ã¯ãçµäºãããï¼ï¼ 139 * 'Z' : 対象ã¿ã¹ã¯ã«CPUããã¯ç¶æ 140 ã§CPUä¾å¤ãçºçãããï¼ããã°ã©ã ã 141 * çµäºããï¼ï¼ 142 * '@' : ã¿ã¹ã¯3ãacre_tskã«ããçæãï¼def_texã«ããã¿ã¹ã¯ä¾å¤å¦ç 143 * ã«ã¼ãã³ãè¨å®ããï¼ 144 * '!' : 対象ã¿ã¹ã¯ãdel_tskã«ããåé¤ããï¼ 145 * 'V' : get_utmã§æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ã2åèªãï¼ 146 * 'v' : çºè¡ããã·ã¹ãã ã³ã¼ã«ã表示ããï¼ããã©ã«ãï¼ï¼ 147 * 'q' : çºè¡ããã·ã¹ãã ã³ã¼ã«ã表示ããªãï¼ 44 * サンプルプログラム(1)の本体 45 * 46 * ASPカーネルの基本的な動作を確認するためのサンプルプログラム. 47 * 48 * プログラムの概要: 49 * 50 * ユーザインタフェースを受け持つメインタスク(タスクID: MAIN_TASK,優 51 * 先度: MAIN_PRIORITY)と,3つの並行実行されるタスク(タスクID: 52 * TASK1~TASK3,初期優先度: MID_PRIORITY)で構成される.また,起動周 53 * 期が2秒の周期ハンドラ(周期ハンドラID: CYCHDR1)を用いる. 54 * 55 * 並行実行されるタスクは,task_loop回空ループを実行する度に,タスクが 56 * 実行中であることをあらわすメッセージを表示する.空ループを実行する 57 * のは,空ループなしでメッセージを出力すると,多量のメッセージが出力 58 * され,プログラムの動作が確認しずらくなるためである.また,低速なシ 59 * リアルポートを用いてメッセージを出力する場合に,すべてのメッセージ 60 * が出力できるように,メッセージの量を制限するという理由もある. 61 * 62 * 周期ハンドラは,三つの優先度(HIGH_PRIORITY,MID_PRIORITY, 63 * LOW_PRIORITY)のレディキューを回転させる.プログラムの起動直後は, 64 * 周期ハンドラは停止状態になっている. 65 * 66 * メインタスクは,シリアルI/Oポートからの文字入力を行い(文字入力を 67 * 待っている間は,並行実行されるタスクが実行されている),入力された 68 * 文字に対応した処理を実行する.入力された文字と処理の関係は次の通り. 69 * Control-Cまたは'Q'が入力されると,プログラムを終了する. 70 * 71 * '1' : 対象タスクをTASK1に切り換える(初期設定). 72 * '2' : 対象タスクをTASK2に切り換える. 73 * '3' : 対象タスクをTASK3に切り換える. 74 * 'a' : 対象タスクをact_tskにより起動する. 75 * 'A' : 対象タスクに対する起動要求をcan_actによりキャンセルする. 76 * 'e' : 対象タスクにext_tskを呼び出させ,終了させる. 77 * 't' : 対象タスクをter_tskにより強制終了する. 78 * '>' : 対象タスクの優先度をHIGH_PRIORITYにする. 79 * '=' : 対象タスクの優先度をMID_PRIORITYにする. 80 * '<' : 対象タスクの優先度をLOW_PRIORITYにする. 81 * 'G' : 対象タスクの優先度をget_priで読み出す. 82 * 's' : 対象タスクにslp_tskを呼び出させ,起床待ちにさせる. 83 * 'S' : 対象タスクにtslp_tsk(10秒)を呼び出させ,起床待ちにさせる. 84 * 'w' : 対象タスクをwup_tskにより起床する. 85 * 'W' : 対象タスクに対する起床要求をcan_wupによりキャンセルする. 86 * 'l' : 対象タスクをrel_waiにより強制的に待ち解除にする. 87 * 'u' : 対象タスクをsus_tskにより強制待ち状態にする. 88 * 'm' : 対象タスクの強制待ち状態をrsm_tskにより解除する. 89 * 'd' : 対象タスクにdly_tsk(10秒)を呼び出させ,時間経過待ちにさせる. 90 * 'x' : 対象タスクに例外パターン0x0001の例外処理を要求する. 91 * 'X' : 対象タスクに例外パターン0x0002の例外処理を要求する. 92 * 'y' : 対象タスクにdis_texを呼び出させ,タスク例外を禁止する. 93 * 'Y' : 対象タスクにena_texを呼び出させ,タスク例外を許可する. 94 * 'r' : 3つの優先度(HIGH_PRIORITY,MID_PRIORITY,LOW_PRIORITY)のレ 95 * ディキューを回転させる. 96 * 'c' : 周期ハンドラを動作開始させる. 97 * 'C' : 周期ハンドラを動作停止させる. 98 * 'b' : アラームハンドラを5秒後に起動するよう動作開始させる. 99 * 'B' : アラームハンドラを動作停止させる. 100 * 'z' : 対象タスクにCPU例外を発生させる(タスクを終了させる). 101 * 'Z' : 対象タスクにCPUロック状態でCPU例外を発生させる(プログラムを 102 * 終了する). 103 * '@' : タスク3をacre_tskにより生成し,def_texによりタスク例外処理 104 * ルーチンを設定する. 105 * '!' : 対象タスクをdel_tskにより削除する. 106 * 'V' : get_utmで性能評価用システム時刻を2回読む. 107 * 'v' : 発行したシステムコールを表示する(デフォルト). 108 * 'q' : 発行したシステムコールを表示しない. 148 109 */ 149 110 … … 157 118 158 119 /* 159 * ãµã¼ãã¹ã³ã¼ã«ã®ã¨ã©ã¼ã®ãã°åºå120 * サービスコールのエラーのログ出力 160 121 */ 161 122 Inline void … … 170 131 171 132 /* 172 * 並è¡å®è¡ãããã¿ã¹ã¯ã¸ã®ã¡ãã»ã¼ã¸é å133 * 並行実行されるタスクへのメッセージ領域 173 134 */ 174 135 char message[3]; 175 136 176 137 /* 177 * ã«ã¼ãåæ° 178 */ 179 ulong_t task_loop; /* ã¿ã¹ã¯å 180 ã§ã®ã«ã¼ãåæ° */ 181 ulong_t tex_loop; /* ä¾å¤å¦çã«ã¼ãã³å 182 ã§ã®ã«ã¼ãåæ° */ 183 184 /* 185 * 並è¡å®è¡ãããã¿ã¹ã¯ 138 * ループ回数 139 */ 140 ulong_t task_loop; /* タスク内でのループ回数 */ 141 ulong_t tex_loop; /* 例外処理ルーチン内でのループ回数 */ 142 143 /* 144 * 並行実行されるタスク 186 145 */ 187 146 void task(intptr_t exinf) … … 244 203 245 204 /* 246 * 並è¡ãã¦å®è¡ãããã¿ã¹ã¯ç¨ã®ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³205 * 並行して実行されるタスク用のタスク例外処理ルーチン 247 206 */ 248 207 void tex_routine(TEXPTN texptn, intptr_t exinf) … … 262 221 263 222 /* 264 * CPU ä¾å¤ãã³ãã©223 * CPU例外ハンドラ 265 224 */ 266 225 #ifdef CPUEXC1 … … 298 257 299 258 /* 300 * å¨æãã³ãã© 301 * 302 * HIGH_PRIORITYï¼MID_PRIORITYï¼LOW_PRIORITY ã®ååªå 303 度ã®ã¬ãã£ãã¥ã¼ 304 * ãå転ãããï¼ 259 * 周期ハンドラ 260 * 261 * HIGH_PRIORITY,MID_PRIORITY,LOW_PRIORITY の各優先度のレディキュー 262 * を回転させる. 305 263 */ 306 264 void cyclic_handler(intptr_t exinf) … … 312 270 313 271 /* 314 * ã¢ã©ã¼ã ãã³ãã© 315 * 316 * HIGH_PRIORITYï¼MID_PRIORITYï¼LOW_PRIORITY ã®ååªå 317 度ã®ã¬ãã£ãã¥ã¼ 318 * ãå転ãããï¼ 272 * アラームハンドラ 273 * 274 * HIGH_PRIORITY,MID_PRIORITY,LOW_PRIORITY の各優先度のレディキュー 275 * を回転させる. 319 276 */ 320 277 void alarm_handler(intptr_t exinf) … … 326 283 327 284 /* 328 * ã¡ã¤ã³ã¿ã¹ã¯285 * メインタスク 329 286 */ 330 287 void main_task(intptr_t exinf) … … 350 307 351 308 /* 352 * ã·ãªã¢ã«ãã¼ãã®åæå353 * 354 * ã·ã¹ãã ãã°ã¿ã¹ã¯ã¨åãã·ãªã¢ã«ãã¼ãã使ãå ´åãªã©ï¼ã·ãªã¢ã«355 * ãã¼ãããªã¼ãã³æ¸ã¿ã®å ´åã«ã¯ããã§E_OBJã¨ã©ã¼ã«ãªããï¼æ¯éã¯356 * ãªãï¼309 * シリアルポートの初期化 310 * 311 * システムログタスクと同じシリアルポートを使う場合など,シリアル 312 * ポートがオープン済みの場合にはここでE_OBJエラーになるが,支障は 313 * ない. 357 314 */ 358 315 ercd = serial_opn_por(TASK_PORTID); … … 365 322 366 323 /* 367 * ã«ã¼ãåæ°ã®è¨å® 368 * 369 * 並è¡å®è¡ãããã¿ã¹ã¯å 370 ã§ã®ç©ºã«ã¼ãã®åæ°ï¼task_loopï¼ã¯ï¼ç©ºã«ã¼ 371 * ãã®å®è¡æéãç´0.4ç§ã«ãªãããã«è¨å®ããï¼ãã®è¨å®ã®ããã«ï¼ 372 * LOOP_REFåã®ç©ºã«ã¼ãã®å®è¡æéãï¼ãã®åå¾ã§get_timãå¼ã¶ãã¨ã§ 373 * 測å®ãï¼ãã®æ¸¬å®çµæãã空ã«ã¼ãã®å®è¡æéã0.4ç§ã«ãªãã«ã¼ãå 374 * æ°ãæ±ãï¼task_loopã«è¨å®ããï¼ 375 * 376 * LOOP_REFã¯ï¼ããã©ã«ãã§ã¯1,000,000ã«è¨å®ãã¦ãããï¼æ³å®ããã 377 * ãé 378 ãããã»ããµã§ã¯ï¼ãµã³ãã«ããã°ã©ã ã®å®è¡éå§ã«æéããã 379 * ããããã¨ããåé¡ãçããï¼éã«æ³å®ããããéãããã»ããµã§ã¯ï¼ 380 * LOOP_REFåã®ç©ºã«ã¼ãã®å®è¡æéãçããªãï¼task_loopã«è¨å®ããå¤ 381 * ã®èª¤å·®ã大ãããªãã¨ããåé¡ãããï¼ 382 * 383 * ããã§ï¼ãã®ãããªã¿ã¼ã²ããã§ã¯ï¼target_test.hã§ï¼LOOP_REFãé© 384 * åãªå¤ã«å®ç¾©ããã®ãæã¾ããï¼ 385 * 386 * ã¾ãï¼task_loopã®å¤ãåºå®ãããå ´åã«ã¯ï¼ãã®å¤ãTASK_LOOPã«ã 387 * ã¯ãå®ç¾©ããï¼TASK_LOOPããã¯ãå®ç¾©ããã¦ããå ´åï¼ä¸è¨ã®æ¸¬å®ã 388 * è¡ããã«ï¼TASK_LOOPã«å®ç¾©ãããå¤ã空ã«ã¼ãã®åæ°ã¨ããï¼ 389 * 390 * ã¿ã¼ã²ããã«ãã£ã¦ã¯ï¼ç©ºã«ã¼ãã®å®è¡æéã®1åç®ã®æ¸¬å®ã§ï¼æ¬æ¥ã 391 * ããé·ãã«ãªããã®ãããï¼ãã®ãããªã¿ã¼ã²ããã§ã¯ï¼MEASURE_TWICE 392 * ããã¯ãå®ç¾©ãããã¨ã§ï¼1åç®ã®æ¸¬å®çµæãæ¨ã¦ã¦ï¼2åç®ã®æ¸¬å®çµæ 393 * ã使ãï¼ 394 * 395 * ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³å 396 ã§ã®ç©ºã«ã¼ãã®åæ°ï¼tex_loopï¼ã¯ï¼ 397 * task_loopã®4åã®1ã®å¤ï¼ç©ºã«ã¼ãã®å®è¡æéã0.1ç§ã«ãªãã«ã¼ãå 398 * æ°ï¼ã«è¨å®ããï¼ 324 * ループ回数の設定 325 * 326 * 並行実行されるタスク内での空ループの回数(task_loop)は,空ルー 327 * プの実行時間が約0.4秒になるように設定する.この設定のために, 328 * LOOP_REF回の空ループの実行時間を,その前後でget_timを呼ぶことで 329 * 測定し,その測定結果から空ループの実行時間が0.4秒になるループ回 330 * 数を求め,task_loopに設定する. 331 * 332 * LOOP_REFは,デフォルトでは1,000,000に設定しているが,想定したよ 333 * り遅いプロセッサでは,サンプルプログラムの実行開始に時間がかか 334 * りすぎるという問題を生じる.逆に想定したより速いプロセッサでは, 335 * LOOP_REF回の空ループの実行時間が短くなり,task_loopに設定する値 336 * の誤差が大きくなるという問題がある. 337 * 338 * そこで,そのようなターゲットでは,target_test.hで,LOOP_REFを適 339 * 切な値に定義するのが望ましい. 340 * 341 * また,task_loopの値を固定したい場合には,その値をTASK_LOOPにマ 342 * クロ定義する.TASK_LOOPがマクロ定義されている場合,上記の測定を 343 * 行わずに,TASK_LOOPに定義された値を空ループの回数とする. 344 * 345 * ターゲットによっては,空ループの実行時間の1回目の測定で,本来よ 346 * りも長めになるものがある.このようなターゲットでは,MEASURE_TWICE 347 * をマクロ定義することで,1回目の測定結果を捨てて,2回目の測定結果 348 * を使う. 349 * 350 * タスク例外処理ルーチン内での空ループの回数(tex_loop)は, 351 * task_loopの4分の1の値(空ループの実行時間が0.1秒になるループ回 352 * 数)に設定する. 399 353 */ 400 354 #ifdef TASK_LOOP … … 419 373 420 374 /* 421 * ã¿ã¹ã¯ã®èµ·å375 * タスクの起動 422 376 */ 423 377 SVC_PERROR(act_tsk(TASK1)); … … 425 379 426 380 /* 427 * ã¡ã¤ã³ã«ã¼ã381 * メインループ 428 382 */ 429 383 do { -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/sample/sample1.cfg
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=UTF-8
r313 r315 4 4 5 5 /* 6 * ãµã³ãã«ããã°ã©ã (1)ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«6 * サンプルプログラム(1)のシステムコンフィギュレーションファイル 7 7 */ 8 8 INCLUDE("target_timer.cfg"); -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/sample/sample1.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
r313 r315 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ä¸è¨èä½æ¨©è 12 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 13 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 14 * å¤ã»åé 15 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 16 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 17 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 18 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 19 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 20 * ç¨ã§ããå½¢ã§åé 21 å¸ããå ´åã«ã¯ï¼åé 22 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 23 * è 24 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 25 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 26 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 27 * ç¨ã§ããªãå½¢ã§åé 28 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 29 * ã¨ï¼ 30 * (a) åé 31 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 32 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 33 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 34 * (b) åé 35 å¸ã®å½¢æ 36 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 37 * å ±åãããã¨ï¼ 38 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 39 * 害ãããï¼ä¸è¨èä½æ¨©è 40 ããã³TOPPERSããã¸ã§ã¯ããå 41 責ãããã¨ï¼ 42 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 43 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 44 ããã³TOPPERSããã¸ã§ã¯ãã 45 * å 46 責ãããã¨ï¼ 11 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 47 33 * 48 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 49 ã 50 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 51 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 52 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 53 * ã®è²¬ä»»ãè² ããªãï¼ 34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 54 39 * 55 40 * $Id$ … … 57 42 58 43 /* 59 * ãµã³ãã«ããã°ã©ã (1)ã®ããããã¡ã¤ã«44 * サンプルプログラム(1)のヘッダファイル 60 45 */ 61 46 62 47 /* 63 * ã¿ã¼ã²ããä¾åã®å®ç¾©48 * ターゲット依存の定義 64 49 */ 65 50 #include "target_test.h" 66 51 67 52 /* 68 * åã¿ã¹ã¯ã®åªå 69 度ã®å®ç¾© 53 * 各タスクの優先度の定義 70 54 */ 71 55 72 #define MAIN_PRIORITY 5 /* ã¡ã¤ã³ã¿ã¹ã¯ã®åªå 73 度 */ 74 /* HIGH_PRIORITYããé«ãããã㨠*/ 56 #define MAIN_PRIORITY 5 /* メインタスクの優先度 */ 57 /* HIGH_PRIORITYより高くすること */ 75 58 76 #define HIGH_PRIORITY 9 /* 並è¡å®è¡ãããã¿ã¹ã¯ã®åªå 77 度 */ 59 #define HIGH_PRIORITY 9 /* 並行実行されるタスクの優先度 */ 78 60 #define MID_PRIORITY 10 79 61 #define LOW_PRIORITY 11 80 62 81 63 /* 82 * ã¿ã¼ã²ããã«ä¾åããå¯è½æ§ã®ããå®æ°ã®å®ç¾©64 * ターゲットに依存する可能性のある定数の定義 83 65 */ 84 66 85 67 #ifndef TASK_PORTID 86 #define TASK_PORTID 1 /* æåå 87 ¥åããã·ãªã¢ã«ãã¼ãID */ 68 #define TASK_PORTID 1 /* 文字入力するシリアルポートID */ 88 69 #endif /* TASK_PORTID */ 89 70 90 71 #ifndef STACK_SIZE 91 #define STACK_SIZE 4096 /* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/72 #define STACK_SIZE 4096 /* タスクのスタックサイズ */ 92 73 #endif /* STACK_SIZE */ 93 74 94 75 #ifndef KMM_SIZE 95 #define KMM_SIZE (STACK_SIZE * 16) /* ã«ã¼ãã«ãå²ãä»ãã*/96 #endif /* KMM_SIZE */ /* ã¡ã¢ãªé åã®ãµã¤ãº*/76 #define KMM_SIZE (STACK_SIZE * 16) /* カーネルが割り付ける */ 77 #endif /* KMM_SIZE */ /* メモリ領域のサイズ */ 97 78 98 79 #ifndef LOOP_REF 99 #define LOOP_REF ULONG_C(1000000) /* é度è¨æ¸¬ç¨ã®ã«ã¼ãåæ°*/80 #define LOOP_REF ULONG_C(1000000) /* 速度計測用のループ回数 */ 100 81 #endif /* LOOP_REF */ 101 82 102 83 /* 103 * é¢æ°ã®ãããã¿ã¤ã宣è¨84 * 関数のプロトタイプ宣言 104 85 */ 105 86 #ifndef TOPPERS_MACRO_ONLY -
Property svn:mime-type
changed from
Note:
See TracChangeset
for help on using the changeset viewer.