12/08/2018, 13:21

mruby/c 概要(研修フィードバック)

mruby/c - mrubyの多機能に対する逆張り(さらに小さくしたい) - mrubyでできないことを実現したい!  ・少ないメモリ(ワンチップ) 例:電池1個、太陽光発電など  ・コンカレント動作(OS不要)  ・起動を早くする(割り込みを目指す)  ・誰でも分かる仕様(見てわかる規模にする) mruby/cの特徴 1. 高い開発生産性:C言語に比べて、5倍程度と予測 - Rubyの高い生産性を引き継ぐ - コンカレントな動作(異なる動作は、別のプログラムで実現) ・スピーディーな試作開発、実用化開発を実現 ・容易に変更可能 ...

mruby/c

- mrubyの多機能に対する逆張り(さらに小さくしたい)
- mrubyでできないことを実現したい!
 ・少ないメモリ(ワンチップ) 例:電池1個、太陽光発電など
 ・コンカレント動作(OS不要)
 ・起動を早くする(割り込みを目指す)
 ・誰でも分かる仕様(見てわかる規模にする)

mruby/cの特徴

1. 高い開発生産性:C言語に比べて、5倍程度と予測
    - Rubyの高い生産性を引き継ぐ
    - コンカレントな動作(異なる動作は、別のプログラムで実現)
    ・スピーディーな試作開発、実用化開発を実現
    ・容易に変更可能
    ・別のプログラムで、各時間ごとに起動

2. 省電力:従来のmruby比で10分の1程度、メモリ消費50kb未満で稼働
    - 本来の機能以外の動作を省き実装を最適化
    - マルチコアプロセッサを積極的にサポート
      限られた電力供給環境下でも稼働(電池駆動、エナジーハーベスティング)

mruby/cの基本コンセプト

・mruby/cの優先順位
 1. メモリ
 2. 起動速度
 3. 機能(ライブラリ)
 4. 実行速度
・想定するアプリケーション領域
 省電力デバイス・手軽に試作

mruby/c ターゲットCPU

PSoC5(32bit)  Cypress
RX63N(32bit)  ルネサス
PIC24(16bit)  Microchip Technology

mruby/c β版

githubで公開: https://github.com/mrubyc/mrubyc

mruby/c への機能追加

- MQTT(IOT向けプロトコル)をmrubyに実装
・mrubyのビルド設定に1行追加するだけでMQTT対応のVMを作成できる。
・「build_config.rb」の中に1行追加するだけ
 conf.gem :github => 'sabakan21/mruby-mqtt'

mruby/c ボード開発状況

1. mruby/cが動く状態のマイコン
 ・マイコンのフラッシュ内にmruby/cのVMを書き込み済みで配布する。PSoC5を搭載
2. IDE
 ・ケーブルを接続するだけで、mruby/cのマイコン開発を可能に
3. ローカル・クラウドコンパイラ

mruby/c 現状

- エディタ・コンパイラについては開発中・無償で提供予定
- ドキュメントがあまり公開されていない。
0