LoginSignup
2
1

More than 5 years have passed since last update.

C/C++用のEV3RT環境構築にmruby環境を追加する方法

Last updated at Posted at 2018-06-20

先日とある方に教えてあげたら、そんな簡単にできるんですか!ってびっくりされたのでこちらにも書いておきます。

この記事はC/C++用のEV3RT環境ができていて、使い方を知っている人向けのものです。EV3RT用環境構築がまだの方はWindows, Linux, Macを参考に作ってください。

必要なもの

mrubyのビルド

mrubyの取得

Githubのmrubyリポジトリからmrubyを取得します。

$ git clone https://github.com/mruby/mruby.git

EV3RT用のmrbgemsの取得

mrubyと同じ階層に置く前提です。
ex. /Users/xxx/mruby なら /Users/xxx/mruby-ev3rt
参考)将来EV3RTをバージョンアップすることを考えると、EV3RTの下にmrubyを入れない方が良いです。

$ git clone https://github.com/yamanekko/mruby-ev3rt.git

mrubyのMakefileをEV3RT用に変更

/mruby/makefileRAKE=をEV3RT用のbuild config 用に変更します。

RAKE=MRUBY_CONFIG=../mruby-ev3rt/build_config_ev3rt.rb ruby ./minirake

※ 私はEV3RT以外でもmrubyを使っているのでこのようにしていますが、mruby/build_config.rb にbuild_config_ev3rt.rbの中身を記載するのでも構いません。
※ minirake を使えばRakeがインストールされてなくてもOKです

build_config_ev3rt.rb の設定内容を環境に合わせる

  • EV3RT_PATH = ev3rt/hrp2のパス
  • GNU_TOOL_PREFX = arm-none-eabi-gcc のパス

GCC ARMにパスが通っている場合は
GNU_TOOL_PREFX = arm-none-eabi-
でよい。パスが通っているかは、以下のコマンドで確認できます。
arm-none-eabi-gcc -v

mrubyをmakeする

cd ~/git/mruby 
make

こんな表示がされて、mruby/build/EV3RT/lib/libmruby.aが生成されていたら、mrubyのビルドは成功です。

================================================
      Config Name: host
 Output Directory: build/host
         Binaries: mrbc
    Included Gems:
             mruby-compiler - mruby compiler library
             mruby-bin-mrbc - mruby compiler executable
================================================

================================================
      Config Name: EV3RT
 Output Directory: build/EV3RT
    Included Gems:
             mruby-compiler - mruby compiler library
             mruby-ev3rt - TOPPERS HRP2 for EV3 class
================================================

mruby用プロジェクトを作成する

C/C++と同様にsdk/workspaceの下にプロジェクトを作成します。
一言で言ってしまうと、C/C++でタスクから実行されていた関数にC/C++のコードを書く代わりに、mrubyを呼び出す記述を書きます。
詳しくはサンプルコードEV3RT上のmrubyで超音波センサーを使用するサンプルを試す, EV3RT用mrubyサンプルコードの使い方などを参考にしてください

2
1
0

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
2
1