(toppers-users 2909) Re: twai_flg の TWF_ORWについて

SHUKUGUCHI Masahiro shukuguchi @ nifmail.jp
2009年 4月 1日 (水) 00:50:23 JST


鈴木さま

宿口と申します。

ER twai_flg(ID flgid, FLGPTN waiptn, MODE wfmode, FLGPRN *p_flgptn, TMO tmout);
のうち wfmode に指定できる属性は TWF_ANDW と TWF_ORW の2つだけです。
示されたコードには TWF_CLR がありますが、これが余分ではありませんか?

そもそも、TWF_CLR という定義は TOPPERS/JSP のkernel.h や eventflag.h には
ありません。

察するに、期待する値(ここでは 3)にセットされ待ち状態が解除されたときに
イベントフラグをクリアする指示だと思いますが、μITRON4.0のイベントフラグ
にはそのような機能はありません。

μITRON3.0仕様 や T-Kernel 仕様にはありますが、4.0のするときに削除された
のだと思います。
(恐らく、サービスコールの単機能性を優先したのだと思います)

ご確認ください。

Shukuguchi

Toshiya <NQC16171 @ nifty.com> wrote:
> 初めて投稿させていただきます。
> 鈴木俊哉と申します。
> 
> Toppers jsp を ARM9 上のターゲットボードに
> 組み込み、色々と動作をみているのですが、ある条件で
> twai_flg を呼ぶとエラーが返ってきてしまいます。
> 
> 具体的には、
> 
> UINT    ulFlag;
> ER      eError;
> 
> ...
> eError = twai_flg(0, 3, TWF_ORW | TWF_CLR, &ulFlag, TMO_FEVR);
> 
> のように呼ぶと返値 が E_PAR になってしまいます。
> ICE を使用して処理をみたのですが、
> eventflag.c の 339 行目、
> CHECK_PAR((wfmode & ~TWF_ORW) == 0);
> のところでエラーではじかれてしまっているようです。
> 
> このようなコードがあるということは、
> TWF_ORW
> は、未対応ということなのでしょうか?
> (因みに、この行をコメントアウトすれば、正常に動作しているようで
> す。)
> 
> アーカイブ検索したところ、twai_flg(..., TWF_ORW, ...); のように
> 使用されている方もおられるので、恐らく私がなにか勘違いを
> しているのだと思うのですが、何かアドバイスを頂ければと思い
> メールさせて頂いております。
> 
> 私の動作環境は、
> TOPPERS/JSP Kernel(Release 1.4.3)
> gcc.3.4.3-arm-elf
> です。
> 
> お手数おかけしますが、宜しくお願い致します。