mruby+組込み対話環境

吉岡 紘二(kyab)
mruby+組込みでもirbしたい!
•

目的
• ハードウェア制御の試行錯誤
• 状態の確認
• クラス/メソッド再定義

•

環境
• USBシリアルなどで対話
• RAMギリギリでも動いて欲しい
ホストベースなmirb
•

ホスト上とターゲットのボード上の協調REPL

•

ホスト:
•
•

•

ユーザ入力をコンパイル
バイトコードをターゲットに送り込む

ターゲット:
•
•

•

バイトコードを実行
実行結果を文字列にして...
ホストベースなmirb
コンパイラ不要
!
省メモリ動作
Arduino互換ボード
chipKIT Max32
•

Digilent.inc

•

Microchip®
PIC32MX795F512
•

80MHz 32bit
MIPS

•

ROM 512kb

•

RAM 128kb
RCカー デモ
ホストベースREPL
プロトコル
ホスト

ターゲット
ENQ(0x06)

接続確立

ACK(0x05)

SOH(0x01 or 0x02(verbose))
バイトコードサイズN:2byte

バイトコード送信

!
バイトコード:Nb...
•

mruby-bin-mirb-hostbased
https://github.com/kyab/mruby-bin-mirb-hostbased

•

mruby-arduino
https://github.com/kyab/mru...
•

twitter:@kyab212

•

kyossi212@gmail.com

•

http://d.hatena.ne.jp/kyab/
補足
今後の予定
•

pryしたい!
•

高度なオブジェクト指向デバッグ

•

cdでコンテキスト移動

•

binding.mpry (?) でブレーク

•

課題:mrubyではローカル変数取れない。Bindingクラスが
ない

•
...
動作実績
•

chipKIT Max32 (RAM 128kb)

•

Arduino Due (RAM 96kb)

•

GR-SAKURA (RAM 128kb)(id:masahino123
さん http://masahino12...
Upcoming SlideShare
Loading in …5
×

東京Rubyプレゼンテーション2014 mruby対話環境

1,027
-1

Published on

interested? watch working demo on http://d.hatena.ne.jp/kyab/20130621

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,027
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
4
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

東京Rubyプレゼンテーション2014 mruby対話環境

  1. 1. mruby+組込み対話環境 吉岡 紘二(kyab)
  2. 2. mruby+組込みでもirbしたい! • 目的 • ハードウェア制御の試行錯誤 • 状態の確認 • クラス/メソッド再定義 • 環境 • USBシリアルなどで対話 • RAMギリギリでも動いて欲しい
  3. 3. ホストベースなmirb • ホスト上とターゲットのボード上の協調REPL • ホスト: • • • ユーザ入力をコンパイル バイトコードをターゲットに送り込む ターゲット: • • • バイトコードを実行 実行結果を文字列にして、ホストに応答 mruby-bin-mirb-hostbasedとしてgithubにて公開
  4. 4. ホストベースなmirb コンパイラ不要 ! 省メモリ動作
  5. 5. Arduino互換ボード chipKIT Max32 • Digilent.inc • Microchip® PIC32MX795F512 • 80MHz 32bit MIPS • ROM 512kb • RAM 128kb
  6. 6. RCカー デモ
  7. 7. ホストベースREPL プロトコル ホスト ターゲット ENQ(0x06) 接続確立 ACK(0x05) SOH(0x01 or 0x02(verbose)) バイトコードサイズN:2byte バイトコード送信 ! バイトコード:Nbyte 100byteごとにACK を返す (シリアル受信バッファ あふれの防止) SOH(0x01 or 0x02(exception)) 結果文字列サイズM:2byte 結果文字列受信 ! 結果文字列:Mbyte 例外もinspect して文字列で 返す
  8. 8. • mruby-bin-mirb-hostbased https://github.com/kyab/mruby-bin-mirb-hostbased • mruby-arduino https://github.com/kyab/mruby-arduino
  9. 9. • twitter:@kyab212 • kyossi212@gmail.com • http://d.hatena.ne.jp/kyab/
  10. 10. 補足
  11. 11. 今後の予定 • pryしたい! • 高度なオブジェクト指向デバッグ • cdでコンテキスト移動 • binding.mpry (?) でブレーク • 課題:mrubyではローカル変数取れない。Bindingクラスが ない • mrubyデバッグ機能と連携 • ネットワーク対応
  12. 12. 動作実績 • chipKIT Max32 (RAM 128kb) • Arduino Due (RAM 96kb) • GR-SAKURA (RAM 128kb)(id:masahino123 さん http://masahino123.hatenablog.com/ entry/2013/08/16/150538)

×