(toppers-users 3218) Re: [ASP]CRE_MBXのconfigが正常にできない
中村
norichan1108 @ gmail.com
2010年 6月 18日 (金) 11:47:34 JST
こんにちは、中村です。
大変申し訳ないです。
改めてソース以外をクリーンにし、ビルドしなおしたところ
問題なくビルドできました。
cleanしたつもりだったんですが、ちゃんとできていなかったようです。
申し訳ありませんでした。
(2010/06/18 11:02), 中村 wrote:
> こんにちは、中村です。
>
> TOPPERS/ASP 1.3.2(for cq_st_arm custom ver(for stbee)) にて
> 以下の現象にて困っています。
>
> // 初期化ルーチンの登録
> ATT_INI({ TA_NULL, 0, ui_init });
> // UI処理タスクの生成
> CRE_TSK(UI_TSK, {ATR_UI_TSK, 0, ui_tsk, PRI_UI_TSK, STK_UI_TSK,NULL});
> // UIメールボックス
> CRE_MBX(UI_MBX, { TA_TPRI|TA_MPRI , TMAX_MPRI, NULL });
>
> 上記、CRE_MBXですが、なぜか下記のエラーがでてkernel_cfg.[ch]が生成できま
> せん。
>
> cfg:ui.cfg:13: error: E_PAR: illegal maxmpri `TMAX_MPRI' of `UI_MBX' in
> CRE_MBX
>
> maxmpriはTMIN_MPRI〜TMAX_MPRIの値を設定するはずですよね?
> ためしに、
>
> CRE_MBX(UI_MBX, { TA_TPRI|TA_MPRI , 1, NULL });
>
> とすると
> cfg:ui.cfg:13: error: E_PAR: illegal maxmpri `1' of `UI_MBX' in CRE_MBX
> となります。
>
> もっと変なのは、
> CRE_MBX(UI_MBX, { 0xff , 1, NULL });
>
> ATRを変な値にしてみたにもかかわらず、
> cfg:ui.cfg:13: error: E_PAR: illegal maxmpri `1' of `UI_MBX' in CRE_MBX
>
> と、ATRはまったく評価されていません。
>
>
> kernel.tfには下記のようにあり、maxmpriの設定はTMAX_MPRIでまったく問題な
> いようにおもうのですが、私の勘違いでしょうか?
> それとも、どこか文法的にやらかしているんでしょうか?
> 宜しくお願いいたします。
>
> $
> $ メールボックス
> $
> /*$NL$
> $SPC$* Mailbox Functions$NL$
> $SPC$*/$NL$
> $NL$
>
> $ メールボックスID番号の最大値
> const ID _kernel_tmax_mbxid = (TMIN_MBXID + TNUM_MBXID - 1);$NL$
> $NL$
>
> $ メールボックス初期化ブロックの生成
> $IF LENGTH(MBX.ID_LIST)$
> const MBXINIB _kernel_mbxinib_table[TNUM_MBXID] = {$NL$
> $JOINEACH mbxid MBX.ID_LIST ",\n"$
> $ // mbxatrが([TA_TPRI]|[TA_MPRI])でない場合(E_RSATR)
> $IF (MBX.MBXATR[mbxid]& ~(TA_TPRI|TA_MPRI)) != 0$
> $ERROR MBX.TEXT_LINE[mbxid]$E_RSATR: $FORMAT(_("illegal %1%
> `%2%\' of `%3%\' in %4%"), "mbxatr", MBX.MBXATR[mbxid], mbxid,
> "CRE_MBX")$$END$
> $END$
>
> $ // (TMIN_MPRI<= maxmpri&& maxmpri<= TMAX_MPRI)でない場合(E_PAR)
> $IF !(TMIN_MPRI<= MBX.MAXMPRI[mbxid]&& MBX.MAXMPRI[mbxid]<=
> TMAX_MPRI)$
> $ERROR MBX.TEXT_LINE[mbxid]$E_PAR: $FORMAT(_("illegal %1%
> `%2%\' of `%3%\' in %4%"), "maxmpri", MBX.MAXMPRI[mbxid], mbxid,
> "CRE_MBX")$$END$
> $END$
>
> $ // mprihdがNULLでない場合(E_NOSPT)
> $IF !EQ(MBX.MPRIHD[mbxid], "NULL")$
> $ERROR MBX.TEXT_LINE[mbxid]$E_NOSPT: $FORMAT(_("illegal %1%
> `%2%\' of `%3%\' in %4%"), "mprihd", MBX.MPRIHD[mbxid], mbxid,
> "CRE_MBX")$$END$
> $END$
>
> $ // メールボックス初期化ブロック
> $TAB${ ($MBX.MBXATR[mbxid]$), ($MBX.MAXMPRI[mbxid]$) }
> $END$$NL$
> };$NL$
> $NL$
>
> $ // メールボックスコントロールブロック
> MBXCB _kernel_mbxcb_table[TNUM_MBXID];$NL$
> $ELSE$
> TOPPERS_EMPTY_LABEL(const MBXINIB, _kernel_mbxinib_table);$NL$
> TOPPERS_EMPTY_LABEL(MBXCB, _kernel_mbxcb_table);$NL$
> $END$
> $NL$
>