(toppers-users 716) RE: H8 用に TOPPERS/JSP 構築

Takayuki WAKABAYASHI takayuki @ ertl.ics.tut.ac.jp
2003年 1月 6日 (月) 15:47:44 JST


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

中村 勝之 [mailto:PBB01164 @ nifty.ne.jp] さんは書きました:
 > サンプルプログラムが下記の手順で作成できません。
(中略)
 > ../systask/serial.c:108:'SEM_SERIAL1_IN' undeclared here(not 
 > in a function)
 > ../systask/serial.c:108:initializer element is not constant
 > とエラーが表示されてしまいます。

以前に私が経験したものでは、「一度別ターゲット用にconfigureして、シリア
ルを外して、make dependした後で、もう一度configureしなおす」というものが
あります。

1回目のconfigureの後、「シリアルは要らないから」とsample1.cfgの#include
"serial.cfg"をコメントアウトします。ここでmake dependすると、この時刻で
kernel_cfg.cが生成されます。2回目のconfigureでsample1.cfgをコピーします
が、ファイルの日付が巻き戻って(もともとのsample1.cfgの日付になって)、結
果kernel_cfg.cより古くなり、kernel_cfg.cは最初のターゲット用に生成された
もののままになります。それが新しいターゲットのmakeに使用され、シリアル用
セマフォがないと怒られた覚えがあります (凡ミス)。
 #そのときはディレクトリごと削除しました。
 #configureでコピーしたファイルはtouchしたほうがいいですね。

あと参考情報ですが、プリプロセッサを通過させないでcfgファイルを直接食わ
せると同様の問題が起こりますが、現在のコンフィギュレータでは#includeを見
つけると「プリプロセッサを通しなさい」と警告するようになっているので、こ
の可能性は低そうです。ツールの位置が違うようなのでCPPなどのツールがうま
く実行されていない可能性もありますが、その場合には「タスクが一つも定義さ
れてない」or「構文解析エラー」が発生すると思います。

--------
  わかばやし たかゆき (mailto:takayuki @ ertl.ics.tut.ac.jp)