Forums: Help (Thread #5430)

静的に作成されたタスクの活性化 (2004-06-28 15:55 by smithavb #9992)

拝啓、グループ・メンバー、

私たちは埋め込まれたプロジェクトの中でHOSバージョン4を使用しています。
関数act_tsk()はER_NOEXSエラー・コードを返します。
「/hos-v4/src/核/tsk/act_tsk.c」の中のact_tsk()をデバッグした時、私たちはtcb_ramがNULLを割り当てられることを知りました(並んだno.1以下に参照)。
/***************************************************************************************************/
1. tcb_ram = KERNEL_TSKID_TO_TCB_RAM(tskid); /*This returned NULL to tcb_ram*/
2.
3.
4. #ifdef HOS_ERCHK_E_NOEXS
5. if ( tcb_ram == NULL )
6. {
7. mknl_unl_sys();
8. return E_NOEXS;
9. }
10. #endif
11. }
/***************************************************************************************************/

注:私たちはタスクをダイナミックに作成し、それを活性化することができます。

どのように,私たちはこの問題を解決します。

ありがとございます。

しみた。

Reply to #9992×

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: 静的に作成されたタスクの活性化 (2004-06-28 20:50 by m-arai #9994)

m-araiです。

取り敢えず思いつくのは2つです。

1. tskidで指定されるタスクが生成されていない

動的生成タスクについては、当然ですが、起動前に
cre_tsk/acre_tskでタスクを生成しておかな
ければなりません。また、del_tskなどで削除した
場合は、改めて生成する必要があります。

2. スタックの伸長やアプリケーションプログラムの
バグ、HOS-V4に存在する未知のバグにより、
kernel_tcb_ram_tbl[]が破壊されている

カーネルヒープやタスクスタックを大きくしてみて、
現象に変化がないか確認してみましょう。

一応、現在までにkernel_tcb_ram[]が破壊されるような
バグは確認されていません。

再現するプログラム/コンフィグレーションを
示していただければ、問題を発見、修正することが
できるかもしれません。
#できるとは限りませんが。


動的生成タスクの生成と起動については確認されている
ようですから、1ということはないでしょうが、
いただいたメッセージからお答えできるのはこの程度です。
お役に立てなかったら申し訳ありません。
Reply to #9992

Reply to #9994×

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