ホームページH8をMacで>その7a・TOPPERSに移行する(ネットワーク編)

その7a・TOPPERSに移行する(ネットワーク編)

目次
 目的と経緯

 以下は、マイコンボードのOSをMESからTOPPERS/JSPに移行した際の覚書です。

 ここでは、TOPPERS/JSPにネットワーク機能を追加するため、TINETというTCP/IPプロトコルスタックを組み込みます。
 TINETのインストールとテストについては以下の参考サイトを始め、いくつか事例がありますが、ウチではすんなりとは動きませんでした。

 参考サイト(1):組込みシステム開発技術セミナー TOPPERS/JSPカーネルを使ってみよう!組込みシステム開発技術セミナー TINETのコンパイル
  1. make tinetが機能しない。
  2. makeでコンパイルエラーが出て止まる。
  3. makeでリンクエラーが出て止まる。
  4. 実行時にウェブページが表示されない。
 どうも、情報が全般に古いバージョンについての記述であることが原因?のような感じです。


 TINETをビルドする

 TINETは、以下の公式サイトからダウンロードできます。

 参考サイト(2):TOPPERSプロジェクト/INDEX

 TINETは単独のモジュールとしてではなく、OSの一部として提供されています。
 そのため、JSPカーネルとTINETをマージする必要がありますが、Finder上で行おうとすると厄介なことになりますので、ターミナルを用いて行いました。
注)ここでは、/Users/hoge/Documents/h8-Toppers/ディレクトリ下で作業しています。必要であれば適宜変更して下さい。
(hogeは各自のユーザ名)
 ダウンロードしたtinet-1.4.tar.gzをh8-Toppersフォルダに移動後、
$ cd /Users/hoge/Documents/h8-Toppers/jsp
$ tar xvzf ../tinet-1.4.tar.gz
 これで、既存のJSPにTINET部分が追加されました。
 まずは、TINET用コンフィギュレータ tinet_cfg を作成します。
$ cd /Users/hoge/Documents/h8-Toppers/jsp/tinet/cfg
$ make
 次に、IPアドレス設定のため、/Users/hoge/Documents/h8-Toppers/jsp/nserv/tinet_app_config.h内の、以下の項目をカスタマイズしました。
IPV4_ADDR_LOCAL
IPV4_ADDR_LOCAL_MASK
IPV4_ADDR_DEFAULT_GW
 その後は、いくつかの事例紹介によると、
$ make tinet
$ make depend
$ make
しろ、とのことですが、まずmake tinetが、
make: *** No rule to make target `tinet'. Stop.
となってしまいした。
 マニュアルを見ると、ビルドの項目のところにmake tinetの記述がないので、これはそのまま放置。
 次のmake dependは特に問題なく終了するので、引き続き、makeすると、
../tinet/netapp/tcp_echo_cli.c:530: warning: dereferencing type-punned pointer will break strict-aliasing rules
make: *** [tcp_echo_cli.o] Error 1
で、止まってしまいました。
 ここは、参考サイト(3)の指示に従ってソースを修正すると、コンパイルは正常終了しました。

 参考サイト(3):博多んもんの徒然なる日記(メモメモ・・・の項)

 ですが、今度はリンク時に、以下のエラーで止まってしまいました。
make: *** [tcp_cre_rep.o] Error 1
 既存のmakeのバージョンを調べてみると、
hoge$ make -version
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for powerpc-apple-darwin9.0
と、これも参考サイト(3)での障害事例どおりなので、TINETは中断して、makeを3.79にダウングレードすることにしました。


 makeをダウングレードする

 makeのインストールは、以下のサイトを参考に行いました。

 参考サイト(4):自動化のためのGNU Make入門講座 - GNU Makeのインストール

 まずは、こちらのFTPサイトからmake-3.79.tar.gzをダウンロードします。
 展開場所はどこでもいいのですが、ここでは、h8-Toppersとしました。(こちらはFinder上でダブルクリック解凍してもOK。)
 手順としては、
$ cd /Users/hoge/Documents/h8-Toppers/make-3.79
$ ./configure
$ make install
とすればよい、とのことなのですが、./configureでエラーが出てしまいます。
checking host system type... configure: error: can not guess host type; you must specify one
 ホストを指定しろ、ということなので、バージョンを調べたときに表示されていた「powerpc-apple-darwin9.0」を付加して、
$ ./configure --host=powerpc-apple-darwin9.0
としたところ、うまくいきました。ですが、今度はmake installでエラーが出てしまいました。
 /usr/local下にディレクトリを作ろうとしてPermission deniedが出ているので、ここでsuになり、make installすると、うまくいきました。

 なお、ビルドされたmakeは/usr/local/binにできるので、/usr/binのmakeをこれに置き換えるのがアップグレード時の手順のようですが、今回のmake-3.79はTINETでしか使わないため、置き換えは行わずに、実行時にパスを付加することで対処することとしました。


 再びTINETをビルドする

 make-3.79を用いて、再度ビルドを行いました。
$ cd /Users/hoge/Documents/h8-Toppers/jsp/nserv
$ export PATH=/Applications/h8/Local/bin:${PATH}
$ /usr/local/bin/make tinet
$ /usr/local/bin/make depend
$ /usr/local/bin/make
注)2行目のexportは、gccの場所にパスを通すためのもので、あらかじめ設定してあれば不要。
注)3行目のmake tinetは、おまじない。(省略しても問題ないと思われる。)
 結果、jsp.srecができました。
 これで、ようやくビルドが完了しました。


 動作テスト

 ビルドしたjsp.srecをMac-H8ToppersからH8 用簡易モニタにアクセスして、RAMに転送しました。

 転送後、実行してみましたが、pingは通るものの、ウェブページが表示できません。
 ポート番号は80なので、設定したIPアドレスを指定するだけで表示される筈なのですが。

 マニュアルを読み返してみると「WWWサーバ・タスクを起動する」と書かれた、wtwというコマンドが目につきました。
 そこで、Mac-H8Toppersからwtwと打ち込んだ後、ブラウザで見てみると、…、表示されました。


 デフォルトで起動しないものなのでしょうかね?
 この辺は要調査です。


 今後の課題

 次は、SDカードIFを活用する意味でも、ファイルシステムにチャレンジしてみたいと思います。

 「その7b・TOPPERSに移行する(ファイルシステム編)」へ続く


 お世話になったサイト

 有用なソフトウェアおよび貴重な情報をご提供頂いている皆様に、お礼申し上げます。(以下、順不同)

 参考サイト(1):組込みシステム開発技術セミナー TOPPERS/JSPカーネルを使ってみよう!組込みシステム開発技術セミナー TINETのコンパイル
 参考サイト(2):TOPPERSプロジェクト/INDEX
 参考サイト(3):博多んもんの徒然なる日記(メモメモ・・・の項)
 参考サイト(4):自動化のためのGNU Make入門講座 - GNU Makeのインストール


 更新履歴

 2009.02.09 新規作成


[Home]  [MacSoft]  [Donation]  [History]