Top > TOPPERS >TINETの導入

TINETの導入

 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