1.TINET の構成
TINET はITRON TCP/IP API 仕様に準拠したTCP/IP プロトコルスタックで、TOPPERS カーネルに組み込まれるのではなく、
TOPPERS カーネルと応用プログラムのミドルウェアである
2.TCPIPドライバ取得
http://www.apnet.co.jp/support/ms104-sh4_f.htmlでAN336 TOPPERS/JSPネットワークドライバをダウンロード
3.ドライバ(TINET)の実装
① make コマンドの差し替えを行う
Windows 上で「tools/make.exe」を「C:/cygwin/bin」に上書
② TINET 用サンプルアプリケーションのコピーを行う
Windows 上でサンプルアプリケーション「tinet-1.4_ms104sh4/echos」をMS104-SH4 用TOPPERS/JSP 用ディレクトリ「../embedded」にコピーします。
③ TINET の実装を行う
Windows 上でMS104-SH4 用TOPPERS/JSP ソースファイルディレクトリ「C:/cygwin/home/alpha/embedded/jsp」にプロセッサ・システム依存定義「tinet-1.4_ms104sh4/config」およびヘッダファイル「tinet-1.4_ms104sh4/include」を上書き、
※1
TINET ソースファイル「tinet-1.4_ms104sh4/tinet」をコピーする
④ TINET コンフィグレータのコンパイルを行う
Cygwin 上でMS104-SH4 用TOPPERS/JSP 用ディレクトリ以下「jsp/tinet/cfg」に移動し、「make」を実行するコンパイルが正常に終了すると、「tinet_cfg.exe」が作成される
$ cd /home/alpha/embedded/jsp/tinet/cfg
$ make
⑤ サンプルアプリケーションのコンパイルを行う
Cygwin 上でMS104-SH4 用TOPPERS/JSP 用ディレクトリ以下「echos」に移動し、「make depend」、「make」を実行
コンパイルが正常に終了すると、「jsp.bin」が作成される
$ cd /home/sun/embedded/echos
※2
$ make depend
$ make
問題点:(上記の※マーク箇所を説明)
※1
tinet-1.4を使うと、tinet内の.hと.cのファイルが無効のtokenがあるので(例えば:改行コードは”¥”で、今のGCCを認識しない)、
⑤でmake時にエラーが発生。
原因:tinet-1.4はzipのファイルで今のCygwinで展開できず、windowsで展開すると、ある符号のエンコードが変更されるのでGCCを認識しない。
解決方法:a)Cygwinまたlinuxで展開したほうがいい。
b)最新のtinet-1.5を使って、上記の問題が発生しない。
tinet-1.5をhttp://www.toppers.jp/tinet.htmlからダウンロード
今回はtinet-1.5を使い替える。
※2
makefile編集
makefileに”SH4_LIB = /usr/local/sh-hitachi-elf/sh-hitachi-elf/lib/ml/m4”のカーネルライブラリ(libkernel.a)のディレクトリ名を追加
共通コンパイルオプションの定義でLDFLAGS := -nostdlib -L$(SH4_LIB) $(LDFLAGS)に変更
4.サンプルアプリケーション(echos)の実行
1)サンプルアプリケーションの概要
2)MS104-SH4 とPC のネットワーク設定
MS104-SH4 ネットワーク設定
IP アドレス192.168.1.200
サブネットマスク255.255.255.0
ゲートウェイ192.168.1.1
DNS サーバ設定なし
PC ネットワーク設定
IP アドレス192.168.1.201
サブネットマスク255.255.255.0
ゲートウェイ192.168.11
DNS サーバ192.168.1.1
サンプルプロジェクトのtinet_app_config.hにネットワークを設定
3)jsp.binの伝送
4)jsp実行
5)SH4のIP状況のチェック
6)サンプルアプリケーションの動作確認
①SH4TCPIPハイパーターミナルを使用して、SH4に接続すると、SH4ハイパーターミナルにconnected from 192.168.1.201:4543というメッセージを表示
②ハイパーターミナル接線
*接線時、ポート番号が’7’を使用する。
プロジェクトのtinet_echos.cfgにポート番号を設定される。
/* TCP 受付口 */
TCP_CRE_REP (TCP_ECHO_SRV_REPID,
{ 0, { IPV4_ADDRANY, 7 } } );
③ハイパーターミナルにデータを入力すると、そのデータがMS104-SH4 ボードに送信され、そのままエコーバックしてくる。
例えば、「asdfg」とハイパーターミナルに対してキーボードから入力すると、エコーバックされてきたデータが
ハイパーターミナル上に「asdfg」と表示される。