TOPPERS ユーザの皆様 苫小牧高専、情報工学科の阿部です。 TINET リリース 1.2 に、重要な問題が発見されました。影響するのは リトルエンディアンのプロセッサです。このため、 TOPPERS プロジェクトと、宮城県産業技術センター様の ホームページから、TINET リリース 1.2.1 の配布を開始させていただきます。 URL は、 TINETとは(TOPPERS プロジェクト) http://www.toppers.jp/tinet.html ダウンロード(TOPPERS プロジェクト) http://www.toppers.jp/tinet-download.html ダウンロード(宮城県産業技術センター様) http://www.mit.pref.miyagi.jp/embedded/consortium/ となっております。 変更点等は、それぞれのドキュメントを参照してください。 皆様から、問題点だけではなく、ご要望もお待ちしております。 それでは、よろしくお願いいたします。 -- .\" 苫小牧工業高等専門学校 情報工学科 教授 阿部 司 .\" E-mail: abe@jo.tomakomai-ct.ac.jp TEL/FAX: 0144-67-8937
UW htonl(UW hl); | ホスト32ビットをネットワークオーダに変換 |
UH htons(UH hs); | ホスト16ビットをネットワークオーダに変換 |
UW ntohl(UW nl); | ネットワーク32ビットをホストオーダに変換 |
UH ntohs(UH ns); | ネットワーク16ビットをホストオーダに変換 |
ER mainercd(ER ercd); | エラーコードからメインエラーコードを取り出す |
ER subercd(ER ercd); | エラーコードからサブエラーコードを取り出す |
TCPのAPI | |
---|---|
TCP_CRE_REP(ID repid, {ATR repatr, {UW myipaddr, UH myportno}}); | TCP受付口の静的API |
TCP_CRE_CEP(ID cepid, {ATR cepatr, VP sbuf, INT sbufsz, VP rbuf, INT rbufsz, FP callback}); | TCP通信端点の静的API |
ER tcp_acp_cep(ID cepid, ID repid, T_IPV4EP *p_dstaddr, TMO tmout); | 接続要求待ち(受動オープン) |
ER tcp_con_cep(ID cepid, T_IPV4EP *p_myaddr, T_IPV4EP *p_dstaddr, TMO tmout); | 接続要求待ち(能動オープン) |
ER tcp_sht_cep(ID cepid); | データ送信の終了(FINが送出される) |
ER tcp_cls_cep(ID cepid, TMO tmout); | 通信端点のクローズ(本当にクローズするのを待つ) |
ER tcp_snd_dat(ID cepid, VP data, INT len, TMO tmout); | データの送信 |
ER tcp_rcv_dat(ID cepid, VP data, INT len, TMO tmout); | データの受信 |
ER tcp_get_buf(ID cepid, VP *p_buf, TMO tmout); | 送信バッファの取得(省コピーAPI) |
ER tcp_snd_buf(ID cepid, INT len); | バッファ内のデータの送信(省コピーAPI) |
ER tcp_rcv_buf(ID cepid, VP *p_buf, TMO tmout); | 受信データのバッファ取得(省コピーAPI) |
ER tcp_rel_buf(ID cepid, INT len); | 受信用バッファの開放(省コピーAPI) |
ER tcp_can_cep(ID cepid, FN fncd); | ペンディングしている処理のキャンセル |
ER callback(ID cepid, FN fncd, VP p_parblk); | コールバックルーチン |
UDPのAPI | |
---|---|
UDP_CRE_CEP(ID repid, {ATR cepatr, {UW myipaddr, UH myportno}, FP callback}); | UDP通信端点の静的API |
TINET独自API | |
---|---|
ER in4_add_ifaddr(T_IN4_ADDR addr, T_IN4_ADDR mask); | インターフェースにIPv4アドレスを設定 |
ER in4_add_route(int index, T_IN4_ADDR target, T_IN4_ADDR mask, T_IN4_ADDR gateway); | 静的経路表にエントリ設定 |
extern UB *ip2str(UB *buf, const T_IN4_ADDR *ipaddr); | IPv4アドレスを文字列に変換 |
const char *in_strtfn(FN fncd); | 機能コードを文字列に変換 |
extern UB *mac2str(UB *buf, UB *macaddr); | MACアドレスを文字列に変換 |
ファイル名 | 作成方法 | 備考 |
---|---|---|
config/$(CPU)/tinet_cpu_config.h | 新規作成 | プロセッサ依存。tinet_config.txt参照 |
config/$(CPU)/$(SYS)/tinet_sys_config.h | 新規作成 | システム依存。tinet_config.txt参照 |
$(APP_DIR)/tinet_app_config.h | 新規作成 | アプリ依存。tinet_config.txt参照 |
tinet/netdev/$(NIC)/tinet_nic_config.h | 新規作成 | インターフェース依存 |
config/$(CPU)/tinet_cpu_defs.h | 新規作成 | プロセッサ依存定義。tinet_defs.txt参照 |
tinet/netdev/$(NIC)/tinet_nic_defs.h | 新規作成 | インターフェース定義。tinet_defs.txt参照 |
$(APP_DIR)/tinet_$(UNAME).cfg | 新規作成 | コンフィギュレーションファイル |
$(APP_DIR)/route_cfg.c | 新規作成 | 静的ルーティング。nserv/route_cfg.c流用可 |
$(APP_DIR)/$(UNAME).c | 変更 | includeの追加(下記) |
$(APP_DIR)/$(UNAME).cfg | 変更 | TINETのインクルード(下記) |
$(APP_DIR)/Makefile | 変更 | TINETの追加(下記) |
$(APP_DIR)/tinet_cfg.c | 自動生成 | TINETのcfg |
$(APP_DIR)/tinet_kern.cfg | 自動生成 | TINETのカーネル |
$(APP_DIR)/tinet_id.h | 自動生成 | TINETのIDファイル |
#include "tinet_id.h" #include <netinet/in.h> #include <netinet/in_itron.h>
#include "../tinet/tinet.cfg"
# # ネットワークサービスの定義 # # ネットワークインタフェースの選択、何れか一つ選択する。 #NET_IF = loop #NET_IF = ppp NET_IF = ether #PPP_CFG_MODEM = true # PPP で、モデム接続の場合 # ネットワーク層の選択、何れか一つ選択する。 SUPPORT_INET4 = true #SUPPORT_INET6 = true # トランスポート層の選択 SUPPORT_TCP = true #SUPPORT_UDP = true # # TINET の Makefile.config のインクルード # include $(SRCDIR)/tinet/Makefile.config