[b-free 136] タスクとスタートコード

真鍋 裕一 (NBG02534@niftyserve.or.jp)
Fri, 29 Nov 1996 21:39:00 +0900

飯島さん、こんばんは

> PROCEDURE Task1(St:INTEGER);
>
> と変数Stで値を受けていますが、Stを手続きないでまったく使っていません

> なぜ、使わない値をもらっているのでしょうか?

 なぜかと言えば、仕様だからです。以上。

 これで終わっては、いかんですね。(^^;
 μITRON3.0標準ハンドブックから抜粋すると、

●[SN]sta_tsk: Start Task
タスク起動
【パラメータ】
ID tskid TaskID タスクID
INT stacd TaskStartCode タスク起動コード
【リターンパラメータ】
ER ercd ErrorCode エラーコード
【C言語インタフェース】
ER ercode = sta_tsk( ID tskid, INT stacd );

です。この様に、タスクの起動時にタスクに渡すパラメータとしてstacdを設
定する様になっています。
 M2ITRONでは、タスクとして使用する手続きであるTASK型を

TYPE
TASK=PROCEDURE(INTEGER);

と、定義しています。(ASMITRON.DEFの中)
 これは、INTEGER型の変数を引き数として渡す事を意味しています。これと
引き数の型が違う手続きは、TASKとしてタスク生成(CreTsk)する事ができませ
ん。
 C言語で記述する場合でも、同様にstacdを受け取れる関数とする必要があ
りますね。

真鍋 裕一