elmntalインストール&実行方法(win編) ↑
必要なもの ↑
- windowsマシン(2000, XP推奨)
- cygwin(最低限gcc, make)
- windows用eyebot処理系(インストール方法はここ参照)
- elmntal
コンパイル&インストール ↑
windows版では、シリアルポートを用いる関係上、cygwinの上でelmntalの一連の処理を行ないます。
tar zxvf elmntal-0.9.2.tar.gz
- 以下の処理は、RoBIOS Prompt(eyebot処理系)上で行なってください。
- elmntalフォルダ内のmake_eye.batを実行する(winフォルダ内にlmntal.hexファイルが生成されます)
cd elmntal
make_eye.bat
- 以下の処理は、cygwinのbash上で行なってください。
- Makefile.winをmakeする(winディレクトリ内に生成バイナリがコピーされます。)
cd elmntal
make clean
make -f Makefile.win
- winディレクトリの中身を、適当なディレクトリにコピーする(例:/usr/local/elmntal)
mkdir /usr/local/elmntal
cp -r win/* /usr/local/elmntal/
環境変数の設定 ↑
elmntalでは、以下の環境変数を用います
- PATH : 実行用コマンドシェルスクリプトへのPATHが必要です
- LMNEYE : シェルスクリプト内で呼ばれる、バイナリファイルの所在を指定します。
- LMNJAR : lmntal.jarの所在を示します。LMNEYEと同じ場合は省略可能。
windowsでは、以下をcygwinホームディレクトリ内の.bashrcなどに追加しておくと良いでしょう。
export PATH=$PATH:/usr/local/elmntal/cmd
export LMNEYE=/usr/local/elmntal/bin
export LMNJAR=c:\\cygwin\\usr\\local\\elmntal\\bin
LMNJARはjava.exeの引数として渡されるため、このような形式(フォルダ区切りを\\と書き、windows上の絶対パスを指定)で書く必要があります。
実行方法 ↑
elmntalでは、lmntalソースコード(*.lmn)をバイナリ中間言語(*.tal)に変換し、eyebot側に転送します。eyebot側ではあらかじめelmntalを実行しておき、送られてきた*.talを解釈、実行します。中間言語や内部処理の詳細については論文参照。
elmntalが提供するコマンドは以下の4つです
- eyeconv.sh : lmntalソースコード(*.lmn)を転送可能なバイナリ中間言語(*.tal)に変換します
- runeye.sh : *.talをeyebotに転送し、eyebotからの出力結果を待って表示します。
- runpc.sh : *.talの実行をPC上で行ないます。制御を行なわないlmntalプログラムは動作します。
- setcom.sh : comポートの通信速度の設定を行ないます。
実行の流れは以下のとおり。
setcom.sh com1
- elmntalのシステム(lmntal.hex)をeyebotに転送します。lmntal.hexはLMNEYEディレクトリに入っています。
cat $LMNEYE/lmntal.hex > /dev/com1
- eyebot上でlmntal.hexを実行します。
- lmntalソースコードをコンパイルします。hoge.lmnからhoge.tal, hoge.aidが生成されます。hoge.aidはアトム名を保持するファイルで、コンパイル中および出力表示に用いられます。
eyeconv.sh hoge.lmn
- 生成されたhoge.talをeyebotに転送し、実行を開始します。
runeye.sh hoge.tal -c /dev/com1
(eyebot側のボタンを1回押すと転送が始まる)
(転送終了の表示がでた後、ボタンを1回押すと実行が始まる)
- 実行終了後、ボタンを1回押すとeyebotからPCに実行結果が転送され、コンソールに実行結果データ構造が表示されます。
注意:
- lmntal.hexを1回実行した後は、必ず電源を切断してください。2度続けて実行すると正常に動作しません。
- runeye.shのかわりにrunpc.shを実行することで、PC上で.talファイルを解釈実行できます。制御関係の記述はできません。
- cygwin上の/dev/com1などは、シェル起動時に存在するもののみがアクセス可能です。つまりcygwin shellを起動後にUSB-Serial変換コネクタなどでCOMポートが作成された場合、それをcygwin上でアクセスする為にはshellを再起動する必要があります。
|