More Related Content
PDF
Tokyo ruby kaigi 10 (sogabe) PDF
コモディティL3SW/ルータでオープンなSDNを実現しよう PDF
アプリケーションエンジニアのためのクラウドインフラ再入門 (2/3) PDF
PDF
ちゃんとWeb会議スライド『Coffee script』 PDF
PPTX
Matlab distributed computing serverの使い方 PDF
What's hot
PDF
PDF
PDF
IBM Rational Team Concertに触れてみた PDF
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力 PDF
PDF
Ruby on cygwin (2019/8月号) PDF
Action Cableで簡易チャットを作ってみた PPTX
PDF
PPTX
PDF
RubyではじめるIoT(Wakayama.rb活動報告) PDF
PDF
PDF
PDF
PDF
PDF
PDF
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 − PPTX
PDF
Viewers also liked
PDF
PDF
mruby/c in TokyoRubyKaigi#11 PDF
M2M製品開発におけるmrubyの効果160726 PDF
ET2014資料: mruby プログラム言語Rubyによる組込みソト開発 PPT
PDF
PDF
PDF
「mruby/c」の利用期待分野~M2Mでの利用~160726 PDF
20150417 kintoneユーザー会発表資料 Similar to Ruby東京プレゼン 資料
PDF
PDF
組込み向けスクリプト言語mrubyをEV3で動かしてみよう PPTX
PDF
苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1 PDF
PDF
PDF
mruby for embedded systems PPTX
PDF
PDF
PDF
PDF
PDF
Mrubyについて 第16回 岡山ruby, ruby on rails勉強会 PDF
Introduction of mruby & Webruby script example PDF
PDF
ET West 2017資料:mruby/c、mrubyで実現される効率的なIoT開発 PDF
PDF
ET2017資料: 開発言語mruby・mruby/cが開く新たなIoTプラットフォーム ODP
プログラミング言語Ruby 1章 イントロダクション PDF
Ruby東京プレゼン 資料
- 1.
- 2.
- 3.
- 4.
mrubyプログラムの
作成と動作(1)
def sum(n)
s =0
while n>0 do
s += n
n -= 1
end
s
end
puts sum(10)
mrbc
2 000 OP_ENTER 1:0:0:0:0:0:0
3 001 OP_LOADI R3 0 ; R3:s
4 002 OP_JMP 010
5 003 OP_MOVE R4 R3 ; R3:s
5 004 OP_MOVE R5 R1 ; R1:n
5 005 OP_ADD R4 :+ 1
5 006 OP_MOVE R3 R4 ; R3:s
6 007 OP_MOVE R4 R1 ; R1:n
6 008 OP_SUBI R4 :- 1
6 009 OP_MOVE R1 R4 ; R1:n
4 010 OP_MOVE R4 R1 ; R1:n
4 011 OP_LOADI R5 0
4 012 OP_GT R4 :> 1
4 013 OP_JMPIF R4 003
8 014 OP_RETURNR3 return ; R3:sRubyプログラム
mrunyバイトコード
コンパイル
* 実際にはバイナリ
* デバイスアーキテクチャに依存しない
(エンディアン,アラインメント)
- 5.
mrubyプログラムの
作成と動作(2)
2 000 OP_ENTER1:0:0:0:0:0:0
3 001 OP_LOADI R3 0 ; R3:s
4 002 OP_JMP 010
5 003 OP_MOVE R4 R3 ; R3:s
5 004 OP_MOVE R5 R1 ; R1:n
5 005 OP_ADD R4 :+ 1
5 006 OP_MOVE R3 R4 ; R3:s
6 007 OP_MOVE R4 R1 ; R1:n
6 008 OP_SUBI R4 :- 1
6 009 OP_MOVE R1 R4 ; R1:n
4 010 OP_MOVE R4 R1 ; R1:n
4 011 OP_LOADI R5 0
4 012 OP_GT R4 :> 1
4 013 OP_JMPIF R4 003
8 014 OP_RETURNR3 return ; R3:s
mrunyバイトコード
mrubyVM
ロード ライブラリ ドライバ
mrubyバイトコードを実行
- 6.
- 7.
- 8.
Tips
● mrubyVMでバイトコードを実行するには?
– バイトコードのファイル名
–バイトコードが格納されているポインタ
● Cによる関数の拡張は?
– Cの関数,Rubyのクラス/メソッドの
マッピングの行を記述する
mrb_define_method(mrb, fl, "+", flo_plus,MRB_ARGS_REQ(1));
Rubyのクラス名
(Floatクラスになっている)
Rubyのメソッド名
Cの関数名 引数の数
「1.2 + 2.3」は,
「(1.2).+(1.3)」なので
引数は 1 つ
(numeric.c より抜粋)
- 9.
- 10.
- 11.
- 12.
- 14.
- 15.
ライブラリ
● Git またはGithubを使う
– ライブラリをソースコードから独立させて,
ビルド時に組み込む
– 「build_config.rb」ファイルに1行追加するだけ
conf.gem :github => 'kaz0505/mruby-gpio-raspi'
ラズベリーPi 用のGPIOクラスライブラリ
conf.gem :github => 'kaz0505/mruby-gpio-emuration'
PC用のGPIOエミュレーションクラスライブラリ
- 16.
ライブラリを利用した例
● GPIOの例
– ラズベリーPi,PCエミュレーション 共通
Gpio.pinMode 1, Gpio::OUTPUT
Gpio.pinMode 2, Gpio::INPUT
Gpio.digitalWrite 1, Gpio::HIGH
Gpio.digitalWrite 2, Gpio::LOW