= ECNLプロトタイピング・ツール = ECNLプロトタイピング・ツールは、mruby版ECNLを含むGR-PEACHの動作環境と、Blocklyを使用したRubyコードを出力するWebアプリで構成されたツールです。現状では作成したファイルが保存できないなど、未完成な部分の多いプレビュー的なリリースです。 == ダウンロード == ソースコードのダウンロードは、[browser:"EcnlProtoTool/trunk" こちら]の「Download in other formats: Zip Archive」からどうぞ。 実行ファイルは[browser:"EcnlProtoTool/trunk/bin/prototool.bin" こちら]です。GR-PEACHのmbedドライブに書き込んでください。 == 操作イメージ == 一般照明の動作状態のON/OFFで、GR-PEACHの緑LEDを点灯/消灯を行う操作方法。 [[Image(proto_tool.gif)]] == GR-PEACH上のmruby実行環境 == Rubyファイルをmrubyコマンドで実行。mrbcコマンドでバイトコードにコンパイル。mruby -bでバイトコードを実行。 [[Image(mruby_shell.gif)]] == ビルド == ビルド環境のOSはWindowsで、7と10では確認しました。 ビルドに必要なのは、 ||Webアプリ||[https://www.microsoft.com/ja-jp/dev/default.aspx Visual Studio 2015]|| ||mrbc.js||[http://kripken.github.io/emscripten-site/ Emscripten] (SDK Ver.1.37.10)|| ||mruby||[http://rubyinstaller.org/downloads/ Ruby] (2.3.3 64bit)|| ||GR-PEACHアプリ||[https://www.renesas.com/ja-jp/products/software-tools/tools/ide/e2studio.html e2studio] (5.3.1)|| ||GR-PEACHアプリ||[https://gcc-renesas.com/ja/rz/rz-download-toolchains/ arm-none-eabi-gcc] (v16.01)|| 以下はリポジトリに含まれています。 ||mruby||[http://gnuwin32.sourceforge.net/packages/bison.htm bison] (2.4.1)|| ||!JavaScript minifier||[https://yui.github.io/yuicompressor/ yuicompressor] (2.4.8)|| === Webアプリのビルド === Visual Studio 2015を使用します。「webapp/webmrbc/webmrbc.sln」を開いてビルドします。C#で書かれたコードはBridge.NETによりJavaScriptにコンパイルされ、「webapp/webmrbc/js」フォルダに「webmrbc.js」が出力されます。Bridge.NETはNuGetパッケージで、Visual Studio 2015のビルド時に自動的にダウンロード、インストールされて、ビルドに使用されます。Webアプリはこのプロジェクトで、デバッグすることが出来ます。 ビルドが成功するとビルド後のビルドイベントのコマンド実行により、「httpd-fs」フォルダにGR-PEACHに書き込むWebコンテンツがコピーされ、「tools\makefsdata.exe」で「httpd-fs.bin」にFatFSのディスクイメージとして、まとめられます。 ビルドの順番はこちらの方を先に行いますが、変更の頻度は低いため説明は後にしました。 Rubyコードをブラウザ上でmrubyのバイトコードにコンパイルするために「mrbc.js」というファイルがあります。これはmrbcをEmscriptenでJavaScriptにコンパイルしたものです。 mrubyのビルド環境にEmscriptenのtoolchainを追加してビルドしたものです。 リポジトリにある「mruby-1.2.0\build_config.rb」は、GR-PEACH向けのビルドのみが有効になっていますが、コメントアウトされた最後のブロックを有効にすることでmrbc.jsをコンパイルできます。=beginから=endまでのコメントアウトされたブロックがmrbc.js用のビルドになります。 このコメントアウトを戻して、通常のmrubyのビルドと同様にmakeを実行すると「mruby-1.2.0\build\emscripten\bin」に「mrbc.js」が出力されます。他のJavaScriptは「tools\yuicompressor-2.4.8.jar」でミニファイしていますが、mrbc.jsはうまくミニファイ出来ないので、https://jscompress.com/のサイトを利用してミニファイしています。mrbc.jsとmrbc.min.jsは、「webapp\webmrbc」フォルダにコピーしておきます。 === GR-PEACH側アプリのビルド === Renesasの総合開発環境のe2studioと[https://gcc-renesas.com/ja/ GNU Tools](旧KPIT)のコンパイラ・ツール・チェーン「GNUARM-NONE Toolchain v16.01」を使用します。 e2studioのメニュー「ファイル」→「インポート」で、EcnlProtoToolを展開したフォルダを指定します。以下のプロジェクトが表示されるので、すべて取り込みます。 ||asp3_dcre||TOPPERS/ASP3+mbed||libkernel.a|||| ||ntshell||Natural tiny shell、FatFS、Socketなど||ntshell.bin||asp3_dcreに依存|| ||onigmo-5.15.0||mruby用正規表現ライブラリ||libonigmo.a|||| ||mrbgems||mruby拡張機能||-||ファイル管理のみ|| ||mruby-1.2.0||mruby||libmruby.a||onigmo-5.15.0、mrbgemsに依存|| ||tcc-0.9.26||Tiny C compiler||libtcc.a|||| ||prototool||GR-PEACH側アプリ||prototool.bin||ntshell、mruby-1.2.0、tcc-0.9.26に依存|| ||tools||ビルドに必要なコマンド||-||ファイル管理のみ|| e2studioですべてのプロジェクトをビルドします。最終的には「prototool\Debug\prototool.bin」が出力され、これをGR-PEACHに書き込みます。 デバッグは、ntshellとprototoolで出来ますが、それぞれに登録されたソースコードのみがシンボルデバッグできます。 == 使用しているオープンソース == === Webアプリ === === GR-PEACH側アプリ === == TCP Socket API == mrubyの拡張機能mrbgemのiij/mruby-socketを含んでいるので、Ruby版Socket APIを使用出来ます。 [[Image(tcp_echo.gif)]] == おまけ == Tiny C Compilerで、C言語ファイルをELFファイルにコンパイル。リンクや実行は出来ません。 [[Image(tcc_shell.gif)]]