(toppers-users 3452) Re: cfgの --external-id 引数

Hiroaki TAKADA hiro @ ertl.jp
2011年 5月 5日 (木) 09:44:22 JST


酔漢さま

1)については高木さんから回答のあった通り、意図した振る舞いです。

2)についてですが、ターゲット依存部(Makefile.target)は、あくまでその
ターゲットハードウェアに対応するための記述であるべきで、--external_id
のようにアプリケーション依存でつけるオプションについては、Makefile を
編集して対応するのが想定した使い方です。

ただ、どうしても Makefile.target で対応したい、ということであれば、
CFG_TABS を使えないでしょうか?

高田広章
名古屋大学

(11/05/04 17:32), suikan wrote:
> こんにちは
> 
> TOPPERS/ASPのLPC1768向け野良カーネルを実装している酔漢です。
> 
> cfgの --external-id 引数の効果について教えてください。
> 
> 1) extern宣言を生成しない理由は?
> たとえばコンフィギュレーションファイルでCRE_SEMを使ってSEM_I2C0_SIGNALと
> いうセマフォを作るとします。
> 
> --external-id 無しの場合には、kernel_cfg.h に
> 
> #define SEM_I2C0_SIGNAL 1
> 
> のようなマクロ宣言が生成されます。これに対して --external-id ありの場合
> には上記宣言に加えて kernel_cfg.cに
> 
> cons ID SEM_I2C0_SIGNAL_id = 1
> 
> のような変数が定義されます。ここまではいいのですが、この場合
> kernel_cfg.h に
> 
> extern const ID SEM_I2C0_SIGNAL_id;
> 
> が追加されないのはなぜでしょうか。単なる見落としであれば次回リリース時に
> は生成をお願いします。また、わざと生成しない場合にはその理由をお 教えい
> ただければ幸いです。
> 
> 個人的には、kernel_cfg.cで
> 
> cons ID SEM_I2C0_SIGNAL = 1
> 
> として、kernel_cfg.hで
> 
> extern const ID SEM_I2C0_SIGNAL;
> 
> としてもらえればそれでOKですし、その方が安全だと思っていますがそうなって
> いません。この辺も理解に苦しむところではあります。オブジェク ト・サイズ
> に対する要求が厳しい場面が多いのは分かるのですが。
> 
> 2) ターゲット依存部から指定できるようにしてほしい
> 
> --external_id を始めとするcfgのオプションを利用するには、Makefileを変更
> するしかありません。次期リリース時にはこれを Makefile.target から利用で
> きるよう検討願います。configureスクリプトには代替えMakefile指定機能があ
> りますが、正直、たかが引数の変更でそこまでやる のは敷居が高すぎますし、
> ターゲット非依存部のアップデート毎のメンテナンス・コストが上がってしまい
> ます。
> 
> 以上、よろしくお願いします。
> 
> 酔漢
>