TINETは、ITRON TCP/IP API仕様に準拠したプロトコルスタックです。 TINETを導入することで各種ネットワークAPIを利用することができるようになります。 TOPPERSの公式サイトから tinet-1.4.tar.gzをダウンロードしてきます。 TINETはデバイスドライバとして機能するので、JSPカーネルを展開した ディレクトリ内の指定の位置に展開する必要があります。以下のように jspディレクトリとtinet-1.4.tar.gzが同一階層にあればOKです。 また、TINETをアプリケーションで使用するにはバージョン3.79のmakefileが 必要になります。
TOPPERS-+-jsp/ | +-tinet-1.4.tar.gz
ダウンロードしてきたtinetを展開してTOPPERSと同じようにconfigureをコンパイルします。
$cd ~/TOPPERS $tar zxf tinet-1.4.tar.gz $cd jsp/tinet/cfg/ $make depend $make
とりあえず正常にTINETがインストールされたか、サンプルプログラムnserv をコンパイルしてみます。以下のようにnservディレクトリに移動してmakeしてみます。
$cd ~/TOPPERS/jsp/nserv $/usr/local/bin/make depend : : $/usr/local/bin/make : : ../tinet/netapp/tcp_echo_cli.c: In function `tcp_echo_cli_rcv_task': ../tinet/netapp/tcp_echo_cli.c:530: warning: dereferencing type-punned pointer will break strict-aliasing rules make: *** [tcp_echo_cli.o] Error 1
博多んもんの徒然なる日記で記述があるように、エラーがでるので ホームページを参考にさせていただいて、tinet/netapp/tcp_echo_cli.c 内を以下のように修正します。
530: if ((error = rcv_dtq(DTQ_TCP_ECHO_CLI_RCV, (VP_INT*)&cepid)) != E_OK) //530行目を次のように修正。 530: if ((error = rcv_dtq(DTQ_TCP_ECHO_CLI_RCV, (VP_INT*)(VP)&cepid)) != E_OK)
修正後もう一度makeして以下のようにコンパイルが完了すれば、成功です。
$/usr/local/bin/make : : h8300-hms-nm jsp.exe > jsp.syms h8300-hms-objcopy -O srec -S jsp.exe jsp.srec ../cfg/chk -m jsp.syms,jsp.srec \ -obj -cs jsp.chk -cpu h8 -system akih8_3069f