(toppers-users 244) SH1用ITRONのコンパイルとリンクがうまくいきません

Takayuki WAKABAYASHI takayuki @ ertl.ics.tut.ac.jp
2001年 8月 4日 (土) 18:54:00 JST


大柏さん

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

「(itron-club 1525) SH1用ITRONのコンパイルとリンクがうまくいきません」
でのご質問ですが、itron-clubよりもtoppers-usersの方が相応しいと思いますので、
こちらで対応させていただきます。

tetsuji okashiwa さんは書きました:
 > 大柏といいます。初めて書かせていただきます。
 > SH1用のITRONをダウンロードして、サンプルプログラムをcygwinでコ
 > ンパイルしたところ
 > TASK1,TASK2,TASK3,CYCHDR1についてundeclared(first use in this functioin)とエ
 > ラー
 > メッセージがでました。sample1.hで
 > #define TASK1  1
 > #define TASK2  2
 > #define TASK3  3
 > #define CYCHDR1  1
 > と書いたところエラーはでなくなりoption.txtはできましたがこれでいいんでしょう
 > か?IDは自動的に付与されたりは
 > しないのですか。
 > つぎにCQ出版の評価キットのexeGCCSH環境でm.batでリンクしたところ、
 > 'tmevt_up' 'tmevt_down' '_kernel_tmevt_insert' '_kernel_tmevt_delete'
 > 'isig_tim' の関数に
 > undefined reference to '_kernel_tmevt_heap' というエラーメッセージがでて
 > jsp.out ができません。
 > tmevt_heapを定義しているプログラムがないのでしょうか。教えて下さい。お願いし
 > ます。

文面を見る限りでは、コンフィギュレータが生成すべき次の2つのファイルが
正しく生成できていないのではないかと思います。
 kernel_id.h
    自動割当したカーネルオブジェクトIDを保持する
     #大柏さんがsample1.hに書かれたdefineと同じ物です
 kernel_cfg.c
    構成に依存するカーネル内部情報を保持する
     #_kernel_tmevt_heapはこの中に入っています

 #しかし、なんとなくですがこの状況でsample1.cをコンパイルすると
 #TASK1やCYCHDR1のFirst appearanceよりもkernel_id.hのFile not found
 #が先に出るような気がするので、ちょっと自信がありません

こちらでKZ_SH1およびTOKIWA_SH1用のカーネルをgnu環境で
生成してみましたが、正常に生成されます。

手順は次の通り
 1. ファイルを展開する
 2. コンフィギュレータを生成する
      % cd jsp/cfg; make
 3. 依存情報の生成を行なう
      % cd ../KZ_SH1; make depend
 4. カーネルを生成する
      % make
    #ここでプログラムヘッダが大きすぎるので-Nをつけよという
    #エラーが表示されました
 5. Makefileの修正
     jsp/KZ_SH1/Makefile:190
       修正前 $(CC) $(CFLAGS) $(LDFLAGS) -o jsp $(OBJS) $(LIBS)
       修正後 $(CC) $(CFLAGS) $(LDFLAGS) -o jsp $(OBJS) $(LIBS) -N
 6. 再度 makeを行なう
      % make
     #ここでsh-hitachi-elf-objcopyがjspというファイルはないという
     #エラーを出力しますが、モジュールは生成されています。

手順3のmake dependによって、コンフィギュレータにより前述の2つの
ファイルが生成されるはずです。ご確認ください。

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

//-------------------------------------------------
//Takayuki WAKABAYASHI (わかばやし たかゆき)
//  mailto: takayuki @ ertl.ics.tut.ac.jp
//-------------------------------------------------
//豊橋技術科学大学 工学研究科 情報工学専攻
//  組込みリアルタイムシステム研究室
//    Embedded and realtime system laboratory
//      Dept. of information and computer science
//        Toyohashi univ. of technology