[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

(toppers-users 846) Re: TOPPERS(JSP-1.3)についての問い合わせ



(株)リコー 竹内さん

豊橋技術科学大学の若林です。

まず最初に、大変申し訳ないですが toppers-usersのメーリングリストは、ウィ
ルス被害を防ぐため、添付ファイルを切り離すようになっています。今回コン
フィギュレーションファイルを添付していただいたようですが、ファイルは配信
されないことをご了承ください。

質問2に関してですが、

 > sample.h中にUSE_SEMを定義しても、#ifdef USE_SEM〜#endifまでの内容が有
 > 効にならないのですが。
 > このようなやり方は正しいのでしょうか。誤りなのでしょうか。

コンフィギュレーションファイルに条件コンパイルを仕掛けるのは正しいやり方
だと思います。TOPPERS/JSPのサンプルプログラム(sample1.cfg)のCPU例外ハン
ドラ定義も条件コンパイルを使用しています。

ただし、現在のTOPPERS/JSP 1.3のコンフィギュレータは、内部でプリプロセッ
サ処理を行いません。またプリプロセッサを呼び出すこともしません。サンプル
プログラムでは、Makefile中に「コンフィギュレータに渡す前にC言語プリプロ
セッサを通過させる処理」が記述されています。

コンフィギュレーションファイルで条件コンパイルを行うには、次の条件が必要
です。
 1. 条件コンパイルのトリガとなる定義を含むファイルがある
 2. コンフィギュレーションファイル中にそのファイルを
     #include で引っ張ってくる行がある (INCLUDE文ではダメです)
 3. コンフィギュレーションをかける前にC言語プリプロセッサを起動している

可能性としては項目2.でしょうか。これだとすれば、sample.cfgに#include
"sample.h" という行を追加すればOKだと思います (ただしsample.hには静的API
に関係しない定義を読み込ませないようにする仕組みが必要です)。

以上 参考になれば幸いです。
--------
豊橋技術科学大学 情報工学系 組込みリアルタイムシステム研究室
  若林 隆行 (takayuki at ertl jp)