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