(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