(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
> です。
>
> お手数おかけしますが、宜しくお願い致します。