楽墨堂ソフトウェア研究室:AKI-H8/3069F:eCos:簡易HTTPサーバ
 
簡易HTTPサーバ

# mkdir ~/ecos/httpd_kernel
# cd ~/ecos/httpd_kernel
# ecosconfig new aki3068net net
# ecosconfig add CYGPKG_HTTPD
ここでecos.eccのなかを編集(ROM/RAM等)
# ecosconfig tree
# make
ここでinstall/lib/target.ldを編集して使用RAM領域を増やす
# mkdir ~/ecos/httpd_test
# cd ~/ecos/httpd_test
# cp /opt/ecos/ecos/packages/net/httpd/current/tests/httpd1.c ./httpd_test.c
# cp /opt/ecos/ecos/examples/build* ./
# chmod +x build*
# SRCS=httpd_test.c DST=httpd_test ./buildMakefile ../httpd_kernel
# make
# h8300-elf-objcopy -O srec httpd_test httpd_test.srec
ただし、Reloadを繰り返すとHALTするバグあり。
ソースを追ったのだがカーネル部分のセマフォあたりのインプリに問題がありそうだ。
対処策1はcyg_tcp_maxidleの値を書換えてコネクションの切れたTCPの再利用するまでの時間を速くすること。
extern int cyg_tcp_maxidle;
cyg_tcp_maxidle = 200;
対処策2は送付データが大きい場合に起こると思われるので1400バイト程度に分割して送るようにインプリメントすれば良いと思う。(net/httpd/current/src/httpd.c)
いずれにせよ根本的解決にはならない。
また、付属のhttpdプログラムはインプリメントが雑なので業務で使用する場合は色々と修正が必要。

 
Copyright© 2006 Laksmi-Do Corp. All rights reserved.
連絡先(@を半角に) develop@laksmido.com