Forums: Help (Thread #10760)

タスクの動的生成 (2006-04-10 19:47 by taiki_niijima #21138)

現在、タスクの動的生成を試しているのですがうまく行きません。

ER ercd;
const T_CTSK pk_ctsk = {TA_HLNG, 1, (void*)Task3, 3, 256, NULL};
ercd = cre_tsk(3,&pk_ctsk);
act_tsk(3);

このコードで生成しています。

プロトタイプ宣言:
void Task3(VP_INT exinf);

タスクの関数:
void Task3(VP_INT exinf)
{
dly_tsk(1000);
SciPutString("TASK3 START\n");
}

Reply to #21138×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

RE: タスクの動的生成 (2006-04-10 21:42 by m-arai #21140)

うまくいかないとはどういうことでしょうか?
cre_tsk、act_tskの引数は適切ですか?返値は
どうなっていますか?

引数、返値については、uITRON4.0仕様書を参照
しましょう。これを上回る資料は他にありません。
#http://www.assoc.tron.org/jpn/document.html
#からPDFファイルを無料で入手できます。

第4章ITRON4.0仕様の機能 4.1タスク管理機能
辺りです。CRE_TSK/cre_tsk/acre_tsk(Ver.4.02.00ならばp85)、act_tsk(同じくp89)
何が原因なのかを知ることが出来るかもしれません。

そこを読んでも、どうしてもうまくいかない。
正しく使っている筈なのに!ならば次はHOSのソースを
読み、処理を追ってみましょう。
src/kernel/tsk/cre_tsk.c src/kernel/tsk/act_tsk,c
です。ソースがあるって良いですね。

それでもおかしい!!納得できない!!
ここまで来ると、何かバグに遭遇した可能性が
あります。なんとか修正しましょう。そして、出来たら
その成果を我々にお知らせください。

…以上、なんとなくうまくいかない場合の対処を
なんとなく書いてみましたが、参考になりました
でしょうか。

このメッセージだけでは全くの推測に過ぎませんが、
システムコンフィグレーションファイルについての
記述が全く無いことから、おそらく
HOS_MAX_TPRIやHOS_KERNEL_HEAP、HOS_MAX_TSKID
(或いはHOS_RES_TSKOBJ)等の記述が不適切、又は
抜けているのではないでしょうか。
document/hos4cfg.txtをお読みください。
Reply to #21138

Reply to #21140×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

RE: タスクの動的生成 (2006-04-11 08:34 by taiki_niijima #21154)

ありがとう、ございます。
早速試してみます。
数年ぶりにITRONを触るもので。
これからもよろしくお願いします。
Reply to #21138

Reply to #21154×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

解決しました。 (2006-04-11 09:53 by taiki_niijima #21155)

ご指摘のとおり、HOS_KERNEL_HEAPの設定が0でした。
ありがとうございました。
Reply to #21138

Reply to #21155×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login