Your SlideShare is downloading. ×
  • Like
mruby for embedded systems
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

mruby for embedded systems

  • 4,251 views
Published

TokyuRuby会議05での発表資料です。

TokyuRuby会議05での発表資料です。

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
4,251
On SlideShare
0
From Embeds
0
Number of Embeds
4

Actions

Shares
Downloads
19
Comments
0
Likes
10

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. mruby forembedded systems 2012/07/29 TokyuRuby会議05 高橋征義・やまねゆりえ
  • 2. ※某弊社の宣伝とかRubyConf渡航支援募集中とか札幌Ruby会議2012LT募集中とかLL Decade参加者募集中とかの話は時間がないので今回は割愛させていただきます(_o_)
  • 3. 本日のお題● mrubyとは● 組込み環境について● mrubyの課題● デモ● 解決策● 実装
  • 4. mrubyとは● 軽量Ruby● 平成22年度地域イノベーショ ン創出研究開発事業「軽量 Rubyを用いた組込みプラッ トフォームの研究・開発」の 成果● ささださんが作ってない方の Ruby
  • 5. 軽量Ruby を用いた組込みプラットフォームの研究・開発http://www.pref.fukuoka.lg.jp/uploaded/life/50/50557_12372800_misc.pdf
  • 6. http://el.jibun.atmarkit.co.jp/rails/2012/04/rubymruby-2004.html
  • 7. 組込み環境● 家電から自動車、ロケットまでいろい ろ● コストと性能のバランス● PCほどリッチじゃない(ことも多 い)● OSなし or RTOS(VxWorks, μITRON, 独自の謎OSなど)
  • 8. mrubyの課題● 意外にでかい(当社比)● 特に実行時の動的メモリ確保がでか い● 数MBくらいのメモリ環境を想定し ているらしい(まつもとさん談)● 起動だけで30KB超える● 100KBくらいでも動かすのがしん どそう
  • 9. デモマイコン: Interface付録のFM3(Cortex-M3)のエミュレータ(QEMU 1.0.1)OS:  TOPPERS/ASP 1.7.0アプリ:  sample1のtask2としてmruby実行
  • 10. 対策● ハッシュ(khash.h)を使わないよ うにする – シンボル管理で名前↔数値の対応 付けに使われているデータ構造を ただの配列にする – 遅い、けど小さくなる
  • 11. 対策● ハッシュ(khash.h)を使わないよ うにする – 内部でインスタンス変数、メソッ ド定義に使われているデータ構造 をセグメントリストに置き換える (PyMiteのパクリ) – 遅い、けど小さくなる
  • 12. 対策● parserとcodegenを捨てる – VM+ライブラリのみ – あらかじめバイトコードコンパイ ルしたRubyスクリプトを実行 – evalとかダメゼッタイ
  • 13. 対策● 初期化時のメモリ確保をケチる – 足りなくなったら後で確保するら しい – ついでにシンボルの上限も300 個にする(あふれたら終了)
  • 14. 対策● Ruby標準クラスを捨てる – 試してみたけどいろいろ不具合が 起きやすいのでだいたい戻した – Hash、Range、Struct、Ti me、Math、Regexpがない (Struct、Time、Math、Re gexpはマクロでオフにする設定 がある)
  • 15. 実装● コードはGitHubに上がってます https://github.com/yurie/mruby/tree/lessmemory – コミットログが日本語ですみませ ん…
  • 16. 実行方法# Macなど$ make# FM3用 (Yagarto GNU ARM toolchain用)$ make -f Makefile.fm3
  • 17. 続きは札幌で!※選考には落ちたので これからLT応募書きます…