source: EcnlProtoTool/trunk/asp3_dcre/sample/tSample2.cdl@ 270

Last change on this file since 270 was 270, checked in by coas-nagasima, 7 years ago

mruby版ECNLプロトタイピング・ツールを追加

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
  • Property svn:mime-type set to text/plain
File size: 5.7 KB
Line 
1/*
2 * サンプルプログラム(2)のコンポーネント記述ファイル
3 *
4 * $Id: tSample2.cdl 270 2017-02-09 04:03:47Z coas-nagasima $
5 */
6/*
7 * カーネルオブジェクトの定義
8 */
9import("kernel.cdl");
10
11/*
12 * ターゲット非依存のセルタイプの定義
13 */
14import("syssvc/tSerialPort.cdl");
15import("syssvc/tSysLog.cdl");
16import("syssvc/tLogTask.cdl");
17import("syssvc/tBanner.cdl");
18
19/*
20 * ターゲット依存部の取り込み
21 */
22import("target.cdl");
23
24/*
25 * 「セルの組上げ記述」とは,"cell"で始まる行から,それに対応する"};"
26 * の行までのことを言う.
27 */
28
29/*
30 * システムログ機能の組上げ記述
31 *
32 * システムログ機能を外す場合には,以下のセルの組上げ記述を削除し,コ
33 * ンパイルオプションに-DTOPPERS_OMIT_SYSLOGを追加すればよい.ただし,
34 * システムログタスクはシステムログ機能を使用するため,それも外すこと
35 * が必
36要である.また,システムログ機能のアダプタも外さなければならな
37 * い.tecsgenが警告メッセージを出すが,無視してよい.
38 */
39cell tSysLog SysLog {
40 logBufferSize = 32; /* ログバッファのサイズ */
41 initLogMask = C_EXP("LOG_UPTO(LOG_NOTICE)");
42 /* ログバッファに記録すべき重要度 */
43 initLowMask = C_EXP("LOG_UPTO(LOG_EMERG)");
44 /* 低レベル出力すべき重要度 */
45
46 /* 低レベル出力との結合 */
47 cPutLog = PutLogTarget.ePutLog;
48};
49
50/*
51 * シリアルインタフェースドライバの組上げ記述
52 *
53 * シリアルインタフェースドライバを外す場合には,以下のセルの組上げ記
54 * 述を削除すればよい.ただし,システムログタスクはシリアルインタフェー
55 * スドライバを使用するため,それも外すことが必
56要である.また,シリア
57 * ルインタフェースドライバのアダプタも外さなければならない.
58 */
59cell tSerialPort SerialPort1 {
60 receiveBufferSize = 256; /* 受信バッファのサイズ */
61 sendBufferSize = 256; /* 送信バッファのサイズ */
62
63 /* ターゲット依存部との結合 */
64 cSIOPort = SIOPortTarget1.eSIOPort;
65 eiSIOCBR <= SIOPortTarget1.ciSIOCBR; /* コールバック */
66};
67
68/*
69 * システムログタスクの組上げ記述
70 *
71 * システムログタスクを外す場合には,以下のセルの組上げ記述を削除すれ
72 * ばよい.
73 */
74cell tLogTask LogTask {
75 priority = 3; /* システムログタスクの優å…
76ˆåº¦ */
77 stackSize = LogTaskStackSize; /* システムログタスクのスタックサイズ */
78
79 /* シリアルインタフェースドライバとの結合 */
80 cSerialPort = SerialPort1.eSerialPort;
81 cnSerialPortManage = SerialPort1.enSerialPortManage;
82
83 /* システムログ機能との結合 */
84 cSysLog = SysLog.eSysLog;
85
86 /* 低レベル出力との結合 */
87 cPutLog = PutLogTarget.ePutLog;
88};
89
90/*
91 * カーネル起動メッセージ出力の組上げ記述
92 *
93 * カーネル起動メッセージの出力を外す場合には,以下のセルの組上げ記述
94 * を削除すればよい.
95 */
96cell tBanner Banner {
97 /* 属性の設定 */
98 targetName = BannerTargetName;
99 copyrightNotice = BannerCopyrightNotice;
100};
101
102/*
103 * サンプルプログラムの定義
104 */
105[singleton]
106celltype 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]; /* タスク操作 */
112 call sTask cExceptionTask;
113 call sCyclic cCyclic;
114 call sAlarm cAlarm;
115
116 [optional] call sSerialPort cSerialPort;/* シリアルドライバとの接続 */
117 call sSysLog cSysLog; /* システムログ機能との接続 */
118
119 entry sTaskBody eMainTask; /* Mainタスク */
120 entry sTaskBody eSampleTask[3]; /* 並行実行されるタスク */
121 entry sTaskBody eExceptionTask; /* 例外処理タスク */
122
123 entry siHandlerBody eiCyclicHandler;/* 周期ハンドラ*/
124 entry siHandlerBody eiAlarmHandler; /* アラームハンドラ */
125};
126
127/*
128 * 組み上げ記述
129 */
130
131/* Sample2のプロトタイプ宣言 */
132cell tSample2 Sample2;
133
134cell tKernel ASPKernel{
135};
136
137cell tTask MainTask {
138 /* 呼び口の結合 */
139 cTaskBody = Sample2.eMainTask;
140 /* 属性の設定 */
141 attribute = C_EXP("TA_ACT");
142 priority = C_EXP("MAIN_PRIORITY");
143 stackSize = C_EXP("STACK_SIZE");
144};
145
146cell tTask Task1 {
147 /* 呼び口の結合 */
148 cTaskBody = Sample2.eSampleTask[0];
149 /* 属性の設定 */
150 priority = C_EXP("MID_PRIORITY");
151 stackSize = C_EXP("STACK_SIZE");
152};
153
154cell tTask Task2 {
155 /* 呼び口の結合 */
156 cTaskBody = Sample2.eSampleTask[1];
157 /* 属性の設定 */
158 priority = C_EXP("MID_PRIORITY");
159 stackSize = C_EXP("STACK_SIZE");
160};
161
162cell tTask Task3 {
163 /* 呼び口の結合 */
164 cTaskBody = Sample2.eSampleTask[2];
165 /* 属性の設定 */
166 priority = C_EXP("MID_PRIORITY");
167 stackSize = C_EXP("STACK_SIZE");
168};
169
170cell tTask ExceptionTask {
171 /* 呼び口の結合 */
172 cTaskBody = Sample2.eExceptionTask;
173 /* 属性の設定 */
174 priority = C_EXP("EXC_PRIORITY");
175 stackSize = C_EXP("STACK_SIZE");
176};
177
178cell tCyclicHandler CyclicHandler {
179 /* 呼び口の結合 */
180 ciHandlerBody = Sample2.eiCyclicHandler;
181 /* 属性の設定 */
182 cycleTime = 2000000;
183};
184
185cell tAlarmHandler AlarmHandler {
186 ciHandlerBody = Sample2.eiAlarmHandler;
187};
188
189cell tSample2 Sample2 {
190 /* 呼び口の結合 */
191 cTask[ 0 ] = MainTask.eTask;
192 cTask[ 1 ] = Task1.eTask;
193 cTask[ 2 ] = Task2.eTask;
194 cTask[ 3 ] = Task3.eTask;
195
196 cExceptionTask = ExceptionTask.eTask;
197
198 cCyclic = CyclicHandler.eCyclic;
199 cAlarm = AlarmHandler.eAlarm;
200
201 cSerialPort = SerialPort1.eSerialPort;
202 cSysLog = SysLog.eSysLog;
203};
Note: See TracBrowser for help on using the repository browser.