楽墨堂ソフトウェア研究室:Digi Connect ME:フラッシュ書込み用ftpサーバ |
コモンライブラリを使用してフラッシュ書込み用ftpサーバを実現するためのテストプログラム。 当研究室のコモンライブラリのものはデベロップメントキットに付属しているもの(naftpapp)よりシンプルで正確である。 以下のソースコードを/netos63_gnu/src/apps/に展開。 flashftp_test.zip ビルド方法: NET+Works 6.3 Build Enviromentを起動 $ cd src/apps/flashftp_test/32b $ make PLATFORM=connectme clean all 使用する関数の説明: int flashftp_start(char* sysname);sysnameはftpサーバに登録されるシステム名を指定する。 これはftpクライアントから接続されたときに表示される。 戻り値が0なら成功。非0なら失敗。 32b/makefileには ROM用ファイルを作成しない指定: BUILD_ROM_IMAGE= 0 コモンライブラリファイル(flashftp.c)の追加: APP_C_FILES=root.c flashftp.c コモンライブラリへのソース検索パスの追加: vpath %.c ../../common コモンライブラリへのインクルード検索パスの追加: APP_INCDIRS= -I.. -I../../common ftpサーバ本体用ライブラリの追加: $(NETOS_LIBPATH)/libftpsvr.a \ を設定している。コモンライブラリを使う場合には同様の設定がmakefileに必要となるので覚えておくこと。 補足(重要): 通常のDigi Connect ME本体はJTAGポートが付属していない。 最初に入っているプログラムにはフラッシュ書込み用ftpサーバが組み込まれている。 従って自前のプログラムはftpクライアントやnetosprogというツールを使用して書きこむこととなる。 しかし、自前のプログラムを書きこむということは、当然ながら最初に入っているプログラムを消し去ることとなるのだ。 そこで、その自前のプログラムにフラッシュ書込み用ftpサーバが入っていないと、新たなプログラムを 書きこむ方法が無くなる。 従ってJTAG無しDigi Connect MEのプログラムは必ずフラッシュ書込み用のftpサーバを組み込む必要があるのだ。 また、ftpに接続するときのユーザ名とパスワードのデフォルトはそれぞれ root と Netsilicon となっている。 新たにユーザ名とパスワードを組み込んでおきたい場合はヘッダーファイルとして #include <sysAccess.h>を追加し、プログラムの最初(flashftp_startの前)に NAsetSysAccess(NASYSACC_ADD, "user", "pass", NASYSACC_LEVEL_HTTP_R1 | NASYSACC_LEVEL_RW, NULL);というように記述すれば良い。(user/passはそれぞれ追加したいものに変更すること) ここで指定したユーザ名とパスワードがftpクライアントからの接続で使用できるようになる。 参考: NET+Works 6,3 Build Environmentのftpクライアントを使ってフラッシュに書きこむ一連の流れを示す。 ここで書きこむプログラムは必ずフラッシュ書き込み用ftpサーバを組み込んだプログラムにすること。 以下の赤字部分を入力する。IPアドレス(192.168.0.20)は環境に合わせて変更すること。 ftpコマンドのput image.binの後からのメッセージは省略しているので再びコマンドプロンプト(ftp>:)が出た後に 終了コマンド(quit)を入力すること。 221 Goodbye.が表示されてしばらくすると Digi Connect ME は自動的にリセットされる。 終了コマンド(quit)入力後に221 Goodbye.が表示されるまでは絶対に Digi Connect ME をリセットしたり電源を切ってはならない。 そうしてしまうとフラッシュ書込みが非完全のまま終わってしまうので Digi Connect ME が使用できなくなるので注意。 $ ftp 192.168.0.20 Connected to 192.168.0.20. 220 NET+OS 6.3 FTP server ready. Name (192.168.0.20:****): root 331 User root OK, send password. Password: Netsilicon 230 Password OK. Remote system type is ftp_sample_program. ftp> bin 220 Type set to I. ftp> put image.bin ... 省略 ... ftp> quit 221 Goodbye. |
Copyright© 2006 Laksmi-Do Corp. All rights reserved. |
連絡先(@を半角に) develop@laksmido.com |