mruby
                                              2017.4.17  新規
                                              2017.11.4  
                                              大山 博司

■概要

mruby ディレクトリには、組込み用 mruby VM のセルタイプ、および
MrubyBridgePlugin に対応したモジュールが含まれます．

mruby V1.2.0 に対応しています．V1.1.0 でもビルドすることは可能です．

ここには mruby の本体は含まれません．以下からダウンロードする必要があります．
   http://forum.mruby.org/

■TECS ジェネレータ V1.5 での変更

tMruby.cdl (パス：tecsgen/tecs/mruby/tMruby.cdl) を新設した．
以下を可能にするために tMruby を composite に分解した．
 * mruby スクリプトの周期タスク実行
 * VM ごとに異なる TLSF アロケータコンポーネントを使用

tMruby.cdl では tMruby (ネームスペースパス：nMruby::tMruby) の実装を
新しくした他、周期タスク実行用の tMrubyCyclic (同：nMruby::tMrubyCyclic)
を新設した．tMruby を分解した、tMrubyVM セルタイプと、そのシグニチャ
sMruby (sMruby.cdl内) も新設した．

tMruby.cdl に置き換え可能だが、以下の点でビルド用 Makefile の変更が必要．
 * TLSF ヘッダ tTLSFMalloc_inline.h へのパスを追加
 * TLSF のオブジェクトの追加 (mruby+TECS on EV3 には実装済み)

また、以下の点に留意する必要がある．
 * TLSF は、VM ごとに 1MB を割り付ける 

このため、十分な空きメモリが必要である．
このサイズは VM セルの定義で変更可能 (属性 memoryPoolSize)．

■ コンポーネント概要

tMruby.cdl: (TECS ジェネレータ V1.5.0 以降)
 celltype  tMrubyVM
    VM を実装するためのセルタイプ．メモリアロケータ TLSFMalloc を含ま
    ない. 受け口 eMrubyVM のシグニチャは sMruby．

 composite tMruby
    受け口 eMrubyBody のシグニチャを sTaskBody とする．tTLSFMalloc も
    組み入れ.

 composite tMrubyCyclic
    受け口 eMrubyBody のシグニチャを sTaskBody とする．tTLSFMalloc も
    組み入れ.
    周期タスク起床を前提としている．
    一回目の呼出しでは mrb_open し、ブリッジセルを登録後、mrb_run を呼
    び出してスクリプト実行を行う．スクリプト終了後に mrb_close は呼び
    出されない．
    二回目以降の呼出しでは mrb_run のみ呼び出される．
    終了処理 mrb_close を呼びだす手段は提供していない．突然電源が切ら
    れることを前提としている． (少なくとも最初の実装では)．

sMruby.cdl：
 signature sMruby
   初期化、実行、終了処理に分解したシグニチャ
