mbed上でmruby仮想マシンを動かす

19 Feb 2017

itoc しまねソフト研究開発センターで作られていますmruby/cというmrubyよりもRAM消費量が40KB前後と少ない軽量mruby環境を移植してみました。

「Chapter03複数のmrubyプログラムを同時に動かす」のmbed版 https://developer.mbed.org/users/tk_takateku/code/Nucleo_blink_led_for_mrubyc/ →画面右側の「Import Compiler」から簡単にプロジェクトが入手できます。

本家サイトのリンク http://www.s-itoc.jp/activity/research/mrubyc/

本家サイトのChapter03 http://www.s-itoc.jp/activity/research/mrubyc/mrubyc_tutorial/436

プロジェクトは、NUCLEO-F411REで動かしましたが、RAM容量が同じ程度あるものでしたら、main.cppを変更すれば動作すると思います。 また、mruby/vm_config.hを編集すればより少ないメモリ環境のmbedマイコンでも動作すると思います。 消費量参考値;FLASH36.7KB/512KB RAM27.8KB/96KB

Rubyコードを変更する際は、オンライン上でmruby中間コードをプレビルドする方法を知らないのでローカルPC上にmrubyバイトコンパイラを別途用意して、変換する必要があります。Windows用のmrubyバイトコンパイラは、以下のサイトから「mrubyコンパイラ」下をクリックすると入手できます。それ以外のOSの方はローカルPC上にmruby環境の構築が必要です。

「ダウンロード」 http://www.s-itoc.jp/activity/research/mrubyc/mrubyc_download/

mrubyコンパイル方法; 以下のコマンドをローカルPC上のPathがmrbc.exeに通った状態でsample1.rbおよびsample2.rbがあるフォルダ上で実行してください。

mrbc.exe -E -Bsample1 sample1.rb mrbc.exe -E -Bsample2 sample2.rb

生成されたsample1.cおよびsample2.cをインポートしたプロジェクトを開いたweb画面上にドラッグドロップすると更新されます。

注意点; ・mbedマイコンのターゲットを変更した際は、コンパイル時に「コンパイル」ではなく「全てコンパイル」を選択してください。そうしないと書き込んでも正しく動作しないことがあります。

ほかのmbedマイコンではGR-PEACHあたりでも動いたみたいです。「mruby/c Ready!なmbedマイコン」が増えるといいですね。