Changeset 389 for azure_iot_hub/trunk/asp3_dcre/sample
- Timestamp:
- May 22, 2019, 10:03:37 PM (5 years ago)
- Location:
- azure_iot_hub/trunk/asp3_dcre/sample
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
azure_iot_hub/trunk/asp3_dcre/sample/Makefile
-
Property svn:eol-style
set to
native
-
Property svn:mime-type
set to
text/x-makefile;charset=UTF-8
r388 r389 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 # ã¿ã¼ã²ããã®æå®ï¼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 # ã«ã¼ãã«ã©ã¤ãã©ãªï¼libkernel.aï¼ã®ãã£ã¬ã¯ããªå93 # ï¼ã«ã¼ãã«ã©ã¤ãã©ãªãmake対象ã«ããæã¯ï¼ç©ºã«å®ç¾©ããï¼77 # カーネルライブラリ(libkernel.a)のディレクトリ名 78 # (カーネルライブラリもmake対象にする時は,空に定義する) 94 79 # 95 80 KERNEL_LIB = @(KERNEL_LIB) 96 81 97 82 # 98 # ã«ã¼ãã«ãé¢æ°åä½ã§ã³ã³ãã¤ã«ãããã©ããã®å®ç¾©83 # カーネルを関数単位でコンパイルするかどうかの定義 99 84 # 100 85 KERNEL_FUNCOBJS = @(KERNEL_FUNCOBJS) 101 86 102 87 # 103 # TECS ãå¤ããã©ããã®å®ç¾©88 # TECSを外すかどうかの定義 104 89 # 105 90 OMIT_TECS = @(OMIT_TECS) 106 91 107 92 # 108 # ãã¬ã¼ã¹ãã°ãåå¾ãããã©ããã®å®ç¾©93 # トレースログを取得するかどうかの定義 109 94 # 110 95 ENABLE_TRACE = @(ENABLE_TRACE) 111 96 112 97 # 113 # éçºãã¼ã«ï¼ã³ã³ãã¤ã©çï¼ã®ãã£ã¬ã¯ããªã®å®ç¾©98 # 開発ツール(コンパイラ等)のディレクトリの定義 114 99 # 115 100 DEVTOOLDIR = @(DEVTOOLDIR) 116 101 117 102 # 118 # ã¦ã¼ãã£ãªãã£ããã°ã©ã ã®å称103 # ユーティリティプログラムの名称 119 104 # 120 105 CFG = @(CFG) … … 122 107 123 108 # 124 # ãªãã¸ã§ã¯ããã¡ã¤ã«åã®å®ç¾©109 # オブジェクトファイル名の定義 125 110 # 126 111 OBJNAME = asp … … 134 119 135 120 # 136 # ä¾åé¢ä¿ãã¡ã¤ã«ãç½®ããã£ã¬ã¯ããªã®å®ç¾©121 # 依存関係ファイルを置くディレクトリの定義 137 122 # 138 123 DEPDIR = @(DEPDIR) 139 124 140 125 # 141 # ã¿ã¼ã²ããä¾åé¨ã®ãã£ã¬ã¯ããªã®å®ç¾©126 # ターゲット依存部のディレクトリの定義 142 127 # 143 128 TARGETDIR = $(SRCDIR)/target/$(TARGET) 144 129 145 130 # 146 # ã¿ã¼ã²ããä¾åã®å®ç¾©ã®ã¤ã³ã¯ã«ã¼ã131 # ターゲット依存の定義のインクルード 147 132 # 148 133 include $(TARGETDIR)/Makefile.target 149 134 150 135 # 151 # TECS çæãã¡ã¤ã«ã®ãã£ã¬ã¯ããªã®å®ç¾©136 # TECS生成ファイルのディレクトリの定義 152 137 # 153 138 TECSGENDIR = ./gen … … 158 143 159 144 # 160 # TECS ãçæããå®ç¾©ã®ã¤ã³ã¯ã«ã¼ã145 # TECSが生成する定義のインクルード 161 146 # 162 147 ifndef OMIT_TECS … … 166 151 167 152 # 168 # å 169 ±éã³ã³ãã¤ã«ãªãã·ã§ã³ã®å®ç¾© 153 # 共通コンパイルオプションの定義 170 154 # 171 155 COPTS := -g @(COPTS) $(COPTS) … … 186 170 187 171 # 188 # ã¢ããªã±ã¼ã·ã§ã³ããã°ã©ã ã«é¢ããå®ç¾©172 # アプリケーションプログラムに関する定義 189 173 # 190 174 APPLNAME = @(APPLNAME) … … 208 192 209 193 # 210 # ãããã¯ã¼ã¯ãµã¼ãã¹ã®å®ç¾©194 # ネットワークサービスの定義 211 195 # 212 196 213 197 NO_USE_TINET_LIBRARY = true 214 198 215 # ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®é¸æãä½ããä¸ã¤é¸æããã199 # ネットワークインタフェースの選択、何れか一つ選択する。 216 200 217 201 NET_IF = ether 218 202 219 # ã¤ã¼ãµãããã»ãã£ãã¤ã¹ãã©ã¤ãã®é¸æ203 # イーサネット・ディバイスドライバの選択 220 204 221 205 NET_DEV = if_mbed 222 206 223 # ãããã¯ã¼ã¯å±¤ã®é¸æ207 # ネットワーク層の選択 224 208 225 209 #SUPPORT_INET6 = true 226 210 SUPPORT_INET4 = true 227 211 228 # API ã«çµè¾¼ãæ©è½ã®é¸æ212 # API に組込む機能の選択 229 213 230 214 #API_CFG_IP4MAPPED_ADDR = true 231 215 232 # ãã©ã³ã¹ãã¼ã層ã®é¸æ216 # トランスポート層の選択 233 217 234 218 SUPPORT_TCP = true … … 236 220 237 221 # 238 # ã·ã¹ãã ãµã¼ãã¹ã® Makefile ã®ã¤ã³ã¯ã«ã¼ã222 # システムサービスの Makefile のインクルード 239 223 # 240 224 include $(SRCDIR)/tinet/Makefile.tinet 241 225 242 226 # 243 # ã·ã¹ãã ãµã¼ãã¹ã«é¢ããå®ç¾©227 # システムサービスに関する定義 244 228 # 245 229 SYSSVC_DIRS := $(TECSGENDIR) $(SRCDIR)/tecs_kernel \ … … 252 236 253 237 # 254 # ã¿ã¼ã²ãããã¡ã¤ã«238 # ターゲットファイル 255 239 # 256 240 .PHONY: all … … 266 250 endif 267 251 268 ##### 以ä¸ã¯ç·¨éããªããã¨#####269 270 # 271 # ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«é¢ããå®ç¾©252 ##### 以下は編集しないこと ##### 253 254 # 255 # コンフィギュレータに関する定義 272 256 # 273 257 CFG_TABS := --api-table $(SRCDIR)/tinet/tcpip_api.def:tcpip \ … … 282 266 283 267 # 284 # ã«ã¼ãã«ã«é¢ããå®ç¾©285 # 286 # KERNEL_ASMOBJS: ã«ã¼ãã«ã©ã¤ãã©ãªã«å«ããï¼ã½ã¼ã¹ãã¢ã»ã³ããªè¨èªã®287 # ãªãã¸ã§ã¯ããã¡ã¤ã«ï¼288 # KERNEL_COBJS: ã«ã¼ãã«ã®ã©ã¤ãã©ãªã«å«ããï¼ã½ã¼ã¹ãCè¨èªã§ï¼ã½ã¼ã¹289 # ãã¡ã¤ã«ã¨1対1ã«å¯¾å¿ãããªãã¸ã§ã¯ããã¡ã¤ã«ï¼290 # KERNEL_LCSRCS: ã«ã¼ãã«ã®ã©ã¤ãã©ãªã«å«ããCè¨èªã®ã½ã¼ã¹ãã¡ã¤ã«ã§ï¼291 # 1 ã¤ã®ã½ã¼ã¹ãã¡ã¤ã«ããè¤æ°ã®ãªãã¸ã§ã¯ããã¡ã¤ã«ãç292 # æãããã®ï¼293 # KERNEL_LCOBJS: ä¸ã®ã½ã¼ã¹ãã¡ã¤ã«ããçæããããªãã¸ã§ã¯ããã¡ã¤ã«ï¼268 # カーネルに関する定義 269 # 270 # KERNEL_ASMOBJS: カーネルライブラリに含める,ソースがアセンブリ言語の 271 # オブジェクトファイル. 272 # KERNEL_COBJS: カーネルのライブラリに含める,ソースがC言語で,ソース 273 # ファイルと1対1に対応するオブジェクトファイル. 274 # KERNEL_LCSRCS: カーネルのライブラリに含めるC言語のソースファイルで, 275 # 1つのソースファイルから複数のオブジェクトファイルを生 276 # 成するもの. 277 # KERNEL_LCOBJS: 上のソースファイルから生成されるオブジェクトファイル. 294 278 # 295 279 KERNEL_DIRS := $(KERNEL_DIRS) $(SRCDIR)/kernel … … 299 283 300 284 # 301 # ã«ã¼ãã«ã®ãã¡ã¤ã«æ§æã®å®ç¾©285 # カーネルのファイル構成の定義 302 286 # 303 287 include $(SRCDIR)/kernel/Makefile.kernel … … 332 316 333 317 # 334 # ã½ã¼ã¹ãã¡ã¤ã«ã®ãããã£ã¬ã¯ããªã«é¢ããå®ç¾©318 # ソースファイルのあるディレクトリに関する定義 335 319 # 336 320 vpath %.c $(KERNEL_DIRS) $(SYSSVC_DIRS) $(APPL_DIRS) … … 340 324 341 325 # 342 # ã³ã³ãã¤ã«ã®ããã®å¤æ°ã®å®ç¾©326 # コンパイルのための変数の定義 343 327 # 344 328 KERNEL_LIB_OBJS = $(KERNEL_ASMOBJS) $(KERNEL_COBJS) $(KERNEL_LCOBJS) … … 368 352 369 353 # 370 # tecsgen ããCããªããã»ããµãå¼ã³åºãéã®ãªãã·ã§ã³ã®å®ç¾©354 # tecsgenからCプリプロセッサを呼び出す際のオプションの定義 371 355 # 372 356 TECS_CPP = $(CC) $(CDEFS) $(INCLUDES) $(SYSSVC_CFLAGS) -D TECSGEN -E 373 357 374 358 # 375 # tecsgen ã®å¼åºã359 # tecsgenの呼出し 376 360 # 377 361 .PHONY: tecs … … 381 365 382 366 # 383 # ã«ã¼ãã«ã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®çæ367 # カーネルのコンフィギュレーションファイルの生成 384 368 # 385 369 cfg1_out.c cfg1_out.db: cfg1_out.timestamp ; … … 403 387 404 388 # 405 # ãªãã»ãããã¡ã¤ã«ï¼offset.hï¼ã®çæè¦å389 # オフセットファイル(offset.h)の生成規則 406 390 # 407 391 $(OFFSET_H): offset.timestamp ; … … 411 395 412 396 # 413 # ã«ã¼ãã«ã©ã¤ãã©ãªãã¡ã¤ã«ã®çæ397 # カーネルライブラリファイルの生成 414 398 # 415 399 libkernel.a: $(OFFSET_H) $(KERNEL_LIB_OBJS) … … 419 403 420 404 # 421 # 並åmakeã®ããã®ä¾åé¢ä¿ã®å®ç¾©405 # 並列makeのための依存関係の定義 422 406 # 423 407 $(APPL_OBJS) $(SYSSVC_OBJS): | kernel_cfg.timestamp … … 426 410 427 411 # 428 # ç¹å¥ãªä¾åé¢ä¿ã®å®ç¾©412 # 特別な依存関係の定義 429 413 # 430 414 tBannerMain.o: $(filter-out tBannerMain.o,$(ALL_OBJS)) $(LIBS_DEP) 431 415 432 416 # 433 # å 434 ¨ä½ã®ãªã³ã¯ 417 # 全体のリンク 435 418 # 436 419 $(OBJFILE): $(ALL_OBJS) $(LIBS_DEP) … … 440 423 441 424 # 442 # ä¾åé¢ä¿ãã©ã«ãã®ä½æ425 # 依存関係フォルダの作成 443 426 # 444 427 $(DEPDIR): … … 446 429 447 430 # 448 # ã·ã³ãã«ãã¡ã¤ã«ã®çæ431 # シンボルファイルの生成 449 432 # 450 433 $(OBJNAME).syms: $(OBJFILE) … … 452 435 453 436 # 454 # ãã¤ããªãã¡ã¤ã«ã®çæ437 # バイナリファイルの生成 455 438 # 456 439 $(OBJNAME).bin: $(OBJFILE) … … 458 441 459 442 # 460 # S ã¬ã³ã¼ããã¡ã¤ã«ã®çæ443 # Sレコードファイルの生成 461 444 # 462 445 $(OBJNAME).srec: $(OBJFILE) … … 464 447 465 448 # 466 # ã¨ã©ã¼ãã§ãã¯å¦ç449 # エラーチェック処理 467 450 # 468 451 .PHONY: check … … 474 457 475 458 # 476 # ã³ã³ãã¤ã«çµæã®æ¶å»459 # コンパイル結果の消去 477 460 # 478 461 .PHONY: clean … … 499 482 500 483 # 501 # ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãçæãããã¡ã¤ã«ã®ã³ã³ãã¤ã«ã«ã¼ã«ã®å®ç¾© 502 # 503 # ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãçæãããã¡ã¤ã«ã¯ï¼å 504 ±éã®ã³ã³ãã¤ã«ãªãã·ã§ã³ 505 # ã®ã¿ãä»ãã¦ã³ã³ãã¤ã«ããï¼ 484 # コンフィギュレータが生成したファイルのコンパイルルールの定義 485 # 486 # コンフィギュレータが生成したファイルは,共通のコンパイルオプション 487 # のみを付けてコンパイルする. 506 488 # 507 489 ALL_CFG_COBJS = $(CFG_COBJS) cfg1_out.o … … 518 500 519 501 # 520 # ä¾åé¢ä¿ãã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã502 # 依存関係ファイルのインクルード 521 503 # 522 504 -include $(DEPDIR)/*.d 523 505 524 506 # 525 # éçºãã¼ã«ã®ã³ãã³ãåã®å®ç¾©507 # 開発ツールのコマンド名の定義 526 508 # 527 509 ifeq ($(TOOL),gcc) 528 510 # 529 # GNU éçºç°å¢ç¨511 # GNU開発環境用 530 512 # 531 513 ifdef GCC_TARGET … … 564 546 565 547 # 566 # ã³ã³ãã¤ã«ã«ã¼ã«ã®å®ç¾©548 # コンパイルルールの定義 567 549 # 568 550 $(KERNEL_COBJS): %.o: %.c … … 607 589 608 590 # 609 # ããã©ã«ãã³ã³ãã¤ã«ã«ã¼ã«ãä¸æ¸ã591 # デフォルトコンパイルルールを上書き 610 592 # 611 593 %.o: %.c -
Property svn:eol-style
set to
-
azure_iot_hub/trunk/asp3_dcre/sample/sample1.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 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' : 対象ã¿ã¹ã¯ã«ras_terã«ããçµäºè¦æ±ããï¼ 128 * 'y' : 対象ã¿ã¹ã¯ã«dis_terãå¼ã³åºããï¼ã¿ã¹ã¯çµäºãç¦æ¢ããï¼ 129 * 'Y' : 対象ã¿ã¹ã¯ã«ena_terãå¼ã³åºããï¼ã¿ã¹ã¯çµäºã許å¯ããï¼ 130 * 'r' : 3ã¤ã®åªå 131 度ï¼HIGH_PRIORITYï¼MID_PRIORITYï¼LOW_PRIORITYï¼ã®ã¬ 132 * ãã£ãã¥ã¼ãå転ãããï¼ 133 * 'c' : å¨æãã³ãã©ãåä½éå§ãããï¼ 134 * 'C' : å¨æãã³ãã©ãåä½åæ¢ãããï¼ 135 * 'b' : ã¢ã©ã¼ã ãã³ãã©ã5ç§å¾ã«èµ·åããããåä½éå§ãããï¼ 136 * 'B' : ã¢ã©ã¼ã ãã³ãã©ãåä½åæ¢ãããï¼ 137 * 'z' : 対象ã¿ã¹ã¯ã«CPUä¾å¤ãçºçãããï¼ã¿ã¹ã¯ãçµäºãããï¼ï¼ 138 * 'Z' : 対象ã¿ã¹ã¯ã«CPUããã¯ç¶æ 139 ã§CPUä¾å¤ãçºçãããï¼ããã°ã©ã ã 140 * çµäºããï¼ï¼ 141 * '@' : ã¿ã¹ã¯3ãacre_tskã«ããçæããï¼ 142 * '!' : 対象ã¿ã¹ã¯ãdel_tskã«ããåé¤ããï¼ 143 * '$' : ã¢ã©ã¼ã ãã³ãã©ãacre_almã«ããçæããï¼ 144 * '#' : ã¢ã©ã¼ã ãã³ãã©ãdel_almã«ããåé¤ããï¼ 145 * 'V' : fch_hrtã§é«å解è½ã¿ã¤ãã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' : 対象タスクにras_terにより終了要求する. 91 * 'y' : 対象タスクにdis_terを呼び出させ,タスク終了を禁止する. 92 * 'Y' : 対象タスクにena_terを呼び出させ,タスク終了を許可する. 93 * 'r' : 3つの優先度(HIGH_PRIORITY,MID_PRIORITY,LOW_PRIORITY)のレ 94 * ディキューを回転させる. 95 * 'c' : 周期ハンドラを動作開始させる. 96 * 'C' : 周期ハンドラを動作停止させる. 97 * 'b' : アラームハンドラを5秒後に起動するよう動作開始させる. 98 * 'B' : アラームハンドラを動作停止させる. 99 * 'z' : 対象タスクにCPU例外を発生させる(タスクを終了させる). 100 * 'Z' : 対象タスクにCPUロック状態でCPU例外を発生させる(プログラムを 101 * 終了する). 102 * '@' : タスク3をacre_tskにより生成する. 103 * '!' : 対象タスクをdel_tskにより削除する. 104 * '$' : アラームハンドラをacre_almにより生成する. 105 * '#' : アラームハンドラをdel_almにより削除する. 106 * 'V' : fch_hrtで高分解能タイマを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 182 /* 183 * 並è¡å®è¡ãããã¿ã¹ã¯ 138 * ループ回数 139 */ 140 ulong_t task_loop; /* タスク内でのループ回数 */ 141 142 /* 143 * 並行実行されるタスク 184 144 */ 185 145 void task(intptr_t exinf) … … 241 201 242 202 /* 243 * å²è¾¼ã¿ãã³ãã©203 * 割込みハンドラ 244 204 */ 245 205 #ifdef INTNO1 … … 256 216 257 217 /* 258 * CPU ä¾å¤ãã³ãã©259 */ 260 ID cpuexc_tskid; /* CPU ä¾å¤ãèµ·ãããã¿ã¹ã¯ã®ID */218 * CPU例外ハンドラ 219 */ 220 ID cpuexc_tskid; /* CPU例外を起こしたタスクのID */ 261 221 262 222 #ifdef CPUEXC1 … … 297 257 298 258 /* 299 * å¨æãã³ãã© 300 * 301 * HIGH_PRIORITYï¼MID_PRIORITYï¼LOW_PRIORITY ã®ååªå 302 度ã®ã¬ãã£ãã¥ã¼ 303 * ãå転ãããï¼ 259 * 周期ハンドラ 260 * 261 * HIGH_PRIORITY,MID_PRIORITY,LOW_PRIORITY の各優先度のレディキュー 262 * を回転させる. 304 263 */ 305 264 void cyclic_handler(intptr_t exinf) … … 311 270 312 271 /* 313 * ã¢ã©ã¼ã ãã³ãã© 314 * 315 * HIGH_PRIORITYï¼MID_PRIORITYï¼LOW_PRIORITY ã®ååªå 316 度ã®ã¬ãã£ãã¥ã¼ 317 * ãå転ãããï¼ 272 * アラームハンドラ 273 * 274 * HIGH_PRIORITY,MID_PRIORITY,LOW_PRIORITY の各優先度のレディキュー 275 * を回転させる. 318 276 */ 319 277 void alarm_handler(intptr_t exinf) … … 325 283 326 284 /* 327 * ä¾å¤å¦çã¿ã¹ã¯285 * 例外処理タスク 328 286 */ 329 287 void exc_task(intptr_t exinf) … … 333 291 334 292 /* 335 * ã¡ã¤ã³ã¿ã¹ã¯293 * メインタスク 336 294 */ 337 295 void main_task(intptr_t exinf) … … 356 314 357 315 /* 358 * ã·ãªã¢ã«ãã¼ãã®åæå316 * シリアルポートの初期化 359 317 * 360 * ã·ã¹ãã ãã°ã¿ã¹ã¯ã¨åãã·ãªã¢ã«ãã¼ãã使ãå ´åãªã©ï¼ã·ãªã¢ã«361 * ãã¼ãããªã¼ãã³æ¸ã¿ã®å ´åã«ã¯ããã§E_OBJã¨ã©ã¼ã«ãªããï¼æ¯éã¯362 * ãªãï¼318 * システムログタスクと同じシリアルポートを使う場合など,シリアル 319 * ポートがオープン済みの場合にはここでE_OBJエラーになるが,支障は 320 * ない. 363 321 */ 364 322 ercd = serial_opn_por(TASK_PORTID); … … 371 329 372 330 /* 373 * ã«ã¼ãåæ°ã®è¨å®331 * ループ回数の設定 374 332 * 375 * 並è¡å®è¡ãããã¿ã¹ã¯å 376 ã§ã®ç©ºã«ã¼ãã®åæ°ï¼task_loopï¼ã¯ï¼ç©ºã«ã¼ 377 * ãã®å®è¡æéãç´0.4ç§ã«ãªãããã«è¨å®ããï¼ãã®è¨å®ã®ããã«ï¼ 378 * LOOP_REFåã®ç©ºã«ã¼ãã®å®è¡æéãï¼ãã®åå¾ã§get_timãå¼ã¶ãã¨ã§ 379 * 測å®ãï¼ãã®æ¸¬å®çµæãã空ã«ã¼ãã®å®è¡æéã0.4ç§ã«ãªãã«ã¼ãå 380 * æ°ãæ±ãï¼task_loopã«è¨å®ããï¼ 333 * 並行実行されるタスク内での空ループの回数(task_loop)は,空ルー 334 * プの実行時間が約0.4秒になるように設定する.この設定のために, 335 * LOOP_REF回の空ループの実行時間を,その前後でget_timを呼ぶことで 336 * 測定し,その測定結果から空ループの実行時間が0.4秒になるループ回 337 * 数を求め,task_loopに設定する. 381 338 * 382 * LOOP_REFã¯ï¼ããã©ã«ãã§ã¯1,000,000ã«è¨å®ãã¦ãããï¼æ³å®ããã 383 * ãé 384 ãããã»ããµã§ã¯ï¼ãµã³ãã«ããã°ã©ã ã®å®è¡éå§ã«æéããã 385 * ããããã¨ããåé¡ãçããï¼éã«æ³å®ããããéãããã»ããµã§ã¯ï¼ 386 * LOOP_REFåã®ç©ºã«ã¼ãã®å®è¡æéãçããªãï¼task_loopã«è¨å®ããå¤ 387 * ã®èª¤å·®ã大ãããªãã¨ããåé¡ãããï¼ 339 * LOOP_REFは,デフォルトでは1,000,000に設定しているが,想定したよ 340 * り遅いプロセッサでは,サンプルプログラムの実行開始に時間がかか 341 * りすぎるという問題を生じる.逆に想定したより速いプロセッサでは, 342 * LOOP_REF回の空ループの実行時間が短くなり,task_loopに設定する値 343 * の誤差が大きくなるという問題がある. 388 344 * 389 * ããã§ï¼ãã®ãããªã¿ã¼ã²ããã§ã¯ï¼target_test.hã§ï¼LOOP_REFãé©390 * åãªå¤ã«å®ç¾©ããã®ãæã¾ããï¼345 * そこで,そのようなターゲットでは,target_test.hで,LOOP_REFを適 346 * 切な値に定義するのが望ましい. 391 347 * 392 * ã¾ãï¼task_loopã®å¤ãåºå®ãããå ´åã«ã¯ï¼ãã®å¤ãTASK_LOOPã«ã393 * ã¯ãå®ç¾©ããï¼TASK_LOOPããã¯ãå®ç¾©ããã¦ããå ´åï¼ä¸è¨ã®æ¸¬å®ã394 * è¡ããã«ï¼TASK_LOOPã«å®ç¾©ãããå¤ã空ã«ã¼ãã®åæ°ã¨ããï¼348 * また,task_loopの値を固定したい場合には,その値をTASK_LOOPにマ 349 * クロ定義する.TASK_LOOPがマクロ定義されている場合,上記の測定を 350 * 行わずに,TASK_LOOPに定義された値を空ループの回数とする. 395 351 * 396 * ã¿ã¼ã²ããã«ãã£ã¦ã¯ï¼ç©ºã«ã¼ãã®å®è¡æéã®1åç®ã®æ¸¬å®ã§ï¼æ¬æ¥ã397 * ããé·ãã«ãªããã®ãããï¼ãã®ãããªã¿ã¼ã²ããã§ã¯ï¼MEASURE_TWICE398 * ããã¯ãå®ç¾©ãããã¨ã§ï¼1åç®ã®æ¸¬å®çµæãæ¨ã¦ã¦ï¼2åç®ã®æ¸¬å®çµæ399 * ã使ãï¼352 * ターゲットによっては,空ループの実行時間の1回目の測定で,本来よ 353 * りも長めになるものがある.このようなターゲットでは,MEASURE_TWICE 354 * をマクロ定義することで,1回目の測定結果を捨てて,2回目の測定結果 355 * を使う. 400 356 */ 401 357 #ifdef TASK_LOOP … … 419 375 420 376 /* 421 * ã¿ã¹ã¯ã®èµ·å377 * タスクの起動 422 378 */ 423 379 SVC_PERROR(act_tsk(TASK1)); … … 425 381 426 382 /* 427 * ã¡ã¤ã³ã«ã¼ã383 * メインループ 428 384 */ 429 385 do { -
azure_iot_hub/trunk/asp3_dcre/sample/sample1.cdl
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 1 1 /* 2 * ãµã³ãã«ããã°ã©ã (1)ã®ã³ã³ãã¼ãã³ãè¨è¿°ãã¡ã¤ã«2 * サンプルプログラム(1)のコンポーネント記述ファイル 3 3 * 4 4 * $Id$ 5 5 */ 6 6 /* 7 * ã«ã¼ãã«ãªãã¸ã§ã¯ãã®å®ç¾©7 * カーネルオブジェクトの定義 8 8 */ 9 9 import(<kernel.cdl>); 10 10 11 11 /* 12 * ã¿ã¼ã²ããéä¾åã®ã»ã«ã¿ã¤ãã®å®ç¾©12 * ターゲット非依存のセルタイプの定義 13 13 */ 14 14 import("syssvc/tSerialPort.cdl"); … … 20 20 21 21 /* 22 * ã¿ã¼ã²ããä¾åé¨ã®åãè¾¼ã¿22 * ターゲット依存部の取り込み 23 23 */ 24 24 import("target.cdl"); 25 25 26 26 /* 27 * ãã»ã«ã®çµä¸ãè¨è¿°ãã¨ã¯ï¼"cell"ã§å§ã¾ãè¡ããï¼ããã«å¯¾å¿ãã"};"28 * ã®è¡ã¾ã§ã®ãã¨ãè¨ãï¼27 * 「セルの組上げ記述」とは,"cell"で始まる行から,それに対応する"};" 28 * の行までのことを言う. 29 29 */ 30 30 31 31 /* 32 * ã·ã¹ãã ãã°æ©è½ã®çµä¸ãè¨è¿°32 * システムログ機能の組上げ記述 33 33 * 34 * ã·ã¹ãã ãã°æ©è½ãå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°ãåé¤ãï¼ã³ 35 * ã³ãã¤ã«ãªãã·ã§ã³ã«-DTOPPERS_OMIT_SYSLOGã追å ããã°ããï¼ãã ãï¼ 36 * ã·ã¹ãã ãã°ã¿ã¹ã¯ã¯ã·ã¹ãã ãã°æ©è½ã使ç¨ããããï¼ãããå¤ãã㨠37 * ãå¿ 38 è¦ã§ããï¼ã¾ãï¼ã·ã¹ãã ãã°æ©è½ã®ã¢ããã¿ãå¤ããªããã°ãªã㪠39 * ãï¼tecsgenãè¦åã¡ãã»ã¼ã¸ãåºããï¼ç¡è¦ãã¦ããï¼ 34 * システムログ機能を外す場合には,以下のセルの組上げ記述を削除し,コ 35 * ンパイルオプションに-DTOPPERS_OMIT_SYSLOGを追加すればよい.ただし, 36 * システムログタスクはシステムログ機能を使用するため,それも外すこと 37 * が必要である.また,システムログ機能のアダプタも外さなければならな 38 * い.tecsgenが警告メッセージを出すが,無視してよい. 40 39 */ 41 40 cell tSysLog SysLog { 42 logBufferSize = 32; /* ãã°ãããã¡ã®ãµã¤ãº*/41 logBufferSize = 32; /* ログバッファのサイズ */ 43 42 initLogMask = C_EXP("LOG_UPTO(LOG_NOTICE)"); 44 /* ãã°ãããã¡ã«è¨é²ãã¹ãéè¦åº¦*/43 /* ログバッファに記録すべき重要度 */ 45 44 initLowMask = C_EXP("LOG_UPTO(LOG_EMERG)"); 46 /* ä½ã¬ãã«åºåãã¹ãéè¦åº¦*/47 /* ä½ã¬ãã«åºåã¨ã®çµå*/45 /* 低レベル出力すべき重要度 */ 46 /* 低レベル出力との結合 */ 48 47 cPutLog = PutLogTarget.ePutLog; 49 48 }; 50 49 51 50 /* 52 * C è¨èªã§è¨è¿°ãããã¢ããªã±ã¼ã·ã§ã³ããï¼TECSãã¼ã¹ã®ã·ã¹ãã ãã°æ©è½53 * ãå¼ã³åºãããã®ã¢ããã¿ã®çµä¸ãè¨è¿°51 * C言語で記述されたアプリケーションから,TECSベースのシステムログ機能 52 * を呼び出すためのアダプタの組上げ記述 54 53 * 55 * ã·ã¹ãã ãã°æ©è½ã®ãµã¼ãã¹ã³ã¼ã«ï¼syslogé¢æ°ã¨syslog_0é¢æ°ï½syslog_556 * é¢æ°ä»¥å¤ã®ãã®ï¼ã«ãCè¨èªã§è¨è¿°ãããã¢ããªã±ã¼ã·ã§ã³ããå¼ã³åºããª57 * ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°ãåé¤ããã°ããï¼54 * システムログ機能のサービスコール(syslog関数とsyslog_0関数~syslog_5 55 * 関数以外のもの)ルをC言語で記述されたアプリケーションから呼び出さな 56 * い場合には,以下のセルの組上げ記述を削除すればよい. 58 57 */ 59 58 cell tSysLogAdapter SysLogAdapter { … … 62 61 63 62 /* 64 * ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®çµä¸ãè¨è¿°63 * シリアルインタフェースドライバの組上げ記述 65 64 * 66 * ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ããå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨ 67 * è¿°ãåé¤ããã°ããï¼ãã ãï¼ã·ã¹ãã ãã°ã¿ã¹ã¯ã¯ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ 68 * ã¹ãã©ã¤ãã使ç¨ããããï¼ãããå¤ããã¨ãå¿ 69 è¦ã§ããï¼ã¾ãï¼ã·ãªã¢ 70 * ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ã¢ããã¿ãå¤ããªããã°ãªããªãï¼ 65 * シリアルインタフェースドライバを外す場合には,以下のセルの組上げ記 66 * 述を削除すればよい.ただし,システムログタスクはシリアルインタフェー 67 * スドライバを使用するため,それも外すことが必要である.また,シリア 68 * ルインタフェースドライバのアダプタも外さなければならない. 71 69 */ 72 70 cell tSerialPort SerialPort1 { 73 receiveBufferSize = 256; /* åä¿¡ãããã¡ã®ãµã¤ãº*/74 sendBufferSize = 256; /* éä¿¡ãããã¡ã®ãµã¤ãº*/71 receiveBufferSize = 256; /* 受信バッファのサイズ */ 72 sendBufferSize = 256; /* 送信バッファのサイズ */ 75 73 76 /* ã¿ã¼ã²ããä¾åé¨ã¨ã®çµå*/74 /* ターゲット依存部との結合 */ 77 75 cSIOPort = SIOPortTarget1.eSIOPort; 78 eiSIOCBR <= SIOPortTarget1.ciSIOCBR; /* ã³ã¼ã«ããã¯*/76 eiSIOCBR <= SIOPortTarget1.ciSIOCBR; /* コールバック */ 79 77 }; 80 78 81 79 /* 82 * C è¨èªã§è¨è¿°ãããã¢ããªã±ã¼ã·ã§ã³ããï¼TECSãã¼ã¹ã®ã·ãªã¢ã«ã¤ã³ã¿83 * ãã§ã¼ã¹ãã©ã¤ããå¼ã³åºãããã®ã¢ããã¿ã®çµä¸ãè¨è¿°80 * C言語で記述されたアプリケーションから,TECSベースのシリアルインタ 81 * フェースドライバを呼び出すためのアダプタの組上げ記述 84 82 * 85 * ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ãµã¼ãã¹ã³ã¼ã«ãCè¨èªã§è¨è¿°ãããã¢86 * ããªã±ã¼ã·ã§ã³ããå¼ã³åºããªãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°ãå87 * é¤ããã°ããï¼83 * シリアルインタフェースドライバのサービスコールをC言語で記述されたア 84 * プリケーションから呼び出さない場合には,以下のセルの組上げ記述を削 85 * 除すればよい. 88 86 */ 89 87 cell tSerialAdapter SerialAdapter { … … 92 90 93 91 /* 94 * ã·ã¹ãã ãã°ã¿ã¹ã¯ã®çµä¸ãè¨è¿°92 * システムログタスクの組上げ記述 95 93 * 96 * ã·ã¹ãã ãã°ã¿ã¹ã¯ãå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°ãåé¤ãã97 * ã°ããï¼94 * システムログタスクを外す場合には,以下のセルの組上げ記述を削除すれ 95 * ばよい. 98 96 */ 99 97 cell tLogTask LogTask { 100 priority = 3; /* ã·ã¹ãã ãã°ã¿ã¹ã¯ã®åªå 101 度 */ 102 stackSize = LogTaskStackSize; /* ã·ã¹ãã ãã°ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */ 98 priority = 3; /* システムログタスクの優先度 */ 99 stackSize = LogTaskStackSize; /* システムログタスクのスタックサイズ */ 103 100 104 /* ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã¨ã®çµå*/101 /* シリアルインタフェースドライバとの結合 */ 105 102 cSerialPort = SerialPort1.eSerialPort; 106 103 cnSerialPortManage = SerialPort1.enSerialPortManage; 107 104 108 /* ã·ã¹ãã ãã°æ©è½ã¨ã®çµå*/105 /* システムログ機能との結合 */ 109 106 cSysLog = SysLog.eSysLog; 110 107 111 /* ä½ã¬ãã«åºåã¨ã®çµå*/108 /* 低レベル出力との結合 */ 112 109 cPutLog = PutLogTarget.ePutLog; 113 110 }; 114 111 115 112 /* 116 * ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸åºåã®çµä¸ãè¨è¿°113 * カーネル起動メッセージ出力の組上げ記述 117 114 * 118 * ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ã®åºåãå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°119 * ãåé¤ããã°ããï¼115 * カーネル起動メッセージの出力を外す場合には,以下のセルの組上げ記述 116 * を削除すればよい. 120 117 */ 121 118 cell tBanner Banner { 122 /* å±æ§ã®è¨å®*/119 /* 属性の設定 */ 123 120 targetName = BannerTargetName; 124 121 copyrightNotice = BannerCopyrightNotice; -
azure_iot_hub/trunk/asp3_dcre/sample/sample1.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 1 1 /* 2 * ãµã³ãã«ããã°ã©ã (1)ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«2 * サンプルプログラム(1)のシステムコンフィギュレーションファイル 3 3 * 4 4 * $Id$ -
azure_iot_hub/trunk/asp3_dcre/sample/sample1.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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 … … 63 48 64 49 /* 65 * ã¿ã¼ã²ããä¾åã®å®ç¾©50 * ターゲット依存の定義 66 51 */ 67 52 #include "target_test.h" 68 53 69 54 /* 70 * åã¿ã¹ã¯ã®åªå 71 度ã®å®ç¾© 55 * 各タスクの優先度の定義 72 56 */ 73 57 74 #define EXC_PRIORITY 1 /* ä¾å¤å¦çã¿ã¹ã¯ã®åªå 75 度 */ 76 #define MAIN_PRIORITY 5 /* ã¡ã¤ã³ã¿ã¹ã¯ã®åªå 77 度 */ 78 /* HIGH_PRIORITYããé«ãããã㨠*/ 58 #define EXC_PRIORITY 1 /* 例外処理タスクの優先度 */ 59 #define MAIN_PRIORITY 5 /* メインタスクの優先度 */ 60 /* HIGH_PRIORITYより高くすること */ 79 61 80 #define HIGH_PRIORITY 9 /* 並è¡å®è¡ãããã¿ã¹ã¯ã®åªå 81 度 */ 62 #define HIGH_PRIORITY 9 /* 並行実行されるタスクの優先度 */ 82 63 #define MID_PRIORITY 10 83 64 #define LOW_PRIORITY 11 84 65 85 66 /* 86 * ã¿ã¼ã²ããã«ä¾åããå¯è½æ§ã®ããå®æ°ã®å®ç¾©67 * ターゲットに依存する可能性のある定数の定義 87 68 */ 88 69 89 70 #ifndef TASK_PORTID 90 #define TASK_PORTID 1 /* æåå 91 ¥åããã·ãªã¢ã«ãã¼ãID */ 71 #define TASK_PORTID 1 /* 文字入力するシリアルポートID */ 92 72 #endif /* TASK_PORTID */ 93 73 94 74 #ifndef STACK_SIZE 95 #define STACK_SIZE 4096 /* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/75 #define STACK_SIZE 4096 /* タスクのスタックサイズ */ 96 76 #endif /* STACK_SIZE */ 97 77 98 78 #ifndef KMM_SIZE 99 #define KMM_SIZE (STACK_SIZE * 16) /* ã«ã¼ãã«ãå²ãä»ãã*/100 #endif /* KMM_SIZE */ /* ã¡ã¢ãªé åã®ãµã¤ãº*/79 #define KMM_SIZE (STACK_SIZE * 16) /* カーネルが割り付ける */ 80 #endif /* KMM_SIZE */ /* メモリ領域のサイズ */ 101 81 102 82 #ifndef LOOP_REF 103 #define LOOP_REF ULONG_C(1000000) /* é度è¨æ¸¬ç¨ã®ã«ã¼ãåæ°*/83 #define LOOP_REF ULONG_C(1000000) /* 速度計測用のループ回数 */ 104 84 #endif /* LOOP_REF */ 105 85 106 86 /* 107 * é¢æ°ã®ãããã¿ã¤ã宣è¨87 * 関数のプロトタイプ宣言 108 88 */ 109 89 #ifndef TOPPERS_MACRO_ONLY -
azure_iot_hub/trunk/asp3_dcre/sample/tSample2.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 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' : 対象ã¿ã¹ã¯ãcTask_activateã«ããèµ·åããï¼ 100 * 'A' : 対象ã¿ã¹ã¯ã«å¯¾ããèµ·åè¦æ±ãcTask_cancelActivateã«ãããã£ã³ã»ã«ããï¼ 101 * 'e' : 対象ã¿ã¹ã¯ã«exitTaskãå¼ã³åºããï¼çµäºãããï¼ 102 * 't' : 対象ã¿ã¹ã¯ãcTask_terminateã«ããå¼·å¶çµäºããï¼ 103 * '>' : 対象ã¿ã¹ã¯ã®åªå 104 度ãHIGH_PRIORITYã«ããï¼ 105 * '=' : 対象ã¿ã¹ã¯ã®åªå 106 度ãMID_PRIORITYã«ããï¼ 107 * '<' : 対象ã¿ã¹ã¯ã®åªå 108 度ãLOW_PRIORITYã«ããï¼ 109 * 'G' : 対象ã¿ã¹ã¯ã®åªå 110 度ãcTask_getPriorityã§èªã¿åºãï¼ 111 * 's' : 対象ã¿ã¹ã¯ã«sleepãå¼ã³åºããï¼èµ·åºå¾ 112 ã¡ã«ãããï¼ 113 * 'S' : 対象ã¿ã¹ã¯ã«sleepTimeout10ç§)ãå¼ã³åºããï¼èµ·åºå¾ 114 ã¡ã«ãããï¼ 115 * 'w' : 対象ã¿ã¹ã¯ãcTask_wakeupã«ããèµ·åºããï¼ 116 * 'W' : 対象ã¿ã¹ã¯ã«å¯¾ããèµ·åºè¦æ±ãcTask_cancelWakeupã«ãããã£ã³ã»ã«ããï¼ 117 * 'l' : 対象ã¿ã¹ã¯ãcTask_releaseWaitã«ããå¼·å¶çã«å¾ 118 ã¡è§£é¤ã«ããï¼ 119 * 'u' : 対象ã¿ã¹ã¯ãcTask_suspendã«ããå¼·å¶å¾ 120 ã¡ç¶æ 121 ã«ããï¼ 122 * 'm' : 対象ã¿ã¹ã¯ã®å¼·å¶å¾ 123 ã¡ç¶æ 124 ãcTask_resumeã«ãã解é¤ããï¼ 125 * 'd' : 対象ã¿ã¹ã¯ã«delay(10ç§)ãå¼ã³åºããï¼æéçµéå¾ 126 ã¡ã«ãããï¼ 127 * 'x' : 対象ã¿ã¹ã¯ã«raiseTerminateã«ããçµäºè¦æ±ããï¼ 128 * 'y' : 対象ã¿ã¹ã¯ã«disableTerminateãå¼ã³åºããï¼ã¿ã¹ã¯çµäºãç¦æ¢ããï¼ 129 * 'Y' : 対象ã¿ã¹ã¯ã«enableTerminateãå¼ã³åºããï¼ã¿ã¹ã¯çµäºã許å¯ããï¼ 130 * 'r' : 3ã¤ã®åªå 131 度ï¼HIGH_PRIORITYï¼MID_PRIORITYï¼LOW_PRIORITYï¼ã®ã¬ 132 * ãã£ãã¥ã¼ãå転ãããï¼ 133 * 'c' : å¨æãã³ãã©ãåä½éå§ãããï¼ 134 * 'C' : å¨æãã³ãã©ãåä½åæ¢ãããï¼ 135 * 'b' : ã¢ã©ã¼ã ãã³ãã©ã5ç§å¾ã«èµ·åããããåä½éå§ãããï¼ 136 * 'B' : ã¢ã©ã¼ã ãã³ãã©ãåä½åæ¢ãããï¼ 137 * 'z' : 対象ã¿ã¹ã¯ã«CPUä¾å¤ãçºçãããï¼ã¿ã¹ã¯ãçµäºãããï¼ï¼ 138 * 'Z' : 対象ã¿ã¹ã¯ã«CPUããã¯ç¶æ 139 ã§CPUä¾å¤ãçºçãããï¼ããã°ã©ã ã 140 * çµäºããï¼ï¼ 141 * 'V' : fetchHighResolutionTimerã§é«å解è½ã¿ã¤ãã2åèªãï¼ 142 * 'v' : çºè¡ããã·ã¹ãã ã³ã¼ã«ã表示ããï¼ããã©ã«ãï¼ï¼ 143 * 'q' : çºè¡ããã·ã¹ãã ã³ã¼ã«ã表示ããªãï¼ 144 * å¼ã³å£é¢æ° #_TCPF_# 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' : 対象タスクをcTask_activateにより起動する. 75 * 'A' : 対象タスクに対する起動要求をcTask_cancelActivateによりキャンセルする. 76 * 'e' : 対象タスクにexitTaskを呼び出させ,終了させる. 77 * 't' : 対象タスクをcTask_terminateにより強制終了する. 78 * '>' : 対象タスクの優先度をHIGH_PRIORITYにする. 79 * '=' : 対象タスクの優先度をMID_PRIORITYにする. 80 * '<' : 対象タスクの優先度をLOW_PRIORITYにする. 81 * 'G' : 対象タスクの優先度をcTask_getPriorityで読み出す. 82 * 's' : 対象タスクにsleepを呼び出させ,起床待ちにさせる. 83 * 'S' : 対象タスクにsleepTimeout10秒)を呼び出させ,起床待ちにさせる. 84 * 'w' : 対象タスクをcTask_wakeupにより起床する. 85 * 'W' : 対象タスクに対する起床要求をcTask_cancelWakeupによりキャンセルする. 86 * 'l' : 対象タスクをcTask_releaseWaitにより強制的に待ち解除にする. 87 * 'u' : 対象タスクをcTask_suspendにより強制待ち状態にする. 88 * 'm' : 対象タスクの強制待ち状態をcTask_resumeにより解除する. 89 * 'd' : 対象タスクにdelay(10秒)を呼び出させ,時間経過待ちにさせる. 90 * 'x' : 対象タスクにraiseTerminateにより終了要求する. 91 * 'y' : 対象タスクにdisableTerminateを呼び出させ,タスク終了を禁止する. 92 * 'Y' : 対象タスクにenableTerminateを呼び出させ,タスク終了を許可する. 93 * 'r' : 3つの優先度(HIGH_PRIORITY,MID_PRIORITY,LOW_PRIORITY)のレ 94 * ディキューを回転させる. 95 * 'c' : 周期ハンドラを動作開始させる. 96 * 'C' : 周期ハンドラを動作停止させる. 97 * 'b' : アラームハンドラを5秒後に起動するよう動作開始させる. 98 * 'B' : アラームハンドラを動作停止させる. 99 * 'z' : 対象タスクにCPU例外を発生させる(タスクを終了させる). 100 * 'Z' : 対象タスクにCPUロック状態でCPU例外を発生させる(プログラムを 101 * 終了する). 102 * 'V' : fetchHighResolutionTimerで高分解能タイマを2回読む. 103 * 'v' : 発行したシステムコールを表示する(デフォルト). 104 * 'q' : 発行したシステムコールを表示しない. 105 * 呼び口関数 #_TCPF_# 145 106 * require port: signature:sKernel context:task 146 107 * ER getExtendedInformation( intptr_t* p_exinf ); … … 246 207 247 208 /* 248 * ãµã¼ãã¹ã³ã¼ã«ã®ã¨ã©ã¼ã®ãã°åºå209 * サービスコールのエラーのログ出力 249 210 */ 250 211 Inline void … … 259 220 260 221 /* 261 * 並è¡å®è¡ãããã¿ã¹ã¯ã¸ã®ã¡ãã»ã¼ã¸é å222 * 並行実行されるタスクへのメッセージ領域 262 223 */ 263 224 char message[3]; 264 225 265 226 /* 266 * ã«ã¼ãåæ° 267 */ 268 ulong_t task_loop; /* ã¿ã¹ã¯å 269 ã§ã®ã«ã¼ãåæ° */ 270 271 /* 272 * 並è¡å®è¡ãããã¿ã¹ã¯ 227 * ループ回数 228 */ 229 ulong_t task_loop; /* タスク内でのループ回数 */ 230 231 /* 232 * 並行実行されるタスク 273 233 */ 274 234 void eSampleTask_main(int_t subscript) … … 330 290 331 291 /* 332 * CPU ä¾å¤ãã³ãã©333 */ 334 335 ID cpuexc_tskid; /* CPU ä¾å¤ãèµ·ãããã¿ã¹ã¯ã®ID */292 * CPU例外ハンドラ 293 */ 294 295 ID cpuexc_tskid; /* CPU例外を起こしたタスクのID */ 336 296 337 297 #ifdef CPUEXC1 … … 373 333 374 334 /* 375 * å¨æãã³ãã© 376 * 377 * HIGH_PRIORITYï¼MID_PRIORITYï¼LOW_PRIORITY ã®ååªå 378 度ã®ã¬ãã£ãã¥ã¼ 379 * ãå転ãããï¼ 335 * 周期ハンドラ 336 * 337 * HIGH_PRIORITY,MID_PRIORITY,LOW_PRIORITY の各優先度のレディキュー 338 * を回転させる. 380 339 */ 381 340 /* #[<ENTRY_FUNC>]# eiCyclicHandler_main … … 393 352 394 353 /* 395 * ã¢ã©ã¼ã ãã³ãã© 396 * 397 * HIGH_PRIORITYï¼MID_PRIORITYï¼LOW_PRIORITY ã®ååªå 398 度ã®ã¬ãã£ãã¥ã¼ 399 * ãå転ãããï¼ 354 * アラームハンドラ 355 * 356 * HIGH_PRIORITY,MID_PRIORITY,LOW_PRIORITY の各優先度のレディキュー 357 * を回転させる. 400 358 */ 401 359 /* #[<ENTRY_FUNC>]# eiAlarmHandler_main … … 412 370 } 413 371 /* 414 * ä¾å¤å¦çã¿ã¹ã¯372 * 例外処理タスク 415 373 */ 416 374 /* #[<ENTRY_FUNC>]# eExceptionTask_main … … 424 382 } 425 383 /* 426 * ã¡ã¤ã³ã¿ã¹ã¯427 */ 428 /* å±æ§ã®è¨å®*//* #[<ENTRY_FUNC>]# eMainTask_main384 * メインタスク 385 */ 386 /* 属性の設定 *//* #[<ENTRY_FUNC>]# eMainTask_main 429 387 * name: eMainTask_main 430 388 * global_name: tSample2_eMainTask_main … … 447 405 } else { 448 406 /* 449 * ã·ãªã¢ã«åºåãã§ããªãå ´åããã°ã¡ãã»ã¼ã¸ãå 450 ¨ã¦ 451 * ä½ã¬ãã«åºåã«ããåºåããã 407 * シリアル出力ができない場合、ログメッセージを全て 408 * 低レベル出力により出力する。 452 409 */ 453 410 SVC_PERROR(cSysLog_mask(LOG_UPTO(LOG_INFO), LOG_UPTO(LOG_DEBUG))); … … 456 413 457 414 /* 458 * ã·ãªã¢ã«ãã¼ãã®åæå415 * シリアルポートの初期化 459 416 * 460 * ã·ã¹ãã ãã°ã¿ã¹ã¯ã¨åãã·ãªã¢ã«ãã¼ãã使ãå ´åãªã©ï¼ã·ãªã¢ã«461 * ãã¼ãããªã¼ãã³æ¸ã¿ã®å ´åã«ã¯ããã§E_OBJã¨ã©ã¼ã«ãªããï¼æ¯éã¯462 * ãªãï¼417 * システムログタスクと同じシリアルポートを使う場合など,シリアル 418 * ポートがオープン済みの場合にはここでE_OBJエラーになるが,支障は 419 * ない. 463 420 */ 464 421 … … 473 430 474 431 /* 475 * ã«ã¼ãåæ°ã®è¨å®432 * ループ回数の設定 476 433 * 477 * 並è¡å®è¡ãããã¿ã¹ã¯å 478 ã§ã®ç©ºã«ã¼ãã®åæ°ï¼task_loopï¼ã¯ï¼ç©ºã«ã¼ 479 * ãã®å®è¡æéãç´0.4ç§ã«ãªãããã«è¨å®ããï¼ãã®è¨å®ã®ããã«ï¼ 480 * LOOP_REFåã®ç©ºã«ã¼ãã®å®è¡æéãï¼ãã®åå¾ã§get_timãå¼ã¶ãã¨ã§ 481 * 測å®ãï¼ãã®æ¸¬å®çµæãã空ã«ã¼ãã®å®è¡æéã0.4ç§ã«ãªãã«ã¼ãå 482 * æ°ãæ±ãï¼task_loopã«è¨å®ããï¼ 434 * 並行実行されるタスク内での空ループの回数(task_loop)は,空ルー 435 * プの実行時間が約0.4秒になるように設定する.この設定のために, 436 * LOOP_REF回の空ループの実行時間を,その前後でget_timを呼ぶことで 437 * 測定し,その測定結果から空ループの実行時間が0.4秒になるループ回 438 * 数を求め,task_loopに設定する. 483 439 * 484 * LOOP_REFã¯ï¼ããã©ã«ãã§ã¯1,000,000ã«è¨å®ãã¦ãããï¼æ³å®ããã 485 * ãé 486 ãããã»ããµã§ã¯ï¼ãµã³ãã«ããã°ã©ã ã®å®è¡éå§ã«æéããã 487 * ããããã¨ããåé¡ãçããï¼éã«æ³å®ããããéãããã»ããµã§ã¯ï¼ 488 * LOOP_REFåã®ç©ºã«ã¼ãã®å®è¡æéãçããªãï¼task_loopã«è¨å®ããå¤ 489 * ã®èª¤å·®ã大ãããªãã¨ããåé¡ãããï¼ 440 * LOOP_REFは,デフォルトでは1,000,000に設定しているが,想定したよ 441 * り遅いプロセッサでは,サンプルプログラムの実行開始に時間がかか 442 * りすぎるという問題を生じる.逆に想定したより速いプロセッサでは, 443 * LOOP_REF回の空ループの実行時間が短くなり,task_loopに設定する値 444 * の誤差が大きくなるという問題がある. 490 445 * 491 * ããã§ï¼ãã®ãããªã¿ã¼ã²ããã§ã¯ï¼target_test.hã§ï¼LOOP_REFãé©492 * åãªå¤ã«å®ç¾©ããã®ãæã¾ããï¼446 * そこで,そのようなターゲットでは,target_test.hで,LOOP_REFを適 447 * 切な値に定義するのが望ましい. 493 448 * 494 * ã¾ãï¼task_loopã®å¤ãåºå®ãããå ´åã«ã¯ï¼ãã®å¤ãTASK_LOOPã«ã495 * ã¯ãå®ç¾©ããï¼TASK_LOOPããã¯ãå®ç¾©ããã¦ããå ´åï¼ä¸è¨ã®æ¸¬å®ã496 * è¡ããã«ï¼TASK_LOOPã«å®ç¾©ãããå¤ã空ã«ã¼ãã®åæ°ã¨ããï¼449 * また,task_loopの値を固定したい場合には,その値をTASK_LOOPにマ 450 * クロ定義する.TASK_LOOPがマクロ定義されている場合,上記の測定を 451 * 行わずに,TASK_LOOPに定義された値を空ループの回数とする. 497 452 * 498 * ã¿ã¼ã²ããã«ãã£ã¦ã¯ï¼ç©ºã«ã¼ãã®å®è¡æéã®1åç®ã®æ¸¬å®ã§ï¼æ¬æ¥ã499 * ããé·ãã«ãªããã®ãããï¼ãã®ãããªã¿ã¼ã²ããã§ã¯ï¼MEASURE_TWICE500 * ããã¯ãå®ç¾©ãããã¨ã§ï¼1åç®ã®æ¸¬å®çµæãæ¨ã¦ã¦ï¼2åç®ã®æ¸¬å®çµæ501 * ã使ãï¼453 * ターゲットによっては,空ループの実行時間の1回目の測定で,本来よ 454 * りも長めになるものがある.このようなターゲットでは,MEASURE_TWICE 455 * をマクロ定義することで,1回目の測定結果を捨てて,2回目の測定結果 456 * を使う. 502 457 */ 503 458 #ifdef TASK_LOOP … … 521 476 522 477 /* 523 * ã¿ã¹ã¯ã®èµ·å478 * タスクの起動 524 479 */ 525 480 … … 529 484 530 485 /* 531 * ã¡ã¤ã³ã«ã¼ã486 * メインループ 532 487 */ 533 488 if (is_cSerialPort_joined()) { -
azure_iot_hub/trunk/asp3_dcre/sample/tSample2.cdl
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 1 1 /* 2 * ãµã³ãã«ããã°ã©ã (2)ã®ã³ã³ãã¼ãã³ãè¨è¿°ãã¡ã¤ã«2 * サンプルプログラム(2)のコンポーネント記述ファイル 3 3 * 4 4 * $Id$ 5 5 */ 6 6 /* 7 * ã«ã¼ãã«ãªãã¸ã§ã¯ãã®å®ç¾©7 * カーネルオブジェクトの定義 8 8 */ 9 9 import("kernel.cdl"); 10 10 11 11 /* 12 * ã¿ã¼ã²ããéä¾åã®ã»ã«ã¿ã¤ãã®å®ç¾©12 * ターゲット非依存のセルタイプの定義 13 13 */ 14 14 import("syssvc/tSerialPort.cdl"); … … 18 18 19 19 /* 20 * ã¿ã¼ã²ããä¾åé¨ã®åãè¾¼ã¿20 * ターゲット依存部の取り込み 21 21 */ 22 22 import("target.cdl"); 23 23 24 24 /* 25 * ãã»ã«ã®çµä¸ãè¨è¿°ãã¨ã¯ï¼"cell"ã§å§ã¾ãè¡ããï¼ããã«å¯¾å¿ãã"};" 26 * ã®è¡ã¾ã§ã®ãã¨ãè¨ãï¼ 27 */ 28 29 /* 30 * ã·ã¹ãã ãã°æ©è½ã®çµä¸ãè¨è¿° 31 * 32 * ã·ã¹ãã ãã°æ©è½ãå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°ãåé¤ãï¼ã³ 33 * ã³ãã¤ã«ãªãã·ã§ã³ã«-DTOPPERS_OMIT_SYSLOGã追å ããã°ããï¼ãã ãï¼ 34 * ã·ã¹ãã ãã°ã¿ã¹ã¯ã¯ã·ã¹ãã ãã°æ©è½ã使ç¨ããããï¼ãããå¤ãã㨠35 * ãå¿ 36 è¦ã§ããï¼ã¾ãï¼ã·ã¹ãã ãã°æ©è½ã®ã¢ããã¿ãå¤ããªããã°ãªã㪠37 * ãï¼tecsgenãè¦åã¡ãã»ã¼ã¸ãåºããï¼ç¡è¦ãã¦ããï¼ 25 * 「セルの組上げ記述」とは,"cell"で始まる行から,それに対応する"};" 26 * の行までのことを言う. 27 */ 28 29 /* 30 * システムログ機能の組上げ記述 31 * 32 * システムログ機能を外す場合には,以下のセルの組上げ記述を削除し,コ 33 * ンパイルオプションに-DTOPPERS_OMIT_SYSLOGを追加すればよい.ただし, 34 * システムログタスクはシステムログ機能を使用するため,それも外すこと 35 * が必要である.また,システムログ機能のアダプタも外さなければならな 36 * い.tecsgenが警告メッセージを出すが,無視してよい. 38 37 */ 39 38 cell tSysLog SysLog { 40 logBufferSize = 32; /* ãã°ãããã¡ã®ãµã¤ãº*/39 logBufferSize = 32; /* ログバッファのサイズ */ 41 40 initLogMask = C_EXP("LOG_UPTO(LOG_NOTICE)"); 42 /* ãã°ãããã¡ã«è¨é²ãã¹ãéè¦åº¦*/41 /* ログバッファに記録すべき重要度 */ 43 42 initLowMask = C_EXP("LOG_UPTO(LOG_EMERG)"); 44 /* ä½ã¬ãã«åºåãã¹ãéè¦åº¦*/45 46 /* ä½ã¬ãã«åºåã¨ã®çµå*/43 /* 低レベル出力すべき重要度 */ 44 45 /* 低レベル出力との結合 */ 47 46 cPutLog = PutLogTarget.ePutLog; 48 47 }; 49 48 50 49 /* 51 * ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®çµä¸ãè¨è¿° 52 * 53 * ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ããå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨ 54 * è¿°ãåé¤ããã°ããï¼ãã ãï¼ã·ã¹ãã ãã°ã¿ã¹ã¯ã¯ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ 55 * ã¹ãã©ã¤ãã使ç¨ããããï¼ãããå¤ããã¨ãå¿ 56 è¦ã§ããï¼ã¾ãï¼ã·ãªã¢ 57 * ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ã¢ããã¿ãå¤ããªããã°ãªããªãï¼ 50 * シリアルインタフェースドライバの組上げ記述 51 * 52 * シリアルインタフェースドライバを外す場合には,以下のセルの組上げ記 53 * 述を削除すればよい.ただし,システムログタスクはシリアルインタフェー 54 * スドライバを使用するため,それも外すことが必要である.また,シリア 55 * ルインタフェースドライバのアダプタも外さなければならない. 58 56 */ 59 57 cell tSerialPort SerialPort1 { 60 receiveBufferSize = 256; /* åä¿¡ãããã¡ã®ãµã¤ãº*/61 sendBufferSize = 256; /* éä¿¡ãããã¡ã®ãµã¤ãº*/62 63 /* ã¿ã¼ã²ããä¾åé¨ã¨ã®çµå*/58 receiveBufferSize = 256; /* 受信バッファのサイズ */ 59 sendBufferSize = 256; /* 送信バッファのサイズ */ 60 61 /* ターゲット依存部との結合 */ 64 62 cSIOPort = SIOPortTarget1.eSIOPort; 65 eiSIOCBR <= SIOPortTarget1.ciSIOCBR; /* ã³ã¼ã«ããã¯*/66 }; 67 68 /* 69 * ã·ã¹ãã ãã°ã¿ã¹ã¯ã®çµä¸ãè¨è¿°70 * 71 * ã·ã¹ãã ãã°ã¿ã¹ã¯ãå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°ãåé¤ãã72 * ã°ããï¼63 eiSIOCBR <= SIOPortTarget1.ciSIOCBR; /* コールバック */ 64 }; 65 66 /* 67 * システムログタスクの組上げ記述 68 * 69 * システムログタスクを外す場合には,以下のセルの組上げ記述を削除すれ 70 * ばよい. 73 71 */ 74 72 cell tLogTask LogTask { 75 priority = 3; /* ã·ã¹ãã ãã°ã¿ã¹ã¯ã®åªå 76 度 */ 77 stackSize = LogTaskStackSize; /* ã·ã¹ãã ãã°ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */ 78 79 /* ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã¨ã®çµå */ 73 priority = 3; /* システムログタスクの優先度 */ 74 stackSize = LogTaskStackSize; /* システムログタスクのスタックサイズ */ 75 76 /* シリアルインタフェースドライバとの結合 */ 80 77 cSerialPort = SerialPort1.eSerialPort; 81 78 cnSerialPortManage = SerialPort1.enSerialPortManage; 82 79 83 /* ã·ã¹ãã ãã°æ©è½ã¨ã®çµå*/80 /* システムログ機能との結合 */ 84 81 cSysLog = SysLog.eSysLog; 85 82 86 /* ä½ã¬ãã«åºåã¨ã®çµå*/83 /* 低レベル出力との結合 */ 87 84 cPutLog = PutLogTarget.ePutLog; 88 85 }; 89 86 90 87 /* 91 * ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸åºåã®çµä¸ãè¨è¿°92 * 93 * ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ã®åºåãå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°94 * ãåé¤ããã°ããï¼88 * カーネル起動メッセージ出力の組上げ記述 89 * 90 * カーネル起動メッセージの出力を外す場合には,以下のセルの組上げ記述 91 * を削除すればよい. 95 92 */ 96 93 cell tBanner Banner { 97 /* å±æ§ã®è¨å®*/94 /* 属性の設定 */ 98 95 targetName = BannerTargetName; 99 96 copyrightNotice = BannerCopyrightNotice; … … 101 98 102 99 /* 103 * ãµã³ãã«ããã°ã©ã ã®å®ç¾©100 * サンプルプログラムの定義 104 101 */ 105 102 [singleton] 106 103 celltype tSample2 { 107 require tKernel.eKernel; /* å¼ã³å£åãªãï¼ä¾ï¼delayï¼*/108 /*require cKernel = tKernel.eKernel;/* å¼ã³å£åããï¼ä¾ï¼cKernel_delayï¼*/109 require ciKernel = tKernel.eiKernel;/* å¼ã³å£åããï¼ä¾ï¼ciKernel_ï¼*/110 111 call sTask cTask[4]; /* ã¿ã¹ã¯æä½*/104 require tKernel.eKernel; /* 呼び口名なし(例:delay)*/ 105 /*require cKernel = tKernel.eKernel;/* 呼び口名あり(例:cKernel_delay)*/ 106 require ciKernel = tKernel.eiKernel;/* 呼び口名あり(例:ciKernel_)*/ 107 108 call sTask cTask[4]; /* タスク操作 */ 112 109 call sTask cExceptionTask; 113 110 call sCyclic cCyclic; 114 111 call sAlarm cAlarm; 115 112 116 [optional] call sSerialPort cSerialPort;/* ã·ãªã¢ã«ãã©ã¤ãã¨ã®æ¥ç¶*/117 call sSysLog cSysLog; /* ã·ã¹ãã ãã°æ©è½ã¨ã®æ¥ç¶*/113 [optional] call sSerialPort cSerialPort;/* シリアルドライバとの接続 */ 114 call sSysLog cSysLog; /* システムログ機能との接続 */ 118 115 119 entry sTaskBody eMainTask; /* Main ã¿ã¹ã¯*/120 entry sTaskBody eSampleTask[3]; /* 並è¡å®è¡ãããã¿ã¹ã¯*/121 entry sTaskBody eExceptionTask; /* ä¾å¤å¦çã¿ã¹ã¯*/116 entry sTaskBody eMainTask; /* Mainタスク */ 117 entry sTaskBody eSampleTask[3]; /* 並行実行されるタスク */ 118 entry sTaskBody eExceptionTask; /* 例外処理タスク */ 122 119 123 entry siHandlerBody eiCyclicHandler;/* å¨æãã³ãã©*/124 entry siHandlerBody eiAlarmHandler; /* ã¢ã©ã¼ã ãã³ãã©*/125 }; 126 127 /* 128 * çµã¿ä¸ãè¨è¿°129 */ 130 131 /* Sample2 ã®ãããã¿ã¤ã宣è¨*/120 entry siHandlerBody eiCyclicHandler;/* 周期ハンドラ*/ 121 entry siHandlerBody eiAlarmHandler; /* アラームハンドラ */ 122 }; 123 124 /* 125 * 組み上げ記述 126 */ 127 128 /* Sample2のプロトタイプ宣言 */ 132 129 cell tSample2 Sample2; 133 130 … … 136 133 137 134 cell tTask MainTask { 138 /* å¼ã³å£ã®çµå*/135 /* 呼び口の結合 */ 139 136 cTaskBody = Sample2.eMainTask; 140 /* å±æ§ã®è¨å®*/137 /* 属性の設定 */ 141 138 attribute = C_EXP("TA_ACT"); 142 139 priority = C_EXP("MAIN_PRIORITY"); … … 145 142 146 143 cell tTask Task1 { 147 /* å¼ã³å£ã®çµå*/144 /* 呼び口の結合 */ 148 145 cTaskBody = Sample2.eSampleTask[0]; 149 /* å±æ§ã®è¨å®*/146 /* 属性の設定 */ 150 147 priority = C_EXP("MID_PRIORITY"); 151 148 stackSize = C_EXP("STACK_SIZE"); … … 153 150 154 151 cell tTask Task2 { 155 /* å¼ã³å£ã®çµå*/152 /* 呼び口の結合 */ 156 153 cTaskBody = Sample2.eSampleTask[1]; 157 /* å±æ§ã®è¨å®*/154 /* 属性の設定 */ 158 155 priority = C_EXP("MID_PRIORITY"); 159 156 stackSize = C_EXP("STACK_SIZE"); … … 161 158 162 159 cell tTask Task3 { 163 /* å¼ã³å£ã®çµå*/160 /* 呼び口の結合 */ 164 161 cTaskBody = Sample2.eSampleTask[2]; 165 /* å±æ§ã®è¨å®*/162 /* 属性の設定 */ 166 163 priority = C_EXP("MID_PRIORITY"); 167 164 stackSize = C_EXP("STACK_SIZE"); … … 169 166 170 167 cell tTask ExceptionTask { 171 /* å¼ã³å£ã®çµå*/168 /* 呼び口の結合 */ 172 169 cTaskBody = Sample2.eExceptionTask; 173 /* å±æ§ã®è¨å®*/170 /* 属性の設定 */ 174 171 priority = C_EXP("EXC_PRIORITY"); 175 172 stackSize = C_EXP("STACK_SIZE"); … … 177 174 178 175 cell tCyclicHandler CyclicHandler { 179 /* å¼ã³å£ã®çµå*/176 /* 呼び口の結合 */ 180 177 ciHandlerBody = Sample2.eiCyclicHandler; 181 /* å±æ§ã®è¨å®*/178 /* 属性の設定 */ 182 179 cycleTime = 2000000; 183 180 }; … … 188 185 189 186 cell tSample2 Sample2 { 190 /* å¼ã³å£ã®çµå*/187 /* 呼び口の結合 */ 191 188 cTask[ 0 ] = MainTask.eTask; 192 189 cTask[ 1 ] = Task1.eTask; -
azure_iot_hub/trunk/asp3_dcre/sample/tSample2.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 1 1 /* 2 * ãµã³ãã«ããã°ã©ã (2)ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«2 * サンプルプログラム(2)のシステムコンフィギュレーションファイル 3 3 * 4 4 * $Id$ -
azure_iot_hub/trunk/asp3_dcre/sample/tSample2.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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 * ãµã³ãã«ããã°ã©ã (2)ã®ããããã¡ã¤ã«44 * サンプルプログラム(2)のヘッダファイル 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 EXC_PRIORITY 1 /* ä¾å¤å¦çã¿ã¹ã¯ã®åªå 73 度 */ 74 #define MAIN_PRIORITY 5 /* ã¡ã¤ã³ã¿ã¹ã¯ã®åªå 75 度 */ 76 /* HIGH_PRIORITYããé«ãããã㨠*/ 56 #define EXC_PRIORITY 1 /* 例外処理タスクの優先度 */ 57 #define MAIN_PRIORITY 5 /* メインタスクの優先度 */ 58 /* HIGH_PRIORITYより高くすること */ 77 59 78 #define HIGH_PRIORITY 9 /* 並åã«å®è¡ãããã¿ã¹ã¯ã®åªå 79 度 */ 60 #define HIGH_PRIORITY 9 /* 並列に実行されるタスクの優先度 */ 80 61 #define MID_PRIORITY 10 81 62 #define LOW_PRIORITY 11 82 63 83 64 /* 84 * ã¿ã¼ã²ããã«ä¾åããå¯è½æ§ã®ããå®æ°ã®å®ç¾©65 * ターゲットに依存する可能性のある定数の定義 85 66 */ 86 67 87 68 #ifndef STACK_SIZE 88 #define STACK_SIZE 4096 /* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/69 #define STACK_SIZE 4096 /* タスクのスタックサイズ */ 89 70 #endif /* STACK_SIZE */ 90 71 91 72 #ifndef LOOP_REF 92 #define LOOP_REF ULONG_C(1000000) /* é度è¨æ¸¬ç¨ã®ã«ã¼ãåæ°*/73 #define LOOP_REF ULONG_C(1000000) /* 速度計測用のループ回数 */ 93 74 #endif /* LOOP_REF */ 94 75 95 76 /* 96 * é¢æ°ã®ãããã¿ã¤ã宣è¨77 * 関数のプロトタイプ宣言 97 78 */ 98 79 #ifndef TOPPERS_MACRO_ONLY
Note:
See TracChangeset
for help on using the changeset viewer.