(toppers-users 3447) cfgの --external-id 引数

suikan suikan7 @ yahoo.co.jp
2011年 5月 4日 (水) 17:32:19 JST


こんにちは

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指定機能があ
りますが、正直、たかが引数の変更でそこまでやる のは敷居が高すぎますし、
ターゲット非依存部のアップデート毎のメンテナンス・コストが上がってしまい
ます。

以上、よろしくお願いします。

酔漢

-- 
酔漢
組み込みBlog              http://d.hatena.ne.jp/suikan+embedded/
TOPPERS/ASP for LPC       http://sourceforge.jp/projects/toppersasp4lpc/
Blackfin Blog             http://d.hatena.ne.jp/suikan+blackfin/
TOPPERS/JSP for Blackfin  http://sourceforge.jp/projects/toppersjsp4bf/