GR-CITRUSに組み込むmrubyをビルドする方法 for WindowsのmacOS版です。
GR-CITRUSは、mrubyが気軽に使える小型ボードです。Chrome Appの「Rubic」を使うことでプログラムの作成から実行までスムーズに行うことができます。
GR-CITRUSのファームウェアの中にはmruby(libmruby.a)が組み込まれています。しかし、標準のファームウェアに組み込まれているmrubyには最低限のライブラリ(mrbgems)しか組み込まれていないため、ちょっと複雑なものを作ろうとしたときに困ることがあります。その場合、必要となるライブラリ(mrbgems)を組み込んだmruby(libmruby.a)のビルドと、それを組み込んだGR-CITRUSのファームウェアのビルドが必要となります。
この記事ではその手順を紹介します。
#必要なもの
この記事では、macOS High Sierraを使用しています。まず、mrubyを普通にビルドできる環境が必要です。私の環境にはRailsを動かすためにrubyやgitなど一式諸々が入ってしまっているため詳細が確認できません。すみません。
また、GR-CITRUSのファームウェアをビルドしたことがない方は、あらかじめGR-CITRUSのFirmwareをビルドする方法 for macOSに従い、ビルド環境のセットアップとファームウェアのビルドができることの確認を行っておいてください。
#mrubyのソースコードの取得
コマンドプロンプトを起動して、githubのmrubyリポジトリからmasterブランチをクローンします。
git clone https://github.com/mruby/mruby
#GR-CITRUS用のbuild_config.rbの準備
mrubyのビルドを行うためには、build_config.rb
ファイルを適切に設定する必要があります。GR-CITRUS用のbuild_configファイルは、GR-CITRUSのFirmwareのmrubyフォルダに含まれてます。
このファイルを取得するか、その内容をすべてコピー&ペーストして、mruby
フォルダ内にあるbuild_config.rb
ファイルの内容を置き換えてください。
#build_config.rbの修正
上記で取得したbuild_config.rb
ファイルを自分の環境にあうように書き換えます。書き換えるのは、BIN_PATH
の行です。
BIN_PATH = "/Applications/IDE4GR.app/Contents/Java/hardware/tools/gcc-rx/rx-elf/rx-elf/bin/"
LIB_PATH = "/Applications/IDE4GR.app/Contents/Java/hardware/tools/gcc-rx/rx-elf/rx-elf/rx-elf/lib"
ここで指定するパスは、rx-elf-gccコマンドがあるパスです。GR-CITRUSのFirmwareをビルドする方法 for macOSに従いビルド環境を構築した方は、IDE for GRをインストールしたパスとなります。
また、このファイル内でmrubyに組み込みたいライブラリ(mrbgems)を指定することができます。適宜、必要に応じて追加、削除などを行ってください。
#mrubyのビルド
ターミナルを起動し、上記で修正したbuild_config.rb
があるフォルダに移動します。
$ cd mruby
mrubyのビルドを行います。
$ ruby ./minirake
ビルドが成功すると、以下のようなメッセージが出力されます。build\RX630\lib
フォルダに出力された、libmruby.a
ファイルが、GR-CITRUSのファームウェアに取り込むmruby(ライブラリ)です。
================================================
Config Name: RX630
Output Directory: build/RX630
Included Gems:
mruby-math - standard Math module
mruby-numeric-ext - Numeric class extension
================================================
#GR-CITRUSのファームウェアのビルド
GR-CITRUSのファームウェアのwrbb-v2lib-firm/firmware_release/wrbb_mruby
フォルダにあるlibmruby.a
ファイルを、mrubyのビルドで出力されたlibmruby.a
ファイルで上書きします。
cp build/RX630/lib/libmruby.a /{path_to}/wrbb-v2lib-firm/firmware_release/wrbb_mruby/libmruby.a
GR-CITRUSのファームウェアをビルドします。firmware
フォルダに移動して、make
コマンドを実行します。
cd /{path_to}/wrbb-v2lib-firm/firmware_release/
make
正常終了すると、makefileと同じフォルダにあるcitrus_sketch.binファイルが更新されているはずです。
ビルドしたファームウェアを書き込む場合は、GR-CITRUSのリセットボタンを押してUSBメモリとして認識させた後、citrus_sketch.binファイルをコピーしてください。