ホームページ>H8をMacで>その7a・TOPPERSに移行する(ネットワーク編)
目次
その7a・TOPPERSに移行する(ネットワーク編)
目的と経緯
以下は、マイコンボードのOSをMESからTOPPERS/JSPに移行した際の覚書です。
ここでは、TOPPERS/JSPにネットワーク機能を追加するため、TINETというTCP/IPプロトコルスタックを組み込みます。
TINETのインストールとテストについては以下の参考サイトを始め、いくつか事例がありますが、ウチではすんなりとは動きませんでした。
参考サイト(1):組込みシステム開発技術セミナー TOPPERS/JSPカーネルを使ってみよう!(組込みシステム開発技術セミナー TINETのコンパイル)
どうも、情報が全般に古いバージョンについての記述であることが原因?のような感じです。
- make tinetが機能しない。
- makeでコンパイルエラーが出て止まる。
- makeでリンクエラーが出て止まる。
- 実行時にウェブページが表示されない。
TINETをビルドする
TINETは、以下の公式サイトからダウンロードできます。
参考サイト(2):TOPPERSプロジェクト/INDEX
TINETは単独のモジュールとしてではなく、OSの一部として提供されています。
そのため、JSPカーネルとTINETをマージする必要がありますが、Finder上で行おうとすると厄介なことになりますので、ターミナルを用いて行いました。
注)ここでは、/Users/hoge/Documents/h8-Toppers/ディレクトリ下で作業しています。必要であれば適宜変更して下さい。ダウンロードしたtinet-1.4.tar.gzをh8-Toppersフォルダに移動後、
(hogeは各自のユーザ名)
これで、既存のJSPにTINET部分が追加されました。$ cd /Users/hoge/Documents/h8-Toppers/jsp
$ tar xvzf ../tinet-1.4.tar.gz
まずは、TINET用コンフィギュレータ tinet_cfg を作成します。
次に、IPアドレス設定のため、/Users/hoge/Documents/h8-Toppers/jsp/nserv/tinet_app_config.h内の、以下の項目をカスタマイズしました。$ cd /Users/hoge/Documents/h8-Toppers/jsp/tinet/cfg
$ make
その後は、いくつかの事例紹介によると、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のバージョンを調べてみると、make: *** [tcp_cre_rep.o] Error 1
と、これも参考サイト(3)での障害事例どおりなので、TINETは中断して、makeを3.79にダウングレードすることにしました。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
makeをダウングレードする
makeのインストールは、以下のサイトを参考に行いました。
参考サイト(4):自動化のためのGNU Make入門講座 - GNU Makeのインストール
まずは、こちらのFTPサイトからmake-3.79.tar.gzをダウンロードします。
展開場所はどこでもいいのですが、ここでは、h8-Toppersとしました。(こちらはFinder上でダブルクリック解凍してもOK。)
手順としては、
とすればよい、とのことなのですが、./configureでエラーが出てしまいます。$ cd /Users/hoge/Documents/h8-Toppers/make-3.79
$ ./configure
$ make install
ホストを指定しろ、ということなので、バージョンを調べたときに表示されていた「powerpc-apple-darwin9.0」を付加して、checking host system type... configure: error: can not guess host type; you must specify one
としたところ、うまくいきました。ですが、今度はmake installでエラーが出てしまいました。$ ./configure --host=powerpc-apple-darwin9.0
/usr/local下にディレクトリを作ろうとしてPermission deniedが出ているので、ここでsuになり、make installすると、うまくいきました。
なお、ビルドされたmakeは/usr/local/binにできるので、/usr/binのmakeをこれに置き換えるのがアップグレード時の手順のようですが、今回のmake-3.79はTINETでしか使わないため、置き換えは行わずに、実行時にパスを付加することで対処することとしました。
再びTINETをビルドする
make-3.79を用いて、再度ビルドを行いました。
結果、jsp.srecができました。$ cd /Users/hoge/Documents/h8-Toppers/jsp/nserv
注)2行目のexportは、gccの場所にパスを通すためのもので、あらかじめ設定してあれば不要。
$ export PATH=/Applications/h8/Local/bin:${PATH}
$ /usr/local/bin/make tinet
$ /usr/local/bin/make depend
$ /usr/local/bin/make
注)3行目のmake tinetは、おまじない。(省略しても問題ないと思われる。)
これで、ようやくビルドが完了しました。
動作テスト
ビルドした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]