LoginSignup
5
4

More than 5 years have passed since last update.

GR-CITRUSに組み込むmrubyをビルドする方法 for Windows

Last updated at Posted at 2016-11-05

2016/12/20 コメントにてご指摘をいただきました。Windows用のgccも必要でありMSYS2やMingwのセットアップが必要です。shimo_cchiさんがRubicでGR-CITRUSのmrubyプログラミング事始め4[mrbgems編]で、より詳しく丁寧にビルド環境の準備を解説してくださっています。そちらを確認していただくことをおすすめします。


GR-CITRUSは、mrubyが気軽に使える小型ボードです。Chrome Appの「Rubic」を使うことでプログラムの作成から実行までスムーズに行うことができます。

GR-CITRUSのファームウェアの中にはmruby(libmruby.a)が組み込まれています。しかし、標準のファームウェアに組み込まれているmrubyには最低限のライブラリ(mrbgems)しか組み込まれていないため、ちょっと複雑なものを作ろうとしたときに困ることがあります。その場合、必要となるライブラリ(mrbgems)を組み込んだmruby(libmruby.a)のビルドと、それを組み込んだGR-CITRUSのファームウェアのビルドが必要となります。

この記事ではその手順を紹介します。
macOSの場合は、GR-CITRUSに組み込むmrubyをビルドする方法 for macOSをご確認ください。
なお、Ubuntu16.04系でも同様の手順とbuild_config.rbでビルドできることを確認しています。

必要なもの

この記事では、Windows10を使用しています。GR-CITRUSのファームウェアをビルドしたことがない方は、あらかじめGR-CITRUSのFirmwareをビルドする方法 for Windowsに従い、ビルド環境のセットアップとファームウェアのビルドができることの確認を行っておいてください。

追加で、rubyとbisonが必要となります。それぞれセットアップしてください。

  • Ruby 2.3.1(x64) for windows
  • Bison for windows 2.4.1

RubyのインストールにはRubyInstallerを利用しました。セットアップ中、rubyの実行ファイルへのパスを設定するチェックボックスをONにしています。

bisonのインストールには、Bison for windowsを利用しました。インストールに際は、インストール先を半角スペースを含まないパスに変更する必要があります(デフォルトのProgram Filesではmrubyビルド時にエラーとなる)。
この記事では、C:\Tool\GnuWin32を使用しています。

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の行です。

build_config.rb
BIN_PATH = "D:/ide4gr-E0.8.0/hardware/tools/gcc-rx/rx-elf/rx-elf/bin"

ここで指定するパスは、rx-elf-gccコマンドがあるパスです。GR-CITRUSのFirmwareをビルドする方法 for Windowsに従いビルド環境を構築した方は、IDE for GRをインストールしたパスとなります。

また、このファイル内でmrubyに組み込みたいライブラリ(mrbgems)を指定することができます。適宜、必要に応じて追加、削除などを行ってください。

GNU_RX_elf.batの実行

GR-CITRUSのFirmwareをビルドする方法 for Windowsで修正したGNU_RX_elf.batをダブルクリックして実行します。

以降の作業は表示されたコマンドプロンプトで行います。

mrubyのビルド

上記で修正したbuild_config.rbがあるフォルダに移動します。

cd mruby

以下のコマンドを実行し、bisonへのパスを通します。
C:\Tool\GnuWin32は、bisonをインストールしたパスに変更してください。

Set PATH=C:\Tool\GnuWin32\bin;%PATH%

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\wrbb_mrubyフォルダにあるlibmruby.aファイルを、mrubyのビルドで出力されたlibmruby.aファイルで上書きします。

copy build\RX630\lib\libmruby.a d:\work\wrbb-v2lib-firm\firmware\wrbb_mruby\libmruby.a

GR-CITRUSのファームウェアをビルドします。firmwareフォルダに移動して、makeコマンドを実行します。

cd d:\work\wrbb-v2lib-firm\firmware\

make

正常終了すると、makefileと同じフォルダにあるcitrus_sketch.binファイルが更新されているはずです。

ビルドしたファームウェアを書き込む場合は、GR-CITRUSのリセットボタンを押してUSBメモリとして認識させた後、citrus_sketch.binファイルをコピーしてください。

5
4
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4