wiki:EcnlProtoTool

Version 5 (modified by coas-nagasima, 5 years ago) ( diff )

--

ECNLプロトタイピング・ツール

ECNLプロトタイピング・ツールは、mruby版ECNLを含むGR-PEACHの動作環境と、Blocklyを使用したRubyコードを出力するWebアプリで構成されたツールです。現状では作成したファイルが保存できないなど、未完成な部分の多いプレビュー的なリリースです。

ダウンロード

ソースコードのダウンロードは、こちらの「Download in other formats: Zip Archive」からどうぞ。

実行ファイルはこちらです。GR-PEACHのmbedドライブに書き込んでください。

操作イメージ

一般照明の動作状態のON/OFFで、GR-PEACHの緑LEDを点灯/消灯を行う操作方法。

GR-PEACH上のmruby実行環境

Rubyファイルをmrubyコマンドで実行。mrbcコマンドでバイトコードにコンパイル。mruby -bでバイトコードを実行。

ビルド

ビルド環境のOSはWindowsで、7と10では確認しました。 ビルドに必要なのは、

WebアプリVisual Studio 2015
mrbc.jsEmscripten (SDK Ver.1.37.10)
mrubyRuby (2.3.3 64bit)
GR-PEACHアプリe2studio (5.3.1)
GR-PEACHアプリarm-none-eabi-gcc (v16.01)

以下はリポジトリに含まれています。

mrubybison (2.4.1)
JavaScript minifieryuicompressor (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とGNU Tools(旧KPIT)のコンパイラ・ツール・チェーン「GNUARM-NONE Toolchain v16.01」を使用します。

e2studioのメニュー「ファイル」→「インポート」で、EcnlProtoToolを展開したフォルダを指定します。以下のプロジェクトが表示されるので、すべて取り込みます。

asp3_dcreTOPPERS/ASP3+mbedlibkernel.a
ntshellNatural tiny shell、FatFS、Socketなどntshell.binasp3_dcreに依存
onigmo-5.15.0mruby用正規表現ライブラリlibonigmo.a
mrbgemsmruby拡張機能-ファイル管理のみ
mruby-1.2.0mrubylibmruby.aonigmo-5.15.0、mrbgemsに依存
tcc-0.9.26Tiny C compilerlibtcc.a
prototoolGR-PEACH側アプリprototool.binntshell、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を使用出来ます。

おまけ

Tiny C Compilerで、C言語ファイルをELFファイルにコンパイル。リンクや実行は出来ません。

Attachments (4)

Note: See TracWiki for help on using the wiki.