[388] | 1 | mruby
|
---|
| 2 | 2017.4.17 新規
|
---|
| 3 | 2017.11.4
|
---|
| 4 | 大山 博司
|
---|
| 5 |
|
---|
| 6 | ■概要
|
---|
| 7 |
|
---|
| 8 | mruby ディレクトリには、組込み用 mruby VM のセルタイプ、および
|
---|
| 9 | MrubyBridgePlugin に対応したモジュールが含まれます.
|
---|
| 10 |
|
---|
| 11 | mruby V1.2.0 に対応しています.V1.1.0 でもビルドすることは可能です.
|
---|
| 12 |
|
---|
| 13 | ここには mruby の本体は含まれません.以下からダウンロードする必要があります.
|
---|
| 14 | http://forum.mruby.org/
|
---|
| 15 |
|
---|
| 16 | ■TECS ジェネレータ V1.5 での変更
|
---|
| 17 |
|
---|
| 18 | tMruby.cdl (パス:tecsgen/tecs/mruby/tMruby.cdl) を新設した.
|
---|
| 19 | 以下を可能にするために tMruby を composite に分解した.
|
---|
| 20 | * mruby スクリプトの周期タスク実行
|
---|
| 21 | * VM ごとに異なる TLSF アロケータコンポーネントを使用
|
---|
| 22 |
|
---|
| 23 | tMruby.cdl では tMruby (ネームスペースパス:nMruby::tMruby) の実装を
|
---|
| 24 | 新しくした他、周期タスク実行用の tMrubyCyclic (同:nMruby::tMrubyCyclic)
|
---|
| 25 | を新設した.tMruby を分解した、tMrubyVM セルタイプと、そのシグニチャ
|
---|
| 26 | sMruby (sMruby.cdl内) も新設した.
|
---|
| 27 |
|
---|
| 28 | tMruby.cdl に置き換え可能だが、以下の点でビルド用 Makefile の変更が必要.
|
---|
| 29 | * TLSF ヘッダ tTLSFMalloc_inline.h へのパスを追加
|
---|
| 30 | * TLSF のオブジェクトの追加 (mruby+TECS on EV3 には実装済み)
|
---|
| 31 |
|
---|
| 32 | また、以下の点に留意する必要がある.
|
---|
| 33 | * TLSF は、VM ごとに 1MB を割り付ける
|
---|
| 34 |
|
---|
| 35 | このため、十分な空きメモリが必要である.
|
---|
| 36 | このサイズは VM セルの定義で変更可能 (属性 memoryPoolSize).
|
---|
| 37 |
|
---|
| 38 | ■ コンポーネント概要
|
---|
| 39 |
|
---|
| 40 | tMruby.cdl: (TECS ジェネレータ V1.5.0 以降)
|
---|
| 41 | celltype tMrubyVM
|
---|
| 42 | VM を実装するためのセルタイプ.メモリアロケータ TLSFMalloc を含ま
|
---|
| 43 | ない. 受け口 eMrubyVM のシグニチャは sMruby.
|
---|
| 44 |
|
---|
| 45 | composite tMruby
|
---|
| 46 | 受け口 eMrubyBody のシグニチャを sTaskBody とする.tTLSFMalloc も
|
---|
| 47 | 組み入れ.
|
---|
| 48 |
|
---|
| 49 | composite tMrubyCyclic
|
---|
| 50 | 受け口 eMrubyBody のシグニチャを sTaskBody とする.tTLSFMalloc も
|
---|
| 51 | 組み入れ.
|
---|
| 52 | 周期タスク起床を前提としている.
|
---|
| 53 | 一回目の呼出しでは mrb_open し、ブリッジセルを登録後、mrb_run を呼
|
---|
| 54 | び出してスクリプト実行を行う.スクリプト終了後に mrb_close は呼び
|
---|
| 55 | 出されない.
|
---|
| 56 | 二回目以降の呼出しでは mrb_run のみ呼び出される.
|
---|
| 57 | 終了処理 mrb_close を呼びだす手段は提供していない.突然電源が切ら
|
---|
| 58 | れることを前提としている. (少なくとも最初の実装では).
|
---|
| 59 |
|
---|
| 60 | sMruby.cdl:
|
---|
| 61 | signature sMruby
|
---|
| 62 | 初期化、実行、終了処理に分解したシグニチャ
|
---|