1 | TCP/IP プロトコルスタック(TINET)
|
---|
2 | サンプルアプリケーション(リリース 1.7)[2017/5/15]
|
---|
3 |
|
---|
4 | 1. サンプルアプリケーション
|
---|
5 |
|
---|
6 | サンプルとして、以下のアプリケーションを提供している。【】内は【アプ
|
---|
7 | リケーション名、対応するネットワーク層】である。IPv64 はネットワーク層
|
---|
8 | として IPv6 と IPv4 の両方を使用することを意味しており、 IPv64m は、
|
---|
9 | IPv4 は IPv6 の IPv4 射影アドレスにより実装している。
|
---|
10 |
|
---|
11 | (1) IPv6 TCP ECHO サーバ【echos6、IPv6】
|
---|
12 | ネットワークアプリケーションに必要な各ファイルの設定方法の
|
---|
13 | 参考となる、 TCP エコーサーバ機能のみのシンプルなアプリケーショ
|
---|
14 | ンである。
|
---|
15 | (2) IPv4 TCP ECHO サーバ【echos4、IPv4】
|
---|
16 | ネットワークアプリケーションに必要な各ファイルの設定方法の
|
---|
17 | 参考となる、 TCP エコーサーバ機能のみのシンプルなアプリケーショ
|
---|
18 | ンである。
|
---|
19 | (3) IPv6 UDP ECHO サーバ【usrv6、IPv6】
|
---|
20 | ネットワークアプリケーションに必要な各ファイルの設定方法の
|
---|
21 | 参考となる、 UDP エコーサーバ機能のみのシンプルなアプリケーショ
|
---|
22 | ンである。
|
---|
23 | (4) IPv4 UDP ECHO サーバ【usrv4、IPv4】
|
---|
24 | ネットワークアプリケーションに必要な各ファイルの設定方法の
|
---|
25 | 参考となる、 UDP エコーサーバ機能のみのシンプルなアプリケーショ
|
---|
26 | ンである。
|
---|
27 | (5) クライアントサーバ・セット【nserv、IPv64/IPv6/IPv64m/IPv4】
|
---|
28 | 以下に示すサーバが提供されており、 必要に応じて組み込むサー
|
---|
29 | バを選択できる。
|
---|
30 |
|
---|
31 | [1] WWW サーバ
|
---|
32 | [2] TCP エコーサーバ
|
---|
33 | [3] UDP エコーサーバ
|
---|
34 | [4] TCP ディスカードサーバ
|
---|
35 | [5] 簡易コンソール
|
---|
36 |
|
---|
37 | また、クライアントとしては以下の機能が提供されており、 必要に
|
---|
38 | 応じて組み込むクライアントを選択できる。
|
---|
39 |
|
---|
40 | [1] TCP エコークライアント
|
---|
41 | [2] UDP エコークライアント
|
---|
42 | [3] TCP ディスカードクライアント
|
---|
43 | [4] UDP ディスカードクライアント
|
---|
44 | [5] DNS リゾルバー
|
---|
45 | [6] DHCPv6 クライアント
|
---|
46 | [7] DHCPv4 クライアント
|
---|
47 | [8] ping
|
---|
48 |
|
---|
49 | (6) TOPPERS ASP/JSP サンプルプログラム sample1 のネットワーク対応
|
---|
50 | プログラム【sample1n、IPv6/IPv4】
|
---|
51 | TOPPERS/ASP と TOPPERS/JSP のサンプルプログラム sample1 の
|
---|
52 | ネットワーク対応プログラムである。telnet で接続すると、シリア
|
---|
53 | ルの入出力を引き継いで実行する。切断すると、 元のシリアルに入
|
---|
54 | 出力を戻す。
|
---|
55 | (7) 最小構成サーバ【minsv、IPv4】
|
---|
56 | WWW サーバ・タスクと TCP エコーサーバ・タスクのみからなる最
|
---|
57 | 小構成のサーバである。H8/3069F が内蔵している RAM(16K バイト)
|
---|
58 | と ROM(512K バイト)に収まり、外部メモリは不要である。現在は、
|
---|
59 | 品川通信計装サービス製 NKEV-010H8(TOPPERS/JSP リリース 1.4.2
|
---|
60 | のみ)と秋月電子通商製 H8/3069F(TOPPERS/JSP リリース 1.4.1
|
---|
61 | 以降と TOPPERS/ASP)のシステムに対応している。
|
---|
62 |
|
---|
63 | 2. サンプルアプリケーションの構築
|
---|
64 |
|
---|
65 | TINET サンプルアプリケーションの構築は、 TOPPERS/ASP 環境と
|
---|
66 | TOPPERS/JSP 環境におけるのサンプルアプリケーションの構築とほぼ同じであ
|
---|
67 | る。
|
---|
68 |
|
---|
69 | (1) TINET コンフィギュレーションスクリプトの実行
|
---|
70 | TINET サンプルアプリケーションの構築用ディレクトリを作成し、
|
---|
71 | TINET コンフィギュレーションスクリプトを実行する。
|
---|
72 |
|
---|
73 | [1] TOPPERS/ASP 用 TINET コンフィギュレーションスクリプトの
|
---|
74 | 実行
|
---|
75 |
|
---|
76 | $ mkdir NETOBJ
|
---|
77 | $ cd NETOBJ
|
---|
78 | $ perl ../tinet/tinet_asp_configure -T akih8_3069f_gcc -A echos6
|
---|
79 | -i ether -v if_ed -n inet6 -s tcp
|
---|
80 |
|
---|
81 | オプション(-T、-A、-a、-U、-L、-f、-D、-l、-t、-d、 -r、
|
---|
82 | -p、 -g)は、TOPPERS/ASP コンフィギュレーションスクリプ
|
---|
83 | トと同じである。 TOPPERS/ASP カーネルユーザーズマニュア
|
---|
84 | ル(user.txt)の「 5.コンフィギュレーションスクリプト
|
---|
85 | の使い方 」を参照すること。その他のオプションについては、
|
---|
86 | 「9.2 TINET コンフィギュレーションスクリプトのオプショ
|
---|
87 | ン 」を参照すること。
|
---|
88 | アプリケーションとカーネルを別々に構築する方法につい
|
---|
89 | ては、 TOPPERS/ASP 環境におけるサンプルアプリケーション
|
---|
90 | の構築と同じである。 TOPPERS/ASP カーネルユーザーズマニュ
|
---|
91 | アル(user.txt)の「3.5 アプリケーションとカーネルを別
|
---|
92 | 々に構築する方法 」を参照すること。
|
---|
93 | [2] TOPPERS/JSP 用 TINET コンフィギュレーションスクリプトの実行
|
---|
94 |
|
---|
95 | $ mkdir NETOBJ
|
---|
96 | $ cd NETOBJ
|
---|
97 | $ perl ../tinet/tinet_jsp_configure -C h8 -S akih8_3069f -A echos6
|
---|
98 | -i ether -v if_ed -n inet6 -s tcp
|
---|
99 |
|
---|
100 | オプション(-C、 -S、-T、-A、-U、-L、-D、-P、-p、-l)は、
|
---|
101 | TOPPERS/JSP コンフィギュレーションスクリプトと同じであ
|
---|
102 | る。 TOPPERS/JSP カーネルユーザーズマニュアル(user.txt)
|
---|
103 | の「 7.6 コンフィギュレーションスクリプトの使い方 」を
|
---|
104 | 参照すること。 その他のオプションについては、「TINET コ
|
---|
105 | ンフィギュレーションスクリプトのオプション 」を参照すること。
|
---|
106 | アプリケーションとカーネルを別々に構築する方法につい
|
---|
107 | ては、 TOPPERS/JSP 環境におけるサンプルアプリケーション
|
---|
108 | の構築と同じである。 TOPPERS/JSP カーネルユーザーズマニュ
|
---|
109 | アル(user.txt)の「7.5 アプリケーションとカーネルを別
|
---|
110 | 々に構築する方法 」を参照すること。
|
---|
111 |
|
---|
112 | 上記の例で、TOPPERS/ASP 環境と TOPPERS/JSP 環境のいずれの場
|
---|
113 | 合も、ディレクトリ NETOBJ に以下のファイルが生成される。
|
---|
114 |
|
---|
115 | Makefile Makefile
|
---|
116 | echos6.c サンプルプログラム本体
|
---|
117 | echos6.h サンプルプログラムのヘッダファイル
|
---|
118 | echos6.cfg サンプルプログラム用 ASP コンフィ
|
---|
119 | ギュレーションファイル
|
---|
120 | tinet_echos6.cfg サンプルプログラム用 TINET コンフィ
|
---|
121 | ギュレーションファイル
|
---|
122 | route_cfg.c サンプルプログラム用ルーティング表
|
---|
123 | tinet_app_config.h サンプルプログラム用コンパイル時指
|
---|
124 | 定コンフィギュレーション
|
---|
125 |
|
---|
126 | 必要であれば、 Makefile を修正する。 修正については、
|
---|
127 | TOPPERS/ASP 環境では「7.3 アプリケーションの Makefile」、
|
---|
128 | TOPPERS/JSP 環境では「8.3 アプリケーションの Makefile」を参照
|
---|
129 | すること。
|
---|
130 | 以下のサンプルアプリケーションでは、構築上の注意がある。 各
|
---|
131 | 章を参照すること。
|
---|
132 |
|
---|
133 | [1] 「9.3 クライアントサーバ・セット」
|
---|
134 | [2] 「9.4 TOPPERS ASP/JSP サンプルプログラム sample1 の
|
---|
135 | ネットワーク対応プログラム」
|
---|
136 | [3] 「9.5 最小構成サーバ」
|
---|
137 |
|
---|
138 | (2) tinet_app_config.h の設定
|
---|
139 | IPv4 の場合、 IP アドレス、サブネットマスク、ディフォルトゲー
|
---|
140 | トウェイを指定する。
|
---|
141 |
|
---|
142 | [1] IPV4_ADDR_LOCAL
|
---|
143 | 自分の IP アドレスを指定する。ただし、 PPP を使用すると
|
---|
144 | き、相手に割当ててもらう場合は 0 を指定すること。なお、
|
---|
145 | PPP は参考実装である。
|
---|
146 | [2] IPV4_ADDR_REMOTE
|
---|
147 | 相手の IP アドレスを指定する。 ただし、PPP を使用すると
|
---|
148 | き、相手に割当ててもらう場合は 0 を指定すること。なお、
|
---|
149 | PPP は参考実装である。
|
---|
150 | [3] IPV4_ADDR_LOCAL_MASK
|
---|
151 | サブネットマスクを指定する。ただし、 ネットワークインタ
|
---|
152 | フェースがイーサネットのとき有効である。
|
---|
153 | [4] IPV4_ADDR_DEFAULT_GW
|
---|
154 | ディフォルトゲートウェイを指定する。ただし、 ネットワー
|
---|
155 | クインタフェースがイーサネットのとき有効である。
|
---|
156 |
|
---|
157 | (3) route_cfg.c の設定
|
---|
158 | ネットワークインタフェースがイーサネットの場合は、 ルーティ
|
---|
159 | ング表 routing_tbl を設定する。ただし、ディフォルトゲートウェ
|
---|
160 | イのみのシンプルなネットワークでは、 変更する必要はない。
|
---|
161 |
|
---|
162 | (4) サンプルプログラムのコンパイル・リンク
|
---|
163 | TINET サンプルアプリケーションの構築用ディレクトリで、 サン
|
---|
164 | プルプログラムをコンパイル・リンクする。 コンパイル・リンクの
|
---|
165 | 方法を以下に示す。
|
---|
166 |
|
---|
167 | $ make depend
|
---|
168 | $ make
|
---|
169 |
|
---|
170 | 3. TINET コンフィギュレーションスクリプトのオプション
|
---|
171 |
|
---|
172 | 3. 1 TOPPERS/APS 用 TINET コンフィギュレーションスクリプトのオプション
|
---|
173 |
|
---|
174 | TOPPERS/ASP 環境では、オプション(-T、-A、-a、-U、-L、-f、-D、-l、-d、
|
---|
175 | -r、-p、-g)は、TOPPERS/ASP コンフィギュレーションスクリプトと同じであ
|
---|
176 | る。 TOPPERS/ASP 用 TINET コンフィギュレーションスクリプト特有のオプショ
|
---|
177 | ンを以下に示す。
|
---|
178 |
|
---|
179 | -e <tinetdir> TINET のソースの置かれているディレクトリ
|
---|
180 | -i <net_if> ネットワークインタフェース(必須)
|
---|
181 | <net_if> には ether、ppp、loop の何れかを
|
---|
182 | 指定する。
|
---|
183 |
|
---|
184 | -v <net_dev> イーサネット・ディバイスドライバ
|
---|
185 | (ネットワークインタフェースに ether を指
|
---|
186 | 定した場合は必須)
|
---|
187 | -n <net_proto> ネットワーク層プロトコル(必須)
|
---|
188 | <net_proto> に指定できるプロトコルを以下
|
---|
189 | に示す。
|
---|
190 |
|
---|
191 | inet6 IPv6 のみ
|
---|
192 | inet4 IPv4 のみ
|
---|
193 | inet6/inet4 IPv6/IPv4 の両方
|
---|
194 | (デュアルスタック)
|
---|
195 | inet6m IPv6 のみで、 IPv4 射
|
---|
196 | 影アドレス指定可能
|
---|
197 | inet6m/inet4 IPv6/IPv4 の両方と
|
---|
198 | IPv4 射影アドレス指定可能
|
---|
199 |
|
---|
200 | -s <trans_proto> トランスポート層プロトコル(必須)
|
---|
201 | <trans_proto> には tcp、udp、tcp/udp の何
|
---|
202 | れかを指定する。
|
---|
203 | -t <templatedir> TINET テンプレートディレクトリ
|
---|
204 | デフォルトは tinet/asp_sample である。 な
|
---|
205 | お、 TOPPERS/ASP の同じオプションのデフォ
|
---|
206 | ルトは sample である。
|
---|
207 | -m <asptemplatedir> ASP テンプレートディレクトリ
|
---|
208 | デフォルトは sample である。
|
---|
209 |
|
---|
210 | 3. 2 TOPPERS/JPS 用 TINET コンフィギュレーションスクリプトのオプション
|
---|
211 |
|
---|
212 | TOPPERS/JSP 環境では、オプション(-C、-S、-T、-A、-U、-L、-D、-P、-p、
|
---|
213 | -l)は、 TOPPERS/JSP コンフィギュレーションスクリプトと同じである。
|
---|
214 | TOPPERS/ASP 用 TINET コンフィギュレーションスクリプト特有のオプション
|
---|
215 | を以下に示す。
|
---|
216 |
|
---|
217 | -e <tinetdir> TINET のソースの置かれているディレクトリ
|
---|
218 | -i <net_if> ネットワークインタフェース(必須)
|
---|
219 | <net_if> には ether、ppp、loop の何れかを
|
---|
220 | 指定する。
|
---|
221 | -v <net_dev> イーサネット・ディバイスドライバ
|
---|
222 | (ネットワークインタフェースに ether を指
|
---|
223 | 定した場合は必須)
|
---|
224 | -n <net_proto> ネットワーク層プロトコル(必須)
|
---|
225 | <net_proto> に指定できるプロトコルを以下
|
---|
226 | に示す。
|
---|
227 |
|
---|
228 | inet6 IPv6 のみ
|
---|
229 | inet4 IPv4 のみ
|
---|
230 | inet6/inet4 IPv6/IPv4 の両方
|
---|
231 | (デュアルスタック)
|
---|
232 | inet6m IPv6 のみで、 IPv4 射
|
---|
233 | 影アドレス指定可能
|
---|
234 | inet6m/inet4 IPv6/IPv4 の両方と
|
---|
235 | IPv4 射影アドレス指定
|
---|
236 | 可能
|
---|
237 |
|
---|
238 | -s <trans_proto> トランスポート層プロトコル(必須)
|
---|
239 | <trans_proto> には tcp、udp、tcp/udp の何
|
---|
240 | れかを指定する。
|
---|
241 | -d <dir> TINET テンプレートディレクトリ
|
---|
242 | デフォルトは tinet/jsp_sample である。 な
|
---|
243 | お、 TOPPERS/JSP の同じオプションのデフォ
|
---|
244 | ルトは sample である。
|
---|
245 | -m <jsptemplatedir> JSP テンプレートディレクトリ
|
---|
246 | デフォルトは sample である。
|
---|
247 |
|
---|
248 | 4. クライアントサーバ・セットの構築
|
---|
249 |
|
---|
250 | 以下に示すサーバが提供されており、必要に応じて組み込むサーバを選択で
|
---|
251 | きる。()内は、tinet/netapp 内にあるソースファイル名である。なお、 ディ
|
---|
252 | フォルトで、 ITRON TCP/IP API 仕様の TCP と UDP の拡張機能が組込まれて
|
---|
253 | いるので、「9.3.2 簡易コンソールのコマンド 」の wtw (wtw4)、wte (wte4)、
|
---|
254 | wue、wtd コマンドで、それぞれのサーバ・タスクを起動する必要がある。
|
---|
255 |
|
---|
256 | [1] WWW サーバ・タスク(wwws.c)
|
---|
257 | ルートページの他に、ネットワーク統計情報を表示する 2 ページか
|
---|
258 | ら構成され、タスク数は最大 2 である。
|
---|
259 | [2] TCP エコーサーバ・タスク
|
---|
260 | tcp_echo_srv1.c と tcp_echo_srv2.c のどちらかを選択する。
|
---|
261 | tcp_echo_srv1.c を選択した場合、省コピー API を使用して、ノン
|
---|
262 | ブロッキングコールを使用しない時は、タスク数を 8 まで指定可能
|
---|
263 | である。
|
---|
264 | [3] UDP エコーサーバ・タスク(udp_echo_srv.c)
|
---|
265 | [4] TCP ディスカードサーバ・タスク(tcp_discard_srv.c)
|
---|
266 | [5] 簡易コンソール・タスク(dbg_cons.c)
|
---|
267 | シリアルインタフェースだけでなく、telnet プロトコルを使用して、
|
---|
268 | ネットワーク経由で利用することも可能である。telnet で接続する
|
---|
269 | と、シリアルの入出力を引き継いで実行する。切断すると、 元のシ
|
---|
270 | リアルに入出力を戻す。 ただし、TCP のノンブロッキングコールを
|
---|
271 | 組込む必要がある。
|
---|
272 |
|
---|
273 | また、クライアントとしては以下の機能が提供されており、必要に応じて組み
|
---|
274 | 込むクライアントを選択できる。
|
---|
275 |
|
---|
276 | [1] TCP エコークライアント・タスク(tcp_echo_cli.c)
|
---|
277 | [2] UDP エコークライアント・タスク(udp_echo_cli.c)
|
---|
278 | [3] TCP ディスカードクライアント・タスク(tcp_discard_cli.c)
|
---|
279 | [4] UDP ディスカードクライアント・タスク(udp_discard_cli.c)
|
---|
280 | [5] ping(ping.c)
|
---|
281 |
|
---|
282 | 4. 1 Makefile の設定
|
---|
283 |
|
---|
284 | (1) 組込む機能の選択
|
---|
285 |
|
---|
286 | [1] TCP の受信ウィンドバッファの省コピー機能
|
---|
287 | サンプルアプリケーションで、 TCP の受信ウィンドバッファ
|
---|
288 | の省コピー機能を組込む場合は、
|
---|
289 |
|
---|
290 | TCP_CFG_RWBUF_CSAVE_ONLY = true
|
---|
291 |
|
---|
292 | または、
|
---|
293 |
|
---|
294 | TCP_CFG_RWBUF_CSAVE = true
|
---|
295 |
|
---|
296 | を選択する。 TCP_CFG_RWBUF_CSAVE_ONLY を選択すると、TCP
|
---|
297 | 通信端点を生成する静的 API である TCP_CRE_CEP で、 受信
|
---|
298 | ウィンドバッファ rbuf に、 メモリアドレスを指定しても、
|
---|
299 | プロトコルスタックは、この指定を無視して、 TCP の受信ウィ
|
---|
300 | ンドバッファの省コピー機能により処理する。 また、
|
---|
301 | TCP_CFG_RWBUF_CSAVE を選択すると、TCP_CRE_CEP で、 受信
|
---|
302 | ウィンドバッファ rbuf に、 NADR(NULL)を指定したときの
|
---|
303 | み、プロトコルスタックは TCP の受信ウィンドバッファの省
|
---|
304 | コピー機能により処理する。
|
---|
305 |
|
---|
306 | [2] TCP の送信ウィンドバッファの省コピー機能
|
---|
307 | サンプルアプリケーションで、 TCP の送信ウィンドバッファ
|
---|
308 | の省コピー機能を組込む場合は、
|
---|
309 |
|
---|
310 | TCP_CFG_SWBUF_CSAVE_ONLY = true
|
---|
311 |
|
---|
312 | または、
|
---|
313 |
|
---|
314 | TCP_CFG_SWBUF_CSAVE = true
|
---|
315 |
|
---|
316 | を選択する。 TCP_CFG_SWBUF_CSAVE_ONLY を選択すると、TCP
|
---|
317 | 通信端点を生成する静的 API である TCP_CRE_CEP で、 送信
|
---|
318 | ウィンドバッファ rbuf に、 メモリアドレスを指定しても、
|
---|
319 | プロトコルスタックは、この指定を無視して、 TCP の送信ウィ
|
---|
320 | ンドバッファの省コピー機能により処理する。 また、
|
---|
321 | TCP_CFG_SWBUF_CSAVE を選択すると、TCP_CRE_CEP で、 送信
|
---|
322 | ウィンドバッファ rbuf に、 NADR(NULL)を指定したときの
|
---|
323 | み、プロトコルスタックは TCP の送信ウィンドバッファの省
|
---|
324 | コピー機能により処理する。
|
---|
325 |
|
---|
326 | [3] TCP のノンブロッキングコール
|
---|
327 | サンプルアプリケーションで、 TCP のノンブロッキングコー
|
---|
328 | ルを組込む場合は、
|
---|
329 |
|
---|
330 | TCP_CFG_NON_BLOCKING = true
|
---|
331 |
|
---|
332 | を選択する。
|
---|
333 |
|
---|
334 | [4] UDP のノンブロッキングコール
|
---|
335 | サンプルアプリケーションで、 UDP のノンブロッキングコー
|
---|
336 | ルを組込む場合は、
|
---|
337 |
|
---|
338 | UDP_CFG_NON_BLOCKING = true
|
---|
339 |
|
---|
340 | を選択する。
|
---|
341 |
|
---|
342 | [5] ITRON TCP/IP API 仕様の TCP の拡張機能
|
---|
343 | サンプルアプリケーションで、 ITRON TCP/IP API 仕様の
|
---|
344 | TCP の拡張機能を組込む場合は、
|
---|
345 |
|
---|
346 | TCP_CFG_EXTENTIONS = true
|
---|
347 |
|
---|
348 | を選択する。ディフォルトで true に設定されている。
|
---|
349 |
|
---|
350 | [6] ITRON TCP/IP API 仕様の UDP の拡張機能
|
---|
351 | サンプルアプリケーションで、 ITRON TCP/IP API 仕様の
|
---|
352 | UDP の拡張機能を組込む場合は、
|
---|
353 |
|
---|
354 | UDP_CFG_EXTENTIONS = true
|
---|
355 |
|
---|
356 | を選択する。ディフォルトで true に設定されている。
|
---|
357 |
|
---|
358 | (2) ノンブロッキングコール、ITRON TCP/IP API 仕様の拡張機能と省コ
|
---|
359 | ピー API の選択
|
---|
360 |
|
---|
361 | [1] TCP のノンブロッキングコール
|
---|
362 | サンプルアプリケーションで、 TCP のノンブロッキングコー
|
---|
363 | ルを使用する場合は、
|
---|
364 |
|
---|
365 | USE_TCP_NON_BLOCKING = true
|
---|
366 |
|
---|
367 | を選択する。
|
---|
368 |
|
---|
369 | [2] ITRON TCP/IP API 仕様の TCP の拡張機能
|
---|
370 | サンプルアプリケーションで、 ITRON TCP/IP API 仕様の
|
---|
371 | TCP の拡張機能を使用する場合は、
|
---|
372 |
|
---|
373 | USE_TCP_EXTENTIONS = true
|
---|
374 |
|
---|
375 | を選択する。ディフォルトで true に設定されている。
|
---|
376 |
|
---|
377 | [3] 省コピー API
|
---|
378 | サンプルアプリケーションで、省コピー API を使用する場合は、
|
---|
379 |
|
---|
380 | USE_COPYSAVE_API = true
|
---|
381 |
|
---|
382 | を選択する。
|
---|
383 |
|
---|
384 | [4] UDP のノンブロッキングコール
|
---|
385 | サンプルアプリケーションで、 UDP のノンブロッキングコー
|
---|
386 | ルを使用する場合は、
|
---|
387 |
|
---|
388 | USE_UDP_NON_BLOCKING = true
|
---|
389 |
|
---|
390 | を選択する。 ただし、 コールバックとは同時に使用できない。
|
---|
391 |
|
---|
392 | [5] ITRON TCP/IP API 仕様の UDP の拡張機能
|
---|
393 | サンプルアプリケーションで、 ITRON TCP/IP API 仕様の
|
---|
394 | UDP の拡張機能を使用する場合は、
|
---|
395 |
|
---|
396 | USE_UDP_EXTENTIONS = true
|
---|
397 |
|
---|
398 | を選択する。ディフォルトで true に設定されている。
|
---|
399 |
|
---|
400 | [6] UDP のコールバック
|
---|
401 | サンプルアプリケーションで、 UDP のコールバックを使用
|
---|
402 | する場合は、
|
---|
403 |
|
---|
404 | USE_UDP_CALL_BACK = true
|
---|
405 |
|
---|
406 | を選択する。ただし、 ノンブロッキングコールとは同時に使
|
---|
407 | 用できない。
|
---|
408 |
|
---|
409 | (3) 共通サーバプログラムの選択
|
---|
410 |
|
---|
411 | [1] WWW サーバプログラムを使用する場合は、 以下の行を有効にする。
|
---|
412 |
|
---|
413 | USE_WWW_SRV = ture
|
---|
414 |
|
---|
415 | [2] WWW サーバプログラム(IPv4 優先接続待ち)を使用する場合
|
---|
416 | は、以下の行を有効にする。
|
---|
417 |
|
---|
418 | USE_WWW4_SRV = ture
|
---|
419 |
|
---|
420 | [3] UDP エコーサーバプログラムを使用する場合は、 以下の行を
|
---|
421 | 有効にする。
|
---|
422 |
|
---|
423 | USE_UDP_ECHO_SRV = ture
|
---|
424 |
|
---|
425 | [4] UDP エコーサーバプログラム(IPv4 優先接続待ち)を使用す
|
---|
426 | る場合は、以下の行を有効にする。
|
---|
427 |
|
---|
428 | USE_UDP4_ECHO_SRV = ture
|
---|
429 |
|
---|
430 | [5] TCP ディスカードサーバプログラムを使用する場合は、 以下
|
---|
431 | の行を有効にする。
|
---|
432 |
|
---|
433 | USE_TCP_DISCARD_SRV = ture
|
---|
434 |
|
---|
435 | [6] 送受信タスク同一型の TCP エコーサーバプログラムを使用す
|
---|
436 | る場合は、以下の行を有効にする。
|
---|
437 |
|
---|
438 | TCP_ECHO_SRV = tcp_echo_srv1
|
---|
439 |
|
---|
440 | [7] 送受信タスク分離型の TCP エコーサーバプログラムを使用す
|
---|
441 | る場合は、以下の行を有効にする。
|
---|
442 |
|
---|
443 | TCP_ECHO_SRV = tcp_echo_srv2
|
---|
444 |
|
---|
445 | [8] TCP エコーサーバプログラム(IPv4 優先接続待ち)を使用す
|
---|
446 | る場合は、以下の行を有効にする。ただし、 送受信タスク同
|
---|
447 | 一型の TCP エコーサーバプログラムを使用する場合のみ有効
|
---|
448 | である。
|
---|
449 |
|
---|
450 | USE_TCP4_ECHO_SRV = ture
|
---|
451 |
|
---|
452 | [9] シリアル経由のみコンソール入出力を使用する場合は、 以下
|
---|
453 | の行を有効にする。
|
---|
454 |
|
---|
455 | USE_DBG_CONS = true
|
---|
456 |
|
---|
457 | [10] シリアルとネットワーク経由のコンソール入出力を使用する
|
---|
458 | 場合は、以下の行を有効にする。
|
---|
459 |
|
---|
460 | USE_NET_CONS = true
|
---|
461 |
|
---|
462 | ただし、 ノンブロッキングコールを組込んだ時のみ有効である。
|
---|
463 |
|
---|
464 | (4) 共通クライアントプログラムの選択
|
---|
465 |
|
---|
466 | [1] TCP エコークライアントプログラムを使用する場合は、 以下
|
---|
467 | の行を有効にする。
|
---|
468 |
|
---|
469 | USE_TCP_ECHO_CLI = ture
|
---|
470 |
|
---|
471 | [2] TCP エコークライアントプログラムで、IPv4 アドレスを指定
|
---|
472 | した時、tcp_con_cep を呼出し、IPv4 により接続する場合は
|
---|
473 | 以下の行を有効にする。 なお、 ネットワーク層の選択で、
|
---|
474 | IPv6 と IPv4 の両方を指定した場合、この指定を行わないと
|
---|
475 | tcp_con_cep ではなく、 tcp6_con_cep を呼出す。 従って、
|
---|
476 | API_CFG_IP4MAPPED_ADDR を指定していないと、E_PAR が返さ
|
---|
477 | れるが、tcp6_con_cep のテストのためであり、問題はない。
|
---|
478 |
|
---|
479 | USE_TCP4_ECHO_CLI = ture
|
---|
480 |
|
---|
481 | [3] UDP エコークライアントプログラムを使用する場合は、 以下
|
---|
482 | の行を有効にする。
|
---|
483 |
|
---|
484 | USE_UDP_ECHO_CLI = ture
|
---|
485 |
|
---|
486 | [4] UDP エコークライアントプログラム(IPv4 優先接続待ち)を
|
---|
487 | 使用する場合は、 以下の行を有効にする。
|
---|
488 |
|
---|
489 | USE_UDP4_ECHO_CLI = ture
|
---|
490 |
|
---|
491 | [5] TCP ディスカードクライアントプログラムを使用する場合は、
|
---|
492 | 以下の行を有効にする。
|
---|
493 |
|
---|
494 | USE_TCP_DISCARD_CLI = ture
|
---|
495 |
|
---|
496 | [6] UDP ディスカードクライアントプログラムを使用する場合は、
|
---|
497 | 以下の行を有効にする。
|
---|
498 |
|
---|
499 | USE_UDP_DISCARD_CLI = ture
|
---|
500 |
|
---|
501 | [7] DHCPv6 クライアントプログラムを使用する場合は、以下の行
|
---|
502 | を有効にする。
|
---|
503 |
|
---|
504 | USE_DHCP6_CLI = true
|
---|
505 |
|
---|
506 | [8] DHCPv4 クライアントプログラムを使用する場合は、以下の行
|
---|
507 | を有効にする。
|
---|
508 |
|
---|
509 | USE_DHCP4_CLI = true
|
---|
510 |
|
---|
511 | [9] DNS リゾルバーを使用する場合は、以下の行を有効にする。
|
---|
512 |
|
---|
513 | USE_RESOLVER = true
|
---|
514 |
|
---|
515 | [10] PING クライアントプログラムを使用する場合は、以下の行を
|
---|
516 | 有効にする。
|
---|
517 |
|
---|
518 | USE_PING = true
|
---|
519 |
|
---|
520 | (5) 共通サーバタスク数の選択
|
---|
521 |
|
---|
522 | [1] WWW サーバタスク数は以下の行で選択する。ただし最大 2 タ
|
---|
523 | スクである。
|
---|
524 |
|
---|
525 | CDEFS := $(CDEFS) -DNUM_WWW_SRV_TASKS=2
|
---|
526 |
|
---|
527 | [2] TCP ECHO サーバタスク数を選択する。ただし以下の条件のと
|
---|
528 | き有効である。
|
---|
529 |
|
---|
530 | ・tcp_echo_srv1.c を選択した。
|
---|
531 | ・省コピー API を使用する。
|
---|
532 | ・ノンブロッキングコールを使用しない。
|
---|
533 |
|
---|
534 | TCP ECHO サーバタスク数は以下の行で選択する。ただし最大
|
---|
535 | 8 タスクである。
|
---|
536 |
|
---|
537 | CDEFS := $(CDEFS) -DNUM_TCP_ECHO_SRV_TASKS=8
|
---|
538 |
|
---|
539 | (6) 予約 ID 数の選択
|
---|
540 |
|
---|
541 | [1] TCP/IPv4 受付口予約 ID 数は以下の行で選択する。ただし最
|
---|
542 | 大 2 である。
|
---|
543 |
|
---|
544 | CDEFS := $(CDEFS) -DNUM_VRID_TCP_REPS=2
|
---|
545 |
|
---|
546 | [2] TCP/IPv4 通信端点予約 ID 数は以下の行で選択する。ただし
|
---|
547 | 最大 4 である。
|
---|
548 |
|
---|
549 | CDEFS := $(CDEFS) -DNUM_VRID_TCP_CEPS=4
|
---|
550 |
|
---|
551 | [3] UDP/IPv4 通信端点予約 ID 数は以下の行で選択する。ただし
|
---|
552 | 最大 2 である。
|
---|
553 |
|
---|
554 | CDEFS := $(CDEFS) -DNUM_VRID_UDP_CEPS=2
|
---|
555 |
|
---|
556 | [4] TCP/IPv6 受付口予約 ID 数は以下の行で選択する。ただし最
|
---|
557 | 大 2 である。
|
---|
558 |
|
---|
559 | CDEFS := $(CDEFS) -DNUM_VRID_TCP6_REPS=2
|
---|
560 |
|
---|
561 | [5] TCP/IPv6 通信端点予約 ID 数は以下の行で選択する。ただし
|
---|
562 | 最大 4 である。
|
---|
563 |
|
---|
564 | CDEFS := $(CDEFS) -DNUM_VRID_TCP6_CEPS=4
|
---|
565 |
|
---|
566 | [6] UDP/IPv6 通信端点予約 ID 数は以下の行で選択する。ただし
|
---|
567 | 最大 2 である。
|
---|
568 |
|
---|
569 | CDEFS := $(CDEFS) -DNUM_VRID_UDP6_CEPS=2
|
---|
570 |
|
---|
571 | (7) その他
|
---|
572 |
|
---|
573 | [1] TCP のセグメントサイズを MSS にする場合は、以下の行を有
|
---|
574 | 効にする。
|
---|
575 |
|
---|
576 | CDEFS := $(CDEFS) -DUSE_TCP_MSS_SEG
|
---|
577 |
|
---|
578 | [2] IPv6 MMTU サイズのネットワークバッファを組込む場合は、
|
---|
579 | 以下の行を有効にする。
|
---|
580 |
|
---|
581 | CDEFS := $(CDEFS) -DUSE_IPV6_MMTU
|
---|
582 |
|
---|
583 | 4. 2 サンプルアプリケーションのコンパイル時コンフィギュレーション
|
---|
584 |
|
---|
585 | (1) DHCPv6 クライアント
|
---|
586 |
|
---|
587 | [1] DHCP6_CLI_CFG_MODE
|
---|
588 | DHCPv6 クライアントの動作モードを指定する。
|
---|
589 | ステートレスモードを選択する時は
|
---|
590 | fDHCP6_CLI_CFG_STATELESS、 ステートフルモードを選択する
|
---|
591 | 時は fDHCP6_CLI_CFG_STATEFULL を指定する。 ステートレス
|
---|
592 | モードでは、IPv6 アドレスを取得せず、DNS サーバの情報な
|
---|
593 | どのみ取得する。
|
---|
594 |
|
---|
595 | [2] DHCP6_CLI_CFG_REQUIRED_OLIST
|
---|
596 | DHCPv6 サーバから取得する必須オプションリストを配列の初
|
---|
597 | 期化形式で指定する。指定例を以下に示す。
|
---|
598 | #define DHCP6_CLI_CFG_REQUIRED_OLIST { \
|
---|
599 | DHCP6_OPT_NAME_SERVERS, \
|
---|
600 | }
|
---|
601 |
|
---|
602 | オプションは tinet/netapp/dhcp6.h を参照すること。
|
---|
603 |
|
---|
604 | [3] DHCP6_CLI_CFG_REQUEST_OLIST
|
---|
605 | DHCPv6 サーバから取得する必須オプションリストを配列の初
|
---|
606 | 期化形式で指定する。 指定例を以下に示す。
|
---|
607 | #define DHCP6_CLI_CFG_REQUEST_OLIST { \
|
---|
608 | DHCP6_OPT_DOMAIN_SEARCH, \
|
---|
609 | }
|
---|
610 |
|
---|
611 | オプションは tinet/netapp/dhcp6.h を参照すること。
|
---|
612 |
|
---|
613 | (2) DHCPv4 クライアント
|
---|
614 |
|
---|
615 | [1] DHCP4_CLI_CFG_REQUIRED_OLIST
|
---|
616 | DHCPv4 サーバから取得する必須オプションリストを配列の初
|
---|
617 | 期化形式で指定する。指定例を以下に示す。
|
---|
618 | #define DHCP4_CLI_CFG_REQUIRED_OLIST { \
|
---|
619 | DHCP4_OPT_NAME_SERVERS, \
|
---|
620 | }
|
---|
621 |
|
---|
622 | オプションは tinet/netapp/dhcp4.h を参照すること。
|
---|
623 |
|
---|
624 | [2] DHCP4_CLI_CFG_REQUEST_OLIST
|
---|
625 | DHCPv4 サーバから取得する必須オプションリストを配列の初
|
---|
626 | 期化形式で指定する。 指定例を以下に示す。
|
---|
627 | #define DHCP4_CLI_CFG_REQUEST_OLIST { \
|
---|
628 | DHCP4_OPT_DOMAIN_SEARCH, \
|
---|
629 | }
|
---|
630 |
|
---|
631 | オプションは tinet/netapp/dhcp6.h を参照すること。
|
---|
632 |
|
---|
633 | (3) DNS リゾルバー
|
---|
634 |
|
---|
635 | [1] RSLV_CFG_DNS_DOMAIN_NAME_STR
|
---|
636 | ドメイン名の文字列を指定する。DHCPv6 クライアント、また
|
---|
637 | は DHCPv4 クライアントにより取得することも可能である。
|
---|
638 |
|
---|
639 | [2] IPV6_ADDR_DNS_INIT
|
---|
640 | DNS サーバの IPv6 アドレスを配列の初期化形式で指定する。
|
---|
641 | DHCPv6 クライアントにより取得することも可能である。 DNS
|
---|
642 | サーバの IPv6 アドレスが、
|
---|
643 | fd90:cce5:25f6:ff81:201:2ff:fe81:e7c9 の場合の指定例を
|
---|
644 | 以下に示す。
|
---|
645 |
|
---|
646 | #define IPV6_ADDR_DNS_INIT \
|
---|
647 | {{{ UINT_C(0xfd), UINT_C(0x90), UINT_C(0xcc), UINT_C(0xe5), \
|
---|
648 | UINT_C(0x25), UINT_C(0xf6), UINT_C(0xff), UINT_C(0x81), \
|
---|
649 | UINT_C(0x02), UINT_C(0x01), UINT_C(0x02), UINT_C(0xff), \
|
---|
650 | UINT_C(0xfe), UINT_C(0x81), UINT_C(0xe7), UINT_C(0xc9) }}}
|
---|
651 |
|
---|
652 | [3] IPV4_ADDR_DNS
|
---|
653 | DNS サーバの IPv4 アドレスを指定する。DHCPv4 クライアン
|
---|
654 | トにより取得することも可能である。 DNS サーバの IPv4 ア
|
---|
655 | ドレスが、172.25.129.140 の場合の指定例を以下に示す。
|
---|
656 |
|
---|
657 | #define IPV4_ADDR_DNS MAKE_IPV4_ADDR(172,25,129,140)
|
---|
658 |
|
---|
659 | 4. 3 簡易コンソールコマンド
|
---|
660 |
|
---|
661 | インターネットサーバ・セットに組み込まれている簡易コンソールのコマン
|
---|
662 | ドを以下に示す。
|
---|
663 |
|
---|
664 | cf tinet_app_config.h 等で指定された、コンパイル時
|
---|
665 | コンフィギュレーションを表示する。
|
---|
666 |
|
---|
667 | ct <cepid> [<fncd>]
|
---|
668 | ペンディングしている TCP 通信端点 <cepid> の処
|
---|
669 | 理をキャンセルする。キャンセルする処理は <fncd>
|
---|
670 | で指定する。<fncd> を省略した場合は、全ての処理
|
---|
671 | をキャンセルする。
|
---|
672 |
|
---|
673 | cu <cepid> [<fncd>]
|
---|
674 | ペンディングしている UDP 通信端点 <cepid> の処
|
---|
675 | 理をキャンセルする。キャンセルする処理は <fncd>
|
---|
676 | で指定する。<fncd> を省略した場合は、全ての処理
|
---|
677 | をキャンセルする。
|
---|
678 |
|
---|
679 | dc ネットワークインタフェースが PPP の時、または、
|
---|
680 | シリアルとネットワーク経由のコンソール入出力を
|
---|
681 | 使用する時に有効であり、 接続を切断する。なお、
|
---|
682 | PPP は参考実装である。
|
---|
683 |
|
---|
684 | dh DHCPv6 と DHCPv4 クライアントの情報を出力する。
|
---|
685 | dh6 DHCPv6 クライアントの情報を出力する。
|
---|
686 | dh6n IPv6 アドレス情報を解放して、 DHCPv6 サーバから
|
---|
687 | IPv6 アドレス情報を再取得する。
|
---|
688 | dh6r IPv6 アドレス情報を解放する。
|
---|
689 | dh4 DHCPv4 クライアントの情報を出力する。
|
---|
690 | dh4n IPv4 アドレス情報を解放して、 DHCPv4 サーバから
|
---|
691 | IPv4 アドレス情報を再取得する。
|
---|
692 | dh4r IPv4 アドレス情報を解放する。
|
---|
693 |
|
---|
694 | dt <host> [<portno> [<repeat>]]
|
---|
695 | TCP ディスカードクライアント・タスクを起動し、
|
---|
696 | ディスカードサーバ <host> にディスカードパター
|
---|
697 | ンを送信する。<portno> は、ディスカードサーバの
|
---|
698 | ポート番号で、省略時(- を指定する)は 9 である。
|
---|
699 | <repeat> は、繰り返し回数で、省略時は 1 である。
|
---|
700 | dts TCP ディスカードクライアント・タスクの繰り返し
|
---|
701 | 動作を停止する。
|
---|
702 |
|
---|
703 | du <host> [<portno>]]
|
---|
704 | ディスカードサーバ <host> にディスカードパター
|
---|
705 | UDP ディスカードクライアント・タスクを起動し、
|
---|
706 | ンを繰り返し送信する。<portno> は、ディスカード
|
---|
707 | サーバのポート番号で、省略時は 9 である。
|
---|
708 | dus UDP ディスカードクライアント・タスクの繰り返し
|
---|
709 | 動作を停止する。
|
---|
710 |
|
---|
711 | et <host> [<portno> [<repeat>]]
|
---|
712 | et4 <host> [<portno> [<repeat>]]
|
---|
713 | et では TCP エコークライアント・タスクを起動す
|
---|
714 | る。et4 では IPv4 専用 TCP エコークライアント・
|
---|
715 | タスクを起動する。 何れも、 エコーサーバ <host>
|
---|
716 | にエコーパターンを送信する。<portno> は、エコー
|
---|
717 | サーバのポート番号で、 省略時(- を指定する)は
|
---|
718 | 7 である。<repeat> は、繰り返し回数で、省略時は
|
---|
719 | 1 である。
|
---|
720 | ets TCP エコークライアント・タスクの繰り返し動作を
|
---|
721 | 停止する。
|
---|
722 | ets4 IPv4 専用 TCP エコークライアント・タスクの繰り
|
---|
723 | 返し動作を停止する。
|
---|
724 |
|
---|
725 | eu <host> [<portno>] [<msg> | <repeat>]
|
---|
726 | eu4 <host> [<portno>] [<msg> | <repeat>]
|
---|
727 | eu では UDP エコークライアント・タスクを起動す
|
---|
728 | る。eu4 では IPv4 専用 UDP エコークライアント・
|
---|
729 | タスクを起動する。 何れも、 エコーサーバ <host>
|
---|
730 | にエコーパターンを送信する。<portno> は、エコー
|
---|
731 | サーバのポート番号で、 省略時(- を指定する)は
|
---|
732 | 7 である。<repeat>(数字)を指定した場合は、 定
|
---|
733 | 型のメッセージを <repeat> 回繰り返し送信する。
|
---|
734 | <msg>(数字以外)を指定した場合は、 メッセージ
|
---|
735 | <msg> を送信する。
|
---|
736 | eus UDP エコークライアント・タスクの繰り返し動作を
|
---|
737 | 停止する。
|
---|
738 | eus4 IPv4 専用 UDP エコークライアント・タスクの繰り
|
---|
739 | 返し動作を停止する。
|
---|
740 |
|
---|
741 | i ネットワークインタフェースが PPP の時に有効であ
|
---|
742 | る。直接接続の場合は、直ちに LCP を起動して、サー
|
---|
743 | バに接続する。モデム接続の場合は、 コンパイル時
|
---|
744 | コンフィギュレーションの MODEM_CFG_PHONE_NUMBER
|
---|
745 | パラメータで指定されているサーバに発呼する。 な
|
---|
746 | お、PPP は参考実装である。
|
---|
747 |
|
---|
748 | if [<addr> <mask>] ネットワークインタフェースが PPP の時は、 IP ア
|
---|
749 | ドレス、 サブネットマスク、ブロードキャストアド
|
---|
750 | レスを出力する。 ネットワークインタフェースがイー
|
---|
751 | サネットで、 ネットワーク層が IPv4 の時は、
|
---|
752 | [<addr> <mask>] を指定できる。 [<addr> <mask>]
|
---|
753 | を指定しなければ、MAC アドレス、IPv4 アドレス、
|
---|
754 | サブネットマスク、 ブロードキャストアドレスの出
|
---|
755 | 力のみ行う。 [<addr> <mask>] を指定した時は、
|
---|
756 | IPv4 アドレスとサブネットマスクを変更した後、
|
---|
757 | MAC アドレス、IPv4 アドレス、サブネットマスク、
|
---|
758 | ブロードキャストアドレスを出力する。<addr> は、
|
---|
759 | IPv4 アドレス、 <mask> は、サブネットマスクであ
|
---|
760 | る。なお、PPP は参考実装である。
|
---|
761 |
|
---|
762 | na ネットワークインタフェースがイーサネットの時に
|
---|
763 | 有効である。IPv6 では近隣アドレスキャッシュの状
|
---|
764 | 態、IPv4 では ARP キャッシュを出力する。
|
---|
765 |
|
---|
766 | nb ネットワークバッファの統計情報を出力する。
|
---|
767 |
|
---|
768 | nc ネットワーク統計情報を表示する。
|
---|
769 |
|
---|
770 | nr [<index> <target> <mask> <gateway>]
|
---|
771 | ネットワークインタフェースがイーサネットのとき
|
---|
772 | 有効である。 ネットワーク層が IPv4 の時は、
|
---|
773 | [<index> <target> <mask> <gateway>] を指定でき
|
---|
774 | る。 [<index> <target> <mask> <gateway>] を指定
|
---|
775 | しなければ、 ルーティング表の出力のみ行う。
|
---|
776 | [<index> <target> <mask> <gateway>] を指定した
|
---|
777 | 時は、 ルーティング表を変更した後、ルーティング
|
---|
778 | 表を出力する。<index> は、 経路エントリのインデッ
|
---|
779 | クス、<target> は、目標ネットワークの IP アドレ
|
---|
780 | ス、<mask> は、目標ネットワークのサブネットマス
|
---|
781 | ク、 <gateway> は、ゲートウェイの IP アドレスである。
|
---|
782 |
|
---|
783 | nrl ネットワークインタフェースがイーサネットで、 ネッ
|
---|
784 | トワーク層が IPv6 の時に有効である。 ディフォル
|
---|
785 | トルータ・リストを出力する。
|
---|
786 |
|
---|
787 | nrp ネットワークインタフェースがイーサネットで、 ネッ
|
---|
788 | トワーク層が IPv6 の時に有効である。 プレフィッ
|
---|
789 | クスリストを出力する。
|
---|
790 |
|
---|
791 | ns [<name>|<addr>] DNS サーバに正引きでホスト名 <name>、または、逆
|
---|
792 | 引きで IP アドレス <addr> のアドレス情報を照会
|
---|
793 | し出力する。いずれも指定しない時は、 ドメイン名
|
---|
794 | と DNS サーバの IP アドレスを出力する。
|
---|
795 |
|
---|
796 | nt TCP 通信端点と TCP 受付口の状態を表示する。
|
---|
797 |
|
---|
798 | nu UDP 通信端点の状態を表示する。
|
---|
799 |
|
---|
800 | p <host> [ <tmo> [<size>] ]
|
---|
801 | ホスト <host> に ICMP パケットを送信する。<tmo>
|
---|
802 | はタイムアウト値(単位は秒)で、 省略時(- を指
|
---|
803 | 定する)は 3 秒である。 <size> はデータサイズで、
|
---|
804 | 指定しない場合は 64 オクテットである。
|
---|
805 |
|
---|
806 | ps タスクの状態を表示する。
|
---|
807 |
|
---|
808 | r <tskid> タスク <tskid> の待ち状態を強制的に解除する。
|
---|
809 |
|
---|
810 | tt <repid> ITRON TCP/IP API の TCP の拡張機能を組込む必要
|
---|
811 | がある。TCP 受付口 <repid> を削除し、対応するサー
|
---|
812 | バを停止する。
|
---|
813 |
|
---|
814 | tu <cepid> ITRON TCP/IP API の UDP の拡張機能を組込む必要
|
---|
815 | がある。UDP 通信端点 <cepid> を削除し、対応する
|
---|
816 | サーバを停止する。
|
---|
817 |
|
---|
818 | w <tskid> タスク <tskid> を起床する。
|
---|
819 |
|
---|
820 | wtd ITRON TCP/IP API の TCP の拡張機能を組込む必要
|
---|
821 | がある。TCP ディスカードサーバ・タスクに TCP 受
|
---|
822 | 付口と TCP 通信端点を割当て、TCP ディスカードサー
|
---|
823 | バ・タスクを起動する。
|
---|
824 |
|
---|
825 | wte ITRON TCP/IP API の TCP の拡張機能を組込む必要
|
---|
826 | がある。TCP エコーサーバ・タスクに TCP 受付口と
|
---|
827 | TCP 通信端点を割当て、 TCP エコーサーバ・タスク
|
---|
828 | を起動する。
|
---|
829 |
|
---|
830 | wte4 ITRON TCP/IP API の TCP の拡張機能を組込む必要
|
---|
831 | がある。 TCP エコーサーバ・タスクに IPv4 用 TCP
|
---|
832 | 受付口と IPv4 用 TCP 通信端点を割当て、TCP エコー
|
---|
833 | サーバ・タスクを起動する。
|
---|
834 |
|
---|
835 | wtw4 ITRON TCP/IP API の TCP の拡張機能を組込む必要
|
---|
836 | がある。WWW サーバ・タスクに IPv4 用 TCP 受付口
|
---|
837 | と IPv4 用 TCP 通信端点を割当て、WWW サーバ・タ
|
---|
838 | スクを起動する。
|
---|
839 | wtw ITRON TCP/IP API の TCP の拡張機能を組込む必要
|
---|
840 | がある。 WWW サーバ・タスクに TCP 受付口と TCP
|
---|
841 | 通信端点を割当て、WWW サーバ・タスクを起動する。
|
---|
842 |
|
---|
843 | wue ITRON UDP/IP API の UDP の拡張機能を組込む必要
|
---|
844 | がある。UDP エコーサーバ・タスクに UDP 通信端点
|
---|
845 | を割当て、UDP エコーサーバ・タスクを起動する。
|
---|
846 |
|
---|
847 | 4. 4 DNSリゾルバーによるホスト名の指定
|
---|
848 |
|
---|
849 | Makefile の組み込む機能の選択で、
|
---|
850 |
|
---|
851 | USE_RESOLVER = true
|
---|
852 |
|
---|
853 | を指定して DNS リゾルバーを使用すると、簡易コンソールコマンドの <host>
|
---|
854 | に指定したホスト名を、DNS サーバに照会して IP アドレスを得ることができ
|
---|
855 | る(正引き)。
|
---|
856 | <host> の書式を以下に示す。
|
---|
857 | [-[6|4][A|a|Q|q]] <name>
|
---|
858 |
|
---|
859 | 各オプションを以下に示す。
|
---|
860 |
|
---|
861 | 6 ネットワーク層のプロトコルとして IPv6 により DNS サーバに照
|
---|
862 | 会する。
|
---|
863 | 4 ネットワーク層のプロトコルとして IPv4 により DNS サーバに照
|
---|
864 | 会する。
|
---|
865 | q AAAA レコードのみ照会する。
|
---|
866 | Q AAAA レコードのみ照会する。
|
---|
867 | a A レコードのみ照会する。
|
---|
868 | A A レコードのみ照会する。
|
---|
869 |
|
---|
870 | 6 と 4 のどちらも指定しない時は、まず IPv6 で DNS サーバに照会するが、
|
---|
871 | 応答がない場合は IPv4 にフォールバックして DNS サーバに照会する。 ただ
|
---|
872 | し、ネットワーク層としてどちらか一方のみ組込んだ場合は、このオプション
|
---|
873 | は無視される。
|
---|
874 | q、 Q、a、A のいずれも指定しない時は、AAAA レコードの次に A レコード
|
---|
875 | の順で DNS サーバに照会する。
|
---|
876 |
|
---|
877 | 5. sample1 のネットワーク対応プログラム(sample1n)の構築
|
---|
878 |
|
---|
879 | TOPPERS/ASP と TOPPERS/JSP のサンプルプログラム sample1 のネットワー
|
---|
880 | ク対応プログラムである。telnet で接続すると、 シリアルの入出力を引き継
|
---|
881 | いで実行する。 切断すると、 元のシリアルに入出力を戻す。
|
---|
882 | 以下に構築方法を述べる。
|
---|
883 |
|
---|
884 | (1) ASP/JSP コンフィギュレーションスクリプトの実行
|
---|
885 | それぞれの環境におけるコンフィギュレーションスクリプトを実
|
---|
886 | 行する。以下は、 TOPPERS/ASP 環境におけるコンフィギュレーショ
|
---|
887 | ンスクリプトの実行例である。
|
---|
888 |
|
---|
889 | $ mkdir NETOBJ
|
---|
890 | $ cd NETOBJ
|
---|
891 | $ perl ../configure -T akih8_3069f_gcc
|
---|
892 |
|
---|
893 | (2) TINET コンフィギュレーションスクリプトの実行
|
---|
894 | それぞれの環境における TINET コンフィギュレーションスクリプ
|
---|
895 | トを実行する。 この時、 アプリケーションプログラム名として
|
---|
896 | sample1n を指定する。 以下は、 TOPPERS/ASP 環境における TINET
|
---|
897 | コンフィギュレーションスクリプトの実行例である。
|
---|
898 |
|
---|
899 | $ perl ../tinet/tinet_asp_configure -T akih8_3069f_gcc -A sample1n
|
---|
900 | -i ether -v if_ed -n inet6 -s tcp
|
---|
901 |
|
---|
902 | なお、オプション -n に inet6/inet4 を指定しても、 IPv6 でのみ
|
---|
903 | 接続できる。
|
---|
904 |
|
---|
905 | (3) Makefile の修正
|
---|
906 | アプリケーション本体(sample1n.c)と TOPPERS/ASP と
|
---|
907 | TOPPERS/JSP の sample1.c を一緒にコンパイル・リンクするため、
|
---|
908 | Makefile を修正する。
|
---|
909 |
|
---|
910 | [1] TOPPERS/ASP 環境
|
---|
911 | Makefile の APPL_COBJS に sample1.o を追加する。
|
---|
912 |
|
---|
913 | APPL_COBJS = $(APPLNAME).o sample1.o
|
---|
914 |
|
---|
915 | [2] TOPPERS/JSP 環境
|
---|
916 | Makefile の UTASK_COBJS に sample1.o を追加する。
|
---|
917 |
|
---|
918 | UTASK_COBJS = $(UNAME).o sample1.o
|
---|
919 |
|
---|
920 | (4) sample1.c の修正
|
---|
921 | TOPPERS/ASP と TOPPERS/JSP の sample1.c のインクルードファ
|
---|
922 | イルの指定
|
---|
923 |
|
---|
924 | #include "sample1.h"
|
---|
925 |
|
---|
926 | の前に、 以下のインクルードファイルを追加する。
|
---|
927 |
|
---|
928 | #include "sample1n.h"
|
---|
929 |
|
---|
930 | (5) tinet_app_config.h の設定
|
---|
931 | IPv4 の場合、IP アドレス、サブネットマスク、 ディフォルトゲー
|
---|
932 | トウェイを指定する。
|
---|
933 |
|
---|
934 | 6. 最小構成サーバの構築
|
---|
935 |
|
---|
936 | WWW サーバ・タスクと TCP エコーサーバ・タスクのみからなる最小構成の
|
---|
937 | サーバである。H8/3069F が内蔵している RAM(16K バイト)と ROM(512K バ
|
---|
938 | イト)に収まり、外部メモリは不要である。現在は、品川通信計装サービス製
|
---|
939 | NKEV-010H8(TOPPERS/JSP リリース 1.4.2 のみ)と秋月電子通商製 H8/3069F
|
---|
940 | (TOPPERS/JSP リリース 1.4.1 以降と TOPPERS/ASP)のシステムに対応して
|
---|
941 | いる。
|
---|
942 | 各システム依存部の Makefile.config の「実行環境の定義」で、
|
---|
943 |
|
---|
944 | # ROM化 外部RAM未使用
|
---|
945 | #DBGENV := INMEM_ONLY
|
---|
946 |
|
---|
947 | を有効にして、 コンパイル・リンクする。
|
---|