Tokyurubykaigi05

  • 368 views
Uploaded on

 

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

Views

Total Views
368
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
1
Comments
0
Likes
0

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 for embedded systems 2012/07/29 TokyuRuby会議05 高橋征義・やまねゆりえ
  • 2. ※某弊社の宣伝とかRuby Conf渡航支援募集中とか 札幌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応募書きます…