> 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を受け取れる関数とする必要があ
りますね。
真鍋 裕一