(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$
>